twitter

Microsoft declaims that globally every dollar it makes brings 5 dollars to its partners.  yeah, sure.  Just take a look at how many Microsoft teams have to upgrade laptops just for switching to Windows Vista :-)

“Morgan Stanley: Made in China” – a Wise Move by CIC

I’m cheerfully surprised to know that our sovereign-wealth fund, China Investment Corp (CIC), is going to pay $5 billion for as much as 9.9% of the Wall Street giant, Morgan Stanley.  This was announced together with Morgan Stanley’s $9.4 billion write-down for its fiscal fourth quarter.

It’s really a wise move. The Subprime Crisis introduces this golden opportunity that many foreign banks/funds are significantly under-valued and need cash injection.  We should just widely invest on those banks/funds now.  It’s also a firm move, with respect that CIC has been extensively snickered for the loss on Blackstone.  I admire the determination.

It is said that "for the first time, Chinese companies and the government bought more overseas than foreign buyers have invested in China", which is good news considering the piling up foreign cash on China’s balance sheet.

How to Track Emails as Threads in Outlook

I’ve been asked several times about how to track emails as threads (grouped by subject) in Outlook.  I did find some neat tricks and would like to share them with you here.  I’m using Outlook 2007, and you may need to adjust these a little bit to apply the same idea to older versions.

The main idea is as simple as

  1. Create a Search Folder, for say "Threads", which searches in both Inbox and Sent Items, with the Criteria being blank.
  2. For the "Threads" folder, choose ‘Arrange By: Conversation‘ and ‘Newest on top, so that the most recently updated thread will pop on top.
  3. In addition, I put the "Threads" into Favorite Folders, so that I can access it conveniently through the Navigation Pane.

If I send an email to a group which I belong to, the email will be in both Inbox and Sent Items.  Previously this issue just wastes some storage space, but now it’s more annoying since I would see the duplicate in the same thread.  To address this issue completely, I create a rule to filter out all incoming emails sent by myself (move them to Deleted Items).

BTW, if you have rules to move email lists, which you subscribe and only want to check intermittently, to some sub-folders of Inbox, it’s better to disable ‘Search subfolders’ for Search Folders like "Unread Email" and "Threads".

1

<This entry was composed, polished, uploaded with Windows Live Writer>

How to name users matters

How to name users?  Should your website ask users to specify a unique username, or just some nickname at their will?  It matters.  It impacts how your users connect with their friends or other users on your website, so you should align the user naming mechanism with how you want them to use your website, which should eventually line up with your business model.

There are usually three items which users can specify to name themselves:

  • Email – has to be unique; serves best as login credential, since users are unlikely to forget it; cannot serve as the public name due to privacy
  • Username – has to be unique; once set, cannot be changed; serves best as the homepage ID (e.g. my homepage on Live Space is ‘tian-bai.spaces.live.com‘, where ‘tian-bai’ is the Username serving as the homepage ID); users are unlikely to pick their favorite due to shrinking namespace and typically exclusive support to English letters and digits
  • Nickname – whatever users design themselves to be; not unique; can be changed at will

Moving forward in this article, I’ll be using the 3 terms based on the definition above, although sites may use some derivatives/hybrids.

Some case studies:

  • Facebook – Email required; Username not supported; Nickname being just the full name in the real life.  This is determined by the core idea of Facebook – people connect/socialize based on what they knew about each other in the real life, so virtual stuff like Username/Nickname do not help.
  • Douban – Email required; Nickname required; Username being optional. Its user naming mechanism is so considerate that worth closer insight:
    • During registration, users only need to tell three things – Email, password and Nickname.  Email cannot be changed afterwards, while Nickname can be changed at will.  The registration is so easy that even someone mistakenly clicked the "sign up" button would be able to make it through :-)
    • As one of its missions/features, Douban does encourage users to express themselves on it via blog, reviews, collections, etc. and conveniently share those, so it gives users an *option* to specify a unique, representative Username as the homepage ID (even if users didn’t specify the Username, their homepages would still be linked by static URI’s, which should be the minimum requirement).  Douban also understands that to find such a Username may be hard, so very thoughtfully, it makes this step optional and delayed until post registration.
    • When posting comments, users appear as their Nicknames. In case Nicknames conflict, users can still use their image thumbnails to distinguish from others.

In all, my recommendation would be:

  • Email – to have as login credential, as most of the time it is required during registration anyway.
  • Username – Nice to have if your users’ homepage/space on your website should be visited, by just one click from anywhere.  In addition, a meaningful username as part of the URI (e.g. tian-bai.spaces.live.com, picasaweb.google.com/tian.ab) gives users much stronger feeling of ownership.
  • Nickname – to have if users interact a lot on your website, e.g. forum, community, etc.

If your website uses all 3 of them, I strongly recommend you to take a look at douban’s decent mechanism.

Hillary Clinton, Silicon Valley

Just read a post, Clinton appeals to high-tech leaders, which lays out some inspiring news and interesting points.

  • "increasing the current cap on H-1B work visas; relaxing green card restrictions of engineers" – this is good news for foriegn-born high-tech workers, especially many of my friends currently studying abroad and planning to stay after graduation, but will also bring much protest from American middle class
  • "53 percent of all engineers in Silicon Valley are foreign born and three of 10 new jobs are created by foreign-born CEOs" – what will the percentiles turn out to be with more open border?
  • "Think of a series to bring real sex appeal to science and math"
  • "Fewer than 20 percent of American undergraduates earn degrees in science and engineering, compared with 50 percent in China" - actually I’ve been wondering whether there is real demand for so many doctors/lawyers/brokers.  Also, this reminds me of a joking statement I read somewhere, "Idle lawyers tend to become politicians, so there is a certain social value in keeping lawyers busy".

Offices PK

WLC is moving into the new office, whose structure diagram has just been distributed to us.  Coincidently, I read about the Bionic Office of Fog Creek.  Compared to Fog Creek, MS looks more like a traditional company, doesn’t it?

‘Sleep’ in Windows Vista

Joel Spolsky wrote a article "Choices = Headaches", in which he complains the bad design of the nine options, two icons and seven menu items, Windows Vista provided for users to leave their computer.  Actually, the purpose of introducing the new mode ‘Sleep’ (the leftmost icon) is to address this kind of complaints against WinXP.

In the Features for Performance, you can find that ‘Sleep’ mode behaves differently on laptops from on desktops.  It’s a good design.  The only pitfall is its name.  It would be much better if it’s called ‘Leave’, with a tooltip ‘Let Vista take care of it’.  Correspondingly, the menu can be named as ‘For Geeks’, with a tooltip ‘You are on your own’. ;-)

My First Perl Script AGAINST Kingword.

I’ve been loving C for so long and I decide to make some naughty change now. ;-)  I begin to learn Perl, which is designed to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal), exactly opposite to C.  I learned Perl because:
  1. It’s beneficial to the project I’m working on.  My project heavily involves text manipulation, for which Perl was originally developed.
  2. It’s beneficial to a PM.  Perl is efficient at building demo code to show prototypes.

It’s Kingword that pushes me to start my Perl career from such a poor script, a script less than 10 lines.  Before I upgraded from Kingword2005 to Kingword2006, I exported (one feature of Kingword) my NewWord list to a txt file whose format is defined by Kingword2005.  Then, when I tried to import them back to the NewWordPad of Kingword2006, it failed because Kingword2006 can only import txt files in a new format newly defined by Kingword2006.  It feels like the government persuade me to trade my gold for the currency, but some day later, the government issues a new kind of currency and the one I hold can not be used any more.

So I decided to fight against Kingword, by writing a Perl script transforming the old format to the new one.  I did and it works well. :-)

Managing windows.

Here, I’m talking about managing windows, not Windows.  Managing windows under Windows XP.
 
windows distribution
I still remember the time when I coded day and night.  If I didn’t use an IDE, under X Window, I need one console for the editor, one console to compile and debug, one console to edit the config file, one console to generate the test data, one console to run smoke test and check the log……  Luckily, the desktop under X Window seems always big enough, since there are Virtual Desktop Managers available.  I can launch/drag different windows onto different virtual desktops and switch among them quickly using hotkeys.
 
The good news is that there are also similar solutions under Windows XP, while the bad news is that they are not as good.  The Virtual Desktop Manager in PowerToys suite, which should be half-official, sucks in usability.  As always said, if you don’t satisfy the customers, someone else will.  "Deskwin" is the one satisfying me.  It basically has all the features I expected except being able to configure the number of desktops.
 
windows placement
In windows, generally speaking, the window obtaining the focus (active) must be the one on top, while this is not necessarily true in X Window.  So when working under Windows XP, I often run into the boring situdation that I have to resize the windows and drag them around to avoid overlap, so that I can work on one window yet read information on another.
 
Today, I just discovered a considerate feature of Windows XP to help me out.  Try this:
  1. Choose several windows (say 3 windows) on the task bar, by holding the <Ctrl> key and clicking the window buttons.  Once a window is chosen, it appears pressed.
  2. Right click one of the window buttons you chose, choose "Tile Horizontally" or "Tile Vertically".
The windows I want to see are neatly placed by a few clicks.  This feature is important to me, yet I feel sorry that it takes me so long to discover it.  Maybe I’m stupid, but being stupid should not pevent me from discovering a well designed feature, if it’s really well designed.  "No stupid customers, but stupid design".
 

Software Process Model in MS

Lately, we guys had some casual discussion about the Software Process Model in MS.  It’s an interesting topic worth revisiting and writing down.
 
Most projects in MS follow Waterfall Lifecycle Model.  Why not RUP?  Unnecessary.  Why not Agile Methods?  Unnecessary.
 
Agile Methods provide:
  • Satisfy customer early (continuous, frequent delivery of value).  – For ordinary users, does it really matter to get Windows Vista sooner or later?
  • Welcome changing requirements, even late.  – This is the crucial point.  The products of MS are all GENERAL solutions/services/platforms, ie none is custom-built.  So, why is it necessary to subject to serveral customers’ requirements change?
Agile Methods require:
  • Customers and developers work together.  – Impossible to involve all customers.  Extremely hard to select representative visiting customers.

But things are changing, escpecially in the most dynamic product lines, eg Windows Live.  Products in these fields exceptionally need to "Satisfy customers early".

To me, the most attractive Pro of Agile Methods is: "working software over comprehensive documentation". ;-)

Last but not least, the MS Nighhtly Build Cycle is the heartbeat of the project.  There is a huge incentive not to break the build.