May 2021 Setting up an ODROID-HC4 as a NAS

I bought a new NAS, a Hardkernel ODROID-HC4! It’s a real upgrade. Before: 6C/12T Xeon processor; After: 4C/4T ARM processor. Before: 12GB ECC RAM, After: 4GB RAM. Before: 6 HDD slots/SATA ports; After: 2. But most importantly:

Apr 2021 Data mining my Spotify history

I have a few songs I listen to very frequently. Enough that I wonder, “Does the amount I stream this song have a noticeable effect on the song’s popularity?” It turns out, yes, there are at least a handful of songs for which that is the case.

Apr 2021 Notes on Building AsteroidOS

Building AsteroidOS isn’t terribly difficult, and reasonably well documented, but there are a handful of gotchas I ran into during the process.

Mar 2021 Keeping Tabs on my Tabs – a quick Python hack

I'm a bit of a tab hoarder. Firefox, thankfully, is pretty good about not using excessive resources for infrequently-accessed tabs, but when my Tab Counter extension told me I'd topped 300 tabs, I figured it was time to start a more serious diet plan. And what's a diet without a scale? Here's a script that I use to keep track of how many tabs I have open at a time, so I can measure my progress in the fight against my hoarding instincts.

Feb 2021 A random accompaniment on EVENTIDE

How good can we make a random accompaniment sound? I was playing with EVENTIDE, William Henry Monk’s tune written for Abide with Me, and was pondering this. I was trying to play randomly on the piano from octaves and notes in the scale, but suspected my “randomess” of playing wasn’t particularly good. But what does have good randomness? Python! (If you don’t want to read the code, just check out the results at the bottom.)

Jan 2021 Exploring paths for Sudoku variants with Python

One of my college friends has an interest in Sudoku variants. Generally, that manifests in the two of us solving puzzles curated by Cracking the Cryptic, but occasionally it ends up with me trying to solve a puzzle he’s created. A while back, he and I were chatting about one of his ideas for the basis of a puzzle. It’s based around a snake in the grid (for an example of another puzzle using a snake, check out this puzzle by CtC). His puzzle requires that its snake alternates successive even digits and odd digits, is unambiguous, and visits at least one cell in every box (as well as, of course, being a valid sudoku puzzle!).

Dec 2020 PinePhone software from the ground up, part 2

A few weeks ago, I compiled and installed a Linux kernel and a bit of other software to run on the PinePhone. Today, let’s look at some next steps.

Nov 2020 Phone a Month 4?: Setting up PinePhone software from the ground up

I never actually ran anything new on my phone this month. Instead, I’ve been tinkering with the PinePhone. Instead of the usual update post, here’s some info on how to install and boot the most basic possible Linux installation for the PinePhone.

Nov 2020 Piano Heatmap Analysis (Part 3)

A third post in a series (part 1, part 2) on exploring what keys of a piano I use the most.

Oct 2020 Smartwatches

I’ve owned two smartwatches, across 3 OS’s. They’re all terrible. Here’s why.

Page 2