05 Mei, 2026
04 February 2019 [Java, Performance, Programming, Rabbit Escape] Series: operation, image, opacity I wanted to overhaul the UI of my desktop game Rabbit Escape to make it more comfortable and…
May 01, 2026 [Programming, Rust, Tech, Videos] Let’s fix the messy error handling in our Rust towncrier clone using anyhow library and add context() call to explain what went wrong.…
08 February 2019 [Java, Performance, Programming, Rabbit Escape] Series: operation, image, opacity In my previous post I examined the performance of various drawing operations in Java 2D rendering. Here I…
April 26, 2026 [Tech] Since I created this blog statically using Zola, I have been using Remark42 as my commenting system. I wanted something self-hosted and simple, and it worked.…
April 24, 2026 [Programming, Rust, Tech, Videos] Enthusiastically embracing test-driven development as usual, we attempted to write a minimal clone of a useful tool, towncrier, that allows us to create…

Performance of Java 2D drawing operations (part 1: types of operations)

04 February 2019 [Java, Performance, Programming, Rabbit Escape] Series: operation, image, opacity I wanted to overhaul the UI of my desktop game Rabbit Escape to make it more comfortable and look nicer, so I looked at a new look at game-loop style graphics rendered to the canvas in a Java 2D (Swing) UI. For more […]

10 mins read

Using any means to handle errors in my Rust changelog generator

May 01, 2026 [Programming, Rust, Tech, Videos] Let’s fix the messy error handling in our Rust towncrier clone using anyhow library and add context() call to explain what went wrong. Can we match the output of towncrier under different circumstances? Do we really want to match it, or can we do better? You can find […]

1 min read

Performance of Java 2D drawing operations (part 2: drawing)

08 February 2019 [Java, Performance, Programming, Rabbit Escape] Series: operation, image, opacity In my previous post I examined the performance of various drawing operations in Java 2D rendering. Here I looked at some specifics around image rendering, with the goal of finding optimizations I could apply to my game Rabbit Escape. You can find the […]

5 mins read

A simpler blog commenting system

April 26, 2026 [Tech] Since I created this blog statically using Zola, I have been using Remark42 as my commenting system. I wanted something self-hosted and simple, and it worked. I currently get comments every few months, and about half of them are spam. Remark42 seems to forget who I am every time, so deleting […]

2 mins read

Building a Rust command line tool: towncrier clone

April 24, 2026 [Programming, Rust, Tech, Videos] Enthusiastically embracing test-driven development as usual, we attempted to write a minimal clone of a useful tool, towncrier, that allows us to create changelogs from individual “news fragment” files. In the end we had the outline of a viable solution that passed the first and only test! You […]

1 min read

Performance of Java 2D drawing operations (part 3: image opacity)

February 11, 2019 [Java, Performance, Programming] Series: operation, image, opacity Not because I enjoyed it, I seemed compelled to continue my quest to understand the performance of various Java 2D drawing operations. I’m hoping to make my game Rabbit Escape faster, especially on the Raspberry Pi, so you might see another post sometime actually trying […]

3 mins read

Keybase chat bot in 10 lines of bash

February 14, 2019 [bash, JSON, Keybase, Programming] I’ve become very interested in keybase.io lately, mainly because it offers secure conversations, and you can have bots. I wrote a quick bot to simulate Arnold Schwarzenegger that I thought I’d share to show how easy it is. It’s based on the keybase command line tool (which comes […]

2 mins read

Billion line challenge: splitting lines using SIMD in Rust

April 17, 2026 [Programming, Rust, Tech, Videos] I was scared to do it, but it’s actually fine! This time we look at the fastest way to split a large text file into separate lines, first by implementing our own zero-copy version. BufReader::lines and then using SIMD, which allows us to process 64 bytes simultaneously, using […]

2 mins read

Python Async basics video (100 million HTTP requests)

I discovered something difficult in Python, which was a first, so I wrote a whole blog series about it, and now a whole video: Slide: Async Python Basics Slide Blog posts: asyncio basics, large numbers in parallel, parallel HTTP requests, additions to stdlib PakarPBN A Private Blog Network (PBN) is a collection of websites that […]

1 min read

Gradle: what is a task, and how to make a task depend on another task?

February 27, 2019 [Gradle, Groovy, Java] In this crazy world, Gradle sometimes seems like the most sensible choice for building Java or Kotlin projects. But what does everything inside build.gradle actually mean? And when does my code run? And how to create tasks? And how do you convince a task to depend on another task? […]

11 mins read