Thoughts on computers, companies, and the equally puzzling humans who interact with them
Thursday, September 30, 2010
Three Beers to Debacle
But, as we all know (or bloody well should), "distracted" isn't much of an improvement on "drunk"--which apparently applies to computing just as much as driving.
I was more or less thwapped upside the head with this lesson today. On both sides of the noodle.
In the first case, one of the power-users of "my" application managed to make a person completely drop off the application's radar by performing two steps out of sequence. In the second, one of the office's power-users broke the QA edition of the same application by deleting perfectly good files (in addition to the ones being put out to pasture).
What you need to understand is that the first power-user has literally been operating the software in question longer than I've been working on it. The second power-user doesn't normally walk on (proverbial) water so much as hovers above it (not unlike the just-decloaked Klingon Warbird in Star Trek IV).
But in both cases, what either user was being asked to do falls under what we (in software and other flavors of engineering) call "edge cases"--in other words, situations that just happened to pick today to extrude themselves out from under the short ends of the Bell curve.
Sure, you can write it off as bad luck. But the takeaway is that power-users are typically granted their (super)powers for very good reasons--the main one being that they're really busy. And, as we all know "busy," by definition, equals "easily distracted." So never assume that your users--even those who use the application month-in and month-out--can afford to give it (or any "Help" instructions) 100% of their attention 100% of the time. That way lies disaster...at least if you don't have a painless (and even more fool-proof) way to fix things.
Wednesday, September 29, 2010
Another case of no response trumping a bad one
The backstory is that I had an oddball question for a company, and--it being after hours--the most convenient way of asking it was through their website's "Contact us" page. That included a drop-down list for me to designate the general nature of my question/concern, and (as is usually the case) it was a choice of "least off-the-mark" rather than "most appropriate."
When the reply arrived during business hours the next day, it was disappointing to find that the company in question had taken eighteen hours to send a canned response that never so much as acknowledged the original question, much less answered it. Its purpose was to induce me to waste more of my time on another page on their website.
First off, if there's no functional difference between a "Contact us" form and an FAQ (apart from an eighteen hour delay), why even waste bytes on the pretense? But more importantly (IMLTHO), if a "technology" company that makes its bling converting knowledge workers into cash can't grok that difference, who in their right mind would want to do business with it?
Maybe it's just me being weird again, but I actually would have shrugged off a non-answer more readily. Sadly, it's been so commonplace for the past decade or so that blogging about that would be the nadir of banality. But in this case, I think the lameness highlights the fact that, even in the human world, lack of response is actually better than one so organizationally self-involved.
Tuesday, September 28, 2010
Something lost in translation in the Language Wars
The office's Powers That Be are apparently on another one of their "standardization" rolls. Specifically, this means "upgrading" the computer language(s) in which our bread-and-butter is grounded. Based on empirical experience, this means another round of genteel food-fights over language options.
Cynically, I realize that such fights are rarely settled in some sort of meritocratic feature-to-feature smackdown. Not even when they are settled at all--meaning Management fully groks that it has finally run out of road down which to kick the proverbial can. Even when you (like I) are lucky not to be working in a Dilbert-esque scenario where the choice is made based on some alpha-suit tripping over a trade magazine during an emergency pit-stop in a non-executive restroom.
Sadly, personality is--and always will be--a factor. Up to and including passive aggression, prima-donna tantrums, skunkworks re-writes, sabotage, and certain uglier aspects of tribalism that (mercifully) stop somewhat short of cannibalism and/or rituals that made Indiana Jones and the Temple of Doom so eminently mockable.
There is a bright(er) side, however--even above the bits about cannibalism and Spielberg schlock. At least, if you're not what amounts to a computer language hipster. (If that's the case, I can't help you out here. Sorry. There's probably a case to be made in your favor...but you've never heard of it. ;-P)
But. If you're like me, and don't consider yourself in the business of being the unpaid beta-tester of a new language, or--perhaps more aptly--are just plain skeeved out by your fellow programmers' sensibilities, you might--might--have a secret weapon in your arsenal.
That secret weapon, friends and bretheren, boils down to tool-sets. Granted, geeks are quite good at scratching their own itches. But given the choice of cranking out great gobs of code in a sexy new language and stepping back long enough to breathe--by which I mean consider flowers-and-dinner niceties like intelligible API documentation, source control, backwards-compatibility and the like--I think we know what most language alcolytes will choose. Thus, itemizing the costs associated with restructuring the development process around an untried toolset shouldn't hurt your argument, particularly when the new "toolset" revolves around a Notepad-like text editor and a glorified command-line. Unless, of course, your current tool-set also revolves around a Notepad-like text editor and a glorified command line. (In that case, your argument's basically hosed--and may Cthulu have mercy on your soul.)
Understand that I'm not knocking new languages simply because they're new. But toolset support is important--just like anything you have to spend a couple dozen or more hours with a week is important. And if you believe in meritocracy--as many geeks seem to do, at least when it doesn't involve their favorite platform--then you absolutely have to consider toolset support a badge of legitimacy. Why? Because the language itself does not define real-world usefulness, any more than "date night" defines a relationship week-in and week-out. And, really, when Don Juan leaves the toilet seat up and his socks behind the couch...does the candlelit wooing really matter? Me, I think not. YMMV.
Monday, September 27, 2010
Metaphor misfire?
In today's case, the billboard had the former down, but the slogan, "Schedule an appointment for your finanoscopy." (Note: I may be slightly misquoting that, because my brain was--I'm sorry to say--pretty much evenly split between being a responsible driver and "Wait...what?...Seriously?!"
Correct me if I'm wrong, but any word ending with "oscopy" pretty much implies that something cold and metallic will be inserted, well, somewhere the moon don't shine, y'know? At that point, why not just work in a mammogram meme just for the ladies, while you're at it?
But the point here is not to ridicule a local advertising effort--really, it's not. The point, rather, is to emphasize the power--and, thus, responsiblity--of metaphor. If, indeed, this chapter in the history of marketing is All About "storytelling" rather than data--because Cthulu forfend that the average consumer be asked to blow the dust off her/his left brain--then metaphors need to be chosen with the utmost and scrupulous care. Namely because when you try to attach yourself to something, it, by definition, attaches itself to you.
Sunday, September 26, 2010
Passing the hats
If you made the rounds of the office now, you'd notice hats still perched on the credenza above AG's desk...but not all of them. Others now dwell in other cubicles. Which is as it should be. Because this game is definitely not a "S/He who retires with the most hat wins" proposition. My Mom, who ran part of a hospital lab for something over fifteen years, considered an overly busy manager a bad manager: "The best kind of supervisor should have nothing to do," she claimed.
At the time, I think I managed to stop my eyes from rolling. Because, after all, didn't weren't non-busy supervisors the kind who sat in their offices, keeping themselves amused for 40 hours a week while everyone else did the work? In my experience, a few have, but they are very, very few. So it looks like Mom may have been onto something after all. I hate it when she does that. ;-)
Handing off the hat--along with the added value it represents is a scary thing. It's only been in the last few years that I've come to understand it. (Slow learner much???) But there's no way for the junior members to grow without wearing them (in front of everyone). And, more importantly, there's no way for managers to grow without passing them off.
Metrics and motivation: Thoughts from two centuries ago (belated Sat. post)
The story dates from the late 1700s and early 1800s, when Britain was using Australia as a dumping ground for its prison population (that population itself a symptom of economic disruption, which is another post for another day). Fairly recently, that process had become somewhat more expensive, what with those pesky colonists in the Thirteen Colonies rebelling and thus closing off what any right-thinking Brit would have considered a natural human landfill. Moreover, it had been a potentially profitable landfill, as prisoners, once landed, could be sold into a form of slavery known as indentured servitude.
Shipping prisoners to Australia, on the other hand, was a more expensive proposition because of the distances involved. Also, the economic dynamic was, broadly speaking, quite different. Although women--prisoners and others who became Australian by circumstance--were put to work in state textile factories, the larger plan was for convicts to become colonists and laborers. Thus, the reward system for the transport system had also been dramatically altered.
The British Government, having better things to do with its money--even when not squabbling with Napoleon--farmed out the transport to the lowest bidders. The result was predictable, culminating in the scandalous arrival of The Second Fleet. By today's humanitarian standards, England had actually progressed remarkably in the previous century. At the opening of the 18th Century, the hanging of brother and sister thieves (Michael and Ann Hammond) was considered unremarkable, despite the fact that they were 7 and 11 years old. The same sensibilities that were ending slavery and the often-horrific "treatment" of mental illness were brought to bear on the treatment of prisoners.
The British Government's initial reaction was less than satisfactory. Those responsible for profiting from death, disease and misery were rarely tried and never convicted. Requiring the contractors to subcontract a surgeon had the predictable results in an age when "doctors" drew far more social and professional respect than "surgeons," whose profession evolved from barbers and limb-amputators.
Mortality rates dropped only with the introduction of independent oversight, regulation, and a most important change in the economic dynamic: Transport contractors were compensated based not on how many convicts were shipped out, but how many arrived alive and fit to work. In other words, the metrics changed, and results followed rather speedily.
Of course, being the cynic I am, I had to wonder how many of the convicts who were delivered had actually been shipped. After all, the British Navy wasn't above "impressing" captured American sailors into their service even when not officially at war. And, in case that smacks too strongly of American moral superiority, look up the history of the term "shanghaied" and be glad you live in this century. If I had to guess, though, I'd say that such chicanery would have been more trouble than it was worth, and that the metric had been chosen rightly.
One other point about motivation that I thought worth sharing comes from a little later on in Australia's colonial history. Very few convicts were ever actually jailed, because the whole point was to make the place turn a profit. And, as people don't labor very well after you hang them, lashing was the proverbial stick. However, much like our penal system, time off for good behavior was the carrot. (At least for men; women could marry their way out of their sentences.) Even among a "criminal" population, carrots proved more effective. Which, personally, I find a hugely encouraging comment about the human race, particularly coming from a time and place that put a much lower price on human life--not to mention its quality.
Friday, September 24, 2010
Frivolous Friday, 09.24.2010: "Sign of the times"
There's this friend of mine. Let's just call him "A." Partly because I promised not mention names, and partly because he might just enjoy the James Bond MI6 cachet. (Or, alternatively, the oblique "Men in Black" special agent riff. Or both.)
Anyhoo, A. not only is a prolific user of Foursquare, but also set up his Twitter account to re-post to Facebook. Which is where something like the following exchange took place (names and places changed to protect anonymity):
A: I'm at BlahBlahBlah (1234 Yadayada Street, Somewhere) http://4sq.com/wH@+3V$
FB Friend #1: Holy crap! So am I! Which table are you???
A: Oh, man, I think I had my back to you the whole time. Sorry about that, dude!
FB Friend #2: didn't you see [another friend] and i in the back waving????
FB Friend #3: Really, wth? Be more observant next time!
Me: Hahahahahaha...that's just ludicrously funny. Thanks for the laugh, all!
Wow. I mean, if that isn't a sign of our location-aware social media times, what is, I ask you? So I immediately messaged A. to ask for clearance to blog about this--oh-so-excited because, as I put it, "I just thought it was hilarious in the 'you can't make this up' kind of way."
Except that, yes, yes you can make that up. As it turns out, it was all part of a running joke. In reality, one of the above friends lives across The Pond; the other two live five states away.
Needless to write, I was severely abashed to learn how thoroughly I'd been pranked by an inside joke. But A.--bless his heart--aptly noted, "Actually, I think it says something about the age we're living in that this is even possible. That itself is worth a story. "
Too right you are, A...too right you are. Thanks, man. (P.S.: If you're gonna keep bein' all profound 'n insightful like that, you're in mortal danger of being asked to guest-blog one of these days! Don't say I didn't warn you... [evil grin])
Thursday, September 23, 2010
Again, big #fails trump little ones
The scary thing was, though, when I spot-checked the total number of records returned, I was only off by three, out of over seventeen hundred. The upshot was that I wasted about a half-hour poking the data, looking for weird edge cases that could generate three extra records. In other words, it's like taking a powerful magnet to find the proverbial needle in the haystack, only to find that you're looking in the wrong haystack. D'oh!
Yes, in most situations, failures--particularly of the "quiet" genus and "incognito" species--are preferable to their EPIC cousins. This is not one of those situations. Code that utters a faint "eep!" as it fails to its fainting-couch will, more likely, be far more costly in the long run than code that has a screaming, rock star hissy fit and trashes the hotel room drywall with the opening band's guitars after it finds a brown M&M.
Moral of the story: Cherish your error-messages. Preferably in the QA stage or before.
Wednesday, September 22, 2010
A headspace that only Zaphod Beeblebrox could love
Backstory: Our senior QA person was out for a couple of days, and I had some code due to be shown to the client. So I more or less commandeered our junior QA person to cover my back--figuring that it was duplicate effort--but, hey, he's gotta learn sometime, right? Plus, testing your own code is like proofreading your own writing in that, with a few days' distance, you're actually fairly qualified to do it yourself, simply because you're no longer heads-down in it.
As rules of thumb go, it's not a bad one. Except when you try to fix bugs as you find them. (Or, more aptly, as the ambitious junior QA person finds them.) Why? Because you've gone from reading the dashboard dials right back to popping the hood and tinkering with the engine. At least if you're anything like me, you can't. And, as much as I pride myself on being a weirdo, based on my observations, I won't be surprised to find myself in the majority on this one.
Moral of the story for managers (and other assorted geek-herders): This is one of those instances where multi-tasking is not only a waste of time but hugely counter-productive besides. Don't go there.
Tuesday, September 21, 2010
The ghettoization of the web browser?
Here's my thinking: Given enough development horsepower and a certain amount of market traction, any networked service that can be monetized can probably afford to develop Android, Blackberry and iOS versions of its software. In other words, leave the traffic and noise and smog and crime of the web for the application equivalent of a gated community in the Hamptons. In today's case, folks who had installed applications to interface with Twitter were not affected, only those who visited via its lowest common denominator, the web browser.
One big strength of the web is that it often makes it easy to look passably good even in the shallower sections of the learning curve, particularly if you can afford the tools. (Aside: Think of the tools as what one of my college friends called the "boom-chicka organ." If you remember those from the 70s and 80s--complete with marimbas and every sound effect but a cowbell--my commiserations. I'd like to block those memories, too, but it just ain't happenin'...)
One big weakness of the web is that it often makes it easy to look passably good even in the shallower sections of the learning curve, particularly if you can afford the tools. In short, the low barrier to entry drives a need for product/service differentiation. Enter the smartphone and their various application bazaars and it's not difficult to imagine a reprise of what happened to the urban landscape when the automobile and little-boxes-on-the-hillside-made-of-ticky-tacky became minimum standards of living in the American psyche.
As a metaphor, that probably only goes so far. I don't think that the riots of the 60s are likely to repeat themselves within the browser. But there's more than a little bit of egalitarianism baked into the ethos of the web. Gated communities not so much. That loss of egalitarianism would, in my opinion, be a grave loss to us all, no matter where we place our "Welcome" mat.
Monday, September 20, 2010
Of light fixtures and illumination
It's probably an optimal place for that kind of lighting fixture, but it looked weird for two (conjoined) reasons:
- Its style was the classic "coach lantern," wider at the top than the bottom, and
- It was--like I said--above the door rather than beside it.
Yet a 21st century light bulb is shielded from the elements with a relatively inefficient (from the standpoint of surface area to volume ratio) 18th century design...and is expected to be placed at a level easily accessible for the servants to light or snuff out on a daily basis. Because that's what "normal" is supposed to look like, dangitalready.
That, gentle reader, is why thinking outside that benighted box is just so bloody difficult: You have to know that the box is there in the first place. There's just so very much "normal" to go around, and the "weirdos" who install porch lights in places that call "normal" into question aren't too thick on the ground.
Sunday, September 19, 2010
Adjective or adverb?
A.) They're buried by other mail before I play catch-up, or
B.) Through some nuance of Thunderbird filtering, they're filed in an out-from-underfoot folder.
Which comprises my excuse--albeit longwinded--for not paying forward this Harvard Business Review piece, Misfit Entrepreneurs, from [ahem!] July. Lovely thoughts therein about the misfit's secret weapon: Vulnerability. To wit: Where most are worried about fitting in, the concept is lost on the misfit. Thus are revolutionary companies born. At least going by the blog's name-dropping.
Sadly, on my first read, I caught myself mentally correcting "Ironic that all those enterprises were begun by entrpreneurs trying to do something different." Thanks to Apple, the correction from "different' to "differently" was pure reflex. (Stupid Apple Marketing Dept.!) Only a fractional second later did I realize that the sentence was, in fact, grammatically kosher. A couple of seconds thereafter, I thought about how wide the gulf can be between "doing something different" and "doing something differently."
Granted, they both drive change--and, I would argue, in most cases progress as well. But "different" vs. "differently" is the proverbial difference that makes all the difference.
Saturday, September 18, 2010
Another argument for the importance of science education
Problem was, rinsing with the blue flavor is both an offensive and defensive proposition--i.e. strenghening the natural enamel defenses of the tooth while waging genocidal chemical warfare on its bacterial besiegers. Something I hadn't realized when I picked the blue bottle off the shelf. So to distract myself from the scorched earth this stuff was making of my tongue, I fished the empty green bottle out of the bathroom waste-basket and compared labels.
That's when Dennis came in and looked at me a bit quizically. My 30 seconds were up, so I gratefully spat out the stuff, then asked (semi-rhetorically), "What's the difference between 'Rinse' and 'Mouthwash'?"
Without missing a beat, he said, "Marketing."
Good answer. At least from the layperson's perspective. After all, the household pool of dentistry and organic chemistry knowledge is neither wide nor deep. Thus, if we go by Clarke's third law ("Any sufficiently advanced technology is indistinguishable from magic"), then perhaps it's fair to say that "Any insufficiently understood technology is indistinguishable from marketing." If true, it's sobering.
Friday, September 17, 2010
Frivolous Friday, 09.17.2010: Software CEOs as super-heroes
I wonder whether Steve Jobs might have made a grave error this week by chalking up a "You can't make this stuff up" kind of news item. Because it's all too obvious now that the spectacular market dominance of Apple derives not from leveraging decades of outside-the-mainstream acumen, but, rather, from Jobs' own formidible superpowers. Which can only mean that the fortunes of other brand-name software companies are likewise driven by superheroes and superheroines of varying degrees of...errrrrr...superness.
Alas, given the fractiousness of industry, I don't think that we mere mortals can bank on a DC Comics "Justice Friends" scenario--nor, alas, even the assumption that all are working for good. Except, naturally, The Googlers. (In light of tonight's revelations, that "Don't Be Evil" motto takes on whole 'nuther implications, now dunnit...huh? See? Told you so. Remember, folks: You read it here first.)
Anyhoo. Based on the last thirty years or so, we can reliably piece together dossiers of the more notable super-heroes and super-villians--yea even the super-moral-ambiguities. I fancy they'd look something like the following:
Name: Steve Jobs
Secret Identity: The Once and Future CEO of Apple Computer, Inc.
Superpower(s): Mind-control to the point of Stockholm Syndrome-like behavior in his minion-customers--a state typically induced with sleek-looking gadgets and annoyingly slippery interfaces.
Favored Combat Weapon: (See above)
Sidekick (former): Woz, for some time widely regarded as the brains behind the outfit.
Archnemesis: John Sculley
Name: Bill Gates
Secret Identity: Dark Lord of the Evil Empire, albeit sometimes conflated with The Borg
Superpower(s): Relentless assimilation of competing technologies. FUD (Fear, Uncertainty and Doubt).
Favored Combat Weapon: Sticker-gun capable of plastering the Microsoft logo over any software product concept with so much as a hint of commercial viability.
Sidekick: Steve Ballmer (largely for comic relief)
Archnemisis: Richard Stallman
Name: Larry Ellison
Secret Identity: El Supremo Presidente and CEO for Life of Oracle Corporation (See also: What Keanu Reeves can expect to look like 20 years from now)
Superpower(s): 1.) A highly selective form of mind control that causes CIOs to fork over gazillions of dollars for great gobs of database code that require a batallion of DBA-nannies 2.) Spider-like patience and perserverence in acquiring rival and/or complimentary companies
Favored Combat Weapon: Duct-tape (a custom-made polymer comprised of platinum, diamond-dust, shredded first-round Berkshire-Hathaway stock and the sheer futility of resistance)
Sidekick: Mark Hurd
Archnemesis: Oracle's own business practices
Name: Larry Page and Sergey Brin (they share the same brain, doncha' know?)
Secret Identity: Lords of The Google
Superpower(s): The ability to found (another!) web search company during of the dot-com meltdown and scare the living beejeebers out of everybody else within a few short years
Favored Combat Weapon(s): 1.) Knowing how to find absolutely anything (and, oh, btw, your belly-button fuzz is a light grey-purple color today) 2.) 20% time
Sidekick: The little green Android dude
Archnemesis: The government of The People's Republic of China. And--far more amusingly--Rupert Murdoch. (Way to sweep the "judging people by their enemies" category, guyzos! ['doffs chapeau])
Name: Mark Zuckerberg
Secret Identity: That snot-nosed brat who started Facebook
Superpower(s): The ability to drag down entire national economies with time-wasting inanity (see also: Farmville), and inducing his acolytes to recruit other acolytes with completely meaningless "gifts" and/or sheep-throwing
Favored Combat Weapon: Peer pressure
Sidekick: The other three snot-nosed brats who started Facebook...but you've never heard of
Archnemesis: MySpace...not to mention everybody with Web 2.0 dollar-signs in their eyes
Name: Evan Williams and Biz Stone
Secret Identity: Wait...y'mean there are actual people behind Twitter? (And here I thought it was all bird-powered...)
Superpower(s): An infinite capacity to capitialize on celebrity-driven ephemera and the ever-imploding attention-span of the connected world
Favored Combat Weapon: 1.) Sparkly balls of tin-foil 2.) The "Retweet" link
Sidekick: The Fail Whale (nat'cherly!)
Archnemesis: Sesquipedalians
Thursday, September 16, 2010
Rationalization--now with extra navel-gazing!
On one hand, I suppose the fact that I haven't had to mess around too much with the code in question in five years is a good thing. And the fact that some is still recognizably mine from as far back as 2002 is slightly better.
But, on the other hand...daaaaaaaang.
Now it's time for a major overhaul--and lemme tell you, they don't make enough whipped cream for that slice of humble pie! I wasted something between fifteen and thirty minutes chasing a "JavaScript" bug that had everything to do with the fact that I haven't used an "<input type="image"> tag (preferring <img> tags with onclick events) since something like 2003--so long ago I'd forgotten all about that option. (For the uninitiated, the former option uses an image to submit a form on a web page. On my web page, the upshot was that the form was being submitted twice.)
And, looking beyond the code itself to what it was trying to accomplish, I squirmed a little to find loose ends that should have been tied off at the first run.
Which, in aggregate, made it (momentarily) tempting to hang up the keyboard and look into other career options. Except for the fact that it's not 2002 and I would tackle this work much differently in 2010. Which, I trust, is a pretty reliable indicator of professional growth. Or so I like to tell myself.
Wednesday, September 15, 2010
Government snooping - a programer's view
Best friend H. posted Time's "What Your Cell Phone Could Be Telling the Government" on her Facebook page. H. is--and will always be--a far more experienced and competent programmer than I, so I can only assume that posting it from her phone was an act of supreme irony.
I suppose on the Civics level, geo-tracking and wire-tracking are equally repugnant. But from a Computer Science level, there's a difference. And the reason I consider geo-tracking worse than good old-fashioned wire-tapping is that the data can be so much more easily hosed by those who have an interest in hosing it.
The difference boils down to this: If you're snooped while conspiring to do something baaaad, you're pretty much dead to rights. The data's there or it's not--it's just that binary. But...need an alibi to inject that bit of "reasonable doubt" into your trial? Send your phone elsewhere with an accomplice. Enter ambiguity. Which is something I like to do when organizations who haven't earned my trust are a little too interested in my...demographics. (That's how Microsoft has 110 year old programmer on file at MSDN thanks to their nosiness--and the fact that their drop-down list goes back to 1900.)
Now. Were I independently wealthy enough to become a professional mischief-maker, it might even be amusing to pick up a second (or third or fourth...) do something like the whole Amelie garden gnome schtick. Just for the sheer pyromanaical joy of watching another data point go kablooey.
In the meantime, however, I despair at the lack of brains involved, It's a simple signal-to-noise proposition, and there's no way around that. Jack Bauer codswallop aside, you don't catch the information that will stop the ticking bomb by floating a hundred driftnet. Just like you don't thwart another 9/11 by shaking down Medal of Honor recipients. Bad data, folks: It just makes the errors that much more expensive. Because doubling the powder when the gun's aimed at your own foot is not what I consider smart.
Tuesday, September 14, 2010
Deja vu fashion and computer languages
Yet there's a lot of it loitering about on web servers, simply because it, for so long, ASP was a stable platform. One could upgrade to the next version without fear of having to re-write existing code. Then Microsoft broke that tradition with .NET 1.0. And--as I understand it--broke it again with .NET 2.0.
Understand that the initial cost of rewriting and debugging and testing so much code was, by itself, daunting. Thus, the tendency to hang on to the existing code-base, particularly when there was no guarantee that Microsoft wouldn't pull the same shennigans with the heir to 2.0.
Sadly, while it seems that hardware (e.g. Commodore-64) and applications (i.e. games like Tetris, Pong, Pac-man, Super Mario Bros.) can have a second life via nostalgia, the same doesn't seem to be true of the languages that originally powered them.
That makes me sad. It's not the demise of the language so much as the ignominy that precedes it--and the lack of an honorable memorial. Which, I suppose, exposes the fault line that runs through some--maybe even most?--programmers: Infatuation with the new and shiny on one side vs. respect for craftsmanship on the other.
Monday, September 13, 2010
Penance
So tonight has largely been spent scraping together information for an email that--hopefully--will not be misuderstood by the "client" of some volunteer work. (This despite the fact that I know I don't have my brain stretched all the way around the subject matter.) Only tomorrow will tell whether said "penance" has been done in vain.
Sunday, September 12, 2010
When commodity leads to scarcity
In a bit of serendipitous coincidence, I glanced at the bit of Shopper that tagged along to our visit with the bees (for a planned hive-combination that didn't didn't happen after we found a viable Queen). Apparently, you can also book a bus tour to a mystery destination. On the surface, that's kind of an alarming proposition: Give your money to strangers, climb aboard their vehicle and let them take you wherever they feel like going. (Umm, thanks, but I'd just as soon save that experience for my senility, if it's all the same to you...)
But, after further review--apparently AWOL from Chicago today--maybe there's a new value proposition not available, say, ten or fifteen years ago. When the world shrinks, there's correspondingly less room for mystery. When Dennis & I went to England in 2007, we pre-emptively attacked its possibilities by way of Fodor's, Rick Steves, maps of The Tube, the satellite view on Google Maps, and an OpenOffice spreadsheet of what venues were open when. (For the record, London still pwned us But Good with streets that changed names every few blocks, Underground stations lying about which streets they were on, the Inns of Court, and Imposter Statue, who turned out to be Not Admiral Nelson in a place that was Not Trafalgar Square.)
Fast forward to 2010, and even bijou little Annapolis Royal has Google Street View. Which has its comforts--most notably peace of mind when you're booking a place to stay. But removing the risks and leaving the mystery--that's pretty tough to pull off. The industrial and information ages were All About making commodities of formerly scarce things. Mystery, like privacy, is one of the notable exceptions.
Friday, September 10, 2010
No Friday or Saturday posts
I received confirmation a bit earlier today that a friend of some pedigree--Best Man at our wedding, Dennis & I have both known him since our late teens, etc., etc.--will be rolling into town to spend part of the weekend chez fivechimera. Here's to everyone having a good start to the weekend: Will check in sometime Sunday. Try not to dance all the nap off your Blue Suede Shoes while I'm gone, 'k?
Thursday, September 9, 2010
Well, well, well...
But here you are anyway: Apple relaxes restrictions on iOS code, iAd analytics. Could someone, perhaps, be getting a wee bit nervous?
Wednesday, September 8, 2010
Connectivity is crack
Tuesday, September 7, 2010
Mixed blessings & feelings
It's true. (For context, this is like catching Mom/Dad slipping unwanted broccoli to the dog--just like you did Back In The Day.)
Fast-forward to today, and the saving grace is that each of those classes is but a mere sip of Java--nary enough to dissolve a sugar cube. Translated: I still have some idea what I was thinking. And, so, because I had time to fill while waiting for a known distraction, I took advantage of a NetBeans feature that looks at a function's input and/or output parameters and generates the skeleton of the comments for that function. It's one of those features that I learned about long enough ago that I don't recall where, when or how. Only today, though, did I think to have mixed feelings about it.
IMO, the time when that feature is optimally useful--at least in terms of "flow"--is when you've just written completed the outline of the function in question: List of inputs, output type, and any exceptions (for lack of a better term, errors) it could raise with other functions that call on it. Problem is, in most cases NetBeans picks up on the fact that your function is still incomplete (i.e. hasn't specified the promised value to be returned or contains no code capable of throwing exceptions). That's when the little red exclamation point ("compile error") shows up on the periphery of the user interface, basically sticking something irritating into the corner of your eye. Just like it was intended to do.
And thus the "flow" is ultimately subverted. The red exclamation point tickles away at your eyeball until you've fleshed out the code enough to humor the compiler, which has two potential downsides: a.) The chances of losing the birds-eye view is fairly high, and b.) Writing enough code to humor the compiler is not the same thing as writing complete or true code. Or...you put up with it until you finish that portion, which has two potential downsides: a.) Training yourself to ignore that warning, and b.) Making it that much more difficult to find a real error once all the code has been written (i.e. there's a lot more of it). Or you could just skip commenting until the first draft of the class is written.
Heresy. Blasphemy. Sacriliege. (C'mon, already: Next thing I know, somebody'll say that The Monkees played their own instruments too...)
Anyhoo. Do I have an actual, constructive suggestion for improving this facet the (already quite good) NetBeans UI? Or, better yet, plan to put my bling where my blog is and write a better IDE? Oh, heck no. Left to my 'druthers, I could be trusted to stick to a certain comment format that could then be parsed to generate code-skeletons. It makes a certain sense, pseudo-coding before coding. Unfortunately, that still leaves the compiler--red exclamation point--problem if you jump the shark and punch whatever button generates the function "skeleton." (Then, too, building a feature to my preferences does not put anyone in mortal danger of said feature going viral.)
Rather, the point of this is to drag yet another highlighter tip over the Law of Unintended Consequences. Because, in this case, the outcomes are so mixed that I'm not quite sure exactly what behavior consequences were originally expected. But it's pretty easy to see why some programmers prefer to spend their days achieving gestalt with hardware drivers or databases or in the OSI "seven layer salad" or what-have-you. As inscrutable as such critters seem to non-programmers, they can jump in far more predictable ways than human beings.
Sunday, September 5, 2010
Intersection
I'd be finished and onto something else by now, except that we needed to check on the bees and upgrade one "nuc" of Russian/Carniolan bees to a full-fledged hive-box--a crabby bit of business last time--in the middle of the day. As Dennis & I were packing up--from a pleasantly cooperative move--our "landlord" happened down the driveway, and we spent about an hour chatting with him.
Said "landlord" is a semi-retired farmer. Which, if you know farmers, basically means that he might trust the kids to take on some of the work when he goes on vacation (or, in his case, business travel). Where other "retirees" are out playing golf or playing bridge (and otherwise finding ways to keep their spouses from leaving them from pure exasperation), Mr. P. makes twice-daily trips to the chicken-house.
I leave it to my gentle reader to imagine how near and dear the salmonella-induced egg recall is to his heart. Not in any negative sense: Oh, no-no-no-no-no-no. If anything his distributors will be strengthened by it. But in the discussion, Mr. P. mentioned that the agro-titan culprit in the recall is notorious inside the industry for "cutting corners," as he put it. And not just with eggs.
That informaiton, of course, is hearsay--albeit with a somewhat better pedigree than mere industry gossip. All the same, it highlights the fundamental difference between true efficiency and corner-cutting. "Efficiency" means getting the same (or greater) output for less input. Booyah for that. Corner-cutting, in contrast, is no less than exercise in lying. Lying to customers--and, quite probably, lying to oneself. And once the self-deception takes root, I don't think that there's much that even my Mom and her dreaded bar of soap can do. And that's saying something. Sadly.
Saturday, September 4, 2010
Time for a new meme
Friday, September 3, 2010
Frivolous Friday, 09.03.2010: Geek tombstones
Of course, there's always (the obligatory) "System failure: Abort, Retry, Fail?" But that's so generic, so let's personalize our final testament to geekhood, shall we?
PHP
die();
ASP "Classic"
Response.End
*NIX
rm /home/doreen -R
Java
System.out.println("Goodbye, World!");
return;
DOS
CTRL + ALT + DEL
FTP
ftp> close 127.0.0.1
221 Goodbye.
221 Logout.
ftp> bye
UNIX (Timestamp)
Doreen A. Clemons
-65972040 - [overflow] (...or so I hope...)
C++
Human *doreen;
doreen = new Human();
doreen->live();
delete doreen;
T-SQL
/* Yes, I know that this is technically impossible--just humor me, 'k? */
KILL @@SPID
GO
CSS
body
{
position:absolute;
margin-top:72in;
display:none;
visibility:hidden;
}
Thursday, September 2, 2010
The future according to 1985
I know I'm supposed to appreciate Terry Gilliam's Brazil as a cult classic, but its dithering final 20-40 minutes only made me crabby. Mostly because it reminded me of how easy it is to screw up absurdism when it strays too far from satire.
For all that, its prescience--case in point: the War! On! Terror!--was sometimes chilling. Also, I couldn't help but notice the flat-panel monitors. Particularly how they were attached to typewriters like the one Grandpa bought second hand from the local newspaper when Mom went off to college (a few months before Ed Sullivan rolled out the carpet for The Beatles). Then again, the waterfall of continuous-feed paper streaming in column after column down the wall of the Head of Information Retrieval was more than a bit reminiscent of The Matrix's fountain-spill of green characters.
It's a slippery thing, the future. (Just ask the nameless narrator in William Gibson's short story "The Gernsback Continuum.") In theory, the future's supposed to be the child of How-You-Know-It's-Supposed-to-Work and What-You're-Doing-to-Make-It-That-Way. But, sometime in the night, something else sneaks through the bedroom door and begets the actual future.
Wednesday, September 1, 2010
How not to convert transactions into relationships
After submitting the "unsubscribe" form, I was unamused to see that Country Inn and Suites and I have different definitions of our relationship. And when I say "different definitions," I'm thinking of a discrepancy along the lines of the characters of Dan Gallagher and Alex Forrest in 1987's Fatal Attraction. (Needless to write, Country Inn is starring as Alex.) Specifically the post-unsubscribe notice says:
You will be removed from the email list to receive promotional messages and special offers from Carlson Hotels within 10 days. You may continue to receive non-promotional messages, such as reservation confirmation, account status, an invitation to update your online profile or to participate in a survey.Emailing me for reservation/confirmation? No problem--that's just another part of doing business--keeping in touch when you're actually in touch is All Good.
But the rest is wide-open to abuse. When it's all said and done, I just needed a place to sleep & shower and a viable internet connection. Breakfast is optional. That hardly needs a profile, considering that the only option for the peanut butter on my bagel is "creamy." (And it's a rare survey that captures what matters to me anyway, so emailing me for my actual opinion's dooms a batch of bits to oblivion.)
The sad thing is that, at the trench level, the motel was mostly a good place to crash; it's the rear eschelon that's screwing things up for everyone by not bothering to understand, much less segment, their market.