“Don’t Repeat Yourself”

During the course of a project, or between projects, I have found patterns that repeat themselves. Since I am the true believer of
the DRY principle, I started collecting them, and created a project whenever I see that the benefit
outweighed the cost.

The result are the following projects.



The project that can reduce the size of your project release script greatly.

Also the project that can help build a HTML based web site easily, so that you can deploy them to ANY server that supports HTML. This
site is also powered by BuildMaster.



A lightweight Java File IO related framework with the principle of Domain Driven and Test Driven.
See Cotta Power for the initial thoughts.

This is also the project that embraced the Behaviour Driven Development.



A ruby project that wraps the popular Selenium RC project into a gem and provides additional classes for
using Selenium ruby driver to write web testing. This is where I started experimenting the idea of Domain Based Web Testing



A testing framework created by Dan North that carries the mission of bringing test-driven development to its full potential:
Behaviour Driven.

I am currently a committer on this project.

Eclipse plugin for IntelliJ keymapping

A little ‘keymap setting’ plugin that helps anyone who has to use both IDE at the same time. To install, configure your Eclipse to update from http://www.shaneduan.com/eclipse

Old Projects

These are the projects that I am not actively work on at the moment.



A lightweight testing fixture framework that helps database related testing using HSQLDB.

The idea of DbFixture came out of two projects that we have worked on, both of which involve building our own
data access layer for special reason. After the end of the second project, we put together the requirement and wrote this library.



An Apache ANT task for Fitnesse to make the integration of Fitnesse to
Continuous Integration easier.



The projects of JBuilder Opentool community during the period when JBuilder is still JBuilder.



A small library that can be used for XML content assertions.