There are a lot of static analysis tools out there, but Findbugs is unique. Where Checkstyle will raise 500 issues, and PMD 100, FindBugs will only raise 10 - but you damn well better look at them carefully!
That is a slight over-simplification, but it does reflect the philosophy of FindBugs. FingBugs uses more sophisticated analysis techniques than tools like PMD and Checkstyle, working at...
on May 8, 2008
Performance monitoring and profiling applications is one of my favorite pet topics - indeed, there's a big chapter on tools in this area in Java Power Tools. So I was keen to here what Jaroslav Bachirik and Gregg Sporar had to say in their talk today, entitled "Improving Application Performance with Monitoring and Profiling Tools".
It was worth it. Naturally, they talked about the JDK tools...
on May 7, 2008
This morning, I went to a talk by some of the CollabNet guys on the now-imminent release of Subversion 1.5. I've talked about some of the main new features, notably the new merge tracking capabilities, elsewhere, so I won't rehash them here. However, there were a few other interesting new features that are worth mentioning.
To have a truly robust enterprise Subversion archtecture, you need...
on May 6, 2008
Today, I gave a talk at CommunityOne on "Open Source Tools for Optimizing Your Development Process". The abstract for the talk is as follows:
One of the nice things about development on the Java
on May 6, 2008
This year in JavaOne, Hudson won Duke's Choice Award. Thank you very much for everyone for contributing/using Hudson!
P.S. Bill Pugh of findbugs dropped by the Hudson booth and told me that his Thursday talk "Using FindBugs in Anger" mentions Hudson. Nice!
on May 6, 2008
Some of the recent developments in Hudson:
More SCM plugins
It's amazing how many SCMs the world has developed, and it's even more amazing to see so many people signing up to write SCM plugins for Hudson. Michael Donohue recently added BitKeeper plugin and URL SCM plugin (which is to check the timestamp of URL and if it's new it copies it over.) In the mean time, Nigel Magnay wrote a Git plugin...
on May 1, 2008
When I first created Hudson on java.net, java.net only had CVS and no Subversion. Since then, java.net had added the Subversion support so that new projects can choose to use Subversion, but the existing projects didn't really have any viable migration path.
Some time after that, this got the attention of the java.net team, and a document has been written to explain how to migrate....
on Apr 7, 2008
One of the things I learned in The Server Side Java Symposium 2008 was a command-line option to print out the assembly code that JIT is producing. Since I've always been interested in seeing the final assembly code that gets produced from your Java code, I decided to give it a test drive.
First the disclaimers:
I'm not a performance expert.
Don't try to take this too far, like optimizing your...
on Mar 30, 2008
I will be giving a lunchtime talk in Wellington on the 8th of April on how Java development best practices can boost your productivity. In this talk, I will present some practical techniques for effective development of Java applications. The presentation will cover a number of key Java development practices and how these can improve productivity. For each...
on Mar 25, 2008
Hudson finally hit 1.200 last Friday. It's not 1.2 nor 18.104.22.168 — it's 1.200, the 201st release of Hudson since it's 1.0 release, which was a little over 3 years ago.
A few weeks back when I knew that it's approaching 200 mark, I briefly thought about giving it a longer soak time to make it a very stable release,
or perhaps adding some major RFE in this release. Or even call it 2.0. But in...
on Mar 24, 2008
I upgraded to IntelliJ IDEA 7.0.3 recently, and so I took some time to enhance my plugins to scratch my itches.
The "major" improvement is in the fast-open IntelliJ plugin. Being a CLI guy who hates using mouse (and since I work on so many projects), the main idea of this plugin was how to open projects in IDE efficiently.
In the earlier version, I was doing this by clipboard. First I run a...
on Mar 20, 2008
I created a small library to manipulate Windows processes the other day, and someone showed interest in how to create a small footprint DLL in Windows. So this blog is to explain you what I did.
The main idea behind cutting down the size of DLL is to avoid linking the Visual C++ runtime. In many cases, you'd only use JNI to talk to other DLLs (most often to kernel32.dll or ntdll.dll — IOW...
on Mar 19, 2008
I just love it when things are aligned. Today, it is about Eclipse and
Sun, or I should say Eclipse Foundation and the GlassFish community.
Read it at http://www.eclipse.org/org/press-release/20080317_Eclipselink.php
: EclipseLink will be used in GlassFish V3
Application Server (Java EE 6) and it will be the reference
implementation for JPA
(Java Persistence API) 2.0.
on Mar 17, 2008
I wrote a library called winp that lets you do lower-level process managements on Windows. So far it includes things like killing random processes (not just the ones you launched), killing a process recursively, or finding out the environment variables and command line arguments given to the process.
My short-term goal is to use this in Hudson so that I can clean up the run-away processes (...
on Mar 16, 2008
Cactusman reports in Japanese that Hudson just became a part of the FreeBSD ports collection. I don't know much about FreeBSD, but AIU this means FreeBSD users can install Hudson even more easily. The version of Hudson in FreeBSD is 1.190,
Hudson is also available as a part of OpenSUSE packages, and one person volunteered and is working on making it available in OpenSolaris.
on Mar 14, 2008
One of the common problems of java.net project owners is the e-mails that people send to email@example.com. This list is normally reserved for the automatic notifications from the issue tracker (thus it gets lower level of attention), but mistaken users often think this is the list to report any problems, and send in e-mails directly.
The "issue police" daemon monitors the issues...
on Mar 6, 2008
A few months ago, I blogged about the enhancement in Hudson to enable i18n. The progress since then has been rather amazing.
Japanese was the first language to be added to Hudson, thanks to a new committer "cactusman". Now, this work really actually has two parts in it — first to properly i18n the code, and then to add locale-specific data (AKA l10n.) Since he was the first to work on...
on Mar 3, 2008
For various reasons, I haven't touched my java.net tasks project that much lately, but I'm thinking about putting a bit more effort in doing more java.net automation, especially around issue tracker. Toward that, I wrote a tool to generate graphs out of the issue tracker — I'm calling it "issue tracker stats".
The tool is probably more useful for the management to get insights into...
on Mar 2, 2008
Splines project is my latest contribution to oss.
It is aimed at helping people use, display and edit splines without too much hassle.
The main entity of the project is Curve, which is a list of CurseSection objects. Three types of sections can be added at the moment, but the system can accept new implementations anytime (you can already add yours).
Actually implemented CurveSection types are:...
on Feb 26, 2008
In his recent blog, he announced a plugin that changes the facial expression of Hudson the butler depending on how your builds are going.
As you can see in his screenshot below, if tests fail, Mr.Hudson gets disappointed, and if a build fails, he becomes visibly frustrated.
Its practicality aside, I thought this is pretty funny.
on Feb 26, 2008