Monday, September 28, 2009

Every time I create a blog—and how sad is it that I can even use that phrase; most people only ever have one blog—I do my best to keep Blogger’s little “navbar” at the top, so that you can use the search feature. (The one exception is the serna Book Blog, where I just couldn’t make it fit.) Really, it’s not even for your use, it’s for mine; if I want to refer to a previous post I’ve written, I want to be able search for it, and find it quickly.

But there’s one problem with the feature: it doesn’t work. You’d think that implementing a search feature for a blog should be easy; I’m not even looking for PageRank or anything, just a simple text search, but it just plain doesn’t work. Since I started this blog, there have been isolated incidents when it did work, but lately it hasn’t worked at all.

And when I say “it doesn’t work” I mean it doesn’t return any results. I can go to that little search box and type in a word, and Blogger will tell me I got no results; I can do the same search on Google, and tell Google to only look at results from this blog, and Google will find the results. How can an external search engine find results when Blogger’s own search can’t?!? (To do this in Google, use the site keyword; e.g. to search this blog for the word “multitask” you’d search for this:

Now, this blog has been March of 2005, but I won’t go back that far. Let’s just assume that the feature has only been broken since I updated to the “new” Blogger, in January of 2007. (I love the irony of linking to a post that I’d meant to delete, and never did.) Even if the feature has only been broken since then, that’s still two and a half years that the search feature hasn’t worked. And, as I say, I always ensure when making updates to the blogs’ templates to keep that “navbar” handy for my readers, because I’m always assuming that some day Blogger will fix it. It only occurred to me today that two and a half years is plenty of time to fix something as simple as a text search, so if they haven’t done it by now, they probably never will.

If I ever get a couple of hours of spare time, I guess I should remove all of the navbars, and implement search boxes on all of my blogs, that use Google instead of Blogger’s search.

I was talking with some folks on Friday about multitasking, and about the fact that the human brain just isn’t capable of it. They’ve done study after study, and it turns out that doing multiple things at once is much less inefficient than doing each thing, finishing it, and then starting the next thing. Your brain can’t do two things at once, so it has to keep switching back and forth between activities. And if you’re reading that and thinking that you’re the exception to the rule—“but serna, I can multitask just fine!”—you should also know that those studies also show another interesting factor: The people being studied always think that they’re being more efficient, when they’re multitasking, even though they’re not.

So after having this conversation on Friday, today I read a post on Coding Horror about The Multi-Tasking Myth. He even had a quote from Joel Spolsky on the subject:

The trick here is that when you manage programmers, specifically, task switches take a really, really, really long time. That’s because programming is the kind of task where you have to keep a lot of things in your head at once. The more things you remember at once, the more productive you are at programming. A programmer coding at full throttle is keeping zillions of things in their head at once: everything from names of variables, data structures, important APIs, the names of utility functions that they wrote and call a lot, even the name of the subdirectory where they store their source code. If you send that programmer to Crete for a three week vacation, they will forget it all. The human brain seems to move it out of short-term RAM and swaps it out onto a backup tape where it takes forever to retrieve.

And I can really relate to that quote, because I’ve been doing some programming lately. We want to do something fairly complex at work, and I wanted to build a reference implementation, that the developers could work from. If they got stuck on any particular piece, they could look back at my implementation, and find out how I’d overcome that issue. But I was very inefficient; it took me days to do something that should have been doable in a day, because I’m constantly being interrupted for this or that meeting, or an urgent question. And as a result of that (along with the fact that programming is not a normal part of my job anymore, and I’m out of practice), I wasn’t able to maintain any of those “zillions of things” in my head. (The Jargon File calls this “juggling eggs”.) I’d create a member variable I wanted to use somewhere, and find myself constantly scrolling back and forth, saying, “what did I call that variable?” and then, a few minutes later, “wait, what did I call that variable again?”

I very much want to turn this into a diatribe against BlackBerries, but I won’t. But I want to. So I’d better stop typing now.

But then in February my phone died, and I had to get a replacement, so I bought the iPhone. Which is also a beautiful device. (The Pre is beautiful in a certain way, the iPhone is just plain beautiful.) But when I bought the iPhone, it had not yet been announced if or how the Pre would be launched in Canada; I still assumed that Rogers would get the Pre, because, let’s face it, Bell Mobility hasn’t had a lot of cool devices over the last number of years. So when I bought the iPhone, I made a critical mistake: Assuming that Rogers was going to get the Pre—and that I could switch to the Pre when it came out, and let Andrea take my iPhone—I agreed to sign up for a three year contract with Rogers, so that I could get the iPhone cheaper.

So when Bell announced that they were getting the Pre, and when I found out that Rogers wasn’t, I was disappointed; I didn’t want to have to switch my service to Bell. But the real pain came the week that Bell was launching the Pre. I was getting all excited; I went to Best Buy, because they had those little plastic display models of the Pre, so that I could touch it. I read up some more literature and watched more videos of the Pre in action.

And then I called Rogers, to deal with that pesky three year contract issue.

“How much would it cost me to break my contract, if I left now?”

“Well, let’s see. It would cost you $400 to break your voice plan—$20 per month, to a maximum of $400—and an additional $100 to break your data plan—$X per month to a maximum of $100. So it would be $500.”

“Oh. Well… thanks for your time.”

So no Pre for serna. I’m not paying $500 to break my contract. (I would have been willing to pay something—I’m not sure how high my limit would have been, but something—but $500 is too much.)

Palm will be launching a GSM version of the Pre in Europe later this year; some are mentioning the possibility that Rogers might also launch a GSM version around the same time. That would be nice. But in the meantime, I’ve got the iPhone.

Which raises the question of what Andrea is going to do; she wanted the iPhone, when I was done with it. Her phone is lousy, and doesn’t always work. What do we do about her? Do we wait until Rogers [hopefully] launches the Pre, and then do what we’d originally planned to do? Or does she give up her phone altogether, and go to Bell, and get the Pre herself?

Who knows. When my heartache wears off, we’ll think about it some more.