Archive for the ‘java’ Category

Eclipse + OS X = unhappy

Thursday, April 3rd, 2008

Eclipse and OS X (10.4 Tiger) makes me unhappy. Today I witnessed something really stupid. I have allocated 768MB for Eclipse (eclipse.ini) and to my amazement, Eclipse was beach balling (being unresponsive for you non-OS X-ers). This beach balling was due to the simple fact that the Java garbage collector was reading in pages from the swap file in order to throw everything away. Woohoo! This took of course over 2 minutes.

I doubt that Java will ever become a consumer technology with this kind of shit.

Why exception messages suck

Thursday, December 13th, 2007

One of my pet peeves is that library builders take special care to check for errors or exception conditions, but fail miserably to communicate what is wrong and how to fix it. The case today: json-lib (2.1).

I’m trying to use it to serialize a bean to JSON format and to compare it to a JSON serialized bean (it is easier to check text instead of the debugger trees). But the json-lib tells me that there is a cycle in the bean.

Caused by: net.sf.json.JSONException: There is a cycle in the hierarchy!
	at net.sf.json.util.CycleDetectionStrategy$StrictCycleDetectionStrategy.handleRepeatedReferenceAsObject(CycleDetectionStrategy.java:73)
	at net.sf.json.JSONObject._fromBean(JSONObject.java:658)
	at net.sf.json.JSONObject.fromObject(JSONObject.java:182)
	at net.sf.json.JSONObject._processValue(JSONObject.java:2426)
	at net.sf.json.JSONObject._setInternal(JSONObject.java:2447)
	at net.sf.json.JSONObject.setValue(JSONObject.java:1189)
	at net.sf.json.JSONObject._fromBean(JSONObject.java:725)
	at net.sf.json.JSONObject.fromObject(JSONObject.java:182)
	at net.sf.json.JSONObject._processValue(JSONObject.java:2426)
	at net.sf.json.JSONObject._setInternal(JSONObject.java:2447)
	at net.sf.json.JSONObject.setValue(JSONObject.java:1189)
	at net.sf.json.JSONObject._fromBean(JSONObject.java:725)
	at net.sf.json.JSONObject.fromObject(JSONObject.java:182)
	at net.sf.json.JSONObject._processValue(JSONObject.java:2426)
	at net.sf.json.JSONObject._setInternal(JSONObject.java:2447)
	at net.sf.json.JSONObject.setValue(JSONObject.java:1189)
	at net.sf.json.JSONObject._fromBean(JSONObject.java:725)
	at net.sf.json.JSONObject.fromObject(JSONObject.java:182)
	at net.sf.json.JSONObject._processValue(JSONObject.java:2426)
	at net.sf.json.JSONObject._setInternal(JSONObject.java:2447)
	at net.sf.json.JSONObject.setValue(JSONObject.java:1189)
	at net.sf.json.JSONObject._fromBean(JSONObject.java:725)
	at net.sf.json.JSONObject.fromObject(JSONObject.java:182)
	at net.sf.json.JSONObject.fromObject(JSONObject.java:145)

Very informative stack trace indeed.

London Wicket User group assembling?

Friday, June 15th, 2007

Our London delegate, Al Maw, is organizing a Wicket meetup in London. If you want to celebrate the imminent graduation of Wicket to an Apache top level project, this is your chance to meet, greet Al and other Wicket community members.

The meeting is scheduled for July 3rd, and pending enough interest. Please announce that you are interested in the meet up in this thread.

Get out of the closet, detach that mouse from your fingers and join the Wicket User Group!

JQuery tabs in Wicket and issue tracking across the universe

Monday, June 4th, 2007

Xavier Hanin (of Ivy fame) has created a tabbed client side JQuery/Wicket panel for use in his open source continuous integration project xooctory. I still haven’t seen the tabs in action, so I can’t comment on their greatness yet.

What struck me most is the ease with which Xavier was able to construct the tabs, which is a feat in its own for both JQuery and Wicket.

Wicket makes very easy to develop such components, and that’s one of the thing I like the most about wicket. [...] My wicket implementation is about 140 lines of Java (well, 50 lines of Java and the rest of comments and imports) and 40 lines of html (most of which is used for testing only). That’s all, and you don’t need to be an expert in wicket to write such a component.

Of course I also looked around on xoocode for more of Xavier’s projects and he seems to like Wicket a lot, so we now have 3 issue trackers (that I know of) written using Wicket (are issue trackers the new blog-in-5-minutes applications?):

  • jtrac (Peter Thomas’ trac Nasa inspired tracker)
  • bugeater (Philip Chapman/Andrew Lombardi/Ryan Gravener’s issue tracker)
  • xoosent (Xavier’s issue tracker)

And other developer tools built using Wicket are xooctory (a continuous integration server), artifactory (a maven proxy). Wicket inspired is the already famous build tool called Gosling, which has performed a reboot, but seems to get into shape pretty fast.

eHour migrates from struts to Wicket

Tuesday, May 29th, 2007

Thies Edeling migrates eHour, an open source, web based time tracker application, to Wicket and gives a detailed how to guide. Especially for new developers this seems like a good place to monitor as Thies migrates more elements of his application.