Gaming Tips
New homepage design – Andy Balaam’s Blog
December 22, 2018 [Uncategorized] After years of doing so, I’ve redesigned my home page at artificialworlds.net. It’s basically meant to make me look smart, productive, interesting, or something like that. Alternatively, this gives you a place to find things you know I made but can’t find the link for: The background image is “Read where […]
Implementing gunzip from scratch in Rust
May 15, 2026 [Programming, Rust, Tech, Videos] Jez and Andy get together for a crazy programming hijinks, trying to figure out from scratch how gzip compression works, starting by creating a valid minimal gzip file, then trying to extract it. Read Jez’s blog at Read my blog at Follow Jez on mastodon: @jezhiggins@mastodon.me.uk Follow me […]
Windows is missing from the grub menu after Ubuntu installation
Windows disappeared from my grub menu after I installed Ubuntu. Luckily it was fixed by running: sudo grub-mkconfig -o /boot/grub/grub.cfg and reboot. Phew. PakarPBN A Private Blog Network (PBN) is a collection of websites that are controlled by a single individual or organization and used primarily to build backlinks to a “money site” in order […]
Run bash inside any version of Linux using Docker
08 January 2019 [Docker, Tech] Docker is useful for some things, and not as useful as you think for others. Here’s something really useful: get a disposable bash prompt inside any version of Linux distribution in one command: docker run -i -t –mount “type=bind,src=$HOME/Desktop,dst=/Desktop” ubuntu:18.10 bash This command downloads the latest Ubuntu 18.10 image, mounts […]
Jez is back for a programming language chat!
08 May 2026 [Programming, Rust, Tech, Videos] Veteran super-coder Jez is back, and claims he has “finished” implementing Cell, Andy’s toy language, in Rust. Jez and Andy basically gossip a bit, about code types. Read Jez’s blog at Read my blog at Follow Jez on mastodon: @jezhiggins@mastodon.me.uk Follow me on mastodon: @andybalaam@mastodon.social PakarPBN A Private […]
London Python Meetup January 2019 – Async Python and GeoPandas
January 24, 2019 [Programming, Programming Languages, Python, Tech] It was a pleasure to attend the London Python Meetup organized by @python_london. There were lots of friendly people and interesting conversation. I gave the talk “Making 100 million requests with Python aiohttp” (slides, Blog post) explaining the basics of writing async code in Python 3 and […]
Announcing Changelog Builder – a towncrier clone for creating changelogs
May 05, 2026 [Tech] I really enjoy reimplementing things that already exist. Sometimes it’s just out of necessity, sometimes it’s to make it faster, or work in a different way, or improve the quality of the code, but I like having concrete expectations about how the code functions. So, when a colleague suggested we use […]
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 […]
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 […]
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 […]