Memo on O-Ring and Software Erosion

One of the most fascinating documents I’ve read to date is the memo from Roger Boisjoly on O-Ring Erosion. The original target audience for this memo he’d written were the manag...

Read More

Learning F# - The Thunderdome Principle for Functions

Back in 2008, Jeremy Miller introduced the Thunderdome Principle, a technique he used for building maintainable ASP.NET MVC applications which later led to the FubuMVC open-sour...

Read More

Learning F# - Passing Parameters to Functions

One of the first issues I faced when learning F# was finding out how to specify multiple parameters to a function. While this might sound obvious when learning a functional prog...

Read More

The Burden of Features in Software

I’ve been removing a couple of dead features this week. You know, those features that senior people in organisations like to tell epic war stories about. Those mighty conversati...

Read More

Product or Project Focused

A software development team in an organization should be able to focus on the core domain that reflects the business it’s serving. Developers on the team should be able to itera...

Read More

Premature Abstraction

The first time I read the GoF book, I didn’t understand it. This was because I didn’t had a decent understanding of the principles of object-oriented programming at the time. A ...

Read More

The Quest for the One True Static Site Generator

When I started blogging back in 2005 I created my personal blog on Blogger. I’ve been using this excellent blogging service over the years, enjoying the luxuries of not having t...

Read More

Using F# in Sublime Text on Linux Mint

I’ve been learning about functional programming for quite some time now, trying to wrap my head around the various concepts that this paradigm has to offer. One of the languages...

Read More

Hacking Endeavours - A Tale About Having Fun

Some time ago, I was talking to a colleague of mine at a company event. While we were there talking, one of us popped the following question: What’s the latest totally crazy...

Read More

Out of the Tar Pit

A while ago I read "Out of the tar pit", which is an excellent paper written by Ben Moseley and Peter Marks. In this paper, the authors discuss different types of complexity in ...

Read More

Clojure Kata #3 – Roman Numerals

I’m still in the process of trying to wrap my head around Clojure. I’ve been practicing several different katas like Fizz Buzz and the Bowling Game. Another one I’ve been doing ...

Read More

Awesome talks

There are a lot of screencasts, recordings of user group gatherings and conference talks available online. I try to commit myself watching at least two new talks every week, and...

Read More

Clojure Kata #2 – The Bowling Game

As mentioned in the previous blog post, I’ve been learning Clojure and I decided to do so while practicing a couple of coding katas. The second kata that I want to walk throug...

Read More

Clojure Kata #1 – Fizz Buzz

I’ve been learning more about the ins and outs of Clojure lately, so I decided to practice a couple of katas. The obvious first one is the Fizz Buzz kata. Here’s the code of m...

Read More

Node-m-r – A Simple CQRS Example using Node.js

Anyone learning about DDD, CQRS and/or event sourcing has probably read the source code of Greg Young’s simple CQRS example at some point or another. This is one of the simplest...

Read More

Either.js

Some time ago, I was watching this excellent video course by Neal Ford titled “Functional Thinking – Functional Programming using Java, Clojure and Scala”. In one of the modules...

Read More

Detecting the End of a Rainbow Inside a Writable Stream

I was implementing a custom writable stream in Node.js the other day when I ran into this issue where I wanted to know whether more data was coming or that we were actually done...

Read More

Taking Toddler Steps with Node.js – The Towering Inferno Revisited

Soon after I started using Node.js, I ran into the phenomenon of multiple nested callbacks that create some kind of horizontal tower effect. The solution I came up with in order...

Read More

Byte Magazine Archives

Earlier this week I accidentally stumbled on archive.org where they are hosting an extensive backlog of old issues of Byte magazine. This magazine was an American microcomputer ...

Read More

Seven Languages in Seven Weeks

A while ago, I was thinking about which programming language I wanted to learn next. At first I was doubting between Scala, Ruby or perhaps Clojure. But I couldn’t really make u...

Read More

Taking Baby Steps with ScriptCS

I’ve been following the ScriptCS project with great interest over the last couple of months. As you may know by now, I’ve been searching for a more lightweight .NET development ...

Read More

Introducing node-validation

Some time ago I was looking for a validation library/module for use in a small Express application that I was writing at the time. I couldn’t find anything that suited my taste ...

Read More

Basic JavaScript: Prototypical Inheritance vs. Functional Inheritance

Inheritance in JavaScript has been the topic of many discussions in the past and will continue to be the source of future debates and arguments. While we do value composition ov...

Read More

Confessions of a Sublime Text-aholic

It’s true. I’m a Sublime Text addict. It’s by far my favorite development tool. End of story! Just to illustrate, earlier this week, a member of our development team asked how t...

Read More

Writing Fast, Memory-Efficient JavaScript

Earlier this week, I read this great article titled “Writing Fast, Memory-Efficient JavaScript” by Addy Osmani. This is a highly recommended read for anyone involved in writing ...

Read More

Taking Toddler Steps with Node.js - Express Routing Revisited

Last year I wrote this blog post where I described a couple of ways on how to tackle routing with Express. In the mean while I moved on from the “Plain Old School” approach to a...

Read More

Visual Studio Light Edition

I noticed this blog post from Scott Hanselman the other day about Visual Studio Express 2012 for Windows Desktop. This post included a screenshot from the installation program. ...

Read More

Steve Jobs - The Biography by Walter Isaacson

At first I was a bit skeptical whether I should spend time listening to the audio version of this book. I’ve heard and read both great things as well as bad things about the boo...

Read More

Blitz

The last couple of weeks I’ve been playing with a load testing tool called Blitz. You can create a free account which provides you the ability to ‘rush’ your web application wit...

Read More

Outliers – The Story of Success

A couple of weeks ago, I digested the audio version of Outliers – The Story of Success, written by Malcolm Gladwell. In this book, the author tells the story of a couple well-kn...

Read More

My Developers Life–The Social Media Diet

In the previous blog posts I discussed the importance of getting enough sleep and physical exercise. For this post I want to provide a quick shout out of the social media diet t...

Read More

My Developers Life - The Importance of Physical Exercise

In the previous blog post, I discussed the importance of getting enough sleep every single night. For this post I want to emphasize the importance of physical exercise. I’m writ...

Read More

My Developers Life - The Importance of Sleep

When I was reading Just for Fun, I came across this paragraph in the book where Linus Torvalds stated that he never missed a good night’s sleep during the early days when he was...

Read More

Taking Toddler Steps with Node.js – Passport

Recently I added Twitter authentication to TrackMyRun using a library called Passport. I was pretty impressed how smooth this all went as I completely neglected all security con...

Read More

Taking Toddler Steps with Node.js - Express Error Handling

In the previous post I wrote about my personal routing flavor for Express. For this post, I want to briefly discuss how to set up error handling using Express. In order to get u...

Read More

Taking Toddler Steps with Node.js - Thou Shalt Not Deny Asynchrony

A few of weeks ago, I ran into this awesome article “Understanding process.nextTick()” on the How To Node blog. In this article, the ever friendly Kishore Nallan shows a couple ...

Read More

Taking Toddler Steps with Node.js - Npm Police

Earlier this week, I ran across this incredibly helpful utility called npm-police. It analyzes all packages that are specified in a package.json file and reports which packages ...

Read More

Book Review: Just for Fun

A while ago, my colleague Wouter recommended this book titled Just for Fun – The Story of an Accidental Revolutionary written by Linus Torvalds. The author needs no further intr...

Read More

Book Review: The Unix Programming Environment

A couple of weeks ago I finished reading The Unix Programming Environment, written by Brian W. Kernighan and Rob Pike. The main reason that I picked up this classic book was to ...

Read More

View Collation in CouchDB

A couple of weeks ago I learned about a very neat feature of CouchDB called view collations. Basically, view collations enables us to make joins between documents. Let’s look at...

Read More

Introducing TrackMyRun

I’ve been working on a small pet project for a couple of weeks now, which I named TrackMyRun. I’m quite fanatic when it comes to running, doing about 130 runs a year. Currently ...

Read More

Taking Toddler Steps with Node.js - Express Routing

In the previous post I provided a short introduction to Express, a web development framework built on top of connect that is heavily inspired by Sinatra. For this post we’ll div...

Read More

Retrospective of 2011, Looking Ahead to 2012

Yep, that time of the year again. Shiny new calendars and the accompanying festivities are upon us again. I can’t get rid of the feeling that every year passes by a lot faster t...

Read More

Taking Toddler Steps with Node.js – Express

< The list of previous installments can be found here. > There are several frameworks out there for building web applications with Node.js, one being more successful than ...

Read More

Taking Baby Steps with Node.js – Linking Local Packages with npm

< The list of previous installments can be found here. > I just wanted to share a very neat feature of npm that makes life quite a lot easier when developing libraries for...

Read More

Taking Baby Steps with Node.js – BDD Style Unit Tests with Jasmine and CoffeeScript

< The list of previous installments can be found here. > In a previous blog post, I already wrote about BDD style unit tests for testing Node.js modules using Jasmine. I r...

Read More

The Cathedral and the Bazaar

A couple of weeks ago, I ran into this website from Eric S. Raymond, the author of the book The Cathedral and the Bazaar. There’s a recording of a great presentation that anyone...

Read More

Presenting “Taking Baby Steps with Node.js” at Agile.NET 2011 Europe

In a couple of weeks, I’ll be doing an introductory presentation on Node.js at the Agile.NET 2011 conference. While having a look at the other sessions and speakers, I’m quite h...

Read More

My First Day at iChoosr

Today was my very first day at iChoosr, a small internet startup that focuses on Vendor Relationship Management. I’ll be working there as a web developer in a small team of very...

Read More

An Observation about TDD

To me, developers that are not applying TDD practices during their day-to-day job always seem more in a hurry than developers that do apply red-green-refactor. In their hurry, t...

Read More

Book Review: The Clean Coder

Earlier this week I finished reading Uncle Bob’s latest book The Clean Coder. Robert C. Martin is a great writer and I very much enjoyed reading his previous books. His latest w...

Read More

Book Reviews: CoffeeScript and JavaScript Web Applications

While catching up on my reading backlog, I particularly enjoyed reading two new books I bought recently which I’m going to briefly discuss in this blog post. 1. CoffeeScript - ...

Read More

Dynamic in C# is Broken

Earlier this week, I ran into an issue while using the dynamic keyword in C#. I learned from C# in Depth that there are a couple of restrictions with dynamic, most notably when ...

Read More

Exploring CoffeeScript Part 6 - Show Me the Goodies !

For the final blog post in this series, we’re going to go over a couple of cool little nuggets that one can use to write some elegant CoffeeScript code. Also check out the previ...

Read More

Moving from E-TextEditor to Sublime Text 2

I’ve been using E-TextEditor for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development. You can think of E-TextEditor as TextMate for the Window...

Read More

Exploring CoffeeScript Part 5 - Ranges, Loops and Comprehensions

For this blog post, we’re going to discuss ranges, loops and comprehensions in CoffeeScript. Also check out the previous installments: And Then There Was Coffee Variables an...

Read More

Exploring CoffeeScript Part 4 - Objects and Classes

For this blog post, we’re going to continue our journey through the wonderful world of CoffeeScript, exploring objects and classes. Also make sure to check out the previous inst...

Read More

Exploring CoffeeScript Part 3 - More on Functions

For this blog post we’re going to continue where we previously left off, talking a bit more about functions in CoffeeScript. Let’s get things started by talking a bit about func...

Read More

Taking Baby Steps with Node.js – Don’t Block The Event Loop

< The list of previous installments can be found here. > The basic premise of Node.js is that all I/O operations are expensive. That is why all I/O should be carried out a...

Read More

Exploring CoffeeScript Part 2 - Variables and Functions

As I mentioned in the previous blog post, CoffeeScript is a neat little language that compiles down to JavaScript code. Its syntax is heavily inspired by Ruby and next to bringi...

Read More

Book Review: Hands-on Node.js

Last week, I finished reading Hands-on Node.js written by Pedro Teixeira. I very much enjoyed reading this concise introduction to Node.js, and although it’s targeted towards be...

Read More

Exploring CoffeeScript Part 1 – And Then There Was Coffee

Those of you who have been reading this blog lately know that I’m quite enthusiastic when it comes to JavaScript. As the common behavioral language of the web, JavaScript has be...

Read More

Taking Baby Steps with Node.js – The E-VAN Presentation

The recording of my very first E-VAN talk on Node.js is now available. If you want to hear me blabbering on about Node.js then I suggest you have a look. 

Read More

A Quartet of Book Reviews

Since a couple of months or so, the amount of time spent for my daily commute to and from work nearly tripled. I also decided to travel by train instead of using my car (which k...

Read More

Taking Baby Steps with Node.js – npm 1.0

< The list of previous installments can be found here. > Isaac recently released version 1.0 of npm, which is a package manager for Node.js. I’ve been using npm very early...

Read More

Taking Baby Steps with Node.js – WebSockets

Here are the links to the previous installments: Introduction Threads vs. Events Using Non-Standard Modules Debugging with node-inspector CommonJS and Creating Custom Modul...

Read More

Taking Baby Steps with Node.js–Creating TCP Servers

Here are the links to the previous installments: Introduction Threads vs. Events Using Non-Standard Modules Debugging with node-inspector CommonJS and Creating Custom Modul...

Read More

Taking Baby Steps with Node.js – The Towering Inferno

Here are the links to the previous installments: Introduction Threads vs. Events Using Non-Standard Modules Debugging with node-inspector CommonJS and Creating Custom Modul...

Read More

Taking Baby Steps with Node.js – Some Node.js Goodies

Here are the links to the previous installments: Introduction Threads vs. Events Using Non-Standard Modules Debugging with node-inspector CommonJS and Creating Custom Modul...

Read More

Taking Baby Steps with Node.js – Pumping Data Between Streams

Here are the links to the previous installments: Introduction Threads vs. Events Using Non-Standard Modules Debugging with node-inspector CommonJS and Creating Custom Modu...

Read More

Basic JavaScript Part 12: Function Hoisting

Here are the links to the previous installments: Functions Objects Prototypes Enforcing New on Constructor Functions Hoisting Automatic Semicolon Insertion Static Proper...

Read More

Book Review: C# in Depth–2nd Edition

I really learned a lot from reading the first edition of C# in Depth, so I was very glad that I finally found some time to make my way through the second edition. The content on...

Read More

Taking Baby Steps with Node.js – “node_modules” Folders

Here are the links to the previous installments: Introduction Threads vs. Events Using Non-Standard Modules Debugging with node-inspector CommonJS and Creating Custom Modu...

Read More

Git-Tfs – Where Have You Been All My Life

My very first encounter with a version control system was CVS. I’ve used this tool for many years (late 90’s, early 2000’s), learning a lot of best practices about source contro...

Read More

Taking Baby Steps with Node.js – BDD Style Unit Tests with Jasmine-Node Sprinkled With Some Should

Here are the links to the previous installments: Introduction Threads vs. Events Using Non-Standard Modules Debugging with node-inspector CommonJS and Creating Custom Modu...

Read More

Basic JavaScript Part 11: Functional Initialization

Here are the links to the previous installments: Functions Objects Prototypes Enforcing New on Constructor Functions Hoisting Automatic Semicolon Insertion Static Proper...

Read More

Book Review – Driving Technical Change: Why People on Your Team Don't Act on Good Ideas, and How to Convince Them They Should

I already finished “Driving Technical Change” a few weeks ago, but I  got so caught up with other stuff that I almost forgot to actually sit down and write a review for it. I wa...

Read More

Taking Baby Steps with Node.js – Implementing Events

Here are the links to the previous installments: Introduction Threads vs. Events Using Non-Standard Modules Debugging with node-inspector CommonJS and Creating Custom Modul...

Read More

Basic JavaScript Part 10: The Module Pattern

Here are the links to the previous installments: Functions Objects Prototypes Enforcing New on Constructor Functions Hoisting Automatic Semicolon Insertion Static Propert...

Read More

Taking Baby Steps with Node.js – Node Version Management with n

Here are the links to the previous installments: Introduction Threads vs. Events Using Non-Standard Modules Debugging with node-inspector CommonJS and Creating Custom Modu...

Read More

Taking Baby Steps with Node.js – CommonJS and Creating Custom Modules

Here are the links to the previous installments: Introduction Threads vs. Events Using Non-Standard Modules Debugging with node-inspector In a previous blog post, I already...

Read More

Basic JavaScript Part 9: Reusing Methods of Other Objects

Here are the links to the previous installments: Functions Objects Prototypes Enforcing New on Constructor Functions Hoisting Automatic Semicolon Insertion Static Propert...

Read More

Basic JavaScript Part 8: Namespaces

Here are the links to the previous installments: Functions Objects Prototypes Enforcing New on Constructor Functions Hoisting Automatic Semicolon Insertion Static Proper...

Read More

Book Review – Extreme Programming Explained

Last week I finished reading the first edition of Extreme Programming Explained, written by Kent Beck. I explicitly wanted to read the first edition, that I purchased via AbeBoo...

Read More

Basic JavaScript Part 7: Static Properties and Methods

Here are the links to the previous installments: Functions Objects Prototypes Enforcing New on Constructor Functions Hoisting Automatic Semicolon Insertion In this post, I...

Read More

Taking Baby Steps with Node.js – Debugging with node-inspector

Here are the links to the previous installments: Introduction Threads vs. Events Using Non-Standard Modules Writing unit tests for your code drastically reduces the am...

Read More

Basic JavaScript Part 6: Automatic Semicolon Insertion

Here are the links to the previous installments: Functions Objects Prototypes Enforcing New on Constructor Functions Hoisting For this post, I’m going to discuss a feature...

Read More

The Social Network

Over the weekend I watched this movie called The Social Network. As a geek, I felt that I was somehow mentally obligated to see this movie :-). While I was watching this movie, ...

Read More

Book Review – JavaScript Patterns

Earlier this week I finished reading JavaScript Patterns, written by Stoyan Stefanov. After I very much enjoyed reading his previous book titled Object-Oriented JavaScript last ...

Read More

My Personal and Professional Goals for 2011

Around the same time last year, I wrote this blog post where I’ve set out a couple of things to learn throughout the year. Being really honest with myself, I must admit that I c...

Read More

Basic JavaScript Part 5: Hoisting

Here are the links to the previous installments: Functions Objects Prototypes Enforcing New on Constructor Functions I just wanted to quickly share a little tidbit that I r...

Read More

Basic JavaScript Part 4: Enforcing New on Constructor Functions

As this is already the fourth blog post using the “Basic JavaScript” theme, I guess we’re slowly getting a small blog series on our hands. Here are the links to the previous ins...

Read More

Christmas Light Architectures Are Not That Shiny

I just want to get something of my chest that is bothering me for quite some time now. It’s not going to be a rant of some sort, but merely a couple of observations for which I ...

Read More

Taking Baby Steps with Node.js – Using Non-Standard Modules

In previous blog posts, I provided a short introduction to Node.js while also discussing the event-based model that lies at its core. For this blog post, I want to show how to e...

Read More

ASP.NET (MVC) and the Tale of the Continuous Application Restarts

I made a classic rookie mistake with ASP.NET (MVC) the other day. In my spare time, I’m working on this small sample application for myself in order to learn more about ASP.NET ...

Read More

A Burden Called Meetings

I’ve been working for an enterprise corporation for 5+ years, which I’m going to be leaving soon. This organization is suffering from a wide-spread malady called “meetingitis”. ...

Read More

Basic JavaScript Part 3 : Prototypes

In previous blog posts, I talked about the rich capabilities of functions and objects in JavaScript. For this post I want to briefly touch on the concept of prototypes. Having a...

Read More

AutoTest.NET

I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named AutoTest.NET. Its an open-source tool that originates from a popular tool in ...

Read More

Book Review - The Nomadic Developer

Just before I recently decided to turn a new page in my professional career, I came across this book called The Nomadic Developer: Surviving and Thriving in the World of Technol...

Read More

Taking Baby Steps with Node.js – Threads vs. Events

In a previous blog post, I provided a shallow introduction to Node.js. I also mentioned where you can find more information on how to get it installed on Windows as well as how ...

Read More

The Black Art of P/Invoke and Marshaling in .NET

Last week I finally managed to hunt down and resolve a bug that I had been chasing for quite some time. A couple of years ago I built an ASP.NET web service that makes use of a ...

Read More

Basic JavaScript Part 2 : Objects

In a previous blog post, I showed some of the rich capabilities of functions in JavaScript. For this post I want to have a brief look at objects in JavaScript. Let’s start with ...

Read More

Taking Baby Steps with Node.js – Introduction

Like myself, you might have read an article somewhere about Node.js or heard it mentioned a couple of times during some talk. So I actually got curious and decided to start lear...

Read More

Code Retreat Ghent

Last Saturday I got up very early in the morning so I could spend the whole day at the Code Retreat in Ghent. This Code Retreat was organized by AGILEMinds and facilitated by Co...

Read More

ArrrrCamp - About Ruby, Rails, Radiant and Rum

Yesterday, I attended ArrrrCamp in Gent together with my former colleague Peter Eysermans. This was my very first Ruby conference although I would argue that the focus was more ...

Read More

Moving to Greener Pastures

I’m very thrilled to announce that I’ll be joining QFrame starting from February next year. I’ll be working there as a .NET architect/consultant focused on exploring technologie...

Read More

Laborers versus Professionals

A while ago, my good friend Michel Grootjans tweeted the following: Are developers (a) laborers or (b) professionals? If (a) don't expect them to think. If (b) don't expect the...

Read More

Basic JavaScript Part 1 : Functions

Functions are a very important concept in most programming languages, but they are even more important in JavaScript. When you read this as a C# or VB developer you probably won...

Read More

Book Review: A Whole New Mind: Why Right-Brainers Will Rule the Future

After having listened to the recording of a speech by Daniel Pink, I quickly decided to purchase the audio version of A Whole New Mind: Why Right-Brainers Will Rule the Future. ...

Read More

Elegant Documentation Never Lies

I was taking a close look at the API documentation of the ExtJS JavaScript library the other day and I noticed something very interesting. You can see that the ExtJS fo...

Read More

Book Review: jQuery in Action (2nd Edition)

I wanted to pick up a book on jQuery for quite some time now so I decided to give jQuery in Action a try. Besides all the nice things I’ve heard and read about jQuery, I didn’t ...

Read More

Book Review: Facts and Fallacies of Software Engineering

Having this book on my shelf for quite some time now, I finally decided to to make my way through reading Facts and Fallacies of Software Engineering written by Robert L. Glass....

Read More

Book Review: Debug It!

Throughout my career as a professional software developer,   I’ve spent quite a lot of my learning time to sharpen my debugging skills. I’ve always considered this as one of the...

Read More

Book Review: Object-Oriented JavaScript

A good number of folks have recommended me to pick up Object-Oriented JavaScript after I put out this book review on JavaScript – The Good Parts. They told me that it’s a great ...

Read More

CreateDelegate – An Exercise in Using Expressions

In a previous blog post I showed a basic example of how to use the Delegate.CreateDelegate() method as an alternative to the slow MethodInfo.Invoke() for dynamically invoking a ...

Read More

Using TransactionScope with SQLite

Earlier this week I ran into a little quirk with SQLite. Take a look at the following code snippet: using(var transaction = new TransactionScope(TransactionScopeOption.Required...

Read More

Book Review: Switch - How to Change Things When Change is Hard

After hearing about this book in an interview with Mary and Tom Poppendieck, I decided to immediately purchase the audio version on Audible and listen to it during my daily comm...

Read More

Enter a Parallel Universe Using IKVM.NET

IKVM.NET is something I’ve been playing with for a while now, but seeing this awesome trailer today reminded me that I should write a post about it. I always considered Java t...

Read More

Learning JavaScript – Checking The Declaration of a Variable

Judging from my previous post, some people might have come to the conclusion that I’m in the process of learning a wonderful programming language called JavaScript. Well, they’r...

Read More

Book Review: JavaScript – The Good Parts

Today I finished reading JavaScript – The Good Parts written by Douglas Crockford. That picture on his website of him speaking with Chuck Norris on the background should make yo...

Read More

Linfu Duck Typing Part 1 – Revealing Secrets

Don’t you just hate it when a class in the .NET Framework or another third-party library or framework provides that particular feature you’re looking for only to realize that th...

Read More

Book Review: ASP.NET MVC in Action

Earlier this week I finished reading ASP.NET MVC in Action written by Jeffrey Palermo, Ben Scheirman and Jimmy Bogard.  I came across several good reviews about this book so I f...

Read More

Don’t Give Up on the State Pattern Just Yet - Revisited

In my previous post on the subject, I showed how you can remove some of the friction caused by applying the State pattern. In fact, as some of you rightfully pointed out, this f...

Read More

Don’t Give Up on the State Pattern Just Yet

Last week, Greg Young wrote a blog post about State Pattern Misuse. In this post he talks about how ugly the State pattern can become if some operations are not allowed when the...

Read More

Behaviors with MSpec

In my previous posts, I showed the syntax for context/specifications using Machine.Specifications (or MSpec for short) and how to use an auto mocking container in conjunction wi...

Read More

MSpec and Auto Mocking

In my previous post, I explained how to get started with Machine.Specifications (or MSpec for short) and showed you how the syntax for context/specifications looks like when usi...

Read More

Getting Started With Machine.Specifications (MSpec)

Its been a while since I evaluated and evolved my approach to BDD. The way I’ve been doing BDD up until now is described in this blog post which goes way back to 2008. Everyone ...

Read More

Is NoSQL Finally Going Mainstream?

Its been a while since I enjoyed my adventures with CouchDB. I sure wish I could have some extra time to pick this up again, but getting some sleep at night is nice too once in ...

Read More

Integrating ELMAH for a WCF Service

Peter Cosemans, who is one of my colleagues, found a nice way to integrate ELMAH for a WCF service. ELMAH is an error logging facility for logging unhandled exceptions particula...

Read More

JetBrains Web IDE

As I already mentioned in a previous blog post, I’m kind of (re-)learning HTML and CSS. The best way for me to pick things up again is by getting my hands dirty and work myself ...

Read More

Calling Non-Public Methods

A typical way for invoking a non-public method of a class is by using reflection. This can come in handy in a number of cases. One typical scenario that comes to mind is when th...

Read More

CSS Basics: The Box Model

If you’ve been using CSS for a while, then this post will probably teach you nothing new. I just wanted to state the obvious even if I’m the only one who benefits from it. Whil...

Read More

Retrospective of 2009, Planning for 2010

After the Kaizenconf of 2008, I wrote down a couple of things I wanted to learn throughout 2009. Looking back at that list for the past year, I think I did fairly well. Retrosp...

Read More

Taking a Visit To The SUSE Studio

After listening to the keynote of Monospace 2009, I got somewhat intrigued by the possibilities of SUSE Studio. Miguel de Icaza talked about this in his presentation and because...

Read More

Review Amazon Kindle DX

As my bookshelf has grown out of proportion over the last years, I basically had two options left. First option was to build an extra room onto my house that could serve as a pr...

Read More

Book Review: Enterprise Service Bus

About a year ago, I was lucky enough to attend the Kaizenconf in Austin. When I joined the discussions on ESB Patterns, Dru Sellers and Chris Patterson (also known as the MassTr...

Read More

Next European VAN on 18 November 2009

Mark Nijhof is going to enlighten us all with his DDD/CQRS sample application. You can read all about it at the E-VAN blog.

Read More

Mapping From IDataReader/IDataRecord with AutoMapper

A while ago, I submitted a patch to AutoMapper that added basic support for mapping data from an IDataReader/IDataRecord to an object. For those of us who don't have the luxury ...

Read More

Exploring NServiceBus

I've been learning a bit more about Service-Oriented Architecture (SOA) and Event-Drive Architecture (EDA) over the last couple of months. Something that kept coming back in the...

Read More

Next European VAN on 05 October 2009

Read all about it at the E-VAN blog.

Read More

Book Review: Enterprise Integration Patterns

I just finished reading Enterprise Integration Patterns written by Gregor Hohpe and Bobby Woolf. This book follows the same concept used by Martin Fowler and his marvelous PoEAA...

Read More

Fluent Domain Methods

In my last post, I talked about a Generic Expression Builder class for easily creating domain entities through expression builders. This generic base class takes away some of th...

Read More

Generic Expression Builder

I blogged about fluent interfaces and expression builders a couple of times before. For this post, I want to share a base class that I've been using for taking away some of the ...

Read More

NHibernate 2.1 and Collection Event Listeners

In a previous post, I talked about cascading deletes being a new feature introduced by NHibernate 2.0. If you haven't heard about this before, then you'd probably be interested ...

Read More

Design Documents in CouchDB and Validation

To start off, here are the links to my previous posts about CouchDB: Relaxing on the Couch(DB) Installing the Couch(DB) PUTting the Couch(DB) in Your Living Room ...

Read More

Using NHibernate for Legacy Databases

One of the downsides of being confronted with a shared legacy database day in and day out is that you have to map your domain objects to database tables that are also used by ot...

Read More

Views into CouchDB

To start off, here are the links to my previous posts about CouchDB: Relaxing on the Couch(DB) Installing the Couch(DB) PUTting the Couch(DB) in Your Living Room ...

Read More

Adding Attachments to a Document in CouchDB

To start off, here are the links to my previous posts about CouchDB: Relaxing on the Couch(DB) Installing the Couch(DB) PUTting the Couch(DB) in Your Living Room ...

Read More

The Europe Virtual ALT.NET Blog

Colin has set up a dedicated blog for the Europe Virtual ALT.NET gatherings. We'll be posting all announcements, details of recordings and any related stuff to this blog. If y...

Read More

DELETE Documents from CouchDB

To start off, here are the links to my previous posts about CouchDB: Relaxing on the Couch(DB) Installing the Couch(DB) PUTting the Couch(DB) in Your Living Room ...

Read More

GETting Documents From CouchDB

To start off, here are the links to my previous posts about CouchDB: Relaxing on the Couch(DB) Installing the Couch(DB) PUTting the Couch(DB) in Your Living Room ...

Read More

PUTting the Couch(DB) in Your Living Room

In my previous posts, I provided a shallow introduction to CouchDB and how to get it installed on a Linux box. Here are the links to these posts: Relaxing on the Couch(DB) ...

Read More

Next European VAN on 6th July 2009

This time, Alan Dean is going to do a presentation about REST. If you want to learn more about REST, then here’s you’re chance. Colin had some really nice things to say about hi...

Read More

Generic Value Object

I just wanted to share my attempt for implementing a generic base class for Value Objects, popularized by Eric Evans and the Domain-Driven Design community. I must say that I go...

Read More

Recording of Udi Dahan on SOA @ E-VAN 01 June 2009

Udi Dahan did a mind blowing talk on SOA as well as on scalable and maintainable architectures. If you missed this great session, then you can watch the recording. Udi Dahan on...

Read More

Installing the Couch(DB)

In my previous post, I talked about some introductory topics regarding CouchDB. In this post I want to walk you through some of the hurdles you need to take when you want to ins...

Read More

Relaxing on the Couch(DB)

The last couple of months, I heard some buzz around CouchDB at several user groups. Listening to this podcast really got me interested, so I decided to learn more about it in or...

Read More

Half-a-Book Review: IronRuby in Action

Earlier this year, Ivan Porto Carrero did a quite enjoyable presentation on IronRuby for the Dutch ALT.NET user group. I recently picked up the early access edition of his book ...

Read More

Next European VAN on 1st June 2009

This time, Udi Dahan will be on the next European VAN answering all your questions about DDD, SOA, CQS, Messaging, NServiceBus, ... If you have questions, please post them on th...

Read More

Recording of Mark Nijhof on Fubu MVC @ E-VAN 06 May 2009

Mark Nijhof did a great job explaining some of the concepts of FubuMVC and showed some of the code from the sample applications of FubuMVC Contrib (including his own blog). If y...

Read More

Next European VAN on 06 May 2009

This time, we're doing a regular presentation. Mark Nijhof, one of the contributors of FubuMVC, will shed some light on this Front Controller style MVC framework for building we...

Read More

Half-a-Book Review: SOA Patterns

A couple of months ago, I bought the early access edition of SOA Patterns after Colin Jack recommended it on Twitter. So far, only the first five chapters are available, but I s...

Read More

Conditional Using

Today I found myself writing the following code: private void DoSomething(String userName) { using(var userEntry = GetUserEntryFor(userName)) if(CouldBeFound(userEn...

Read More

Next European VAN on 14 April 2009

This time, we're going to try an open session. We're all open for suggestions, but Colin suggested Fluent NHibernate or the state of ALT.NET (for more info, see here and here) w...

Read More

Experimenting With Fluent Interfaces in the Domain

As you might have guessed from my previous two blog posts, I've been experimenting with fluent interfaces lately. I've been thinking about passing an expression builder to an ag...

Read More

Book Review: The 4-Hour Workweek: Escape 9-5, Live Anywhere, and Join the New Rich

Yesterday, I finished listening to the 4-Hour Workweek and I really liked it. That's right, I said 'listening' because I have the audio version of the book. While the title do...

Read More

About Working With a Shared Database

I just wanted to share this quote that I've read while I was skimming through Enterprise Integration Patterns. This paragraph clearly phrases my thoughts about a Shared Database...

Read More

One Scenario Where the System.DirectoryServices. AccountManagement API Falls Down

About a year ago, I wrote a post about Directory Programming with System.DirectoryServices. AccountManagement. I've been using the AccountManagement API of the .NET 3.5 framewor...

Read More

Progressive Interfaces

David wrote this post about a month ago where he challenged the usefulness of fluent interfaces. One of his concerns is the discoverability of a fluent API in order to determine...

Read More

Be Careful With the var Keyword and Expression Builders

I just want to point out a small tidbit I ran into earlier this week. I was using the following simplified expression builder that provides a fluent interface for creating an in...

Read More

What I Really, Really, Really Like About Using Fluent NHibernate

Reusable Mappings Something that slightly bothered me with the XML mappings of NHibernate, is the fact that some things need to be configured over and over again. Behold the fol...

Read More

How Do I Learn

You may have noticed that I didn't get around to write that many blog posts over the last two months. While some of you may regret this, others would argue that the universe has...

Read More

Recording of Sebastien Lambla @ E-VAN 25 February 2009

Great demo on REST and the OpenRasta framework by Sebastien Lambla last night. If you missed it, you can now watch the recording. Sebastien Lambla on REST and OpenRasta @ E-VA...

Read More

Book review: LINQ in Action

Yesterday I stopped reading LINQ in Action after I read just the first two parts about LINQ to Objects and the last part about building your own LINQ provider. Although we're on...

Read More

Next European VAN on 25 February 2009

This time, Sebastien Lambla will enlighten us with a talk about REST and the OpenRasta framework. Again, every geek on this planet is free to attend. Here are the details: Sta...

Read More

Recording of the First European VAN

Greg Young did a great job during the first European VAN, talking about Domain-Driven Design and messaging. If you missed it, you can now watch the recording. Greg Young on DDD...

Read More

European Virtual ALT.NET Meeting Rescheduled

Due to some technical difficulties, we were forced to reschedule the first European VAN meeting. It seems that using Office Live Meeting on a Mac is not a great combination. I g...

Read More

European Virtual ALT.NET Meeting on 02/02/2009

The first 'official' virtual ALT.NET meeting for the old continent has been scheduled for next Monday (02/02/2009). For this first one, Greg Young is kind enough to share some o...

Read More

Ethics in Software Development: Craftsmanship over Crap

Robert C. Martin calls 'Craftsmanship over Crap' the fifth principle of the agile manifesto. I've been writing a lot on this blog about writing clean code and qualities that eve...

Read More

My 100th blog post for 2008

I'm just in time for my 100th blog post for this year. As I mentioned last year, I think this is my absolute ceiling when it comes to writing blog posts, but you'll never know. ...

Read More

Hello Real DDD World

I'm really looking forward to the next Dutch ALT.NET meeting where Yves Goeleven will discuss DDD practices while having a look at a real production application. I think we'll h...

Read More

Hello LINQ in .NET 2.0

When using Visual Studio 2008, it is possible to use most of the new language additions of C# 3.0 in a .NET 2.0 project. This because the C# 3.0 compiler is used for both .NET 2...

Read More

Don't Sell Out on the Context, Dude

I’ve been reading a lot of code lately. When I’m doing this, I find it very important to have some unit tests that makes it easier for me to comprehend the actual production cod...

Read More

Migrating a Versionable ASMX Web Service to WCF

Creating a versionable ASMX Web Service is something that was really hard to do in .NET 1.1, mostly because it involved a lot of work and discipline. Creating versionable servic...

Read More

Dutch ALT.NET Meeting - 11 December 2008

Again lots and lots of interesting discussions during the recent Dutch ALT.NET meeting. My employer kindly lent us a nice meeting room to facilitate us geeks. Again, muchos grac...

Read More

Learning about StructureMap

I’ve been playing around with StructureMap for the last couple of days and I must say that I’m really impressed. I had no troubles in quickly getting up to speed with this amazi...

Read More

Type Analyzing Blogs

Ayende blogged about this web site which you can use to analyze the text on your blog (and those of others). It makes some guesses about the personality of the person(s) that wr...

Read More

WCF and Multiple IIS Site Bindings

We ran into an issue last week when we were deploying a WCF service on an IIS web site which had multiple IIS bindings. It manifested itself by throwing the following exception:...

Read More

Marick's Law

This delightful post from Robert "Uncle Bob" Martin describes with much better sentences what I was trying to express with my latest post Professional Under Pressure. When ...

Read More

Professional Under Pressure

A first delivery of our current project is going into production very soon. The team has worked hard and is still working very hard to straighten out the last issues. As with ev...

Read More

How TFS Lost my Trust

This morning, I spent the first 30 minutes of my day figuring out why the CI build failed after I checked in some changes to the code. No big deal, right? I just messed up. Tur...

Read More

NHibernate Fact when Saving a Transient Entity with Second Level Caching Enabled.

After attending the Advanced NHibernate workshop at the Kaizen Conference, I started to do some experimenting with NHibernate in order to gather more in dept knowledge about my ...

Read More

Chain of Responsibility Using Castle Windsor and a First Experience With StructureMap - Part 2

In my previous post, I outlined an issue that I had with Castle Windsor for configuring multiple chains of responsibility. I want to have different ProcessConsumer classes that ...

Read More

Chain of Responsibility Using Castle Windsor and a First Experience With StructureMap - Part 1

A couple of months ago, I applied the Chain of Responsibility pattern for the very first time. I've never encountered a scenario before where applying this pattern would be a va...

Read More

Book Review : Beyond Code

I read Beyond Code during my flight to Austin for the Kaizenconf. It was a quite enjoyable book that focuses on how to distinguish yourself as a software developer. As you may ...

Read More

Be careful with optional parameters in C# 4.0

I've been playing with the Visual Studio 2010 CTP bits, and I tried to see what named and optional parameters in C# 4.0 can bring to the table. Although they are minor language ...

Read More

Kaizenconf Part 3 - Taking Action

The last day of the conference was all about taking action as a community. Which actions should be taken based on the open-space sessions of the day before? I attended the ESB P...

Read More

Kaizenconf Part 2 - Open Space

After the pre-conference workshops, it was finally time to kick-off the open-space conference itself. Before Steven "Doc" List held his opening speech, Oren and Glenn couldn't w...

Read More

Kaizenconf Part 1 - Workshops

My colleague Peter and myself got back yesterday from Austin, Texas where we had one of the greatest learning experiences ever: the Kaizen Continuous Improvement Conference. I'v...

Read More

Attending the Kaizenconf

Peter and yours truly arrived at Austin yesterday for attending the Kaizenconf. I've been really looking forward to this. Hope to meet you there. If you see two goofy European g...

Read More

Refining Context/Specification BDD using Rhino Mocks 3.5

Earlier this year, I wrote this blog post about exploring Behavior-Driven Development as a better way of doing Test-Driven Development. In this post, I spoke about how to organi...

Read More

The Quest for a Personal Information Manager: MyInfo vs Evernote

I've been a long time user of MyInfo, a personal information manager in which I keep a long history of information that I've assembled over the last couple of years as a develop...

Read More

Book Review: C# in Depth

I just finished reading C# in Depth: What you need to master C# 2 and 3. Although the book is only 358 pages, it's title is certainly not exaggerated. It feels like I've read a ...

Read More

Sins of Commissions

Reading Joel Spolsky's latest article, Sins of Commissions, reminded me about a topic that I feel very strongly about, namely incentives for software developers based on some ki...

Read More

Refactoring Exercise: The Single Responsibility Principle vs Needless Complexity

Ray Houston has written this post on his blog named Single-Responsibility Versus Needless Complexity. His post contains the following code sample of which he suspects that it po...

Read More

Book Review: Clean Code

I just finished reading the magnificent book Clean Code - A Handbook of Agile Software Craftsmanship. I must say, if I would have a software company of my own, then I would forc...

Read More

Properties - A False Sense of Encapsulation

I'm having more and more mixed feelings about properties in .NET, or accessor methods in general, as properties compile to get_xxx/set_xxx methods behind the covers. I've never ...

Read More

Little Secret

I'll let you in on a little secret. The key to writing good comments is ... (rolling the drums) ... not writing them at all! Let me elaborate on that. To me, there are two kinds...

Read More

Commented-Out Code and Broken Windows

I know that there are numerous blog posts already written about this topic, but I just can't resist. I've just had it with commented-out code. Sure, everybody agrees that this i...

Read More

Book Review: Release It! Design and Deploy Production-Ready Software

I just finished reading Release It!. I know that Ayende is really fond of this book, and I can't blame him. Like most books I've read over the last couple of years, this book i...

Read More

Learn Many Architectures, and Choose Among Them

I've just came across the following quote from Release It!: Design and Deploy Production-Ready Software that fully describes the point I tried to make in my previous post on "On...

Read More

Ventilation of Thoughts

Earlier this week I went back to work after a refreshing (and very much needed) vacation. During this past week I participated in some interesting discussions that made me think...

Read More

Book Review: Agile Principles, Patterns and Practices in C#

I already had this book lying around on my desk for about 2 years now. Boy, am I a douche bag for no reading it sooner. I welcome this book into my personal hall of fame. The f...

Read More

What's Wrong with a Data-Driven Approach?

Suppose we are building yet-another-order-basket-application. We have the requirement for adding items to an order, otherwise the business of our entire company falls down and w...

Read More

Decoupled Domain Models

On the DDD user group, there has been endless discussions about whether a service or repository can be directly called by classes that are part of the domain model. There is a g...

Read More

Three years ago ...

... I wrote my very first blog post (in Dutch). I've learned a lot of stuff since then. Time really flies, I must say.

Read More

NHibernate 2.0 went gold!

Yesterday I got back from a refreshing holiday in Italy. First thing I noticed after opening my RSS reader was that NHibernate 2.0 got released. Aah, life couldn't get any bette...

Read More

My New Home Developer Rig

I finally got my new desktop up-and-running and fully installed. Last weekend, me and my dear colleague Sven Erkens (kudos!) assembled the different parts to what became a lean,...

Read More

The Onion Architecture

This is what I consider to be a good architecture for long-lived business applications and how I like to design them. Actually, our current and past two projects apply this desi...

Read More

A Professional Software Developer Never Says ...

"Let us cleanup and fix this code later so we can meet our deadline".

Read More

Three Qualities that Every Piece of Code Should Have ...

It should solve a problem and thus it must be valuable to its users. In short, it should do what it must do and simply work. It should be very easy to change. Every piece of...

Read More

Windows Vista vs Windows Server 2008 (Workstation)

Last week, I decided that the time has come to replace my current desktop PC. I've been skimming through a couple of articles and reviews in order to put together a new home dev...

Read More

Binsor : The Castle Windsor XML Configuration Killer

As you might have noticed from my previous post, I'm having a look at some of the stuff on my ever growing cool-tools-and-technologies-I-have-to-grock list. The next one that wa...

Read More

It's the little things

A while ago, I wrote a blog post regarding Test Data Builders Refined. Earlier this week, I wrote a very simple base class that provides an implicit cast operator for the builde...

Read More

Integrating Castle Windsor and NHibernate with WCF - Throwing the WCF facility and some Rhino Tools in the mix

A while ago, I wrote this post about how to integrate Castle Windsor and NHibernate with WCF. Last weekend, I used the WCF integration facility of Castle Windsor to accomplish p...

Read More

Book review: Code Leader - Using People, Tools and Processes to Build Successful Software

Like Karl Seguin's most excellent book about the Foundations of the Programming (which is highly recommended), this book covers the basics that each programmer should live and b...

Read More

Dutch ALT.NET User Group

Yesterday, me, myself and Peter went to the first Dutch ALT.NET gathering. Besides being stuck in traffic for more than an hour, I had a great time. There were some great conver...

Read More

Active Conventions with NDepend - Part Deux

I want to put out a short sequel to my previous post on Active Conventions with NDepend. Also make sure to read Patrick Smacchia's follow-up if your interested. As you may or ma...

Read More

Active Conventions with NDepend

Some time ago Patrick Smacchia wrote a nice article on his blog about active conventions on your code base. I thought I tried this for myself and made up some interesting CQL qu...

Read More

The Entity Framework Team are Real Professionals

You have to hand it to these people: they sure have to put up with a lot of crap. I'm also guilty as charged for this. I already wrote about a lack of real-world usability and b...

Read More

Book review: NHibernate in Action

Writing this book review feels kind of weird  because it hasn't actually hit the shelves yet. It is accessible however through the Manning Early Access Program. This book provid...

Read More

Annoying Bug in Visual Studio 2005

Today I hunted down a bug in Visual Studio 2005 that annoyed me tremendously for the past couple of weeks. Starting from this certain point in time, without any reason whatsoeve...

Read More

NDepend - Static Analysis Made in Heaven

What is elegant code? Everyone agrees that this is a rather subjective topic. I wrote down my take on this matter not so long ago. Almost every developer out there (an probably ...

Read More

The Future of .NET

That's the title of the latest .NET Rocks episode. No big deal, just one of the better podcast episodes out there. Microsoft, are you listening? Maybe you should put your chairm...

Read More

Peter works on the web!

It seems that I managed to convince another one of my dear colleagues to start blogging (if my children thaught me one thing, it's that constant whining actually works!). Peter ...

Read More

I'm on ...

... Twitter. Why? Because all the cool kids are doing it ;-) (yep, I have no spine). Let's see where this goes.

Read More

Integrating Castle Windsor and NHibernate with WCF

Up until now, we were using the NHibernate facility of Castle Windsor for managing our NHibernate sessions in WCF. But, we want to have a session-per-request approach as one wou...

Read More

Implementing NHibernate Interceptors

One of the areas where NHibernate really shines is it's high extensibility features. The NHibernate API provides a massive amount of interfaces that can be implemented for your ...

Read More

WCF friction

Today I spent some time (thank God no more than 15 minutes) tracking down a WCF issue from hell. Every time I made a call to the service I got the following exception: System.Se...

Read More

On Persistence

Earlier this week, I managed to convince our very wise decision makers to start using NHibernate for our persistence layer. My team mate on the project describes how it went. Wh...

Read More

Test Data Builders Refined

Last year, I blogged about Test Data Builders here and here. I still use them heavily in my unit tests for creating objects with test data. Heck, I also use this pattern for flu...

Read More

Book review: The Pragmatic Programmer

I think I'm going to be brief about this one. Everything you ever heard or read about this book is true. If you don't have this book already, then go get it right now because yo...

Read More

NHibernate 2.0 and Cascading Deletes

The first alpha version of NHibernate 2.0 has been released some time ago. Oren has put a nice overview of the new features and the bugs that are solved for this first drop. In ...

Read More

Castle Windsor vs writing your own

Earlier this week I was in a meeting were someone stated that it was better to write your own IOC container than just using an existing one (the most excellent Castle Windsor in...

Read More

On Windows Workflow and Biztalk

From each of these technologies I have a book laying around on my bookshelf somewhere. For WF, I have bought Essential Windows Workflow Foundation about 1 year ago. Since then, ...

Read More

I'm on Elegant Code

David Starr from Elegant Code asked me whether I wanted to join his blogging group and I accepted. From now on, I will be the first European Elegant Code blogger. I want to than...

Read More

I've won!

The Elegant Code Essay contest that is. I just won a free copy of Beautiful Code. You can read my essay here. Many thanks to the nice people of Elegant Code.

Read More

Castle Dynamic Proxy

This blog has been silent for a while, and for good reason. Besides experiencing symptoms of writer's block,  I've also been playing around with a lot of new stuff (at least new...

Read More

Sweet NUnit Integration in TeamCity

I would like to make a service announcement from the JetBrains fan club: TeamCity 3.1 is here! I took me about 15 minutes to upgrade my existing home installation. It actually t...

Read More

Book review: The .NET Developer's Guide to Directory Services Programming

This is THE book on Active Directory and LDAP programming in .NET. Why? Because it's the only book that covers  System.DirectoryServices. This book contains a lot of tips & ...

Read More

Daily Stand-up Meetings

I finished reading the excellent article It's Not Just Standing Up: Patterns of Daily Stand-up Meetings written by Jason Yip. Somewhere in the beginning of this article, the aut...

Read More

Behavior Driven Development on ALT.NET

There's a really interesting discussion going on at the ALT.NET user group about Behavior Driven Development. This post from Jimmy Bogard really hit home. It clearly describes B...

Read More

On Software Factories

Bart Waeterschoot is blogging on IntoFactories.NET. I'm glad he joined the blogosphere. Bart is a very smart guy and I'm looking forward to more of his writing. Nonetheless, I h...

Read More

How Microsoft is solving yesterday's problems

There's this heated discussion going on at the ALT.NET forum about Unity, a lightweight IOC container coming from P&P (make sure that you pick up this post at ALT.NET Pursef...

Read More

From Space Shuttle to Software

This article, Richard Feynman, the Challenger Disaster, and Software Engineering, really struck a nerve. It's very well written and well thought out. I'll jump right to the conc...

Read More

DirectoryEntry Close vs Dispose

While I was reading The .NET Developer's Guide to Directory Services Programming yesterday, I came across this passage called Close or Dispose? There's a class called DirectoryE...

Read More

Directory Programming with System.DirectoryServices. AccountManagement

Last months MSDN Magazine contains a very interesting article that titles Managing Directory Security Principals in the .NET Framework 3.5. Its a nice introduction to the classe...

Read More

Treat Warnings as Errors

This in one of my pet peeves. Its simply none negotiable! I still don't understand why it can be turned off. Heck, I don't understand why its not turned on by default. I ...

Read More

Exploring BDD style specifications as a better TDD

You might think that I suffer from a severe case of acronymitis judging from the title of this post, but the only thing I suffer from right now is a terrible cold. Anyway, I'm c...

Read More

Using NCover/NCoverExplorer from MsBuild

In my previous post I mentioned how easy it is to incorporate code coverage into TeamCity using NCover/NCoverExplorer. I'm using the NCoverExplorer Extras package that can be do...

Read More

Code Coverage with TeamCity

In my previous post on JetBrains TeamCity I mentioned that it has no support for .NET code coverage.  With this post I want to correct the injustice of this statement. It was a ...

Read More

TeamCity Continuous Integration & Build Management is really awesome

I've been goofing around with TeamCity over the last week. After reading some posts about TeamCity (1)(2), I decided to give it a try. In my continuous quest to eliminate the am...

Read More

AutoMocking Container

When writing unit tests that involve interaction based testing, you most likely end up using one of the mocking frameworks out there. The mocking framework I'm using is Rhino Mo...

Read More

Total Commander Rocks!

I'm a huge fan of Total Commander for as long as I can remember. Thinking about it, I'm using it for more than 10 years now. Today, I accidentally discovered a very nice feature...

Read More

Bill Gates' Last Day

This made me laugh. Really funny!

Read More

Test Data Builder

A while ago, I blogged about using Test Data Builders as opposed to the Object Mother pattern. Here are some links to additional tips and tricks: Tricks with Test Data Builders...

Read More

Why O Why - The Day after

Alex Henderson picked up on my "Why O Why" post in his take on the Pluggable IoC in WPF Composite & Enterprise Library v.Next. I still believe that an IoC Application Block...

Read More

Why O Why

Glenn Block announced on the ALT.NET Yahoo Group that the P&P team is developing a new dependency injection framework. To say it with the words of Captain Alberto Bertorelli...

Read More

Misconceptions about Agile Programming

This great Dilbert cartoon was put on the ALT.NET Yahoo Group earlier this week. Although it is really funny, it also illustrates some of the misconceptions about agile software...

Read More

Design and Evolution of C++

Driving home from work, I listened to this podcast on the Design and Evolution of C++. Somewhere half way through, Ted Neward mentions the new thread library in C++0x. I found H...

Read More

Book review: Working Effectively with Legacy Code

There is a reason that this book is on the recommend reading list of the ALT.NET Wiki. For some reason, I had this book lying around on my desk for almost a year before I starte...

Read More

Design by Contract - The Sequel

In this post I put out some code for checking method arguments. I changed it somewhat regarding value  types:public void DoSomethingMeaningfull(Int32 someNumber) { // Throws Ar...

Read More

TechEd Developers 2007 Barcelona - Day 5

The Joins Concurrency Library I've listened to this podcast on DotNetRocks a while ago and I remember to be quite exited about this Microsoft Research project. The session at Te...

Read More

TechEd Developers 2007 Barcelona - Day 4

Windows Communication Foundation Performance You got to hand it to him: Justin Smith certainly has some interesting things to say about WCF. A few months ago, I have read his ex...

Read More

TechEd Developers 2007 Barcelona - Day 3

LINQ to XML: Using the Language Integrated Query Framework with XML Data Nice introduction talk on the new XML API for creating, querying and modifying XML. Although this is YAX...

Read More

TechEd Developers 2007 Barcelona - Day 2

 Secure Distributed Applications with WCF  Dominick Baier of Thinktecture certainly knows his stuff, but for some other reason he couldn't manage to bring the message to his aud...

Read More

TechEd Developers 2007 Barcelona - Day 1

Soma announced some new stuff in his keynote, among which the release of Visual Studio 2008 and the .NET Framework 3.5. Unless you have been living in a cave for the last week, ...

Read More

TechEd Developers 2007 Barcelona - Day 0

We arrived at Barcelona last week on Saturday evening with a delegation of seven people. The same evening, we already visited the Monjuic Magic Fountains on Plaza España. ...

Read More

Design by contract

Something that was bothering me for a while now was writing the following piece of code over and over again: public void DoSomething(Request request) { if(null == request) ...

Read More

ASP.NET MVC Framework at ALT.NET Conf

Scott Guthrie announced the new ASP.NET MVC framework at the Alt.Net conference today. I blogged about this earlier on. Jeffrey Palermo who is attending the conference has put s...

Read More

Test Data Builder versus Object Mother

When writing unit tests, I frequently have an issue with creating objects that contain some test data. One approach is to call the constructor of the class at hand in every test...

Read More

Article on Dependency Injection

Mark Monster has written an excellent article on Dependency Injection in the newest .NET Magazine (it's no MSDN magazine, but hey, its free of charge). Nonetheless, there are tw...

Read More

Bug Driven Development

Are you doing Test-Driven Development or Bug Driven Development? From my experiences, test-driven development seems to slow you down at the beginning of a project. This isn't en...

Read More

A day of great quotes

Scott Bellware: I think that the difference between a good developer and an excellent developer is the excellent developer's willingness to not know, an openness to explore, and...

Read More

Improving Applications Design with a Rich Domain Model

This is the title of an awesome talk that Chris Richardson gave at the Spring One 2007 conference in Antwerp. You can watch this session online. He gives a really nice introduct...

Read More

Community efforts

I'm with Scott on this one. The fact that Microsoft duplicates the efforts of their own community is simply inexcusable. Why does this bother me? Using the best tool or library ...

Read More

The Myth of Software Estimation

Just read an excellent blog post on The Myth of Software Estimation. The author claims that the relationship between humans and computers is just as unpredictable as a relations...

Read More

Tools, tools, tools and ... tools

A good craftsman can be recognized by the tools he's using. Therefore its time again for the world famous, ever growing Scott Hanselman's 2007 Ultimate Developer and Power Users...

Read More

Discipline

Another must-read post by Jeff Atwood on how Discipline Makes Strong Developers. I couldn't agree more. Only discipline on the part of the developers makes code that is concise ...

Read More

Me like CruiseControl.NET

One of the things I've picked up from the big book of developer tools is CruiseControl.NET aka CC.NET. CC.NET is a continuous integration system that automates the entire build,...

Read More

I Hate SSIS

Check out the I Hate SSIS page on the Ayende's wiki. SSIS stands for SQL Server Integration Services. I've never worked with it before (I have little experience with DTS), but I...

Read More

Book review: Windows Developer Power Tools

Over the weekend, I finished reading Windows Developer Power Tools. Its this huge and heavy book with 1207 pages of 170+ free tool goodness. The danger of buying a book like thi...

Read More

TDD through the eyes of Jeremy D. Miller

Another excellent post on TDD by Jeremy D. Miller. The following quote is something that needs to be up on the wall: DO learn how RhinoMocks works or DO NOT use it.  Seriously...

Read More

Dynamic Language Runtime

Earlier this week, I've been listening to the .NET Rocks podcast, John Lam on the DLR. I must admit, I'm looking forward to IronRuby. Now, somewhere half way the show, Carl Fra...

Read More

101 Ways To Know Your Software Project Is Doomed

This post made me laugh out loud. Here are a few that I really liked: The Continuous Integration server has returned the error message “Fuck it, I give up” I've actually seen ...

Read More

Read "Beautiful Code" and make this a better world

Good code should read like a good book. Combine these two and you get a book like Beautiful Code: Leading Programmers Explain How They Think. I've had it on my wishlist for a wh...

Read More

Agile Team Dynamics

If you're interested on agile development, this blog post on Agile Team Dynamics is a must-read. I especially like the idea of banning e-mails for inter-team communication.

Read More

FCL Type Names

After a code review session earlier this week, I was wondering if I am the only one who uses the FCL type names (e.g. Int32) instead of their language-agnostic counterparts (e.g...

Read More

How to read a book

Charles Petzold gives some great advice at how to read a book. He mentions some of the tips 'n tricks I already learned over the past couple of years: Don't get distracted in ...

Read More

My programmer personality type is ... DHTB

You're a Doer.You are very quick at getting tasks done. You believe the outcome is the most important part of a task and the faster you can reach that outcome the better. After ...

Read More

ALT.NET - Summary

Great summary on being ALT.NET. I don't completely agree with the hot-or-not list of Roy, therefore I like the modified list of Sam much more. My goal in life is to be ALT.NET a...

Read More

Persistence Ignorance. Finally!

Daniel Simmons, talks about persistence ignorance and how it will be incorporated in next version(s) of the ADO.NET Entity Framework. In a previous post, I already mentioned the...

Read More

My advice to Jamie

It seems that Microsoft is not pleased with the fact that my favorite VS add-in offers support for the VS Express SKU. You can read all about it in this post from Jamie Cansdale...

Read More

You're not alone

It seems that Jimmy Nilsson also has a lot of trouble with ASP.NET. As you know (or might not know), I'm not enjoying my experiences with ASP.NET either. Enough with the ASP.NET...

Read More

Resharper dude

Over the weekend I watched this screen cast from Oren Eini. You should have a look at it, even if you're completely not interested in mocking frameworks. The best commercial of ...

Read More

Is Microsoft losing the Alpha Geeks?

The highly respected Scott Hanselman talks about his experiences at RailsConf in Portland. You can find his already legendary post here. I think its time to have a look at Ruby ...

Read More

NUnit vs Team System Unit Test

At work there's a discussion going on whether we will choose NUnit or Team System Unit Test for our unit tests. Currently we have about 1000+ unit tests written in NUnit and we ...

Read More

Agile is just human nature

I just finished reading a book written by Phillip Khan-Panni, and its not about any of the latest cool technologies or methodologies, but about efficient communication between u...

Read More

Exploring WCF - The Close vs Abort confusion

In my journey to explore the Windows Communication Foundation, I came across an issue that confused me at first but actually made some sense after spending half a day figuring t...

Read More

A Browser Tale

I'm a big fan of the Opera web browser for many years now. I like it because it's the underdog. They don't have the same market share as IE and Firefox, but I find it the most i...

Read More

ALT.NET

After reading this post from David Laribee, I promptly put the four criteria to be an ALT.NET developer on our team portal. 1/ You’re the type of developer who uses what work...

Read More

.NET Domain-Driven Design with C#: Problem-Design-Solution

A while ago I blogged about Domain-Driven Design and how I like it so much. I mentioned that Tim McCarthy is writing a book that I'm pretty much looking forward to. Today he ann...

Read More

NUnit 2.4 constraints

The forthcoming release of NUnit 2.4 supports a constraint-based syntax for assertions. Don't worry, the old syntax (classic model) is still going to be available for a long tim...

Read More

Build a solid core

Essential reading from Jean-Paul S. Boodhoo about building a solid core. This post contains a number of truths that I want to point out. Many developers need to spend more time...

Read More

Developer & IT Pro Days 2007

Great sessions and content on the Developer & IT Pro Days 2007. The following sessions where my favorites: WCF communication patterns: more than request-reply and Beyond ABC...

Read More

Developer & IT Pro Days 2007 - Pre-Conference

I followed the web development track today. Jeff Prosise delivered great content in his sessions on ASP.NET AJAX and WPF/E. I'm still a bit brainwashed by the propaganda, but I'...

Read More

Developer & IT Pro Days 2007

I'll be attending the Developer & IT Pro Days 2007. Hope to meet you there ...

Read More

Thrill seekers and Fear avoiders

From my previous post, you can guess that I'm definitely a Thrill seeker. What kind of developer/person are you?

Read More

ASP.NET Model-View-Controller Framework

This is just about the best thing I've heard in the last couple of years. Scott Guthrie showed a prototype of an MVC framework on the MVP Summit (ship it!). This framework can b...

Read More

Persistence Ignorance

The blogosphere is full with posts about how the ADO.NET Entity Framework is violating Persistence Ignorance by letting domain classes inherit from an abstract base class in ord...

Read More

The Underlying Problems of TDD in the .NET World

This post of Jeremy D. Miller hits it right on the head:  In .NET development, and especially ASP.NET WebForms development, you often have to go out of your way to create testa...

Read More

Domain-Driven Design

I'm so much into Domain-Driven Design! I already read Applying Domain-Driven Design and Patterns and I just finished reading Domain-Driven Design: Tackling Complexity in the Hea...

Read More

A lean mean blogging machine

I'm convinced that this guy does not sleep at night (or his time management must be awesome). He does so many blog posts a day, he must be a cyborg of some sort ;-) or is he a t...

Read More

Version 2.0 of the ISO C++ Standard

Although I'm 100% .NET, C++ is still my favorite programming language. You have to take care of cleaning up your own mess, no garbage collector to rescue your application from m...

Read More

What's Wrong with ASP.NET (bis)

Another perspective from Steve Eichert. He claims that developers are not leaving .NET because of what Rails is doing right, but instead because of what .NET is doing wrong. Per...

Read More

Once Upon a Team

Great follow-up by Jeremy D. Miller for The Anti Team. You can find this blog post here. You should give it a good read! Good teams challenge their approach every single day and...

Read More

What's wrong with ASP.NET

While I was doing the dishes today, I was thinking about the programming model of ASP.NET and the fact that I don't like it (just as don't like doing the dishes). The model it u...

Read More

Maintainable code

A very nice post by Uncle Bob about rapid software development. We've all done it! Pulling together those quick & dirty hacks in order to meet our deadline. We've created so...

Read More

Which .NET Framework exceptions to throw?

A very useful subject today on the Visual Studio Code Analysis Team Blog called: What exception should I throw instead of the reserved exceptions that DoNotRaiseReservedExceptio...

Read More

The Anti Team

Another great manifest by Jeremy D. Miller, called The Anti Team. Especially the first one is a very recognizable team role and especially the one I hate most: the non-coding ar...

Read More

NDoc 2.0 Alpha vs Sandcastle

I just finished reading Kiwidude's rant about using Sandcastle to generate documentation for .NET 2.0 applications and libraries. I'm using it for a couple of months now and I m...

Read More

VMware Workstation 6.0 Beta

It's simply the best, better than all the rest: VMware Workstation 6.0 beta can be downloaded here. Besides support for Windows Vista and multiple monitor display, VMware Workst...

Read More

System.Configuration 2.0

Today I was working my way through migrating a web service application from .NET 1.1 to .NET 2.0. One of the things that I came across was the new architecture of the System.Con...

Read More

WCF Coding Standard

While the blogosphere is full of the first CTP of WPF/E, I'm want to mention something about an old technology, namely WCF. The nice people of IDesign already published their C#...

Read More

Learning from your own stupidities

Today I learned something that I never considered before: I didn't realize (until today) that the maximum command line length for the CreateProcess Win32 API function is 32767 c...

Read More

The Cost of GUIDs as Primary Keys

Today I've read an excellent article written by Jimmy Nilsson about The Cost of GUIDs as Primary Keys. A must-read article when your using GUIDs as primary keys in your database...

Read More

To test or ... to test?

I recently came across the .NET Mock Objects project. This framework supplies mock implementations of the ADO.NET generic interfaces like IDataReader, IDbConnection, etc. (curre...

Read More

Threading support from Microsoft

I just read an introductionary article about LINQ. There are some things that I like and there are some things that I don't like. Big deal, you would say: get on with your life!...

Read More

I Hate Visual SourceSafe

Jeff Atwood’s latest post is very clear on this matter: Visual SourceSafe is absolute crap. Here a some quotes: If you are serious about the practice of software developmen...

Read More

What's new in System.Xml 2.0?

The September 2006 issue of MSDN magazine has a great article about the new features in System.Xml 2.0. I used (and I am still using) this part of the .NET Framework a lot and h...

Read More

Jamie has done it again ...

What happens when my favorite VS.NET add-in meets with my favorite .NET tool? Pure horse power baby!! Watch the demo here.

Read More

Books, books, books ... so many books

I am currently reading The Best Software Writing I: Selected and Introduced by Joel Spolsky. I simply love it. I’m coming to this point that I more appreciate this kind of books...

Read More

The case against catch(Exception ex)

You should definitely read this fine article about exception handling. When it comes to exception handling, there is still a lot of confusion amongst us, developers. With all th...

Read More

Management and Engineers

A man in a hot air balloon realized he was lost. He reduced altitude and spotted a woman below. He descended a bit more and shouted, “Excuse me, can you help me? I promised a fr...

Read More

History of the C family of languages

Billy Hollis posted a short history of the C family of languages. My favorite programming language family. Enjoy!

Read More

Debug.Assert in ASP.NET 2.0

Finally, finally, finally, … Debug.Assert now works with ASP.NET 2.0. You have to love those little improvements they did for .NET 2.0. When using version 1.1 of the .NET framew...

Read More

Rebase all your library assemblies

Back in the good old Win32 days it was considered a best practice to rebase all your DLLs. Every executable and DLL has a preferred base address. This base address is the memory...

Read More

pdb-only debug information option

In Visual Studio 2005, you now have the ability to use the pdb-only debug information option. This underestimated debug option is available for the command- line C# compiler, bu...

Read More

IXmlSerializable interface fully available in .NET 2.0

The .NET 1.1 framework internally uses the IXmlSerializable interface for custom XML serialisation of certain classes. In fact the only class that I can come up with is the Data...

Read More

Start

  • August 21, 2005

Een memorabele dag vandaag: mijn allereerste blog! Ik zal hier een varieteit aan onderwerpen ‘bloggen’ maar hoofdzakelijk over software ontwikkeling allerhande. Deze postings za...

Read More