Test your tests by having a tool break your code!

A fun way of testing your code is having a tool called Jester break it and then run your tests to check if there are failures. If no failures occur then there is a big chance that your tests are not completely covering your code. Another way to check your test coverage is Clover, but that’s far less fun.


IBM has an article about Jester: Test your tests with Jester 
And here you find Jester its homepage: Jester, the JUnit tester

Patterns

Patterns are very common nowadays and everybody at least has experience with a Factory, an Iterator (duh..), a Facade or a Singleton.

It wasn’t always like that. The book that got it all started is called “design patterns”, by Gamma, Helm, Johnson and Vlissides. I tried to read it, but the book just wasn’t for me. 
But now I found a more readable and fun source that discusses patterns. Via an article about the Google singleton detector (“singletons are evil and need to be destroyed”) I arrived at this pattern index by Cunningham & Cunningham. It is a great collection with many funny and serious patterns in all sorts of categories. I particularly like to read the organizational patterns and anti-patterns.

Singleton, hingleton, mingleton and fingleton

Some new words arrived in Java town, taken from the Google singleton detector user guide
Hingleton Derived from “helper singleton,” a class which turns another class into a singleton by enforcing that class’s singularity. 
Mingleton Derived from “method singleton” a class which has any static method that returns some state without taking any parameters. 
Fingleton Derived from “field singleton,” a class which contains a public static field.

Continuous integration (part 2)

A few articles earlier I wrote about tools for continuous integration, but as they say.. a picture says more than a 1000 words..
Check out the site that goes with Paul Duvall’s book ‘Continuous integration’; ‘http://integratebutton.com‘. The book describes about 50 practices related to continuous integration and on the website you can see some movies that zoom in on these practices. It’s a very comfortable and easy way to learn some new things.
Also -the book is quite good -it is awarded a 10 out of 10 horseshoes at the good old JavaRanch.

Ruby and Groovy

Nowadays you hear people talking about the languages Ruby (especially when it’s ‘On Rails’) and Groovy as if it they are the next Java, .NET or PHP. My feeling says this is not the case, but still I have to investigate more before being sure and actually knowing all the differences. For starters, it might be good to summarize the terms.
Ruby
Super clean object-oriented programming language, it combines the best of both Smalltalk and Python.
Ruby on Rails
This is a framework for Ruby. People are really crazy about this. They state that you can develop a database driven web application ten times faster than it would take with a typical Java framework – without making sacrifices. This is possible because full advantage is taken of the combination of Ruby with the “less software and convention over configuration” paradigm. Code is clean and simple and there’s no or less configuration to be done, Rails uses reflection and discovery instead.
JRuby
JRuby is a 100% pure-Java implementation of the Ruby programming language. Almost complete support for all Ruby constructs work, and the idea is that you should be able to just use your Ruby scripts with JRuby instead of MRI (Matz’ Ruby Implementation, the original Ruby, written in C). By leveraging Java the platform with the power of the Ruby programming language, programmers get the best from both worlds. JRuby can’t do everything that MRI can, some of these limitations are due to basic constraints in the Java platform.
JRuby on Rails
As it seems that there are still some concerns with Ruby on Rails (e.g. security), JRuby on rails might be a mixed solution. It takes the best from the Java domain and the Ruby on Rails domain.
Groovy
Object Oriented scripting language that runs as bytecode on a Java virtual machine. Very simular to Java, but with some extras like closures and native syntax for lists and maps. Some say that Groovy is like Java combined with Ruby and Python.
Grails
Grails aims to bring the “coding by convention” paradigm to Groovy . It’s an open-source web application framework that leverages the Groovy language and complements Java Web development. You can use Grails as a standalone development environment that hides all configuration details or integrate your Java business logic.