Aaron Christiansen @aaronc.cc · 15/09/2026Working on this modelling tool again - now you can define *recursive* operators, which lets you construct complex layouts of children based on each of their geometries. Here's a `stack` operator which arranges all children next to each other, even of different sizes, with a gap between each. 000
Aaron Christiansen @aaronc.cc · 23/06/2026It's day #100 of Loconundrum! Thanks so much to everybody who's played - it's been lovely to hear from people enjoying the game. To mark the milestone, you can now play all 100 past puzzles from the new Archive! Fill out a missed day, or catch up on puzzles from before you started playing. 241
Aaron Christiansen @aaronc.cc · 14/06/2026Here's a peek behind the curtain at Conductor, the thrown-together dashboard I use to schedule Loconundrum puzzles. It used to automatically pick at random from a pool, but once I ran out of the major stations, I started scheduling puzzles manually instead so I could test things out a bit more. 130
Aaron Christiansen @aaronc.cc · 24/04/2026If you played Loconundrum today (puzzle #40, 2026-04-24) before 7am BST, there's a chance you may have got the wrong puzzle due to a caching issue. If you got Birmingham New Street, you were affected. It should be fixed now, please load up Loconundrum again and have another go! Sorry about that 🚂 210
Aaron Christiansen @aaronc.cc · 30/03/2026I wrote a blog post about how Loconundrum actually works. Thank you to everybody who's played! aaronc.cc/2026/03/29/l...aaronc.ccBuilding Loconundrum, a rail station daily guessing gameI wanted to brush up on some web skills, so I made Loconundrum. Along the way, I was significantly side-tracked by calculating journey times using rail open data. 250
Aaron Christiansen @aaronc.cc · 20/03/2026Arc's "File" menu is probably the worst example of macOS Tahoe's automatic menu icons that I've seen yet 010
Aaron Christiansen @aaronc.cc · 18/03/2026I made a daily game where you try to guess a UK rail station! loconundrum.aaronc.ccloconundrum.aaronc.ccLoconundrumA daily game: can you guess the UK rail station? 6128
Aaron Christiansen @aaronc.cc · 19/02/2026Falling in love with inline snapshot testing My usual problem with snapshot testing is that you need to find the snapshot files to learn the expected output of a test - but with inline snapshots, the expectation is in the test code, which can be updated automatically by the snapshot tool. Neat! 020
Aaron Christiansen @aaronc.cc · 09/02/2026For the latest Gosu Game Jam, I wrote a crop-cultivating roguelike deckbuilder in Ruby, where you race the clock to score coins by combining your crops' effects. This is the most fun I've had creating a jam entry, I've wanted to try making a card game for a while! orangeflash81.itch.io/topsoil 010
Aaron Christiansen @aaronc.cc · 26/01/2026TIL that: 1) you can have SVG favicons nowadays, and 2) they can be styled to respond to light/dark mode automatically evilmartians.com/chronicles/h... 010
Aaron Christiansen @aaronc.cc · 05/01/2026Agree with a lot of the points in this article. I've found Tahoe's menus take me noticeably longer to scan than before, and I think it's partly down to the inconsistent visual noise of the icons. tonsky.me/blog/tahoe-i...tonsky.meIt’s hard to justify Tahoe iconsLooking at the first principles of icon design—and how Apple failed to apply all of them in macOS Tahoe 110
Aaron Christiansen @aaronc.cc · 04/01/2026Do you remember this gadget? It was sold as letting you control your apps/games with your hands. Young-me saw this in Maplin back in the day, thinking how cool it would be. I saw one in a second-hand shop, for a price where I'm not too bothered if it's rubbish. Let's satisfy young-me's curiosity! 100
Aaron Christiansen @aaronc.cc · 02/01/2026I've done some mad science with Ruby 4.0's new Ruby::Box namespacing feature - what if Ruby had JavaScript-style `import`/`export`, rather than requiring entire files? You only get what you import, and imported items don't "leak" between files. Try it, if you dare: github.com/AaronC81/rixby 010
Aaron Christiansen @aaronc.cc · 19/12/2025Had a good time with Langjam Gamejam - a week-long jam where you build a language and then use it to write a game. The resulting game is pretty simple - I didn't have much time left after getting the language to a usable state - but I think it's at least fun! orangeflash81.itch.io/space-blasterorangeflash81.itch.ioSPACE BLASTER by Aaron ChristiansenMinimal space game for Langjam Gamejam 020
Aaron Christiansen @aaronc.cc · 13/12/2025For a bit of polish and ease-of-experimentation, there's now a basic editor! Here's one possible implementation of a rounded rectangle. Being able to define a new operation that inspects the geometry, like this `rotate_around_centre`, feels rather useful to me. 130
Aaron Christiansen @aaronc.cc · 12/12/2025Ruby argument validation with pattern matching aaronc.cc/2025/12/12/r...aaronc.ccRuby argument validation with pattern matching 010
Aaron Christiansen @aaronc.cc · 30/11/2025Starting to get interesting - now you can write operator modules which behave based on some properties of their children - here repeating the children in a grid. You can't do something like this in OpenSCAD unless you also pass a separately-calculated size for the children. 020
Aaron Christiansen @aaronc.cc · 28/11/2025Having a crack at a project I've been thinking about for a while. An OpenSCAD-alike where you can introspect objects you've already drawn - which means less thinking about how to structure your variables for quick thrown-together 3D prints. First prototype works well! 030
Aaron Christiansen @aaronc.cc · 09/11/2025I found out about the “Paged Out!” Magazine, which publishes one-page articles about programming and computing. I absolutely LOVE this pagedout.institutepagedout.institutePaged Out!Deeply technical zine. And it's free. 140
Aaron Christiansen @aaronc.cc · 01/11/2025Seeing if I can put together a tiny macro pad to live in my work’s office - I miss my macros when I’m not working from home! First steps - a 3D-printed plate with hardwired Gateron Browns (with jumpers I now realise I’ve made far too long)… 100
Aaron Christiansen @aaronc.cc · 28/10/2025New Twilight Sad, wooo! Fantastic start, can't wait for more... www.youtube.com/watch?v=P9zu...youtube.comTHE TWILIGHT SAD - WAITING FOR THE PHONE CALLYouTube video by thetwilightsadofficial 010
Aaron Christiansen @aaronc.cc · 25/10/2025My Jujutsu problems were caused by .gitignore being case-sensitive. Turns out I've been relying on case-insensitivity for a long time - macOS and Windows will do that to you ;) Patched in case-insensitivity, and now Git and Jujutsu agree with each other: github.com/AaronC81/jj/...github.comfork: case-insensitive .gitignore · AaronC81/jj@f4a2143 010
Aaron Christiansen @aaronc.cc · 20/10/2025I’ve landed a little warning improvement in this release! Gleam was a lovely codebase and community to contribute to - high hopes for where this language goes in the future 170
Aaron Christiansen @aaronc.cc · 15/10/2025What if we were 3D printing decades ago? Downloading STLs over dial-up? I mocked up Cura for Windows 95 220
Aaron Christiansen @aaronc.cc · 09/10/2025After a few days - this works alright! Only issue is there's some disagreement between Git and Jujutsu about a few files from LFS - Git is tracking them, but Jujutsu thinks they're new. If I delete them, Git sees the repo as dirty, but Jujutsu is happy and works a treat. 000
Aaron Christiansen @aaronc.cc · 04/10/2025Having a play with Jujutsu VCS: jj-vcs.github.io/jj/latest/ You can move back to a previous commit and edit it, and all the later commits rebase automatically… coming from Git, that feels MAGIC 121
Aaron Christiansen @aaronc.cc · 22/09/2025I don’t know how long this has existed, but I’ve never spotted it before… Apple Photos smooshing together geotagging and event listings to give concert photos an artist tag - which you can search by! - is such a damn clever feature 020
Reposted by Aaron ChristiansenK'eeg @armormodekeeg.blacksky.app · 31/08/2025all the best windows software in history is called something like "joe's thing doer". it does the thing and nothing else and is available on a html website in plain text and takes up under a megabyte of space and uses default windows ui elements and will work until the heat death of the universe 17679491888
Aaron Christiansen @aaronc.cc · 26/08/2025This looks really promising - I’ve read a lot of praise for uv in Python-land, so having something similar on the horizon for Ruby is exciting andre.arko.net/2025/08/25/r... 000
Aaron Christiansen @aaronc.cc · 23/08/2025Echo Point Nova is one of my favourite recent indie games, a super fast movement-shooter, and the first game in a while I’ve 100% completed …and it just got an entire second map as a free update. Time to 100% complete this too 😁 020
Aaron Christiansen @aaronc.cc · 22/08/2025I enjoy using keyword-argument-heavy languages, and IMO an underappreciated feature is letting arguments have different external vs internal names. An example in Swift - variables named “of” and “with” would be unintuitive inside the function body, but read naturally when calling 140
Aaron Christiansen @aaronc.cc · 17/08/2025I suddenly remembered the Parallax Propeller - a microcontroller with a custom architecture and language, which I saw mentioned on Arduino forums back in the day and thought looked super cool. Turns out they released a second generation a few years ago! Awesome… www.parallax.com/propeller-2/parallax.comPropeller 2 - ParallaxMulticore Specs 020
Aaron Christiansen @aaronc.cc · 05/08/2025I've been playing with Gleam, a little compiled language targeting BEAM (Erlang's runtime) and JS. I like a lot of its ideas, it's the closest I've felt to writing "garbage-collected Rust". My favourite trick is the `use` keyword, which is like a generalisation of JS' async/await transform: 120
Aaron Christiansen @aaronc.cc · 07/07/2025New article! Ruby's blocks share many similarities with the anonymous functions found in other languages - but how are they different? The unique control-flow features of blocks make them perfectly suited to a wide range of applications in Ruby. aaronc.cc/2025/07/07/r...aaronc.ccRuby blocks aren't just functionsWhen you call a method in Ruby, you can pass a block, an additional piece of code which trails the method call. Let's explore how this is different to anonymous functions found in other languages. 010
Aaron Christiansen @aaronc.cc · 01/07/2025I want to start Posting More - ideally about programming, electronics, and the like. But instead, since we’re half-way through the year, I’ll kick off with a short thread about some music released this year which I’ve really enjoyed. Hopefully, you might enjoy some of it too 🎶🧵 100
Aaron Christiansen @aaronc.cc · 01/03/2025This is really exciting! Standardised RBS syntax + Sorbet's developer ergonomics = a big win for Ruby static typing 000
Aaron Christiansen @aaronc.cc · 21/02/2025My first article of the year - defmt has been a slick improvement to my embedded development experience! aaronc.cc/2025/02/20/d...aaronc.ccEmbracing Embedded Rust - from Serial.println to defmt 010