September 2008

A Case of the Mondays

Yesterday morning, I got a rather snippy response from a software support forum. That, plus what passes for unusually dreary weather here in Huntington Beach, reminded me of a practice I used to keep – don’t bug people about anything on Mondays, or before lunch. Especially Monday before lunch. If anyone’s going to be out of sorts, it’ll be then. (these days, it’s difficult to apply that rule since I deal with clients and vendors in different time zones – I suppose that’s increasingly true for everyone)

You can apply the rule if you’re on the receiving end, too. Before emailing or posting that long diatribe of a response, go to lunch. Besides feeling in better spirits and sleepy (if you’ve bellied up to the trough at an Indian buffet), you might realize that the question you got was totally different than what you’ve thought. Just letting a message sit for a while has saved me some long-winded replies.

And read what you write. If I can’t seem to expand on a point without it getting tedious or taking on a negative tone, I’ll just throw out everything but the high points, or sometimes just give up on the message. It seems like an obvious point, but clearly there are those who could benefit from a “Do you really want to send that?” popup box. A micromanaging employer who was forwarded my request for a box of kleenex from the secretary emailed me saying I wasn’t polite enough, and then proceeded to say that was typical of insensitive programmers. When I didn’t reply, she kept sending longer and more annoying emails. It was like having an insult comic as your boss.

In a more succinct display of irony, another boss of mine emailed me on a company list chastising me for publicly chastising another employee. A fun part of that episode – another manager thought I was criticizing her (since I didn’t name my target) and broadcast an angry retort but then panicked and tried to cancel the email. So when she apologized to me about her message, it turned out I was the only one who hadn’t seen it and I had no idea what she was talkingĀ  about. Ah, the corporate life…

Programming

Comments Off

Permalink

Four More Years

The best reason to vote McCain-Palin? Four more years (or maybe eight!) of Tina Fey‘s Palin impressions. The first one was funny,

but the second one from last weekend was downright “adorable”:

Politics
Television

Comments Off

Permalink

Waah, WaMu

I was startled by the news that Washington Mutual has been taken over and sold by the feds – startled not so much by the news that they failed, but that they managed to get so big.

Way back before their marketing folks started calling it “WaMu” (and now their banking experience is touted as “whoo hoo”), I involuntarily became a Washington Mutual customer after they had taken over my bank Great Western. I stayed while they ruined once-excellent customer service (as others waiting in the suddenly longer lines agreed), but then they started nickel-and-diming me on my overdraft account. I discovered when sending in a payment coupon for the full balance, they charged additional interest for every day after the bill was sent, so you could never pay it off completely without visiting a branch, asking how much you owe now, and paying it off right there. And I figured while I was doing that, I might as well ask them to cancel my account.

A year or so later, I read that state attorneys (from Washington, I think) had sued Washington Mutual for such practices, and there appears to be no shortage of lawsuits and ill will, for example, listed on this unsightly site (although it is designed by a professional web designer!) So you can offer inferior customer service and fleece customers with deceptive practices as long as you keep growing by acquiring (and then ruining) the competition and blow a lot of cash on slick advertising campaigns? It’s hard to believe that it could all fall apart.

Consumer

Comments Off

Permalink

Battle of the ChatBots

One of my less-smart career decisions was in joining a startup in Venice, CA that aimed to deploy talking 3D characters to field customer support requests. Attempting to beat the Turing Test is a lofty challenge, but after all, I did leave the Bay Area, filled with MBA’s starting B2B ventures, to find something interesting. My mistake was selecting a technology company run by Hollywood producers (didn’t work for Yahoo, either) and not testing the demo myself – the snarky animated figure couldn’t even respond to “Hello”. (You lost me at hello)

Still, just for fun, I’ve been meaning to implement yet another front end to Eliza, but then I read about the more modern AliceBot in Bruce Wilcox’s gamasutra article Beyond AIML: Chatbots 102.

So I decided to have them talk to each other, using web-based
Eliza and AliceBot implementations. The conversation bogs down quickly:

Human: How can I help you?
ALICE: Just keep talking to me as long as you can.
Human: Do you wish to as long as me?
ALICE: OK, I will as long as you.
Human: Do you wish to will as long as me?
ALICE: OK, I will will as long as you.
Human: Do you wish to will will as long as me?
ALICE: OK, I will will will as long as you.

Programming

Comments Off

Permalink

Stupid Recruiter Tricks

After the umpteenth annoying recruiter email, I finally turned off resume@technicat.com, the email address on a somewhat dated version of my online resume. I guess email address harvesters don’t go through PDF files, since I haven’t received much spam on that address, but the recruiters are nearly as annoying:

  • emailing me requests for my email address. Who do they think they’re emailing?
  • request for my resume in Word format (so they could remove my contact info, one recruiter told me). Don’t they know how to cut and paste?
  • querying whether I know anyone who might be interested in the position. What am I, a recruiter?
  • mailings that are obviously mass-mailings
  • mailings of positions that aren’t even in my field
  • a recruiter mass mailing an announcement during the housing boom that was switching to real estate. Followed a year later by an announcement that he was returning to recruiting.
  • a recruiter who claimed the potential employer knew me from a previous company – turned out to be a standard line she used on everyone
  • a recruiter who wanted to know why I didn’t use recruiters, and then when I replied that they tend to be a waste of time, proceeded to argue with me and waste my time
  • a junior recruiter Remington International who warned me not to show up late and then kept me waiting for half an hour
  • same firm had me enter my info online before the interview, and then I had to re-enter the info on-site because they couldn’t figure out how to access it
  • same recruiter wanted the name and phone numbers of all my employers so they could solicit new business
  • a senior recruiter at Remington International who told me if I didn’t call within a couple of weeks, they would forget about me (at least they were honest about it)
  • a recruiter at General Employment who was incapable of arranging an interview with more than a few hours notice
  • same recruiter, after the boss took over and scheduled an interview, unilaterally decided to lower my asking salary (the originally listed position salary) by $20k. Thanks for the representation!
  • a recruiter who wanted to send my resume to multiple employers and, when I said I wanted to hear from the first one, said “they haven’t returned my call, what am I supposed to do?” I don’t know – maybe, your job?
  • a recruiter at Gravity Tech who rewrote my resume with buzzwords (this is why the want it in Word) so that the interviewer was totally confused. I had to give him a copy of the original I had with me.
  • apparently more unmarketing by Gravity Tech, after they asked me for more leads and managed to get my resume rejected from companies that had earlier asked me directly to visit them
  • dot com bust – Gravity Tech renames themselves to Gravity People
  • a recruiter who kept sending me email with no useful information and “call me!”
  • recruiters who want me to apply for a job without knowing what it is (I was floored when a recruiter from Mary Margaret sent me an email actually naming the hiring company)
  • on the other side, when I was hiring, a recruiter who decided to just send candidates over whenever he felt like it

I can’t believe I let these people waste my time all these years.

Programming

Comments Off

Permalink

A Game Built from Scratch

Here’s a fun little exercise in futility, built from Scratch.

Games/Graphics

Comments Off

Permalink

Stop Nagging Me

For a measly $20 a year, I get to be a card-carrying member of the ACLU (and unlike Dukakis, I’m not embarrassed to admit it). But I wish they’d take it easy with their mailings. I got a 2009 membership renewal notice last week urging me to renew now to save them the cost of mailing additional reminders in the next few months. You know what would also save them the cost of the mailings? Not sending them. (And since privacy is one of their issues, they could do better than their opt-out mail list sharing policy) Another charity I regularly donate to, Doctors Without Borders, will sometimes send me several mailings in a few weeks. Usually, I keep the first one around intending to send in a donation, and then when they pile up, I throw the whole thing out during my weekend cleaning. After all, they’re going to send another one, right?

But nothing beatsĀ  Symantec‘s Norton product for pure annoyance (well, besides spam, of course). Besides a confusing user interface (I can’t even tell what the name of the product is – from web searches I gather it’s probably Norton 360 or Norton 2009 or something like that, but on the screen I just see there are two products apparently glommed into one – Norton Total Protection which apparently isn’t total because there’s a separate panel for Norton Internet), it has a 30-day countdown for subscription renewal. It sounds like (but doesn’t clearly state) that the renewal is only required for getting updates of virus definitions and such, but after seeing a popup every day saying “You have 30 days left…”, “You have 29 days left….”, “You have 28 days left…”, I just followed the most common advice on the web for turning this off and removed Norton entirely.

I guess when you have a pilot fish relationship with the notoriously insecure shark that is Windows, you can just rest your business on OEM installations for years and years, not bother to improve the user interface, and keep all your annoying habits.

Consumer

Comments Off

Permalink

Just the Facts

While the news anchors and pundits (like Wolf Blitzer in his Situation Room and “the best political team in television”) revel in the presidential campaign, I find it depressing to hear the candidates stoop to he-said-she-said level of repartee (which reminds me of my high-school debate team classmates who practiced talking fast so they could win by spouting more points than their opponents). And disingenously taking each other’s remarks out of context reflects poorly on their honesty or their intelligence. Or ours. Next time you listen to one of their speeches or the sensationalistic or partisan spin on the cable channels, do your own Fact Check.

Politics

Comments Off

Permalink

Seven Habits of Highly Effective Programmers

I’m pleased to see a continuing education course has listed one of my essays (by far the most popular one) as its first reading assignment. I wonder what the students wrote?

Assignments

To be completed before Monday, September 15th 2008

Assignment 1 – Programming Concepts

Add your work to your Wiki page FirstName LastName

Part One: Read & Write

Read The Seven Habits of Highly Effective Programmers

Write up to 500 words in total about two or three things that you have learned, and how you will program differently because of that learning.

Programming

Comments Off

Permalink

To Program Is Human

When I worked in Silicon Valley, it seemed everyone wanted the title Software Architect. It’s a sexy-sounding title, maybe because in the movies all the cool people work in advertising or architecture firms, but in the real building world, while the architects get the glory, someone has to put it together and make sure it doesn’t fall apart.

Looking at other engineering fields may sound dull (that is why I majored in software engineering, after all), but reading a few books by Henry Petroski fixes that. The Evolution of Everyday Things and Small Things Considered: Why There is No Perfect Design are reminiscent of Donald Norman‘s The Design of Everyday Things but with the focus less on why is everything so badly designed and more on how we got there. Wonder why there seems to be a new hot scripting language every year? Look at how forks evolved from sharp sticks to two-tine prongs and then the tines kept coming, along with endless variations of curvature and finish. Much of the impetus is fashion (and the Emily Post comments on silverware foreshadow the code style critics of today), but the five hundred variations of hammer design found just in seventeenth century England are likely due to the fact that when you have a hammer, everything really does look like a nail. This engineering as evolution is consistent with Eric Raymond‘s observation that open source projects tend to start as itches that need to be scratched.

The belated advent of industrial design, exemplified by the career of Raymond Loewy, has its counterpart in today’s GUI’s. Starting with the Mac desktop interface, form followed aesthetics along with function. But these are just fun analogies – the book that gives me pause is Petroski’s To Engineer Is Human: The Role of Failure in Successful Design. I can’t think of the software equivalent of a metal fatigue crack that just keeps growing, since software (at least once you stop coding) is static. But, as with the Liberty Bell, I guess there is software that you use gingerly, knowing it’s frailty (click slowly and carefully!)

More obvious lessons come from examples like the Tacoma Narrows bridge which oscillated wildly and collapsed under high winds. (Watch those boundary conditions!) Not only lessons learned, but lessons that should have been learned already – it’s long been practice for soldiers to stop marching in sync when they cross a bridge. And then making expedient ad-hoc design changes and material substitutions is just asking for trouble, as with the Kansas City Hyatt Regency disaster.

When there’s no long-established precedent, sometimes there are more recent clues of something amiss, as in damaged O-rings in missions preceding the Challenger disaster (more low-level examples in software – there’s a race condition? Put in a sleep call. You’re getting an exception? Wrap an “ignore-errors” handler around it). Ignore at your own (or others) risk. Oh, yeah, and when the engineers you trusted to build the thing are concerned, listen to them.

But often you’re building something new, maybe not completely new, but new enough that test as you might, it fails in some unanticipated manner, like the Comet jet that unexplainedly disintegrated. Then you literally have to pick up the pieces (in this case, in the Mediterranean) and perform forensic analysis exceeding anything you’ve seen on CSI and perform test after test (with the Comet, submerging it and simulating thousands of pressurizations/depressurizations). With software, fortunately, we usually have the software intact and the input data to replicate the problem, although there are a few cases like spacecraft gone loco that would drive me to something less stressful, like heart surgery.

Petroski ends the book with a plea for transparency in the analysis of engineering failure. In game development, we have the excellent tradition of “post-mortem” articles written for Game Developer Magazine and archived on gamasutra, but those are mostly for games that have actually shipped with enough success that we want to read about them. Not much on outright failure. And in the rest of the industry, nada. How about a book on notable software failures – To Program Is Human?

Programming

Comments Off

Permalink