❯ Guillaume Laforge

Posts

JetBrains fashion victim

I am a JetBrains fashion victim. I’ve just received my JetBrains TShirt this morning. It was quite early (say 8 o’clock) for a saturday when I’m used to wake up late late late, especially after coding Groovy late at night… when that damn postman rang at the door. I wanted to slaughter this bastard for waking me up that early… I even wanted to not open the door. But I remembered that I was supposed to receive a TShirt some day, thanks to my participation in a very private society of IntelliJ IDEA affictionados called “Team JetBrains”… Read more...

First OSS-Get Together in Paris

For the first time in Paris, an Open Source Software Get-Together was organized by Vincent Massol of Cactus fame and author of JUnit in Action book. It was a lot of fun to meet him and other French OSS developers. I though we weren’t numerous to work on Open Source projects in France, but after all, it seems I was wrong. Moreover, I was stunned to meet someone working for the same company as myself, and I didn’t even know him! Read more...

Tip O' the day : SSH on Windows

My fellow readers might remember my problems with SSH which have often bothered me. I faced again a similar issue: I wanted to upload a new Groovy snapshot Jar, before we release RC-1 next week. As a Groovy despot, with the help of some wonderful hausmates (particularly Trygve and Bob) I managed to authenticate myself with ssh-agent + ssh-add on the Codehaus server, so that maven doesn’t require me to enter my passphrase for my key. Read more...

New Groovy Snapshot

Since Groovy’s move from one server to another, we could not deliver the latest jars. We’re sorry for that, but we’re doing our best to fix all the little issues you’ve encountered (broken links, missing jar, etc) It’s not without difficulty that I managed to upload the latest snapshot of groovy, but I’m glad to announce that there is a new groovy-1.0-rc1-snapshot.jar. You can find it here: http://dist.codehaus.org/groovy/dist/groovy/jars/ If you’re still using beta-4, please upgrade to the latest snapshot. Read more...

Seen on maven IRC

Being a groovy despot, I was in the process of redeploying groovy’s web site and also the latest snapshot jars of the distribution which a lot of guys have asked for. But I was having some problems with my setup, ssh connection, maven goals, etc. With Trygve and Bob, we were chatting about that, and here is an interesting snippet of the ongoing discussion: trygvis: bob: dist is a recursive symlink bob: yes, I know bob: it’s broken bob: I’ll fix it bob: and I’ll smack the next person who tells me about it trygvis: DO IT NOW! Read more...

IntelliJ : SSH2 finally finds its way...

I’ve been waiting for that for months already. I’ve been whining and whining again about the lack of an internal SSH2 implementation in IntelliJ. And now, it is there! As you perhaps already know by reading my weblog, I’m a Groovy developper. And the Groovy project is hosted at Codehaus which makes use of SSH2 for accessing the CVS repository. I had tried, but without success, different alternatives, such as using Putty/pling/pageant, but I didn’t manage to create a connection. Read more...

A groovy web server

Based on a suggestion made by Jamie McCrindle, I decided it was time to add some missing Groovy methods related to sockets. So far, I have added a bunch of IO/streams methods enhancing the JDK core classes, but there were no methods dealing with sockets. But now, this time is over. I have added two methods: Socket.withStreams(Closure) which takes a closure as argument, and has acces to an input stream and an output stream, and ServerSocket. Read more...

First steps in TDD-land

Unit tests aren’t really new for me, but so far, on the different projets on which I worked recently, I haven’t really had the opportunity to develop “test firt”. Moreover, I could not test much because those projects were not pretty test-friendly (static instances all around, nothing close to IoC/DI anywhere around). And also, on web-based and GUI projects, it is not that easy to write tests (when I have time, I should definitely have a look at those HTTP and Swing testing frameworks). Read more...

Heads-up on File and Stream groovy methods

Over the week-end, I implemented new groovy methods, as defined in GROOVY-208 Plus a few complementary methods. getText(): BufferedReader.getText() File.getText() File.getText(encoding) Process.getText() You can now easily read the full content of a file or of a buffered reader and get it as a String. // retrieve the content of the file def content = new File("myFile.txt").text // you can specify the encoding of the file // note that since getText() has a parameter, // you cannot call it with something like text("UTF-8") content = new File("myFile. Read more...

Timing a closure in Groovy

When you want to make some optimizations to your code, you often use the good old System.currentTimeMillis() method to time certain parts of your application. I wanted to do a similar thing when hacking some Groovy scripts recently, and the idea came to me that I could simply create a timing closure! So here it is, for your eyes only: timer = { closure -> start = System.currentTimeMillis() closure() println System. Read more...