December is for side projects

I started a new feature for my MicroPub posting app and library last week, and I have been having fun implementing it and refactoring the heck out of the app. I still have more work to do before I can release it.

The week before, I wrote a configuration-file-related feature for a Rust app called TinyETL. That was fun to do, and I learned a lot more about YAML and serde than I ever planned to.

I’m trying a new iPhone upgrade cadence

After thinking about it on and off for years, I decided that the most cost-efficient way for me to have a good-enough camera and a performant-enough phone would be to buy a 2-year old Pro every 2 years. I never bought the Pro before. I’m on a 5-year-old iPhone 12 mini now, and I am more than ready for an upgrade. Unfortunately for me, brand-new iPhones are either too expensive for the amount of joy I would derive from them (all models except the 16e) or unacceptably feature-limited (the 16e, which has no MagSafe, only one camera lens, etc.).

I estimate that I can buy a 2-year-old iPhone Pro for about 50% of its original selling price and sell it, two years after that, for about 20% of its original sale price.

I just ordered myself a refurbished iPhone 15 Pro, and will trade in my 5-year-old iPhone 12 mini once I get it. A good-enough case for it cost only 8 dollars. I was even able to spread the payments interest free for a year with my credit card. I am cautiously optimistic that this will all turn out well.

I have had my Thinkpad for about five months and just now got into using the Trackpoint. I love it. It reminds me of many years ago when I had a Thinkpad at work that (unlike my current one) had a terrible touchbad.

I discovered today that Bold Brew exists. It is a TUI for homebrew, which is the package manager I use to install command-line apps on Linux. It comes pre-installed on Bluefin. It is easy to use and looks really nice!

Moving my file server into its final position in the basement (on top of a refrigerator, underneath the eero wifi extender on the floor above), brought wifi signal strength from 61% to 95%. SSH connectivity is a lot better. Arq backup is not stalling (at least, not yet). Maybe my wifi card isn’t bad after all.

I bought a wifi card for my noisy old file server because I want to move it to my basement, out of earshot and nowhere near my wired network. Testing it out has not been great. I am getting random disconnects on ssh sessions, dropped packets, the whole nine yards. I wonder if the card is defective.

Bluefin Linux

Today I nuked my laptop’s Fedora Workstation installation and installed Bluefin in its place. So far, I am thrilled with the result. Bluefin is an atomic distro based on Fedora. It basically is Fedora, but set up in a way that you (1) can’t screw up the operating system, (2) can roll back any update that screws something up, and (3) never have to manually update it again.

All updates are downloaded in the background and applied when you shut down or reboot. This is great for me, because I tend to waste time updating Fedora every day; I just can’t help myself. It will also make upgrading to the next Fedora version (which comes out next month) as simple as doing a reboot.

Bluefin does not come with a package manager, which takes some getting used to. instead (with rare exceptions for setting up developer tools) you install all software via flatpak or homebrew. Bluefin comes with the proprietary drivers and codecs that you need. Software development (if that’s your thing) should be done in containers.

I set up everything that I had in my Fedora setup in about 20 minutes. (It would have been even faster if I wasn’t downloading on wifi.) I’m sure I will hit some bumps in the road, but right now I am very impressed and can’t wait to not think about software updates anymore.

Page refresh on the Kindle Paperwhite

I love reading on my Kindle Paperwhite. Sometimes, however, the screen exhibits ghosting—you see light gray text, lines or images instead of a plain background. The quickest way to fix that is to tap the top of the screen to open the quick settings menu. That action triggers a full screen refresh. The screen goes all black for a split second, which resets the entire e-ink screen. You can also force a full refresh on each page turn—which is how early Kindle modles always worked—with a setting that I think is hard to find. Look for the Page Refresh setting in Settings > Home and Library > Reading Options.

I have been using Linux on and off for 25 years. I didn’t realize until this week that you can execute any command that history returns via ! + the number. For example, if history returns…

2558 ping sonarr.internal 2559 ping jellyfin.internal 2560 ssh nas.internal 2561 ssh pve.internal8

…you can type !2560 to execute the ssh nas.internal command.

The more I tweak my homelab stuff, the more I realize I need to write down all the things that I have done to it. I just never seem to get around to it.

Ebooks are wonderful things.

I wish the Kindle were an open platform

Bizarrely, if you trasfer DRM-free ebooks directory onto your child’s Amazon Kindle, they cannot see them or read them if they are logged in under an Amazon Kids account. You can share books you bought from Amazon (on your account) with Amazon Kids accounts within your Amazon Family, which is fair, but you can’t share DRM-free ebooks with them. For that, you have to set them up with their own, independent Amazon account. That Amazon account cannot be part of your Amazon Family, so you can’t share anything with them. It is so confusing and irritating.

I just discovered Kagi News and think it’s great. It is very focused on hard news and has no filler, ads, trackers, and so on.

I don’t really need an iPhone 17 Pro in orange, and owning one might not make me any happier than I am today with my aging iPhone 12 mini…but I want one anyway. Sigh.

rsync.net is an amazingly simple, fast, and flexible backup solution. I’m using it with borg backup on Linux and with Arq on macOS. I also transfer files to it manually via SFTP (via Transmit on Mac). It snapshots your files with ZFS, which is really cool. Today I learned that it also supports nativeZFS send/receive, which is totally unique among cloud services that I know of. Unfortunately, to use that feature, you need a special account with a rather large minimum 5 TB quota.

ZFS send/receive is so fast. I love it.

I discovered a really cool ZFS toolset today: Sanoid. It really is two tools. The first, Sanoid, automates ZFS snapshots. The second, Syncoid, wraps up zfs send and zfs receive to make ZFS dataset replication easier. To automate backups, I used Copilot to generate a Syncoid script, systemd timer, and systemd service.

I am struggling with ACLs again in Linux. I am trying to access ZFS datasets from a new internal drive on my Proxmox host from my LXC containers. This time, I think the problem is that I have nested ZFS volumes and I was treating some of them like subdirectories. I don’t think that will work.

I am unreasonably excited about this (Announcing DuckDB 1.4.0).

So far I do not like Apple’s new design language in iOS, iPadOS, or macOS 26. Screen elements like titlebars look comically oversized, text is harder to read than it should be, and I miss iPadOS’s split screen and slideover multitasking UI a lot.

I really like the new oak leaf logo for the Apache Software Foundation. It reminds me of my favorite logo for UConn, where I went to business school.

📰 Homeowners insurance is pricing people out in disaster-prone cities. This doesn’t bother me. It means that the system is working as it should.

I have been coding T-SQL all day. Now I have enough DuckDB experience that I miss its friendly SQL syntax. Prefixing column names alone would be nice.

I am up working late. Tomorrow I expect to start using (and, sadly, debugging) a data ingestion and validation pipeline for potentially thousands of data files.

Amazon’s Send to Kindle page is, by far, the easiest and most reliable way to add your own ebooks to your Kindle library. You can manage your uploaded docs onlne, too.