It’s the last day of summer vacation. The wife and kids are going swimming in the neighborhood pool, and I’m staying home to bake bread and make ice cream.

SMART revealed that my replacement drive is actually a failed drive that I failed to throw away a few years ago. It is severely degraded. Now I have to figure out what to do. I don’t know if it is worth running a complex NAS with only 8 TB of storage if it means buying at least one new drive.

I’m working on my NAS drive replacement. It took almost two days to back up all the data onto my backup server and to scrub the zpool on my NAS. I definitely have a faulted disk. I am finally at the part where I will replace the bad drive.

Looking at NFS again

I am messing around with NFSv4 tonight because I want to change how my NAS and app server interact. I currently use Samba but I don’t care for its weird quirks. For example, my Samba config file is full of weird settings turned on for better macOS support; I don’t trust that it is correct and don’t like dealing with it when things don’t work.

I need a new hard drive for my NAS and I think I just found one I had lying around for just this purpose. Or it’s already dead. We’ll see after my backup finishes.

One of my NAS drives is dying again so I am backing up about 5 TB to another drive. I will probably be hearing hard drive clicking noises for the next day.

I finally got to spend some more time on my command-line micropub publisher app. I am making improvements to prepare for publishing to crates.io. I structured my crate into a library plus a binary. GitHub Copilot helped a lot with that, but I am still trying to unwind some weird things it did.

Hello, world!

Hello, world!

Hello, world!

One thing that I have decided I like about my job recently is that it gives me an excuse to use computers. It sounds pretty basic, but I find enjoyment just doing stuff on computers sometimes. I think the reason is that I have huge screens, a weird keyboard that I love, and a brand new trackball.

I signed up for paid search service Kagi while I was on vacation earlier this month. I am very happy so far with the $5/mo plan. It’s now the default search on my Linux laptop (via Firefox) and on my macOS desktop (via a Safari plugin).

Does everyone start a bunch of different projects and never finish them, or is it just me?

Today, my son and I started to learn how to code GUI apps in Rust. We followed a GTK tutorial and used Copilot (with limited success) to help us add buttons and a textview to our app. It was fun.

I stayed up too late coding a data validator using DuckDB. It is stupidly fast!

The Plucky Squire

I started playing The Plucky Squire recently. This week, it has been my late-night escape after my nighttime session at work. The game is absolutely adorable. I wanted to play it on the original Switch, but the game has framerate issues on that platform. It plays perfectly on the Nintendo Switch 2, however, which is what I am playing it on.

Back to work in data engineering mode

Today I went back to work after a two-week vacation and an all-day drive home yesterday. My family returned home at midnight, I didn’t get to sleep until nearly 2:30, I set up my home office for almost an hour this morning, and I didn’t start work until noon. My work tasks for today were all data validation-related. It’s nearly 23:30 and I have just finished configuring and kicking off 15 data validation jobs on my PC. Some of these jobs may run 24 hours or more, though I hope not, because that is terrible. I hope to have time to rewrite my data validators to use DuckDB—for speed—before the next data call cycle begins.

Yesterday my family made its annual visit to Santa’s Village, a theme park in Jefferson, New Hampshire. I was worried that my kids were getting too old for it, but I was wrong; they had a great time. My daughter even asked to go for two days next year instead of one.

Releasing my command-line micropub publisher app

I am still working to finalize the initial release of my command-line micropub publisher. The source code is currently available on GitHub. Here’s what is holding me up: I would like to distribute it as a binary, but I don’t know how to do that yet.

It’s a Rust app, so it could be distributed in a crate. However, I don’t know how to make a binary crate yet, so I am reading the docs. Plus, the current project name, “mp”, is already used by another crate on crates.io, so I may have to change it.

I don’t know how to distribute binaries on Linux, which is the platform that my app fits best in. It would be nice to generate .deb and .rpm packages (or even other package formats like flatpak). I don’t have a clue how to do those things at this point.

Additionally, the app should work on all platforms that Rust supports. Before I can compile and test the app on macOS or Windows, I need to get home to my other computers.

Tonight we watched the world premiere of my father-in-law’s concert band arrangement of “Moonlight in Vermont” in…Vermont!

I am implementing error handling in my micropub publisher tool. At this point, I don’t know Rust well enough to make the code concise. There is always something to unbox, unwrap, or match! Fortunately, my app is small and not complex.

I am testing out my command-line microblog posting app. So far it works!

We ate dinner last night at this charming Mexican restaurant in Bethlehem, NH.

Rust is the first programming language I am learning in the vibe-coding (🤮) era. Having GitHub Copilot automatically spew out entire functions as I am trying to figure out how to write simple things (like figuring out how to get the user’s home directory path) is pretty jarring.

Learning Rust

I have finally decided to give Rust programming a try. One reason is that I can’t stop hearing about it on tech podcasts or reading about it in tech news. The main reason is to give me something fun and useful to do on my Linux laptop. I started reading The Rust Programming Book a few days ago to learn the basics. What’s nice is that my 8-year-old son was inspired by me to give it a go, too. He has been reading through the book and doing the exercises, too. So far, I like the book and am enjoying learning about the Rust compiler and package manager. I wish Rust syntax looked as nice as Swift (or at least how Swift looked five years ago), but if I can code in PowerShell (which looks awful) and like it, I could certainly do the same in Rust.