But I think the movement is significant and can’t be overstated. And recent developments are really even making it more and more interesting.
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.
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!
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!
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…
In this article i will show you a small tool named “switcher”. Maybe you know the feature expose on mac OS S, Switcher enables this on Windows Vista and Windows 7 Clients. I guess if you install Switcher you never use “alt” & “tab” and “win” & “tab” again.
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.
Currently I’m in the refresher course of the swiss armed forces in Andermatt. So I get plenty of 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.
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?
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.
- on transitions
- entry and exit actions (parametrizable)
- transaction guards
- 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