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 · 04/09/2026Thanks Geoff! Surprisingly there are quite a few places with CRS codes which aren't train stations, so they also appear in this list - including some bus stops, like Preston Park. Occasionally these can appear as part of routes, if a bus is faster than a train for a specific leg. 010
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/2026To find candidate stations I use this National Rail map (railmap.nationalrail.co.uk) and this dataset of station foot traffic (dataportal.orr.gov.uk/statistics/u...). "Quick check" tells me if I've used a station before, and links to Realtime Trains so I can check that services are frequent enough.railmap.nationalrail.co.ukRail Map 000
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 · 01/06/2026Awesome, let me know if this works for the spreadsheet: api.loconundrum.aaronc.cc/history?incl... (Or, to omit today's puzzle to avoid spoilers: api.loconundrum.aaronc.cc/history) Should update live as soon as midnight rolls over :)api.loconundrum.aaronc.cchttps://api.loconundrum.aaronc.cc/historyLTN MBR CAR SLO BSK GLQ NRW NMP MIA SHF PRE NCL EXD SVG MCV CTR BDI CBG IPS PBO BTH PLY DON LBO BHI BTN SSD SWA LIV LDS COV RDG GTW MKC DAR YRK ABD SOT NOT EDB DBY DEE DHM LEI HUL CRE OXF LAN WVH LMS ... 110
Aaron Christiansen @aaronc.cc · 01/06/2026Are they looking for data which will continuously update every day, so the spreadsheet can be kept up-to-date by pulling the data daily? If so, I can try setting that up in the coming days! But if you only need the days between #75 and today as a one-off, let me know and I can provide those too :) 100
Aaron Christiansen @aaronc.cc · 29/05/2026Hi! Glad you’re all enjoying Loconundrum. I’m away from my laptop at the moment so the best I can give is a list of the CRS codes (without station names) from puzzle #1 to today’s #75 - hope that works for you! pastebin.com/dUyX8D1Wpastebin.comLTNMBRCARSLOBSKGLQNRWNMPMIASHFPRENCLEXDSVGMCVCTR - Pastebin.comPastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time. 200
Aaron Christiansen @aaronc.cc · 27/05/2026It thinks the route with many changes is faster enough to be worth taking - but I disagree! I'm fine-tuning the routing on the new experimental branch, which now gets this right and picks the direct service. Feel free to join and share any more feedback: loconundrum.aaronc.cc?experimentalloconundrum.aaronc.ccLoconundrumA daily game: can you guess the UK rail station? 110
Aaron Christiansen @aaronc.cc · 27/05/2026Oh no! Are you happy to let me know your starting station so I can take a look please? (Followed so you can DM if you’d prefer) 100
Aaron Christiansen @aaronc.cc · 10/05/2026Thanks! There's a hand-curated pool of stations which it can pick from. This started off with mostly major stations, but I'm starting to run out of those, so I'm throwing in some slightly less-visited ones too. 010
Aaron Christiansen @aaronc.cc · 10/05/2026Thanks for the report! If you're happy to reply or DM me your starting station, I'll add this to my list of routing quirks to investigate. 100
Aaron Christiansen @aaronc.cc · 28/04/2026Thanks! Yeah, it’s a hand-curated list of stations that I’m reasonably sure most people will have heard of. I manually filtered the top ~200 entries of the station footfall rankings. Over time I might start introducing some slightly trickier ones, but I think Millom is probably a while off 😉 020
Aaron Christiansen @aaronc.cc · 28/04/2026Agreed, that seems like an unnecessarily complicated route - I’ll see what I can tweak to handle that better. Thanks for the report! 110
Aaron Christiansen @aaronc.cc · 24/04/2026Thanks @rangerrenze.bsky.social for the spot and letting me know :) 000
Aaron Christiansen @aaronc.cc · 24/04/2026Right now it's a manually-curated list of mainline stations. The difficulty's been about right for a while, but people are definitely getting better! I might start mixing in some less mainline stations in the future. I've also seen suggestions for a "hard mode" which sounds interesting 👀 100
Aaron Christiansen @aaronc.cc · 24/04/2026Ah, damn 😣 Thanks for letting me know. Birmingham New Street is the wrong one - I've hotfixed the site and it should be sorted now. bsky.app/profile/aaro... 000
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 · 23/03/2026Thanks! The walking routing is currently very naive and optimistic, I’m going to look at ways to fine-tune it in the future. 000
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 · 31/01/2026Every single OS update I think to myself that they must’ve fixed this by now, then check Balance Lock and it says “fixed 10 minutes ago” 000
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/2026SF Symbols has some kind of alias system - if you search "refresh" you will find "arrow.clockwise" - but it doesn't show all of the known meanings of an icon in any obvious way. If you're scrolling through SF Symbols looking for an icon which looks about right, those aliases aren't obvious. 000
Aaron Christiansen @aaronc.cc · 05/01/2026The inconsistency of icon usage between apps is really interesting, and I wonder if it's consequence of how SF Symbols (Apple's icon font) is organised. Icons are named by SHAPE, not PURPOSE. That could make it more likely for different apps to assign different meanings to the same icon. 100
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/2026Even better, this ancient version still supports WebSocket integration, so there are some fun browser toys you can play around with. I enjoyed flailing my hand to interact with this particle simulation (which also works with a mouse): molefrog.com/etc/knife/ 000
Aaron Christiansen @aaronc.cc · 04/01/2026Windows is more promising, because there are older (so more compatible) driver versions available, still branded as "Leap Motion". After downgrading from v6 to v2 drivers, with a manual patch for Windows 10+ (web.archive.org/web/20250309...), this device works with some of the stuff on itch.io! 110
Aaron Christiansen @aaronc.cc · 04/01/2026I suspect the development scene was more active when this gadget first released 😅 In an itch.io search for "Leap Motion", every macOS game is either too old to run, or can't see my hands. The Windows driver doesn't support ARM, so no Parallels. I'll have another go later on an x86 Windows PC! 110
Aaron Christiansen @aaronc.cc · 04/01/2026The infrared camera actually shows up to macOS as a camera, but sadly selecting it doesn't seem to work - the video freezes on the old camera. I won't be giving my colleagues Ghost Hunters-style Zoom calls any time soon 100
Aaron Christiansen @aaronc.cc · 04/01/2026The software is now distributed as "Ultraleap" - somewhat amazingly, It Just Works on my Apple Silicon Mac. The hand tracking seems pretty good! It feels more responsive than my Quest 2 or 3 in this demo window. 110
Aaron Christiansen @aaronc.cc · 04/01/2026The crucial requirements for "startup gadget from 2013" are ticked: * Dead links in all of the box paperwork * Micro USB 3.0 100
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 · 01/01/2026Thanks! I’ll keep adding primitives, and polish the editor, until I’m happy using it for 3D prints (mostly organisers or electronic project boxes) Aiming to be as parametric as OpenSCAD, where you write code to calculate measurements based on other ones. More procedural/functional than declarative. 120
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 · 12/11/2025Inline RBS feels like something Ruby 3 needed from the beginning, and now that it’s here it looks really exciting! Need to find some time to play with it and see how it actually feels to use… 010
Aaron Christiansen @aaronc.cc · 09/11/2025I read a lot of physical magazines when I was younger - Linux User & Developer, NET, The MagPi - and enjoyed the layouts too. You can get a bit creative with your page in a way that’s harder with an online blog that needs to support different device sizes 120
Aaron Christiansen @aaronc.cc · 09/11/2025Online blogs are great, with a lot of quality content nowadays, but I struggle to actually find new stuff. Aggregators like HN/Lobsters/Reddit only show you a title. Feed-based socials are too noisy Magazines make you flick past everything, and you might catch a glimpse of something interesting 120
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 · 02/11/2025With the 3D-printed base added, and some spare "retro" keycaps, it's good enough for me to call it done! On the software side, it only needed some little tweaks to support the extra three keys, and swap to active-low because it made the wiring easier. 010