November 2010, links

The Zero One or Infinity (ZOI) rule is a rule of thumb in software design.

Agile programming 10 years on: Did it deliver? from infoworld.com

F# under Apache license.

A look at C# 5.0 vNext – New Asynchronous Pattern by Abhishek Sur.

Clues Suggest Stuxnet Virus Was Built for Subtle Nuclear Sabotage.

The Plastic SCM blog – The version control timeline (CVS, SVN, Git, …)

Comprehensive JavaScript Guide from Mozilla.

Free C# / .NET Profiler with Silverlight support

World is still lacking a good free .NET / C# / VB.NET / F# Profiler. There are plenty of overpriced tools (some very useful, but expensive).

I need simple profiler for one of my free / hobby projects, so I do not want to pay a premium.

First I tried to download open source project called Prof-It for C#. I was unable to profile anything. Why this is so complicated?

Second, also open source, called slimtune. They say it support .NET 2.0, but I was able to profile .NET 3.5 w/o problems. However no luck with Silverlight.

Third, I download free version of EQATEC profiler. They ask for your name and email address (I HATE TO GIVE MY EMAIL). In lack of options, I surrender my email address. Also, it says, that there is limit of “how many DLLs…”. I didn’t get, what this limit is about, perhaps need to use it a little more, but currently I already got profiling details I needed. The good news is, that EQATEC can profile Silverlight applications with a few easy clicks.

P.S. if you are looking for native C++ profiler, read about Very Sleepy.

Context switch can be 3 times slower in virtual environment such as VMware ESX

Tsuna analyzes how match time it takes to make a context switch. All analyzed chips are Multi-core Intel CPUs. OS / scheduler used – standard Linux Kernel.

Results: depends on what we call a context switch (theoretical / real world) and what we measure is: 1000 ns – 4500 ns (up to 45000 ns – depends on performance penalties involved).

However thing that I didn’t know is – context switch can be 3 times slower in virtual environment such as VMware ESX server or VMware Workstation.