One of the things I don’t like about my digital camera (a Canon IXUS 70), is that it generates MJPEG files for videos. That files really take up a lot of space.
And I’m lazy and do not want to use a program like Nero to convert each file one-by-one. So I wrote a small program, that scans a directory (inclusive its subdirectories) for MJPEG files and converts them to MPEG 4 (Xvid).
One of the coolest tools, Microsoft has brought out lately is Windows Live Writer. It lets you easily write blogs with special layout (tables, source code, videos…) – no matter what blogging engine you have. I for example use WordPress and it works perfectly.
Some time ago, I wrote a small tool that serves as GACutil replacement. Now I had time (during christmas holiday ) to put it online. I’ve called it CmdHelper, because I want to extend it over time with more useful functions without always creating new programs (DRY).
CmdHelper installs Assemblies in the GAC along with their PDB files. This is a big advantage compared to gacutil, because it allows to display line numbers for assemblies in the GAC when generating a stack trace. This makes debugging much easier.
Further it can remove Assemblies from the GAC by specifying a specific filter criteria. For example, you can remove all assemblies of a specific vendor. Or all assemblies that start with a certain string.
Recently TeamCity 3.0 was released. It has a bunch of new features, but the best of all: There is a free version now. And the free version already is quite powerful: up to 20 users, 20 build projects and 3 build agents. That is really a cool marketing strategy, because now there are no reasons anymore, why not to start with Continuous Integration, if even a easy-to-use software is for free.
Three C# code snippets with the same meaning…
Variant 1: Using a full if/else clause:
if (input != null)
result = input;
result = new MyClass();
Variant 2: Using the ?/: conditional operator:
MyClass result = input != null ? input : new MyClass();
Variant 3: Using the ?? operator
MyClass result = input ?? new MyClass();
I did not know about the ?? operator, until Resharper 3 suggested to use variant 3 instead of variant 2
What does Coca-Cola want to say us with it’s calculation!? Yes…it may be quite difficult to find out, that half a liter is twice as big as a quarter-liter! 😉
I guess, Google is not the only one who can solve 2 x 0.25 liter.
I wrote a small test, comparing the performance of case sensitive and case insensitive hashtables in .NET. The result is, that the case sensitive hastable is 3 times faster than the case insensitive hashtable …mmmh, quite a difference!
Case sensitive – 527 ms:
new Dictionary<string, string>()
Case insensitive – 1297 ms:
new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase)
Today I stumbled over the following: There are a circular references in the .NET Framework. For example, System.Xml references System.Configuration and System.Configuration references System.Xml. See the following:
There are a lot of that artifacts in the framework and I’m wondering why? And how does Microsoft manage to build this?
Some time ago I wrote I small program, just to play a little bit with .NET Remoting. That program should allow you to start executables on a remote computer. I thought it would be just for playing with Remoting, because there are enough good programs on the market that are doing that already – for example psexec.
But recently I started implementing automatic tests for our distributed server components. As they are distributed, the tests will have to trigger multiple computers. The tests are written using NANT files. To my surprise non of the freely available programs worked – it was not possible to start NANT on the remote computer. Only my tiny .NET remoting application worked. So maybe no bad idea to publish it…although it was initially intended only to be a test app.
Download it here.