The Game of Thrones Finale

I thought the “Game of Thrones” finale was a fitting end to the show. Like the rest of season 8, it managed to be both slow and rushed, which is quite a feat.

I am actually feeling relieved that it is over, and I don’t have to think about it anymore. That said, I will happily read the final books in A Song of Ice and Fire, when (if?) George R.R. Martin finally completed them.

This accessory may not be supported

I thought that iOS 12.3 made my headphone DAC/amp not work anymore. Luckily, switching to a new Lightning cable (the one that came with my AirPod 2s) made everything work again. I wish Lightning cables didn’t flake out over time.

I don’t expect to read about Micro.blog or the IndieWeb in The New Yorker, but when I do I am happy about it.

There is nothing quite like silencing 100 compiler warnings in Xcode when you think a “right click all these warnings and fix all of them the same way” command would have sufficed.

I have not watched nearly enough baseball this spring. I have followed my team, the Boston Red Sox, more closely than ever via box scores and live game update notifications, but fewer than ever based on number of minutes watching games.

Game of Thrones Season 8 has become yet another thing for everyone to be angry about

I did not hate the latest “Game of Thrones” episode. I actually liked it, thought it was effective, and thought it made sense. This recap from Vulture describes the way I feel about it pretty accurately.

Of course, having browsed the web since the penultimate episode aired, I now think that I am in the minority opinion. People are so angry about what is going on in this season that I am quite taken aback. I suppose a lot of these complainers have not seen “Lost” or “Battlestar Galactica”, and have no idea how a top-tier series can really go off the rails at the end.

I think that I have been telling myself the ending will be disappointing for so long now that I am not even disappointed by whatever weaknesses and expectation shortfalls I see in it. My theory about all stories is that they are most exciting when they are beginning. Great epic stories are always beginning and beginning and beginning. The world of the story keeps expanding, as do all the life and possibilities within it. At some point, though, the story has to end, and the world built for it starts to contract. This is always disappointing. Things don’t happen that you want to happen. Narrative threads end, or simply get dropped. Questions get answered (and questions are always more interesting than answers) or, maybe, not answered. Characters don’t always develop or act in ways that you have imagined them. The author’s vision of the endgame may not align yours. When the story ends, it contracts down to a single point, and what is left may not be what you want. Even if it is, you are sad to leave your favorite characters and story ideas behind.

To sum up, there are many reasons why endings are disappointing, and there is almost nothing that can be done to help that in certain genres. “Game of Thrones” has been in this trap for a while now, and has thus far avoided the worst of all television series fates, for me at least: I still want to watch the ending and find out what happens.

Bye bye Homebridge support for Nest

I noticed an email from Google in my Spam folder this evening (copied, by someone else, here) stating that the Works with Nest API is shutting down on August 31. That’s the API that makes my Nest work with HomeKit, via the homebridge-nest plugin. It is yet another mildly upsetting thing Google is doing that involves killing a product that some people use.

I have had a Nest thermostat for years—well before Google even owned Nest. It is the only smart thermostat that I know of that will work in my house, because I do not have a common wire (which carries low-voltage power) in my heating and air conditioning system, and have no easy access to power near the Nest itself. (The Nest handles that situation just fine, but the other products I have researched, such as the Ecobee, would not.)

Overall, the Nest is OK. Its most important feature for me is that can be set via Wifi. The Nest application, however, is slow to load, buggy, and, if anything, has gotten worse over the years as Nest has added support for its other, non-thermostat products. It often forces me to log in again to my Google account (which is a multi-step process), and does not integrate with Siri or the iOS Control Center. Homebridge solved all those software limitations for me, but was dependent on this developer API that is now going away.

I hope that Google will provide a new API that I can use with Homebridge going forward, but at this point, I doubt that they will. On the plus side, I guess I can unplug the Raspberry Pi I have been running on.

I may have just done the last commit for SwiftoDo Desktop version 4.0. 🤞

After being professionally-speaking, out to sea for about a week, I am now taking a different tack. Right now I am creating a fresh C# project in Visual Studio. I’m going to write a program to automate lots of analytical reporting creation drudgery.

My FreeNAS server is back from the dead!

My FreeNAS server is back from the dead. After it stopped working and wouldn’t boot, I needed to plug in a monitor with a VGA connector (which I didn’t have yesterday) to see what was going on. It turns out that the boot drive, a USB stick, had failed.

Luckily, I have a couple other USB sticks lying around, and I had saved the FreeNAS configuration to my Mac recently. I was able to re-install FreeNAS to a new USB stick, re-upload my old configuration, and I lost no data or settings.

I think I will buy two identical USB sticks in the near future and mirror the boot drives. I would prefer this server to just run until the motherboard or power supply dies. This short period of downtime made me question whether I should even have a home server (or at least this home server), which is a question that I don’t really want to spend time thinking about right now.

FreeNAS Server - I should not have tempted fate

The same week I wrote a blog post about how great my FreeNAS server is, it has decided to die, or at least become unreachable on the network. Of course I no longer have the VGA cable needed to hook it up to a monitor to do a reinstall. Oh, and upon further inspection, none of my monitors have a VGA input either. Hopefully there are adapters available. On the plus side, my office is so quiet now.

Now that the new trailer is out, I can conclude that the next Spider-Man movie looks delightful.

🎵 I’m listening to Aja on my V-Moda Crossfade 2 🎧 tonight. Steely Dan isn’t always my thing, but their records sound so good.

Let’s not talk about the $150-off sale on Hifiman Sundara headphones, OK?

Much to my surprise, I think I prefer the Razer Orange switches on this keyboard (pictured) to the Cherry MX Blue switches on my old one. It doesn’t hurt that the new one lights up, too. (Razer Orange switches are “silent, tactile” switches similar to Cherry MX Browns.)

I am using MarsEdit more and more for microblogging. I like it being “write-only”, as compared to using the official Micro.blog app, because it keeps me focused on getting the post done. Like lots of bloggers, I have a lot of unfinished blog post drafts lying around.

Maybe writing a todo.txt app with a task list and a text editor mode is not the best idea.

So…my new SwiftoDo Desktop app for the Mac would be 100% complete right now, if I hadn’t decided, 75% of the way through writing it, to add a secondary edit mode for the todo.txt file. That mode makes the user interface comparable to the iOS version of SwiftoDo, but is also loads better in subtle ways, such as being able to reload the file (in either mode) if an external editor (such as iCloud Drive) modifies the underlying task list file. Of course, that makes everything so much harder to implement in a bug-free way. I have been discovering and trying to fix bugs over the past week or so. I have been messing with the lowest-level code in my app far more than I would normally be doing at this stage in the game. I’m trying to finish up the version and release it soon. I will get there, but it makes me nervous to jump back into file coordination related bugs, when I thought I had perfected those features almost six months ago.

🎵 I never get sick of Lana Del Ray, especially when a song of hers shows up in my “Chill Mix”.

I think AppKit will be around for a long, long time.

My Hobby: Moving Files Around

I have found that my home server hobby is more a “moving files around” hobby. I have reached this conclusion based on the countless times I have found myself moving files from one place to another.

My FreeNAS media server

I have run FreeNAS on a HP N54L Microserver for over five years. It has been a fantastic server. I bought it, a slightly used review unit, loaded with four 500 GB drives that it would not have normally come with, for a song—less than a new one with no storage drives included. Over the years, I updated the storage (now I have 16 TB total, with 8 TB usable space, set up in a single RAIDZ2 volume), and the RAM (from 8 GB to 16 GB). Over that same time period, 8 TB went from an impressive amount of storage to something a relatively inexpensive single drive could handle.

What those single drives don’t have, however, is redundancy and data integrity features. My little FreeNAS server has that, thanks to the ZFS file system. At several times in my home media streaming career, the external hard drive I used to store my media files died, and I lost all my data. Thankfully, no important personal data, like my photos, was ever lost, but the experience was upsetting enough not to want to repeat any more.

Hard drive failures can happen to anyone, at any time, even if you have a nice server rather than a Raspberry Pi with an external hard drive attached via USB. Less than a year after I upgraded my FreeNAS server’s drives, one of them failed. The FreeNAS server emailed me about the error, and its UI showed that my drive array was operating in a degraded state. I quickly ordered a new drive, swapped it out the next day, and never lost a bit of data. (I returned the failed drive for a free replacement, so now I have a replacement available, in case I ever need it.)

File servers fill up, if you let them

FreeNAS has been stable, reliable, and a joy to use. One thing I have learned from running it, however, is that its file system, ZFS, degrades in performance when a volume (a pool of drives) is more than 80% full. FreeNAS will warn you about this threshold, but I never took it too seriously, because poor performance is mostly an academic concern when all you are doing with a server is transferring a few gigabytes a day. I do like to silence warnings, however, so I normally have to prune my media collection, or move some videos I want to keep, but am unlikely to watch again soon, to external, mostly cold, storage.

Of course, where is that old, external drive with my files on it? I have no idea. So, this week, when my FreeNAS server filled up way over the 80% warning threshold, I decided, rather than continuing to free space by deleting movies and TV series that I didn’t want to delete, to add some more redundant storage to my network, and move the old files there. This decision was mostly based on having some extra hardware lying around, unused. I have a 2 TB, two-bay Seagate NAS, which is a little, Linux-based server with a consumer friendly web UI for administration. Unlike FreeNAS, it is very locked down, and unlike my HP microserver, it has only two drive bays rather than four.

At any rate, I set that up again and started moving some files to it, which sounds simpler than it really is. I am cherry picking files that are less likely to be accessed to the new server, so I have to go through everything I have, to some extent. Because the files either number in the thousands (like music files) or are multiple gigabytes in size (like video files), moving them has been very slow. Because the Seagate NAS’s filesystem (EXT4) is different than the FreeNAS filesystem (ZFS), there are other interesting problems, like file naming rules, that trip up file transfers. Because these are two different UNIX-like systems with different users configured on them, sometimes there are permissions issues that prevent files from being moved, renamed, or deleted.

As cool as it is to stream movies and music throughout my house, making it all work requires, from time to time, a lot of low-level file transfers. It has been taking a lot more time and attention than I would like.

This week, Apple Music’s recommendations for me are completely ruined by all the children’s music I have to play in the car for my kids. Do I have to “dislike” all children’s music in the app now? I can’t be the only parent with this problem.

Since I started dogfooding my new Mac app, I have found a few new bugs that I never noticed before. That “having never noticed it before” feeling is so weird sometimes that it stops me in my tracks.

After months of development, it feels nice to be testing my newly updated (completely rewritten) Mac app on a day-to-day basis. I keep finding bugs here and there, which is the point of using it all day, but I am nearing the finish line.

🎮 The biggest lie I told myself this week is “I will not play ‘Hollow Knight’ for hours tonight”. Well, 10 PM through 1 AM last night were lost to an enjoyable romp through late-game bosses and achievements.

I think I need some time late in the evening to listen to music with my really nice headphones and plug away at mostly solvable problems in Xcode just to feel normal. It was that way tonight. I fixed some bugs, inched closer to a releasable build, and don’t want to go to bed.