Shaun Xu

The Sheep-Pen of the Shaun



Shaun, the author of this blog is a semi-geek, clumsy developer, passionate speaker and incapable architect with about 10 years’ experience in .NET and JavaScript. He hopes to prove that software development is art rather than manufacturing. He's into cloud computing platform and technologies (Windows Azure, Amazon and Aliyun) and right now, Shaun is being attracted by JavaScript (Angular.js and Node.js) and he likes it.

Shaun is working at Worktile Inc. as the chief architect for overall design and develop worktile, a web-based collaboration and task management tool, and lesschat, a real-time communication aggregation tool.


My Stats

  • Posts - 111
  • Comments - 432
  • Trackbacks - 0

Tag Cloud

Recent Comments

Recent Posts


Post Categories



When I was developing Worktile Enterprise we are using MongoDB with an ODM framework called Mongoose. It provides sachems-based validation in top of native MongoDB driver, and for each collection we also need to define schema. When the business became more complex we found it needs to share part of schema between collections. For example, in calendar module there are two collection one for event series the other for each individual event instance. Both of them contains properties such as event name, ......


In the TechED North America Microsoft announced another cache service in Azure which is the Redis Cache Service. This is the 4th cache service Microsoft introduced in Azure. The first one is Shared Cache which is going to be retired in Sep as it has very critical performance issue. The second one is In-Role Cache, which is built on top of AppFabric engine, is high performance and dedicates to the role instances in the same cloud service. The third one is Managed Cache, which is based on AppFabric ......


There are three functions under JavaScript Function object which are bind, call and apply. They are very useful when we need to pass the function as a variant but very confused. I'd like to try to explain them here with a sample code in Node.js environment. Pass Function as a Variant Assume we have a class named "Person" as below. The constructor accepts two parameters for the person's first name and last name. We also added a method named "say", which accepts one parameter then return a string with ......


May I firstly ask a question for developers writing Node.js application on Windows platform, which editor are you using currently. Being a geeks working with Node.js on Windows for about 1.5 year, I used to use NotePad ++ for the first half a year. Then I switched to use Sublime Text till now on Windows and Mac. I also tried to use WebStorm but give up as I really don’t like its UI, although I knew it’s a powerful tool for web and Node.js development. Today I was informed that Microsoft publish a ......


Working behind a proxy server is a very common scenario in a cooperation environment. If we are using Windows and using some windows based application, such as Office, Visual Studio, etc. we almost no need to care about the proxy setting since they will use the Internet Connection setting to communicate with the services out of our company. But if we are using some cross platform or *-nix application, such as Node.js and some of tis 3rd party modules, they might not able to load the proxy setting ......

Full Node.js Archive