Aaron Christiansen
banner
aaronc.cc
Aaron Christiansen
@aaronc.cc
Software Engineer at ETAS
Ruby, Rust, and electronics
Leeds, UK - he/him

Mastodon: @aaronc81@ruby.social
Starting 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.
November 30, 2025 at 1:40 AM
Having 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!
November 28, 2025 at 10:28 PM
With 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.
November 2, 2025 at 11:38 PM
Next day update: I tried to route wires between the switches and Pico, but couldn't figure out anything I was happy with.

So I remade the plate to have the Pico integrated, which made the wiring much easier!

The blank space doesn't look too great, but I can always vinyl-cut something to go there
November 2, 2025 at 8:32 PM
…and a little Rust program for the Pi Pico, using Embassy to send keypresses for F13-F18 when pins change.

Embassy makes USB device implementation pretty straightforward 🦀
November 1, 2025 at 9:50 PM
Seeing 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)…
November 1, 2025 at 9:50 PM
I’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
October 20, 2025 at 10:24 AM
Of course, 3D printing caught on quickly, so Microsoft added native support for connecting a 3D printer to your computer
October 16, 2025 at 11:33 PM
What if we were 3D printing decades ago? Downloading STLs over dial-up?

I mocked up Cura for Windows 95
October 15, 2025 at 6:31 PM
I 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
September 22, 2025 at 8:54 PM
Echo 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 😁
August 23, 2025 at 8:28 PM
I 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
August 22, 2025 at 7:21 PM
And of course, like any good language feature, you can use it for Funky-Looking Shenanigans™
August 5, 2025 at 9:30 PM
You could also use this for resource management, like deferred finalisation.

Gleam doesn't have early returns, so you don't need to worry about that skipping your clean-up.
August 5, 2025 at 9:30 PM
When made this flexible, it can take place of what most languages would implement as disjoint syntactic sugar.

For example, error propagation through the `Result` type, which replaces a dedicated "try" operator:
August 5, 2025 at 9:30 PM
I'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:
August 5, 2025 at 9:30 PM