❯ Guillaume Laforge

Posts

Wifi Rabbit for Continuous Integration

Call me a geek, but I’d really love to buy me one of these little Wifi rabbits. The Nabaztag rabbit is a 23-cm high white rabbit with moving ears, and a set of flash LEDs of different colors. You can pair it with another rabbit so that when you move the first one’s ears, will automatically make the other one move its ears accordingly, even if your in another town or country (as long as you have a permanent DSL connection). Read more...

Aquarelle de Versailles

Pour mon anniversaire, Stéphanie m’a offert du matériel pour faire de l’aquarelle : un carnet à dessin et un coffret avec 16 couleurs. Comme le temps était plutôt agréable et clément ce week-end, nous avons décidé de pique-niquer auprès du Grand Canal du Château de Versailles. J’ai emmené tout mon attirail, et j’ai réalisé ma première aquarelle, que voici :

Initial release of the GroovyJ IntelliJ plugin!

Franck Rasolo, our IntelliJ expert, just released and announced the inital version of the GroovyJ IntelliJ IDEA plugin! The Groovy team is pleased to announce the first public release of GroovyJ, a plug-in that integrates the Groovy language into IntelliJ IDEA. You may browse the current GroovyJ status page which lists the features shipped with this initial release. In a nutshell, with GroovyJ: a default Groovy runtime is automatically installed as a global library Groovy files can be edited with some amount of syntax highlighting ‘Run Configurations’ can be created for runnable Groovy scripts Groovy scripts can be run with the output being captured in the embedded console window Groovy scripts located under module source/test folders will be automatically compiled when compiling modules Note: This plug-in is available through IDEA’s plug-in manager and requires IntelliJ IDEA 5. Read more...

JavaOne: Groovy reactions!

The JavaOne crowd is applauding Groovy! And the blogosphere is full of friendly comments towards our dynamic and agile scripting language for the JVM. Jeremy Rayner (our co-JSR-241 spec lead, and JSR project lead) compiled a list of blog posts related to Rod Cope’s JavaOne presentation, titled “Groovy = Java Technology + Ruby + Python for the JVM”. Rod Cope, OpenLogic’s CTO and Founder, has already given a few talks about Groovy, and evangelizes its use at various events. Read more...

Maven Developer's Notebook

I’m glad I just received my Maven Developer’s Notebook, from O’Reilly. My friend Vincent Massol and Tim O’Brien co-authored this great book on Maven, a definitely needed reading for all those who want to learn more about Maven, or who wants to get started quickly. I had the chance of being one of the reviewers and it allowed me to learn quite a few tricks in the process, at the same time I was converting one of my projects at work to a “mavenized” build process and integrating it inside Luntbuild for continuous integration. Read more...

Groovy development: aiming for quality

A new milestone of Groovy was released a few days ago. The general goal of this release was quality. 80-90% of our work was targeted at improving the user experience, as much as we could. One of the main complaints so far has always been regarding the ugly error reporting that Groovy was generating. Whether that be in the shell, or embededed, or when compiling your Groovy source code. It was pretty hard to figure out what the error was by looking at a meaningless message and hundreds of lines of exceptions. Read more...

Lucene's fun

I played with Lucene today to index a CSV file representing the Unicode characters metadata. Lucene is so easy and fun to use, that’s really the kind of libraries I like very much. I took some inspiration from my friend Jeremy who played with Lucene and Groovy recently, by translating into Groovy some examples of Lucene in Action. I’ve always been interested in i18n issues, charset/encoding malarkey, and so on. It’s always a pain to deal with… but it’s pretty damn interesting, and that’s often a problem that native English speakers overlook. Read more...

Maven scripting in Groovy

Recently, on Maven’s user list, someone wanted to be able to script Maven with Groovy, like it was already possible with BeanShell or Jython thanks to specific Jelly tags. But unfortunately, Maven didn’t provide that kind of support for Groovy. But there are good news on that front since Jeremy Rayner contributed a nice Groovy Ant task. That Ant task will be available in the upcoming Groovy release (jsr-02), so if you want to play with Maven and Groovy, you’ll have to build Groovy from sources in the meantime. Read more...

How to remove accents from a String

My little puzzle of the day is to find how to remove accents from a String. There are different alternatives, different strategies, but none really suits my needs – or my taste. The naive approach is to use String.replace() to replace manually all characters, with a correspondance table, like “é” should be replaced with “e”, etc. That’s fine for some languages I know, like French or German, or even some latin languages, since we share the same alphabet. Read more...

Maven tip: using Ant's optional FTP task

Maven is a pretty powerful tool, but sometimes, simple things can get complicated… I had to customize my build to upload some files through FTP. But it wasn’t just a mere artifact to upload through FTP to the enterprise repository, so I couldn’t use Maven’s artifact plugin and its FTP method. So the solution was to use Ant’s optional FTP task. At first, it doesn’t seem very complicated, since Maven can basically use any Ant task very easily, but the fact is that this optional Ant task is dependent on another library that you have to add to Maven’s root classloader, otherwise you’ll get a NoClassDefFound! Read more...