Type safe property paths using QueryDSL

Property paths are often described as string, which is not type-safe and very error prone. In this blog post I will demonstrate how to replace these string based expressions with type-safe property paths, allowing faulty property paths to be detected at compile time.

Change in jQuery

The ability to change things is very important in programming, Scrum even says one should embrace change. This gets harder when you’re talking about changing something within a framework or even a language, mostly because the number of people that will need to change will be larger. There are different strategies possible, so how does jQuery (a framework with a huge user base) handle change?

Automated database migration with Izpack and Liquibase

In a previous blog article, Willem Dekker explained how to use izpack to build an application installer. In my current project I thought it would be nice to use such an installer and let it execute the liquibase migration scripts automatically during installation. In this article I will show a way to achieve this goal.

The Dependency Inversion Principle

Controlling complexity is the essence of computer programming.

— Brian Kernigan in [Kernighan-Plauger]

JARB in practice

In a project we recently started, we introduced a 100% test-driven code coverage philosophy, including Selenium 2 tests for automated acceptance tests. As usual and expected, the development, refactorings and changes of insights in this project are handled neatly, because of the control the team has over the codebase. Robert Martin is not mistaken in his Clean Coder when he presses for 100% code coverage. This really is the way to go.

Awesome tables with CSS3

In one of the topics we talked about during our HTML and CSS workshops are CSS3 selectors and how powerful those can be. In this post I will demonstrate what you can do with an ordinary table to make it look amazing, just by adding some CSS and one very small image.