Performing a delayed and/or repeating operation in a Swift Actor

Say you want to perform some operation after a delay, and/or at regular intervals, inside a Swift actor – maybe your actor represents a weather station and you want to periodically fetch the latest weather information, automatically. How do you do that? You could punt the problem to some other code, outside the actor – … Read more

Evil Pacman

Google had (has?) a tongue-in-cheek achievement system built into the employee directory. Anyone can define a new achievement and award it to whomever, provided they can create (or pirate) a neat little icon for it. Lots of people have over the years – there must be thousands of distinct achievements possible, at this point. It’s … Read more

Attention trumps experience

It’s always bemused me that I did better in electronic engineering than computer science. I studied them simultaneously, receiving degrees in both after five years (some classes counted towards both, thus why it wasn’t seven or eight years). I grew up playing on, dabbling with, and programming computers. From BASIC II to Hypercard to RealBasic … Read more

The Abstracted Unreliability Anti-pattern

I don’t know if it’s genuinely on the uptick, or just coincidence, or merely runaway pattern recognition on my part, but I keep seeing the same logical fallacy applied over and over again: if I add more layers to a system it will become more reliable. A recent example: this set of services have poor … Read more

People vs Products

I’ve experienced an interesting arc over my twenty or so years (thus far) of software development. I started out as a one-person shop, doing my own things, selling shareware. I had no manager nor technical lead. I had to make all my own decisions, in all aspects, without guidance or assistance. Subsequently, during my four … Read more

Better is the enemy of best

A vintage Mechanical Horse Patent Drawing From 1893 on Dark grunge background.

You might have heard the aphorism “Perfect is the enemy of good“.  If you’re in a technical field, you’ve probably used it, or had it used against you, to shut down a conversation.  It’s an effective way to do so because it insinuates that the target is thinking impractically, not focused on the problem at … Read more

‘Fake error’ about immutable values when using popFirst() on Array

It’s been a while since I wrote any meaningful Swift.  How I didn’t miss the Swift compiler’s bullshit error messages. var someArray = [“Foo”, “Bar”] if let foo = someArray.popFirst() {     print(“Who cares, we never get here anyway.”) } That yields, on the popFirst() method:  “Cannot use mutating member on immutable value: ‘someArray’ is … Read more