Walnuts, Chestnuts, Deeznuts

About a week ago, Gregg was all slobbering on the YUI’s nuts. He mentioned it a couple more times, and since Erin and I didn’t have any grand plans this weekend, I decided to download it and see what all the hub-bub was about.

In a nutshell, it is truly bad-ass.

While I haven’t started dicking with any of the cool Javascript action, the CSS grid layouts provided by the YUI are outstanding and easy to use.

Hence, the beer-o-rific MMH redesign.

Now I’m the one slobbering on the YUI’s man bag.


The Mac Mini Mega Migraine

Today’s the Friday after Thanksgiving—commonly referred to in the U.S. as “Black Friday” because all the idiots swarm the shopping malls in effort to save five bucks—and most people have the day off work.

I don’t.

I could have taken a vacation day, but didn’t. I can’t complain, though… since I get five weeks of vacation each year, and after next October, six. Plus, I wore sweat pants to the office. Comfort!

Anyway, about two-and-a-half weeks ago, I ordered two Mac minis for use at the upcoming trade show in Orlando, and they finally arrived today. Now, taken at face value, the Mac mini looks pretty goddamned impressive. It’s quite small, pretty fast, and plenty capable.

The first thing you notice as you’re unpacking it, however, is the relatively-gargantuan proportions of its power supply brick. While the Mac mini is 6.5”x6.5”x2.0” (84.5 cubic inches), its brick is 6.5”x2”x1.375” (17.875 cubic inches)… or about one-fifth the volume the mini.

That’s huge.

So, basically, what Apple has done is move some of that volume away from the box that’ll sit on your desk and put it in a warm, idle slab of plastic that will probably sit on the ground under your desk.

The next thing you’ll notice after you have it up and running… is that it requires 470.5 megs of software updates. That’s almost half a gig worth of download. Here’s hoping you have a Gregg-style 15Mb/s pipe at home or office, because the download/install procedure averages well over an hour on a T1.

What’s worse is that they come with OS X version 10.4.7 (the Intel flavor) preinstalled. Which means that you’re effectively doing a minor-revision software update to 10.4.8. Minor revision?! Blow me, Steve Jobs.

Finally, once all the software has downloaded and installed, you have to perform a firmware update. While this procedure isn’t that taxing (two restarts and then hold down the power button), it represents just one more fucking thing that you have to do (and wait for) before you can start using your flash new computer.

While the mini is the perfect fit for what we’re going to do at the trade show (headless operation, play a video presentation on infinite loop), I can’t for the life of me figure out why anyone—knowing now how much work it takes to get it off the ground—would buy a Mac mini for regular home or office use.

Oh, yeah… the price.

You cheap, masochistic motherfuckers.

The Coolest Hockey Photo I’ve Ever Snapped

This post was updated on April 11, 2007 to fix broken images and links.

This is the first season where I make a point to take my camera to games… much to my wife’s dismay because she thinks I look like “The Dork in the Stands Taking Pictures”.

She’s right… I am that dork. Last night we picked up the work tickets, so you should notice a change in perspective. Check this shit out:


First goal of the game… perfect timing.

And, for those of you who loves you some Internet memes:


The game itself started off pretty well, with the Caps taking a 2-0 lead early in the second period. Then, everything went to shit, and all hell broke loose. There were a total of 176 penalty minutes issued during the game, and of those, ten 5-minute stints were for fighting, and seven 10-minuters were game misconducts. Caps defenseman John Erskine led the pack with 29 minutes in penalties. It was a bloodbath, and I have the photos to prove it.

Victory Lap? Not Really

Despite the obstacle represented by wading hip-deep in crappy code, I finally “finished” the web rehost -slash- server migration today. Looking back, I realize that I’ve been working on it since October 13th, just over one month ago.

A couple of retrospective bitchings:

Why in the hell would upgrading my version of BBEdit change the end-of-line characters in text files that were originally created in, well, BBEdit? Somewhere along the way, it started dropping in Windows-style carriage return line feeds (CRLF, which Python escapes as “\r\n”) where there used to be only Unix-style line feeds (LF and “\n”).

This will completely screw your Python module if you edit just a couple of lines, because CRLFs don’t qualify as proper end-of-line characters on a Linux box. Result: A bunch of unexpected and very ugly errors.

A quick double-check of the preferences shows that it is set to translate line breaks, default to Unix line feed only… not to mention I’m running the fuckin’ program on OS X (a Unix variant). None of these files have ever touched a Windows box in their entire lives! WTF?!

Developers: do not assume that everyone is a “power user” and skip critical installation steps in your “README” file. Your job may be to build shit from source all day long, but some of us only have to do it once every couple of years. Yes… I forgot to “./configure” before doing the “make”. So fuckin’ what? It wasn’t in your installation instructions, dickhead.

This is even more important when you release only the source files for installation of your package. Why have you forsaken RPMs, debs, and other handy packaging constructs that could possibly keep me from having to hand-edit your piece-of-shit C modules to fix improperly quoted strings? You’re a developer; you write code in C (not everybody does, asshole)… you know that improperly quoted strings in your C module will break the installation!

Does not compile! WTF?! I hate you.


Well, it’s all over for now. All that’s left are to squash the lingering bugs that people find as they use the system. Hopefully that won’t be too painful.

I Used to be a Horrible Programmer… and Probably Still Am

I haven’t had a lot to write for the ol’ blog lately. Mostly because the majority of at-home free time has been spent watching hockey on TV or coding up some work shit.

And “coding up some work shit” is exactly what I’d like to address.

Somewhere around the last quarter of 2000, I started writing web apps for the intranet at work. You know how it goes… contacts database, log employee vacation and travel dates, keep track of project information, etcetera. Despite my experience with (and subsequent loathing of) Zope, I chose to write the new apps in Python… but through a framework that would work directly with Apache. That “something” was Webware for Python.

The Linux box upon which I’ve been creating, refining and damning those intranet applications for the past six years has been slowly-but-surely spiraling down into a world-crushing funk. There are myriad nefarious reasons to explain this, but I won’t go into them… that would be boring and serve only to alienate all of my readers except for Gregg.

The upshot here is that I’ve decided to completely replace the decrepit piece of shit running my shitty learn-as-you-go code with a nice, chunky box running the “latest” Linux operating system, the latest release of Webware, and the latest versions of my own code.

It’s that last part that’s been kicking me in the ass.

Everyone who writes code for a living (or for fun… nerds) will run into a situation where they have to edit or rewrite someone else’s code. It’s horrible. Your thought process will never be exactly the same as someone else’s. Your logical pathway to achieve a computational goal will not necessarily match that of the code’s last author… and figuring out what they were trying to program in effort to do something can be frustrating. Actually, more times than not, it boils down to “what the fuck were they thinking?!”


It’s so much worse when someone else’s code is your own… when you have to take a fresh look at your own years-old turds. You know exactly who wrote this piece of shit (you), and you can somewhat relate to the logical sequences that gave birth to this ultimately embarrassing example of “how not to code” (again, you). You have nobody else to blame for the molehill turned mountain recoding effort (guess who?).

So, if you’re wondering why I haven’t been posting anything here at the ‘Head lately, here’s your answer:

Rewriting my own code is horrible! What the fuck was I thinking?!

Alexeev Scores Twice in Lightning Road Win

Last night was the first of four games with the used-to-be-my-hometown Tampa Bay Lightning coming to D.C. to play the now-my-hometown Washington Capitals. All the Caps season ticket holders who know me really enjoy giving me a ration of shit about rooting for the Lightning.

At the Thrashers game last weekend, I promised the locals that I’d root for the Caps instead of the Lightning. I did my best, cheered on the Caps, and remained reasonably quiet when the Bolts scored.

But, I found out it’s impossible for me to abandon my decades-long loyalty to the Lightning, regardless of how hard I tried… especially when Party Marty scored a tying goal in the second period right in front of us:


It was a great game for a Lightning fan. I am, however, quite pissed off that—so far—Catherine is the only one who gets to enjoy Caps’ home wins. One day… one day…

More photos here.

How to Properly use “Stratagem” in a Sentence

The various sports outlets and sundry local bloggers all have their own take on last night’s Caps versus Florida Panthers game. Here’s mine:

The Caps score five (5!) goals in the first 15 minutes of the game. The Caps get zero (0!) powerplay goals in five man-advantage chances. The Panthers score two (2) powerplay goals—their only 2 tallies of the game—on three 5-on-4 opportunities.

The Caps will travel to Sunrise, FL on November 13th for their next meeting against the Stinkin’ Panthers.

Prediction: Look for coach/GM Jacques Martin to play four men on the ice on purpose during what should be even-strength. This will trick the Capitals into powerplay mode, thus rendering them completely ineffective. Should the Caps take a penalty or four (it’s only a matter of time), Martin will send his fifth player to the ice for your standard Panthers powerplay.

If he follows this bullet-proof game stratagem, Panthers blank the Caps 2-0.