Archive for the ‘software’ Category

IT book recommendations

2012/12/15 Comments off

I now have a list of IT book recommendations at GitHub.

Categories: development, IT, software Tags: ,

Impressions during developing my first application with Mono and Gtk# (GtkSharp)

2012/09/30 Comments off

Why Mono? Why Gtk?

Over the past couple of years I have been developing C# ASP.NET enterprise applications. So I am quite comfortable with the Microsoft stack.

That answers the first question: Mono gives me C# and the .NET stack.

On the other hand I have been using linux as a desktop environment on my home machine for over a decade. I am comfortable with using linux as my primary OS.

That answers the second question: Mono gives me access to Gtk, the graphics library of gnome, which is the default “desktop” in many linux distributions.

The App

I want to synchronize different Git repositories semi-automatically using a Gui.

  • Default behaviour of the automation can be loaded via a Json file.
  • Each entry describes a repository set to be synchronized.

The app is located at

I also published a small demo application for gtk# and treeview:


Monodevelop vs Visual Studio

I’ll keep it brief: If you’re used to Visual Studio and ReSharper, Monodevelop does not come close. On the other hand Monodevelop is a full C# IDE which works with linux. And Monodevelop can be used cross-plattform.

Gtk# API

The Gtk# API is not your typical .NET library. You will very soon notice that the origins are C/C++. This takes some getting used to if you have a .NET background.

Typically there are no return values. Instead Gtk# methods very often use the “out” keyword in .NET because that comes closer to the C++ implementation using pointers.

Here is an example:

## Mono Gtk# Code
bool someBool = false;
if (listStore.GetIterFirst (out iter)) {
do {
someBool = (bool) listStore.GetValue (iter, 0);
} while (someBool && listStore.IterNext (ref iter));
return someBool;

## Pseudo-C# Code
return listStore.ToList().Any(s => s.MyBoolProp);

From the .NET side, I don’t like the Gtk# API. I prefer methods having return values. I guess it is a matter of tast. If it would really bother me, I would write some wrappers around… 😉

Converting a Subversion repository to Git

2012/02/06 Comments off

Just discovered this:

John Albin wrote an excellent article on how to convert a subversion repository to git:

NHibernate 3.2 Upgrades

2011/11/09 Comments off
Categories: development, software, windows Tags:

uNhAddIns patch for NHibernate 3.1

2011/10/05 Comments off

since most NuGet packages related to NHibernate come with NHibernate version (at the time of writing), I tried rebuilding uNhAddIns (commit #773) with the newer version of NHibernate.

My changes:

  • upgraded NHibernate to version (Iesi.Collections, NHibernate, NHibernate.ByteCode.Castle)
  • implemented new Interface method ‘IsProxy’ for IProxyFactoryFactory (CSLProxyFactoryFactory, ProxyFactoryFactory)

BTW: .NET is becoming more and more like Java… Who doesn’t love names like ‘IProxyFactoryFactory’? 😉

I did not update any tests.

Feel free to use this code (no licence).

My patch can be found at:

Patch at Google Code

Rails and Emacs: Rsense and Auto-Complete

2011/07/17 Comments off

If you’re developing Rails with Emacs and using Rinari here are two more extensions you might like:


Installation. Just  as described. Code completion for ruby-on-rails with emacs!

And the package is written in Java(!), Very cool!

I am impressed!

Antivir regression bug makes Visual Studio 2010 unusable

2011/07/09 Comments off

The current version of Antivir Personal slows down Visual Studio 2010 making it unbearable to develop ASP.NET applications.

Debugging with active Antivir: appr. 5min for an empty Default.aspx page to display.

Debugging with deactivated Antivir: a few seconds for an empty Default.aspx page to display.

Until Antivir fixes this bug I will give Microsoft Security Essentials a try.

Regression because this has been addressed and fixed in December 2010:

Antivir FAQ (English)

Antivir FAQ (Deutsch)

This applies to the following version of Antivir:

Produktversion 29.06.2011
Suchengine 06.07.2011
Virendefinitionsdatei 07.07.2011
Control Center 28.06.2011
Config Center 28.06.2011
Luke Filewalker 28.06.2011
AntiVir Guard 28.06.2011
Filter 28.06.2011
AntiVir WebGuard 28.06.2011
Planer 02.05.2011
Updater 21.06.2011