Author Archives: Stephan

Batch Conversion of MJPEG Files to MPEG 4

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).

A GACutil Replacement

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.

TeamCity for Free

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.

You find where mp3 music download on perssonal computer, You need download mp3 music from online mp3 archive

Short, Shorter, Shortest

Three C# code snippets with the same meaning…

Variant 1: Using a full if/else clause:

Variant 2: Using the ?/: conditional operator:

Variant 3: Using the ?? operator

I did not know about the ?? operator, until Resharper 3 suggested to use variant 3 instead of variant 2 :-)

Performance of Case Insensitive Hashtables

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)

Source Code

Circular References in .NET Framework

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:
Circular References in the .NET Framework

There are a lot of that artifacts in the framework and I’m wondering why? And how does Microsoft manage to build this?

Yet Another Remote Control Program

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.