Posts
This is the list
layout for showing blog posts, which shows just the title and groups them by year of publication. Check out the blog
layout for comparison.
2025
- Upgrading git on bookworm
- Keeping track of my 'public' IP history
- Upgrade pihole kubernetes from 5 to 6
2024
- microk8s requires nf_conntrack but doesn't enforce it
- Quarkus update in a gradle multi-module project
- Running shellcheck on justfiles
- Github SSH Signing Keys via terraform
- Pinning GitHub Actions to hashes
2023
- The masochistic joy of Windows
- Straight line port of a nodejs project to java/quarkus
- IntelliJ isn't playing nicely with WSL2
- WSL2 or MINGW+git/bash
- Detecting Terraform Drift with Github actions
- UpdateCLI + HCL
- Repository workflow permissions via terraform
- Makefile last resort
- CodeQL scanning fun and games
- Docker image updates running K8S at home
2022
- Gradle plugin dependency hell
- Network issues with Ubuntu 22.04 on a Mac Mini
- Using Kind to sandbox Kubernetes
- First steps in microk8s
- Dynamic Environment Variables
2021
2020
- Change is just change
- The 'developers are interchangeable' conundrum
- Gradle timeout fun
- Questions; there's a point
2019
- Using LGTM when using lombok in java
- Javadocs with UML diagrams
- Using WSL and Windows Git Bash interchangeably
- Sometimes you need to kick those decisions down the road
- What's the point of unit-tests
- Migrating to MacOS for work
2018
2017
- HPCC 6.4.2: dfuplus fails to spray files
- Decentralised Autonomy vs Centralised Control
- Cash is still king
- git flow release
- Vagrant + Hyper-V sync folders
- e.printStackTrace() as JSON
2016
- Using Exceptions for Flow Control
- Virtualbox isn't the only tool in the box
- Vagrant + Hyper-V (Windows 10 anniversary)
- Liberté, égalité, and French Gin
- What goes before comes round again
- Killing a rat is easier with an air rifle than an AK-47
- The battlefield of decision making
- The pain of evolving standards
- Examination not justification
2015
- Failure is inevitable; suffering is optional
- Relationships not transactions
- Stop getting in your own way
- What to do when your vision hits the buffers of reality
- Supportability isn't an afterthought
- Making Maven play nicely
- Maintenance cost vs Development cost
- No Big Bangs
- Character set woes
- Unison on Centos 7
2014
- How To Be a Developer
- FIPS certified algorithms
- Integration is like town planning
- What is integration
- State of Integration
2013
- Controlling the adapter via JMX
- Integration via email is a feature of last resort
- TriggeredChannel has it's uses
- Web proxy using Squid
- Signing Windows Installers on Linux
- Tactical Integration
- The benefits of an business class router
- Legacy EDI to a cloud enabled platform
- So your backend system isn't cloud ready
- Integration is like preparing dinner
- Handling BAPI errors using the Adapter Framework
- What makes you an expert developer?
- Stateful RFC using the adapter framework
- Integrating with SAP BAPI function modules
2012
- Upgrading to Hyper-V 2012
- Preparing for failure; part 2
- MSMQ and Java interoperability
- Preparing for failure
- Character encoding behaviour in the adapter
- JMS Part Two; tuning behaviour
- HTTPS Jetty error
- Performance testing the adapter
- JMS Connections in the adapter
- Slow Java Crypto Performance on Linux
- To Build or Not to Build
- Upgrading to Redmine 1.4 on CentOS 5
- Project Management Tools
- Fixing your mercurial mistakes after the fact
- Setting up CentOS-6 Just So
- Metadata as Parameters to Stylesheets
- The Perils Of Open Proxies
- Dynamically switching XSLT processing engines
- Embedded Scripting part 2
- Advanced Adapter Error Handling
2011
- Mercurial / HTTPS with Password Authentication
- Windows Scripting Host as an Administrator
- VMPlayer network interfaces with Private/Public Networking
- Mercurial / HTTP using Password Authentication
- Dangling my toes in Hyper-V; come on in
- Using Cygwin as your main shell; the basics
- Adventures in Hyper-V
- Gathering metrics on performance
- Embbeded scripts in a workflow