I noticed today that O'Reilly just released JRuby Cookbook. I have a few ideas I'd like to implement using JRuby and I was browsing the table of contents to check if the book could be helpful.
I was pleasantly surprised to see that it contains a section about "Performing Remote Management with JMX" using jmx4r (you can read a preview of the section by expanding it from the table of contents).
I'm obviously biased but I deeply believe that a small library such as jmx4r (less than 200 SLOC for the main file and 1/3 are comments) shows what the combination of Ruby and Java can achieve. JRuby leverages the strong Java runtime (with its garbage collection and hotspot) and allows to access a wide range of Java libraries with all the strengths of the Ruby language.
For example, in jmx4r case, I extensively use Ruby metaprogramming toolset to dynamically create the properties and methods correponding to the MBean attributes and operations.
There are also other stories which demonstrates what JRuby brings to the table coming from the C-Ruby world.
I'm looking forward to read this cookbook and write some ruby code built on top of the Java platform.
Pierre Chappaz reported today that Kelkoo has been sold to a private-equity firm by Yahoo! (Yahoo! bought it for 475M€ in 2004 and apparently sold it for less than 100M€)
I worked at Kelkoo for a short time in 2004-2005 after the acquisition. I made good friends and there is a bunch of smart people in this company. I'm sure they will rebound and innovate again now that they can focus on their own core business.
TangTouch is now available on the App Store. It is a Tangram puzzle game for the iPhone or the iPod Touch.
I wrote this game as a way to learn more about Objective-C and Mac/iPhone development. The bulk of the application was written months ago but I waited until I had an iPhone 3G to finish it and test it in situ.
It's a very simple game but I find it quite fun to play (being the author, it's possible I'm biased...)
When I think about it, there is more lessons to learn from the Macintosh than the iPod to know what lies ahead of the iPhone. Apple needs developers to make a long term success of the iPhone. They provide a good SDK to create applications and the platform is really good. However, it they continue to prevent open communication (through the SDK NDA) and reject applications without a well-defined policy, they will scare a lot of developers from building on this platform and send them into Android's arms.
If Apple wants to be consistent about the App Store acceptance policy, it must reject every application.
Given that the reason MailWrangler was rejected is that
[The] application duplicates the functionality of the built-in iPhone application Mail without providing sufficient differentiation or added functionality, which will lead to user confusion...
Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.
The inevitable conclusion is that every application will end up "duplicating the functionality of the built-in iPhone application Mail" and thus must be rejected.
… Your application duplicates the functionality of the built-in iPhone application Mail without providing sufficient differentiation or added functionality, which will lead to user confusion. …
If Apple was enforcing the same rule for Mac OS X, I could not use Thunderbird which I find more usable and responsive than Apple Mail.
What Apple needs to realize is that some of the best applications for Mac OS X (TextMate, Coda, Delicious Library, NetNewsWire, etc.) come from other places than Apple.
The iPhone could only gain from better applications and better competition (if only to push Apple to add landscape mode to MobileMail...).
Less crappy widgets, more usable applications and let the users decide.
I have switched from Subversion to Git a few months ago as the version control system for all my private projects and some of my publicprojects and I've not looked back.
The setup can not be simpler (git init in the project directory) and gitweb is easy to setup to browse the repository and its history.
Git is simple to use, simple to learn (with good in-depth and user documentation) and fast.
When I am learning new languages or frameworks, I tend to use an exploratory mode made of trials and errors. I found that the workflow of Git (simple branch creations and merges, stashes, reset) corresponds better to this approach than Subversion (which works best with an upfront design).
One of its great features compared to Subversion is that it distinguishes between the author and the committer. In Subversion, when an user submits a patch and I apply it, I'm both the committer and the author (I mention the user in the commit message and/or the header's files but as far as Subversion is concerned, the user does not exist). In Git, when I apply the patch, I'm only the committer, the user is the author of the commit and will remain so in the history, in git blame, etc. (as an example, here is a commit where I am the committer and Clay McClure is the author). This feature is very important for open source projects where your reputation comes from the code you write, even if it is only through patches.
The only area where Git is lacking behind Subversion is the tools. However I don't mind using a shell and Vim for most of the simple and frequent tasks. For advanced ones, gitk and Textmate are good enough for my needs.
I continue to use Subversion for my professional work but for my personal projects, Git is now my main choice (the only exception being Eclipse projects but as soon as there is a Git plug-in which is good enough, I'll switch too).
I was doing some house-cleaning on my weblog after upgrading Wordpress and redesigning its presentation (in a minimalist but not so minimalist fashion) when I saw that my popular split bookmarklets were broken due to a bad formatting.
I have fixed them and checked that they work correctly with Firefox 3, Safari 3 and WebKit nightly builds (my preferred browser these days) but I have not checked if they work on IE and Opera. If you can test on these browsers, let me know if they work.