❯ Guillaume Laforge

Geek

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...

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...

Castor tip: generating Java classes for XSD simple types

At work, I’m using Castor XML to Java binding to marshall/unmarshall messages in my Web Services, inside a custom framework (Struts, OJB, JAXM, etc). I have defined my messages as XSD Schemas, and I’m using Castor’s Maven plugin to auto-generate my Java classes at build time. All is good and well… Hmm, almost! Castor’s SourceGenerator generates Java classes for complex types and elements, but not for simple types, and unfortunately, I badly needed to marshall those simple types as well. Read more...

RIFE rocks the pants off of Rails

Rails is kinda cool. Any framework that ease the development of CRUD-oriented webapps is a real time saver. There’s been a lot of well-deserved hype around Ruby on Rails lately. But I’m not sure that’s really that revolutionary. I’ve always thought that a good Java Web framework can do the same. Perhaps with a few more lines of code, since we all know that Java tends to be more verbose than some scripting languages. Read more...

Auto-completion in a DOS console

When I’m on an old PC, what frustrates me a lot is when I can’t auto-complete file names or paths when I’m in a DOS Console. If your computer (an old Win2K box like I have at work) is not configured for completion, it’s easy to re-enable it by modifying two keys in the registry: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\CompletionChar HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\PathCompletionChar To both keys, assign an hexadecimal value representing the key used for completing statements. Read more...

IntelliJ, as a team communication tool

Everyday, when you work with your team mates, you exchange information through different communication channels. If you work in the same offices, you can simply speak and make stand-up meetings. If you work with different teams spread across different places, different buildings, or even different countries–especially true for Open Source projects–you can pick up your (Skype) phone, and write emails, or chat through instant messenging or IRC. But sometimes, it feels a bit frustrating to use those archaic mediums. Read more...

On board JetBrains!

JetBrains, JetBrains… You all know I love that company, and I love their products. Especially IntelliJ that I’ve using for a few years already as my main and primary Java IDE. That really, really rocks. And you’ve probably seen the picture of me wearing my JetBrains TShirt… So what’s the news today? JetBrains’s just released their OnBoard monthly online magazine. That’s worth a read! The featured articles are: Language Oriented Programming: The Next Programming Paradigm Applying Code Generation Approach in Fabrique IntelliJ IDEA: Structural Search and Replace, What, Why and How-to Extending Omea with New Resource Types Of particular interest, Sergey Dmitriev’s–long awaited for those in the know–article about Meta-programming: “Language Oriented Programming”. Read more...

Becoming an O'Reilly book author

A few months ago, O’Reilly contacted the Codehaus to find some Groovy experts for writing a book about Groovy, the scripting language for the JVM. I was very interested in writing such a book, and I asked another expert, Chris Poirier, if he’d fancy co-authoring the book with me, and he accepted. That’s how we started writing “Learning Groovy”, in the famous animals/learning series. This article is not about how to become an author, but rather, how O’Reilly helps you get up to speed with the task. Read more...

Pair Wiki-ing

Ever had to work collaboratively, concurrently on the same document in real-time? So far, the offering for dealing with collaborative documents authoring is rather oriented towards an asynchronous mode. You have Microsoft Word which allows you to make revisions, changes, highlights. You can use the good old email system by sending mails in a ping-pong way (no concurrent modifications allowed). You may also use a versioning system such as CVS or Subversion to edit documents in parallel and merge both work copies. Read more...

Continuous Integration with DamageControl

DamageControl, I believe, is one of the great tools an Open Source project must have. For those who don’t know this great project hosted at Codehaus, it is one incarnation of a continuous integration system, like CruiseControl or others… Basically, this is a tool which allow developers to make their project build automatically upon each commit to ease integration. Each time a modification is done on your Source Control Management system, it triggers a build. Read more...