Friday, December 31, 2010

Frivolous Friday, 12.31.2010: Insomnia...

...subtitled, The Things Geeks Wonder About as They're Trying to Fall Asleep. Well, this particular geek, anyway.

Why didn't marketers think to call it "oystershell" packaging? (Pearls + seafood > seafood by itself--am I right?)

Why did it take a whole generation to finish Death Star 1.0, when 2.0 was operational in something like three years?

When cordless mice outnumber ones with tails, can we start calling them "hamsters"?

How many C programmers reflectively invoke the increment operator in "C++" and (mentally) call the language "D"?

Wasn't MI6 (in the Bond films) rather short-sighted to have a thousand special agent numbers (000 - 999) but only 26 letters for command/support staff (e.g. "M" and "Q")? And where does "Moneypenny" fit into all this anyway?

Are Java classes considered "illegitimate" because they can only have one parent?

When the screen of Enterprise's bridge is being used for videoconferencing, how is anyone supposed to drive?

Speaking of which...am I the only one who thinks that the "Starfield" screen-saver would be 1000% better with the occasional swipe of a windshield wiper?

When my COBOL prof. reminisced about computer memory being "a buck a byte," was that just because "two bits" is retro. slang for twenty-five cents?

How will Superman's changing-room and Dr. Who's Tardis be plausible in a world of mobile phones?

What would happen if you used Romulan Ale as the chaser for a Pan-Galactic Gargle Blaster?

Thursday, December 30, 2010

Another programming/real-world intersection

At the moment, the house smells of cedar chest and banana bread, both tell-tale signs that someone was on a domestic roll today. But, rightly, that roll was supposed to stop much sooner than it actually did. That it didn't was largely a matter of not respecting dependencies. That and certain "might as well get it out from underfoot while I'm thinking about it" tendencies that will forever bar me from the "agile"/"lean" programming clubhouse.

For context: In software development (particularly the planning and scheduling parts of it), a "dependency" is pretty much what it sounds like: One bit of work can't proceed before another one is finished. When you're a one-woman band, as I so often am, it's mostly a non-issue--at least in the sense that it's not, technically, wasting time if different tasks take more or less time than expected. I can only do one of them at a time anyway.

Of course, when more than one person is involved, that's where timing becomes crucial to figure out. If Programmer A takes longer than expected to complete a "dependency," Programmer B could be twiddling his thumbs doing busywork until A finishes. Similarly, (albeit less likely), should Programmer A finishes her dependency before B expects it, she could be twiddling her thumbs if no one has her slated to pick up on anything else.

In today's case, constraining factors were the limited daylight (for shoveling) and not paying close enough attention to the clock or watch (for the washer/tryer cycles). I'd add the cat's nap schedule (because he was due for a thorough brushing), except I don't think any scheduling methodology in existence (including my gut instinct) could handle the near-quantum nature of the nap/not-nap duality that is His Doodness. The saving grace was that there was more than plenty of picking and putting and sweeping and dish-washing and random acts of organization. Thus, it was a productive day.

All the same, I'm dismayed that five years of estimating are as (apparently) as much gut instinct for non-programming projects as they are in software development. Except that this time, my gut forgot to remind me to sandbag appropriately.

Wednesday, December 29, 2010

Smart phones, dumb decisions

I was fortunate enough to receive a few CDs to feed to the iPod, which I haven't updated in a few months. Which served as a reminder that iTunes counts how many times a track's been played. Because you know as well as I do that if that information's not being shipped back to the Mother Ship in Cupertino now, it will be. Although, upon further review, I've been accused of any number of things, but having any taste or consistency in music has not been one of them. Which means that I'm figuratively weeing in the data pool. Hee.

Certainly, knowing makes me complicit in Apple's eavesdropping--no question. But the idea of smartphone apps monetizing not only what I'm doing but where I'm doing it is orders of magnitude creepier. And more infuriating.

Frankly, this time I'm cheering for the lawyers and tobacco-settlement-scale penalties. Why? Because it's the only recourse in a world where the mobile companies have been given carte blanche by the current FCC, with its successors no more likely to curb abuses. Because, you know, forbidding software makers to pimp their paying customers to advertisers would "hurt competitiveness," "stifle innovation," and "cost jobs." (Because the oligarchs are already doing a bang-up job of that all by themselves, thank you very little.)

The notion that the free market will correct it is laughable. First, the four-way oligopoly in smartphone platforms will eventually be three--probably sooner than we imagine. (My money's on Microsoft dropping out before RIM goes belly-up.) Moreover, how many tens of millions of iPhones have been sold to people who couldn't possibly have missed AT&T's Rosencrantz-and-Guildenstern collusion with warrantless surveillance?

Which brings me to my last thought: If the government were collecting that level of detail on peeps, we'd morph into a nation of mobile Luddites. Yet, as we (collectively) should have groked in 2006, that data is only one network connection connection or data dump away from being in the NSA's hands...and being classified as "state secrets." Why on earth would that single degree of separation make a difference in anyone's mind?

Which is why I believe that, even if the plaintiffs came away with a pittance and some of the co-defendents are driven out of business by a heavy-handed damages award, it'll be the best thing to happen to the market. And to set the precedent that privacy is a right, not a privilege that can be rescinded with a vague clause in the clickwrap weasel-ese.

Tuesday, December 28, 2010

A (cynical) thought on maintenance vs. new development

I don't know many programmers who care for scut-work maintenance coding, but it does--typically--have one huge upside: Most of the decisions have already been made. Yes, I realize that has creativity-stifling connotations. Yet, to me, it seems to be a touchstone of new, groundbreaking development that everyone wants in on the glamor of designing without the responsibility for making the final call(s). Let's just say that when you find yourself in a meeting time-warp, listening to the same parties having the same arguments to avoid facing the same--now costlier--decisions, you can appreciate a spate of mindless drudgery.

As long as it's a short spate, anyway.

The trick, naturally, is to switch it up--think of it as balancing cardio and weight-lifting, if that helps. Cardio is boring (sometimes even with podcasts) And if you're working in a caste system that consistently has the same crowd on maintenance and the the other clique on shiny new development, it's a a red flag, IMO. Personally, I can only consider it "optimizing" if you're looking to develop dysfunctional habits--in individuals as well as the organization.

Monday, December 27, 2010

The subtext of an important anniversary

If it were only a question of missing a birthday--even one with such a memorable date--I'd still be mightily embarrassed. But I must 'fess up to the fact that I didn't know about it until today. It turns out that this past Saturday was the 20th birthday of the World Wide Web, in the sense that Sir Tim Berners-Lee uploaded the first web page on that day in 1990 (after concocting hypertext earlier that year).

Although the actual day of the year pales in significance to the event itself, I don't think it's entirely irrelevant. If you adhere to a particular religion, you might speculate that someone was blowing off his duty to interact with family that day. Me, I prefer to project no further than my understanding of the binary character of the last week of the year. To wit: That week tends to be either: a.) A complete write-off, or b.) A bubble of productivity that defies--yea, blithely spits in the eye of--the laws of time.

The difference is in the hustle, I suppose. Given the realities of the workaday world (with its inbox-bombing, meetings held simply because that's what we do every Monday at eight, darnitalready, its cat-herding and/or consensus-building, fire-fighting, etc.), I might as easily find myself writing this post on Valentine's Day of next year. (Or St. Patrick's Day. Or Memorial Day. Or Independence Day. You get the idea...)

(On December 25, 1990, I was six days away from owning my first computer (an Epson 8088 with two 5.25" floppy drives and a CGA monochrome monitor). That was an upgrade from the second-hand IBM Selectric my friend P. had found for me. Not to knock the Selectric, mind you--as a keyboard snob, I can assure you that it spoiled me for life. That being said, it was an upgrade I imagined would be invaluably useful to my career as a freelance writer. In that aspect, at least, I can compare myself to Sir Tim: Dreams are like children in that they rarely turn out to be what you intended. That, and they can have children of their own for the next iteration of that story...)

Navel-gazing aside, I thought the anniversary was too important to leave trampled by the other obligations of this time of year. And, if nothing else, the web's underpinnings will be 21 come next Christmas. Which is as good a reason as I can think of to raise a glass--if I'm safely home, of course--to (legally) raise a toast to its birthday.

Sunday, December 26, 2010

Another use for source control

I picked up on some code files I haven't looked at in a few weeks. Cross checking a few "Last Modified" dates against the "Received" and "Sent" dates in an email thread, I quickly realized that it was easier to just fire up a command line and punch in a few Mercurial commands to answer questions like:

Have I made any changes since I "saved" the last round of tweaks/fixes/etc.?

What files did the last round of changes hit? What did I say about them when I checked them in? (Does what I said then even make sense now?)

When did I do that?

When you live cheek-by-jowl with the same code-base week-in and week-out, the brain tends to make its own bookmarks and annotations. Or, at least my brain tends to do that. Longer lapses are a different matter, and that's one instance where such "by-product" data from the process of using source control comes in terribly handy at times. The trivial amount of time spent pushing (commented!) changesets to the repository for safe-keeping, in my opinion, more than pays for the lack of thrashing around when it's time to pick up where you left off.

Friday, December 24, 2010

Frivolous Friday, 12.24.2010: Failed game concepts

(Blame Dennis--who spent much of last night playing with the local board game peeps--for this one.)

Veggieland - Apparently, Bussells sprouts, lima beans, kale, broccoli and the like don't lend themselves to kindergarten playtime so much as colorful sugar. Who knew?

Connect Phi - Even the original market segment (young math nerds) couldn't fathom how to make black or red markers add up to an irrational number.

Commune - Focus group players quickly bored of the lack of competition when required to share all dividends and windfalls equally among players. Also, the silver "car" player marker had been replaced by a tandem bike--and, really, where's the fun of squabbling over who gets that, I ask you.

Madoff: The Game - Apparently, being fleeced in a Ponzi scheme isn't fun, even when you know that's the whole point.

Autopsy - This edgier remake of Operation failed to impress its targeted "morbid teen" demographic despite appropriately graphic playing pieces (bullets, perforated bowel, smoker's lung, etc.)

Miners of Catan - Test players despaired of building enough tunnels to trade coal for food at the company store before having to put their young children to work or dying of black lung.

Urban Myth Pursuit - Critical thinkers, fans of Snopes.com, and the generally well-informed fared poorly at this game, although the "compulsive email forwarder" demographic showed some promise.

Scooby Clue - Although the prospect of "those darned kids" turning on each other with accusations of murder appealed to many testers, the mystery mansion mashup never garnered much credibility, what with with the go-go boots, psychedelic van parked in the carriage house and all.

Thursday, December 23, 2010

The accidental marketer

Yes, I know this is a First World Problem, and please don't get me wrong: I like giving. But wrapping presents? [shudder] At this time of year in particular, it becomes metaphor for everything that's wrong with our credit-fueled, bling-obsessed culture. (Not to mention how it rubs my nose in the fact that I've again knuckled under. Also in how very much I suck at it: Oh, it should be a matter of trivial geometry--that is, until the paper expands and shrinks while I cut it. Tricksy paper--it hatesss usss, yess it doess, my precioussss...) I could bang on about the superficiality, the waste, the mind-boggling non sequitur that is the stick-on bow, but let's take the obvious for granted, shall we?

Sadly, the era when cardboard wrapping paper cores could be "repurposed" in light-sabre duels ended circa 1984--timing I blame more on the fact that my (non-geek) sister turned 14 and thus, by definition, too cool for such antics than the fact that Return of the Jedi was soooo 1983. ('Cuz', really, the Empire was toast, Darth Vader made his deathbed return to The Light Side, Leia and Han were finally going to have a chance to "do it," Luke was officially a Jedi, blahblahblah. For love of The Force, how much more closure do you geeks need anyway??!!)

But I digress.

It didn't help my opinion of how I spent a chunk of this evening when I realized that I, in essence, was marketing--and not necessarily in the best of ways. Obviously, printed paper and bows bling things up. (Dennis' Aunt used to forgo tags for writing the recipients' names in glitter--a custom quickly put out to pasture when she and his uncle adopted one, then two daughters.) Then, too, there's the element of artificial mystery created by disguising the contents. (Dad--the eternal practical joker--took that to an extreme with my Stepmom by nesting a jewelery within a matroishka doll of boxes--all the way up to cardboard that had once held a washing machine.)

But, for me, the most soul-sucking aspect is the pointless herd-following. Which makes it like so much other "marketing." Like the full page ad in the--dying--New York Times. A float in the Macy's parade. The eponymous stadium. The Facebook "fan page" that's only followed by other spammers. The CEO's blog that hasn't been updated (by the CEO's personal assistant, naturally) since 2004. The Twitter account that consists mainly of Foursquare-esque check-ins to the office. Robo-calling and spamming and catalog-bombing a one-time customer relentlessly enough to drive her/him into the arms of the competitor...assuming s/he ever needs such a product again.

That sort of thing. Depressing, really. Maybe I'm extrapolating the simile too much. I'm not above "recycling" wrapping paper--Dennis picks on me for it, in fact--but honestly, wouldn't it just be easier on everyone if we'd just save a small stack of "holiday" grocery store bags for gift-wrapping and call it good? Anyone with me? Anybody?

Wednesday, December 22, 2010

Reality check

Today's mail included an envelope from my credit card company, marked "Account Information Enclosed." This being about bill-time, I opened it to find a(nother) round of "blank checks"--or as we call them, "shredder food." Granted, throwing them directly into the trash could be bad, so it's just as well that I didn't blow the envelope off. But "account information"? Seriously?

Now, it doesn't sound like the big banks have too many problems these days, but a trust deficit is definitely one of them. Direct-mail chicanery doesn't help. And if a bank's business model relies--even partially--on gullibility and impulsiveness, do I really want to do business with it? Just sayin'...

Tuesday, December 21, 2010

Metrics that miss the point

One of the key differences between Twitter and Facebook seems to be the nature of the ecosystem that's grown up around each. Facebook seems to favor a big-tent kind of mentality--providing, of course, that they sell you the canvas. Twitter's much looser: They own the campground, metaphorically speaking, but don't seem to impose too many other restrictions as long as you're not waking people with tribal drumming and howling at the moon at two in the morning.

Different folks will of course find differing value in each ethos, of course. But they are, mostly, mutually exclusive. Say what you will about dialectic and synthesis, but I strongly feel that applying the rules of one to the mechanisms of the other is foolhardy.

Tonight @JakeWobegon tweeted about running afoul of a Twitter account that, for all practical purposes, has hired a doorman--and a snooty one at that. It's called TrueTwit. (Aside: I'd like to take this moment to congratulate the person who dreamed up the name b/c sixty-one million Brits--not to mention those of us who grew up on PBS BBC rebroadcasts--are now snickering up their/our sleeves at you. Good job.) But anyhoo...the basic idea behind the service is to "validate" those who would follow your tweets to make sure they don't associate with "the wrong crowd," as Mummy would say over tea and crumpets.

Yes, yes, I know: Lie down with dogs, wake up with fleas and All That, but it's Twitter, for pete's sake! Anyone who knows half of anything about the way it works is aware of two salient facts:
  1. Peeps don't monitor followers in real real-time (and block the spammers and other unsavory types).
  2. Peeps who obsess about the quality of their followers never mentally graduated from middle school and shouldn't be followed anyway.
More to the point, it's not like their spam/porn shows up in your tweetstream until you follow them. Yeah, you get a sample when you block them, and that can make you want to boil your screen--I get it. But for anyone who pines for a more...ah curated...browsing experience, may I suggest building a time machine and porting yourself back to AOL circa 1996? I really think you'll be happier that way.

That's not to say that I don't actively block the obvious spammers, porn-bots or those whose (ahem!) "agendas" are diametrically opposed to my weltanshauung. But that's something I take responsibility for doing. The ones fishing for knee-jerk follow-backs normally take care of themselves. But everyone else--so far as I'm concerned, anyway--is doing me a favor.

But as much as I seem to be tilting at a strawman here, my main--and much larger--point is that "followers" can easily become valued followees, and no algorithmic metric can compete with spending a little time profile-surfing and coming to a rational judgement--sometimes only even a gut feeling before making the keep/block call. That, and if you're to important to "groom" your Twitter entourage yourself, you should probably hire a real person to do it for you.

Monday, December 20, 2010

Postcard from an alternative Universe

(At least it sure feels like it.) After several years on using Ubuntu as my go-to operating system at home and on the road I'm recycling a Windows XP box (purchased in 2003) to use as a test web server.

Ooof, what a pain! (I speak in relative terms, of course). It doesn't help that it's been over half a decade since I officially impersonated a system administrator, either. Windows itself installed--albeit slowly due to the older hardware. After installation, I was greeted with an interface that even Playskool would consider "chunky." That's where the handy-dandy Dell driver CD comes in. That thing boots from CD, but because of the monitor resolution--and probably the fact that it leans a little heavily toward "landscape" than it does "portrait"--some of the window is cut off. And by "some" I mean "most," you understand. That included any buttons for installing said drivers--most importantly the video-flavored ones that would let me see the parts of the window that would let me install them.

Sigh.

In the end, it probably took me fifteen minutes to figure out how to even access the video driver files, realize that the driver CD wasn't really "installing" the driver. (Rather, it unzipped a bunch of files--including to the hard drive, where I had to locate the Setup.exe file and run it.) So, once I installed the drivers, rebooted, set the screen resolution to something I could work with, installed the network drivers and rebooted again, spelled out my internet connection information for Windows, it was time to venture out on the internet and grab Service Pack 2 (and hope that no one was prowling my neck of Teh Internets for unpatched systems).

First run at Service Pack 2 didn't go so well--Windows Update basically freaked out on me. At the time of writing, I'm on my second try and it seems to be progressing now. After that, it'll be off to install an Apache Web server, its PHP plugin, the MySQL database server, plus a few amenities for the comfort and convenience of your faithful blogger. If I'm lucky, that'll only chew up the rest of my evening.

Now, I realize that it's not fair at all to compare the 2003 version of Windows XP (customized or no) to the 2010 versions of Ubuntu. I'm too much a Hufflepuff for that. Also, two separate versions of Ubuntu died out somewhere before or during hard-drive reformatting, which basically left me with an oversized patio brick where a PC used to be. (In retrospect, I should have grabbed a Mandrake CD from the same era to see what would happen. Alas, I didn't think of that until just now.) But if there were a comparison to be made between installing a vintage operating system and childbirth--in the sense of forgetting how awful it was until it's too late--this would be an opportune moment.

And thus I find myself down the rabbit-hole, through the looking-glass, or whatever 19th century Brit. Lit. memes my gentle reader cares to resurrect. By which I mean wishing that installing a reasonably secure and usable operating system were a matter of popping a single CD into the drive. Of wistfully thinking of how dropping a web server, PHP support and a database can done by typing one single line of code into a command-prompt. Of having to make a mental note to go into the firewall and punch a hole or two in it for the web server & friends. And--for pity's sake--wishing that this whole process didn't require so darned many iterations and reboots.

Call me spoiled. But whatever you do, don't categorically slag the Linux user experience. At least not when I'm within earshot.

Sunday, December 19, 2010

Technical difficulties - no post tonight

What should have been a no-brainer bare-bones installation of Ubuntu and a web server for testing has turned into a right pain, for which--based on the evidence presented thus far--I'm currently inclined to blame Dell hardware. But the error-and-trial has wiped out my budgeted writing time. (And then some.)

Until tomorrow...

Saturday, December 18, 2010

A new "golden ratio" for the age of outsourcing

No doubt, I've harped on this theme before, but it came around to bite me again this past week--which clearly means The Universe at Large isn't heeding my rants--shocking as that may seem. [insert sarcastic eyeroll]

The backstory is that the client in question--so far as I can tell, anyway--staffs its I/T department almost exclusively with vendors (meaning temps). Mind you, I'm not slagging temp. employees: I've been there, done that and ragged out the t-shirt for good measure. But is it ever obvious when the contracts expire! That's when I stroll into work, to be greeted by emails (from their third shift) telling me to fix data in a system to which I have absolutely zero direct access.

You'd think that by this point, I'd have a boilerplate response filed away on a shared drive by now. But, apparently, I'm a slow learner. So I merely direct the "newbie" to the proper channels (i.e. the "upstream" application that actually generates the data) and make a point of carbon-copying the person who reported the original issue. Normally, that's the last I hear of it. Until the next contract renewal, anyway.

If it were a question of the company pissing away its intellectual capital in false economies, I'd shrug and dismiss them with a simple, "Good shuttance, ya mouth-breathing, bean-counting wankers." But the fact is that they're offloading some of that cost to "my" balance-sheet via the "free" training I provide to fill the vacuum of organizational know-how.

I suppose there's a rule-of-thumb metric buried in here somewhere that has to do with the ratio of temps vs. "real" employees one works with. And, while I wouldn't presume to interpret the actual significance of that ratio for any given situation, I do think it's a number worth tracking--regularly and for the long haul. Granted, it can't match the real "golden ratio" for sheer nerdtastic coolness. But if you find yourself in the position of having to triage clients, I think that there are few better indicators of the health & longevity of a business relationship.

Friday, December 17, 2010

Two weeks' notice

(No, that doesn't quite mean what it usually means. But let's start at the beginning.)

To my gentle reader and honored guest in my little slice of the blogosphere:

It is times like these that make me wish I'd kept the receipts for my college English degree so that I could ask for a refund. Simply because UWEC did not teach me the vocabulary or grammar or style equal to the task of saying "thank you" for the inspiration that comes from knowing that someone might actually find the time to read this mulligan stew of rants, paeons, geek-outs, musings, pontification, navel-gazing, and intermittent loopiness.

As I see it, there are only two ways to write: As if no one's reading, and as if everyone is. Having done both, I can fairly say that the latter option is infinitely more rewarding, particularly when you have the privilege of knowing and/or interacting with some of the folks who--figuratively--stand over your shoulder every single day. It's an amazing feeling, and--selfishly--I don't want to give that up.

So what I'm thinking is to keep it honest by keeping to a regular schedule--a minimum of two days per week. I'm picking Tuesday, for tasters, because poor Tuesday seems to be the red-headed stepchild of the week. Plus, of course, Frivolous Friday. More than anything because I'm a sucker for "tradition," however spurious.

To circle back to the start, I want to again thank you, gentle reader, for having someone to write for, every night of the week, for well over a year. For me, at least, it's been quite the journey so far. And I would be honored to continue it with you, albeit on a somewhat different schedule.

Frivolous Friday, 12.17.2010: Shiny Bowl Blues

First, the backstory (which, incidentally, has bupkis to do with the usual fare around here). Our cat came to us as a stray. Despite five years of two--sometimes three--solid meals a day, he still acts like he doesn't know where his next meal's coming from.

A couple weeks ago, Dennis & I could hear the percussion his metal bowl makes as he drives it against the wall while polishing it to a mirror finish. I remarked to Dennis that if either of us had any musical talent, we could write a tune to that beat, maybe even roadhouse blues as if the cat had written it. The idea stuck with me, and, well, here you have it--written with my furry muse purring on my lap, no less...

- - - - -

Shiny Bowl Blues (by the Deputy Kibble-bringer)

I was strolling through the shady grass
On a sunny August day,
When a lady stopped to scratch my ears
And pretty soon led me astray.
She carried me off to her place:
I thought I was on a roll,
Never believing I'd be staring
Down into a shiny bowl.

Ka-thunk, ka-thunk, ka-thunk,
Goes my bowl against the wall.
I'm always hoping to scrape up more,
Though I know I ate it all.
In this life I could only win
By having nothing left to lose,
Meanwhile, I'll nap and I'll wash and then nap some more...
And sing me the shiny bowl blues.


Oh, I know that I'm a handsome guy:
Can't blame her for taking me in.
Five years on, I'm sleek and well-groomed,
Though maybe now not quite so trim.
I could admire this face all day,
From its ear-tips to kibble-hole,
But it looks so sad peering up at me
From inside a shiny bowl.

Ka-thunk, ka-thunk, ka-thunk,
Goes my bowl against the wall.
I'm always hoping to scrape up more,
Though I know I ate it all.
In this life I could only win
By having nothing left to lose,
Meanwhile, I'll nap and I'll wash and then nap some more...
And sing me the shiny bowl blues.


From my windows I can see
Rabbits frolicking on the grass,
And you know the mice are tastier
On the other side of the glass.
For the taste of Squirrel Al Fresco
To Basement Cat I'd pawn my soul.
But I can only stalk the critter
Who lives in my shiny bowl.

Ka-thunk, ka-thunk, ka-thunk,
Goes my bowl against the wall.
I'm always hoping to scrape up more,
Though I know I ate it all.
In this life I could only win
By having nothing left to lose,
Meanwhile, I'll nap and I'll wash and then nap some more...
And sing me the shiny bowl blues.

Thursday, December 16, 2010

Rewarding our way to ruin?

If you've read any of Daniel Pink's work (specifically that dealing with intrinsic vs. extrinsic motivation), you won't be surprised by the fact that earlier today he tweeted a link to the Washington Post article, "Why tomorrow's Wall Street leaders don't like bonuses."

The gist of the piece is that employee--i.e. fund manager--frustration stemmed from their employers issuing bonus checks in lieu of performance reviews and feedback. On the surface, such frustration would seem non-sensical: After all, who doesn't like big, fat checks and who doesn't dread review time (particularly when filling out your self-assessment form is as long and agonizingly introspective as writing a Russian novel)?

But, looking beyond the superficial, a check doesn't really tell you anything--other than you're not fired, particularly when you work in a firm where discussing compensation can land you out on the curb. So there's no sense of performance, simply by virtue of the lack of comparison. And if the formula for computing bonuses isn't clear, there's no benchmark by which to measure oneself. Which in turns leads almost inevitably to suspicions of favoritism, gaming the system, etc.

But what I think is missing from the commentary is simply the bare-bones reality that investment firms have nothing to offer their clients except human judgment. Their sole job is to take in money and turn it into more money with reasonably gratifying regularity. Some of this function could be offloaded to computer algorithms, but that's precisely the kind of thing that becomes a commodity in a very short time. Which brings things right back to hiring the best people and making them even better as the only viable market differentiator.

In other words, if you work in Wall Street and you aren't investing in other companies, your only other value-add is to invest in those who are bringing in the cash. Profit-sharing is one thing; annual bonuses are a cop-out for real development--even when they don't encourage short-sighted and/or sub-ethical behavior. To me, the wonder is not so much that the house of cards came down in 2008, but that anyone is able to build it that high in the first place.

Finding virtue in vice (belated Wednesday post)

For the record, I have a perfectly valid excuse for delivering yesterday's blog post today: I spent last evening gambling--at first with other people's chips, then with my own. I seemed to do well enough both ways, but given that it was at an office party, it's not like I'll be cleaning out Vegas anytime soon.

For awhile, I almost had myself convinced that blackjack--gradually upping my bids, splitting, and even doubling down--was really an exercise in innoculating myself against risk and loss in the entrepreneurial sense. So by the time I "cashed out," I was feeling just a teensy bit smug about my aptitude. 'Course, alternating between Reisling and something called "Apothic Red" might have had a little something to do with that. (In case it matters, I didn't drive myself home.)

After more sober consideration back in the workaday world, there is the unescapeable reality that--even with odds favoring the house--blackjack's rules and statistical underpinnings can't hold the proverbial candle to the complexities and unknowns of the real world. But the good news, to me at least, is that managing risk--by which I mean not freaking out when a bet goes bust--seems to be a learnable skill.

Tuesday, December 14, 2010

Crying wolf

Most of my workday was spent setting up my already-customized new workstation. That's actually an improvement over the nearly two-day process it used to be. (Our resident Sys. Admin. at least tailors the software montage to our jobs, rather than merely handing off whatever McImage is cut by corporate I/T.) Much of the time saved comes from the fact that SysAdmin just hooks our soon-to-be-former workstation up to the network and maps a drive to it on the new workstation. That allows for what I call the "one-step-schlep." (In the old days--a.k.a. 2007--we had to drag our data to a network share and hope we remembered everything the first time.)

I'm not complaining, but I couldn't help but notice how, no matter what kind of files my mouse hauled from the Windows XP to the Windows 7 installation, the latter went into over-protective parent mode. As in, Oh-I-don't-know-honey-are-you-sure-you-feel-comfortable-doing-this-how-much-do-you-really-know-about-that-file-I-mean-you-don't-even-know-anything-about-its-parent-folder-and-that-extension-could-just-be-all-an-act-and-yes-I-know-it's-your-hard-drive-and-all-but-I-just-don't-want-to-see-you-with-a-virus-when-a-little-caution-now-could-prevent-that.

Yeeesh.

The bottom line is, there is zero--on second thought, let's make that negative--credibility in such "warnings." At that point, it's not even security kabuki as practiced by the DHS/TSA. Rather, it rolls on the same level as the ravings of a tin-foil-suited nutjob living in a bomb shelter insulated with bulging Dinty Moore cans. And, given that my firm paid a premium for the soi-dissant "Enterprise" version of that operating system, you'd better believe I think we have the right to expect better than that.

Fortunately for what I was trying to accomplish, overriding the hand-wringing freakout was a matter of a simple--albeit time-wasting--click. But the bottom line is that paranoia and fear-mongering do not make us secure. That goes for our desktops just as much as airport rigamarole. Sadly, real life doesn't have the same happy ending as the fairy tale: Those who cry "Wolf!" are too often rewarded with power and money, rather than removed from the organizational gene-pool.

Monday, December 13, 2010

Self-flattery

(To be filed under "You know you're a geek when...")

While camping out by the cellphone waiting for AAA and/or the towing company to call, my dominant thought--apart from worrying about power outages back at the homestead--was "What software are they using? There's gotta be a way to make this more efficient!"

Sigh. At least I managed to stop myself from armchair enterprise software architecture design. This time. That's progress, I guess. Another sigh.

You're only as good as your affiliates (belated Sunday post)

The backstory is that Dennis and I were in the Twin Cities when "Snowmageddon"--particularly, the bad visibility--pitched us into the downy embrace of Snelling Avenue's snow-filled median sometime around noon-thirty on Saturday. Then again, that's what AAA memberships, and even El Cheapo prepaid cellphones like mine live for. That, and we knew there was a motel just a bit up the road anyway. By the time the classic "Minnesota Nice" couple in the yellow SUV offered to drop us off, we already had the call in for the tow truck and a room booked.

Problem was, the 2.5 hour wait that AAA indicated, turned into something like 29 hours. (Naifish me, I'd done the whole "responsible motorist" schtick and left the flashers on when we bailed on poor little Tercel. Whoops.) Later in the afternoon, AAA called me back with the heads-up that the original towing company's trucks were all stuck, and that my call had been put in the queue with a second company, who would call me before attempting to rescue my little green one. A bit after dinnertime, the backup company called to inform me that they were pulling all their trucks off the roads and that I should start afresh with AAA on the morrow.

Which I did. And we waited. All things considers, it was a productive enough day: Dennis made a serious dent writing the final for his class; I did the majority of my Christmas shopping. One of our two very dearest friends was able to meet us for lunch. And, despite the fact that the car was finally winched from its snowy bed at around 5:30 Sunday, the conditions on I-90 pretty much mandated another night in Roseville. At one point, I'd been on the phone, nagging AAA for at least an approximate ETA on the service for which a decade's worth of dues have paid, and--as a side note--was told that the towin companies were "starting to get frustrated"--presumably with the strains on their capacity.

The last of the afore-mentioned small mercies was that, between us, the storm and I had managed to bury the car so thoroughly (and conveniently out of the way) that pulling it out wasn't exactly a top priority for the Roseville, MN constabulary. ("Oh, boy..." quoth the nice tow driver when he caught a glimpse of how his next 20 minutes would be spent.) I think I've previously mentioned that if my gentle reader wants living proof that the Powers That Be watch over fools, s/he need look no further than me. This is one of the best cases in point.

But the far more salient point, IMO, is the degree to which the mantras of "lean" organizations and the economy of "shared" goods and services alleged to be on our horizon are built on partnership, rather than ownership. If the days when Ford Motor Corporation owned the land on which grazed the sheep that provided the wool for the upholstery of its vehicles are indeed as quaint a vision as the towers of Camelot, then the only things remaining to be optimized (if not, in fact monopolized) are information and relationships. At the time of writing, neither lends itself to iron-fisted control.

From a consumer's standpoint, this is more than likely a good thing. Vertical monopolies might provide lower prices in the short run, but when companies depend upon each other, not only for materials and services, but also for reputation, it introduces a set of checks and balances that monopolies/oligopolies can't offer.

Saturday, December 11, 2010

My inner adolescent pays it forward

As a teen with a curfew and much put upon--or so I thought--by the expectation of playing by "adult" rules when my actual decision-making abilities were so curtailed, I probably more than once fantasized about smacking the next person who reminded me that I had control over my reaction to things. As I saw it then, I was only giving what I got.

My attitude's gone through a few different adjustments since then, though I still do not willingly suffer fools who mouth platitudes. But it occurs to me now that any business that provides goods and/or services in a consumer may well, thanks to the internet--particularly YouTube, Twitter and the like--find itself in much the same position. Governments, too, as we are again seeing as the ripples caused by Wikileaks continue to widen.

My inner fifteen year old is pleased, actually. But, then, we share a certain taste for karmic schadenfreude. [insert evil grin]

Thursday, December 9, 2010

No Friday post

Just thought I'd let my gentle reader know ahead of time that tomorrow evening is already spoken-for. Regularly-scheduled frivolity will resume on the 18th. Cheers and have a good tomorrow, all!

When the Sibyl huffs too many volcanic fumes *

It's the 23rd Century. Earth, emboldened by the success of its contacts with "alien" regimes and cultures, decides to venture too close to the space of a more elusive (but definitely to-be-reckoned with) culture. One of its "alien" consultants, a cynical (yet often Quixotic) old hand from a fading empire comments, "Ahhhh, I see that you have managed to combine arrogance and stupidity: How efficient of you."

And so I--quite appropriately, mind you!--raise my glass to Londo Mollari, future Emperor of the Centauri Republic in the Babylon 5 universe for summing up precisely how I feel about Oracle's conduct in the Java Community Process. Or perhaps not quite. I would add "hypocrisy" to "arrogance and stupidity" and make it a hat-trick...or the trifecta of #FAIL.

But the larger point is Oracle cannot possibly have the programmers necessary to sustain its Java middleware efforts and support its flagship database products. Neither can its enemy-of-my-enemy "friends" like IBM. Thus, there's a certain care and feeding necessary for the developers who maintain the amenities that make the language attractive:
  • Coding software (a.k.a. Integrated Development Environments, or IDEs) such as NetBeans, Eclipse (no connection to vampires, werewolves or sulky-looking jailbait!), and BlueJ
  • Testing software, mostly meaning JUnit
  • Build software, mostly meaning Ant
  • Web application servers, such as Tomcat, Jetty and JBoss
  • Databases (e.g. Derby) and database connectors (e.g. JDBC for Derby, MySQL, etc.)
  • Etc.
  • Yadayadayadayada
  • And so forth
In short, a whole lot of programmers devote uncounted hours of free time to what can quite accurately be described as an ecosystem built around that language. And, frankly, I simply cannot wrap my brain around the short-sightedness of Oracle's attitude. Granted, the Apache Foundation is not the only large faction in the open source world, but it draws one heck of a lot of water. Which--to extend the ecosystem analogy--makes Oracle's belligerent attitude tantamount to clear-cutting, mountaintop removal, strip-mining, ghost-netting, shark-finning, or any other particularly nasty bit of corporate hubris you can name--up to and including Deepwater Horizon.

All of which makes me incredibly sad, because Java has been my favorite language for a decade. Why? Because it Just Makes Sense. Period. Unlike the disjointed, steaming messes that are Objective-C and ActionScript--which don't provide functionality so much as they splatter them across what Apple and Adobe fondly imagine to be APIs (Apple being by far the worse culprit). Moreover, Java is a language can power huge, data-backed websites as well as desktop and even cellphone applications.

Fifteen years is a lot of legacy for any language--and the tools that grow up around it. But in the long run, the internet is a primordial soup for new programming languages and platforms. There's no going back to Borland's heyday. Microsoft gets away with charging for its toolset because of the integration aspect, and for all I know that may be part of what Oracle has in mind.

Technically, as the buyers of Sun's assets, they legally can do what they please with them, including perpetuating the non-cooperation they deplored Back In The Day. But one thing they'd better not do is be surprised when one of the open source "forks" of the language does to them what Firefox did to Internet Explorer.

- - - - - -

* The prophesies of the original Oracle of ancient Greece were, by tradition, inspired by inhaling the fumes from a volcanic vent, over which the temple at Delphi was situated.

Wednesday, December 8, 2010

Solving a non-existent problem

Wikipedia is one of the Facebook groups I follow, which means that my feed contains the occasional url to a hand-picked article. Today's was nerdy enough (in the sense of both history and science) that I clicked the "Share" link. Before FB would copy it to my wall (and friends' feeds), however, it insisted on making me jump through the extra hoop of a captcha.

I thought that kind of non-sensical, actually. It's not like that's going to show up on Google's radar. And it's also not a platform that lends itself to link-spamming like the farce that is Twitter search results or their "Top Tweets" feature. Moreover, anyone who calls me "friend" has very handy access to the means to surgically remove that link or block me entirely. Which is more than I can say for squelching the "targeted" advertising that so often manages to miss the broad side of every single barn in Farmville. (Although, in fairness, I may have trained the algorithms to stop feeding me political ads...and the slime index is registering a bit lower than normal lately.)

Granted, I suck badly enough at the user interface design of software, so I claim to know much about it. But what I do know is that a feature that makes the user think, "Wait...what? Seriously???" is probably sub-optimal. Just sayin'.

Tuesday, December 7, 2010

I'm onto your nefarious plan, Mr. Jobs!

Around lunchtime, my pod-mate dragged my attention out of The Zone and pointed it at the blown capacitor smell originating from somewhere on our side of the building. I'd had my headphones earlier, and thus missed the ominous "Pop!" that preceded the scent of fried electronics.

I don't think I'm projecting my opinions when I say that our doughty Sys. Admin. did not seem at all thrilled at the prospect of getting it up and running again. (The snarky comment about parts being "encased in arty aluminum" might have been the tip-off--y'think?) But the iPad developers need it, so its days as a boat anchor have been postponed.

If I didn't know better, I'd swear that Apple's whole iPlatform was merely an elaborate plot to boost Mac sales...

Monday, December 6, 2010

Rebooting the Android strategy/tactics

I thought that Google's decision to take a lower-key approach with the Nexus S Android phone was interesting in its potential to under-promise and over-deliver. Not enough to drive your faithful blogger over to T-Mobile, of course--their "bundling" of voice, text & data is the lame joke it was when I crunched the numbers months ago and decided to stay with pre-paid. In the meantime, I'm holding out for better luck with the next incarnation.

At least Google seems to have learned from their very public spill, and that's encouraging. But the real question (to my mind, anyway), is how much a more Googly-flavored Android phone can push consumers to push their carriers to open up their offerings to less "customized" (a.k.a. "locked down") handsets.

Personally, I'm leaning toward a pessimistic view, given how willfully ignorant most Americans seem to be about the true cost of anything that involves monthly payments. Then again, cool is cool--and that's the game just now.

Sunday, December 5, 2010

Will close enough be good enough?

The theater where Dennis & I spent part of Date Night is advertising live broadcasts of events such as operas and ballets. I thought that was an interesting niche idea in the "where else ya gonna get that?" sense. The exclusivity of such a showing runs side-by-side with a limitation of choice (i.e. see it then or not at all) that makes up the mind one way or another. (Anecdotal case in point: Of the movies I've seen in theater, the one I've most often attended is only offered--in this area, anyway--at my UWEC, and then only once a year at midnight.)

But for all the exclusivity, tuning in "live" to something happening at Bayreuth, The Hollywood Bowl, La Fenice, Royal Albert Hall, Radio City Music Hall, etc. from the comfort of your local cineplex is still not the same as being there. I mean, granted, it's not like anyone would be silly enough to do Tony and Tina's Wedding that way, and theater-in-the-round would be a suboptimal experience at best.

But the question boils down to whether "close enough" is "good enough." When Dennis & I finally had the means to venture over to the UK, seeing a Shakespeare play at The Globe was--surprise!--non-negotiable. The experience was pretty amazing facsimile, all in all: Paying good money to be crammed onto wooden benches, using the knees of the patron behind you as a backrest, occassionally feeling a September drizzle blow in from the open part of the roof. Never mind that the underpinnings of the 17th century original lay under an apartment complex a few blocks off: It was the best to be had.

Which will probably also be true sentiment of the arts-lover who can't swing a trip to the actual production's venue. But whether the approximation will be good enough is another question. I think that, as the gap continues to close between our immediate world and that which can be brought to us via technology, that question will become more and more complex...and interesting.

The screens who stare at geeks

I was working something out in my head the other day, but must've been too lost in that, because my pod-mate said, "That staring contest you were having with your screen? The screen won." "Hey now," protested I in mock-outrage, "I'm only outnumbered two to one: Give me a little credit!"

But he has a point: When you stare at a screen, it stares back. Contemplation is all well and good, but (for me, at least) breakthroughs rarely happen without tweaking, rearranging, experimentally breaking what's on the screen, sometimes even walking away. Anything but continue to stare at a screen that--screensaver and hibernation mode withstanding--doesn't blink.

Friday, December 3, 2010

Frivolous Friday, 12.03.2010: Book review

A week or so ago, I finished Daniel Ariely's Predictably Irrational. It is easily the best read I've had since snarfing Cognitive Surplus in August. Partly because they both fly in the face of conventional wisdom that says that human beings live and work to optimize their take from the world--locking out others if necessary.

But while Shirky's book is useful for understanding how to foster innate motivation and generosity in people, Arielly's work tackles the route to happiness from a different cardinal direction. He does this by breaking down the effects (both good and bad) of "free," the power of comparisons--real and illusionary--in decision-making, the pull of sunk costs (i.e. "ownership"), the conflation of price and value, etc. It's not long before the illustrations of how we fritter (or gamble) away our time, money and opportunities becomes downright dismaying. And, although the honesty is commendable, it's more dismaying still when the anecdotes Arielly uses are from his own experience--at a time when he, intellectually, should have known better. (The fact that many experiments were carried out on unsuspecting MIT students, who are supposed to be pretty sharp, only rubs salt into the already-stinging pride...)

But ignorance is bliss, it also comes with a high price tag. When the folks on our lovely jewel of a planet come to their senses and elect me Supreme Benevolent Dictator for Life, this will be mandatory high school curriculum, which I don't say about much, except for memorizing the formula for computing compound interest. And knowing how to use apostrophes (for those languages that have them). And understanding logical fallacies. Oh, and not making stuff up about history or the constitution of your country, darnitalready!

Anyhoo, since my ascension to absolute power seems to be slow in coming, I'll only say that I don't have enough thumbs to give this book the props it deserves. Go--pester the library for it if they don't already have it. Trust me.

Thursday, December 2, 2010

Never unnecessarily flatten the adoption curve

Yes, I'm afraid I'm dinging Microsoft again for the ASP "Classic" -> ASP.NET thing again. To their credit, when ASP.NET version 1 was first released, Microsoft tried to nudge developers past the pain of upgrading by providing a free migration tool. Which was smart. But that tool won't do me much good, seeing how the language is up to version 4.0. So I spent a bit of time today looking for the 2010 edition of that tool. At first I thought that perhaps my Google-fu was not strong today. Now I'm pretty sure that's not the case. (Although--and I didn't think of this until just now--MS is pretty notorious for changing names of things. I'll take another crack at it tomorrow.)

Yet if I'm proven wrong, I still think that the point largely stands. See, it's not the 1.0 crowd you need to worry about migrating so much as the 2.0 and 1.0 crowd. Reason being, 1.0 is wired more adventurously. Everyone else is waiting to see whether the pioneers survive their first winter (or two) and--more importantly, whether the risk paid off. During the wait, legacy code will continue to pile up, and the new language will undergo even more changes that can make converting even more painful.

Unlike learning curves (which ideally should be shallow for most of their length), adoption curves should be steep: If elapsed time is the X-axis and number of adopters is the Y-axis, it's more profitable to front-load that curve with a high number and worry about the stragglers later. In a disruptive, innovative industries, this is the pipe dream of entrepreneurs and venture capitalists. This is the sort of thing that creates industry standards--without knock-down-drag-out trench wars like that of VHS and BetaMax.

And, in my opinion--not necessarily 100% objective, mind you--Microsoft blew it. Whoever made the decision not to migrate the migration tool to the next few iterations of ASP.NET deserves a bonking on the noggin with a copy of Crossing the Chasm. A decision which may have more than a little to do with the fact that Microsofts web server now supports the open source PHP programming language. Only think how unthinkable that would have been to the incarnation of Microsoft that released .NET 1.0! For all I know, I could be making a classic post hoc, ergo propter hoc error here, but boy-oh-boy is it a tempting inference to make.

Wednesday, December 1, 2010

A good "warning sign"

Originally, I'd had reasons for using Mercurial (as a secondary option) for source control that didn't much resemble the usual reasons. (For the non-developer, "source control" is software that lets you save different versions of the same files. If you're familiar with how Microsoft Word stores revisions, it's sort of like that.) First, I just wanted to kick its tires and then drag-race it in an empty parking lot. Second, it made keeping two different branches of the same web application in synch almost laughably easy. And, finally, I didn't have to ask permission, rely on someone else to set up repositories and branches and logins and yadayadayada.

The second "branch" of the afore-mentioned web app. has been frozen in carbonite for a couple weeks now. But on the off chance we need to thaw and resuscitate it, I've kept the Mercurial repository of the working "branch" up to date. But it was only today that I realized that I'd been consciously committing code as standalone "snapshots" of specific changes...and (figuratively) kicked myself for not adding the corresponding issue-tracker ID number to the comments for those commits.

Which, I think, indicates that I may have a new go-to version control software package. Assuming, naturally, that the evil minions of Brute-force Standardization don't force the project into rival package Subversion at gun-point. That's always a danger, of course. ;-) But I think it speaks well of Mercurial how natural it feels for the workflow. And, considering that I interact with it via the command-line, that's saying something.

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.