Bill Li

Think globally, act locally.

Move

My blog has moved to https://www.BaliOnWeb.com. Most of articles are also moved to new site. This is...

Author: MSDN Archive Date: 07/29/2009

My PM talk in SJTU

Finally, I delivered my first talk. Kind of excited, you can imagine. :-) PPT can be found @...

Author: MSDN Archive Date: 06/01/2009

Lead Without Authority

As to the complexity level of problems, developers in Microsoft, who deal with coding, are probably...

Author: MSDN Archive Date: 02/20/2009

My AD Fun Experiment

Today I got a mail from lakequincy.com, saying: “Hi Bill, I noticed that you were never able to plug...

Author: MSDN Archive Date: 02/18/2009

P2P Backup System w/o SPOF for Work Group

This is also one of my half-completed ideas years ago. It was recalled recently by two stories:...

Author: MSDN Archive Date: 02/15/2009

Memory Leaks Demo & Detection in .NET Application

Memory leaks are always headache of developers. Do .NET developers no longer bother to worry about...

Author: MSDN Archive Date: 02/10/2009

Designing Your Own Recent Posts Widget for MSDN Blog

In my MSDN blog, I need “Recent Posts”, but I don’t need archive side bar. After having played with...

Author: MSDN Archive Date: 02/07/2009

Searching For a Number in Shifted Sorted Array within O(log(n)) time

Run into the algorithm problem long time ago. Now post my answer here. A sorted array, say:...

Author: MSDN Archive Date: 02/03/2009

My FB app Development Experience

That FB app(https://apps.facebook.com/funnyqa/) is totally out of curiosity about how FB developer...

Author: MSDN Archive Date: 01/30/2009

Principles for Building Secure Database Applications in Action

What I am talking about in this post might be well known to many people(too simple, sometimes...

Author: MSDN Archive Date: 01/29/2009

Happy New Year of the OX!

Hi, my dear friends, Happy New Chinese Year! First of all, a small quiz to you: Can you guess what...

Author: MSDN Archive Date: 01/27/2009

An AD System to Pay Content Generators

Back to not too long ago, I had a half-completed advertising idea related to social shopping. Now I...

Author: MSDN Archive Date: 01/20/2009

Words from potential ex-customers

It is only customers who pay dollars as your revenue and enable your read this post comfortably at...

Author: MSDN Archive Date: 12/30/2008

My readings - a book in my bag always

< I have to cook this page with a mix of Chinese and English words. Please move your mouse to top...

Author: MSDN Archive Date: 12/23/2008

Multi-threading your UI

Basically, window app UI, either WPF or traditional WinForm, is single threaded, which means only...

Author: MSDN Archive Date: 12/15/2008

Getting Object’s All Properties at Runtime

We often need to know a given object’s all properties at run time, for example, tracking a data...

Author: MSDN Archive Date: 11/20/2008

Programmatically Adding a Column to Your Outlook 2007 Inbox Table View

In my previous post, I mentioned that I will write an article about adding a new column to your...

Author: MSDN Archive Date: 11/04/2008

Outlook 2007 Views from Programmers' Perspective

In this post, I’d like to talk about certain basics for Outlook 2007 starter programmers. Outlook...

Author: MSDN Archive Date: 11/02/2008

Building Objects from XML of eBay API with LINQ

In this post, I’d like to illustrate the power of LINQ with code sample. I query the web service...

Author: MSDN Archive Date: 10/21/2008

What Facebook means for the enterprise

It is Facebook’s heyday probably. Every tiny breath of Facebook will attract lots of discussion and...

Author: MSDN Archive Date: 10/14/2008

"Search engine cannot make any money"

Some of my best friends complaint that my blog was over technical for them. With customer-oriented...

Author: MSDN Archive Date: 10/06/2008

Adding column to existing table and populate with default value

From time to time, we run into the scenarios of adding new columns to existing table with millions...

Author: MSDN Archive Date: 10/05/2008

Selecting median of two sorted arrays

In this post, I’d like to discuss one interesting algorithm problem which took me quite a while to...

Author: MSDN Archive Date: 09/22/2008

How to utilize double check locking in C# correctly

The major benefit of double check locking is to reduce the overhead of acquiring a lock by first...

Author: MSDN Archive Date: 09/14/2008

Design Flaws in Google Docs’ Collaborative Editing ?

Fact I observed this on August 30, 2008. One of highlighted features in Google Docs is its...

Author: MSDN Archive Date: 08/29/2008

Calling SQL Server Stored Procedures with ADO.NET in 5 minutes

A stored procedure is an already written SQL statement that is saved in the database. It can take...

Author: MSDN Archive Date: 08/28/2008

Top10 Reasons Which Make Microsoft So Sucessful

What makes Microsoft so successful? This is the question I thought again and again for a long time....

Author: MSDN Archive Date: 06/30/2008