Archive for the ‘Computing’ Category

The Deconstructed IT Professional

Monday, April 21st, 2008

 

A friend of mine recently posted two links to a discussion list we’re both on, and much like whenever a vaguely philosophical concept gets posted to the list, I’ve jumped for the bait, just the way I can’t get trout to do. I’ll post my thoughts here, because it might be interesting to reach a somewhat wider audience, particularly if people post comments – hint, hint.

Deconstructionalism is the topic of two articles I mentioned, as well as the topic of this post. Here are the links:

http://fish.blogs.nytimes.com/2008/04/06/french-theory-in-america/

http://fish.blogs.nytimes.com/2008/04/20/french-theory-in-america-part-two/

As a very brief recap for those of you who didn’t read the above two links, or simply found your eyes glazing over, Deconstructionalism is a way of looking at the world. Its defining characteristic is to claim that any attempt to separate us, as human beings, as knowers independent of the world, is incoherent and bound to fail. Our human existence and thought processes always stand between us and our understanding of the world. “Truth,” as commonly thought of, is essentially inaccessible – our act of perceiving and reflecting upon the world serves as an intermediate step between us and that world. The terms we use to define the world are made by us, and reflect our own preconceived notions – in the language of Deconstructionalism, they are “socially constructed” - as much (or more than) they reflect the world.

For many of you with an education in the sciences, the above paragraph will likely raise all kinds of red flags – I’m making claims about “truth” that you’re probably ideologically committed to rejecting. For many of those of you with an education in the humanities, you’re seeing red flags because you think I have incoherently tried to address a topic to which my paragraph does not do justice – either because a paragraph isn’t enough space, or far too much! I see the view presented as liberating – the way I see it, adopting it’s mediated view of truth it frees me from the pursuit of a “right answer,” to acceptance of a “best answer.”

“OH NOES!” some of you cry. “He’s been infected by touchie-feelie postmodernist crap!” Maybe, maybe not, but it’s not my experience in the single English course I’ve taken, nor the few Philosophy courses, but my education in Computer Science and Physics. Without going into too much detail, both fields set some definite limits on human knowledge. Physics has it’s Heisenberg Uncertainty Principle, which sets hard and fast rules about what we can know about a given particle; not because we’re dumb or because our instruments aren’t good enough, but because in a very real sense we can’t know – physical law makes it impossible. Likewise, in Computer Science, we have the Halting Problem. The Halting Problem is the fact that a computer cannot tell if it’s entered an infinite loop, and at least as long as we continue to build computers based on the model of computing laid out by Alan Turing and Alonzo Church early last century, we’re stuck with the problem.

Ok, this is all well and good, but what does it have to do with everyday life? Plenty, I find. Diagnosing a failing hard drive is something I often find myself doing. In point of fact, most of the time, I can’t tell you exactly how the drive has failed. Has the motor driving the read arm failed? Has the motor that spins the platter failed? Has the circuitry that supplies power to those two motors failed? In almost every case, I couldn’t tell you. However, liberated of the need to know that, I can tackle other questions – what, if anything can I do to help the client? Generally, the client only wants to know if I can get his or her data back, and not the particulars of exactly how the drive failed, and I’d only bore him or her, even if I were to have the exact physical explanation they wanted.

Managing people is something I was never really taught how to do, but it’s something I find myself doing every day. “Truth” is inaccessible to me; I never really know how my words affect the other person. Did he understand my explanation? Does she know why I praised her? In the end, I can’t know – I guess, and hope I guess correctly – that my words and deeds will have the desired effects, that the effects I think I want are actually helpful, that I have an effect at all. In many ways, I find working with humans far more challenging than even the trickiest electro-mechanical devices. Oftentimes, I get only one shot. If I make the wrong judgment, the damage is done, and I can mitigate but never really fix the problem. Under what conditions should I fire people? Every time a rule is broken, or only the major ones, or only when they’re broken in a blatant way, or… and I suppose the uncertainty drives my particular management style. I always ask myself, “Is this worth losing a student, and in particular, this student, over?” and make my decision based on that. Maybe that’s overly cautious. Maybe it’s outright cowardly. Maybe it denies the student a chance to learn that breaking rules often has unfortunate consequences. But, tied as I am to my uncertainty, to my doubt that my workplace rules are even coherent if applied unthinkingly, that in the end I am always a mediating force, applying meaning to rules based on my own, rooted-in-myself understanding of what’s best.

Of course, there’s much more to Deconstructionalism that I’m either ignoring in this post for the sake of making my point, or else of which I’m simply ignorant. I’m waiting for Some Random English Major to charge in with guns blazing and tell the world (or at least, all 5 people who read my website) just how wrong I am.

And that’s ok. “Wrong” is… wait for it… socially constructed!

 

Web Development, part 3

Tuesday, March 11th, 2008

Early July, 2003 found me a victim of “downsizing,” or for the even more cowardly, “rightsizing.” Losing my job just in time for my birthday didn’t sit well with me, but at the same time, I had seen it coming. I’d been sending out resumes, but the economy of 2003 was such that young Computer Scientists with a small amount of IT experience weren’t exactly in short supply, and I didn’t get a single callback.

However bummed I might have been, I hadn’t lost my sense of adventure. Talking about my plight with a friend of mine who had graduated just that spring, we decided that if the business world wasn’t beating a path to our doors, we’d beat our own path to it. So, with a handshake and a sense of optimism, Clever Bison Computers was formed.

In retrospect, we were fairly clueless. While we were fine technologists, and dedicated to working hard, we didn’t have a good grasp of running a business. Someday I’ll probably write a long, introspective post about what I learned from the whole affair, but that day isn’t today – I’m here to talk about web development!

As the more experienced programmer of the pair, the development of our website became my priority. I knew the web development I had been doing just a few months prior would be inadequate for the task, so I fished my friends for suggestions, and ended up buying a couple of O’Reilly books on PHP and web development and an SQL manual. After spending a week uploading the contents of the book to my head, I got to work.

I found an online storefront called OSCommerce that was open source and seemed to provide a lot of functionality that we needed. Of course, the code was messy, and while I had a fine background in theoretical computer science, the practice of web development was a field of which I had a tenuous grasp at best.

The months went on and I tweaked things and added features, and it certainly occupied me well enough. In the end, however, we just weren’t doing enough business to make Clever Bison Computers worth our time, so we agreed to keep it as a side business while we both pursued other, hopefully remunerative, interests.

Flaming Web Development, Inc!

Wednesday, March 5th, 2008

I just can’t win…

So I’ve been working on a consulting project, and I’ve been having a great deal of difficulty getting the hosting server to work with CakePHP, the framework I’m trying to use. After spending a week trying to get it working, along with many factually incorrect but utterly unhelpful exchanges with their tech support, I’ve essentially given up on hosting the project with them, and I’m pursuing other options.

Of course, the reason for this is that while fighting with the hosting company is great fun, the client doubtless expects actually progress on the project. So, I downloaded my files from the nigh-useless hosting server, installed XAMPP, which is a “double-click-to-install-and-you-have-a-complete-server-environment” application so I could see the results of the code I was grinding away at, and got back to the business of writing code. Several frustrating yet productive hours later, I decided to call it quits around midnight.

While saying my goodnights, my attention is drawn to something odd. What is that fizzing noise? Why is it bright and orange behind my computer?! WHAT’S THAT SMELL!?!?! And at that point, my development computer goes dark.

Dead power supply – it shorted and burnt, so far as I can tell. I *could* RMA it, IF I could get access to an “invoice number” (whatever that is) and I’m willing to fax them details, get an RMA number, ship it to them, have them decide if they’ll honor the warranty, and then have them ship it back.

Or I can just drop $150 on a new power supply. Which I’ve done, and when it gets here we’ll see if the power supply simply discovered the joy of cooking itself, or if it took other pieces of hardware along for the ride.

If I ever incorporate, I think I’ll register “Flaming Web Development, Inc”

Kickin’ it old school

Thursday, February 7th, 2008

Long ago, before the web - so we’re talking ancient history, the 1980s, here - young adults amused themselves by using modems to dial into BBS systems and interact with each other electronically. Most everything was text based, and because of the limitations of the technology, everything was kept small and simple.

There would be message boards, informational text files, program downloads, and BBS games. These BBS games were simple affairs, but they presaged the MUDs of the 90s and the MMORPGS of our current decade. One of my friends, pining for the old days, set up an internet-aware (instead of modem based) BBS a few years back, and a small group of us played around on it for a while.

A few weeks ago, pining for the elder days, I poked my friend Alius and got him to dust off the server and get it running again. It’s once again humming along, and he’s told me I’m free to advertise it far & wide. So, if you’re interested in getting a taste of the (somewhat) elder days of computing, fire up your favorite telnet client and connect to aliusweb.dyndns.org, and have fun! Tell him Woot sent you!

Web Development, part 2

Sunday, January 6th, 2008

My college years were uneventful, so far as web development went. There was an almost palpable disdain for the web from at least some corners of my University’s Computer Science department, and given the wide range of opportunities open to young college aged men, I spent none of my free time investigating web development any further. The web was simply a tool for reading the news and checking up on class assignments, and nothing more.

Of course, the world did not stand still and as the 1990s were replaced by the 2000s, web technologies changed. When, in late 2002, I once became interested in the web, I found that the tools and technologies I knew worked, but seemed… antiquated. I embraced my antiquation with a sense of pride. Driven by both my fascination for “retro” technologies and my indignance that the world had dared to change without my leave, I designed a page that seemed as backwards as I could make it. I stuck with black text on a white background, a simple navbar of HTML links at the top of the page to mark sections, and clickable thumbnails embedded in a table structure for my image galleries – all of it done by hand in Notepad. I’d show them… I’d show them ALL!

I maintained the webpage for about half a year, until mid-2003, at which time I was “downsized” and lost my hosting for the page. Looking back at it – I saved the site to a CD-R for posterities sake – it seems to me that yes, the page looks primitive compared to the colorful, graphics-intensive webpages one saw in 2002, much less today, but it had a certain sleek elegance, and a charming, do-it-yourself aesthetic to it that I miss. That being said, it was ALL very simple HTML, and did not even include such straightforward techniques as includes. Instead of changing one file when I wanted the structure of the navbar to change, I had to change code on EVERY page that included it. Fun times!

My next foray into Web Development would take place just a month or two later, as the life of recently-unemployed Woot took another strange turn. But that’s a story for Part Three…

Web Development, part 1

Wednesday, December 26th, 2007

I’d like to talk about about how this website came to be. I can tell you that yes, Christmas day 2007 I downloaded some PHP files, tweaked them, then uploaded them to my hosting company, blah blah blah. While that would be factual and accurate, it doesn’t explain what is to me – and hopefully, you – the more interesting question of “Why?” I’ve made some of the choices I’ve made with this site.

I guess you could say I’m a tinkerer, who often ends up building things that no one else is interested in.

This is a story about my experiences with web development.

My first experience doing web development would have come sometime in, if I recall correctly, 1997. I was an AOL user at the time, and wanted a website, so I built one with the help of AOL’s web tools and a mid-90’s vintage NCSA Beginner’s Guide to HTML. I did the initial layout with AOL’s tools, but read and made myself understand the NCSA guide so that I could open the files in Notepad and fine-tune them myself. I was proud of the fact that I understood every line of those (by today’s standards) horribly primitive HTML files.

Well, all the lines except one: the one that created the chatroom! Yes, I had a chatroom integrated into my website, and I thought it was the coolest thing ever. I had no idea how it worked, except I pasted some magic formula into my HTML and a chatroom appeared on one of my webpages. Naturally, I tried to get all of my AOL and IRC buddies interested in my TOTALLY SLICK web chatroom.

It didn’t happen. My AOL buddies thought it was pretty rad that I had this chatroom, but hey, why not just hang out in AOL chatrooms? Let me show you this neat proggie I have that lets people in the room play hangman…

The IRC buddies were even less impressed. Yeah, we could hang out in your chatroom, but we have this cool IRC bot which holds the channel for us and kicks/bans anyone we don’t like, and…

So I had my little chatroom, and there would be times when I would log into it, still logged into IRC and AOL in other windows, and sit there. Alone. Yep. I’ve got a chatroom. I’m here, alone. In my chatroom. Which is awesome. So very alone.

Work on my website stopped in the spring of 1998; I was about to graduate high school and move on to college, which would start a whole new adventure in web development for me.

Incidentally, that old website is still operational, and although the engine behind it has clearly changed, the chatroom still works. And no, I don’t want to link to it…

That’s where I’m going to stop with my story for tonight – more stories chronicling my failures as a web developer, and by extension, my failures as a human being will be forthcoming.