Scott Hanselman

First Rule of Software Development

July 20, '07 Comments [19] Posted in Programming
Sponsored By

fight-club-dvd We had a great email go out today from Brian Windheim, one of the Architects here. He said I could share it. It was sent internally to his team. I like Brian's style.

Frank broke the First Rule of Fight Club Software Development yesterday:

Never commit code just before you leave for the day.

The CCNET (Continuous Integration) build subsequently broke – despite the fact that he ran a local build first – and team members who were still in the office had difficulty progressing with their work for several hours.

First, the remedy.  If this ever happens again, simply revert the source repository to the prior known-good state using SVN’s revert changes.  Don’t try to apply band-aids, and don’t waste time solving a problem that the original developer could probably solve in about two minutes.  Using the tools correctly saves oodles of time. 

Second, the reaction.  Folks, don’t panic.  Ever.  If a quick peek doesn’t find the answer, don’t be afraid to pick up the phone and call the dude who broke the build.  In 15 years of software development I have many times been the guy that broke the build, fixed the build, got mad when I was working at midnight to fix something broken by the guy that just went to Mexico on vacation for two weeks, reprimanded the guy the broke the build, been reprimanded for breaking the build, and so on.  Get used to it.

Third, the lesson.  Don’t commit things without waiting for CCNET to tell you that you can go home.  All the more reason to have a faster build, no?

Broken builds break hearts, I say.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Hanselminutes Podcast 73 - The Interns

July 20, '07 Comments [2] Posted in Podcast
Sponsored By

My seventy-third podcast is up. I have two high-school interns working for me this summer. In this episode I talk to High School Seniors Eric and Shady about their experience working at Corillian and their thoughts about learning languages and the future of engineering.

If you have trouble downloading, or your download is slow, do try the torrent with µtorrent or another BitTorrent Downloader.

Do also remember the complete archives are always up and they have PDF Transcripts, a little known feature that show up a few weeks after each show.

Telerik is our sponsor for this show.

Check out their UI Suite of controls for ASP.NET. It's very hardcore stuff. One of the things I appreciate about Telerik is their commitment to completeness. For example, they have a page about their Right-to-Left support while some vendors have zero support, or don't bother testing. They also are committed to XHTML compliance and publish their roadmap. It's nice when your controls vendor is very transparent.

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)

Enjoy. Who knows what'll happen in the next show?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

MUIs and LIPs - How to write in Chinese and localize Windows in your language

July 20, '07 Comments [10] Posted in Internationalization | Musings
Sponsored By

I saw this email on a mailing list today:

We have some Chinese exchange students in town (a couple at my house actually). Some of the host families are finding that Chinese characters don’t display in IE – just boxes.

I did some searching for Chinese language packs for IE, but apparently I’m missing something. I can find packs for Office, and alternate versions of Windows itself – but where’s the magic download location so IE can display Chinese characters?

And while I have your attention in this matter – does anyone know of a good way to get US keyboards to enter Chinese characters? Or a virtual keyboard or something?

I personally don't think it's easy enough in Windows to add another keyboard and there's still a lot of confusion about language and "language packs" because of pre-Vista versions of Windows. Even now, there are aspects of Vista that make a non-English experience more than a little confusing.

To start with, I run Windows in English, but I'm told that there are some option updates (15 in fact!) and I'm continually (constantly?) reminded of it. I hope there won't be 945 updates in 10 years, all option, but I'll be reminded every day...


What 15 updates are these, you ask? Why Language Packs they are...specifically "MUIs."

View available updates

There are two kinds of Language Packs for Vista:

Windows Vista Multilingual User Interface Pack (MUI).‌ Windows Vista MUIs provide a translated version of most of the user interface. MUIs require a license to be used and are only available with Windows Vista Ultimate and Windows Vista Enterprise. If you are using Windows Vista Ultimate, you can download MUIs by using Windows Update. If you are using Windows Vista Enterprise, contact your system administrator for information about installing additional languages.

Windows Vista Language Interface Pack (LIP).‌ Windows Vista LIPs provide a translated version of the most widely used areas of the user interface. LIPs are freely available to download, and most LIPs can be installed and used on any edition of Windows Vista. Because not all of the user interface is translated, LIPs require at least one parent language. The parts of the user interface that are not translated into the LIP language are displayed in the parent language. When you download a LIP, you get the parent language requirements for that language. The parent language pack needs to be installed before the LIP can be installed. For more information, including a list of languages available for downloading, go to the Microsoft Local Language website.

Now, I'm no marketing guy, but I think MUIs (Moo-ies?) and LIPs are probably not very good names for these Language Packs and the differences are confusing.

The nutshell is that:

  • MUIs are more complete and are in Windows Update for the upper-Vista SKUs.
  • LIPs are partial translations (about 80%), and are free to download. They are also applied to all users on a machine.
    • This can be a free way to get your Mom or Grandma set up with "Chinese Windows" without much hassle. They usually install on top of XP English. There's 27 languages available.

You can get LIPs (Language Interface Packs) at the Local Language Website.

Language pack installation Where it can get confusing is that these packs are for localizing the interface. Showing the interface (output) is a different problem than inputting in another language. And all this is different from simply browsing in a foreign language.

Also, IE and other browsers are smart about fonts. This started around IE5, where you could visit a site in Chinese and IE would download the font automatically. Interesting, though, while you could see the Chinese inside the browser, if the <title> was also in Chinese, you'd see squares, because Windows didn't know enough about the font get render it in the Windows Title Bar.

When a language doesn't fit the English keyboard, there is usually a method - or many methods - to input the language. Windows includes IMEs or Input Method Editors for this purpose. I talked about the Ethiopian Amharic IME recently.

If you're running Vista, try this out. Go to the Control Panel and run the Regional and Language Options. Go to the Keyboards and Languages tab and click Change Keyboards. Notice the Installed Services tree view. This shows you the languages and keyboards you want available.

Text Services and Input Languages

Make sure you click over to the Language Bar tab and make sure that Docked in the Taskbar or Floating on the Desktop is checked. You'll see your existing culture appear in the Language Bar - mine is in the tray.

An IME will appear when you start typing in the foreign language. The IME for Chinese, specifically "Microsoft Pinyin" has many options for entry, depending on your style.


The Japanese IME is really nice, especially on a Tablet PC, as you can draw the strokes you want with the pen or mouse and it will narrow down your choice of characters.


As Ethiopian Amharic is a syllabary kind of like Katakana in Japanese, to enter Amharic you type the English letters that sound like what you want, and you get a list of choices as seen in this screenshot:

All of these IME's are available to you already in your current Vista installation. You just have to turn them on.

To summarize:

  • Regional and Language OptionsTo see your whole Windows Interface in a different language, look at a MUI or a LIP.
  •  To input a foreign language on your Windows machine, add a Keyboard and IME from Control Panel | Regional Settings.
  • To browse a website in a foreign language, make sure the fonts are installed. You can do it manually, or from Regional Settings. The XP example is at right. You don't need to do this on Vista, all the fonts come with it.

There's some confusing parts to this initially, but once it's setup, all you have to do is select the language from the Language Bar and it just works.

Cool stuff, I say.

Scott Hanselman 是 Corillian Corporation,一家提供電子金融服務的公司的首席設計師。他在以 C、C++、Visual Basic、COM 及目前的 Visual Basic .NET 和 C# 開發軟體方面擁有超過十年的相關經驗。Scott 非常榮幸在過去三年來受任 MSDN 俄勒岡州的波特蘭地區主管一職,並同時在波特蘭和西雅圖兩地發展 Developer Days 及 Visual Studio .NET 產品推出活動的內容並發表演說。Scott 另外還在四個城市的 Microsoft®Windows Server®2003 和 Visual Studio .NET 2003 產品推出活動中演講。他在國際間陸續發表跟 Microsoft 技術有關的演講,並與其他作者合著了兩本 Wrox Press 的書。在 2001 年,Scott 於全國 15 個城市巡迴演講有關 Microsoft、Compaq 和 Intel 採用 Microsoft 技術並傳佈良好的設計實例。今年 Scott 在太平洋西岸 4 個城市的 Windows Server 2003 產品推出活動、美國及馬來西亞的 TechED,以及奧蘭多的 ASPLive 中發表演說。有關他對於 .NET, 程式設計和 Web 服務的各項領悟,請參閱

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Sony: Anatomy of a good web interaction

July 20, '07 Comments [5] Posted in Musings
Sponsored By

sony logo While I do dig Sony's hardware, my experience with their website and the company in general has been a giant, faceless, nameless automaton on another continent.

My wife has this Sony Clié "PalmPilot" from a million years ago that she totally relies on for her Address Book. She doesn't want me to buy her a new one because "this one works fine."

However, I upgraded her computer

(remember the Toshiba M200 I was trying to get to get Aero glass working on? That's hers now. It runs 1024x768 with Aero no problem, but I can't stand to look at it because the native resolution is 1400 by something. I don't know how you people can stand running an LCD at non-native resolution...)

 to Vista a while back, but never installed the ancient Palm Desktop for Clié.

Sigh...I figure, off to the beast that is the Sony website. I mean, seriously, they have like 2000 different products...

(By the way, which of you Dear Readers, is going to sell me a Sony Aibo?) at this point I'm not looking forward to hunting for five-year-old software on a giant corporate website.

In fact, I was wrong. The interaction was brilliant. Here's how it went down.

1. Visit Service & Support, then Drivers/Software. They get an initial -1 for using Flash for the whole home page. Not because I have a problem with Flash (or Silverlight for that matter) but because of my initial knee jerk reaction of "Oh crap, another fancy Skip This flash movie to introduce me to a corporate website." No one likes that feeling. In fact, I was wrong. I assumed they were loading a movie/intro but instead they loaded a very functional menu.

Sony Homepage 1

2. Next, I'm presented with this page. Not perfect, because the first reaction is to fill out both sides, but once I figured it out, I realized that I could either enter the Model Number or do the cascading menu thing. I really appreciate it when a company keeps the product menu complete and fresh. I was happy to see this old model still appearing in the menu.


3. This next page is inspired. Again, no one is winning any design awards for these pages, but I'm talking about smooth interactions. Why is this inspired? One word: everything. This giant corporate behemoth actually gave me a menu item for "Everything." This is the user interface item that says, "get out of my way and just give me the whole list." Fabulous. Boo-ya. I literally muttered "sweet" under my breath when I hit this page.


4. Bam, there's my software, with a five-year-old date on it.

(What does that say about the Internet that I'm amazed to find something Five Years Old that is still cared about? Why is finding stuff that old in my garage a daily thing, but on the web it's a miracle?)

I download the software and I'm on my way.


Yes, I tried Googling for Palm Desktop Sony Clie N710c first, but didn't find anything promising (I'm lazy) in the first page so I ended up going to and finding what I needed very fast.

It is probably possible to make this 4-step interaction more streamlined, but sometimes one-step isn't the right number of steps. In this case, there were no false starts, no ambiguous questions, no backing up or poking around. It was not only clear to me how to find what I wanted (remembering I had low expectations), but the interaction left me thinking ever-so-slightly better of Sony - a company whose website I'd largely mentally given up on.

Whose website has recently surprised or impressed you with a specific interaction or a recent redesign?

Technorati Tags: , ,

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

The Verdict - Google Applications for your Domain Two Weeks Later

July 16, '07 Comments [25] Posted in Reviews
Sponsored By

logo Two weeks ago the whole Hanselman Family moved over to Google Apps for Domains. What's the verdict? Well, there was some good, some great and some truly awful. Here's the results of our migration and our general experience as we navigate the Google of it all.

Bad: Email Attachments via Right Click|Send To don't work.

Dad Hanselman says:

Still not totally used to it....want to send a picture of the fathers' day rose from Mo to you guys but the send to concept doesn't connect to gmail yet. It defers to my old email system. That is the only gripe at this time. - Dad Hanselman

I haven't been able to find a tool/plugin/whatever that will allow folks to Right Click on their files and email them from Gmail. This is slowing our photo and file sharing amongst the Hanselman Clan.

Bad: Migration from Gmail accounts is tricky and sometimes incomplete

It's almost unforgivable that one has to resort to email POP hacks to migrate from a Gmail account to a Google Apps account. There should be a way to MERGE the two accounts. Instead, I used gMove and POP, and while gXfer set everything up correctly, my wife is missing at least 20% of her email and it's unclear why. The Google POP puller just stopped pulling. Very frustrating. This should be feature #1 on the part of Google. I tried it twice, and I'm sure the problem is on the Google end, as it seems to stop around specific few messages. gXfer (free) worked fine for other family members. We did get all her contacts and calendar moved just fine by gXfer as well.

Bad: Migration from Thunderbird tricky because of SMTP lockdowns

We were able to move all my Dad's email from Thunderbird using the Gmail Loader but a lot has happened with SMTP servers as spam has become such a problem and it took several tries to find an SMTP server that would accept me sending out 6000 emails in a short amount of time. The days of unauthenticated SMTP are over.

Bad: iGoogle Codebase NOT the same as the Personalized Google Apps Homepage

Something is VERY wrong in Googleville. It appears that Google Apps for your Domain (GAFYD) is a fork or a trailing branch of the actual public Google experience. That means that the personalized home page that all my users get isn't as shiny and new and wonderful as the iGoogle page that everyone else gets. I'd have assumed the OPPOSITE. If I'm paying I think I'd get the new hotness sooner, not later. Also, there's no published calendar that I can find that will let me know when there will be feature parity. The Google Apps Groups are pretty quiet on the Google side. Also shockingly there doesn't appear to be a Google Apps Blog, so there's a sense of quiet and a lack of conversation going on.

Bad: Google Split Brain - Google App Accounts are NOT Google Accounts are NOT Gmail Accounts

If you have a Google Apps for your Domain account, you cant use it to log into Google Code. Same with a non-gmail Google Account. You can only log into Google Code with a Gmail account, which means I have to maintain an unused email address that weighs on my psychically.

Horribly Bad: Google Calendars not Delete-able nor Migrate-able

This is the worst (most irritating) issue for me personally. I started a Google Calendar account before using my regular email account. Now, when I hit (rather than I see this wonderful screen. Seriously, take a moment and drink deeply of this screenshot.

Google Calendar - Windows Internet Explorer

Look at the choices. I have a calendar associated with my address that I made before. OK, I can handle that. BUT ALL my existing appointments are in it, and I'm told by this screen WILL STAY THERE. Only new invitations will go to my new Hanselman Calendar, and the only way I can keep using the existing calendar (remembering that I'm not interested in keeping it) is to change my Google Account email address - something I don't want to do because I use it for iGoogle and other things. When I DO try to change it I'm told "Sorry, a gmail address is not allowed to be the primary address of this account."

Also, note the bugs on this screen. I'm not used to seeing bugs in Google code, but there really seem to be a LOT in Google Apps. Notice the broken image in the upper corner, as well as the "start using a null calendar" and incorrect link for my Domain Calendar.

There is no way to DELETE a primary calendar in Google - this just kills me. I just want to delete the fact that there's a calendar associated with my Google account - that also happens to be my Google for Apps account - and have one calendar.

Bad: POP is flaky from multiple clients

POP support works fine and I still backup my Gmail account into Outlook once a week and some of the Hanselpeople still use Outlook or Thunderbird, but sometimes it seems that POP for Gmail gets confused, specifically when multiple client connect. Like if you use Outlook at work and Thunderbird at home, you might get duplicate emails downloading, as if a counter or date stamp somewhere got boogered. So, don't do that.

Bad: Apps using Google APIs aren't smart about Google Apps for your Domain

I use Plaxo and they support syncing between Google Calendar and Outlook. Wonderful. However, Plaxo doesn't support syncing with Google Apps for your Domain. Further proof that there's some kind of frankencodebase thing going on in the back, or at least that the apps that use the API have to be smart about the URI they use. I haven't seen if SyncMyCal supports Google Apps for your Domain, but the word on the street is that it DOES. The real question is why doesn't the Google Calendar API just handle this using the logged in username? Probably because of this "split brain" issue that I've run into with two calendars associated with one email address. Again, a problem fixable if I could just DELETE the first calendar. I'm not the only one suffering.

Bad: Can't use Custom iGoogle Gadgets on the Google Apps Homepage

I'm unclear if this is because of stupid Gadgets or hardcoded URLs or what, but many Google Gadgets will only install into iGoogle.

Good: Space and Searching

gMove from LimitNone worked great for moving my email from Outlook and I'm happy I paid for it. I moved 15,000 emails and decided against moving the other 20,000. It did take a few days, as the Google Mail Fetcher takes its time, but it didn't matter to me. I stole this image from the LimitNone Blog as it clearly explains what you can use to get your email moved around depending on your situation. Everyone likes the space and searching and no one so far as used more than 5% of the 10gigs.


Good: Google Talk

One unexpected benefit that all the Hanselmen have enjoyed is the Google Chat support. Everyone in our domain gets a GoogleTalk account. I initially thought this would be lame because I only chat on MSN messenger. However, not all the family are on messenger and most don't want to download it and have just a few contacts. What's cool about Google Talk is that even those who do not have the client install can still chat. An ajax-y DHTML chat popup will present itself when someone within the Hanselman world chats you. Also, presence is based on whether or not you're reading email. This has actually caused us to talk to each other MORE. "Oh, Jack's online, how's he doing..." Just today I chatted with my brother-in-law in South Africa. I used the Google Talk client and he was just logged in over dial-up. Very smooth and very cool.

Good: BlackBerry (and Mobile) Support

The BlackBerry support is great. I almost like the BlackBerry Gmail app (note, there's two apps, one for Gmail and one for GAFYD - again with the Google Split Brain) better than the BlackBerry email itself. You're looking at a view of your email, so everything one on the BlackBerry really affects the actual Gmail account. Also, if you login to any of the standard URLs with a mobile browser the websites will render Tiny HTML for small screens. There's also a BlackBerry Google Talk client where the Google Talk Chats appear in your standard BlackBerry Inbox.


Most of these problems are not total blockers, but some are very annoying. We're critical because we expect so much. Will these bugs continue to irritate? Sure, until they are fixed, particularly the Calendar one, but I'm the only Hanselman with that problem. At this point everyone in the family has said they are thrilled with the move and no one regrets it.

My Wish List

  • Be able to delete Google Calendar from a Google Account, thereby resolving the split brain calendar issue.
  • Be able to use my GAFYD Account as a proper Google Account.
  • Have all the APIs, especially the Calendar API, work automatically with GAFYD so my 3rd party tools would just work.
  • Have iGoogle as my GAFYD home page, and not the crippled Google Partner Page I have not.
  • Have a Windows Mobile Gmail client. Currently you can download the Java one and use it with a "this is unsupported" warning, but while it's rocking awesome on a BlackBerry, the fonts and navigation are totally lame on a WM SmartPhone.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.