Let me know if you’re a rock-solid programmer and would be interested in working with me on a fun, email-related project in C#. Could turn into something great; it all depends on you. I won’t post more details here, inquire if interested.
Month: December 2006
Top Searches 2006
The Windows Live team just posted the top searches on Live.com for 2006.
Yahoo posted it’s top 2006 searches last week.
Google has yet to weigh in, but here are last year’s top searches.
Interestingly, Microsoft’s top search was for Ronaldinho, while Yahoo’s top search was for Britney Spears. Ronaldinho doesn’t even rank on the Yahoo top-10, and Spears ranks #4 on Live. Likewise, #10 on Live is Rebelde – apparently a popular Mexican television show.
I’m guessing these rankings are not very scientific.
Sneaky Opt-In UI
Opt-in UIs are all the rage in software these days. With prices dropping, software vendors need you to opt-in to the stuff they know you don’t want so that they can stay in business. It may be an opt-in for the company’s XYZ service, or it may be an opt-in for the company’s XYZ mailer, or it may be an opt-in to having your kidney donated to monkeys. How do you get users to opt-in when you know they don’t want to?
Today I ran across a sneaky UI which does this very well! It is a simple matter of mixing metaphors between checkboxes and radio buttons. What happens if you display checkboxes to the user, but make them behave like radio buttons?
In typical user interfaces, when you offer a user a choice of something, you’ll use a “radio button”. The user can select one item from the list, and the user knows that when they select one choice, it will automatically unselect the other choices. It’s like the old multiple choice tests in school. For example:
- Would you like your burger:
Similarly, checkboxes are used when you offer a user multiple choices, and the user can independently check off zero, one or many of the items they want. For example:
- What condiments would you like on your burger:
What this tricky site did was to use checkboxes when it really needed a radio button. This completely fools the user. I saw the checkbox, clicked it, expecting it to uncheck, and then thought I must have miss-clicked when it didn’t uncheck. Only by checking the second item in their list did the first uncheck! Strange!
This is pure-genius! It is so easy for the user to click the checkbox, expecting it to uncheck, and then proceed. The company providing the site not only gets you opted in when you didn’t want to be, but it also has a plausible deniability if ever questioned on the matter! (Oh, we thought this was a good UI. The user can opt-out, see, just check that box…)
Looking Forward to Vista
Since a few of my colleagues have thought I’m too pessimistic on Microsoft, I thought I’d share with you my thoughts on Vista. This weekend, I had to reinstall the OS, and I was somewhat lamenting that I don’t yet have a copy of Vista to install. I don’t know if I’ll go right out and buy a copy (I’m just too cheap). But here are some things I look forward to:
1) Starting your PC quickly. Turning the PC on and off should be lightning fast. The Vista team agrees, and they’ve been working on it. Jim claims that a PC left on 24×7 will save about $50 per year in electricity. Well, we already discussed that I’m a cheap bastard, so you know I’m excited about that. There is also an interesting technology called ReadyBoost/SuperFetch which claims to more predictably know which applications you need loaded into memory before you need them. It’s hard to know if it works, but it sounds like a good step.
2) Security. As a developer, security tends to get in my way, so I don’t care for it much. But there is no doubt in my mind that Vista’s addition of integrity checking is going to help. The truth is that most hackers comprimise systems by using the same types of tricks over and over. Eventually these exploits become known and tools are created so that ‘script kiddies’ can use them on their own. Vista conquers several of these, and comprimising one area of the system is less likely to give you a ticket to other areas of the system. I particularly like the fact that you can’t run anything which needs elevated privileges into the startup sequence (which hackers previously used to reinstall their malware on every reboot so it would never go away).
Unfortunately, the basic problem of human error (“Wow, someone sent me an email with Free, Live, Hot, Naked Women! Let me run this application!!”), remains unsolved. The elevation prompt keeps the lawyers happy though.
3) Windows Movie Editing. Like most everyone with a PC, I have tried the Pinnacle Movie Maker software that came in various bundle deals over the past 10 years. But, like everyone else, each time I tried I discovered it was horrible and basically didn’t work. I don’t know why video editing has remained elusive on the PC, but it has been broken for so long, I’m still a bit skeptical about Vista. Sheepishly I admit, however, that I’m looking forward to trying this out. Somewhat related, here is an article which says that Vista’s graphics/media upgrades will create $12 in economic growth for every $1 of vista earnings. In other words, because it will be easier to create content, users will do more of it, and that will drive tech growth in other businesses, for peripherals, cameras, etc. I hope he’s right – everyone is a winner!
(BTW – what do you think this gadget does after the countdown reaches zero?)
How to call GetLastError in the Debugger (Visual Studio)
Every time I debug with someone else at their machine, they are surprised by this little trick. So I will post it here.
In Windows programming, you often have Win32 calls which return an error, and you then need to call GetLastError() in order to find the real error number. If you are in the debugger, you don’t need to modify your code to call GetLastError at that point.
Instead, just add “@err” or “@err,hr” to your debug watch window. Now it’s more like looking at errno.
The Spirit of Christmas
Must Have Software
Well, my motherboard died over the weekend, so I had to rebuild and reinstall everything. Must have software is the software you install first, right? Here is the list, in order.
- Windows Server 2003
- Motherboard Drivers
- Windows Update –
- Win2K3 SP1
- About 49 other patches
- Microsoft Office
- Microsoft Lookout
- Microsoft Visual Studio 2005 Professional
- Microsoft Money
- Google Picasa
- Google Toolbar (got a big ad when browising Google’s homepage)
- Macromedia Flash
- Van Dyke SecureCRT
- Motorola Phone
- Techsmith SnagIt
- Windows Live Writer
- Macromedia Fireworks
Lots of Microsoft in that list!
Winning the War
Robert Gates today said that he thinks we aren’t winning the war in Iraq.
Gates is wrong. I don’t know what definition of “win” he is using, but we completely won. We dismantled their government, ousted their leader, put him on trial, and eliminated a huge segment of their military. The country has been conquered and we now occupy it. If we didn’t win, what else would it take before Gate’s thinks we are winning?
Let’s bring everyone home. Let’s not do it over a month, or even over a week. Call up the Marines now, and tell them to pack up and come home. They won, they did great work. They should be proud, and we’re very grateful.
Understanding Google’s Indexing
Matt Cutts posted a fantastic description of what happened to a hapless Webmaster when his site was hacked and delisted from Google.
I thought it was pretty interesting to know how much detailed analysis went into the problem, and I was impressed by Matt’s professionalism. Like Matt, I hope that we (as software professionals and as an industry) are able to get better over time at letting people know what is going wrong. But I think it’s pretty amazing how much self-diagnosis some of our modern services are already doing.