I took a few hours this weekend to experiment with building a hybrid native app with Gleam and Tauri. This post is a summary of that project. If you’d just like to see the code, I have published that at:
Hi I’m Wes 👋. I like warm weather and tinkering with computers; ranging from small microcontrollers, up to large servers and the operating systems that run upon them. I’m a Rustacean with a fondness for mechanical keyboards. Read more on the about page →
I use Chimera Linux as the primary OS on my laptop (as opposed to my desktop, which is still running Arch Linux for now). Chimera was created in 2021 and reached alpha status in June 2023. Chimera was built from scratch and as the name suggests it comprised of a motley crew of components:
- Kernel: Linux
- Toolchain: LLVM
- libc: Musl with Scudo allocator
- Core userland: FreeBSD (with some NetBSD and OpenBSD too)
- Init: Dinit
- Package manager: apk
- Package builder: cbuild
The project and its development is proving very useful to me for seeing how a Linux distribution is built and evolved over time. Watching it progress (and helping a little by maintaining some packages) has helped expose some lesser known (to me) components that make up a typical Linux system, and their role.
Recently systemd-sysusers was introduced. Some folks might find this surprising as Chimera does not use systemd for the role of pid 1/init. As mentioned above it uses Dinit for this. Some standalone parts of systemd are used though. Currently:
- and now,
I had not encountered
systemd-sysusers previously (even though it’s probably
used on the systemd based distros I’ve used before), so I thought I’d jot down
what I learned about it and how it’s used (at the time of writing) in Chimera.
I tried creating an OpenBSD 7.3 virtual machine on my new computer (Arch Linux host) and the installer kept crashing with the error:
dc_atapi_start: not ready, st = 50
fatal protection fault in supervisor mode trap type 4 code 0 rip ffffffff810089d9 cs 8 rflags 10282 cr2 287eb3000 cpl 6 rsp ffff800014fd11a0
gssbase Oxffffffff818fbff0 kgsbase Ox0
panic: trap type 4, code=0, pc=ffffffff810089d9
syncing disks...12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 _
I decided I wanted to add some more local folks into my YouTube subscriptions. I put the call out on Mastodon for suggestions for folks doing videos about machining, woodworking, electronics, software, that type of thing. I received a number of helpful replies and thought it might be useful to collect the list (as well as ones I’m already subscribed to) on this page in case others are looking for new channels to check out.
Instead of using my funemployment to build useful things I have continued to build things for old versions of Mac OS. Through some luck and a little persistence I have actually managed to get Rust code running on classic Mac OS (I’ve tried Mac OS 7.5 and 8.1). In this post I’ll cover how I got here and show a little network connected demo application I built—just in time for the end of #MARCHintosh.
After my post on trying to run
Rust on Classic Mac OS post I continued trying to
find a modern language that I can use to build classic Mac OS software. I’ve
had some success with Nim and built a little
temperature converter application. As part of this I wanted to be able to use
ResEdit to edit the layout of the dialog. The problem was that I need a way
to convert the modified resources back into the textual representation used in
the source code. In this post I describe how I did this with
I recently discovered the ATPrewind account on Mastodon. It’s an account sharing “gems discovered while re-listening to @atpfm from the very first episode. By @joshua”. ATP is a tech Podcast that’s been running for about 10 years. Each post (so far) from ATPrewind includes a short clip from the show in the form of a little video.
This post describes how I was nerd sniped into creating a podcast from the ATPrewind posts.
I recently acquired a Power Macintosh 9500/150 and after cleaning it up and building a BlueSCSI to replace the failed hard drive it’s now in a semi-operational state. This weekend I thought I’d see if I could build a Mac app for it that called some Rust code. This post details my trials and tribulations.
On my main machine I use an excellent cross-platform tool called Docuum that
automatically cleans up unused docker images. This allows me to use Docker
without the need to periodically wonder why I’m out of disk space, run
docker system prune and recover half my disk.
I installed Docuum via the AUR package (although tweaked to build the latest Docuum release) and ran it via the bundled systemd service definition. This worked great for a while but some time back it started failing. Every time Docuum would try to check for things to clean up I’d see the following in the system journal:
Inspired by Rach Smith’s post on using userstyles to hide YouTube shorts I came up with some CSS to hide those annoying Sign in with Google pop-ups.
A selection of projects I've built or contributed to:
Generate RSS feeds from web pages.
Font parser, shaping engine, and subsetter implemented in Rust.
View a 7-day dewpoint forecast for a selected location.
Clone a git repository into a standard location organised by domain and path.
A blog about operating system exploration.
A personal knowledge base.