Minority Opinions

Not everyone can be mainstream, after all.

Glacial Swiftness

leave a comment »

I spend most of my time on one of two speeds: lazy or thorough.  My co-workers frequently compliment me on how fast I get things done.  Reconciling these facts takes a bit of mental gymnastics.

When I’m assigned a task, I usually figure out how to do it with the least amount of tedious busy-work on my part.  That can involve writing a program to do the busy-work for me; it may use less of my time, and will often be more accurate.  As an example, I once had a co-worker who was assigned to port a set of quizzes from MS Access to MySQL.  There were tricks involved, of course; the MySQL schema had separate tables for courses, activities, questions, and answers, where the Access database had a separate table for each course, with each question’s answers lumped into a single field.  He convinced Access to export the tables as CSV files, and wrote a PHP script to import each row into MySQL, but had trouble convincing PHP to parse the rows.  Question text frequently had quotation marks and commas, and the answer field separated answers by newlines.  He spent two weeks manually unquoting fields, replacing field separators with pipe characters, removing newlines, and placing carriage returns between rows.  (No, he didn’t use a Mac.  I’m still uncertain why he thought carriage returns were the Unix convention.)  When he left, I was asked to finish the job, and to clean up the incorrectly imported answers, so I wiped out his pipe/CR files, re-exported the Access tables, and read them with fgetcsv().  I hadn’t even been aware of the function, but it was in the top page of search results.  The entire process took less than a day.

More often, it’s the second speed that facilitates my laziness.  I have now been working on a single program for over six years, and have written, modified, or at least checked in about 85% of the code.  I’ve written all of the test cases.  I understand it thoroughly, from the interface to the database.  That makes me uniquely qualified to determine the easiest way to perform a given task.  Sometimes it’s a database query.  Sometimes it’s a code change.  Sometimes it’s handing a set of links and instructions to someone with more time for busywork.  Sometimes it’s just too complicated for the allotted budget.

That program isn’t the only thing I understand thoroughly, of course.  I enjoy figuring out the inner workings of complicated systems.  I once counted seventeen different levels to my understanding of computers, including software, hardware, and fundamental physics.  I’ve learned more games than most people are aware exist, and frequently win on my first time playing.  I’ve read about linguistics, traffic, geology, astronomy, and history simply because they were fascinating.  In fact, my laziness usually manifests itself in reading or learning something, quite possibly something tangentially related to whatever I’m supposed to be doing next.

The main areas I don’t yet understand are psychology and literature.  Those are the domain of my spouse, so I’m gradually picking up a few things; for example, I finally learned what my high school English teachers were trying to teach.  Perhaps that’s why I write: this blog was started as an attempt to communicate or at least understand my companion’s rants.  Granted, I haven’t followed through very well, probably because they’re not my own ideas; fortunately, it’s now possible to find some of them elsewhere.

In any case, that need for thoroughness might explain why I feel uncomfortable satisfying my weekly post obligation with something short.


Written by eswald

15 Jan 2013 at 6:18 pm

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s