Category Archives: Practical Applications of Knowledge

Rats Got the Baby

Last year, I gave in to the family, admitted that we live in the woods, on top of a mountain, and we have a persistent need to haul large volumes of stuff from there to here and back again. We bought a pickup truck. Problem is, we live in the woods, on top of a mountain, and the environment is very much interpenetrating our infrastructure. Because we drive the truck infrequently (that is, we don’t drive it every day), some rats decided the top of the engine block would make a great nesting spot. As well as filling every cranny with acorns, they chewed through one of the leads coming off the battery, which led to the truck’s computer (God bless it’s little silicon heart) to think that the battery wasn’t charging.

After a few adventures and phone calls, I finally found a place that would sell me a chunk of 16 gauge stranded wire (not Radio Shack, not Fry’s, not the hardware store, but the auto parts store — which probably says more about me and my expectations than it does about the state of electrical supplies and their availability) and I spliced the severed wire back into service. Wrapping it all up with electrical tape, which in our household is used principally to adjust the pitch of bagpipe chanters. So, for the first time in a few years, I’ve used electrical tape in an electrical context. That’s new!

Well, duh

So, Iran has reconnected to the Internet, and there’s this quote way down in the Washington Post article about it:

“Why did (the Americans) get angry after we cut off the internet? Because the internet is the channel through which Americans wanted to perform their evil and vicious acts,” Fadavi said.

I’d say that this, right here, is an excellent example of a thing politicians do all the time. It is absolutely true, to the point of being bleeding obvious, that of course the Americans want to perform their evil and vicious acts through the Internet. It’s cheaper that way. And yet, it is also not necessarily true that the protests were instigated by Americans, and I find it extremely implausible that nefarious Internet posters could get the whole population out on the streets in protest, getting shot, beaten, and arrested.


I’ve been ignoring Facebook for a few months, now, and my engagement with Twitter has mostly been retweets and likes. Yesterday, a friend who takes what other people say more seriously than I do decided he needed to back way off and go back to writing blog posts instead of tweets. Frankly, I would way rather read his essays, as I think his analyses are interesting and insightful and I’m really a fan of the long form. I’ve always felt that if a position is short enough to fit on a bumper sticker, it’s far too simplistic to be useful.

So then I thought, “Man, I sure don’t want to miss his writing, but I also sure do want to miss these 18 screens of ignorant hot takes and performative dunks; I wonder if there’s a decent RSS reader…”

There is.

And then I thought, “You know, I like being able to work offline and then occasionally connect to the world to send and receive. I wonder if there’s a decent[1] client app for my blog.”

There is.

Also, a few days ago I finally went ahead and updated my laptop to run Mac OS Catalina, which means that the GPG plugin for Apple Mail no longer works for me. I’d read that Thunderbird with Enigmail works okay, and hey, it sure does!

So now, here I am, with an up-to-date operating system and a blogging and email experience that feels like the late nineties. And that’s not bad, actually. I kinda like it.


1 – I do not consider a native app that simply wraps a web view and delegates all the logic and storage to the browser and/or remote host to be “decent”. If I wanted a web page, I’d just use a browser, not install a whole new application.

Why Monoculture

At some point, I don’t remember exactly when, I told my family that since I didn’t use Windows in a professional capacity and I didn’t use it personally, there was no way I was going to go to the effort of becoming and staying smart about Windows, and if they wanted me to do tech support, well, that was just too bad. I may even have been that much of a jerk in saying it, too. To my surprise, that was pretty well received. As a result, we mostly have Macintosh computers in the house.

Continue reading

Next Project

When we bought our house in the woods, it came with outbuildings. There’s the Rat Shack, which looked like maybe someone was going to build a granny unit and then gave up and just parked a camping trailer there instead. And then there’s the Toxic Waste Shed, which looks like a shipping container made of plywood and is full of shelves stocked with rusty electronics (!) and half empty cans of paint, tar, and solvents. But our favorite is the Pantry, an 8×8 room with a concrete floor, stud and drywall walls, and electrical wiring but the wires terminate about a foot outside the building. Maybe it was built to house the water pressure pump, which ultimately got located elsewhere, or maybe it was gonna be a weed drying room, or…we dunno. We thought of making it a chapel, but instead we insulated the heck out of it and installed baker’s racks and use it to store bulk and canned goods.

Continue reading

Sounds Like a Job for Perl

In which I write a continuous build system for bagpipe music using Perl and a Makefile.

The problem: the band has sheet music that everyone is supposed to memorize, the membership is geographically dispersed and not everyone can make it to every practice, and during practices and workshops and after competitions the music can get edited to reflect feedback and (one hopes) improve the performance. How do we distribute the music to everyone?

Continue reading

Programming for the Ages

So this feels like the most Silicon Valley thing I’ve said in a few years, but the thing I’m working on right now is basically the same parts and programming language I was working on as a hobby back in 1997. Yes, the machine is in someone else’s data center, yes, the services it’s interacting with are running in still other data centers; even so, I am writing Perl CGI scripts and cron jobs to respond to automated messages and run intermittent build and release processes. What a blast from the past.

Greatness Abides

Okay, so when I looked at Google news this morning, this story was in the “For you…based on your interests” section: Gremlin Brings Chaos Monkey Testing to Spinnaker CD Platform. Now, I’m a respecter of Dev Ops, but I’m not really a practitioner of Dev Ops. So I think this is cool, but the coolest thing about it is that my amazing wife invented Chaos Monkey. And now Dev Ops people all over the place are using it and excited about it and it’s really quite valuable. This, right here, is another reason that tech needs women.

Continue reading

It Could Be Better

A long time ago, my housemate (who is one of the only people who reads this – Hi, Kurt!) had this great explanation for why his homework wouldn’t compile: “It was perfect, so I fixed it.” Man, that so describes every programmer I’ve ever worked with. (Incidentally and orthogonal to the point of this post, I suspect that this attribute of programmers coupled with the increase in the global number of active programmers accounts for so much of the frustration I experience with software nowadays.)

Continue reading

Things I Wish

I wish that Google provided an offline/dev version of Firebase so that I could work on my mobile app when I’m not actually online. Sort of like they offer a dev version of Datastore for App Engine development.

I wish that Google made their Flutter documentation available as a downloadable package so that I could refer to it while I’m not actually online.

I wish that I could test the capability of Flutter+Firebase to deal gracefully with network unavailability.

I wish that software development didn’t suck.

In 1984, I was able to write a FORTRAN IV program to do a bunch of math and then output bitmapped Mandelbrot graphs to a dot matrix printer because the language was stable, the hardware was stable, and the manuals were printed out and stuck in binders on the shelf over the computer desk. Today, I can write programs anywhere but the languages aren’t stable and the hardware isn’t stable and the manuals are online. If I write code in a stable language for stable hardware, nobody I know will be able to run it.