Sunday, January 31, 2010

(A rant) Is it just me, or...

...is anyone else already throw-up-sick of "OMG, the iPad doesn't support Flash!!!" like, four full days after the release?

Drop-dead-seriously, I hate-Hate-HATE being sucked into what passes for "discussion" in a world of fanboys/fangirls and haters--not to mention the people who don't care either way, but can't stand to be outside the [cough] "conversation" [cough]. In true-green-and-gold-Wisconsinite terms, it's as pointless as listening to the post-game analysis of the Bears-Cowboys game--and a blow-out at that.

Get it through your heads, haters and fans: Apple is the rock star of rock stars (link NSFW) in the personal electronics market. Which basically means that it's making obscene amounts of bling and marrying Hollywood blondes for doing whatever the heck it feels is "the right thing" for its career. Up to and including hiring/firing its managers/roadies/backups based on their Celtic Zodiac signs. (Adobe, in keeping with the rock star metaphor, played/sang backup before the sellout became too obvious, and wants to know why it has to have a lawyer on speed-dial to see its royalty checks these days.)

That's the bad news. The good news is that the odds are inexorably against any AAA-list rock star. Sooner or later, the groupies and coke and trashed hotel rooms and awards show meltdowns will catch up. Personally, I don't have a horse in this race: I despise Adobe and Apple equally for their kindred attitude problems. So the day when both are in their Spinal Tap phase can't come soon enough for me. And if the iPad is Apple's "Stonehenge" (or even "Hello, Cleveland!" moment), so much the schadenfreudier.

In the meantime--and I'm fully aware that I'm tilting at windmills here--would the web's taste-makers please shut (the heck) up about it already?! Ultimately, it's the democracy of the user that decides these things, not the aristocracy of the punditry.

Saturday, January 30, 2010

A down-to-earth use for cloud storage

I've been sceptical of cloud computing, and to an extent even cloud storage, simply because of the well-publicized outages experienced by the 8,000 lb. gorillas in that spaced (Google, Amazon). If I had to be responsible (horrors!) for any start-uppity programmers other than myself, it would still be worth the bling and nuisance of hosting my own data/applications.

But, between them, my husband and @CyberCowboy demonstrated the usefulness of a "freemium" service called Dropbox. While I carry the critical (albeit periodical) backups on a couple USB drives, files that need to be backed up daily--meaning every day that I change them) are finding their way into the Dropbox folder.

But in the last couple of days, that's taken on a slightly different twist. I have any number of slips of paper or printed copies of snippets of code that I've found useful once in awhile. Not often enough, mind you, for them to be hard-wired into my brain. That's where DropBox comes in. Code snippets that would normally be slipped inside textbooks are being typed into descriptively named text files and synched up into the cloud.

Maybe someday I'll get fancy enough to write an upload application that supports all sort of tagging and search algorithms, but for the time being, this has the potential to be a huge time-saver. Someday maybe network latencies and uptime histories will hit a threshold where allocating hard drive space to workaday applications like word-processors, spreadsheets, photo editors, code development environments, etc. will become something that hobbiests and tinkerers do. Me, I can't hold my breath for that long.

But in the meantime, I'm rather pleased with the more modest use I've found for a convenient (and, at my level, free) cloud application. If the service crashes, there's still the flash drive--and, of course the omniscience of Google.

Friday, January 29, 2010

Frivolous Friday, 01.29.2010: A poem for The Scope Creep*

In this world dwell many creeps
And I've likely met my share.
Some have merely freaked me out,
Others, though, have greyed my hair.

I've been fortunate enough
To have worked with but a few--
Even those were far between
In an excellent work crew.

Since I started programming
For my trade (and daily keep),
Jobs and bosses may have changed,
Yet I still work with a creep.

This creep is neither guy nor gal
Nor a title does it hold.
From its name you might infer
That its methods are not bold.

For all that, it's deadlines' bane;
On morale it havoc wreaks,
Turns release into death-march,
To cram months' work into weeks.

It begins with some small tweaks
(Trivial at the time, it seemed)
Multiplying costs as these
Changes make their way upstream.

But by then the word's gone 'round:
"The design phase isn't done!
Coders are like Santa Claus
Granting wishes by the ton!"

Thus the team with much alarm
Sees the feature-list accrue:
Needs (and wants) so often change
While the deadlines seldom do.

When the tab is tallied for
Bells and whistles duct-taped on,
Bloat and bugs are rife in code
That before could do no wrong.

Some creeps might convince themselves
That their world (or job) will cease
Should their darling feature not
Be a part of this release.

For all I know, creeps believe
That they do no harm or wrong
Choosing to believe instead
That "It shouldn't take that long."

Creeps must come from somewhere else--
So most everyone believes--
Spawning features faster than
Even rabbits can conceive.

But I've yet to meet one who
Was deliberately hired.
Thus the flip-side, sadly, is
That the Scope Creep can't be fired.

There's a bit in managers
In their vision confident.
QA and Tech Support both
Lend a user-centric bent.

To be fair, from time to time,
I confess the creep I see,
Guilty of the self-same crimes,
From the mirror peer at me.

- - - - -

* For those who both work and play outside the software industry, the term "scope creep" refers to features (and sometimes even design and/or infrastructure changes) added to a software release (i.e. a version) after the deadline has already been set. To add injury to insult, Management has been known to compensate by assigning more people to the project at crunch-time...with predictably disruptive results. See Fred Brooks' The Mythical Man-Month for the definitive smack-down of such "wisdom"--along with other sound insights that have been blithely ignored by B-School grads for well over two decades.

Thursday, January 28, 2010

The "itchy spot" theory of open source software

First and most importantly, big, Big, BIG props to @couleeregion for her Drupal presentation for the La Crosse Programming Users Group. Clearly, a great deal of work (not to mention soul-searching) went into narrowing so many possibilities down to one concrete example.

For context, Drupal is a highly configurable content management system. It's open source, and @couleeregion uses it not only to power her own website (www.couleeregiononline.com), but has also given back to the Drupal community by contributing her customizations to the code-base. Those donated "modules," as they're known, have thousands of users. From where I sit, that's pretty darned amazing. It's even more amazing in historical context. She mentioned that when she started with Drupal five years ago, it had around a hundred modules. Today, they number over five thousand.

Stupid analogy time: My husband has dry skin, and typically nowhere drier than a patch on his back in the vicinity of the right shoulder blade. So when he asks, "Would you mind hitting the Traditional Itchy Spot?" my fingernails know the terrain well. My Traditional Itchy spot, in contrast, is a band across the middle of my back. (That being said, neither of us would be so silly as to turn down a full back scratch from the other. That's just crazy-talk.)

Understand that when a programmer sits down to write software for which s/he has no expectation of ever being paid, it is overwhelmingly likely an exercise in auto-scratching an itchy spot--with first priority given to the Motherland of all itchy spots. Thus, s/he invents the software equivalent of a back-scratcher to highly customized specifications. Then s/he might show it off to other programmers, and they just might envy it enough to want one of their own. But...inventing your very own back-scratcher (from scratch--no pun intended) can entail a lot of work. And if your itch is both immediate and acute, it's merely logical to customize extant work. Or, in a fit of forward-thinking, adapt it to accommodate multiple Traditional Itchy Spots.

And thus open source software proliferates. Because for those who can auto-scratch, its just takes too darned long to wait for the Microsofts and Apples and Googles and Dells of this world to finish squabbling over:

  • Whether the standard itch threshold should be measured in metric or Imperial units
  • Whether to use zero or one as the starting-point on the itch scale
  • Whether the contact surface of the back scratcher should have barely-rounded or fully-rounded edges
  • Whether to thumb their collective nose at existing industry standards or full-out moon them
  • Etc...

In the meantime, awesome folks like @couleeregion have already scratched and returned their fingers to the keyboard...where they can better scratch the itches of thousands, if not millions of websites and their users every day.

Thanks again, Ma'am! I hope to be more like you when I grow up.

Wednesday, January 27, 2010

Cynical synergies

I used to think that that the gleeful writing of "infrastructure" code at the outset of a shiny new programming project was really an exercise in spoiling the exuberance with piffling details like what the end-user actually wants. In other words, it can be viewed as an exercise in postponing the (inevitable) clash of one's confident, shining vision and the messy reality of what the end users actually find useful.

But lately I've started to think of that burst of enthusiasm as something akin to the energy that nature squanders on the young. In the case of a programming project, such explosions of optimism and creativity see one (and possibly one's team-mates) through writing and debugging a lot of code that will be frantically cut, pasted, and tweaked when crunch time rolls around.

So perhaps optimism and cynicism, if properly timed, don't necessarily have to pull in opposite directions, at least not in software development.

Tuesday, January 26, 2010

My Muse of Debugging, the water tap

There I was this morning, spinning my wheels trying to figure out why code I hadn't even touched--yes, yes, programmers all say that, but in this case it was really true--was no longer applying the filtering criteria just selected on the web page. The stream of consciousness flowed something like this:

  1. Grumblegrumblegrumble...
  2. Y'know, I might be a little thirsty...
  3. Pick up the coffee cup but it's empty...
  4. Now I feel a lot thirsty...
  5. But I've already had close to my limit anyway...should go get a glass of water instead...
  6. But I'm probably getting close to the answer. Let me just inspect the value of this variable, 'cuz it's just gotta be the problem child...
  7. No, no it's not.
  8. I'm still thirsty...
  9. But now I think I'm onto something...just let me check out this variable value...
  10. No--that's the value it's supposed to have...Grumblegrumblegrumble...
  11. Repeat Steps 5 - 10 more times that I care to admit.

Finally, thirst wins out and I head for the break room. I've barely stuck my glass under the water tap of the office fridge when I realize what the problem actually is. Fortunately, I still have enough wits about me that I don't forehead-smack with the glass in my hand.

Of course, let's not give the tap all glory: The coffee pot and the rest-room have been known to have remarkably similar effects. Now, if only the Muse of Stepping Back from Problems would stop by occasionally, it would be even better. But, somehow, I've never seemed to live along her route. Sigh.

Monday, January 25, 2010

Leadership & authenticity - with a twist

Last Saturday night, my husband & I managed to salvage some "couple time" from the long hours at work, and watched The Bridge on the River Kwai over dinner. (Sir) Alec Guinness' Colonel is supremely portrayed--indeed, so well that you find yourself in awe of his stubborn rectitude even as you increasingly despise his peremptory manner. (And, in my case, all without a single Obi-Wan Kenobi flashback, which is saying something, yo!)

But I digress. When it became obvious who was actually running the prison camp responsible for building said bridge, I thought (with inward cringing) "Gack--I wonder how many "leadership" books of the sixties and seventies cited this movie." But it wasn't until today that the full ridiculousness of citing fictional characters in managerial self-help books really clobbered me. (Btw: That also goes for books about leaders from "history" when documentation was too scanty for any serious analysis of character or managerial traits.)

So far as I'm concerned, there's absolutely no difference between "leadership" and raw charisma...until the leader wanna-be walks (or trips) into her/his very own flavor of Kobayashi Maru and leads the team out of it without coming unglued en route. Now, I'll cheerfully 'fess up to the fact that I (probably) haven't met my own Kobayashi Maru yet. But that doesn't stop me from expecting such from anyone who wants to wear the Leader Hat.

That, and they have to be non-fictional.

Sunday, January 24, 2010

The dark side of "the thank-you economy" (NSFW)

Entrepreneur Gary Vaynerchuk (@garyvee) put out a video last fall on the subject of what he terms "The Thank You Economy." But as I watched my Wisconsin friends posting/tweeting about the Saints-Vikings game tonight, I realized that I'd come face-to-face with that economy's dark side--something that Mr. Vaynerchuk likewise mentions in those three minutes of homebrew video. No, it's not particularly ladylike, but I still call it "The FU Economy." And I think anyone who lives in The Dairy State knows darned well that I'm talking about Brett Farve.

Just a very few years ago, I remember Deanna Favre's book about her battle with breast cancer being so popular that--I am not making this up--the local grocery store offered it for sale. And people who probably wouldn't have stuffed money in a pink ribboned jar ponied up for that book (whose proceeds, IIRC, went directly toward the fight against the pink flavor of cancer). Not, of course, to reward even so handsome a woman for the trouble of recording her story, but because she's Lady Favre, darnitalready. That's The Thank You Economy in action. In spades.

Fast forward through a couple changes in jersey colors (but not numbers), aaaaannnd...eh, not so much.

Such repercussions, naturally, make me not a little sad. But for better or worse--in this case most definitely worse--it's an unsurprising feature of The FU Economy. Most especially in a situation where "brand loyalty" dates backto 1919, not 1992.

Saturday, January 23, 2010

Control vs. complexity

Forget the trained chimp scenario: Today I could almost have been replaced by a dippy-bird positioned over the "Enter" key. But my job sending data from one format into another (with the more-than-occasional slap on its fanny) was certainly less fun than that of the system administrator, who spent the day trying to upgrade developer workstations--no thanks to Microsoft and the ludicrous interdependence between its software packages (not to mention the incessant reboots).

Despite the fact that one of us was working with home-brew tools and the other with installer programs from an A-list software company, our time was largely consumed by the conundrum that comes from giving the user control over the experience. Don't get me wrong: I'm not knocking user control; in fact, I'll freely own to being a control freak in any number of ways. My point is merely that control frequently comes at the price of complexity.

Now, I'm not a gambling person by any stretch, but I'm willing to wager dollars to doughnuts that you just nodded at the previous sentence and read on. Yet I have yet to see an interface written to accommodate every last whim of the user that, once in place, didn't have them complaining that it was "too busy." And this even from people who, if not programmers themselves, work cheek-by-jowl with the programmers and software designers. In other words, people who should darned well know better. But please note that I said, "written" and not "designed." The classic mistake in those cases was the failure to make a mock-up on paper before the first line of code was typed. Something that seasoned programmers should have known to do.

Any competent UI designer/programmer should thoroughly understand the cost of control; the particularly good ones will find ways to drive down the complexity to a bargain-basement price. But they'll be a lot more effective if they're allowed to play a part in triaging the bells & whistles that go onto the workaday forms/screens vs. those that can be pushed to and advanced or "administration" section.

Friday, January 22, 2010

Frivolous Friday, 01.22.2010: A loathe-poem

Disclaimer: This is sort-a-kind-a @OrangeComputer's fault for giving me the idea in the first place. But mostly it's the fault of the dreckishness that is the version control software known as Subversion--plus one of its user interfaces (TortoiseSVN). Seriously, it's come to the point where this recovering English major doesn't even feel the need to apologize to the shade of Elizabeth Barrett Browning.

How do I loathe thee? Let me count the ways:
I loathe thee for the way thou make'st me fight
Both tooth and nail to merely do things right.
So sanity unravels, patience frays,
Profanity's sparks show the temper's blaze.
Your "service" hope I someday to requite:
In lieu of verbal brick-bats, then I might
A baseball bat wield a la "Office Space"--
For all commits that have to aether gone
Despite their progress journaled in your logs,
For all "reverted" code that lingers on
To spoke the wheels and gum the gears and cogs,
For all the work that must (again!) be done
That trivial tasks turns to tiresome slogs.

Thursday, January 21, 2010

Continuous improvement requires continuous discipline

Having to skip the Linux User's Group to stay late at work definitely made me have second thoughts--and positive ones at that--about continuous deployment. Mind you, that was a concept that I formerly assumed to be better suited to the uber-caffeinated software development shops. You know--folks who have to slam a six-pack of Mountain Dew to fall asleep.

Understand that I don't subscribe to "Better is the enemy of done." Rather, I think that it's more like "Perfect is the enemy of done." The continuous deployment antidote to that is to ship whatever improvements are available on an fixed basis--no excuses. Which in my uninformed-by-real-life-experience, has a few things to recommend it:

  1. Neutralizing the perfectionists (speaking, of course, as a recovering perfectionist who still falls off the proverbial wagon from time to time)
  2. Forcing investment into the promotion process. In other words, if it isn't much more than a sanity-check before punching a single button, it's probably too Rube Goldberg.
  3. Shifting the focus from "what could be done" toward "what can be done"

Understand that I'm making a distinction between "toward" and "to" in that last line item. Sweeping, visionary changes still have to be made, or the organization will become bankrupt (if for-profit) or irrelevant (if not). But, much less than visionaries like to admit, some large strides can be broken into baby steps. If--and this is a B-movie-monster-sized "if"--the commitment to forward momentum is already there. And it seems to me that a commitment to continuous deployment amounts to much the same thing.

You can tell yourself that you hire only the best. But the best--if only in relative terms--will still split between the get-'er-done faction and the pie-in-the-sky faction. You need both. And, from where I sit (working among both crowds), the commitment to release some improvement every day/week/month is a pretty solid compromise. It gives the get-'er-done crowd the sense of momentum, and keeps the feet of the pie-in-the-sky folks rooted in terra firma.

Mind you, this is pure ignorant enthusiasm talking, and that from someone who emphatically did not appreciate having her plans disrupted by (relative) ill-preparedness. But you can bet it'll be tucked into the rollout post-mortem to the Alpha-geek.

Wednesday, January 20, 2010

Playground politics

Maybe I'm just a little more allergic to politics than usual lately, but the continuing hostilities between Apple and Google set off my pettiness alarm when I saw the ArsTechnica headline Apple may dump Google for Bing.

Not "petty" for the usual tit-for-tat rationales that you'd expect, what with Android and ChromeOS and all. But in terms of screwing the customer merely to spite a rival who's had the audacity to try and build a better (or at least different) mousetrap. True, it's capitalism, and Apple can build its own iSearch website or application for all I care. That's not the point. Here's what I'm talking about:

Step 1: Try searching a random phrase--I used "Renaissance costume"--in Google (or, preferably, its custom search Blackle).

Step 2: Keep that browser window open, and fire up another one. Now search the same term in Bing.

Step 3: Now imagine the two of them in a smallish iPhone or iPod Touch window. Which one would you want to use?

Yeah. Scale-wise, in Blackle, search results are the two-all-beef-patties-special-sauce-lettuce-cheese-pickles-onions between the sesame-seed-buns of ads. But in Bling--I mean, Bing--they're more like the vanilla-flavored grease filling of an Oreo Double-stuff. Now, If you tip the iPhone on its side they might be two inches wide instead of one. Maybe. Because Microsoft's too busy pimping your eyeballs and squandering your AT&T data plan to obsess about piffling details like...oh, I don't know...actually giving you what you were searching for?!

Personally, I think Bing (all by itself) is a huge step backward. Specifically, back to the late 90s, when search engines were starting to morph into (gack!) portals--basically moving into your internet, sleeping on your couch and helping themselves to all the leftovers in your 'fridge. And for Apple, whose brand equity revolves around giving its users a smug sense of "experience"--of the VIP treatment from an operating system--Bing is most definitely a step backward. Maybe even two.

And Apple should know better. But they don't, so if Google is serious about muscling into the gadget and OS space, the best thing that could happen to them might well be Apple upping the ante even further and shutting out the URL entirely, as they've shut out various Google-authored iPhone applications.

C'mon Apple: You're supposed to be the aristocrat of computers and smart-phones. Stop acting like reality TV white trash.

Tuesday, January 19, 2010

The biggest productivity boost...

...is the decision that you, the decider (not the hander-downer), have to stand by--during its implementation and (most importantly) its aftermath. Anything less is productivity poison.

Monday, January 18, 2010

Something that gets me every time

Normally, a process that involves intensive iterations of the following isn't what most folks would consider rewarding:

  1. Scratch out a to-do list that includes a time estimate for each item.
  2. Follow up on a hunch that an item might require more work (either upstream or downstream in the process).
  3. Find out that yes, not only was your hunch correct, but you also forgot to take something else into account, which leads to another hunch.
  4. Repeat steps 2 and 3 as necessary.
  5. Revise the to-do list accordingly.

But I actually kind of like it. Because that's when I'm writing up the initial scope of work and the time-line for a shiny new project. It's an optimistic time. If you're sentimentally attached to the code-base, all the poking around can even feel like a reunion of sorts. And it's the only time you can fool yourself that your glorified to-do list and reality are one and the same thing. FWIW: Recognize that it's an illusion, but do enjoy it nevertheless.

Sunday, January 17, 2010

Don't underestimate the power of "thank you"

My husband & I were turning over the viability of a long weekend in NYC. "But this time, we're making reservations," quoth he. Recognizing the reference, I laughed and rejoined, "Best Western?" which made him laugh in turn, and follow the laugh with an emphatic "Yes."

Flashback to 1995: We've spent the day in the Metropolitan Museum of Art, strung out from having driven in from Toronto the night before. We have no concrete plans other than museum hopping (with a decided medieval history bent) in Toronto and NYC and meeting up with our best friend in Madison on the way home to Eau Claire. And it's our honeymoon, so we're on our own itinerary, darnitalready. Reservations would just cramp our style, y'understand...

I have no idea what was going on in the Big Apple that weekend, but I do know that the motels were pretty full-up. Midwestern sensibilities aside, we would have paid outrageous bling for the privilege of renting a smoking-allowed room. (Blech.) We found ourselves at the pay phone of a strip-mall ice cream parlor, flipping through the yellow pages, having zero clue where we are in relation to the suburbs listed under "Hotels." Which is when the genius whose brand-new ring bore a suspicious resemblance to mine said, "Okay, Best Western has an 800 number listed here: Let's see if they can do anything for us."

One phone call later, we had reservations and driving directions. And we could laugh--albeit with a slightly hysterical edge--at the Best Western's agent's apologetic "It looks like it could be a 15-20 minute drive: Is that okay?"

Now, Machiavelli (quite characteristically) wrote:
...he who gives up his own convenience for the convenience of others, only loses his own and from them gets no gratitude...
Me, I call BS. Yeah, fifteen years was a generation in the late quattrocento / early cinquecento: I get it. Yet I sure-as-sunrise remember the exhaustion and rising desperation that evaporated in mere moments, thanks to one cog in the wheel of a brand-name company. Maybe the folks Machivelli spent most of his career brown-nosing underrated gratitude for their own self-interested reasons. Whatever. But here in the 21st century, Mr. M. can suck it.

Saturday, January 16, 2010

Don't be afraid of being afraid of public speaking

I'm trying to reboot the La Crosse Programmer User Group for 2010: Meeting on the fourth Thursday of the month shoots November (Thanksgiving) and, in 2009, December (Christmas Eve). So I nearly did the Snoopy Dance in my chair when a new presenter stepped up to the task. (You know who you are: Thankyouthankyouthankyou!)

But asking/encouraging someone to speak in front of other people is a thing that makes even a gentle nudge feel like you're crossing palm with shoulder-blade. Why? Because giving an original presentation really is a double-whammy: Not only are you (the presenter) faced with the smug double-dog-dare that is the blank page in front of you, there's public speaking at the end of it. Like that's a reward for the hard work of wrestling your ideas into some semblance of order?

For all that, I never regret the experience. Never mind how disgracefully rusty I've become since the college speech team days with their daredevil adrenaline rush of impromptu/extemporaneous speaking. Never mind the painful-but-necessary pruning of ideas that spill onto the page once the mind's floodgates give way under the passion for the topic. Never mind the minor panic of mid-presentation improvisations when you realize that you've lost part or all of your listeners. It's all worth it. Worth it because you realize that you have to justify the answers you've taken for granted for so long. In essence, you're sending yourself back to school like a scouting party in advance of the main army.

Sharing knowledge in a public speaking scenario is a skill that few want to learn, for the perfectly reasonable reason that it's scary. (I once started a staff meeting presentation by asking whether, given the choice, my co-workers would prefer starting their car at three am on a minus-thirty degree morning over giving a presentation to their co-workers. Not surprisingly, every last one of my twenty-odd co-workers chose the minus-thirty scenario.)

But it's the scariness that makes it something more than a commodity--and worth cultivating as a skill. (Suggestion: If you interview a candidate whose resume claims "Excellent communication skills," ask her/him about her/his last presentation. Definitely a put-up-or-shut-up kind of question, that...) And here's the thing--I've never met a person who isn't nervous. The best have just learned to hide it...to some extent from themselves. Maybe that's why, when I look back on five years on the UWEC Forensics squad, there's such a Band of Brothers vibe...and why so many memories involve silliness: We were all helping each other through the nervousness.

Public speaking is one of those things you can't learn except by doing and failing and trying new things and paying attention to what works (and doesn't) for other people. But once you find your own way through the nervousness, you run with a fairly elite crowd. Which is a bonus even above the learning experience that each new presentation offers.

Friday, January 15, 2010

Frivolous Friday, 01.15.2010: When the middle is not mediocre

My husband and I pulled out a bottle of a kit wine--allegedly an "old vines" Zinfandel--we made a couple years ago, poured ourselves a glass apiece, and unwound from the week. He's not as nerdy about wine as I am, but we agreed that it had (finally!) improved from its disappointing, caramel-tasting start. A year ago, I would have still considered it "homework wine," meaning something I wouldn't serve to company. Now it could go either way.*

While we were breaking down the inadvertent wisdom of more or less ignoring the Zin into something drinkable, it occurred to me that wine-drinking has a "spectrum." On one end, there are a lot of people who will drink just about any wine (particularly if it's free); on the other the wine snobs. But not a lot of folks in the middle. Granted, I can't give you hard statistics to quantify, but I'm unshakeably certain that the distribution of wine drinkers on the "Two Buck Chuck" to "1982 Burgandy/Bordeaux" spectrum does not in any way resemble a bell curve.

Which, to me, is very sad. Because this is one of those times when the middle is actually the place to be. Permit me to explain: If you drink Two Buck Chuck, it's easy to think that the whole smell/taste experience is an overrated figment of a snobbish imagination. But if, on the other hand, you don't consider anything that scores under $80 a bottle or 90 points (from Robert Parker, Wine Spectator, Wine Enthusiast, etc.) fit to pass your lips, you're also setting yourself up for some highly disappointing misconceptions. (Personally, every wine I've bought purely on the basis of its score has been gut-rottingly over-oaked. Seriously--I could have licked the inside of the ageing-barrel for the same effect. What a obscene waste of perfectly good grapes--and a perfectly good tree besides...)

The kicker is that the wine trade would, IMLTHO, benefit immensely from an informed--meaning self-educated--middle. To wit: On the "low" end of the scale, most of the wasted grape juice would be eliminated (except maybe for cooking wine; there's always a place for that). On the tonier end, the various Chateaux and Domaines and Crus (heck, maybe even whole viticultural regions) would no longer be allowed to rest on their proverbial laurels. To an extent, you can already see a certain backlash within the industry itself (e.g. the Meritages and the Super-Tuscans); their "push" just needs some corresponding "pull" to tip the industry in what I consider the "right" direction. For whatever that's worth...

Ironically enough, I can make much the same observations (in terms of the quality "spectrum") about my own industry. Clustered on one end of that spectrum are the folks who convince themselves that they're getting a "bargain" by contorting their processes around "free" software. At the other end are the snobs who won't touch anything not released by a company they haven't heard of--and who will convince themselves that they're actually getting what they paid for. (Never mind that the implementation team looked awfully inexperienced and the folks who answer their calls have very interesting accents.)

So, for all that the proverbial "middle" suffers from connotations of conformity and mediocity, sometimes it can indeed be the path of greatest resistance. There are situations when moving yourself in from the middle takes time and the discipline necessary to learn about the range of options and their respective trade-offs. So, as much as I prize uniqueness and passion, in this case I'll happily raise my glass to those in the middle.

Cheers, all.

- - - - -

* On second thought, as I'm finishing this (first) glass, the "hot" alcohol taste is becoming somewhat overbearing. Dang...now I'm gonna have to go back to school just to polish off this stupid kit. ;-)

Thursday, January 14, 2010

Cloning: The sincerest form of flattery

The user interface for our flagship application (and its two step-siblings) is divided into halves, separated by a horizontal toolbar that can be dragged up and down to maximize the half you happen to be working in at the moment. The "middle child" of these siblings is my adopted "baby," but currently going through one of its quiet phases. Which means that I've been spending more time with the eldest of the brood.

One of my fellow programmers, used to working with another application, apparently tired of dragging the divider bar down to more easily work in the top half of the screen. So he scratched his own itch by adding a feature that pops the bar to the very bottom of the screen when you click it, and restores it to its former position when you click it again. He wrote that feature for the "oldest" sibling, but I catch myself trying to use it while working with "my" child...and have a "D'oh!" moment every single time. As I will until I set aside the time to clone that code. (Because you know how kids are: What one has the other wants--that sort of thing.)

And that, friends and brethren, is the hallmark of a good feature.

Wednesday, January 13, 2010

More application over-sharing

So, awhile ago--January, to be specific--I griped about "over-sharing" between Microsoft Office's instant messaging ("Communicator") and its email ("Outlook"). But then "my" client hired someone whose first name is strikingly similar to that of our office's alpha-QA tester.

I suppose, in a sense, it could be considered A Good Thing that I email the client more often than the person who finds the majority of my bugs. But the downside of the upshot to that is that Outlook's taken to auto-completing my typing with the client contact, rather than QA version of the name. Culitivating the habit of not saying in email what you wouldn't say in person isn't the worst thing you could do for your career. But the fact remains that clients typically don't need to know what's going on inside the magic software machine until there's something to demo. on the Beta server.

But the tie-in between Communicator and Outlook is such that any email address not recognized as being part of your organization is flagged with a blank white circle in lieu of the color-coded status. That's already saved me at least a few mis-directed emails already. So I thought it would be only fair to eat a heaping spoonful of my own words and give Microsoft Office credit for the color-cue that's spared my contact some "over-sharing" of a sort, and me some embarassment in the process.

Thanks, Microsoft!

Tuesday, January 12, 2010

Magic as the gate to technological progress?

It feels weird to write this, but I actually caught myself feeling a bit excited about a Microsoft product, to the point of wishing this had been news about a year or so back: Game creation tool Kodu comes to the PC as beta. (H/t @arstechnica for tweeting the link) Not excited enough, though, to plug myself into the Redmond Borg cube via Windows Live, not even as a throwaway account.

But that, IMO, is largely the mistake Microsoft's been making for the last, oh, ten or fifteen years: The power of that fractious box on or under the desk to make wonder and magic and even fun. Pimping Word to make it rival PageMaker was fun--there was a triumphant brand of magic in an achievement so small as a brochure that looked as polished as professional printers could make it. (That it was the kind of magic that made you look like a genius to your Marketing boss was even better.) The last "magic" I remember making with a Microsoft product was using PowerPoint 97 to create an animated birthday card for the twin 5 year-olds of my Australian pen-pals. The magic has long since been replaced by the frustrations of fighting software that thinks it knows better than I...that's assuming I can figure out where the current version is hiding the menu option I need.

Yes, yes, yes: Banging out arcane text incantation with semi-colons and curly-braces and weird-looking indentation is fun. But--even for me--it's not the only kind. And, frankly, I think that if this doesn't change, it'll eventually kill computing as we know it. Seriously, when was the last time your TV was fun? And that's exactly what the PC has become as Microsoft and their wanna-bes have tried to monetize everything that isn't nailed down or red hot. And when you monetize things, you can safely bet on hooking wallets through two mechanisms: Productivity (boring!) and entertainment (mindless!). In that light, Microsoft's bread-and-butter applications (Office, Exchange, and a host of high-end business applications like SharePoint on the "productivity" side) and Internet Explorer, MSNBC, XBox, Silverlight and, lately, Bing on the "entertainment" side.

But it takes a certain courage to give people the run of the 'fridge when you're used to spoon-feeding them. Maybe not the run of the whole pantry, mind you--but it's nevertheless a fairly startling move from a company that large.

Let's put the magic back into the computing experience. Because even at the risk of pop-cultural pop-psychology (and maybe generational self-congratulation besides), I don't consider the timing of the internet revolution a coincidence. That was largely fostered by people who grew up with or came of age with their hands on a keyboard, when TV sets served as computer screens, and not the other way around.

Monday, January 11, 2010

Another popup message for the Rogues' Gallery

I don't think I'm telling stories out of school when I mention that work email is now being filtered by the strainer attachment Microsoft created for the Exchange server. Today I actually had to set up my account when system email that should have arrived in seconds took minutes and the spam filter was the prime suspect. As it turned out, the anticipated email was merely fashionably late, but I had logged in, nuked every possible spelling of "Viagra" you can imagine, and logged out to the following message:
To complete the log off process and prevent other users from accessing your account you must close all browser windows and exit the browser application.
So...help me wrap my brain around this: In a world in which the web browser is increasingly standing in for the operating system, I'm supposed to bring down every other web application because I'm worried that somebody might see my spam??!! For cryin' in yer beer, if my grandparents were alive today, not even the one born when Victoria was Queen would judge me by the contents of my spam filter. (At least not after a week on the internet.)

Yes, I know that dissing Microsoft is fashionable in the crowd I run with. Nor will the Redmond Leviathan find too many defenders among anyone who's met the Blue Screen of Death at a particularly inopportune moment. Even so, you can't deny that the attitude embodied by that popup message shows a stunning level of self-importance. Even coming from Microsoft, which routinely pawns off their anti-piracy software as a "security update."

Sunday, January 10, 2010

Bugs vs. Features

If you've worked anywhere near software, the quip, "That's not a bug; it's a feature!" has probably long since gone stale. But every once in a great while I'm reminded of how fine the line can run.

Case in point: Operating system "hooks." These are analogous to "shortcuts" that allow privileged programs direct VIP access to into the operating system (meaning files, memory management, processing priority etc.). Naturally, the flip-side of this is the fact that what would normally be an exercise in shooting yourself in the foot instead blows your entire leg off. Despite such risks, the rewards can be compelling: Sometimes they're used as "temporary" (wink-wink) hacks to make a deadline; sometimes they're meant for debugging or reporting. Then, too, using such hooks can offer fantastic performance boosts for programs, which can be tempting if the OS vendor wants to shut out competing products on their platforms.

And so companies such as Microsoft and IBM will bake these shortcuts into their operating systems. Rather like any self-respecting just-inherited castle/manor will have a book or gew-gaw in the library that, when tipped, causes the fireplace to pivot to reveal a secret passage. (For everyone who now can't stop thinking about Young Frankenstein: Stop giggling, you--I'm being serious here. Sheesh.)

(Oh, and by the bye: Blucher!)

But eventually, some (if not all) of these shortcuts are found by people outside the company, who have some of the same temptations to use them as the folks who wrote the operating system. The only problem is that the operating system vendor can--either in the next version of in a patch--close off those shortcuts without warning. Then the software written to utilize them, at the very least, has its backstage pass revoked. At worst, it now has errors.

So the question becomes: Are these "hooks" bugs or features? Sometimes, context really is everything.

Saturday, January 9, 2010

Productive partying

(Feeling a bit like Cinderella--not only coming home after midnight, but also having lost an earring--in lieu of a slipper--during the festivities.) Now, to my way of thinking, holiday parties are only a good idea if your peeps already like to be together at least 40 hours a week. If, on the other hand the inducement for attendance is the carrot of free food/alcohol and the stick of political penalties for no-shows, I can't think of many more counter-productive business expenses.

FWIW, tonight's holiday party was probably the best so far: I haven't laughed so much in a long time, and the food was excellent. (My feet are protesting stridently, but, hey, dress shoes don't break themselves in.) Plus, the lost earring should be easily replaced...and my husband is, of course, always a prince. :~)

Friday, January 8, 2010

Frivolous Friday, 01.08.2010: Marco meets the mall

Earlier this week, my husband and I had to meet at Valley View Mall to have passport photos taken. As expected, I arrived later than he said he'd be there, and was cooling my heels while another customer was being waited on. Husband was nowhere in site. As he'd forgotten to charge his cellphone, texting him to learn his whereabouts wasn't an option. But almost immediately, my purely adult annoyance with a spouse's forgetfulness was replaced with a more characteristic disappointment when I realized: "Awwwww, man...we totally could've played 'Mall Marco Polo' by text!"

In case you're not familiar with the original "Marco Polo," here's one version. When my sister and stepsisters and I played it, we didn't have the "fish out of water" nor the "mermaid" gotchas. Partly because my Dad & Stepmom's pool had toe-barking steps, "It" typically wore goggles and was allowed to open her eyes when under water. Additionally, players standing within less than an arm's length of "It" were not required to respond with "Polo."

Fast-forwarding ~30 years, the "rules" I imagined for the texting version would run something like this:
  1. "It," of course, does not have to close her/his eyes, but prowls the store at an an unobtrusive pace. When the other player comes into the line of sight of "It," s/he becomes "It" for the next round.
  2. Neither player is not allowed to leave the store.
  3. When "It" texts "Marco," the other player must stop and type their general location, e.g. "Housewares" or "Childrens." After the reply is sent, s/he is allowed to continue moving.
  4. To discourage cheating by hiding in fitting rooms (particularly by players of opposite genders), "It" may at any time text "Fitting room." If the other player has sequestered her/himself in a fitting room, s/he automatically becomes "It."
  5. After the turnover of "It,"the outgoing "It" is allowed a full minute to make it out of the line of sight of the new "It" before the next round begins.
It should go without saying that if you're old enough to be allowed a cellphone, you're old enough to know better than to be indiscreet. That is the foremost rule.

Thursday, January 7, 2010

Thoughts on navigating the SAAS sea-change

For mainstream programmers, the sea-change brought by the internet as we know it translates into trading in what was known as "DLL Hell" for the headaches of cross-browser compatibility. That trade-off is probably a net win--although, having entered this trade right at the point of cut-over, I don't consider myself entirely qualified to make that statement. But at least cross-browser compatibility is a problem that can be dealt with in purely technical terms.

But a more complicated ramification is the change from businesses transitioning from using software installed on their own servers to what's known as the Software as a Service (SAAS) model. As examples, Salesforce.com and a slew of 37Signals offerings jump to mind. In SAAS, the customer is effectively "renting" the service from the vendor. From the vendor's perspective, there's the comforting aspect of control over the environment in which the software operates. Naturally, the flip side of control is the responsibility to keep it up and running. But enough revenue can pretty much lock in as much uptime as you can stand, which in theory makes it a virtuous cycle. Again, merely a matter of technology.

Alas, that reckons without both Marketing and Management. Please understand that I'm not using either term pejoratively. Both functions can easily make or break an organization of any size. The point is that very rarely does either like to say "No" to paying customers or potentially lucrative accounts. Which is roughly when life for those who actually make the software becomes interesting.

I strongly suspect that this is another one of those things that they neglect to teach in Programmer School, but the upshot of having to be All Things To All Customers is that the process has to be actively managed. Hacking a straightforward application with IF-THENs and SELECT CASEs only goes so far--and that typically not for as long as expected. On the other end of the spectrum, resorting to over-complexity (e.g., automatically creating a new database table to link any other two tables that could possibly be related) is a poor reflex to develop. Like most things, the "solution"--a term that experience prompts me to use skeptically--almost always boils down to a balancing act. Living at either end of that spectrum is a prescription for misery...assuming that the market doesn't euthanize the company first.

That being said, one sign of a healthy organization is constant refactoring. Meaning programmers--preferably working in pairs or small teams--who aren't penalized for taking a step back to combine redundant functionality or for herding hard-coded exceptions into configuration files (or database lookups). Personally, I think the refactoring question is a excellent one to raise if you're interviewing an SAAS company--either as a potential developer or a potential customer.

Wednesday, January 6, 2010

Bad programmer! Bad, BAD programmer!!

Progress has been made on a volunteer project I'm on. Namely that the decision was made to upgrade to the newer version of a software package, despite the fact that it's still considered to be in testing. My job for the next week or so is to figure out how viable the new version is, what customizations would have to be made to make it ready for prime-time, and generate an estimate of the time involved.

Alas, my very first instinct was to start hacking away (preferably having first squirreled the source code away in a shiny new version control repository). Until I ran into the first medium-sized bug while in the midst of trying to fix a small one. Which it clobbered me that the first order of business was setting up a bug-tracking project so that the folks I'm working for can tune in as the gremlins are discovered.

Just when I think I'm "bearded"--in purely metaphorical terms, nat'cher'ly!--enough to know better, I discover how easily I lapse back into rookie habits. Sigh...

Tuesday, January 5, 2010

Phoning in your business model

Of course, the big noise today was Google's unveiling of their latest iPhone killer. Or at least iPhone maimer. We definitely know that it's not aimed at the hacker/tinkerer demographic. Why? Because any geek-savvy marketer would have known better than to name it "Nexus," thereby dredging up memories of the baton-handing Star Trek film wherein Captain Kirk and Captain Picard meet in a spectacularly contrived plot. (And, btw, it took Kirk three full movies before he had to sacrifice the Enterprise; Picard's crew crashed it first movie out. Which, I ask you, is the better captain? Huh? HUH???!!!)

Anyhoo, before I work up a head of steam on that particular gripe, I should share the tiny epiphany to come out of today's smartphone ballyhoo. Namely how I noticed that phones really aren't about the phone company anymore. The cognitive dissonance is more extreme for the d'une certaine age likes of me, who grew up in Ma Bell's Monopoly, where Ma didn't have to worry about competition--only Ernestine. (Heck, I remember some of my rural relatives on party lines, come to that!) The physical telephone was an extension of the company (i.e. the brand itself) in that era: Hefty, but dependable as the next sunrise.

So it seems to me somewhat odd that the hottest phones are not designed by phone companies (Nokia possibly excepted, depending on your definition of "hot"). It's not AT&T service that's coveted; it's the sleek iPhone. Presumably much the same thing will happen with the Nexus One and T-Mobile, Verizon, and whoever else's hide Apple managed to chap. (Blackberry and Palm came into the phone business sideways, so such blanket statements, IMO, don't apply to them.)

Thus I have to think that AT&T, Sprint, T-Mobile, Verizon, et. al. have squandered the opportunity handed to them by the Wild West deregulation in the 1980s and 1990s (y'know, when we were calling them "car phones" and when an inquiry into pricing differences could mean opening your phone bill to find you'd been "slammed"?). This capitalist's dream, this near-mandate to innovate, to differentiate, was right there. Yet all they seemed to do--from my limited and somewhat apathetic perspective--was lay down more cable and build more towers. Congratulations: You've made yourself a commodity. Particularly given how you've trained us to expect equal opportunity suckage in terms of nickle-and-dime billing, cut corners, fine print, labyrinthine touch-tone menus--in short, the truth of Ernestine's "We don't care, we don't have to...we're the phone company!"

- - - - -

Coincientally enough, when I paused writing this to remind myself of which carrier(s) would be handling Nexus One traffic, I ran into this take on the unveiling.

Monday, January 4, 2010

The legacy of the lady in the rain

In her living room, one of my three or four grandmothers--such was the blessed state in which I was raised--had a plug-in ornament, shaped something like an old-fashioned round lantern suspended from the ceiling by a chain. Between its "caps" at top and bottom was a small Greco-Roman statue of a woman bathing in the midst of plastic foliage and the three or four classical columns that connected the caps. Slanting from top to bottom were clear plastic filaments that formed two rings, inner and outer. When the ornament was plugged in, a small light bulb illuminated the interior, while a nearly silent motor pumped mineral oil from the reservoir hidden in the bottom cap through the hollow columns to the top, where it ran in drops down the filaments in their alternating slants to give the illusion of a Classical beauty bathing in the rain.

What I've since been "educated" to consider "good taste" would not approve of that ornament, however pretty the illusion. But back then I was captivated by the illusion, even aware of the legerdemain involved in its making. As I watched entranced, I think it was my aunt who jokingly warned Grandma, "Careful. Pretty soon she'll be taking it apart to see how it works." Now, while I wouldn't dream of doing that to a gadget I couldn't call my own, I still flatter myself that it's one of the truest statements made about me, ever.

The above self-congratulatory navel-gazing popped into mind on the drive home tonight, in the wake of wondering why the heck I persist in a trade so prone to (cough!) "rightsizing" on another continent. If my employers are gracious enough to let me slip out long enough for a math class, why in my right mind am I not leveraging the education I've had thus far toward a new career in law or upper management?

Except that laws and regulations and organizations/institutions large (bloated?) enough to have "senior" management can't be taken apart--meaning, broken down to their minimal functional elements. And, more to the point, they can't be reassembled or hacked (in the good sense) into a form that makes them useful to the moment and purpose at hand. Why would I ever want to work with that when there are computers and software to hack? Talk about a no-brainer...

I was fortunate enough to visit that particular Grandma within a few weeks of her death. Behind Grandma's hospital bed--set up in her living room to honor her wish to not die in a hospital--hung the lady bathing in the rain. Likely, only the aunt who made Grandma's exit from life as comfortable as possible knows what became of the lady And she's long since passed on herself. But I--perhaps over-nostalgically--like to think that the lady lives on, in my case not so much ornament as a totem of what it means to be a geek.

- - - - -

Coda: The internet being what it is, I was understandably more than a tad nervous at the results of punching "mineral oil statue pump" into Google, but the good news is that I learned that these gadgets were called "rain lamps." You can find photos here. I recall the one in Grandma's living room being smaller in scale and white, but the general idea is spot-on.

Sunday, January 3, 2010

Looking out for Number Two

Lately, I've been on a history kick (again) in reading, but I'm definitely a bit underwhelmed by Douglas Boyd's Eleanor, April Queen of Aquitaine. (Far too many liberties taken in guessing the motivations and thoughts of the principals, for one thing. If I want that, I can just as easily watch my VHS copy of The Lion in Winter for the umpteenth time, thank you very much...)

But Thomas Becket has now arrived on the scene to make himself indispensable to one of the most powerful of power couples Western History will ever know. And to me, 850 years or so in the future, does me the service of reminding me that watching the person at the top of an organization--who has a vested interest in remaining inscrutable--isn't nearly so informative as watching her/his most indispensable person. Number Two's first priority is guessing Number One's priorities, and s/he is often forced to be more obvious. And odds are that the failures--with their inevitable consequences--are more instructive than the successes.

If you're like me and don't care to participate in politics (but can't afford to be ignorant of them), keeping part of your attention on the antics of Number Two is one of the most low-bandwidth ways of staying plugged into the office power-plays. Not that it should be the only plug-in point, because Number Twos typically rise and fall more rapidly than number one. But it does save a lot of cycles trying to figure out Number One on your own.

Saturday, January 2, 2010

Burned by my own firewalling

The perils of having to maintain multiple logins for multiple systems, applications, or web sites are fairly intuitive: More time/headache for the system administrators and increased security risks as people resort to tacking sticky-notes to the underbellies of their keyboards. But rarely is the solution to a problem found at the other end of its spectrum.

In this case, the spectrum's other end is the Grand Unified Login. As the Googles and Microhoos continue their parallel borgification of the functionality folks find important (web mail, blogging, sharing photos, etc.) and initiatives like OpenID move forward, the flaws of the One Login To Rule Them All ethic become apparent. (And those quite apart from bloggers mixing cheesy physics, Star Trek, and Lord of the Rings metaphors in a single paragraph.) Obviously, in the single-login scenario, a single hacked user name and password compromises multiple applications.

But more than that, it doesn't reflect the reality that many--if not most--people partition their existences. Mixing personal and business email, for instance, is typically A Bad Idea. Maybe I'm guilty of firewalling too much, but I also don't mix hobbies (including programming/tinkering) and what I do for others. Mainly because each context has its own minimum standard of polish. Given that I'm typically working on at least two things at any given time, I've already run into the issue of being logged into (Google-owned) Blogger as my more "professional" self, but needing to grab info. from a hobbyist Google Group. Logging into the group automatically logs me out of the blog interface because I can only be one "me" at a time, at least so far as Google is concerned.

If I were feeling optimistic, I'd predict the inevitability of a Hegelian synthesis, wherein people would create multiple unified logins to reflect the spheres of their lives. Except that, socially, we tend to be a messy bunch--not just in terms of "our" peeps, also in terms of context. E.g., if a co-worker is also a friend, that's two contexts for the same person. Multiply that out by the separate (or perhaps interlocking) social circles of your life and the people who are part of them. The multi-dimensional Venn diagram required to model those networks makes my head hurt. So I think that the notion of single sign-on is, for that reason, more than a little naive--and in practice could lead to more complexity than the problem it was intended to solve.