Category Archives: Practical Applications of Knowledge

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.

Progress.

Mobile Enterprise

So, I’m writing another mobile app. This one is a chore list for our household. And, since our household is not technologically homogenous, I’m writing it in Flutter so I can deploy it to All The Devices. Flutter’s idiom is lambda-heavy, and most of the tutorials and examples wind up embedding application logic in the UI, which I find hard to follow at times and which, as a practice, makes me itch and feel like I need a shower.

A helpful soul on StackOverflow pointed me at an example project that demonstrates how to build a functioning task list app using a variety of different frameworks. I decided to go with flutter_redux, which is pretty cool once I managed to understand how it works. You just treat your application as a giant state machine, you store all the state in a single state class, and everything that happens is an event/action that gets sent through a set of functions that you write and attach to the framework. All of which is ridiculously complicated, yet elegant at the same time. I wind up writing reams of code just to get the first screen to display. The marginal cost for additional screens, though, is tiny, and logic is nicely decoupled from presentation. It seems very FizzBuzzEnterprise, though, honestly.

Nonrandom Thoughts on a Holiday Afternoon

Oh, lots of things going through my head. No real coherence to speak of, though.

Let’s see,

Victor / Victoria

Before I ever moved out of my parents’ house, I saw the movie, “Victor / Victoria” and took to heart an exchange that doesn’t even make it to the quotes section on IMDB. There’s this bit early on where Robert Preston challenges Julie Andrews with, “Name me one thing a man can do that a woman can’t,” and she responds, “Peeing standing up,” but he’s not flustered; he says there’s no reason a man can’t pee sitting down.

And you know what? If you pee sitting down, there’s no splashing that spatters all over the rim of the toilet bowl and when it’s time to clean the bathroom, it’s an easier job. If the mark of genius is laziness, I’m fucking brilliant. You know what else? My wife loves that our bathroom isn’t spattered with urine. She’s called this out, specifically, contrasting me with other men of her acquaintance.

Lesson for so-called incels: if you were less objectionable, people wouldn’t mind hanging out with you. It’s not them, it’s you.

Also: solve the whole seat up / seat down debate: lid down. Dunked by Miss Manners, y’all! I’m telling you, other people matter.

Slack Integrations

I’ve been keeping my bagpipe music as ABC files for years. Because I’m a curmudgeon and I hate all the WYSIWYG score editing software in the world, but still. Anyway, when I joined a band, I started transcribing that music to ABC, too, and now I’ve got the job of being the music librarian. It turns out that there are several good reasons to use ABC instead of CelticPipes or whatever, not least of which is that a text file is an excellent candidate for inclusion in a git repository.

Anyway, I’ve been asked by several people if I could email them or otherwise let them know when the music has been updated in our band folder on Box. Sure, I can. Get on our Slack group and join the music channel and you’ll see a notice every time someone commits a change to the tunes, and every time the PDF files get rebuilt.

80s Nostalgia

I don’t care what Ernest Cline says, the 80s sucked. For the most part, those of us who remember them fondly at all do so because the 70s sucked even more. Even so, not everything was horrible. Amidst the shitshow that is late December 2018, there are a few bright lights from the 80s that still make me happy. Among these is X.