Friday, December 31, 2010

Frivolous Friday, 12.31.2010: Insomnia...

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

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

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

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

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

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

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

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

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

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

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

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

Thursday, December 30, 2010

Another programming/real-world intersection

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

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

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

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

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

Wednesday, December 29, 2010

Smart phones, dumb decisions

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

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

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

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

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

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

Tuesday, December 28, 2010

A (cynical) thought on maintenance vs. new development

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

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

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

Monday, December 27, 2010

The subtext of an important anniversary

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

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

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

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

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

Sunday, December 26, 2010

Another use for source control

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

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

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

When did I do that?

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

Friday, December 24, 2010

Frivolous Friday, 12.24.2010: Failed game concepts

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

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

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

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

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

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

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

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

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