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.

Hadestown

🎵 I’m giving “Hadestown” a first listen tonight. I never heard of the show until today’s Tony award nominations. , which surprised me, because I try to keep track of all the Broadway musicals. I thought that this was another very weak year for new musicals, so I am happy to learn of a completely new one. I hope that it is a new classic. I’m not sure, though, how closely the “Hadestown” on Apple Music resembles the Broadway version; I read that the show went through a bunch of changes over the years.

After seeing “Game of Thrones” and “Avengers: Endgame” over the past two days, I can now breathe again and use the internet like a normal person.

Initial impressions of Reeder 4 for iOS

I’m trying to get my mind around Reeder 4 for iOS. It looks great, has a very nice article view and the smoothest scrolling around, and features an excellent use of animation throughout the app. I miss the (admittedly old-fashioned) direct sharing link option (which I used for Pinboard) and the old gray theme (the new dark theme is darker). The J and K Emacs-style keybindings are welcome, but it puzzles me that arrow keys and the space bar are not allowed for navigation.

I normally wouldn’t post pictures with family members in them on my blog, but I’ll make an exception for this one. Me wife and son are kind of hard to spot in it.

Monmouth Battlefield State Park

mp-photo-alt[]=

Carole Cadwalladr: Facebook’s role in Brexit – and the threat to democracy

I listened to this TED Talk yesterday, via the TED podcast. Carole Cadwalladr’s message was chilling but not at all surprising, considering just how much news there is about how Facebook (mostly) is abused to undermine trust in facts, in institutions, in each other, and, ultimately, in democratic elections.

Dark money flowing into ephemeral, misleading, highly-targeted advertising is rightly identified as the leading cause of these problems. Sometimes I think that if the advertising element were removed from Facebook, a lot of these problems go away. After all, isn’t the problem that people can pay to publish whatever they want, targeted to whoever they want, and there is no tradable record of it anywhere thereafter? But after thinking about it for a little while longer, I think that the advertisements are only part of the problem. The algorithms that target content, wherever it comes from, to the most engaged (most gullible?) users, are another huge part of the problem. People will spread user-generated misleading nonsense almost as fast as the targeted advertisements will spread.

I have concluded that the human brain isn’t well adapted to the scale, speed, and the algorithmic targeting of information that social media sites. Those are the very things that make a site like Facebook work. These kind of websites are flawed because our brains are flawed. That’s a problem that is not possible to solve.