Counting My Blessings
June 26th, 2008 at 7:10 pmSometimes I think it’s important to take a step back and be grateful for the talents we have which we usually take for granted.
For example, I have the ability to watch a DVD, without subsequently dragging a cheese grater across it when I’m done. I’ve never thought much about it, but judging by the condition of some of the discs I get from Netflix, it apparently is a rare and extraordinary skill indeed.
and yet…
June 26th, 2008 at 8:28 am…in one week, Obama has twice reminded me why he was my third or fourth choice at best.
I may have to vote Nader after all.
Oh, and I fully agree with this. If Obama blows it on this one, I’ll be taking the bumper sticker off the car and mailing it back to him.
I can haz enlitenmint?
June 25th, 2008 at 3:04 pmHeh, awesome:

more cheezburger
Not your daddy’s ideology
June 25th, 2008 at 8:44 amKa1igu1a at Freedom Democrats points us to George Will’s Newsweek piece on the Libertarian Paternalism espoused by some of Obama’s economic advisors.
To be sure, it’s not libertarianism as normally defined. It’s not really even “left libertarianism”. But it’s also a long way from the populist welfare state redistributionism of liberalism past, and it’s an ingredient that can help make the liberal-libertarian compromise possible, moving both sides toward a middle ground, where the market is respected, but not worshipped.
And it’s part of why calling Obama a “Marxist” or even a “socialist” makes one sound like an ignorant fool.
hinting?
June 24th, 2008 at 3:01 pmFrom an email blast just received from the Richardson camp:
I still have a lot of work to do here in New Mexico before I leave office in 2010 due to term limits including fighting to extend health care to every New Mexican. And I remain actively involved with national politics because we need to change America and every one of us has to contribute something
But who knows? Maybe I’ll even decide to run for Governor again in 2014 — if something else doesn’t pop up in the meantime!
Probably doesn’t really refer to any specific foreknowledge of anything, but still…
And it’s offensive to pianists!
June 22nd, 2008 at 5:20 pmSo… whoa. I took Jim Ridley’s advice and added I Know Who Killed Me to my netflix queue some time back. Well, here’s a pretty good summary review. But I think I can condense my review to one word:
Yikes.
Man, I don’t know if I can trust Mr. Ridley any more after this! Ha, I tease, because I think I can actually understand why he liked it, there was definitely a great potential for psychodrama — exploration of multiple personalities, traumatic breakdowns, and the internal struggle between the dark and the light.
But the execution? Again I say, “yikes”.
Free To a Good Home
June 22nd, 2008 at 10:48 amJust a quick interjection here, can anyone use a couple of Dell T0529 compatible black ink cartridges? I’ve got two that were shipped to me by mistake. It’s a remanufactured knock off brand, but I’ve had good results with their epson products. If anyone wants ‘em, say the word.
A question..
June 19th, 2008 at 7:44 pm..for the slimy Republican shill currently spouting off on Dan Abrams’ show –
do you really think it helps your cause to try and coin a phrase that’s phonetically indistinguishable from “Obama Nation”?
The three types who understand binary
June 15th, 2008 at 10:16 pmA nugget of common wisdom in the world of computer programming speaks to the division of programmers into two basic categories (we do like things in binary…) — those who code because they love it, live it, and would be doing it even without the paycheck, and those who do it because someone told them it was good way to make a living. The former are generally considered the good ones, though I suspect management may recognize how the latter may have their uses.
I find myself somewhere in between, being a person who lived it and loved it until he was about 13 or 14 or so, a bit of a programmer prodigy — right up until I discovered the things that would really drive my life: music, literature, philosophy, film, politics, and parties — not necessarily in that order. I only came *back* to programming when I finally resigned myself to the need to make a living.
So, yeah, I’ve got more natural skills and code with more artistry than the latter, but have to bow before the former (which would include all my colleagues). This of course is why you almost never read tech posts from me. And yet why you will get this occasional one as I pat myself on the back.
OK, see, I’m in a position that’s actually probably perfectly suited for my particular point in the aforementioned spectrum. I started out here working as a maintenance programmer on some old code from the 90s. And while we have been working to replace that system with a modern architecture, we find we run up against its limitations more quickly than we can realistically port it to the new environment. And so at some point my job changed from *maintaining* the old code, to *transforming* it — rebuilding in place, creating a brand new system on top of the old data & schema, to solve the problems of today that can’t wait for the potential of tomorrow. As I paraphrased the other day to Cory, I liken my job often to that of a modern artist making sculptures out of garbage found in a landfill.
Anyway I’m just posting to rejoice in having finally solved a particular problem that’s plagued us from the beginning. See, the people who wrote the old code for some reason got it in their heads that a user would surely *never* change their email address, and pretty much built the entire system around the idea that an email address was the primary identifier — they made email address the primary key of the users table, and made it the link to just about every other table there is.
Raise your hand if you’ve only ever had one email address. What, no one? Well then, you see our problem.
It’s a problem that I’ve been thinking about for going on three years and which finally bubbled up to the top of my priority list this week. And after building and trashing a few different hacked-on schemes to add an email address table attached to the user, all of which had numerous ugly complications when it came to account logins, maintaining continuity, preventing hijacking, and a whole host of other issues — on Friday it came to me and I hacked out most of it in an exciting flash that hearkened back to those early days as a pre-teen teaching himself assembler.
It was so simple it was stupid. All I had to do was take a step back and redefine my terms. Create a new “superuser” table and store the superuser id as a foreign key in users. My “superuser” becomes what would be a user in a smarter system, and my current “users” table become the equivalent of an “email addresses” table. Everything works exactly as it has for probably 10 years or so, and when someidiot@yahoo.com wants to become someidiot@gmail.com, they do so exactly as we’ve always done, creating a brand new “user”. *I* know that both “users” are the same superuser, even if legacy code and the user-order-item cascade doesn’t — and my soon to be redesigned account manager program will only care about superusers.
Elegant and minimally invasive, yet turns the entire platform’s assumptions on it’s head and solves one of the biggest thorns in our side in about two days worth of coding. Maybe I’m still a real geek after all.







