Skip to main content

Pretty Good Hat

It’s a quiet and bitter cold first morning of the year for me. I took the dog outside in the zero degrees F dark, and then she went right back to her warm bed. I’m ready for my second cup of coffee while the first tiny bit of dawn is starting to differentiate the one-black sky from the mountain. All in all, it’s much like any early morning this winter, albeit far colder after this week’s snowstorms have moved on. A lot of things in the past week have made it hard to feel reflective on the close out of the past year and start of the next. Here’s hoping for resolution of those uncertainties and a chance at some calm, some restoration, and maybe also some joy in 2022.

Image of an album cover showing the song titled Certainty. The album art is a pencil sketch of several animals including a dinosaur, sitting around a fire while a bear plays guitar.

It’s not actually out yet, so this new Big Thief album is my favorite thing from 2022 so far.

A TV showing the title screen for Hades, with an Xbox Series S and white controller in the frame, also

I started playing Hades yesterday and … this game is great! I know it was on a bunch of best-of lists last year, so I’m un-fashionably late to appreciate this one. It has great mechanics, deep storytelling, feuding gods and family drama. I love it.

screenshot of a parallel coordinates plot, which draws lines between ranked points over time. The Josh Ritter song 'Good Man' is highlighted as the top ranking track in 2013, and has lines connecting to its rank in several prior and subsequent years.

Today’s last.fm data time produced this plot of my top 20 tracks for each year since 2005. I’m going to write a (much?) longer post about this, because it has my brain really spinning on storytelling with data; for now, enough to say I’m excited and having a good time!

screenshot showing a plot of data bars

Continuing to tinker with last.fm data, I’ve built a tool to pull my per-track history, and I can do a bunch of fun things with that detail. This plot shows how much I listened to artists in their first year in my data set, compared with all listening in the same year.

Keyboard Week!

What a great hobby week. A few days ago I built a keyboard with my kiddo, and yesterday I got started on a build for myself. We built the KBD67Lite from kbdfans. While I’ve had a couple of mechanical keyboards, these were the first that I’ve built up from parts – fortunately, the kbdlite comes as a nice kit which made for a gentle introduction to lubricating stabilizers. (Which, by the way, makes a tremendous difference.)

close-up view of a hotswap PCB

Kiddo picked out keycaps that make this lovely gradient, and they feel really nice.

side view of a purple keyboard case with keycaps that run from vivid to pale pink and orange

I went with gray keycaps on a white case. So far this board is a real pleasure to type on. Now that I have a good point of comparison with my Q1 board I can start to get a feel for how qualitatively different switches and keys can feel. By comparison, the Q1 is indeed a little pingy, for example, so I’m even more curious to see how some modifications to its components could feel.

top-down view of a white keyboard case with gray and dark gray accent keycaps

After the build, I did some work in QMK to program a couple of MacOS specific layers for the KBD67Lite. Unlike the Q1, it doesn’t have a hardware mode switch, so I have to make a virtual one that lets me toggle Mac and Windows layers with a key combination. Fortunately I was familiar with working in QMK from all the screwing around I did with the vim mode I built, so it didn’t take too long to figure this out – and I’m happily typing away!

A blue plastic keyboard case without switches or caps installed, showing the bare switch sockets, held in my hand

Building this kbd67lite with kiddo was a good Christmas day project. (I got one for myself, too – caps and switches should arrive tomorrow!)

Playing around with my last.fm stats Shiny app a bit more this morning, and I remembered how to get what I want out of a nested list returned from the API with only 20 minutes of cursing. Progress!