2024–W47 #

  • Gaming PC being downstairs is working well.
    • Doing Linux music stuff, it's okay
      • Constraints are helping, I think. Rack + DecentSampler + Vital + Reaper.
      • VCV Rack is a very deep environment, you can do a lot just inside it.
  • Finally learned how to make boolean operations on paths do what I want in Inkscape
    • I'm CNC engraving some stamps and I wanted to create a negative shape to feed into Easel.
      • Before figuring this out I had to either boot up the Windows machine or use my iPad and Affinity Designer, which is silly.
  • Looked up the next steps for ARIN registrations etc.
  • Played a lot of Cult of the Lamb.
    • I might be ready to give Elden Ring another try.
  • Much bicycle stuff!
    • Had a lot of fun on my fixed gear, changed out the brakes for better ones.
    • Swapped bikes with my son for a ride, decided his bike was borderline unsafe and not a good fit for him, convinced him to get a new bike.
      • He is, unsurprisingly, much happier with this new one.
  • Discovering that I can have multiple "panes" of tabs with Sideberry is a game changer.
  • Going to BSides Ottawa this week; hope to have fun. It was good last year.
  • Started playing D&D with family. First session was good.

2024–W46 #

I have a work in progress Go utility to generate my static HTML files for my music library: Atmosphères. A good way to learn how many things do not want you to use accents in the names of things (Go modules, SourceHut project names).

It's been nice to write a little Go thing that's more than a script but smaller than, say, Shardlifter. It's big enough to bother checking err != nil but not so big that you can't panic when you detect an error.

The single-binary thing really feels like Go's killer feature. I also learned (via the town con command on tilde.town) that you can embed arbitrary data into strings, []byte arrays or pseudo-filesystems at compile time. This really lets me ship things as a single binary, even if I end up including HTML templates or even images.

Also learned about CSS grids and subgrids which are amazing. So much of what a framework like Bootstrap brought to the world 10 years ago was a working grid, and now we can just ... have one. In native CSS. Progress is a fine thing.

I've repurposed my gaming PC as a shared machine and moved it to my wife's office. Since getting the Steam Deck my actual Windows machine has been wasted, with it's relatively nice 3060 video card and 11th generation CPU. Also, Windows has been less and less pleasant to use for non-gaming things, so ... good riddance? It was good for music things but I have Reaper, VCV Rack and a couple of plugins all supported on Linux so let's see if constraints help bring out creativity in me.

UPDATE: I have done MIDI to Linux. Using VSTs seems pretty crashy but I think that the thing that works best for me is to run standalone instruments under pw-jack and Reaper without third-party VSTs. Then I can sent MIDI to DecentSampler or to VCV Rack and record their outputs (if I need to) with a minimum of things going wrong. It would make hopping between projects a pain but I don't really do that -- I rarely revisit things once I've bounced to an MP3 and uploaded them somewhere.

2024–W45 #

Bikes were one thing: this week has mostly been plumbing. Not in a good way! A slow leak at Stevenage and we had to rip out about a square meter of ceiling, about the same of floor tiles and throw away the old sink cabinet. We've simplified the plumbing, which was totally nuts, and replaced seals which had degraded. In some ways, it's like bike maintenance, but wet. We ended up getting a new sink because getting a cabinet compatible with the (perfectly fine) sink was more difficult and expensive. At least we re-used the drain and the faucet tap.

Although it's also been bikes: 4 layers of filler-primer and much sanding and my frame and forks are looking okay. They definitely would not pass for new, but I like it. I'd be tempted to keep the bike "primer grey" but I know it won't take clear-coat well. Excited to do the paint layers and move towards making it rideable again; I have big wide bars to try out and basically all of the parts arrived. Not freed the right-hand pedal from the cranks yet, though.

For computers: I'm building a static HTML view of my music collection with a player. That's already working, but I'd like to use HTMX to give me a player which doesn't stop as I navigate between albums. This is part of my "serverless" fascination -- moving from Navidrome (which is good and all! but overkill) to the smallest thing which would work, and which would not require me to run another full-time service. (I don't mind having something to sync the HTML with the MP3s now and then -- a CI action? or maybe just a cron ...). Ideally this would be a piece of software I can ignore for years and come back to find it working, and not another source of dependency and version update rot.

2024–W44 #

Well, the "technology" this week has mostly been bicycles. I was away in New York state for three days and then covered in bike grease for the other two.

No bad thing!

I bought a rusty but rideable fixed gear conversion from an 80's-style racer and I rode it a few times before tearing it apart. So far I've had success freeing the bottom bracket, fork, brakes, wheels, cranks and one pedal. The other pedal, along with the seat-post seem stuck fast. I have hope for the other pedal (otherwise I have to buy a new crankset) but I doubt I can get that seatpost out. Luckily: it's in good condition and about the right height for me.

I've got a steerer-tube conversion (threaded to threadless) and new bars and grips on the way, along with paint and primer to give it a new look. I already have enough chain to replace the rusted one, new bolts for the bottle carriers and wheel nuts, along with replacement brakes, pads, levers and I think I should have enough cable and cable sleeving. I suppose it helps to be a hoarder for bicycle parts. If I can free the other pedal, I have another set that I prefer to put on there.

2024–W43 #

I attended P99CONF and if anything I'm even more interested in serverless databases (I watched a talk by the SlateDB folks - though I was already aware of them).

Also had two reminders that modern hardware is much better than older hardware even if comparing clock speeds doesn't make it clear:

  • I encoded the same video with a 6 Core 12th generation i5 with AVX2 in almost the exact time as an 20-core dual Ivy Bridge 2470v2 machine which lacks AVX2. Clock speed is one thing, but CPU features are another (never mind power draw!)
  • I'm not getting the speed I expect from my 10G NICs and it looks like it's because I have a mix of PCIe generations among my machines (even back to 1st gen on my file server) and that x8 slots are actually only being served by 4 lanes. The modern machine mentioned above has PCIe 4.0 and it's not even fancy; just newer.

This will probably lead to me powering down my file serving duties from a 6-disk multi-pool ZFS set up which can't saturate 10G and is drawing too much to just a single SATA drive + the NVMe in box -- the modern machine. All of the data is backed up elsewhere or it is itself a backup so running 1x isn't a giant concern for me.

(The older generation machine does have great deal of RAM though, so when the right memory-bound workload comes along it'll go back into active use).

2024–W42 #

As I've finished at archive.org I did some hardware maintenance:

  • Moved the NVMe SSD from the 1U HP box to my Mini-ITX machine
  • Moved the SATA SSD from the NUC into a second bay in the 1U HP server
  • Left both powered off

See, since I have extra compute capacity from Kimsufi I am leaning towards running less from my home. I still have feelings about self-hosting, like with ttw, but also about the amount of hardware complexity I have invited for no reason other than to have something to tinker with. When that tinkering brings joy: go for it, but when it feels like a time-sink or drudgery: not so much!

I'll still end up running something from my house, probably the Acer business computer with an NVMe and a single large HDD to serve as on-site backup -- but some of other things which are dynamic (like ts.binch.top, ironically) as well as my music collection and video library could actually be served from static file storage (or even object storage + a nice frontend) instead of requiring raidz volumes and filesystems -- as cool as those are.

This ties in with one of my "avoid mental pitfalls" values ("Virtual can be better than physical") and one of the areas I wanted to learn more about for my thoughts about my future in computing ("Serverless databases").

Virtual can be better than physical

This is a reminder that tinkering with lots of old, small or underpowered computing doesn't give me that much joy. I don't need a dedicated NetBSD or Haiku machine: I can use a VM, on my already very capable VM host. The same goes for trying to acquire or fix-up vintage hardware: I, personally, would be as happy or happier with an emulator, and sometimes need to remind myself of this.

Serverless databases

Having run various databases for organizations for almost my whole career, I think that many deployments of many database technologies are overkill, and we are doing them by rote or because we learned out-of-date lessons. I think other people feel this too, given the rise of SQLite to solve all sorts of problems people would have jumped straight to PostgreSQL or MySQL for in the past.

My basic theory is that, given good locking primitives and data-structures, many light uses of databases could be replaced with flat files or object storage. Cache is cheap, and loading entire pages from SSD is so much faster than it was from spinning-disk (and seeking is almost free). That's not a new observation, it underpins things like ScyllaDB's approach -- but they are in the business of selling a product and taking that observation and solving "big" production data problems with it. I'm much more interested in solving small problems:

  • How many uses of Zookeeper or etcd could be an S3 bucket with CAS/PutIfAbsent semantics?
  • How do RocksDB/LevelDB's LSM architectures map on to object storage?
    • Kafka KIP 405 lets Kafka use object storage for the cold segments which aren't being written to -- but all access is still intermediated through Kafka brokers, requiring servers. What would it look like to consume data straight from a bucket and not need a client library or a daemon when bulk-loading?

2024–W41 #

I've simplified my office as I move back to one laptop for everything.

Firefox profiles are pretty great for splitting work and personal but the UX of using them sucks compared to Chrome. I know it's easy to take pot-shots from the outside but this feels like it "just" needs some polish to provide an experience similar (or better!) to Chrome's user profiles? (You need to visit about:profiles to create or launch new profiles).

When I am done with my Internet Archive dev VMs I will take downtime on the 1U server in the basement and steal its NVMe drive for the mini-ITX machine I built. I'll probably take the old Nook SATA SSD and add it to the 1U server as a trade? 10Gb networking hasn't been the major upgrade I thought that it would be. No further experiments with BGP for the time being, although everything that was set up is still working.

I've only done two Looptobers so far, and I really only enjoyed the first one, but I'm not letting it get me down. There's been a lot on! I've found "giving in" and using Live instead of Reaper some of the time has been good for me -- I'm too much of a purist about doing things the hard way.

I set up an IRC bouncer last month and I should have done this a long time ago. I'd like to get mentioned bridged to my phone (maybe via Pushover) -- that'd be the icing on the cake, I think?

2024–W40 #

Time for thinking about technology has been limited lately, and this log is mostly supposed to be about what I've done and not more abstract things but also it's mine and I'll do what I want.

  • Built a Mini-ITX PC
    • Not because I needed it, but because the Mini-ITX motherboard I bought for a 1U server does not fit correctly, so I ended up adding a case and using the PSU I had to round it out.
      • Yes, this is nuts, but I was annoyed by it being incomplete: at least now it can be a computer.
  • Thinking about aesthetics of programming environments
    • Literally: "what do I like", in the absence of having to use an environment because of work or pre-existing code.
      • I think I might like Go? I definitely prefer having a static binary than shipping (say) a virtualenv because I want to run something.
      • I think that I prefer all of the explicit error checking more than throwing and catching exceptions, and more than ?/.unwrap(), too.
      • I like types, but I also like them fading into the background.
      • I like not having too much syntax, and gofmt just deciding "this is correct, nothing else is permitted"
    • I've also been thinking about persistence, given that I've mostly been working on a big distributed SQL database on top of HDFS for the last few months.
      • After years of deriding "serverless" I think I am ready to consider what simpler things built on top of object storage can do.
    • And I like SQL, if the alternative is an ORM.
      • sqlc seems like the right kind of thing for me -- ahead of time generation of boilerplate for getting things into and out of SQL queries -- but the SQL queries are just written in your engines own dialect; not a crappy version of SQL re-implemented in Python/Rust/Go/Ruby

2024–W38 #

I did so much last week that I didn't have time to write it up for week notes.

Mostly, a bunch of time went on hardware things. I bought 3x dual 10GB NICs, thinking I could arrange them into a ring network using Linux bridge devices. (Spanning Tree would stop it creating an actual loop). I bought three DAC cables to go with them.

Only one of the cards worked, which was a pain, so I ended up getting a different, Intel-based, one and putting that in my storage machine. So only one hop of my network is 10G, but that's okay. I get about 480Mbit/s over the link. I am not sure what the bottleneck is; a topic for future study.

While I had the 1U HP server open I decided to swap out the hardware RAID controller for an NVMe drive on a PCI add-in card. This meant moving from SAS to SATA -- I could plug the SFF/Mini-SAS cable into a convenient slot on the motherboard, but the internal B120 controller can only do SATA. But I have SATA SSDs, so I think swapping a RAID of battery-backed 10K RPM disks for a single SSD is probably at least a draw if not an improvement.

I bought a cheap motherboard to stick into that 1U case, thinking I might need a router soon, along with a PCIe extension for the 10GB NIC. Well -- the motherboard arrived but the clearance it needs at the bottom is more than the stand-offs on the case allow for, and if I lift it up then the lid on the case won't fit. Awesome. And that's without adding the cooler. I thought I had an 1155 compatible cooler but I didn't, so that went on the shopping list too.

Having bought this motherboard to complete the case I already have, I will probably end up buying a 2U case. Life's funny like that sometimes!

In software I also set up a fresh Wireguard VPN and then put a VXLAN over that and BGP over that, using FRR. FRR is the modern-day successor to Quagga (itself a successor to Zebra) so it's familiar territory. I can't wait to be speaking BGP for real. I also dug out an article I wrote on how to do high-availability services using BGP. It's gone from the original iWeb blog so I found a copy on Wayback. 12 years!

2024–W36 #

Techie stuff:

  • Learned some more details about WSGI for a work-related thing
  • Now looking into Nomad as a Kubernetes-like
    • It's funny: I really don't like Kubernetes, but now I realise I have quite a bit of muscle memory built up and an understanding from several years of usage. Starting over with a similar-but-different stack is intimidating.
  • It's been a while since I wrote much Rust. I decided to just open some Go and some Rust that I wrote and look through it to see how I feel. Maybe it's relying on my subconscious too much but I am definitely happier at the prospect of writing more Go and not so much at writing more Rust.
    • Although, to be honest, for almost everything I am writing at the moment I'd probably write it in Python first.
    • One of the big wins for both Go and Rust is shipping a binary though, not a whole bag of source code and wheels like one does with Python.
  • Fn+Left Click turns off tap-to-click on the Logitech K400 keyboard I am using. Game changer!

2024–W35 #

Wow, I missed week 34 entirely. Not great!

  • I started and am many hours into Tactical Breach Wizards which is great.
  • I saw Cage the Elephant on their Neon Pill tour, with D.
  • I continued to spend a lot of computer time on Debian packaging and Python things (mostly work-related).
  • I installed the final railing around my front porch, closing it off from the side. Now my new, not very good, path to the front door is the only way onto it.
    • Yeah, I'm not thrilled with the work on the path (done by a contractor).
  • Dumbing my phone continues although I put YouTube back on for a train trip and I had to install the Ticketmaster app because I don't think there's any other way to get into one of their concerts now
  • Wanted to buy some mainstream music and I found 7Digital exists in Canada. These were a big name when I worked on music websites in ~2010 and literally their website looks like it could come from 2010. (But I love that).
    • Sadly they are now owned by Songtradr, who also own Bandcamp.
      • Bandcamp good: Songtradr bad.

2024–W33 #

  • ~~Not done the TPLink replacement yet.~~
    • Now I have and it's pretty great. I mean, most of the "win" is moving from WiFi 5 to WiFi 6 but I'm just happy there's other "good" wireless gear that isn't Ubiquiti -- I haven't been their target customer for a while, I guess.
    • That said: TP Link Deco only being configurable through an app? Fuck that. This was a free AP I got from my ISP, so it's relegated to a separate dedicated network and not part of my house-wide "BradyInside" network (which is all in-wall access points).
  • I have packed up my office downstairs in the house and am moving back to my old office upstairs
    • Which is currently my youngest's room -- he's only in there because his old room was taken by his older brother when he moved back in.
    • But he's moving back out, so we reset things to how they were.
    • I suspect something about either the whole house, or my office, is making me sick -- so this gives me more data, I guess.
      • If I work from coworking: I do not get a dizzy spell. Increasingly I do get them at home.
  • I am having another pass at "dumbifying" my iPhone -- only putting messaging and communication apps on there, running it in black and white, making it unappealing.
    • I watched some videos by Digging the Greats which resonated with me, and made me want to try this again.
      • I've done this before, it worked for a bit, but that's no reason to not try again. Literally nothing is forever, including good or bad habits, IMO.
      • I'm moving some of my fun stuff over to the iPad -- it's not that I'm giving up podcasts or Mastodon or whatever, it's that I'm not carrying them around in my pocket. They have a time and a place (and a device).
      • I also got a new Kindle a while ago and so I'm trying to bring that along in places I would have used my phone to entertain myself (commute, couch, lunch-break whatever).
        • I read most of Atomic Habits when I was staying at an AirBnB that conveniently had a copy -- defaulting to reading books instead of ephemera seems like a solid way to increase the number of books read, and a very small change I think I can consistently pull off.
  • Going through the Django tutorial because it's been so long since I wrote a Django app it's better to pretend I never did and start ab initio.
  • Fought some Terraform this week. Man; I dislike this tool intensely. It feels like a necessary evil when you're in the cloud but an ... unnecessary evil when you're not.
  • Set up another email domain with Migadu: Migadu -- it's good :tm:.

2024–W32 #

  • Switched to Distributel broadband.
    • It's good but I was off to a rocky start: I moved the install date (Bell engineer) without moving the activation date (PPPoE credentials are enabled) and so I was without Internet for about 24 hours.
    • Good thing I moved ttw first!
    • It's much, much cheaper and it gives me a Nokia ONT rather than relying on the unsupported hack of taking an SFP out my old Bell modem.
  • Two of the adult kids are moving (back) out soon, so I'm going to take this opportunity to move where I work from and also to make some changes to our house networking.
    • UniFi stuff is all going and being replaced with the equivalent TP-Link Omada stuff. Running the controller is increasingly annoying and if anything all I've found is my UniFi experience getting worse.
    • I have one Omada AP already and at least I can configure them individually without needing to use their SDN software (although I might use that, we'll see).
  • I'm using GNOME and not a basic X11 WM for the first time in a long time.
    • Partially I wanted things like my Bluetooth devices and hotplugging screens to just work
    • I've set up keybindings that are pretty similar to what I was using with cwm and I mostly run three or four apps in full-screen on different desktops so it's not been very jarring

2024–W31 #

  • Got a very cheap Kimsufi dedicated server to move ttw to.
  • Arranged to change ISP from Bell to Distributel (which is also Bell). Hoping they'll fit an ONT with an RJ45 on it so I don't need to rely on the SFP I pulled out of my old Bell router.
  • A lot of work time not enjoying Raft protocols failing when used over unreliable network links.
  • Got a Meshtastic radio up and running but absolutely no one is in range. In theory there's a node at Algonquin College, maybe I'll ride up there and see if I can at least make contact (doesn't help me at home, of course).
  • Failed to 3D print sometihng reasonably plain due to difficulty taking off supports. Support is such sweet sorrow.
  • It's been about a month since I wrote serious Rust and I can feel the knowledge trickling out of my brain...
    • I did make some changes to my Atkinson dithering implementation to output black-and-white images, but that didn't really require thinking about Rust, just thinking about my problem.

2024–W30 #

  • Did more oil painting but low-key ruined the portrait of Zeus (the dog, not the god) I was in the middle of. Trying to be calm and dry out the new layer and tell myself everything can be painted over. We'll see. This was an ambitious thing to try in the first place.
  • Learning the current state of Python packaging and linting. There's a lot of change out there from the days of requirements.txt. I also learned some GitLab CI -- which is effectively the same as most other CIs as everyone (but Jenkins) converges on a YAML file with containerized steps. These things are related.
  • It was another very tiring week with a lot of fixing (and some breaking) of stuff at work. (Writing this on the Sunday after week 29, not after week 30. Let's see, I suppose!)
    • Update from Thursday: yeah, there was more.
  • Had my first pint of alcoholic beer in a long time.
    • It ruined my sleep and I don't feel like I was missing a lot
    • Giving up alcohol probably one of the bigger changes I've been able to stick with in the last few years
      • Coffee, meat and salt have not fared so well.
  • Building Debian packages again. Honestly, before we all went Docker-crazy in devops-land, Debs are probably one of the finer ways to package your artifacts for deployment.
  • Met friends for lunch; as always, one of the best things you can do.
  • Getting interested in Meshtastic's LoRa mesh network. All my radio hobby stuff has been HF for a long time -- maybe ISM bands can be fun, too?
  • Had bad news about my dog, Zeus. Not sure if I can bring myself to finish his painting now. Or if it means I really must do.

2024–W29 #

Last week got busy quick and so I didn't update my weekly log before it was published.

The drive to Kingston was pleasant; real Ontario landscape: straight roads, so many trees, rock faces. We stopped at Mallorytown to charge the car and it's encouraging to see the EV chargers heavily used -- but the state of EV charging still kind-of sucks. You basically need an app for every different charging company / system. My son came down to Kingston to spend some of the weekend and needed to charge and doesn't really understand why it's not just like buying petrol: use some KWh and pay with your card when you're done.

Relatedly, I listened to a podcast about the Controlled Digital Lending lawsuit that's happening at Internet Archive and the line that "if libraries didn't already exist they would never be allowed to be created today" came up.

I think this is actually true and also I think if gas stations were created today they would all want you to pay with different apps. They already want you to use their loyalty cards. It's just that EV charging networks don't have a legacy of letting you pay a person in a booth or using just a card to anonymously pay.

I already come across as pretty anti-capitalist but it's a reminder that as it's become possible to gate things with technology, it's clear that's all that was holding back large companies. Airlines that only let you order food using their app (which you need to create an account for). EV companies that only let you pay with their app. If Loblaws could force you to create an account to use their grocery stores, I think that they would.

I am not a tinfoil hat cash-only user, but it's clear that (without EU-style consumer protections) we're heading towards an anonymity-free future when it comes to interacting with commerce. (Which, blood on my hands, I helped nudge forward in my time doing database things at Shopify, I suppose).


I started using ListenBrainz and it recommended a user to follow who's recommendation list is distressingly similar to music I listen. Obviously: I asked for this, it's part of why I'm uploading, but it's alarming to find out there's a "type of guy" and you are it.

2024–W28 #

Sunday ~funday~ landscaping day. Dug out and levelled a spot for some pavers at the end of my side steps. I laid them and filled the gaps with sand and have levelled the steps do. Hopefully the last messing around with this I need to do before next year.

Using Directus CMS for Clink has made me far more likely to post there already. It's about a draw with Thymesheet -- no better, no worse.

Helen and I are going to Kingston, Ontario for a week. I'll still be working and we're taking Zeus, our foxhound. It'll be a nice change of scenery in the evenings and weekend though. I have not taken enough advantage of having adult children at home; one day it won't be possible to leave the house and know things will be taken care of. (Also we'll have to take the other dog or find someone to take her; neither of which I relish).

2024–W27 #

  • Fit cadence and speed sensors to my bike
    • I need to use Wahoo to use them? Strava doesn't support them directly? This sucks.
    • Took the opportunity to do a few tweaks: aligned my bars to forks, put gunk in the tires, brought them up to 50psi
  • BBQ'd for the first time in the season. It was okay. I need to be more patient at letting the coals get hot enough (i.e. start much earlier than you think you need to start)
  • Got the 3D printer out of the basement. This SV06 is so solid; no calibration needed after a move and after 6 months sitting in the basement. :chefkiss:
  • Installed railings on my porch! Two sides done; one to go. (The fourth side is the house).
    • Used the "RailBlazer" kit which I can recommend for both look and ease of installation. Needed to use a ratchet strap to constrain the shape to a square and not let things get trapezoidal, though.
  • Attended Canada Day festivities for the first time ever (which also means the first time as a citizen πŸ₯Ή)
    • Metric were great despite their set being like ... 9 minutes long.
  • Back using Thunderbird for the first time in a very long time (since I don't love Migadu's web mail). It's pretty great, actually.
  • Read a bit into RocksDB, which is the backend for OutbackCDX
    • And then inserted a bunch of CDX indices from Common Crawl's latest data
      • And I found my own website in there, in cdx-00295. Well, a few pages from it, at least.
    • This is kinda work-related I suppose, but I'm having fun.
  • Tried a headless CMS: Directus
    • In a way headless CMS' feel like a very simplistic and commoditized way to avoid having backend developers
      • But I think of how many web systems I've built which could have been (or were!) powered by phpMyAdmin back in the day -- maybe CRUD is some very high percentage of all use cases?
    • Switched thymesheet over to using one, though, by sharing a SQLite database.
    • Had a bit of an argument with Traefik to get this to work, it was easier to pick the routes Rocket still cared about than to do the same for Directus.
    • Switched Clink over too -- the way it works it a Python script scrapes the JSON API and generates .md files and then Zola builds the site. Why yes, that is janky.
  • Started Scrobbling (kind of; uploading to ListenBrainz but I'd like to mirror to Last.fm too, might need to make my own scrobbler from Navidrome to that).
    • Gotta say: after a few months I'm loving Navidrome and it has all the features that I want and apparently none that I don't want.
      • I use Amperfy on iOS, use the webapp, and DSub on Android (where I have a dedicated old Android handset in the garage for music)

2024–W26 #

  • Started week 26 at the right time!
    • I should get a medal for this as I frequently end up putting stuff on the wrong week.
    • FWIW ISO weeks start on Sunday.
  • Moved email from Fastmail to Migadu because of layoffs that look like union busting πŸ™‚β€β†”
    • I also took the opportunity to bin SendGrid for ttw and some other places I sent email. I've felt like the free tier of SendGrid was a zero-interest-rate-phenomenon just waiting to be cancelled and the company is bullish on directly replacing labour with AI so fuck them, too.
    • I guess it's the time of the year to be militant about labour and also SMTP.
  • Did some more dithering code! I implemented Atkinson dithering and it's the most aesthetically pleasing so far. https://github.com/insom/dith/commit/00e4a4a620262d068673915b9c583e17344eac37
  • Finished the 100 exercises from rust-exercises.com
    • Some were fun and I could feel myself getting better at Rust; those "a-ha" moments.
    • Some were weird and I got the tests to pass but I suspect I just tricked the compiler vs. solving them the intended way. That's the problem with test-driven learning (like Ruby Koans etc.) -- not every answer that passes means you learned what you were meant to.
  • Tried out a new heart rate monitor for Strava rides. I also have a pair of rotational sensors to install to get my cadence vs. speed statistics.
  • I set up a little Hadoop/HDFS minicluster at home to fill in gaps in my knowledge. If you see this "fill in my knowledge" theme lately: these are things I don't 100% need to know for my job (or I would learn them in work time) but that it bothers me that I don't know well enough. I like to speak with confident authority on a topic and that means using software, not just reading the docs about how it should work.
  • Started using Bootstrap 5 for a little project. Having tried TailwindCSS and other modern things (which are probably better) it's still refreshing how quickly you can build something not-ugly with Bootstrap. There was a time around 2012 when it felt like every DevOps tool used Bootstrap: the undeniable attraction of making a pretty interface without having to learn (much) CSS.
  • I learned Sieve, or at least enough to replicate my email filters.
    • Wild that I've avoided it so long, considering I was a mail administrator for many years (as part of my job and also due to self-inflicted family responsibilities)

2024–W25 #

  • Some oil painting: working on a portrait of my dog.
  • Machining: Squaring up stock: my favourite! Kind of not joking though.
    • Seems like some random offcut I found might be stainless, which is tough to machine.
    • Not a great start πŸ˜›
  • Continued to play Pandemic Legacy Season 1 -- it's really fun so far. Our group of four players is up to May (we won four in a row but just lost our first go at May).
  • Considering creating some custom notepaper for typewriting notes on to, but (other than being fun) I can't really see a way that's going to improve over the (copious) notepaper I already have?
    • Fun can be its own reward, of course.
  • Finished my first week at the Internet Archive!
  • Set up my Macbook and realized I probably need to refactor my dotfiles into something with actual conditionals (at least the bash parts). I probably should have done this as soon as I had non-Linux machines I logged into (NetBSD/Illumos) but the macOS really forces my hand here.
    • And that's how I found out that which on Illumos always produces output even when the path isn't found.
    • It took three attempts to get something that works across macOS/Illumos/Linux but now I'm happy.
  • Relatedly: spent time with pip, pyenv, ansible, podman and other, similar friends.
  • Set up a little link blog at https://www.insom.me.uk/C/
    • It's just using Zola which is probably overkill for a few pages of HTML and an RSS feed -- but so would writing another SSG or webapp 🀷
  • It was my 21st wedding anniversary this week. Time flies.
  • Met a former colleague for patio coffee which was a pleasant way to spend time on the hottest day of the year.
  • Threaded an overlocking sewing machine. (iykyk)
  • Read up on repmgr as my new friend for promoting and demoting PostgreSQL. At a core level, the steps are basically the same as MySQL, really.
  • Set up a three node ScyllaDB cluster for fun(!) and poked it a bit, filling in some gaps in my knowledge. Found out that the amount of battery backed RAM on my SAS array gives SSD-like performance with the sizes of datasets that I'm using. Which is nice.
  • Set up NoCloud cloud-init using ISO images for building things more quickly in my home lab. This was easier than when I first did it, but that was nearly a decade ago so ... you know you'd hope it's gotten easier?

2024–W24 #

  • Wrote some ansible to automate make my home VM / physical machine / remote server set up more consistent
    • I haven't written any for about 8 years but tbh it hasn't really changed fundamentally
    • And have decided to make some changes:
      • Go all in on neovim vs. regular vim (I was inconsistent machine to machine)
      • Use Debian packages instead of binaries for things I was running ad-hoc before (prometheus, thttpd, Caddy)
      • Rotate my SSH key, which was way over due
      • Remove the last Ubuntu machine under my control and replace it with regular Debian
        • What with having to workaround things like snap and netplan I realized it was somehow more work to use the "easy" distribution
    • Update: I replaced the Ubuntu machine. Now the Wireguard tunnel, HTTP Server, Traefik config, iptables etc. are all under Ansible management. I have so much more confidence in rebooting this machine now πŸ˜€
    • I took this opportunity to make sure my VM in Wales also comes up cleanly post-reboot with some additional /etc/network/interfaces entries and the iptables-persistent package.
  • Sold a lot of stuff at a yard sale at the weekend. Quite a lot of work, and not a lot of return, but really the point is for less stuff to end up in landfill (or: in my garage). The rest got donated.
    • Sometimes I think people will buy "bargains" at a garage sale that they would not pick up for free. No data behind this, just vibes.
  • Seriously looking at getting my own AS, potentially just for me, for some v6 allocations.
  • This week I have not drilled and tapped any 1/4-20 holes
  • Met some former colleagues for dinner, which was a nice time
  • Lots of yard work, during the time when it's not 33C or raining. Today was a nice 13C and basically dry πŸ‘
  • Moved quite a few random things that used to run in tmux sessions πŸ›ŽοΈ to run under runit. Used mk-runscript --add unprivileged insom as root to give me my own sub-runit watching ~/.service
  • Not computers but I ordered a new bin store, a railing kit for the porch, new bins and two yard bags of gravel.
    • Ordering is the easy part! Now I need to finish putting down weed-proof fabric and getting all of this stuff in place.
    • The weather next week will be ridiculous (33C!) so these things will probably chill out in my garage for a while.
    • Update: I installed the weed-proof and we built the bin-stores. I unloaded the railing pallet -- I'm not certain we'll get to that this week.
  • Switched to wezterm over kitty as I'm using Linux/Windows/MacOS and it seems like a good replacement which works on all three (and has a gruvbox theme πŸ’–)
  • Picked up my new Macbook Pro for my new job (starting Monday!)

2024–W23 #

I attended BSDCan last week. It was good! It felt like going to one of the FLOSS UK (UKUUG) Spring conferences in production quality and general level of good will towards others. I've basically only gone to commercial conferences for the past ~7 years (save one: Processing Day).

I learned a few BSD bits which will be useful, especially that I can cross-compile all of NetBSD from a Linux host! This is great because I have much more powerful Linux hosts to use, so if I do some kernel development, the cycle times will be much shorter. πŸ‘

Possibly more importantly; I learned some bits about speaking BGP and running an autonomous system. FRR is the new Quagga (which was the new Zebra). Chelsio make cheap but good(enough) 10G NICs. There's a carve-out to get a /24 of IPv4 if you are using it to help transition to IPv6 (for your first allocation). Good stuff! Also it just elevated my excitement levels, tbh.

Other stuff:

  • I made a stand for my webcam with a heavy weight at the bottom, a telescoping part and 1/4-20 threaded bits at both ends. It decouples my monitor from my webcam which gives me way better options for video conferencing -- something I stopped caring about when I left work but I've had to care about a little more recently as I meet some folks online.
    • It feels like drilling and tapping 1/4-20 is one of the main things that I use my milling machine for?
  • Used Blacksheep on Python to do some poking around an API and persisting to a database with SQLModel -- both very pleasant and quick. Makes me wince when I think how much pain it was to do basically the same thing in Rust.
  • Added a dark-mode to Thymesheet and a noisy background. πŸ§‘β€πŸŽ¨
  • Continued to noodle with virsh/libvirt and now have live migration between two hosts working (when the guest uses an nbd storage device).
    • One important part was to select a subset of CPU features the heterogeneous hosts shared.
    • It still feels like magic, after all of this time.
  • Used my new VM host / guests to set up two BGP ASNs for internal testing.
    • Blowing the dust off my Quagga knowledge (it's FRR now, as above).
    • There's much more emphasis on allow-listing updates using route-maps than there was in the mid-2010s when I last did this stuff. (Good!)

2024–W22 #

  • Refurbished my fountain pen and also added some additives (!) to some ink to make it all flow better.
    • Really enjoying writing, slowly, with the fountain pen. Not quite sure why, but also: why not?
  • Attending BSDCan for the first time. Also my first time in any of the University of Ottawa buildings.
    • Excited to learn about ZFS and NetBSD things as well as a refresher on BGP/OSPF/etc. from a BSD perspective.
  • Spent some time learning what I've missed in ~8 years of not really paying attention to the Python community.
    • Lots.
    • Typing, and libraries like Pydantic, Blacksheep and SQLModel are all kind-of exciting.
  • I read Hexagonal Architecture Explained which I did not buy from this extremely fake looking website (which is probably real).
    • It was okay? But it really felt like a few late stage drafts and not a full technical book. I think I got what I needed out it; I'm happy to have read it. Also one of the authors died under tragic circumstances so who knows what future polish passes the book might have gone through, otherwise.
  • Dan and I came in third in his local pub quiz. Just wanted to boast really and if not here, then where? πŸ˜€
  • I set up coc.nvim for completions in Vim (especially Language Server Protocol support) and it's an amazing change. I've written a few days of Rust without firing up VSCode. Helpful while doing the 100 exercises which would otherwise require changing workspace all the time.
    • Also it's good with Python, especially when the Python code has type hints. Another +1 for typing.
  • I did some interviewing and it was pleasant but also the normal amount of anxiety inducing.
  • I do not feel super-motivated to work on making anything with code for myself right at this moment. idk why: I have been quite productive and motivated since March, even if I wasn't making massive strides. Perhaps because I am in a bit of an in-between state?
  • Rebuilt the Sherline milling machine which got damaged at some point and has been waiting in a box for over a year for a fix.
    • I don't really need it, but it's also not really valuable to sell.
    • Originally I was going to sell my large mill and move back to the Sherline, but I am not confident anyone will buy that one. So now I have two.
  • Decluttering my mind and also my garage continues. In some cases I've been able to just change my feelings towards a tool (like the milling machine: I don't want to create precision metalworks, but I don't need to get rid of the tool -- I can just accept that it's like a glorified drill press, and then I can happily use it knowing that not everything needs 25 microns of accuracy).

2024–W21 #

  • Set up Grafana dashboard and Prometheus Exporters
  • Wrote a letter to my niece
    • Which required some pen maintenance; my fault for writing so rarely by hand
  • Set up PostgreSQL binary and logical replication (separately)
    • This is so much easier than it was in the past! The way it's implemented is powerful, like Shardlifter was (i.e. filtered replication is easy, as is heterogeneous database tables on the other end)
    • But its downfall is tracking the DDL at the source database, ironically. (Also like Shardlifter, but unlike native MySQL replication).
  • Much sorting and getting rid of things as I continue my mental and physical clear out of old hobbies.
  • I bought a domain recently and set up email with Migadu for the first time. I like it. It's spartan but I feel I can trust it. Like; I still trust Fastmail too, but it's nice to see what's out there, especially if you don't need or want the app / webapp.
  • I set up alerting (with Prometheus again) to go to Pushover. That familiar doorbell chime that was my on-call tone for several years at iWeb πŸ˜₯
  • I mounted a drilling vice to my mill and put back in the Jacobs chuck and now it's being used for lower precision things than it was made for -- but also it turns it from "the mill is for my hobby: machining" into "the mill is a tool we can all use for cutting stuff" which fundamentally suits us better, right now.
  • Back making music with Reaper on my Windows machine with a grid controller. A pleasantly low-material approach.
  • Was the wallpapering this week? If so: wallpapered. In the UK you mostly have plain paper that you paste up; but this stuff we got was peel-and-stick which seems more common over here. I don't love the process of hanging it, tbh!
  • Finally created mounts for the 3x and 2x solar panel configurations. The 3x is on two strips of angle aluminium. The 2x is on re-used supports for an IKEA bed. Both required using the mill in its new configuration and it felt good to use it as a proper tool.
  • Doing the 100 Rust exercises thing that did the rounds a little while back.
    • Been a few weeks of minimal computering, so I don't want to lose my Rust muscle memory.
    • I also did some asyncio Python, which is obviously much less of a leap.

2024–W20 #

Mostly: I went to Halifax, Nova Scotia, by sleeper train.

This makes this update less of a "what I got done" week notes, I'm afraid 🀷


The Train:

  • Good: The food, the general experience, seeing Canada.
  • Good: The station is right down town!
  • Bad: (for me) sleeping in a car which starts and stops is surprisingly unpleasant.
  • Bad: The train was hours late due to freight having priority. Obviously: if you're taking a 23 hour train you are not in a hurry, but also what is the point of scheduled arrival times under this system?

I've never liked a city as quickly as I liked Halifax. The climate feels a bit closer to growing up in Ireland (over on the other side of the Atlantic), but is still definitely Canadian. There's Irish on signs occasionally, and on billboards. It's about half the size of Ottawa and has a heavily used (and seemingly sensible) transit system.

H and I enjoyed staying in an apartment, and really thought about the burden having hobbies which require so much space and material creates. We have both started serious clear-outs of our stuff and reprioritizing of hobbies since coming home. I'd rather enjoy doing 2 or 3 things well than be stressed by the ~10 things I could be doing, all of which I am bad at. The most obvious way this manifests is in tools, especially infrequently used ones like the welder. I don't want a huge heavy piece of equipment (and attendant safety gear) because once every year or two I want to join two pieces of steel. It's silly.


I have the longest gap in my GitHub history since leaving work, I think. I brought a computer with me on vacation, but aside from processing some photos, I didn't push anything anywhere or take part in any for-fun programming.

Speaking of which: I have my cameras set to using a high-contrast black and white filter and have Shotwell using the camera's RAW developer. As much as possible I am trying to commit to shooting 4:3 or 1:1 monochrome this year. I took more photos on vacation than for months before that; I'd really like to shoot more.

Finally: I cracked my rib removing the tumble dryer so our washing machine could be replaced. It sucks: it's a small enough issue to not need treatment or painkillers (yay) but a big enough issue to stop you doing things and it's still, you know, a bit painful.

2024–W19 #

It's a new week!

I racked that really big server and I am really impressed and pleased with it. It has quite a few quality of life features that weren't common the last time I was dealing with rack mount gear (which was almost always Dell): internal USB and even an internal SD card slot -- although I don't know if that works as a boot device.

This particular machine has onboard hardware RAID but also has an external hardware RAID in the only currently-usable PCIe slot. The RAID card as a 1GiB NVRAM pack installed, so writes are super-quick. I had forgotten that disks can be fast when you have a battery backed write cache ahead of them. Lovely.

I re-learned some libvirt/virsh stuff at an accelerated pace. Last time I did this, at iWeb, we used libvirt directly for a while before switching over to CloudStack as a management layer. Gotta say: CloudStack hasn't really moved on, it seems, since I last used it. Maybe that's because it's mature? But also maybe that's because it's legacy. Maybe those things mean the same thing πŸ˜€

I've also tried out SFTPGo which is a neat piece of open-source software that does most of what iWeb FTP did. (We had to write iWeb FTP, but now anyone could host basically the same thing for free, as long as they adhere to AGPLv3. Progress!).

I caught up with friends at the weekend so there's less to show on GitHub, but between migrating my OmniOS hosts to VMs and testing out live migration between machines in my home rack; I think I've done enough computering. (Also: we're playing House of Ashes from the Dark Pictures Anthology at home, so that's taking up most of the evening after dinner-time).

This is the week I go to Halifax! I'll update this to be in the past tense, after it happens.

Misc:

  • Set up PostgreSQL replication for the first time in a long time.
    • Just physical so far, logical is up next.
  • Put blank Windows 10 installs on the ThinkCentres ahead of selling them.
  • Added an RSS feed to thymesheet.
  • Moved up to OmniOS r151050 -- exciting because it supports VirtIO SCSI. I'm not using the SCSI driver yet (still virtio-blk) but now that it's possible I'll probably move over.
    • Theoretically this could allow hot-adding devices to a running OmniOS VM, although quite a few pieces need to be joined up for that to happen.
  • Set up an IPFS node for pinning files.
    • I'm interested in the tech, although it is a little cryptobro-adjacent.
      • Especially in how it could be used for serving media attached to fediverse posts, instead of the current paradigm of copying them to every server's cache folders.

2024–W18 #

  • Played with local AI via ollama -- Mistral and llama3 models, specifically.
    • Running it locally makes me feel less icky, not sure why?
  • Glued up the "rows" of 2x4s for my chopping block, in sets of two.
  • Not going to lie: played a fair bit of Fallout 4 this week.
    • The new update came with new Enclave quests!
    • But it also came with many new bugs.
      • Bethesda giveth, and Bethesda taketh away.
  • I have a compiling, but not working, version of my LCD code and some other stuff is messed up.
    • Just compiling caused an OOM kill until I updated Rust. sigh.
    • Update: I figure out that blocking on a future from sync code which was, itself, waiting for async task to complete somewhere else will never work.
      • So I basically reverted the top commit, but at least I understand why I had to do that.
        • I have come full circle: Embedded HAL is good, actually. πŸ˜€
  • Looked at async Python and IRC bot writing
    • Wrote a little Python to backup an old old blog and move it to Zola. but also thinking about buying servers and about a MySQL proxy because of a conversation with PD.
  • Fixed lemonbar multi-monitor support when using mirrored displays!
  • Made twm look and act nice, as a cope for the fact GNOME is totally broken on my Thinkpad 440p for ... some ... reason.
    • This has taken the place of 9wm and mwm as my "window managers for very constrained machines". For now, hah.
  • Deployed thymesheet -- you're swimming in it.
  • Did some CAD with Plasticity: just a little design to cover the lightbulb sconces in my en-suite.
    • It kind of sucked? Like it was easy to get the shape I wanted, but getting it dimensioned like you would with CAD was frustrating. It made me think about using OpenSCAD, tbh.
    • Then I took that STL and did CAM to it with PyCAM. The output was pretty poor.
    • I think PyCAM fundamentally wants to work either in a spiral (with square edges) or back and forth rastering over the design. I'm not confident that would ever produce the results that I want, even with a crazy high step-over?
    • I'm trying again with Fusion 360.
      • Shocker: this was much better.
  • Did some Rust exercism. Solving the problems once and then getting to see others answers and going for second or third iterations is a great feature. AoC doesn't encourage you to make your solution nicer; once you have the right answer you're done.
    • Of course, AoC is for a different purpose, but I personally know a lot of people who use it as an excuse to learn a new language. Might as well learn it well?
    • Also: first time writing a macro and I nailed it.
  • One thing off the long-term project list: used those 433MHz modules to both receive and clone a simple OOK transmitter.
    • I wrote the code in Rust using the rp2040-hal and embedded-hal!
      • And I ported it to the Trinket M0 crate with minimal code changes (most of the time went on getting uploads to flash working with cargo embed)

2024–W17 #

  • More or less "finished" Thymesheet, in that it's usable.
    • Ripped out diesel and replaced it with sqlx and I am much happier.
    • Did a reasonable refactor and also use DI to pass in a database.
  • Met up with three friends this week; a really nice time.
  • Set up the CCTV at Stevenage
  • Made OSM contributions!
    • One of which felt like a subversive act (moving City View)
  • Wrote an ActivityPub implementation which works well enough to DM myself with.
  • Disk usage dropped on ttw as turning off versions kicked in (it starts a 7 day countdown, I suppose to stop it being a footgun?)
  • Hobby machining with conductive materials.
  • Skinned Thymesheet with regular CSS. I think this is another case where people are scared to write CSS so they write ten times as much HTML? idk, I just don't get it.
  • Set up a local LLM server (ollama)
    • I don't feel guilty using this in the way I would paying for ChatGPT?
    • It's mostly a curiosity, but it is kind of compelling and surprisingly "lucid"

2024–W16 #

  • I waxed a pair of jeans with a hot air gun and a double boiler. I wasn't thrilled with the results but tried again using a crock-pot (for melting) and an iron with parchment paper (for setting) and it was miles better.
  • I made a weight?
    • It's basically a piece of steel with an M8 tapped into it and an eye hook but it was cool to tap a material that was so hard.
    • I had to expand the hole with the metal mill.
    • I painted it, but hated the paint job.
    • So I sandblasted it clean again.
      • It was a lot of work for one weight!?
  • Added markdown to thymesheet and learned a bit more about how to use Map<> in Rust.
  • Tapped a 1/4-20 hole into two different bases for lights that I have around my office.
    • One for a fill light Shopify provided.
    • One for a little mini-spot that's usually camera mounted.
    • Pleased with these little modifications.
  • Dyed the armchair cover black.
    • It came out purple.
      • Rit is not magic.
  • Wrote a Solarized GL shader and customized my colour setup, a little unproductively.
    • But I had fun!
  • Sandblasted some stuff.
    • Thinking that the space vs. usefulness trade-off of the sandblaster is not good.
  • Lunch with CL while I was in the city at coworking.
  • Back to some Tailwind and DaisyUI
    • I am not loving it.
    • For now I went back to just writing CSS. CSS is easier?!?
  • Got injected Config working in Rocket for Thymesheet.
    • It's kind of nice how you can do dependency injection, even if I initially complained about it
      • Update from the future: it continues to rock!
  • I reworked my desktop / office computer situation. Have a terrible Windows machine ("of last resort") and will work on simplifying what I do until it fits into a Linux-only world.
    • Reaper on Linux is a pretty great step in that direction. I have a few plugins set up there and it's actually nice not to have the overwhelming setup that I had on Windows.
    • No two ways: I am going to miss Fusion 360. If not for modelling, then for CAM. (But also for modelling).

2024–W15 #

  • Watched the eclipse!
  • Learned about Traefik and deployed it on merked and ruxton. I really like it so far. So much smaller config than nginx was.
  • Started working on Thymesheet from co-working.
  • Installed Navidrome and I like it, too. Gives me my own music with almost the convenience of streaming platforms.
  • I looked into ARIN registration. Seems like there's a "Catch 22" of needing to show you'll immediately need resources before you are allowed to have any?
  • Tried different Bittorrent clients because Transmission was semi-broken on pk but they all had their downsides. Just decided to not use Bittorrent for now as that side-path was a time-sink.
  • Bought (from KJP) and laminated (with glue?) some wood, for carving two-tone plaques.
    • Lamination turned out well!
  • Burned time on SQLite3 on Windows. Got there in the end. Second time I've done this?
  • Burned time on setting up Tempo and a local S3 server (Garage) -- decided to park this.
    • Maybe Pyroscope is more appropriate?
    • Maybe I should finish building a slow thing before I need distributed tracing for it.
  • Processed all of those twisted 2x4s for a chopping block.
  • Figured out MiniDisc uploading from Chrome via WebUSB!
  • Found an 11 million file leak in my Mastodon media: it was having multiple versions of files enabled.
  • Ported some of Dith to Rust. It was enjoyable.
    • Implemented traits on other people's types! A mind expanding moment.
    • Return a Box<dyn Error> which makes ? operator more useful for scrappy scripts.
    • I am starting to accept that I can't understand all of Rust all at once, and that's not necessary to be productive in it. I need to accept some of it is magic (although, arguably, less magic than Rails is).
  • I made enchiladas with my own recipe and they rocked.
    • I'll never be able to make them the same way again, probably.
  • I designed and CNC-cut molds for wax cylinders that knitting machines need.
    • Then I did the pour and had to cut the other side of the wood to free the wax.
      • But ultimately it worked really well! Even if it destroyed the mold in the process, I made nine.
  • I made firelighters with sawdust and beeswax.

2024–W14 #

I saw this freewheeling dev log and was inspired by that. Something like that, mixed with eightbitraptor's week notes seems like something I want: something to keep track of what I actually do in a week, with a bend towards creative things that might otherwise get forgotten.

(So I wrote a little CMS in Rust as an exercise. It took basically two weeks, on and off, but I've not written a non-trivial Rust app from scratch so most of that time was learning.)

I thought about what programming languages are aesthetically pleasing and actually pleasurable to write in. I read Devin's thoughts about uxn and framed as: a language I can potentially use for the rest of my career that I don't pick for outside pressures.

The language(s) that fit that, for me, are Python and Go. Despite this, I convinced myself to learn Rust. It just has so much potential to unify the types of programming I do. I could stop writing C if I can do Rust from microcontroller to monolith.

I am still strongly prefering Go to Rust, although I've not written much of either in a week. I went back to my Go version of Whap (note: an internal app I was working on porting to Rust) and felt literal relief at how simple it is. But I did get my embassy version of the LCD code written, I guess.

The CTF I went to with tahnok made me aware that Python is still my quick-and-dirty-prototype language. Will Go get to the point that I enjoy it or find it fast enough for that quick and dirty development? Will Rust?

Random Stuff:

  • Treated the steps and bench with linseed oil
  • Rearranged the garage
  • Thought a bit about canvas waxing
  • Renovated my Panavise