Damn this Broken Code

what can I say?  I’ve been coding straight for a few weeks now, some of these things, just, happen, it was time some programming joined the pantheon of greatest hits

Apologies to Marcus Hummon, Jeff Hanna, and Bobby Boyd

sing along with the Rascal Flatts version of the real song


I set out to fix this crap many hours ago Hoping I would find the bugs within this broken code Segfaulted a time or two Had a Lowenbrau, kept writing glue Started to see with every line my coding career was through

Every long stack trace showing corrupted args Others getting fail whales, leaving my boss in horror Pointing me on my way, this is so fubar’d This much I know is true God damn this broken code My coding career is through

(Yes it is)

I think about the years I spent on this pile of poo My code is channeling Microsoft, even the screen is blue It ran before, I don’t understand I want to blame the sysadmin It’s all part of a conspiracy that is coming true

Every long stack trace showing corrupted args Others getting fail whales, leaving my boss in horror Pointing me on my way, this is so fubar’d This much I know is true God damn this broken code My coding career is through

Tagged

So I watched the meme go from Janyne to Anne to James to Henrietta – and learned a bunch of new things about my colleagues, which I immensely enjoyed reading, that is until scrolling through Retta’s and realizing that one of the 5 she tagged was me. Gulp.

Of course, I have to be a little different, and a little more verbose, so I’m about to shun the list, and embrace the narrative. You’ve been warned.

Ten Years On

At first, I wanted to write something that wasn’t work related. 7 years out of high school, 2 years out of college. To be sure I had something going besides work, right?. Nope. My whole schedule revolved around my job then – which was at the time being one of a small group of “the”, “Windows NT guys” in the central academic computing group for NC State. Part of a three member team that created the first central Windows NT-based labs at the University just a few months prior (there’d been a bunch of Windows 95 labs in some of the colleges before us). I was a Windows (NT) advocate through and through. An outlook user, a Windows Programmer, and part of the lightning rod for a philosophical computing battle going on at the University. It certainly was a interesting experience for one’s first major (multi-month/multi-year) project. The success and failure of it still influences my work today.

A Favorite Snack Story

I’m a carbohydrate addict. I’m not much for sweets. But put some crackers or breads in front of me – and they won’t last long. Dessert at Cracker Barrel is a buttermilk biscuit with just a little jelly.

One snack I miss, that’s so low on the radar that there’s not even a Wikipedia entry for it was the Nabisco Doo Dads product. Nabisco killed it when they bought it from whomever had it before – I assume because it competed with their Chex franchise – or they got tired of buying peanuts from third-parties or something. It was like Chex-mix, only better.

To do or not to do, what was the question?

I’m not a big lists person. I don’t write much of anything down, because as soon as I do, I forget it. So when it comes to “todos” if I make a to-do list, not only will I forget everything on it, but I’ll misplace the list. And I have worked in such an interrupt-driven manner for so many years (such is the life of most IT-oriented folks) – that making a general to-do list is always trouble. Because inevitably, something is going to happen that day to turn the to-do list on its head.

I do have general goals, of which I’ll relay one. At some point in the not-so-near future I’m going to go learn Spanish again (I had no foreign language requirement in college, so all I’ve had is two years of high-school Spanish, from which I only vaguely remember things like the days of the week, and numbers up to twenty). Not the european Spanish, but some dialect that’s spoken within Mexico or Central America.

I haven’t quite figured out how I’ll do this yet. I have inexpensive access to a single course a semester, so I could do some online thing through NC State – or I could go down the road to the local Community college. Or I could buy some books and software. Or I could do it in a much more “put my education where my mouth is” and do it in some social networking way. I have a pretty decent memory for vocabulary, and reading/writing is something I could probably adapt to without too much difficulty. My Achilles heel is listening and speaking. I figure the absolute best way to learn it is to listen to Hispanic radio stations and watch Hispanic soap operas. No, really. (My darling wife laughed at me a fair amount when I told her this 🙂 )

If I were a billionaire…

I don’t think I’d stop working. But I would switch careers. I’d probably be helping my wife run the horse rescue farm that she’d like to have if we were billionaires. There’s a part of me that would love to go to law school, and spend my time fighting for causes that I believe in. I’m not sure though, I don’t think I could really handle the law. The law isn’t binary. And while I can “shades of gray” with the best of them, I would have a lot of trouble in the legal system.

So, I’d help out with the farm, and become a photojournalist, and fund scholarships and create endowments for things I believed in.

A job you wouldn’t have expected me to have had

Most everything that I’ve ever done that has really paid the bills has been technology related – ever since I was a Freshman in college. But I did spend one summer working security for concerts at the local outdoor Amphitheatre. I worked a lot of backstage. I met David Crosby’s wife, and was backstage for Reba McEntire, and Metallica (or AC/DC – it all kinda blurred together). It was an interesting experience, but way too much time for what it paid, especially when I got paid a lot more working overtime replacing a bunch of RS-232 and LocalTalk cables with thin-wire ethernet, and some new-fangled thing called “twisted-pair” everywhere. To this day, I’m not a big fan of live concerts, maybe because I spent too many way too hot North Carolina summer days preventing too many drunk concert goers from doing stupid things to their fellow concert-goers.

A place that I lived that wasn’t North Carolina

I spent 5 months in Dallas, Texas. In the summer and what the calendar said was “fall”. Most of what I saw was traffic, and concrete, and the inside of the Marriott Residence Inn. It formed about the worst impression of Texas imaginable – that thankfully was erased several years later on a trip with a friend where I got to see the hill country, and San Antonio.

A few of my favorite random things

It surprises almost every one that meets me, but I owned a Harley for a year. I didn’t keep it because it was definitely not the most comfortable motorcycle to ride for more than a hour or two, and I didn’t have really anybody else to ride with (motorcycles are definitely a social oriented activity) and it didn’t really fit the budget for the amount of enjoyment I wasn’t getting out of it. Maybe one day again I’ll get a more comfortable bike. The part I enjoyed the most was taking scenic backroads trips all around the central NC area on it. I don’t think much matches a motorcycle for doing that.

I’ve written about this before, but in college, for a semester, I wrote a humor column for the NCSU student newspaper. I didn’t really keep it up, because I just couldn’t come up with that many ideas. But it’s one of those things that I both get incredibly happy about, and get incredibly anxious about. Anxious because I worry a lot about what other people think about them, and happy about because I absolutely love the thought of making somebody else laugh with things that I find funny myself. There’s part of me that would love to be Dave Barry, but the stress would probably kill me.

And…. tagged?

I think everyone that I know that I read (and that reads this) that would do one of these has already been tagged, or they’d roll their eyes completely – or they don’t blog, instead, spending time in youtube, or twitter, or other places. So I’m going to cop-out and “blanket tag” all 6.5 of my estimated blog readers (funny how that matches the number from my college column. There’s probably like 2.5 people that I haven’t the foggiest that read this, or even if they have a blog. If that’s you – you’re tagged 🙂

(thanks to Retta for doing this – I really enjoyed reading hers and the others, and taking a trip down memory lane myself putting this together).

The Natural

My local community had a small parade on July 4th – and I spent some time taking pictures there.

One thing that I thought was quite interesting was the initial parade of local politicians. I wasn’t really surprised, it’s an election year, and July 4th is a political holiday, and I expect the politicians to be there.

I was a little isolated, in front of the entrance for the firehouse, and probably looking every bit the photojournalist (I was later even asked by a member of the local Civitan club which paper I was with). I got a few direct looks from the parade participants, but mostly they just focused on the crowd on the other side of the road, and on either side of me.

But six-term Congressman Bob Etheridge knew I was there. And looked directly at the lens when passing by:

Congressman Bob Etheridge

I think you can tell he’s been in the U.S. House of Representatives for 12 years.

Search changes everything

You might think this is about Google and the web, but it’s not. Well maybe it is in a way.

Mah Bukkits

A few days ago, I wrote about how much I really love mah bukkits – and I can’t think of a better example of how things used to be for me. I got tagged with an internet meme by my colleague Henrietta a few days ago, and in the process of pulling together the background and doing a little reminiscing, I went to find if I had any archive email (I’ve stored a lot of my history in email) from 1998.

And this is it. 58, FIFTY-EIGHT topical folders in the archive mail. I can’t even really screen capture the whole thing because the list is too long. (the best folder name not in the list is “Whine/Waaa/Mea Culpa”).

FIFTY-EIGHT. It bears repeating because it’s so absurd. Now, there’s some technical reasons here. In 1998, just about every mail client on the planet (at least every windowed-GUI client on every platform) stunk when it came to handling hundred to thousands of emails in a “folder”. Either because of directory limits in the OS, or limits in the file open APIs, or internal to the mail code, whatever. And whatever version of Outlook I was using at the time (pre-email virus epidemic), had the same issues. So the technical issues appealed greatly to my compartmentalization mindset.

I can’t even begin to imagine how much time I wasted doing this. And I remember trying to put emails in multiple buckets, because a single category just didn’t cut it sometimes. (I mean, some emails were “NT” “Novell” and “Mea Culpa”). But that got problematic to have so many duplicate copies, so I spent time creating new sub-buckets, or broadening the buckets (note the requisite “Misc.” and below “Organizational” are a bunch of “Other…” buckets). And then I’d want to get a timeline, so I’d copy the emails to another folder by month.

It was, in a word, no, two words, COMPLETELY INSANE.

I gave up up the categories sometime in 2000. It was just too much. I moved to time-based organization (usually Month-Year). Because I figured I could scan everything in a month faster than I could deal with the categories.

Now? I still have buckets that correspond to certain shared email accounts. But my archives are lumped together, sent, received, and all, into a folder per year. What has changed? One, my tolerance for the time it takes to organize things like this. And Two. Search.

Search changes everything.

When search is fast and has a modicum of intelligence about related terms (hell, just handling plurals). It changes the dynamic. I don’t need the buckets anymore. Decently written emails and subject lines (which could be another post entirely) – will lend themselves well to standard term searches. And they contain a wealth of contextual data (why do you think Google offers Gmail?). I’m now finally able just to group it all together and use search terms to find everything.

Search in email stunk in 1998. It’s better today (well, spotlight seriously needs help in Apple Mail so that I can easily do “sender = ‘foo’ AND body contains ‘bar’” – but that’s yet another post too).

And it will continue to get better. Add to that “tags” (which I don’t use in conjunction with my email yet) – which let me create ad-hoc, virtual groupings that don’t force a given email object into a single bucket to avoid duplication – tag groupings, which provide dynamic, contextual links between objects.

This is one of the places where technology really changes things. It takes on a brain-like ability to put everything in one big bucket, and build associative retrieval mechanisms – and search things faster than the hierarchical buckets could ever allow, and certainly reduce the time wasted on moving the items around from bucket to bucket and printing all those labels.

The internets be stealin mah bukkits

So, I have to go out and and admit before blog and everybody, that I, Jason Adam Young am a social networking hypocrite.

I’m a theoretically learned Computer Science graduate who cut his career teeth in that field colloquially known as “IT”, add to that I’m a classic introvert, and my career has guided me to that Systems Management part of IT.

So, what does that all mean? It means that I like buckets. Big ones, small ones, short ones, talls ones, green ones, mauve ones. I like them all. Ok, maybe not mauve. When it comes to computational and information problems, I love compartmentalizing things, categorizing things – finding the bucket to which it belongs (perhaps it’s part of that whole control mentality that “eye-tee” is endowed with).

Compartmentalizing computing problems is a pretty good strategy. But bucketizing information is not. Information is messy, chaotic, it wants to be free. It’s associative. Consider for a moment, human memory. It’s not like we have a file somewhere in our a brains where we somehow catalog all the spoons we’ve seen and can recall them every time we stop and think “spoon, wooden, 12 inches” But smell a little marinara sauce cooking on the stove, and you’ll hearken back to the 12 inch wooden spoon your Italian grandmother would chase you out of the kitchen with (no, I’m not Italian, nor was my grandmother, it’s an illustrative thing. I mean, really, there is no spoon).

There’s a lot of directions I can go with this, but let’s get back to the bucket. In February 2008 – I created a dedicated twitter account for extension.org system updates. I mean it seemed like a good a idea at the time. A little experiment that I helped self-justify with the idea that maybe I’d wire it up in some automated fashion to some systems service. Mainly it was just about separating the extension.org system stuff (“The Server is Down, the Server is Down, Auntie Em!”) from my own crazy phatic messages into a different bucket.

By all measures, it’s a minor (very minor) success, there’s people that will follow that extensionorgsys account in twitter, that don’‘t follow my twitter account. Ostensibly, I assume it’s because it’s easier to follow this abstract icon that posts messages about servers being down – that are nowhere near my verbosity level. Additionally perhaps there’s a certain amount of legitimacy associated with adapting the extension.org logo with a little green, and some drop shadow, and iphone glass effects and posting my work under a nom de plume. It seems a little more ‘official’ then having a head shot of Opie with a NCSU hat on his head and some random guy posting about the server.

I was fine with this bucket arrangement until it hit me last week that I was being a complete hypocrite. We have Yahoo! Answers-like application (only better) that we run that provides for routing questions from the public to Extension personnel in various locations and subject matter areas. And one of our groups is looking for “assignment to a queue” – only that, because we don’t have that queue-based assignment yet, one of my colleagues was proposing the use of a generic account to handle the role of the queue.

Which, honestly, is not really a bad use for the account until we can get the queue implemented, it’s not used for logins, it’s just used for routing. But I took a pretty adamant stance against enabling that generic account, with the concern being that we have to maintain accountability down to an individual. And that anonymous/generic accounts break the conditions that make social networks work. That is, that you are facilitating human-to-human contact.

Like, you know, using a generic account to bucket off my work as a system administrator. Um, er, yeah. Whoops.

This is a hard issue, really. There are successful “brand” twitter accounts. Think Zappos for example. Or SouthWest Airlines – which Kevin Gamble wrote about today. The extensionorgsys account helps to build the eXtension brand. It’s a very open and very transparent conduit for talking about the state of our system. And it both builds and benefits from the brand, it has some authoritative power that I don’t have as much just being “jasonadamyoung”. It’s a real human being – namely me – that’s sitting behind it. For that one small part of our organization, I have been the decision maker, the marketer, and its voice. Which is why it’s named ‘extensionorgsys’ – I have been extension.org systems, but I’m just a part of the overall extension.org picture (that’s changing as we grow, and add other voices like Daniel’s to the mix) And it doesn’t take but a few clicks to really figure that out. But still it’s not social. It’s broadcast. It’s not following its followers. It’s not interacting. It’s not a conversation.

Is that okay? Is there a need for a simple, just-the-facts, output. “The FAQ server is up” “The news server is down” – and you use it to point toward that jasonadamyoung guy for the more phatic messages: “Argh, blankety-blank-$&*%$! software updates again” Maybe, sometimes, you need just the facts.

But, I’m not so sure that facts and phatic really shouldn’t be mixed – I mean really, the facts really only exist to empower conversation between two or more other people. And that’s really the expectation of today’s internet. Actually, it’s always been the expectation, it’s just finally dawning on people that they can use this technology thing to facilitate that contact beyond their village boundaries.

I don’t know what the end result will be for extensionorgsys. It still might be good to keep for the brand, and for the facts, and just step it up so that it’s more conversational. Or just dump it, and folks can follow me, or Daniel, or others on the eXtension staff to keep track of the state of the system (and more!). It’s time to have a real conversation about that.

But I do know one thing is for certain. For those of us classically trained in IT? Or any other field built on a foundation of compartmentalization and categorization?

We better learn to give up our buckets.