Tuesday, November 30, 2010

The "missing" date/time APIs

One of the places where computer programming and Western history can't help but intersect is on the question of the Julian vs. Gregorian calendars. For me, that hit the radar in the Java programming language. But the PHP language two-ups (as opposed to one-ups) the J/C distinction by also including the Jewish calendar, and--I am so not making this up-- the French Revolutionary calendar.

It turns out that, for the programmer (including those who write languages for other programmers), date and time are thornier issues than they, on the surface, appear. At the most basic computing level a date and time is a number. On modern UNIX-based systems, if that number is zero, it's precisely midnight (for Greenwich, UK) on January 1st, 1970. Negative values fall before that date, positive ones after that. Each number is a count of milliseconds (one thousand milliseconds = one second) from the start of The Me Decade.

Arbitrary--and perhaps arcane--as it is, this is what the writers of computer languages have to build on. In other words, that "primitive" number must be translated (transliterated?) into more recognizable notions of year, month, day, hour, minute, second and millisecond. And, as cited above, the question of whose definition of year/month/day/etc. is an added layer of complexity. And that's even without the amenity APIs--provided by many languages--like the ability to extract the day of the week as well as day of the month from a given date. Or providing a menu of options for formatting years, months and days as naked numbers vs. padded ones--e.g. the difference between 1/1/70 and 01/01/1970. (As if merely keeping track of leap years isn't complex enough...)

Of course, with all the handy things modern APIs can do with basic milliseconds, two things they can't do is tell you how many anyone has to work with, nor how they should be put to best use. Which, upon reflection, is a good thing. After all, computers--no matter how powerful--should never be allowed to aspire to fortune-telling or philosophy. That would be a disaster second only to cats spontaneously evolving thumbs.

Monday, November 29, 2010

Clobbered by a recurring truism

My co-worker (and fellow programmer) used to have the following tag-line on his email signature blurb: "A screenshot is worth a thousand words." And is he ever onto something there!

The backstory dates to last week when the alpha-user of "my" application sent me "before" and "after" samples of a spreadsheet that's moshed around by an Excel macro after it's downloaded from the website. Except I'm pretty sure she'd already done some housekeeping of her own, which threw off the row numbers, which really made things ugly.

To sanity-check: I stepped through the process, myself soup-to-nuts, and ended up with something cleaner that her "after" spreadsheet. So I figured her doctoring had something to do with it. So we intermittently traded "clarification" emails through the rest of the day. That actually made the situation worse, because I started to doubt that the export process from web page to spreadsheet was working properly--a.k.a. the kind of thing that you do not want to have to debug from two time zones away. Right before I headed out, however, she sent me screenshots from her stepping--also soup-to-nuts--through the process, and included a copy of the final product.

Then it all pretty much made sense. As dismaying it was to realize how far apart our respective pages were, realizing that I'd missed a few things in my smug assumption that the problem was with Excel or user error. Worst of all, we could have spent another day trading misunderstandings and unfounded assumptions.

Moral of the story: Ask for the screenshots. Have instructions written up for users who aren't used to taking them. Yeah, they're futzy and a pain. But I have yet to find them less time-consuming that guessing or projecting. That's the kind of thing that should be drilled into you in Programmer School, before you're allowed to so much as touch a compiler.

Sunday, November 28, 2010

Whoops--no post tonight

We finished up a family birthday celebration later than anticipated, so I'm afraid that tonight will be slighted, blog-wise. See everyone tomorrow!

Saturday, November 27, 2010

A random thought about knowledge obsolescence

Large chunks of free time have become somewhat scarce for me--for reasons both circumstantial as well as self-inflicted. This evening was not one of those times, which opened up the "To Do" list: Line-items such as set up a test server and hook it into the internet via DynDNS, upgrade the laptop to Maverick Meercat, Set up remote host access for MySQL databases, or even just learn my way around MySQL Workbench.

So, naturally, I've been working out how "Elizabethan" bows are tied (keeping both decorative aiglettes facing front), so I can finally attach the early 16th century "puff and slash" sleeves to the early 16th century Venetian dress that I finished something like mumble-fourteen-mumble years ago. Which means sitting with two strips bias tape pinned to the couch upholstery, following the directions from a printed-out web page, going through the steps multiple times, paying strict attention to how each strip "wants" to face at various steps.

This would have been something that pretty much everybody in Western Europe would have known, for at least a century. Now it's esoterica, albeit the kind that sets the hard-core re-enactor/costumer apart from the RenFest Refugee crowd. No doubt four and five hundred years from now, some form of programming will still be practiced. Were I to be thawed from my cryogenic tube and rebooted into that time, I would be astounded by many things. But one of them would not be finding clubs devoted to the "ancient" rudimentaries of the craft--with all the bickering over interpretations of primary sources, one-upsmanship, snobberies, know-it-all-ers and posers one can expect. Oddly--or maybe not--that's almost a comforting thought.

Friday, November 26, 2010

Frivolous Friday, 11.26.2010: The Steely Dan edition

(Seriously, y'all just had to know this was coming...)

When Black Friday comes
I'll camp out by the door
And be first in line when they
Open the mega-store.
When Black Friday comes
It won't matter if it's snowed,
I'll be banging bumpers out
On skating-rink roads.
When Black Friday falls, the prices they will be
The next best thing to free.

When Black Friday comes
I can't stop to think or look
Gonna scribble numbers and words
In my skinny checkbook.
Gotta keep all those Chinese
Making gadgets, toys, and shoes
With their billion mouths to feed--
And nothing to lose.
When Black Friday comes, we'll forget the bill:
You know I will.

When Black Friday comes
Gonna auction off my soul,
And eBay will help me fill
In this credit sink-hole.
Gonna snatch up all I can buy me,
Deferred payments gonna justify me,
If I default, it's their loss:
I'm gonna let it roll!
When Black Friday comes
I'm gonna know no shame:
It's how we play this game.

Wednesday, November 24, 2010

Teaching as the gift of giving

Today, by utter serendipity, I learned that yet a third member of the La Crosse Area Beekeepers is a retired teacher. But what really surprised me was the fact that I was actually surprised to learn that. Particularly after the person in question had just presented a topic to the group last month.

See, when someone gives a presentation to her/his peers without crashing through a prepared script, I take it as a sort of baseline standard. Most likely because being on the high school and college speech & debate teams pretty much warped my standard of "normal" from the get-go. But as much as that seems to be a hallmark of someone who has spent all or part of her/his career at the front of a classroom, it doesn't necessarily tell the full story.

Because along with the presentation skills seems to run a willingness to answer questions in stride, to say "I don't know, but I can probably find out," a talent for organizing material for maximum absorption, and (so often) the passion for the subject at hand. Those, IMLTHO, are the hallmarks of a true teacher. Not all of these spent time in Academe, certainly. But in my experience, it's a rare non-professional teacher who has the complete set.

If Alvin Toffler is correct in saying that, "The illiterate of the 21st century will not be those who cannot read and write, but those who cannot learn, unlearn and re-learn," we--as a society and a world--cannot do without strong teaching skills. (Inside a formal classroom or not--it's all the same.) Understand that I'm not under-rating auto-didacticism; I just think that, in most cases, it's a highly inefficient way of scrambling up the crucial--and often steep--first part of the learning-curve.

Tuesday, November 23, 2010

Work as meditation

My day was boring, by most standards, what with the bulk of it spent refactoring and reformatting ancient code. My grumbling over style differences aside, it was pretty straightforward, once I'd had my head in that space long enough mentally snap all the Legos together. At the end, the real performance-boosting tweak--meaning, my ostensible reason for messing with that file--was also straightforward, rather than the rocket surgery it appeared to be at the outset.

Just now, I was disappointed to learn that the creed attributed to St. Benedict, "Work is prayer," is actually a myth--the product of mis-translated Latin. I say "disappointed" because prayer can be an act of meditation as well as communion, and today's exercise had something of that. Tomorrow I return to gnawing on more gristly problems, but in a more composed state than usual for software development. Or so I prefer to believe tonight.

Monday, November 22, 2010

The luxury of doomed situations

Several years ago, when we lived in Red Wing, Dennis found himself to a pair of tickets to see the Vikings play the 49ers at the Metrodome. It was the last game of the season, and the Vikes had already clinched their playoff berth, and San Francisco really didn't have much to prove at that point, either.

As you might have guessed, it was a pretty laid-back affair. The A-list for both teams clocked in for the first quarter, and then let the second and third strings rack up numbers. Not a bad game for all that--certainly no nail-biter moments, but it was also a pretty clean game penalty-wise. So everybody seemed to head out in a good mood.

With today's sacking of Brad Childress (and rumors of Number 4 meeting the same fate in a less physical sense than normal), the Vikings do have the option of capitalizing on an abysmal season as they did with the stellar one a decade or so back. Rather than watch the first string try to rack up yards or sacks or what-have-you in lieu of actual wins (which is the tempting option), the higher payoff would likely come from mixing it up with the supporting cast.

Or so sayeth Armchair Head Coach fivechimera (and her consort Dennis). The twist, though, is that I think that the premise applies to doomed projects in the business world just as it does unredeemable playing seasons. If instant shut-down isn't an option, there is still experience to be gained. Technical as well as teamwork experience. And, perhaps just as important, a chance to find out who the glory-hounds are before they're on a more visible project.

Sunday, November 21, 2010

Another rogue for the documentation hall of infamy


This is the top of a TV remote. Exactly which of the three buttons on top makes it possible to find out how badly Green Bay thumped Minnesota this afternoon? Good question...

Saturday, November 20, 2010

Signalling

For the first time in any number of months, Dennis has had to pay a service call to the lady down the road who considers him the household CTO. He was getting ready to leave and obviously in "seek" mode. Having done a bit of hardware support, I assumed Dennis couldn't find his electrostatic-proof wrist-strap, or at least wanted to borrow my set of mini-screwdrivers.

Silly me. He was actually (semi-feverishly) looking for the receipt book she had given him for such jobs. Why? Because she's owned a business for a heckuvalotta years, and receipts are just part of How Things Are Done, Darnitlalready.

On consideration, it's like how one of the guyzos in the Linux User's Group described professional credibility: "You have to be from out of town. Oh, and carry a briefcase or a tool-box."

Or maybe like when my uncle (who worked for the IBM in the 70s) and I (who worked at IBM in the early 00s) compared notes on the "evolution" in dress code. (Me: "So I'm lookin' at this guy in his tie-dye t-shirt with the pony-tail hanging outta the baseball cap and I'm thinkin' 'Whoa, duuuuude...this is *not* your father's IBM." Uncle: "Yeah, Once in awhile I'd see somebody like that I'd I'd think, 'Either you're *reeeeeally* good--or you're on your way out.'")

Or even like one of the "old timers" in my dept. described the pre-Gerstner era, when IBM manufactured products--in the U.S.A., no less--that (gasp!) actual mortals were even allowed to touch. Which roughly coincided with the era when white shirts and ties were de rigueur for hardware techs making onsite service calls.

Personally, I never understood how dooming a clean white shirt to ink/toner was supposed to add brand credibility. But that's apparently just How Things Were Done, Darnitalready. Which, I suppose, means that it all boils down to a question of signalling. Problem is, by the time The Powers That Be agree on the official semaphore for whatever trait it's supposed to embody (professionalism, loyalty, dedication, etc.), it could very well be passe. Or--infinitely worse--a metric to be gamed.

Moral of the story: Interpret your signals wisely.

Friday, November 19, 2010

Frivolous Friday, 11.19.2010: Simile silliness

There's are different shades of meaning to the phrase, "drink responsibly." The more common one, of course, has to do with driving. Another that probably comes to mind easily is about sustainable farming. (Nerdy factoid: Organically grown grapes have way more resveratrol than conventionally-grown ones, because resveratrol is created as part of the grape's natural defense against fungi and bacteria, and spraying the plants with fungicide dampers that immune reaction.)

But there's also the issue of carbon footprint, and there's none more egregious than Beaujolais Nouveau, which is rushed to market on November 19th. In Wisconsin, however, we can play make-believe with a local facsimile from Wollersheim Wineries. (Granted, it's a different grape, but--hey--it's made by a French dude, so...close enough, right?) Unfortunately for me, there's none to be had without making a special trip up to the Crossing Meadows Festival Foods (or possibly down to JavaVino)--which kinda neutralizes the "responsible" part.

I'm afraid that I ear-bashed my cube-mate yesterday explaining Beaujolais Nouveau, and again wondered why the bottomless well of wine-nerdery isn't more appealing to the average programmer. Upon further reflection--by which I mean having nothing better to do with my head this morning while its hair was being shampooed--I became even more convinced that programmers and oenophilia should go together like, well, champagne and oysters. Except that I'm not much of a seafood fan. (And I usually prefer prosecco anyway b/c it's lighter and not so overpriced & over-hyped.)

Why? Well, naturally, because of the glaring similarities between wine and software development. Really, the simile should itemize itself, but here are a few:

Similarity #1: Software and wine both take time to develop. Even primeur wines such as the afore mentioned Beaujolais Nouveau aren't quite a matter of stuffing the grapes directly into bottles. Craftsmanship, respect for the raw materials, etc. are all a factor.

Similarity #2: Software and wine can both be over-rated and overpriced. (Naturally, that doesn't apply to anything I write, you understand.) But I think we can safely say that any software with the word "enterprise" in its label is fair game. Just like any number of pedigreed labels in this age of "wine lakes."

Similarity #3: Fads come and go. 'Nuff said. Except that the consolation prize is that anyone who knows what s/he's doing (and have the moxie/clout to countermand Those Who Know Best) can make out like a bandit.

Similarity #4: An educated customer base trumps an ignorant one. I don't even want to speculate on how much damage Sideways did to the market--either by dampening respect for Merlot (which, by the bye, just happens to be the key ingredient in one heck of a lot of Bordeaux) and triggering a stampede into Pinot Noir. But if I did, I'd expect it would be something similar to all the applications written specifically to get customers to turn over ephemeral personal info. in exchange for badges, bragging rights, points, or what-have-you.

Similarity #5: The pundits' priorities are not necessarily yours. Wine Spectator giving a bottle of over-oaked fruit punch 90 or more points. Robert Scoble bloviating about anything to do with The Real World. Same deal.

Similarity #6: Context matters. You don't pair fish with Cabernet Sauvignon. You don't use Excel spreadsheets as a production database. Boxed wine works just fine for cooking. You don't need your own server and domain name and IP address for your cat sweather knitting blog. Just sayin'.

Similarity #7: Keep an eye out for the small players...and beware special-interest "regulation." Contrary to the dot-com era's prediction, the internet didn't quite change everything. But boy-oh-boy did it lower the barrier to entry, and gave word-of-mouth a growth boost only seen in C-list monster flicks. Enter interstate shipping laws and the ongoing attempts to kill net neutrality--in other words, big business co-opting the evil nanny-state to squishing their competition.

Similarity #8: There is no substitute for knowing what you want and why. That pretty much summarizes all of the above. But it also takes time. Plus attention-span. And maybe a certain amount of humility to realize that no one should be expected to read your mind.

Thursday, November 18, 2010

No blog post tonight

And the final score is...Headache: 1, Doreen: 0. Sorry, folks: Just can't shake this one. See y'all tomorrow!

Wednesday, November 17, 2010

Another dimension to code ownership

I promoted a bit of someone else's code to the live server late this afternoon, just as I'd promoted it to the Beta server earlier in the day. In the run to the Beta server, one of the database inserts blew up, and I promoted things in the wrong order because the promotion instructions were written that way. But that's why there's the "dress rehersal" of Beta, after all.

So after the offending programmer fixed the database insert code and corrected the instructions, going to the live server should have been a snap, no?

Of course not. And the programmer had already left for the day when the promotion blew up halfway in.

But my cellphone knows his cellphone number. So I left a voice mail, then fumed for about forty minutes wondering why he couldn't call back to answer a simple question. Then I saw him heading into the pod. Between us, it might've taken three minutes, tops, to sort it.

In a communal code ownership scheme, another programmer would ultimately be tapped to dive in and debug and ultimately make a judgement call. It might take more than forty minutes; maybe not. I suppose that's a good part of the reason there's no final word on the superiority of either scheme. I just know that it really sucks to be so reliant on one person for a piece of your flagship application. Until, of course, they show up (after hours) and fix it without fumbling around.

Tuesday, November 16, 2010

A thought on generosity

At the state convention of the Wisconsin Honey Producers Association, Dennis had helped someone who was having issues getting their presentation to work on a loaner laptop. Despite the last-second nature of the "emergency" (and typically sucky hotel wireless connection), the presenter was able to give her spiel.

To Dennis, it was just a matter of downloading and installing the correct software. Something both he and I do without blinking. (Booyah for open source!) To the presenter--and the folks who had come to cheer her on--he was the hero of the hour.

Sadly, I think we tend to underestimate what we have to give to others (and, so sometimes don't bother). But it's rather like how "trade" in Economics 101 is supposed to work: Each side thinks that what the other has is, pound for pound, more valuable than what it is offering in return. If we accept that mutual imbalance in perception as truth, then when gratitude is the coin of the other side, it cannot devalue what we have to offer.

Be generous where you can--it will probably be worth more than you will know, at least at the time.

Monday, November 15, 2010

Process and communication

This morning's edition of the weekly dev. meeting had a little more animated back-and-forth than usual. Mainly it was about how to flag a line-item in the issue-tracking system to indicate that it was supposed to be pushed into production during off-hours.

That sort of software promotion is not at all the norm, though, so I couldn't help but think (at the time) that we were collectively over-thinking the whole thing. Then a little red flag went up in my brain and I thought: "Uh-oh: We're trying to use process to compensate for lack of communication, aren't we? Gack. Here we go again..."

Fortunately, it didn't turn out that way. But as I headed back to my cube a bit later, I realized that, to an extent, process is communication. In the sense of signalling what has been done, and what there is still to do and, normally, who is to do it. The trick, of course, is to understand the limits of process' vocabulary and grammar. And, of course, be always wary of conflating the two.

Sunday, November 14, 2010

The cloud with a grey lining?

Maybe it's just me, but basic LAMP/WAMP stack web hosting has started to feel confining and kludgey lately. It's already a commodity, and as cloud computing gains traction, I wouldn't be surprised to see a two-caste system develop: Something like the current status quo (for non-profits, Mom-and-Pop storefronts, etc.) and scalable cloud resources (for the better-heeled clientele).

And I make that prediction because I think that the selling-point of cloud computing--meaning, that you only pay for the resources used--is actually a liability in the world of small budgets. Better to pay a monthly/yearly/bi-annual/whatever fee than be handed a sizeable tab if something goes viral. Budgets, after all, are All About the polite fiction that expenses are predictable.

Granted, some hosting ding their customers for exceeding bandwidth and/or disk space limits, but I think we can reliably expect commoditization to minimize that. Because, really, the only value-add to a commodity is to offer more of the same without raising prices--in other words, become the digital version of Old Country Buffet.

And, yes, I understand that folks on shoestring budgets will tend to be the late adopters of cloud computing. But that doesn't mean I think that the purveyors of cloud hosting are shortening that curve with the a-la-carte, parking-meter pitch.

Saturday, November 13, 2010

The "Green Acres" paradox

Based on recommendations of a couple A-list types, I snagged a copy of Lisa Gansky's The Mesh and am about halfway through it. I'm already sick of her raving about ZipCar, but expect to polish off the book anyway. Despite the fact that it doesn't apply to software development except to emphasize Web 2.0 and mobile apps as one of the underpinnings of mesh business development.

(Aside: It's a little weird reading about BP's oil spill in an actual book--particularly given how I'd just finished Crossing the Chasm, which--even in my "updated" edition--mentioned the Twin Towers as if they still stood.)

Trust me when I say that I'd like to believe that all Gansky's premises are true. Particularly the one about how the Great Recession has adjusted people's value systems to prefer part-ownership (or renting) well-made things to full ownership of their shoddier, inhumanely- and unsustainably-made counterparts. But--with all due disrespect to the ethical fecklessness of the average American consumer--my cats have longer-term memories. Seriously.

That being said, one point in favor of Gansky's arguments is the increasing density of urban areas. When done right, it's certainly a "greener" way of living than offered by the 'burbs. But that brings us to what I hereby dub "The 'Green Acres'* Paradox," by which I mean that "the dream" is still to carve out a slice of real estate that we can call "ours." Where we can remain blissfully ignorant of our neighbors' dreckish taste in music, their domestic woes, or even their pet ownership status. As my prof. for American History I and II in college put it, "There is no freedom like the freedom from the vices of one's neighbors." (Preach it, brother!)

Yet, somehow, just down the road (not even half-a-holler, y'all), there's supposed to be a full grocery store.

And a gas station.

And a WalMart.

And a Starbucks.

And a Gap.

And four bars on the 4G phone.

And this amazing little hole-in-the-wall Thai/Halal/Tapas/Tepanyaki/Dim Sum place.

And...you get the idea.

And what I take away from this is that the companies that best reconcile the paradox will win as big as they want to win. Not necessarily for the "right" reasons of sustainability and distaste for materialism. But because, as a culture, we're pastmasters at saying one thing and doing another.

P.S.: If anyone out there invents a technology to neutralize the hystrionics of a spectacularly undisciplined beagle, call me.

- - - - -
* Exerpt from the "Green Acres" Theme Song

Oliver Douglas: Green acres is the place to be:
Farm living is the life for me!
Land spreading out,
so far and wide.
Keep Manhattan,
just give me that countryside.

Lisa Douglas: New York
is where I'd rather stay:
I get allergic smelling hay.
I just adore a penthouse view.
Darling, I love you,
but give me Park Avenue.

Friday, November 12, 2010

Frivolous Friday, 11.12.2010: Curricula

I've been toying with the idea of taking actual instruction in ASP.NET that didn't involve Rolla U. No offense whatsoever intended to the celebrated "4 Guys"--if anyplace has a claim to be my alma mater of classic ASP, it's their website, and major props to them for everything they've given me over the years. WTC is offering a web application programming class that's a blend of VisualBasic.NET and ASP.NET; unfortunately, the time-slot turned out to be the deal-breaker.

Yet, as I perused the required courses for the program--pleased to find a de rigeur Ethics class--I was reminded of how many critical parts of a programmer's education must be left out of a two-year--or, indeed, even four-year degree. In a perfect world--which we all know means one smart enough to put me in charge--a programming degree would not be complete without any of the following courses:

Abnormal Psychology in the Workplace - Students will learn to recognize and neutralize co-worker and managerial pathologies such as gatekeeping, passive-aggression, prima-donna and/or drama-queen hissy-fits, stonewalling, brown-nosing, empire-building, back-stabbing and toadying. (Note: The graduate level version of this course will emphasize pricking holes in the Management Reality Distortion Field.)

Sandbagging - Students will first master the fundamentals of expectations management in the first half of the course, then progress to padding schedules and budgets for the inevitable but nevertheless unpredictable vaguaries of the real world upon both.

Marketing Language I and II - Students will study the language of Marketing, currently believed to be a Managementese patois. By the end of the first semester, students will be expected to detect which words and phrases are harmless vs. those guaranteed to completely hose schedules and feature lists. By the end of the second semester, students will be able to communicate simple ideas with real Marketing personnel.

Beginning Cat-herding - Students will approach basic project management skills by learning to cultivate organizational buy-in...or at least temporarily neutralize apathy, managerial and budgetary neglect, sabotage, and open cynicism while simultaneously co-opting the naifish energy of idea hamsters and those with ADOS.

The Care and Feeding of QA - Students will familiarize themselves with the unique psychology of Quality Assurance. Labwork will emphasis gauging the correct balance of pre-emptive unit-testing, trench-camaradarie, favor-trading and outright bribery necessary for maximizing the amount of significant bugs reported while minimizing the ones that can be kicked into the next software patch cycle.

Meeting Dynamics I, II, III, and IV - Over four-semesters of lecture and lab work, students will build proficiency in detecting hidden agendas, thwarting hijackers, shutting down grandstanding and public spankings, enforcing accountability, wringing decisions from stake-holders, and generally minimizing the amount of CO2 sucked into conference room HVAC intake grills. (Note: Course curriculum, including tests, to be personally developed by Professor Emeritus @rands.)

Thursday, November 11, 2010

A geek's perspective on Veterans Day

Regardless of whether or not one is a pacifist, today is one properly dedicated to counting the cost of war and remembering those who paid in the dearest coinages: Life, limb, friendship, health, freedom, innocence, hunger, cold, homesickness, hopes for the future. A simple "thank you" seems laughable...until one considers how insulting it would be to say nothing at all.

And, in that general--no quasi-military pun intended--spirit, it would be worth recognizing the kick-start the military gave to computers and my own profession. Incomprehensible as it may seem, computers were not, in fact, developed with Farmville in mind. (I'm just as shocked as you.)

No, it seems that even in WWI, the notion of offloading ballistics computations to non-humans was considered worth pursuing. Why? Well, when artillery like the Big Bertha had a range of fifteen clicks (a.k.a. 9 miles and change)--meaning its operators couldn't necessarily see their targets--calculations mattered. Even at closer range, you had three options for hitting people who wanted to kill you:

  1. Dumb luck. (Not recommended.)
  2. Experience (Good luck surviving long enough to get it.)
  3. Working through calculations that took into account factors such as:
  • Mass of the ordnance being fired
  • Force of the charge behind it
  • Recoil (a.k.a. our old friend Newton's Third Law)
  • Wind/Air resistance
  • The Quadratic Formula (Remember that from Junior High? Turns out, it had something to do with The Real World after all. Whoodathunkit?)

Oh, and did I mention that, while cranking through all that Algebra, your target could be on the move and--by the bye--you might be under fire yourself? Yeah. Kinda makes it tough to remember to carry that two, dun'it?

But in computer history--just like on The History Channel--it's WWII that gets all the glory. Enter ENIAC and its sucessors. That was the for Army (where its services were, most sensationally, conscripted for the Manhattan Project). Not to be outdone--in computing as in football--the Navy partnered with Harvard University and IBM to create the Mark I, for much the same purposes. And, of course, there's Bletchley Park's Colossus, ignominously burned in 1960. Because as much as weapons win battles, intelligence wins wars.

The Korean War didn't last long enough for IBM's 701 model to see much--if any--service, which can also be said for Big Blue's one-off NORC. However, by that time, businesses (and non-military government agencies), flush in the post-war boom of the 1950s, were already slavering for the breathless computing times such miracle-machines could give them.

As the final kick, let's not forget that the underpinnings of the internet itself originated with DARPA, intended to spread the risk of all-out attack by decentralizing the network.

And the rest, I'd say, is history. Save that Clio might just be the least glamorous of the Muses--valued only when she titillates...or provides those who attend to her with the smugness of precedent. So I would ask my gentle reader--as you receive a text or call, catch up on your peeps' Facebook statuses or tweets, become the Mayor of wherever, etc.--remember how that gadget at your fingertips got there. Thanks.

Wednesday, November 10, 2010

Context is King

I'm afraid I was a mite sharp with the new-ish QA person today because he--from my perspective--was just not getting the fact that records added to a certain database table are not created equal. Some are added mainly for tracking & possible troubleshooting; others do have an impact on the business logic that uses the data.

When I asked why he wasn't paying attention to the True/False field that flagged the record as either in-play or padding the roster, he seemed to backpedal a little bit. "Here," I insisted impatiently, popping open a fresh window in the database interface and punched in a quick query. "You need to pay attention to whether this field's value is True or False."

As it turns out, he merely couldn't see those columns on his screen. Context: Some folks in our office have a desktop with two monitors. Others have a laptop with a second monitor. Not only is he one of the latter, he also was viewing the database interface on the much smaller laptop screen. The upshot was that it was effectively off the radar for him, and he apparently missed the horizontal scrollbar.

Theoretically, we could have squabbled over whether the feature he was testing is, in fact, "broken" by lobbing notes at each other in the issue-tracking software. But he happened to stop by my desk on the way out to tell me that my fixes hadn't fixed anything, and it was only then that we sorted out the mistake. (At least I hope it's a mistake, 'cuz I'm sick of looking at that code.) Alternatively, if I had gone over to his desk to tell him that he was obviously smoking crack, we would likewise have saved ourselves the time--and at least some stress.

Fortunately, it's not every day that one of us has to be standing over the other's shoulder to be on the same page. Hopefully, it'll become even less frequent as our software and way of doing things warps his mind into the proper extra dimensions. But for the life of me, I just cannot grok the value-add of off-site (mostly meaning offshore) testing of software features. Much less whole applications. Now, I can possibly understand outsourcing large batches of automated testing. But anything that involves a more than superficial understanding of the once-and-future product?
Granted, I don't work in a large shop, but the necessarily longer feedback loop of outsourced testing strikes me as such a liability as product cycles tighten.

Certainly, enough companies still consider it a viable option. After all, to the bean-counters, there are no account entries for time zone shifts, language barriers, reduced job satisfaction, unpaid overtime, employee turnover and the like. And conventional business wisdom has a simple fix for such frictions as ultimately find their way to the bottom line: Find another offshore firm with an even lower bid.

I hope that most owners and managers are smarter than conventional wisdom, anyway. Because there's only one thing stupider, and that is to not have any testers at all.

Tuesday, November 9, 2010

Non scripta, non est

(For those who weren't pantsed--as I was--by two semesters of Latin, that basically translates as "If it's not written down, it doesn't exist.")

Backstory: Our formidable Sys. Admin. has been out the last few days--and, in his case, "out" translates to "not remoting in at bizarre hours." So the parts of "my" project currently entrusted to his capable hands are stalled in the "new" phase--which, in the lingua franca otherwise known as the office issue-tracker means "I can still plausibly pretend that this doesn't exist yet."

In the various dialects of interpersonal relationships, however, there are certain allowances made. SA juggles enough grenades that I know the score. Intellectually, at least. Sadly, it was only after my Inbox was carpet-bombed with updates from the issue-tracker that I actually had a sense of progress on those line items.

Highly illogical, as a certain First Officer might opine. But "reality" nevertheless. And I'm sure the First Officer in question could tell you all about the ways alternate realities and timelines can bite, yes?

Monday, November 8, 2010

Employee empowerment #fail

Dennis & I are due to re-up at the gym, so I thought I'd just get it out of the way after sweating on their machines tonight. What was a little weird was how the guy at the desk couldn't get to the contract forms (or even my old contract so I could just initial it). Apparently, the boss locks those cabinets when s/he leaves.

True, "empowerment" can be a slippery term and all. But when an employee doesn't have the toolset necessary to let a client pre-pay for an entire year's worth of service...really?!

Fortunately, this is the kind of place where I can leave a post-dated check at the front desk and be reasonably certain that the forms will be waiting for me to sign on my next trip in. Which makes such protocol seem even more counter-intuitive than it would in a big-box kind of place. But overall, it reminded me of learning about Wal-Mart's policy of searching employee bags for stolen merchandise: If you can't trust your employees, why should the customer?

Sunday, November 7, 2010

Definitions of "progress"

Don't ask me where the after-dinner cynicism came from, because it arrived on the heels of laughter remembering the British sitcom Coupling, specifically the (highly NSFW!) scene in "Inferno," where Steve re-writes (male) human progress as the quest to see the other 49% of the species naked.

Perhaps I lack the gender solidarity with Steve, but it occurred to me that the driving force may well be mere tedium. Routine--however comforting at times--stifles the soul...as do policy and prodedure and whatever metrics we choose to chase and/or game. So, to eke out a bit more time for what is more interesting or soul-satisfying, we find hidden shortcuts. We pick locks. We tunnel under walls.

But typically we don't manage to keep the secret to ourselves. And then the shortcuts become standards, locks are changed, and walls be come tunnels...straight back to the same quota of tedium. And so the subversion of the status quo begins anew. As narratives for "progress" go, it's not the worst, but it's certainly not the most inspiring I can think of.

Saturday, November 6, 2010

A perfect storm, Web 2.0 style

One of my SCA and Facebook cohorts pointed me to an interesting slice of karma dished out--a la mode--by crowdsourcing. Apart from my natural tendency to root for the underdog (not to mention instinctive solidarity with my medievalist "cousins,"), I found the brouhaha interesting for its "perfect storm" characteristic. And also for the mind-boggling refusal of some people to realize three fundamental truths about this phase of the internet's existence:

  1. Virtual snottiness isn't any less snotty than real-world snottiness.
  2. Your snottiness is out there in front of the intertubes 'n everybody.
  3. Going viral isn't necessarily a good thing, even when you're the protagonist.
I'd add "Don't annoy passionate medievalists," except that this truth predates the internet--by which I mean that it's not about the swords and other assorted pointy objects; it's the inexhaustable capacity for research. Oh, yes, and a tendency to write witty, satirical songs about you. That kind of of cultural--even subcultural--immortality you don't need. Trust me on this.

Friday, November 5, 2010

Frivolous Friday, 11.05.2010: Guest post from The Dark Side

Despite certain economic indicators improving, there's still a great deal of uncertainty over factors such as credit for small business owners, long-term unemployment, etc. On a day-to-day basis, many firms struggle to maintain their corporate culture while staying in the black. That's a responsibility that has never fallen to me--even under the infamous "other duties as required" clause. So, for guidance, I turned to a more experienced management hand, Aurelius Geltthaler, Jr. Mr. Geltthaler is CEO of Global GigaCorp Holdings, Inc.

- - - - -

I have to admit, as much as I love the festive look that pink slips give mass layoffs--particularly at this time of year--they do have certain inevitable repercussions.

Don't get me wrong: I wouldn't dream of allowing messy human considerations to get in the way of maximizing value for our shareholders. No, my fiduciary duty is to make sure their stock (and mine) does nothing but appreciate between second zero and second eleven*. That's just the efficiency of the free market, after all.

But the fact remains that so long as the market and tax codes so handsomely reward us for downsizing and offshoring, it comes at cost to we who manage the survivors. Mind you, it's not a question of actual productivity: Oh, no, no, no and NO. The survivors survive for a reason. After, oh, say, the eleventh round of "rightsizing," even the remaining sychophants can be expected to provide some value to the company--and not just in helping management avoid decisions that involve risk! Indeed, they must--at a bare minimum--be proficient in gaming metrics, fudging numbers, kicking cans down roads and so forth.

All commendable efforts, to be sure. But captains of industry are not paid to sugar over harsh realities. And one such harsh reality is the polite fiction of corporate image. It no doubt boggles the reader's mind that--Great Recession and high structural unemployment notwithstanding--the (effete) trade press still kow-tows to the notion of workplace quality. As it boggles mine. Still, metrics--however meaningless--are metrics.

Not to sound defeatist, mind! Any manager--or, for that matter, lobbyist--worth his Mark Cross notepad can tell you that he who owns the metrics owns the industry. That's true not only for the denizens of corner office suites, but--believe it or not--also for the lowest eschelons of management. For those who exist on the rung directly above ground level, your education begins here.

I realize that you have enough on your mind without the time-wasting nuisance of fostering "culture." Goodness knows my assistants put enough department potlucks, lunch-and-learns, pecha kucha contests and team-building nonsense on my calendar! Believe me, I feel your pain. But that by no means excuses you from not profiting by the experience. And I don't mean "profit" in any intangible, resume-building sense. Not after you discover the concept of the anti-raffle.

Wait. Do I detect a few puzzled looks? You are familiar with the concept of a raffle, yes? Well, then, this is merely a lottery in reverse. At least on the surface. In this case, for each "culture-building" event, every member of your already-overworked staff is equally eligible to be tapped to lead it. At the outset, anyway.

Now, a mediocre manager would default to the usual suspects--the intern indentured for a recommendation letter, the apparatachik one layoff away from the street, the mother who kisses her children goodnight by phone (even on the weekends). That sort of thing. Those with the true spark of leadership, however, will make some cash under the table by allowing their direct-reports to commute their "donated" time to a simple bribe.

But future CEO material, on the other well-greased hand, will step up to the milking stool and slap all four cups on that cash cow's teats. How? Well, the buy-out doesn't necessarily have to be a permanent condition, you understand. Others who want the time more than they want their disposable income can certainly persuade you to put others back into the pool--and those others might even be able to afford to...shall we say...repay the favor. And so forth. All the way to the Bermudan bank.

I trust I have made my point. While I will concede that other people live in difficult financial times, I by no means consider it an excuse for not turning a profit from any scarcity--however artificially-induced. God bless America.

- - - - -

* A dissenting--albeit not particularly well-argued--voice on the 11-second "statistic" is found at www.ritholtz.com. As our fictitous Mr. Geltthaler noted above, all depends upon the metrics....

Thursday, November 4, 2010

A twist on the tortoise-and-hare fable

Tonight I'm synching the data on two database servers located over a thousand miles (as opposed to mere inches) apart. And do the response times ever show it! The performance is definitely reminiscent of the even-not-too-distant past, when both CPU and network speeds were lower--and hardware prices were higher.

How quickly we can be spoiled, hey? 'Course, another downside with lightning performance is that there's considerably less time to hit any "Undo" button available.

In my case, checking in on the progress bar for the comparison process crawling (rather than ambling) along eventually made me notice that I'd picked the wrong "from" database. (But not until about the 80% progress mark--D'oh!!). So a few unprintable things were said. But in retrospect, if the comparison had zipped along at its customary pace, my set of old, stale test data would have been replaced by another, slightly different set of old, stale data. And not realizing that could have cost time on top of having to grind through the synchronization again from scratch anyway.

Don't get me wrong: I'm certainly not pining for slower hardware--not by any stretch. Nevertheless, there is something to be said for having time to step back, take a breath, and think before blazing on toward the finish line.

Wednesday, November 3, 2010

Passing on a bit of cleverness

I needed to check the renewal date for the one domain I still have registered with Hover. Once logged in, I stumbled across a clever idea that, IMO, doesn't deserve to be restricted to a domain registrar's website. There I noticed that the credit card on file for my account was flagged for being out of date. When I corrected it, the "thank you" message offered a 5% discount code for my next renewal. And--by sheerest coincidence, no doubt--the "Renewal" link just happened to be on the page.

[wink][wink]

[nudge][nudge]

That made me smile more than anything. Turns out, I'm already paid up into 2012, and there's no way I'll remember the discount code by then. But I do appreciate--in the hat-tip sense of the word--such tactics in the Sisyphean battle to keep information up to date. Then, too, making it easy for the client/user to do what's best for them really is the game, isn't it?

Tuesday, November 2, 2010

Credit where it's due

Yesterday I received a call from someone I'd worked with on "my" project for a bit under four years. She--to her considerable credit--rebounded from (in my considerably biased opinion) a needless and counter-productive staffing shake-up by taking on more responsibility with a completely different firm. So it was hard not to be flattered that she called me up to ask if our office could handle a rather substantial project.

The person who lines up that work had just left, so I collared our boss and assailed him with the details I'd hastily pinned down in notes, including the unrecognizable--to me--new firm my old client was now serving. Despite the fact that it's halfway across the country, the boss recognized it, and knew who in that area had been "chasing" that account. By this morning he'd been in contact with folks more familiar with the area, enough to form a solid guess at what they wanted and why they wanted it.

It's unlikely that I'll have anything to do with the project--assuming we are able to take it on--from here on out: It's just not my line of work. But the experience was definitely an interesting revelation for me. I'm mostly paid for connecting what I know. The boss is largely paid for connecting whom he knows.

Monday, November 1, 2010

The actual good news

Today the directors of our firm held a pep rally of sorts. Although, in fairness, pep rallies don't normally involve Q&A sessions, so I didn't a waste of bandwidth, in either figurative or purely technical terms.

I don't think I'm divulging any business secrets when I say that it was considerably more upbeat than its predecessors. What perked up my antennae, however, was a question about a specific market segment. It's not a particularly glamorous or cutting-edge segment, but its lack of excitement also makes it a steady source of revenue in the downtimes. The director who took the question talked up the inroads we've made--but also plainly acknowledged the past mistake of leaving that facet of business development to languish when fortunes perk up and more interesting, nimble opportunities hit our desks. "We won't make that mistake again," she (quite firmly) noted.

True, there's a certain value in having the authority figures--"Those Who Know Best" in the idiom of Truman Capote--reassure us that the wolf-tracks around the door are no longer fresh, corners have been turned, and so forth. Maybe it's just me being weird again, but I'm more comforted by such post-mortems. Not the "would'a"s so much but the "could'a"s and "should'a"s. In other words, what we've learned from our lumps. And, better still, to have it all on record for when the flush times threaten to slip into folly.