Java
2021
Printing the version of a Maven project -
Minimal example of a Maven pom for a mixed Kotlin and Java project -
2020
Shutdown order consistency: how Rust helps -
Profile a Java unit test (very quickly, with no external tools) -
Example Android project with repeatable tests running inside an emulator -
2019
KotlinJS: First impressions (formed by writing Snake) video -
Dependency Injection frameworks: reasons to avoid them video -
Building an all-in-one Jar in Gradle with the Kotlin DSL -
Creating a self-signed certificate for Apache and connecting to it from Java -
ACCU Talk "How Kotlin makes your Java code better" -
Examples of Kotlin making your Java code better video -
Build with a different Java version (e.g. 11) using Docker -
Scheduling a task in Java within a CompletableFuture -
Gradle: what is a task, and how can I make a task depend on another task? -
Performance of Java 2D drawing operations (part 3: image opacity) -
Performance of Java 2D drawing operations (part 2: images) -
Performance of Java 2D drawing operations (part 1: types of operation) -
2018
2017
maven-assembly-plugin descriptor for a simple tarball with dependencies -
Make Android Gradle display unit test failure messages -
Iterating over the lines of a file in Java -
2016
Setting up a sane Maven project -
Simple example of Netty 4 usage -
Ambiguous names in Java due to non-normalised unicode - but all OK in Python -
How to analyse a .phd heap dump from an IBM JVM -
2015
Java HTTPS to a server with a self-signed certificate -
Code for detecting when you leave an Android app -
Rabbit Escape 0.3.1 - now with zoom! -
Java game programming: image rendering hints make no difference to rendering time -
Why Rabbit Escape is Open Source / Free Software -
How to make your own levels for Rabbit Escape -
Rabbit Escape v0.1 out now for Linux, Windows and Mac video -
Rabbit Escape (a bit like Lemmings) v0.1 released for Linux, Windows and Mac -
Programmatic equivalents of web.xml sections for Tomcat -
JAX-RS (using Apache CXF) in embedded Tomcat example -
2014
Using hexdump to represent a binary file in Java source code -
Android development - saving state -
Android development - Rabbit Escape really working on Android -
Android programming - a non-Android, Android Game -
Android programming - drawing bitmaps in a game loop -
Android programming - a menu using Activities and Intents -
Android programming - setting up Android Studio -
Avoid mocks by refactoring to functional -
Using the final keyword in interface method parameters does nothing -
2013
Avoid backslashes anywhere in Java code (Java error "illegal unicode escape") -
Behaviour of Java String.split() when some answers are the empty string -
Checking the case of a filename on Windows -
Goodness in programming languages, part 4 - Ownership & Memory -
setUp and tearDown considered harmful -
Everybody loves build.xml (test-driven Ant) -
Everybody hates build.xml (code reuse in Ant) -
Dry run mode for Ant (ant -n, ant --dry-run) -
2012
Launching an OSGi app on the command line -
Goodness in programming languages, part 3 " not doing the same thing more than once -
Goodness in programming languages, part 2 " getting your code running -
2011
Entertain your baby using your Android phone -
2009
2008
An actual difficult bug fixed -
Public bzr branch of FreeGuide -
2007
FreeGuide updated to latest XMLTV, and bug fixes -
FreeGuide - putting recording on hold -
(Badly wrong) usage statistics for FreeGuide -