Crouching tiger, coding monkey

A memory leak in the alluvial dampers

Filed under: Programming — Grant July 22, 2008 @ 12:46 am

The last few days I’ve been spending some quality time with my friend Shark doing a lot of performance testing. I actually kind of like that sort of work. I also have a feeling I was dropped a lot as a child.

Anyhow, as I was running some scenarios I had a bit of an epiphany. In fact, the more I thought about it the more I was amazed that I hadn’t thought of this before.

C++ is the Millennium Falcon.

Remember that childhood head trauma bit? Seems fitting right about now doesn’t it. Let’s look at a comparison though.

Are they both fast?

  • C++: My Shark tests say so and people always ask if Java can be as fast as C++.
  • Falcon: It did make the Kessel Run in less than twelve parsecs after all.

Are they both ugly looking?

  • C++: It’s no Perl, but I wouldn’t expect it to win any beauty pageants soon.
  • Falcon: Wikipedia says it was inspired by a hamburger with an olive beside it. A hamburger.

Are they both powerful?

  • C++: Piles and piles and piles of C++ code run all over the world on about every platform imaginable.
  • Falcon: It blew up Death Star #2.

Note: I admit that blowing up Death Star #2 isn’t really as impressive as it sounds. The first Death Star mission was repeatedly labeled as suicide and was only successful because of the intervention of a quasi-religious miracle. The second one had what amounted to a four lane highway built in leading to the biggest “Don’t hit me here or I’ll explode” target since King Hippo.

That all being said, it was still a noteworthy accomplishment.

Do they both fail in spectacular ways at the worst possible time?

  • C++: It’s author has said, “In C++ it’s harder to shoot yourself in the foot, but when you do, you blow off your whole leg.”
  • Falcon: Routinely shuts down requiring a reboot by punching the doorframe.

Do they both have big, hairy, incomprehensible partners?

  • Falcon: Chewbacca the Wookie.
  • C++: The STL.

You have to admit, the similarities are pretty startling.

Oh, and Han shot first.

Eating Klondike bars in the Arctic, with the polar bears

Filed under: Food — Grant July 9, 2008 @ 10:26 am

So apparently our guy Yan has a minor, minor, minor (I mean really minor) role in his friend’s contest video. It is a stretch role for him, “Friend eating Klondike bar #4.” I’d say his performance is solid but not spectacular. I don’t think he brought the character to life like “Friend eating Klondike bar #1″ did.

Anyhow I hope his buddy wins.

And I hope I can get the song out of my head.

Click to see:

Life.isTooShort(true);

Filed under: Development, Happiness, Life — Grant June 20, 2008 @ 6:24 pm

So I have two interesting pieces of news.

1. I know now for sure that a Honda Civic can be rear ended by a Ford F-150 and drive away with far less damage. In fact, the truck couldn’t drive away period.

2. I’m a developer again.

The first item is pretty self-explanatory. The second requires a bit of a story.

A few weeks ago I went to a funeral for my wife’s Uncle Craig. Out of the clear blue sky he had a heart attack even though he had no previous heart problems. Just days before we had been up for his daughter’s wedding where he walked her down the aisle. For the funeral she had to be called back from her honeymoon in Jamaica.

He was only 52.

Too young, too early, too unexpected, too unfair, too badly timed, all these things apply. I’ve been to funerals before but this particular one stood out. This was the first one that I’ve been to since I’ve had my own kids. Looking over at his kids, even though they are adults now, I couldn’t help but think of mine.

I couldn’t help but think that life is too short.

When I first met Craig about 15 years ago he wasn’t much older than I am now. It was clear from the beginning though that he was a stand up guy. Even though the extended family is large and a gathering, like say Christmas, is best described as “freaking humongous” he always had time to come say hello even though I was just the boyfriend of one of his many nieces.

Over the years I got a chance to watch his kids grow up. His daughter is now a beautiful school teacher and his sons are the types of guys that you want to be in your crew, the kind that you know will have your back. I hope my kids turn out that well some day. I hope I do as good a job as he did.

While I hate to think about it, watching all this made me ponder, “What if all I have left is twenty years?” I remember when that seemed like a long time. Somehow it doesn’t seem like that anymore. It’s cliché to say, “Live each day as your last” so I won’t do that. Besides, that’s just not possible. What I will say is that you shouldn’t live each day doing something that you aren’t truly happy doing.

It is with all this in mind that I moved back to writing software. It has been an interesting year in the marketing/strategy world and I now know that my brain is not wired for that type of work. Thinking about positioning and messaging are the sorts of things that wake some people up in the morning, including some people that are very good at it here. I could do the work but it wasn’t my ambition. It isn’t who I am. And there’s not enough time to spend doing something that isn’t you.

Life is too short.

So I raise a beer to Uncle Craig. Goodbye, God speed, and thanks for inspiring me to try to find happiness.


Craig Snyder (1955-2008)

Dance paper dance

Filed under: Paper, Writing — Grant June 12, 2008 @ 9:47 am

There’s a brand new whitepaper available that was written by Keith, one of our actual writers. (As opposed to the monkey with a keyboard that posts to this blog.) He knew all about the single space nonsense that messed me up for a solid week and can literally make words dance on a page.

Darnedest thing I ever saw, words dancing like that. And to the Cha-Cha Slide no less.

Anyhow the paper has the catchy title of “Quality-Centric Application Lifecycle Management in a Down Economy” which given the economic woes of the country at the moment is rather timely. It’s super good, but my favorite part is this section:

“In a slow economy, businesses carefully consider every purchase, looking for ways to control costs and squeeze as much value as possible out of the money they spend. While flaws in software are always a concern, companies are less patient with them when cash is tight.

Releasing poor quality software builds the expectation that initial releases will be buggy. If a release date slips several times, new and potential customers may assume there is a problem with quality and will be reluctant to buy when the software is finally released. Even a single sub-par release can sow the seeds of doubt. Once doubt creeps into the minds of existing customers, they may resist purchasing new releases, preferring to allow other early adopters to work through the problems, or worse, they may decide not to buy at all.”

That’s a simple point, one that we don’t often think about, but it is absolutely true. How many times have you said you’ll wait for the first dot release or service pack before upgrading? Or perhaps wait for the second model year of a car? Or how about the 3G version of a wireless phone that you may have seen in the news recently?

Why do we do this? Part of it may be that new products don’t have all the features we want. But an even bigger part is that it is ridiculously easy to assume the first version will be buggy. Heaven help you if your products actually live up this stereotype because now it becomes an uphill (read: expensive) climb to get customers to trade their money for your stuff when a new release hits.

And that’s what it is really all about in the business of software. You spend all this time and money creating this new version and what you really want is for customers to buy it. Writing software is expensive and it is the selling of it that covers all those costs. If you have to write a dot release before the cash starts coming in then now you’re writing on credit, and playing with credit is not the optimal situation in down economic times. Sure winning the Google-just-bought-me-do-I-buy-the-black-ferrari-or-red-one-heck-I’ll-just-get-both-why-chose lottery might be a plan where credit spending is a good idea but those are some long odds and it’s a risky bet when it doesn’t come through. Like the shutter the doors and sell off the assets kind of risky or find a new gig kind of risky.

Anyhow there is lots of other good stuff in the paper besides this and I won’t ruin the rest of the story by giving it all away here. Well, I will say this, none of the words in this one actually dance. (I blame the PDF format more than anything.)

Customer support, mother-in-law, you can run but you can’t hide

Filed under: Customer support, Quality, Uncategorized — Grant June 5, 2008 @ 11:25 am

This past Christmas my mother-in-law bought my father-in-law a new notebook computer. It was intended to replace his current laptop, which was so far beyond long in the tooth that it was being sized for dentures. (It was a Pentium II running Windows ME. No, seriously.)

His computing needs are very modest so she chose a budget model from a large well-known manufacturer that was a huge step up from the current one. So long as it was able to accomplish three tasks life would be good.

1. Connect to AOL via a modem because they live in an area that is unreachable by cable or DSL.
2. Play Windows card games
3. Run an old version of Excel to keep track of some finance stuff and some sports statistics.

So that’s the stage, we’re not talking giant needs in computation here. The problem is that after a few months the new computer stopped being able to accomplish item #1. The internal modem would no longer detect a dial tone, and even stranger an external USB modem had the same problem. Blame whomever you want, Vista, the manufacturer, Congress, the French, it makes no difference. The bottom line here is that the thing simply doesn’t work.

After I took a look at it, having to resurrect knowledge of modems that I had purged from memory years ago, I came to the conclusion that they’d need to use the warranty and contact the manufacturer to get it fixed. They’ve had the machine for eight weeks now. The call center in India kept explaining that it was at “our highest level of priority” to the point where the mother-in-law gave up and called the corporate office looking for help. Now she has the direct number and name of a guy there and I’m not even sure he’s in the support division.

My advice to him, get it fixed however you can. Ship a brand new machine if you have to. She’s not shy and is very persistent. If she claims she’ll call you, your boss, your mom, your dog, your cousin’s boyfriend’s college roommate twice removed she’ll do it. I cannot stress to you enough the seriousness of your situation.

What this whole story really highlights is the myth of customer support or rather the myth that it is nothing but a loss vehicle at a company. Sure it can be expensive to have competent, trained people working in support. It can also look mighty tempting to cut costs here. But here’s the trick, nothing, and I repeat nothing, will stand out more in the minds of your customers that good customer support. On the flip side, you can spend as much time as you want with whatever grand methodology you choose creating the most bug free software in the entire wide world but it can all fall apart with poor customer support.

When I had a DVD drive go bad in an iBook the guy at the Apple store immediately offered to swap out the entire computer. When I had a heat shield pull off, out of warranty, on an Acura I used to own the dealer replaced it for free and gave me a loaner on the spot. These are examples of places where I will continue to spend obscene amounts of money thanks to support. I’ll also recommend them to anyone I know that is looking for such a thing.

Heck, one time I even wrote to Wil Shipley of Delicious Monster with a question and I wasn’t even a customer of his. It didn’t matter, fifteen minutes later I got a response. That reminds me, I need to go pick up a copy of Delicious Library 2.

At the same time when I had a furnace go out in the dead of winter and called their “on call” guy to come fix it I could tell that his claims of being booked for the night were false. This was because, well, I COULD HEAR THE NOISE AT THE BAR IN BACKGROUND.

I’ll bet you can guess whether or not they got the business when the furnace finally kicked the bucket two years later.

I don’t usually talk about the internal workings at Seapine but in the case of our support organization I’ll make an exception. I do this largely because of the level of seriousness we take it since we have found, over and over again through interaction with paying customers, that it is a competitive advantage for us. All of our support people are full time employees and all of them actually know the products they support. We don’t have call scripts because that encourages the idea that you can plug just anyone into that role so long as they can read. The entire organization is overseen directly by our VP of Quality so he is responsible for internal testing before release and the ongoing help after release. We do follow up surveys with customers that call or email in making sure that the level of support they received was satisfactory. The majority of them are even located at the same physical facility as the developers. It is a huge deal for us, something that we can provide that others choose not to. It has without doubt made us far more money that it costs.

FAR more money.

Do you know the best thing though? It fulfills the modern American dream. It keeps mother-in-laws from repeatedly calling. (I joke with love. Really. No need to call.)

malloc Wii Fit

Filed under: Programming, Wii — Grant May 23, 2008 @ 12:48 pm

I knew I wanted to write a blog post today and I really had two choices.

1. Join in the debate over whether or not you need to know C in order to be a real programmer.

2. Talk about the Wii Fit

Lots of people are talking about choice number one. Well, perhaps talking isn’t the right word. Flaming? Fighting? Insulting one’s intellect? Yeah, any of those would do.

But we can bang that one out quick; here I’ll take a stand.

Do you know C? – Yep.

Have you programmed in C? – Double yep.

Have you programmed professionally in C? – Yes.

Would you do it again? – Wouldn’t be my first choice but sure why not?

Do you think programmers should know about pointers and memory management? – Couldn’t hurt them. Not that it makes it any fun though. Screwing that stuff up, and it always gets screwed up, results in errors in fun and terrible ways.

Ok, now that that is out of the way on to the Wii Fit. Thanks to the magic of Amazon pre-orders ours arrived yesterday morning. By the time I made it home from work my wife was actively playing the hula hoop game on the Bluetooth scale board thingie while my three and a half year old daughter was standing three feet to the side making hula hoop motions.

Somehow I think Mario Corp. has a winner here with the new to gaming/super casual gaming crowd.

(And what about the Wii Fit commercial with the woman busting out the Yoga? I’ll bet they sold an extra bazillion units on that alone.)

Now we ran through all the unlocked games and exercises last night, and I doubt that it will cause any kind of gastric bypass like results, but one thing does stand out. The silly thing is fun. Who would have figured, balancing on a couple of scales to roll a virtual ball on a virtual board through a virtual hole is in demand entertainment these days.

We’ll have to see how long it keeps our attention, but I suspect with a couple people in the same house playing it the novelty won’t wear off as fast. In fact, I’ll bet right now my high scores on the balance games are being mercilessly attacked while I am hard at work blogging, err, working.

Oh, and to complete the circle from earlier, like all games it’s probably written in C. So if being a real programmer means writing pseudo-exercise console games it looks like C is indeed required.

Well, it might also be C++, but that’s really just C with a compiler messages that read like you strangled a cat. ;-)

USB on a Macbook Pro is a southpaw

Filed under: Apple, Microphone — Grant May 16, 2008 @ 4:14 pm

Today while I was doing some work I had the most recent Macbreak Weekly podcast going in the background. For the second time in the last few weeks one of the hosts via Skype was sounding an awful lot like a Cylon. It turns out the problem was the USB port on their Macbook Pro’s, specifically they were plugging their microphones into the one on the right side.

*Pauses*

*Scratches head*

The deal, it turns out, is that the USB port on the right hand side is connected to an internal hub that runs all the other devices like the keyboard. What this means is that there isn’t as much power to go around and it causes power hungry things like a microphone to behave oddly. The one on the left hand side however is all by itself so with it everything works great.

I find this interesting because the very same thing happened to us when we were recording some audio here. At the time we thought my MBP USB port was ok but that Jeff’s was broken because mine would work while his wouldn’t. Our theory was supported by the fact moving his connection to the left allowed it to work.

(That’s the standard by which to measure broken by the way, when one works and another does not.)

So that’s the scouting report for today, if you are having USB problems on a Macbook Pro try having it pitch left handed.

It was totally Epic

Filed under: TestTrack, Video games — Grant May 14, 2008 @ 6:04 pm

I was, as always on Wednesday, finishing up watching the latest Zero Punctuation review over at the The Escapist when I noticed that they had a new video that is a tour of Epic Games. Epic happens to use TestTrack Pro and it’s always fun to see the inside of a place where our stuff plays a part.

Well, unless the place is a sausage factory. Somehow I think that would ruin pork products for me and that’s way too high a price to pay.

Anyhow, below is the video (slight off color language, consider yourself warned) and here is the associated written article. The joint looks cool and I’m happy that they use our product. All that being said however, I suddenly have the urge to go blow something up…

My favorite features of TestTrack 2008.1.1 (and why that last .1 is important)

Filed under: TestTrack, User Interface — Grant May 9, 2008 @ 2:47 pm

A couple of weeks ago I did a little write up of my favorite features from Surround SCM 2008.1. Unfortunately, afterward I kept getting requests from the TestTrack guys about when I was going to do the same thing for that product. Seriously, night and day, just question after question.

Well, not really, but I’m sure they thought about it. Maybe they forgot to send an email.

Or call.

They never call.

*Sigh*

Anyhow, I had been planning on doing it when the next significant release came out. That all changed this morning.

Jeff and I were talking about the whole single vs. double space after period boondoggle when he mentioned the new TestTrack release, version 2008.1.1. Typically I don’t think much about bugfix releases unless there is some bug that is really annoying me. He claimed, however, that there were two new features in this one. Feeling skeptical I fired up the client to have him show me what had been added.

Oh sweet mother of all that is good in the world hallelujah. I knew these things were coming but I didn’t know it was going to happen now. It’s kind of like finding out that Easter has been moved to today and that the Easter Bunny has left you a basket containing a BMW.

Here is what the defect overview tab looked like before. Notice that the description section has all the line breaks removed making it hard to read for text with lots of paragraphs.

He is what it looks like with the brand new “Show Line Breaks” checkbox checked. That is so much better I can hardly explain it.

The other feature is similar and can be found on the Workflow tab. If you have lots of automation rules set up (which you should) this list can get littered with System Comment items making it hard to see the stuff that a real flesh and blood person did.

But if you uncheck the “Show System Comments” checkbox you get just the actions from the living.

At this point I could feel the eyes water up a bit, but I had to keep my composure since I had someone standing over my shoulder. You know how it is, I’ve to go protect the street cred and all. I’ll leave it at that, there’s really nothing else to be said. Go download 2008.1.1 right now and improve your life. You owe it to yourself.

Having your world turned upside down by punctuation

Filed under: Pretty Darn Useless — Grant May 8, 2008 @ 6:02 pm

Man did I start something today. So I’ve been working on an article that is due in a week or so and the first draft got reviewed today. One of the first comments in the Word document read like this:

“FYI—the standard now is one space after end punctuation. I replaced all the extra spaces but didn’t track them.”

Whaaaaa?

You’re supposed to use a single space after end punctuation? Really? Where did that come from? How long has it been this way?

This naturally led me to walk around and ask anyone I saw how they do it. My unscientific survey came up with nearly a 50-50 split broken into these two camps:

“You use two spaces?”

“You mean you’re only supposed to use one space?”

The latter group typically then had an existential moment where they considered what else is wrong that they thought they knew. At one point the single space people (Jeff, Paula) were standing looking at the double space people (Me, Alan, Tom) with all of us trying to decide which group was crazier. Even the Word grammar checker couldn’t take a stand by making the number of spaces a configurable option. (The weasel.)

I understand the reason for it, typewriters with mono-spaced fonts versus computers and all but I am still shocked that it took until today for me to find this out. What’s even more bizarre is that arguments over this have been happening on the Internet for years.

I still haven’t been able to peg a date on when this changed happened so I would love to know. Until then the one argument that really swayed me toward single space (ignoring of course all the official style guides and typesetters that say it is the way) came from the Wikipedia Manual of Style

“The bottom line for me, however, is the Emacs commands for moving between sentences: M-e moves forward one sentence and M-a moves back one sentence. These two commands are really handy. If you need to navigate long, unbroken lines, like when editing Wikipedia, they are to live by. Oh, but they only work properly when two spaces are put between each sentence.”

If double spaces are the emacs way of doing of things I think it is pretty clear I need to hunker down and teach myself not to do it anymore. ;-)

Next Page >>>