Dec 27

Christmas Songs

Personal No Comments »

What song is going to be number 1 this year?

That is another big deal which doesn’t really seem to exist in the USA as much.

While we were waiting at London Stanstead, we had the pleasure of hearing the ‘top xmas songs’ countdown. Classics like “Mistletoe and Wine”. Cliff Richard is a singer who has had a #1 song in each decade since about 1800 :)

“Band Aid” was #1 this year, and the money for the track went to charity.

Does anyone buy singles anymore? Maybe songs online?

Dec 24

Best Pizza, Worst Knives

Personal No Comments »

If you are ever in London, visit Islington. It isn’t normally high on the list of guide books, but it is cool.

Grab a bite at La Porchetta on Upper Street.

It seems to be run by an italian family that had 20 boys. It isn’t quiet. The service isn’t good. But the food is great…. some of the best pizza I have ever had (if you like thinner, italian-style pizza that is).

The worst part of the experience (second to the service) is the knives. They as sharp as a wet towel. I think it is done on purpose so they can laugh as you try to cut up the HUGE pizza which covers the entire plate.


Dec 23

Suits to the City

Personal 30 Comments »

I was at Kelvedon station, out in the middle of Essex (UK), this morning.

I had the interesting experience of being the one person in jeans, with everyone else in a suit, tie, over coat, and briefcase.

When people piled into the train (after queueing orderly of course) they all sat down quietly, and fell asleep as the express took us to London Liverpool Street.

Man I am glad to not live in that world on a daily basis (’not that there is anything wrong with that’)

Dec 22

I forgot about the Christmas Cards Culture

British, Personal No Comments »

I had forgotten about the British christmas card culture. They are a big deal over here. Many people count how many they get.

Many display them everywhere in a Look how many friends I have kinda way.

We still get some christmas cards in the US, from people in the UK. We even managed to get one card in October! Why would we get it so early?

Maybe it could be:

“I don’t know about the post to the US. It may take months so we better get it over there!”

However, in this case, that wasn’t the case. The reason is that if you get your cards out early, then the people that you send them too…. well, they will surely send one back even if they hadn’t planned to send you one!

I had another experience last weekend. I went to a party with a good mate. When we got there, people were exchanging cards (btw, most of the time nothing is written in them other than ‘To Foo, Merry Xmas, From Bar’) and I sat back. Then, some how, someone gave one to me! Only the british would be so curtious as to think “Oh, Marc is bringing Dion over… I better get a card for him too”

Ahh, good ‘ole blighty.

Dec 21

TOPLink Spring Integration

Tech 1 Comment »

The Spring and Oracle teams have put together Spring TOPLink integration.

This integration is similar to what you have with JDO, iBATIS, Hibernate, etc.


public class MyDAOImpl extends TopLinkDaoSupport implements DAOInterface
public Object doTopLinkOperation()
return getTopLinkTemplate().execute(

new TopLinkCallback() {
public Object doInTopLink(Session session) throws TopLinkException
// this Session is managed externally.
// It is "injected" by the currently referenced SessionFactory


public class MyDAOImpl extends TopLinkDaoSupport implements DAOInterface {
public Object doTopLinkOperation() {
return getTopLinkTemplate().findByNamedQuery("findMyself",Person.class,args);

Read more: What is the Spring TopLink Integration?

Dec 20

Eclipse 3.1 M4 is more than just a milestone

Tech No Comments »

The Eclipse Java compiler now supports all J2SE 5.0 (aka JDK 1.5) language features.

This is good to hear. I wonder how many people are writing new code with Java 5 (and hence planning on putting their production system on the Java 5 VM).

One of the best side effects of this Eclipse release is that Adrian and the AspectJ team can have ADJT use its magic.

More fun with @annotations and AOP.

Dec 20

XStream: how to serialize objects to non XML formats

Tech No Comments »

Joe has talked about XStream: how to serialize objects to non XML formats.

As was mentioned in the comments, this could be tweaked to have a reader/writer combo which could understand YAML.

This way it would be both more readable (which Joe wanted), and usable as a format itself.

It would even be kinda cool to have an abstraction so you could:

Person p = (Person) xstream.load(”bloke”);

And it would look for bloke.xml, bloke.yml, … and grab the one that comes up.

Dec 18

Howard runs into the Servlet mapping limitations

Tech No Comments »

Howard has run into the limitations of servlet mappings.

I think the fact that the power that we are given for these mappings is SO weak, is a bit of a sign for the Java community, and specifications in general.

Imagine if Servlets came out in another community (Ruby/Perl/Python/whatever).

I would guess the following would have happened:

Scenario 1

Bob: Here is the API
Harry: Erm. We have Regex. Let’s use it :)

Scenario 2

Bob: Here is the API
Harry: OK

… API released …

User replies: This is too limiting. We have Regex. Let’s use it :)
Other users: *repeat above*
Some other users: Tweak the module to be more powerful and submit patches
API maintainers: We were wrong. Let’s release a new version quickly

It also makes me die when these types of deployment descriptors are always INCLUDE only. How about having exclude semantics?

Sorry, Howard. Keep fighting the fight, and get those URLs sorted out :)

It would also be awesome to be able to tweak them so I could use:


Dec 18

Groovy 1.0 Beta 8

Tech 1 Comment »

The beta’s keep coming out. Still a long way to go, but there has been a lot of work going on with the parser which should help a lot (not in beta 8 though)

Dear users, dear developers,

I’m proud and happy to announce the release of Groovy 1.0 beta 8!
We’ve put a lot of energy to improve the stability and the user experience. I hope you will like it!

A lot of issues were fixed, among the most important and interesting ones:

- groovyConsole and the streaming builders are back in the distribution
- lighter error messages in groovysh (no more huge stacktraces)
- a better experience with JDK 5.0
- no more memory leaks when evaluating thousands of scripts with GroovyShell
- MarkupBuilder can now generate stuff
- on certain windows platform, the classpath flag was not working
- possibility to use a groovy namespace in ant build files without defining a taskdef for the groovyc ant task

I want to thank all the great guys who helped me make this release!
Particularly, let me thank:
- Jochen Theodorou for Spring cleaning a lot of JIRA issues with me,
- Russel Winder for his efforts in making Groovy build and run on JDK 1.5,
- Dierk Koenig for his work on the Ant builder,
- Sam Pullara for the lighter error messages in the Groovy shell, and all the others who contributed with their help and support whether in code or patches, (Jeremy Rayner, Scott Stirling, Steven Devijver, Marc Hedlund, Gary Furash, Kim Pilho, etc)

You can download the binary or source distributions there:

NB: depending on your platform, you may have to chmod +x the shell scripts.


Guillaume Laforge
and the Groovy Team

PS : here are the precise release notes from JIRA

Release Notes – groovy – Version 1.0-beta-8

** Bug
* [GROOVY-200] – at runtime, groovy incorrectly fails when choosing between signature-specialized versions of a method
* [GROOVY-267] – url(label: ‘test’) { CDATA(body) }
* [GROOVY-289] – groovyconsole not starting because of non existing jar in CLASSPATH
* [GROOVY-326] – Groovy fails to build under JDK 1.5 (CVS HEAD)
* [GROOVY-354] – Array.length not working
* [GROOVY-363] – lineNumber table has all 0 instead of correct offsets
* [GROOVY-364] – Class names can not have dot
* [GROOVY-419] – Error when parsing strings
* [GROOVY-490] – Groovy shell scripts can’t find environment if invoked via a symlink
* [GROOVY-505] – dash in script filename
* [GROOVY-509] – Infinite loop in StringLexer
* [GROOVY-512] – code generator fails to cast argument to “~” to string
* [GROOVY-520] – Groovy cannot be compiled under JDK1.5
* [GROOVY-528] – says ambiguity where there is no ambiguity
* [GROOVY-552] – Double-quoted string containing just a backslash
* [GROOVY-562] – String “\\r” not evaluated properly
* [GROOVY-569] – java.lang.ClassFormatError running groovy script from shell (bash)
* [GROOVY-600] – java1.5 cant run groovyConsole on Windows XP Pro
* [GROOVY-615] – 100% CPU during compile: [ buggy string" ]
* [GROOVY-617] – Parser goes to the endless loop on unterminated string
* [GROOVY-621] – Clarification for CodeSource to allow compilation against 1.5
* [GROOVY-628] – -cp option don’t works on Windows’s groovy.bat
* [GROOVY-629] – -cp option don’t works on Windows’s groovy.bat
* [GROOVY-632] – Groovy editor doesn’t highlight multi-line strings
* [GROOVY-641] – The groovyConsole command doesnt work
* [GROOVY-642] – aStringBuffer + anObject gives runtime error
* [GROOVY-643] – HOME not quoted in groovysh
* [GROOVY-651] – fix build system so that the groovyConsole works again
* [GROOVY-654] – eta Characters \t \n \r in String Literal
* [GROOVY-655] – Error in generating meta characters \t \n \r in string literal
* [GROOVY-657] – Unable to invoke method on BuilderClassSupport subclasses
* [GROOVY-658] – Problems with XP install
* [GROOVY-659] – [PATCH] Fix behavior of scripts when invoked via symlink
* [GROOVY-661] – unexpected behavior with adding list to a number
* [GROOVY-665] – CVS at 200411210956
* [GROOVY-672] – grovvyConsole doesn’t seems to be working with the release “”
* [GROOVY-676] – AntBuilder doesn’t call Tasks nested in TaskContainers properly

** New Feature
* [GROOVY-646] – Fix InteractiveShell to allow embedded shells
* [GROOVY-647] – Provide a binding command in the interactive shell

** Improvement
* [GROOVY-169] – Readline support in groovysh
* [GROOVY-215] – change the ‘dc’ build target so that it redeploys a snapshot binary distro
* [GROOVY-436] – groovy should have an antlib descriptor for groovyc and possibly wiki2html
* [GROOVY-648] – Fall through to method closures call from the binding of a script
* [GROOVY-677] – Call statically typed method first before anything else

Guillaume Laforge

Dec 18

Evil Wiki Spam

Tech 2 Comments »

Evil wiki spam at work? I went to and got a lot of links to anything useful.

These damn spammers are like ’shit on your shoe’ as they say here in Essex. You try hard to get it out, but it always stays around!