UFO Drinking Game

When I was 10, this show was on Saturdays at 4:00 on UHF Channel 56. I watched the static-y, ghost-filled image on a black-and-white television with, I’d guess, a 17″ screen that sat on a cheap aluminum rolling stand. I thought it was the greatest show ever. This weekend, I discovered that it was actually filmed in vibrant-is-not-the-word color and that, while other people may lament that the future did not bring the flying cars and laser blasters of pulp SF, what I lament is the absence of a moonbase staffed by hot babes in go-go attire and purple wigs.

21st Century Fashions by Sylvia Anderson

Appearance of a new groovy outfit: sip

A new groovy outfit places inappropriate emphasis on a secondary sexual characteristic: drink

Conscious will incapable of keeping eyes from straying to groovily-attired secondary sexual characteristic: chug!

1980: The Future

The future seems inexplicably colorful: sip

The future seems unnervingly reliant on balsa wood and styrofoam construction: drink

You involuntarily exclaim “Yeah, that’s exactly how things were in 1980!”: chug!

Hey Kids, Let’s Put On A Show!

Attention wanders from incomprehensible plot: sip

Actors seem to be on different pages re. how seriously to play scene: drink

Dramatic zoom!: chug!

Why The Mainstream Concurrency Model is Broken

Raymond Chen’s psychic debugging of a deadlock is everything you need to know about why the mainstream model of concurrency (in which programmer’s manually manage locks and can start their own threads) is fundamentally broken.

If you’re a C# or Java programmer looking at this code, you might be tempted to throw the bozo bit and say “Yech! C!” but this is precisely the same situation that one can will see in any kind of complex, multithreaded application.

Sure, Raymond Freakin’ Chen can quickly debug such situations, but most of us don’t have Raymond Freakin’ Chen on staff. And no matter how gently Chen tries to show us how easy it is, most of us simply don’t have the capacity to develop rapid, accurate intuitions into the cause of problematic thread behavior in this model.

And even if such capacity were widespread, the discipline of never doing any form of external calling (message sending, virtual function calls, invoking callbacks, etc.) while holding a lock is never going to be universal and, so long as it’s not universal, this type of problem is inevitable.