What the fuck is WUBI?!

The answer is as easy as the program itself: Its an ubuntu installer for windows. If u are a windows user but sometimes u need a linux u could install yourself a virtual machine.

I used VirtualBox for a long time – it was great but it was slow! As i decided to switch to Windows 7 i also decided to try an alternativ and what i found was WUBI. And now im happy: Its easier to install than a virtual machine, no need for an extra partition and its fast! The only sad thing: Switching between Windows and Ubuntu needs a computer restart…


RoboRally – Roboter meets AI

A friend sent me an email with a link to a little programming contest. The aim is to program an AI for a roboter that should find a way from the origin to the destination – the rules are deeply inspired by the boardgame RoboRally. The reward may not be worth to invest time at all but to see a little robot moving around the holes and splippering over oil is great fun – u always hope that he might be clever enough to reach his aim and dont stuck… so, do it!

Binary Search Tree and Red-Black Tree in C#

Willing to implement some missing(?) base functionality in my own library to extend .NET i found these articles: Working with Red-Black Trees in C#, An Extensive Examination of Data Structures and Implementing a Red-Black Tree in C#.
While the first seems to be exactly what i was looking for, the second article on MSN provides some additional reading about datastructures. The sourcecode examples are somehow outdated cause they are written for .NET 2.0 but neverless its quite basic knowledge for everyone well explained. The last article reminds me at some point how i would have done it 10 years before 😉 I didnt read it at all, just got a quick look at the sources and my first thought was: Too much lines of code for a Red-Black Tree! But i should give it a second try – also the rest of the blog holds some extensive examples of different programming patterns. And you can never know enough about it…

Nice site for guitar players – lyrics and chords

Found this site today: http://www.ultimate-guitar.com/
Just bookmarked it but im to afraid of loosing the link by upgrading the browser or reinstall the OS ;), so i just added a new category and voila – here it is.

AOP – Aspect-oriented programming with PostSharp

A really nice library seems to be PostSharp – its easy to install, easy to use and its still licensed under LGPL. Hope it will stay this way.
At dotnet-snippets i found another nice example (besides the ones at the authors homepage). It shows how to use PostSharp for validating parameters.

Abstract forms with designtime support

A nice article about abstract forms in Visual Studio can be found at Urban Potato. Its useful to download the example project cause the article is well explained but doesnt provide the full code to get the whole impression of the provided technique.
For me it seems a nice solution but doesnt satisfy me to the end: I want to add some controls and moreover some functionality (as protected methods to have access in derived classes) provided by these controls to the abstract base form – but as far as i see its not possible with this approach. Nevermind, read and learn.

Inglourious Basterds – September 15, 2009

No matter if you are a Quentin Tarantino fan or not – watch it! 66.604 viewers attest it (votes on IMDB at September 23, 2009) 😉

Reverse mapping of drive letter to server address

You need the pure server address of a remote directory mapped to a drive letter? Try this:

[DllImport("Mpr.dll", CharSet = CharSet.Auto)]
private static extern int WNetGetConnection(
    [MarshalAs(UnmanagedType.LPTStr)] string localName,
    [MarshalAs(UnmanagedType.LPTStr)] StringBuilder remoteName,
    ref int length);

public static String GetServerPath(char driverLetter)
        int length = 1024;
        StringBuilder result = new StringBuilder(length);
        WNetGetConnection(driverLetter + ":", result, ref length);

        return result.ToString();
    return null;

public static String GetServerPath(String filename)
    if (filename.Length > 1 && filename[1] == ':')
        String serverpath = GetServerPath(filename[0]);
        if (serverpath != null && serverpath.Trim().Length > 0)
            filename = serverpath + filename.Substring(2);
    return filename;

Hello world!

Console.WriteLine(“Hello world!”);