Sunday, May 31, 2009

Staycation 2009

The office where I work (during the day, anyhow) sits atop a lighting/furniture store. The proprietors maintain a public restroom, and don't waste the real estate in any marketing sense. The mirror and mirror's lighting are regularly replaced and--like Minnie Pearl's trademark hat--they bear price tags. I availed myself of the facilities tonight when I realized that I had arrived downstairs before my husband was there to meet me. I don't recall the coat stand in the corner of the restroom having been there the last time I checked, but I had opportunity to appraise it (and its price tag)--by mere coincidence of placement, no doubt.

From a functional standpoint, I can understand why the coat stand uses so much faux wrought iron on the base which doubles as an umbrella stand: The mass lowers it center of gravity and thus makes it more stable. However, the problem is that I can't remember owning a "full-size" umbrella since...well...it was clear plastic and had Disney characters on it. That would have been about 1971 or 1972, and Mom's side of the family still called them "bumbershoots." I remember how thrilled I was to have a prop with which to "play grown-up"...until I opened it once, and pinched my finger but good: I was leery of umbrellas for years afterward--seriously. Which I suppose makes me a tad biased on the virtues of full-size umbrellas. And I can't recall seeing too many umbrellas that aren't double-jointed nowadays. So I surmise that the design is a deliberate throwback to the days of parasols and walking sticks.

From the window shopping I do on my way up to work, much of the furniture for sale has a decidedly "antique" bent, in style and/or fake weathering. "Antique" projects the air of stability--i.e. we have roots in this place--as well as the ability to recognize quality/craftsmanship--because we all know that no one makes anything like they used to--and the security in the correctness of one's taste necessary to rise above the tyranny of fashion. All of which, when you noodle it, is almost exactly 180 degrees off our attitude toward the gadgetry we like to flash. In that case, Heaven forfend that our toys be even one-point-nine-nine-nine-nine-etc. (Although, in fairness, there is more than a little "retro" cachet to the Commodore 64. But that's only in certain circles, none of which can be called "mainstream.")

The drive (or in my case today, ride) to the beehives that needed to be checked and re-arranged is a half-hour one way. So there was time to turn that contrast over in my head. But despite that, I can't quite reconcile the dichotomy of those two value-systems. For all I know, Hegel himself might not be up to synthesizing this dialectic. Nevertheless, I think it's an interesting commentary on what people do with their disposable income--particularly when they think that other people care.

Saturday, May 30, 2009

Robocop(out)

File this under "Things that make your brain ache": Robo-calls. The business kind, not the political kind. I realize that they aren't a new phenomenon. I remember picking up a "free vacation" scam-call back in the 1980s.

It really doesn't matter that P.T. Barnum denied saying "There's a sucker born every minute" because too many folks--some with no more than access to email--have latched onto that idea as truth.

Understand that Barnum was active at the middle of the 1800s, when the world population numbered around 1.2 billion. That figure is currently hovering somewhere around 6.8 billion, about 5.67 times what it was in 1850. If, in the middle of the nineteenth century, sixty suckers were born every hour, that's 1440 per day, and 525,945 suckers per year, accounting for leap years. Multiply that by the factor of 5.67 to factor in the population growth and that's 2,982,111 born in 2009. Figuring for a birth rate of 20.18 live births per 1,000 people worldwide, we can guesstimate that 148,240,000 were born last year.

So, if we divide the total number of births from 2008 by the number of suckers allegedly born in that time, the percentage of the population that can be termed "suckers" is 2.0116777%, if we assume that the level of gullibility--even in this age of Snopes.com--hasn't changed since the day when Barnum pitched his first big-top. Which is, indubitably, a large enough target for any mass-marketer. Unless we assume that suckers are evenly distributed throughout the world population. If nearly eighty percent of the world's population lives--if you can dignify it with that term--on ten dollars a day or less, that doesn't leave a whole lot of bling for whatever's being pedaled. And that assumes that the sucker in question can afford a phone in the first place. So that leaves something less than half of one percent. Which, in some segments of direct mail marketing, is a livable return.

However, if you're running a shady operation, you're racing against the time when you'll be run out of town or dragged off to the hoosegow. And if you have to offshore those operations to skirt the law, the costs (and thus the conversion ratio required to support them) will increase. So I almost have to wonder whether the firms actually making the robo-calls are in fact the vanity-publishers of the marketing world. It'd be nice to think that the would-be scammers ultimately lose their shorts to their get-rich-quick ambitions.

But, that's probably wishful thinking--and highly oversimplified, just like the assumption-laden back-of-the-envelope calculations above. I'm Midwestern enough that hanging up on a human being without at least the courtesy of a "No, thank you" is pretty much unthinkable. But a pre-recorded voice? Click.

Friday, May 29, 2009

Frivolous Friday, 05.29.2009: Another wine post

On tonight's grocery run, I stopped by the liquor department to see whether anything new was on the shelves. And, to my happiness, I managed to find a grape I'd never so much as heard of before: Catarratto, which apparently hails from Sicily. I really, really like the Nero d'Avola from the same region, so I have considerable hopes. But even if it bombs, it's nine-dollars worth of a new experience, which is about the price of a movie these days.

I have nothing against French wines, you understand, but what I do like about wines from other areas is that they seem to be more often named after the grapes that go into them. When you're starting off in the adventure in a bottle that is wine nerdery, that helps a lot, actually. It's not just a question of collecting trivia, though. When you're standing in front of the wine shelves, thinking about picking up something to go with whatever else you're buying from the non-booze part of the store, it makes a difference between money well spent and money wasted.

For instance, I thought for years that because the color "burgandy" is dark, that the wine must be heavy-tasting. Wrong. If it's made anywhere other than the Burgandy area, the wine has to be called "pinot noir," after the grape that goes into it. That's a medium-bodied, silky wine--or at least it should be. (That's another thing: California and Australian wines--as a rule of thumb--tend to be bolder, so if it's subtlety you're after, try the stuff made somewhere else.) Or, for even more fun, champagne must be made in Champagne, but it doesn't have to be made from any particular grape. And don't even get me started on the Bordeaux region and its lexicon: That's an absolute nightmare for anyone starting to learn about wine.

Which brings up another point: When the wine snobs start talking about this vintage vs. that vintage, it's all well and good if they're talking about wines from a particular region (e.g. Tuscany). But for all I know 2005 might have been a terrible year in other parts of the vintning world (e.g. New Zealand, South Africa, Washington State, Chile, Argentina) But, sadly, people seem to forget that when the trade journals pronounce their verdict on an entire year's product. The industry, you understand, has a vested interest in snobbery, whether it's justified or not.

What surprises me, though, is that more computer/IT folks aren't into wine. After all, it has the arcana so dear to many of our hearts. We're the folks, after all, who memorized the stats of every D&D critter that Gygax and gang could dream up. And rolled our eyes at Original Series continuity errors in Next Gen. And know every manner of UNIX command (complete with parameters and switches) cold. And slogged through The Silmarillion (and everything else that Christopher Tolkien dug out of his Dad's desk drawers) to one-up the lazy slobs who had merely read The Hobbit and The Lord of the Rings. And so forth.

And let's face it, you can have exactly the same kind of completely pointless jihadist food-fights over Burgandy vs. Bordeaux that you can over whether Kirk commanding the Enterprise could kick the butt of Sheridan commanding the White Star. In other words, what's there for a geek not to like?

Thursday, May 28, 2009

Can you call it "housekeeping" if you don't take out the trash?

I'm supposed to be modifying a feature that honeycombs an entire web application that's the work of many years and programmers. But fewer than a dozen web pages in, I've had to send out two emails asking whether I'm wasting my time on obsolete pages. I'm in no position to cast stones about housekeeping, however: "My" application has the same disease.

Which prompts me to wonder whether that's only a problem where I work, or whether other multi-application shops suffer from the same pack-rat ethos. What I do know is that the source control tools are a step behind when it comes to cleaning house. IMO, they tend to encourage that behavior. Ideally, it'd be nice to see more intelligent source repositories that help you figure out dependencies, flag potentially orphaned files, and--probably most importantly--make it painless to archive obsolete code as well as restore it if it wasn't, in fact, quite the cruft you thought it was...before you broke the build.

Sigh I might as well wish for world peace and prosperity. Oh, and a pony too. Unless, of course, I knuckle down and write the software myself. Then again, I know where all my code is, right? ;-)

Wednesday, May 27, 2009

(Language) flirtation vs. marriage

I'm getting another hand-me-down project at work, and I peeped at the code this afternoon. Clean and readable stuff, so I really shouldn't complain. But I'm quite sick of classic ASP. I really could use a vacation from it, as well as from "C" and its cousins. One of the hot alternatives right now is Ruby on Rails, of which I know something close to bupkis. RoR's object-oriented, which is promising. Hopefully that means that I won't have to deal with slovenly variants or--the worst of both worlds--PHP's two-facedness with data typing.

But if I'm to invest the time in learning a completely new grammar, it'd be good to know that the designers were more engineers than programmers at heart. Engineers build to last--that's the ethos. With programmers, the mentality can be more ephemeral, as witnessed by Fred Brooks' "Build one to throw away." mantra. (In fairness I should mention that he's since placed heavy caveats on that, if not outright recanted it.)

You can trash Java for its supposed slowness and kitchen sink approach to APIs. But at least it has the decency to give you a polite heads-up and time to get your affairs in order before yanking a variable/function/class--either from the core APIs or altogether. Anything less is plain ol' hubris. Chase the cool factor on your own time, thanks: I have bills to pay. Because as important as it is to hoist the code into production today, it still has to be maintained tomorrow. And the next day. And the day after that. Until one day, you're scrambling to get another project out the chute, and BAM! Your hosting company or parent company or some agent of The Powers That Be upgrades your server and breaks applications that have been humming along for months, if not years. Have fun rewriting code by the seat of your pants while your clients are calling you every fifteen minutes.

So I expect that I'll be putting in a fair amount of time checking out Ruby's (and Rail's) change history as much as any bells and whistles she brings to the table. If it were just a matter of "playing" with another language, it'd be no big deal. But "experimental" code has a habit of escaping into production--either as cut-and-pasted chunks or the proverbial lock-stock-and-barrel. (If you just cringed--maybe even twitched involuntarily--at that, congratulations: I think you can safely count yourself an I/T professional. ;-)

Tuesday, May 26, 2009

No school like old school?

From my limited observation, the USB drive has sort of kicked off a revival of [cough] "old school" [cough] sneaker-netting. Nothing wrong with that, certainly: There's still a lot of variability in network speed, even without the 8000-lb gorilla ISPs throttling bandwidth to punish the many for the sins of the few--or at least using the DMCA as a fig-leaf for capping their costs.

In a similar vein, dual monitors and document annotation, even in tandem, have failed to produce and efficient replacement for marking up paper printouts for editing, especially when the printouts can be at least 11 x 17 inches in size). I don't think that it's just me being, err, "retro," either. Granted, in many respects, we've been trained by computers (or, more aptly, their creators) to do things "their" way. And even to think in their terms. (Case in point: One of my co-workers recently asked whether we'd finished discussing a meeting item by asking, quote, "So, can we hit the 'X' on this one?") But some activities are still too cumbersome in their current digital-friendly form. Others tend to bring out our worst tendencies, running the gamut of lax spelling (think texting) to saying things via the internet that we wouldn't say in person.

New does not equal better, particularly when the "new" more or less amounts to a solution looking for a problem. That's a truism in every other aspect of life, but we somehow have a tendency to lose that wisdom when a glittering new technology bats its eyelashes at us. Double that when the Joneses already have one.

Sunday, May 24, 2009

No Memorial Day post

Just a heads-up that there will be no post on Memorial Day. For all that I dismiss many holidays as hyper-commercialized mockeries of their original intent, Memorial Day is not one of them.

For all those returning home, safe journey and timely arrival! See you Tuesday.

- Doreen

The right tools for the right programmer

Gaaagh, I hate painting! But it comes with the territory of home ownership, so I suppose I shouldn't complain. But I will anyway. It's not a matter of motor skills or patience. I can--and do--hand-sew, embroider, crochet and even tat. And if I say it myself, my penmanship has been the object of many, many compliments. But anything involving a brush is probably better left to someone else. Brushes, in my hands, are agents of frustration, if not pure evil. (Eeeeeevilllll, I tell you!) Contrast that with my husband, who painted many tiny figurines in his D&D heyday, but who writes in what he refers to as "Engineer block capitals."

The geek-centric point of the above navel-gazing is: If you can't expect a tool as simple as a brush or pen to be used identically by two different people, why would you ever expect programmers to all use the same programming tool merely for the sake of "consistency?" Let's face it, unless your code-base is joined at the proverbial hip with what I call "infrastructure" companies--and that's a whole 'nuther blog post--there's no valid reason, in my considerably-less-than-humble-opinion, why you shouldn't let your developers choose their own tools.

To illustrate: My language of choice is Java. Yet I have three Java Integrated Development Environments (IDEs) installed on my workstation: NetBeans (which, alas, will probably be smothered in its sleep after Oracle finishes its takeover of Sun), Eclipse and BlueJ. Each is better suited to different programming objectives. For instance, BlueJ is very minimalist--in other words, awesome for one-off utilities. But I'd never use it for any sustained development. In fact, its limitations were quite evident for the near-trivial programming I just handed in as my "semester project." On the flip side, more integrated environments such as NetBeans and Eclipse often require more extensive project setup. Merely correcting a mistyped project/package/class name can be an absolute nightmare. Not to mention that the so-called "intelligent" features can be more nuisance than help, and some have a tendency to create extraneous files under the proverbial hood.

That sort of variability in features is argument in itself for leaving the choice--within reason--to the individual developer. Significantly, not all your programmers are at the same level in their careers. Some prefer to be "spoon-fed"--if you will; others are quite comfortable in a minimalist environment.

That being said, there are a few caveats to go with this laissez-faire attitude. At some point, you will almost certainly need to integrate code written by different programmers. This could well come at a price. As noted, some IDEs introduce gratuitous files. Or--as odd as it sounds--you can trigger a civil war of sorts among (some) programmers by introducing the question of tabs-vs.-spaces for indentation. I wish I were making that up.

However, these are programmers we're talking about. Thus, you can quite fairly make the case that the flip-side of freedom of choice is the responsibility to check in source code that meets whatever standards of consistency and hygiene apply to your organization. (You know, that whole "with great power comes great responsibility" Spidermantra.) So they might have to write some custom file-copying and/or string-parsing code. Big deal. That's not something that should take all day. Even if it did, that time would very quickly pay for itself in terms of letting each developer work in her/his comfort zone. Everyone from the n00b who's still attached to the IDE s/he was required to use in school to the...ummmm..."old school" type who has vi key codes hardwired into her/his brain-stem.

Ultimately, it's always a matter of balancing consistency in the underlying--and trust me, inconsistency is not a trivial cost, over the life-span of a product--against the equally real cost of martinet management.

P.S.: Oh, and by the bye...Tabs rule, spaces drool! So there. Pppppplbbbbtttt!!! ;-)

Saturday, May 23, 2009

In defense of the troll-free zone

I've previously mentioned how well the Derby core team functions together, despite disparities in gender, nationality, native languages, and probably many other things besides. The same largely holds true for the user community. So, earlier this week, it was distressing to find someone trashing someone else's code (in four-letter terms), then--after being (politely) called on the carpet for his language and tone--responding with self-righteousness and the smug assertion that he had somehow "helped" the person whose code he'd insulted. (For the record, it wasn't my code--I don't have any skin in the game.)

Last I checked, the only place it's "acceptable" to ridicule a person in the name of making them a productive team member is the military. Anyone trying to do that in a civilian context? Well, Mom would say that I should feel sorry for them, but I can't. I've seen the disruption that a single person can cause within an organization, and it's pretty scary. You can remove that person, and the group will actually be more productive despite the decrease in headcount. Even scarier is the fact that the anonymity of the internet isn't even a factor in these cases. As a matter of fact, I don't even want to think about what these folks are like online.

In the case of the user list, I haven't seen the offender's name pop up in the last couple of days, so I'm hoping that this means that he's taken his toys and gone home. Or that the list moderators have less tolerance than even I would have (which isn't much). Partly because wanting to smack someone for their obnoxiousness really makes it difficult for me to learn. But more importantly, because the Derby folks are so gifted on a number of levels, and their time is best put to use fixing bugs and getting the next version out the door.

Friday, May 22, 2009

Frivolous Friday, 05.22.2009: Programming books

Not to be all self-congratulatory and navel-gazing and such, but this past week saw an anniversary of sorts: Namely the fact that I have officially, documentably been a geek for a decade. By which I mean being paid to work with technology--either to write about it or to make it.

What really brought the passing of a decade home, though, was the glance at my bookshelf, and the realization of how obsolete some of those dead-trees are. Some, of course is timeless. K&R's New C Primer Plus sits to the immediate left of Soustroup's classic--jokingly referred to as The Old Testament and The New Testament. The Perl manual that was my going-away present from my teammates at "The Blue Zoo" probably is still relevant. Java Structures is probably conceptual enough to hang on to. And, despite their age, the two Java Books I bought near the inception of my certified geekhood, have been useful references over the years...if only for the rudimentary nature of the UI programming I've done.

But, sadly, although I peek at his blog Monday-Friday, I haven't looked at Elliot Harold's Java I/O since it arrived by mail. Jason Hunter's book on servlets was solid enough that I bought the second edition, but haven't had a use for it (because most hosting companies make you pay extra for J2EE). And I don't think that I'll have much use from the Java 2 Certification, unless it's as a doorstop or I have a fancy to set the chimney ablaze--rather like we did with all the MSCE exam prep books that I received as hand-me-downs. And there are more of their ilk.

Basically, the takeaway is: If you want to feel old and passe, measure your life in terms of computer programming books. Sigh. But the problem is that if I throw those away, there will be bare spot in that bookshelf. Which, of course, pretty much requires me to buy more books to take their place. And that cycle of dead-tree obsolescence is just plain depressing.

Thursday, May 21, 2009

Technology can't fix poor communication

Which should all that needs to be written on the subject. It's something I've griped about before and doubtless will again.

But with three bites from the bad communication bug currently smarting, it's probably a good idea to give concrete anecdotes so that people who think that merely putting smart people together will get a product out the door.

1.) The DLL code freshly checked out from source control doesn't compile. Why? Because no one documented that some class files are obsolete and I should have removed them from my project setup. Everybody normally on that project "just knows that," you understand. I think it wasted more of the project alpha's time straightening that out for me than it would if he had just purged the files from the repository. The irony is that my "fix" was involved four lines of code.

2.) Three of the Office Illuminati are tough to catch off the phone or out of meetings, even just one-on-one. Now imagine that to get an idea of what the "bug" in the issue tracker even was about--not to mention trivia such as what system features it actually affected--you need info. from all of them. And before you can get that info., they need to talk to each other. Funny how that bug's still on hold as I write. And you'd better believe I'm making my disgruntlement known by dinging the billing number for the wasted runaround time.

3.) Part of a fix that it was my job to promote today involved deleting a folder. Were I not paranoid enough to ask for clarification, I would have whacked a client's custom programming work. In production. It turns out that the person who wrote the promotion instructions was referring to test data on a different server altogether.

Understand that I consider myself undeservedly lucky to work with people who are both smart and good. So it baffles me that there's so much assumption of mind-reading, when that's been proven to be false over and over again. We have a wiki, blogs served from the wiki, internal web pages, whiteboards, two source control packages, a highly customized bug-tracking system, and of course email, telephones and scratch paper for "call me when you're back from lunch" notes. Lack of communication technology is not the problem.

Here's the thing: You don't have to assume that your co-workers are stupid when you document things; you just have to assume that they are (very temporarily) ignorant. And the kicker is that well-written instructions can take less typing than poorly-written ones.

Wednesday, May 20, 2009

"Story" vs. "Telling"

For thousands of years, "storytelling" was something done for collective benefit--emphasis on the word "collective." But then the term was, quite annoyingly, perverted in the 1990s. The navel-gazing variants morphed into intellectualized narcissism in psychoanalysts' offices, escaped into the cultural wild, found others of their kind, and bred into nuisance proportions. That's my surmise, anyway.

In this decade, the term has, more annoyingly, been co-opted into the marketing lexicon, which adds another layer of self-interest. Which is emphatically not the point of a pastime with such a venerable history. Scheherazade, after all, was merely trying to save her own neck and those of the one-day Queens whose fates would have followed her own.

Most annoyingly of all, our defenses don't seem to have evolved. We're just suckers for a story, as if we're still sitting around the fire, making shadow puppets on the cave walls and funny voices to go with them. So I really think that the marketing gurus need to issue a few caveats when they advise their flocks to "tell your story." Two reasons, one to do with "story" and one to do with "telling":

1.) Many folks trying to frame the "narrative" (another abused term) of their businesses are too apt to assume that they must say something still-in-the-plastic-clamshell-new. Particularly in this culture that fawns--yea, even slobbers--over innovation and novelty and shock. Patently silly, of course: Any English major will tell you that there are fewer than a dozen unique "stories" anyway. Commedia dell'arte being a case in point. Too literary? Try soap operas. Or the WWF. Or just consider Wile E. Coyote and the roadrunner. You know darned well that the roadrunner will never, EVER be the coyote's lunch. Admit it, you'd completely freak out if that happened. (I don't care how old you are: If you say you wouldn't, you lie, my friend.) But you keep watching anyway, don't you? Uh-huh. You see what I mean.

2.) Ultimately, you need to tell the listener a story that they think that they want to hear. It may or may not be the same story that is ultimately told--sometimes that disparity is the story. (And that, as they say, is another story entirely. We won't get there tonight.) But the process of bringing someone from where they are to where you are is one of guiding them to a place where they're ultimately happy to be. It is not a matter of hijacking them into your space. The difference comes from respecting the fact that attention is not free, and must be continually earned. Take your listeners for granted, and you'll lose it. Shout your story to gain a bigger audience, and you'll lose it. Be caught lying, and you'll lose it--probably for good.

So if we absolutely must live in a society where the notion of storytelling is just a fig-leaf for self-involved shilling, it's be nice if the fundamentals were at least respected. May Joseph Campbell rest in peace.

Tuesday, May 19, 2009

It's all in the lens

First off, monster kudos for the QA folks in this world. I spent about five hours today pinch-hitting for an overbooked QA Dept. by proofing digital translations of dead-tree architectural floor plans. I've done this recently enough that I already know that it's (at least) a two-phase job:

Step 1: Check the overall layout of walls, furniture and even the direction that the doors open/close.
Step 2: Check the nitty-gritty details like room numbering and (in some cases) number of filing cabinets

If you're able to check for both in one gulp, more power to you. You're more observant than I. (Whereupon I should note that being detail-oriented and claiming to be the person who "put the hyphen in 'anal-retentive'"--as I do--are quite often two different things.)

It's the difference that inspires tonight's installment of this blog. Anyone who rolls with the "J" part of the Myers-Briggs "INTJ" as strongly as I do can only look through the microscope or the telescope at any given time. Not both. (Those who can manage both simultaneously: More power to you. Seriously.) In practice, that boils down to the choice between planning and execution. To conjure a prettier metaphor, it's the choice (for folks in my quadrant of human existence, at least), between looking through the telescope or turning it around to use as the microscope.

In other words, the choice of lens is everything. At any given moment, anyway.

Thus, it's important for that sort--my sort--to remember to do both. On a diligently regular basis. If you're clocking hours for someone else--as I currently am--putting a note on your calendar six months out from review-time is the best perspective from which to consider whether what you're putting into the firm is comparable to what you're receiving from it. If you're on your own (as I am currently not), it's arguably the best time to think beyond the balance sheet. In both cases (I submit), there's enough perspective to matter and enough time to actually do something about it.

Monday, May 18, 2009

The $23 bug

There are five or so honeybees living in a little plastic cage in a little paper bag on the kitchen counter, where they will probably reside for the next few days. One of them is a Queen bee, who is being brought in as a sort of "turnaround CEO" for the hive that survived the winter, but whose current Queen's performance has been erratic at best.

We paid $23 for the lot--Her Apian Majesty and her small retinue of workers-in-waiting. That's up about five bucks from just two or three years ago. But personnel is everything, particularly as the workers will stage a palace coup if we don't. They've made one desultory attempt as it is, so it's merely a matter of time before they get serious about it. Although having the workers take the job of hatchet-man upon themselves is cheaper on the "cost" side of the balance sheet, you're guaranteed a population drop, just at the time of year when they're supposed to be ramping up for summer production.

In essence, twenty-three clams are saving us nearly a generation in worker-brood, plus a considerable gamble that any "homegrown" Queen will return from a successful mating flight. (We've had that fail to happen, btw.) In that light, spending that much money for a few insects--in truth only one of those insects--seems far, far less ridiculous.

Plus it also highlights the difference between cost and investment. For instance, I think of the company picnic or the tired ritual of the holiday party is a cost. Sure, it's billed as a morale-booster, but people have come to expect it, and so its benefit is not lasting. If the company instead put the money it spent on food, booze and entertainment toward tuition, or seminars, or web training, or even books for the office library, it would far more likely to reap the benefits of that investment for months, if not years.

Of course there are times when there is no money to be spared. But there is always, always a huge difference between cutting costs and refusing to invest. And the knowledge of that difference, IMO, is the difference between smart management and corporate feudalism.

Sunday, May 17, 2009

The non-post

Still can't sit up for very long without the headache coming back, with the nausea and other friends on its heels.

Hoping for better things tomorrow.

(Silver lining for me: I finally fulfilled my duty as an English major and read a Jane Austen novel cover to cover. Embarrassing, considering that I graduated nearly 19 years ago. More embarrassing: My Engineering-major husband has read them all.)

Saturday, May 16, 2009

Open immediately...or we'll send you another! *

It's Saturday here at chez fivechimera, and a relatively unscheduled one at that. Which means playing catch-up on domestic nitty-gritties. One of which was triaging the pile of dead-tree mail (and spam) that's accumulated during the past week or two.

How is it possible, two decades plus into the direct-mail era, and a decade and change into the spam age, that anyone thinks that I will not immediately consign mail marked "Open Immediately" to the trash can?

Just askin'...

* Sarcasm bragging rights to my husband on the title

Friday, May 15, 2009

Frivolous Friday, 05.15.2009: The "other" bees

Just back from Madison, where my husband and I attended a workshop on "raising" bees-that-are-not-honeybees for pollination. We've kept honeybees for six years, but can't have them in our backyard because of zoning ordinances that consider our hobby an illicit "agricultural" activity in a residential area. But providing nesting habitat for "wild" species like Mason (a.k.a. Orchard) bees, Japanese horn-faced bees, and Leaf-cutter bees is another matter entirely.

But in addition to providing nesting facilities for these "other" bees for the sake of the backyard garden, we're thinking of introducing some to the place where we keep the honeybee hives. From the "economic" standpoint, that doesn't seem to make much sense, does it? Adding more competition for the same resources is never a good thing, right? Yet we just spent a couple hours this afternoon within twenty, thirty feet of a small apiary and a nesting area for mason/horn-faced/leaf-cutter/etc. bees, all in the same small orchard. And what we learned is that a variety of pollinating insects is a very good thing. Partly because honeybees are not optimal for any number of crops, such as blueberries or afalfa (whereas other species are).

But more interestingly, having a little interference actually knocks honeybees out of the "ruts" that they like to work themselves into. From the farming standpoint, this "rut" is less than optimal, because many flowering plants require cross-pollination to produce fruit/seed. From the honeybee standpoint, it's also sub-optimal. The reason for that is that, when a honeybee worker forages, she prefers to collect pollen from one kind of flower, despite the fact that bees need variety in their diet as much as you and I.

But when you introduce other species, particularly mason/orchard bees, their males--to use the instructor's phrase--try to mate with anything that moves. This includes other orchard bees--female or male--as well as any species that looks "close enough." The unwanted (ahem!) "attentions" of the mason/orchard bees bump the worker honeybee out of her foraging groove, making it more likely that she will visit other plant types (or other sub-species of the same plant in the case of an orchard), and more effectively pollinate. So, apart from the annoyance on the part of the foraging female and the spurned affections of the male, it's a win-win-win for plants, hives, and humans.

I've said before that I don't restrict my teachers to the two-legged sort. The takeaway here is that competition isn't necessarily a zero-sum proposition. Knowing your niche is key. Sure, you can try to elbow into other niches that you can't serve as well as others. You may even succeed. But ultimately it isn't optimal for the larger environment. And, in the long run, it won't be optimal for you.

Thursday, May 14, 2009

Dude, it's *all* data

Sir Richard Branson takes the knocks in the press for his ego. But man, Virgin Mobile is as close to "getting it" as I've seen from a cellphone company. Tracfone runs on the same pay-as-you-go premise, and there may be other competitors in that space for all I know. But what Virgin (mostly) groks is that some folks aren't actually packing a cell to talk all the time. I'm one of those folks. My cellphone mainly exists as a place for messages to land, and to occasionally post a message. I've never, ever been in danger of running out of minutes, even at 20 cents a pop. So I find it irritating that the pricing structure of mobile phone plans is skewed toward talking. As if we're still living in the day when people were still calling them "car phones" and having a car fax was bleeding-edge geekitude.

I think it's pretty clear that gadget evolution is not--emphatically not--specializing in talking anymore. Talking is something you do when you're not playing games or checking your email or web apps. of choice. Someone pretty-please dial up Darwin on the Ouija board so we can set the suits at RIM, Apple, T-Mobile (they of the Android phone), Palm (and Branson's newly-acquired Helio) straight on that point. Talk has taken a back seat to data. That and the world is becoming less analog by the minute (think VOIP and Bluetooth), so ultimately it's *all* data.

Understand that I'm not 100% satisfied with Virgin Mobile. Mainly because of their annoying habit of allocating data access with an eye-dropper. Which is entirely an exercise in arm-twisting--meaning up-selling you to a monthly plan. But this is the closest I've come to getting a convenient service on pretty darned decent terms, i.e. price and control over my service. So if Sir Richard would kindly stop treating data as a "premium" add-on, I'd seriously think about throwing more money at Virgin/Helio for the data services that are actually of value to me. And, who knows? I might even write off some of the ego. ;-)

Wednesday, May 13, 2009

Practical dreaming

I don't mean grand strategy dreams (e.g. Rev. Dr. King); these dreams are much, much more tactical in scope.

Normally, my subconscious is a tiresome flibbertigibbet. With a mean streak wide enough to land a fleet of space shuttles wing-to-wing. But occasionally it will be nice and take up the slack for my workaday mind. For instance, I once worked at a small newspaper, where the master copy was literally laid out by hand on a light-board. For months, I just could not wrap my brain around how the "old hands" managed to pack everything into the pages so neatly and economically. Until one night when I dreamed about laying out the newspaper. From then on, it all made perfect sense.

Last night I (like several classmates) was scheduled to give a short presentation on my semester project for the Java Games Programming class my husband and I took--mostly for giggles--at WTC. I must have been nervous, because I dreamed about being back on the college speech team--getting ready to compete at Nationals, no less. But when I woke up, the thought of getting up in front of my peers (plus a bunch of dressed-up important people who wouldn't know me from Eve) and demo'ing my blingy little game wasn't a big deal. Nor was it even at the time.

I've also written both computer code and poetry in my sleep--though, alas, was not able to recall enough to do any good after I woke. But from now on, I will keep any problem to be solved at the forefront of consciousness as I drift off. (Not actually trying to work it out, mind you, b/c that would just keep me awake.) As experiments go, there's really no downside. I mean, it's not like my subconscious mind could possibly get any weirder...

Tuesday, May 12, 2009

The tyranny of lists

There's a vignette in Garrison Keillor's Lake Wobegon Days that relates how a man--covertly dissatisfied with his life--abandons his wife and daughter and even his own name. The trigger is a "To Do" list that contains as many items as his years in age. Ironically, he had written the list himself.

I was somewhat chagrined today, having scratched out a "Things I have no excuse not to do, now that the semester's done" at my work desk, only to (later) realize that my sense of deja vu came from the fact that a very similar list has been half-hiding on my home desk for weeks on end.

All the same, I pretty much live and die by "To Do" lists, whether they're on scratch paper or in bug tracking databases. But here's what: It's entirely up to the person making the list to decide whether they will allow it to be a tyrant or a benevolent dictator. If you convince yourself that someone (or something) else is "making" you do these things, then the list owns you. When you take responsibility for the trade-offs involved in adding and/or omitting list-items, you own the list. Big difference, in terms of attitude--and, I strongly suspect, the likelihood of crossing off those line-items.

Monday, May 11, 2009

Thoughts on code "ownership"

It's an exaggeration to say that a bad day coding for yourself is better than a good day coding for someone else. But today it's difficult to convince myself of that...even after dredging up memories of the "I can't believe they didn't fire me for that" bone-headed things I've done purely on my own initiative.

During the limited times that I've had to impersonate a manager, I've learned that you walk the proverbial fine line when you need to give people the freedom to make decisions--even poorly thought-out ones--yet keep your entire "herd" of features moving at approximately the same pace toward the release date.

Similarly, "ownership" of code is a fine line to walk. Some schools of thought tout communal ownership, which basically turns developers into software kibbutzniks. In all fairness, I've never worked in that scenario, so I can't form what I would consider an informed opinion. I only know that a few arguments in its favor are:

  1. No one has a valid excuse to be territorial about "their" features. If you don't work around programmers, just trust me that it's an issue.
  2. Communal ownership encourages cross-pollination.
  3. Development teams that practice communal code ownership often seem to adhere to a common set of code conventions to make the code more readily learnable.

I imagine--emphasis on the word "imagine"--that it would, superficially, seem quite easy to manage. That is, if you delude yourself into thinking that you can simply announce the collectivization and expect the code to exist on its own plane above the churn and froth of interpersonal dynamics. And, of course, the flip-side of making "everyone" responsible for writing the features and fixing the bugs divides is that the blame is evenly divisible by the number of "everyone" when that stuff doesn't happen.

The other end of the ownership spectrum is to make a someone responsible for the success of each part of the product. In that scenario, accountability--including the responsibility to shout for help while it can still do some good--is clearly established. Parceling out the responsibility for everything also seems like an easy management strategy. Sure, you might have to referee a few food-fights as the code-base breaks off into autonomous satellite republics: Securitistan, Datalayerstan, Guistan, and the rest. But, ultimately, you've made people their own masters, with all the obligation that entails. Right? Except that it doesn't work that way. When you're the manager, you can certainly delegate the project by nickel and dime and even ha'penny--but the buck ultimately stops with you.

So it's scant wonder that I've learned to look at development methodologies with the same jaundiced eye as management fads. Every approach has its trade-offs. Those trade-offs may be skewed toward the favorable or detrimental aspects by the prevailing culture of the organization. A culture, it's important to note, which is never static, even when the personnel remains fixed.

Sunday, May 10, 2009

Standing up for "community"

One downside that the open source phenomenon--and, to some degree, the social web--is that the term "community" has been roundly abused during the last several years.

"Community" used to mean a village or town or (small) city. I think that the fundamental concept behind the old definition was that the community was heterogeneous, but functioned as an atomic unit. An economic and social ecosystem, if you will.

The problem with the latter definition is (to my mind, anyway), that the sense of heterogeneity is lost. I think this is particularly true when businesses use the term--and orders of magnitude truer when software companies use the term. Somehow, in the mind of the people marketing the developer outreach initiatives, the definition of "cult" has been transplanted into the word "community."

The trouble with that, of course, is that cults are emphatically not very heterogeneous. There might be a differentiation between "inner circle" and "everybody else," but that's largely it. Communities--the real ones--on the other hand, are highly interconnected. Folks in communities can typically be trusted to figure out what needs to be done overall, because they operate in several different circles in professional and private life. Thus, they don't have to wait around for a dictator or his lieutenants to tell them what to do, much less how to do it.

Basically, the English-abusing companies in question are looking for free--so far as their bean-counters understand the term, anyway--labor. Free testing, free marketing, possibly even free development. (I wouldn't be in the least surprised to learn that least one proprietary software company somewhere has tried "community-sourcing" their documentation.) And dangling out the warm, fuzzy idea of belonging to a "community" probably appeals to those who would rather not spend their weekends in a bar. (I know I'm not one for the bar scene, anyway...)

Honestly, I don't think that there's anything wrong with that. I see it done to various degrees of excellence as well as shabbiness, and it's really only the shabbiness that I find objectionable. Bottom line: When you ask for someone's disposable time--and I include the time spent trying out a platform/product/language, not even beta-testing--you are asking for a favor. Perhaps the favor is intended to be paid forward (rather than back), but it is a favor nevertheless. Not an homage to your technology's coolness.

And, see, that's largely what is missing when the company says "community" when they're really thinking "cult." For instance, asking someone to try your product--either as a demo or for beta-testing--without giving her/him a mechanism for asking questions or reporting problems is treating her/him as a cultist, not a community member. That's like organizing a conference around your offerings and not handing out t-shirts and tchotchkes...or (horrors!) skipping the free booze at the mixers.

Sigh. I know that one blog post will not stop the gang-victimization of an English word. Heck, "synergy" is still undergoing laser surgery to correct the scars of the '90s. But someone has to put up a fight. If not for the language itself, then to slip a pin into the corporate fat-heads who think that they somehow deserve other people's free time.

Saturday, May 9, 2009

The belated Saturday post

Just off the phone with my best friend, who will be awake even later than this, because she has a software patch rollout to test in the wee hours. It almost makes me feel spoiled, though I clocked several hours in the office today to tie up the workweek's proverbial loose ends, knowing that one or two of may unravel behind my back tomorrow. But so far as tonight's concerned, I'm off the hook for them until Monday.

It's sad that weekends make us more productive than the traditional work-week. Sad because people have to make trade-offs between what fulfills them professionally and what fulfills them in private life. And all because of the false economies of packing so-called professionals into close proximity, as if expertise and (business) intelligence will magically transfer as immediately and virulently as cooties at recess. And, in my best friend's case, the false economies of expecting the most capable to only not only do their share of work, but to be responsible for the process and/or product besides. My best friend noted that her father--an old school I/T professional--is baffled at the hours she puts in. In the heyday of The Corporate Man, he was rarely away for supper.

So I can't help but wonder whether there's such a thing as "peak productivity," intended in the same sense as the concept of "peak oil." Until we step into a cybernetic-enhanced William Gibson-esque (think Neuromancer and Johnny Mnemonic) world, people can only scale so much, even with the best tools.

Friday, May 8, 2009

Frivolous Friday, 05.08.2009: Canadian wine edition

My husband has standing orders to shoot me in my sleep if I ever become a wine snob. I mean, it's all well and good that I can acquire a taste for oddities like retsina and bang on about the factoid that chardonnay and chablis are made from the same grape and all that hoo-ha.

But I also can't help but remember being barely in my twenties and thinking myself quite elegant for specifically requesting Inglenook in the airport bar while killing time between flights. 'S'matter of fact, it wasn't that long ago that I thought I was getting a bargain on honest-to-Pete Vouvray...before I took a slug and said, "Yep--that tastes just like the cheap chenin blanc I grew up on." And was happy--a silver lining kind of happy, but happy nonetheless--that my taste buds actually remembered that flavor from twenty-odd years ago. (For whatever reason, my family switched from cheap chenin blanc to cheap sauvignon blanc and asti spumanti for the holidays of my later teens and early twenties.)

But.

But. The line between appreciating merit and being a "snob" is not--I repeat, not--necessarily a fine one. Not in the least. In that spirit of that, I was thrilled to read about "pirate" Canadian wines besting their French and California rivals in a Montreal tasting. In the interest of full disclosure, I should mention that, during tonight's grocery pit-stop, I picked up a particular (French) brand of pinot noir--because the label's sauvignon blanc rocked the house--to go with the beef and broccoli stir-fry my husband made for dinner. The label claimed that the pinot noir was un-oaked--meaning that it was not aged in oak barrels. I call BS--and now will have mixed feelings even about the sauvignon blanc. Which is sad.

So if a vineyard closer to home can produce something better--even at a modest premium--I'm all over that.

I say that because I'm (almost) always rooting for the underdog. I also say it because the interlopers and the parvenus and the upstarts keep the vested interests on their toes. Grant you, it's a fine line to walk: On one hand pushing back against the know-nothing-ism that has been elevated to a quasi-virtue in American culture, but, with the other hand pushing back against the "establishment" resting on its laurels. Of course, that's a story as old as civilization itself. It just seems to play out closer to the surface in the wine industry. Which is just a part of what makes being an armchair wine-nerd so very, very interesting.

Cheers!

Thursday, May 7, 2009

Great idea, questionable execution

One thing I'd love to see go viral from Facebook is the ability for viewers comment on ads. Obviously, our opinion is something that neither the traditional advertiser nor publication want. But I hope that the smart ones get it.

Obviously, the feedback will almost invariably be negative. We've trained ourselves to filter out advertising to some degree. Thus, with two ads that are equidistant from "neutral" on the "bad" to "good" spectrum, the bad one will catch our attention before the good one will.

So, to do my Darwinian service to the advertising gene pool, I've started voting down the ones that I find annoying on any level. But I'm finding that it's rarely a three-click deal because Facebook's reasons for giving an ad thumbs down are, well, pretty whacked. For the record, here's the list:
  • Misleading
  • Offensive
  • Uninteresting
  • Irrelevant
  • Repetitive
  • Other
To illustrate why I think this list is--to put it politely--reality-challenged, let's break this down, bullet-point-by-bullet-point:

Misleading. I'm old school. Stephen Colbert's brilliant riff on "truthiness" aside, the word "Liar" is still in the dictionary, It does not require a license for its use, although responsibility is certainly required. To say that you can immigrate to Canada in a year is a lie. The backlog's too great for that, and will probably grow longer as the US economy drags down that of its northernmost neighbor. Likewise, photoshopping President Obama's face on a scam (substitute stimulus money for the Nigerian crown jewels) is also a lie. If there's any "leading" in "misleading," the intended path is straight off a cliff, 'k?

Offensive. C'mon, people: Outrage has become a cottage industry in this polarized nation suckled on a sense of its own exceptionalism. Various non-profit groups and belief tanks--I won't dignify their work with the term "think tank"--make their gelt nurturing outrage for reasons both real and delusional. Nothing to see here: Move along.

Uninteresting. Now that's just nonsensical. "Interesting" comes in both flavors: Good and bad. So why would you vote down an ad as "uninteresting" when it made it past the perimeter of your consumer defenses in the first place?

Irrelevant. That more or less begs the question "Irrelevant to what?" Now, you could make the case that Facebook ads are supposed to be targeted to your profile and the content of your "Home" page. Yet you don't have much control over what your friends are posting, so giving something thumbs-down seems suspiciously narcissistic, don'cha think?

Repetitive. I will admit this one's a bit mystifying. "Repetitive" as in "This ad repeats itself" (not terribly likely given the limited verbiage) or "Repetitive" as in, "Get this outta my grill, Facebook!" If it's the latter, I certainly won't traduce it. In fact, booyah for Adam Smith's "invisible hand," in this case smacking this stupidity upside its thick melon!

But, notable by their absence, are a few items that I would suggest be added to the list:
  • Trashy ("Sorority Life," anyone? Like, aren't you in college for something other than an MRS degree?)
  • Insulting to the intelligence of a bag of hammers ('Nuff said.)
  • Grammatically appalling (Dood, u iz not lolcat. Srsly.)
  • Toxic to the self-image Seriously, I don't have to push more than one button (i.e. the remote) to be told that I'm fat, limp-haired, yellow-toothed, splotchy-skinned, wrinkled, and possibly even smelly. Do I really need to sign in to be bombarded with those implications? Pro'lly not, I'm thinking...
  • Toadying Ooh--your 'bot queried my profile for my age. Like I'm supposed to mistake that for "personalization."
I'll cut the sarcasm short here. Not because I'm afraid that I'll deprive the cats (the usual beneficiaries), but because it'll obscure the point, which is that the execution of an admittedly good idea has some ways to go. It's disappointing that a company with the resources that Facebook has can't do better.

Marketing and advertising don't have to suck. I actually enjoyed quite a few commercials during the flush times of dot-com-alot. Moreover, look at the feverish post-mortem on the ads of the Superbowl. There's plenty of proof that the bar doesn't need to be lowered after it's raised. But if the ad-voting does become commonplace across all interactive media, it will be our responsibility to nail that bar in place.

Wednesday, May 6, 2009

Happy Anniversary to a quiet revolution

Normally, it annoys me when the folks to whom I look up appear to congratulate themselves. I'm Upper Midwestern enough that mild self-deprecation is a virtue--despite being more honored in the breach than the observance by yours truly. But Seth Godin is normally so unassuming that I think that he deserves a pass on the anniversary of the Permission Marketing meme.

Godin itemizes some of the takeaways of what he terms his "accidental success." I don't particularly consider it accidental. Mr. Godin's style could have been sub-mediocre, and an editor would have been able to create a passable manuscript. That manuscript would still have sold well. As much as it pains me to say this--English degree and all--writing doesn't matter for this sort of thing. Witness Fred Brooks' The Mythical Man-Month. Brooks' writing is positively strait-jacketed. I can only think that his schoolmarm was a dominatrix on the side--it's just that bad. Fortunately, Godin has more than enough skill--and respect for the craft--that no tradeoffs of substance and style were necessary.

The bottom line is that Permission Marketing made marketing respectable--yea, even bordering on genteel. You don't feel like you need a shower--much less a dip in hydrogen peroxide--after doing it. (Disclaimer: I have worked in marketing, for what I consider a highly ethical company, even when my boss and I didn't see eye-to-eye. That being said, I've seen the power of the temptation for a small company to sell out for national exposure. The cognitive dissonance alone made me cringe.)

But let's say you didn't work for a company you particularly admired. And it was the dot-com era with its Through the Looking-glass surrealism. When everybody commuting to their glamorous do-nothing job in new SUVs--cellphone in one hand, five-dollar mocha latte in the other, driving with their elbows--never did feel quite normal? But, hey, the money was practically free, and you had bills and everyone from village wise man to village idiot was banging on about how the old rules didn't apply anymore anyhoo. Then along comes this guy who says, "Hey, ethical is cool. You don't have to lie to your Mom about what you do for a living if you do it this way. Oh, you'll still make money. Maybe not really easy money and probably not by lunchtime. But you can pay the bills and still look in the mirror."

Of coursepeople will want to buy books that say that. During the "anything goes" upticks and the scraping-the-bottom-of-the-barrel downturns alike. Even as glass-half-empty and cynical as I've become, I want to listen to this guy. If it weren't for Gary Vaynerchuk, I'd say say that Seth Godin single-handedly made me not-dread marketing. As it is, Gary Vee is still in the "spunky sidekick" league. ;-) That, folks is one heck of a feat.

Tuesday, May 5, 2009

Cliques: a vignette

Draw your own conclusions about tribal dynamics here:

My husband and I are taking the same session of the same class. The classroom has a center aisle, flanked on either side by four rows of three seats each. From the perspective of someone standing at the very back of the aisle looking at the front, my husband took up residence in the middle of the right-hand second row. I sit immediately to his left. One of his co-workers sits directly in front of me. Another of his co-workers sits in front of my husband. The house-mate / landlord of the latter sits to the right of the second co-worker, i.e. the upper right-most seat. The guy who likes to set up basecamp at his computer sits to my husband's right. The light-haired guy who doesn't say much is directly behind me. The dark-haired guy who also doesn't say much is directly across the aisle from him, although he's been known to sit directly across the aisle from me.

Got all that?

Good.

But we're closing in on the end of the semester, and someone (not enrolled in the class) needed something that only that classroom/lab could provide. She sat where my husband usually sits. My dearest relocated to the seat closest to the aisle in the right half of the front row. Preferring to sit next to my husband, I took up position at his left. But here's where it becomes strange--at least for someone as human-clueless as I. The co-worker who normally sits in front of me sat behind me instead. The basecamp guy took his usual seat. The other co-worker and his roommate took their posts on either side of the "interloper." Only the two guys who normally don't say much stayed in their typical seats.

I'm sure that the number of sociology/psychology professors or consultants could explain the mass-shuffling triggered by one person's seating choice. But I have to confess myself baffled by the social feng shui that happened tonight. I just know that I'm less discomfited by my own relocation than I was by the others.

As any LOLCat could tell you, hoomins r so weerd.

Monday, May 4, 2009

No whale for this fail

Yes, it's mainly the Midwestern Ethos thing talking, but I don't like having to block anyone on Twitter or elsewhere. Yet in the last two days I've had to block five followers. Mind you, it was likely only one follower, namely a porn-bot with more pseudonyms than Natty Bumppo.

But still. Slamming the porch door in someone's face just goes against the grain, y'know? I keep expecting Mom or one of her formidable sisters to chew me out for it. I hate that kind of cognitive dissonance: Don't make me go there!

The motto of the so-called Social Web should be: Interact or stay home. Because the bottom line is that human beings don't "scale," as we say in programming. The interaction itself is--to at least some degree--the value-add. We're wired that way. Period. The cleverest speech-recognition-driven "Customer Service" menu systems in the world only serve to unnerve us more, the closer they approach our perception of sentience. Yet, if my proverbial hair's not on fire, I pretty much dread reaching the "human voice" these days, because I have to don my mental armor to ward off the sales scripts that the so-called Customer Service staff is forced to read. As in, "I just called to tell you that my charges would be coming from Outer Slobbovia from Date X to Date Y. No, I don't want baggage insurance. And I already have life/disability insurance, thank you. Yes, I remembered to buy traveler's checks. " That flavor of nonsense.

Rant aside, fending off some poor grunt clocking in at an off-shored job at the Yertle-the-Turtle bottom of the Ponzi scheme known as [cough] "finance" [cough] is hardly a textbook definition of "interaction." To Twitter's credit, by the time the third incarnation of the porn-bot had attached itself to my account, they'd already flagged it as such because of similar content. So it's nice to know that their defenses against sleazy parasites are evolving, too. Kudos to them for not being blindsided by their own viral success.

Because, bottom line, I spend at least eight hours a day interacting with a computer. If I have to do anymore than that, it should be for the benefit of me and mine alone. Not some shotgun-marketing slob who can't be bothered to learn anything about me before pretending to be my "friend."

Sunday, May 3, 2009

Confession of a formatting freak

Remember George Carlin's question, "Why is it that anyone who drives slower than you is an idiot, and anyone who drives faster than you is a maniac?"

Sigh. I feel like I'm being haunted by George today, as I try to keep perspective on the mass of so-called "instructional" code that is the basis for my homework project. That's not going so well, actually. Not the perspective part anyway.

And yes, yes, yes: I absolutely grok that your baby is always more beautiful than anyone else's baby. Come to think of it, I do feel rather maternal at the moment, wanting to glare down at the code's author, demanding, "Would it killlll you to use a little whitespace now and then?!?!"

But, in a sense, the fact that our coding styles are so poh-tay-toh, poh-tah-toh (okay, make that poh-tay-toh, parsnip) is a bona-fide mercy. To wit: The fact that I...errr..."tweak" the code to make it "mine" (e.g. Javadoc comments, multi-line if-statements, global variables flagged via"this-dot," setters-before-getters, and open-curly-brace-on-a-separate-line-darn-it-already, ad nauseum) means that I can't skim. I have to quote-unquote improve every single function of every single class, which slows me down enough that I have a passing chance understanding what's actually going on.

Which isn't the worst thing in the world. Because we all know that, no matter how good (or fetid) the legacy code is, knowing where the proverbial bodies are buried is at least half the battle, right?

Saturday, May 2, 2009

Why not a programmer laureate?

It was one of those link-off-a-link-clicking situations. Not quite the Hansel-and-Gretel path of moonlit breadcrumbs, but close: The UK has crowned it new poet laureate (apparently, a term-limited gig).

Power and brevity vie for the title of poetry's foremost virtue. (Other than a keen appreciation of your staggering ignorance of your mother tongue, that's the big take-away of an English degree.) That goes for the best poetry, anyway. Not the dolce far niente stuff of shepherds panting after milkmaids-a-Maying that was sanitized for your high-school textbooks.

Yet the same power vs. brevity question can be said for programming. And the differing purposes of code are varied like poetry: There is the bling meant to catch the eye (like the Hallmark card). There is the metered kow-towing to aggrandize the egoes of the powerful (a.k.a. the pointless feature some corner-office "designer" insisted you add before release). There is the taut minimalism of the late-cycle hack (not unlike the sparseness of the street poet's oevre). There is the self-indulgent navel-gazing of the student-programmer that shuns mere evolution in favor of revolution. And then there is the backbone code--almost forgotten behind its antediluvian "last modified" file date--that allows us to peek at the almost alien world of the past, giving us fresh insight into why we do what we do.

It's wishful thinking, I know, but it would be nice if programmers had a lofty enough opinion of their craft to select their own laureate. Surely, with all the CVS/SVN/Git/Etc. repositories in place, authorship would be easy enough to establish. The only question is: Is the laureate entitled to ~600 bottles of sherry? ;-)

Friday, May 1, 2009

Frivolous Friday, 2009.05.01: Haiku edition

For the programmers in C (and its cousins):
A lack of closure
Brings chaos and much sorrow:
Missing curly-brace.
And the Java programmers:
I am the Applet!
Discard what you thought you knew:
My own zen have I.
Or any programmer using the average IDE:
Byzantine menus,
Matroishka project structure
All for "Hello, World!"
And the proud owner of a new PC/laptop/netbook/Everygadget (programmer or not):
So shiny! So sleek!
I go on sale tomorrow.
New version next day.