Home / Archive by category "Software" (Page 2)

The future smells like JavaScript

Of course I am only repeating what others are preaching about the recent rise of JavaScript.

But I think the movement is significant and can’t be overstated. And recent developments are really even making it more and more interesting.

Nobody can deny hat JavaScript is the de facto programming language of Html5. Every other language trying to bolt itself onto Html5 looks like pure friction so far. And Html5 is looking upon a prospering future. Continue reading

Why I like NDepend to untangle Dependencies in my Code

Some time ago, Patrick Smacchia (NDepend lead developer) offered me a NDepend Pro license to play around. NDepend is a tool providing a lot of features. The feature that impressed me from the very start is visualizing dependencies. Not just dependencies from classes to classes, or assemblies to assemblies; no from everything to everything. Like for example all assemblies that use somewhere the method Foo of class Bar. It works for assemblies, namespaces, types, methods and fields.

But, what’s all this fuss about?

Keeping a code base and its design as simple as possible over a long period of time is very difficult. It happens just too quickly that we loose the overview of how things are sticked together. And this is the moment when NDepend with its quick and easy dependency visualization comes to the rescue.

Continue reading

GitExtensions 2.24 and Apply Patch pitfall

Today I survived a shocking experience.  I’m working on an open source framework. Some of the features I’ve been doing at home on a cloned git respository. I have commited about 6 times for a feature. Another change of the feature I was doing on another machine at my workplace. These changes were another two commits. I then patched the two commits I did on my work computer and applied them at home upon the other six commits with gitextensions (version 2.24).

When I applied the patches gitextensions was hanging indefinitely in the patch apply mode. After waiting for about 5 minutes I aborted the patching process. This left my whole repository in the middle of rebase state. Worst of all was that all my commits from the last week where gone! My blood pressure raised immediately. I tried several approaches: Abort the merge process several times, skip the patches etc. but none of these approaches were successful. Git always complaint that the folder .git/rebase-apply could not be removed. How can this state be resolved? I’ll show you how!

Continue reading

Using VS2010 integrated fxcop in continuous integration

In our projects we heavily rely on the Microsoft FxCop engine. FxCop prevents us from making stupid programming mistakes like forgetting to dispose a disposable object etc. For a long time we used the FxCop engine 10.0 which has a command line integration for continuous integration environments. Lately we discovered that the VS2010 integrated FxCop has a much stronger analysis engine and more rule sets which could improve our code base even further. But how do you get the VS2010 integrated fxcop running on continuous integration without having to install VS2010 on the build machine? I’ll show you how!
Continue reading

VS2010 Search + Replace to the rescue

I’m currently working porting a library into another open source project. As I have heavily extended the library my primary goal was to make it work and then compliant to the coding guidelines. A lot of my code contained in the library had automatically generated (with R#) interface implementations which contained blank lines between the curly braces. As you might know this is not StyleCop compliant. Wonderfully I was able to address the issues with the VS2010 Search + Replace dialog and tagged expressions. See how…

Continue reading

USB to DVI Adapter from Gefen

You can’t imagine how frustrated I was when I received my new dell business notebook with Core i7 (hyperthreading) when I tried to attach two external monitors to the docking station while running the laptop screen as third monitor… It’s just not possible! As a software developer it is really helpful to have three monitors. I usually have the following work setup when having three monitors (normally 20” with 1600×1200):

First monitor (primary with taskbar):

VS2010 with just the solution explorer and properties pane visible as needed

Second monitor (with extended taskbar from ultramon):

Resharper 5.1 windows such as file structure, unit test explorer and unit test session (those are the most important for me)

Third monitor (with extended taksbar from ultramon):

Firefox, Skype and Email, usually also documentation (which I’m currently writing or user documentation when help is needed)

With only two monitors you always need to move around the resharper windows when you want to browse or read a tutorial on the internet. This sucks!

Two eliminate this problem when using the business laptop I was looking around for a USB to DVI adapter and found finally a good one which has arrived last week by postal service. Gefen Ext-USB-2-DVIHD-CO! Let me describe it.

Continue reading


Currently I’m in the refresher course of the swiss armed forces in Andermatt. So I get plenty of charlton-heston-Mosses-iPad time to test my new Apple iPad. I have the 16 GB model without the 3G (UMTS) modem. I decide to buy the cheapest model because I think I don’t need much storage on my web tablet. The 3G option was for me secondary because I own a notebook with built in UMTS modem. As a side note you can use the freeware Connectify to switch any pc in to a wlan access point http://www.connectify.me/. Or create a wlan network proxy with an iPhone and the app NetShare (10$) from the Sydia store.

First I will make my coming out as an Apple fan boy. So this article reflects my personal meaning and may not be 100% objective. The physical dimensions of the device are 243mm x 190mm x 13mm. The weight of the iPad is 0,68 kg or 0.73 kg for the 3G model. By the way the 3g models have also an compass and a GPS module. The display is 9.7 inch and has a resolution of 1024×768 (132ppi). The battery live is beyond 10 hours witch is very, very, very impressive. There are only three points witch are semi optimal. The reflecting display is not my favorite option. And if you use the iPad in the Sun in became a little bit hot and shuts himself down. The iBook store of Switzerland only host’s only free book from the Gutenberg project. As you can imagine Nathan the wise from Lessing is note my favorite bed lecture.

Continue reading

How to select open source libraries

We use a lot of open source libraries and components in our daily business. Open source libraries provide us a big advantage regarding time to market with our products. Every time when we are facing a problem in our software (problem is related to business domain to implementation domain difficulties) we first look into the open source world if someone has already solved that problem or even parts of it. Sourceforge, codeplex and google code (to name a few) are often the first pages we visit to look for code samples, libraries and frameworks. But how can we find the needle in the haystack?

Continue reading

Hierarchical State Machine with Fluent Definition Syntax (.NET)

The .NET component library bbv.Common (open source – Apache License 2.0) provides a powerful hierarchical state machine.

Its features are:

  • value type based (enums, ints, …) resulting in single class state machines.
  • actions
    • on transitions
    • entry and exit actions (parametrizable)
  • transaction guards
  • hierarchical
    • different history behaviours to initialize state always to same state or last active state
  • fluent definition interface
  • synchronous/asynchronous state machine
    • passive state machine handles state transitions synchronuously
    • active state machine handles state transitions asynchronously on the worker thread of the state machine
  • configurable thorough logging simplifies debugging using log4net (can be replaced easily with custom logging)
  • state machine report for textual description of state machine

Continue reading