magpiebrain

Sam Newman's site, a Consultant at ThoughtWorks

Posts from the ‘Development’ category

The “Prevayler “:http://www.prevayler.org/ persistence engine for Java might be a good project. Really it might. I have qualms about the basic principle which has everything stored in memory, with robustness provided by the fact that all calls to the persistence layer are logged and can easily be reloaded. For a decent sized database driven J2EE application the amount of data can easily outstrip the maximum available memory. I don’t even have a problem with their solution which is basically to wait until you can get enough ram (although their “out of date( Breakthroughs In Memory Technology)”:http://www.prevayler.org/wiki.jsp?topic=BreakthroughsInMemoryTechnology post on the subject states we should have holographic ram available to us by now!) even though this smacks of a “Don’t worry about the code, lets throw money at the hardware to sort it out” approach.
No, the thing that bothers me is the downright egotistical closed-minded nature of the developers. It doesn’t take long for any reader of their Wiki to see what I mean. The piece “When Should I Not Use Prevayler”:http://www.prevayler.org/wiki.jsp?topic=WhenShouldINotUsePrevalence for example:

When Should I Not Use Prevalence

When you do not know how to program.

The problem I have with this is the fact that these people with their consistently arrogant attitude have resulted in alienating a large percentage of the Java programmers out there who are now less likely to look at prevlayer seriously. As a technology for small scale apps I don’t have a problem with it. What I do have a problem with is the thought of having to deal with coders who make Mark Fleury look like the “Dalai Lama(His Holiness The Dalai Lama)”:http://www.tibet.com/DL/ when it comes to dealing with people. If you are serious about publishing and informing the public concerning what you think to be a good idea, the last thing you want to do is call everyone stupid and ignorant.

“XPlanner(XPlanner Homepage)”:http://www.xplanner.org/ is an open source project management tool for XP. I’ve been wanting to get involved in XP for a while, but it looks increasingly likely that I’ll have to move jobs before that happens. Still, the availability of a good looking project management tool makes adopting at least some aspects of XP more attractive…
XPlanner simply requires Ant, a database and a Servlet container to work.

After much trouble with international dialling codes (which was finally sorted thanks to “this handy site(Country Calling Codes website)”:http://www.countrycallingcodes.com/) I managed to fax my “application(Becoming a JCP Member)”:http://www.jcp.org/en/participation/membership/ to join the “JCP(The Java Community Process)”:http://www.jcp.org/en/home/index over to Sun. A couple of days later and email informing me that my application is being processed, and also giving me details to enable access to the private forums and draft JSR’s. Unfortunately I can’t tell you what I’ve seen unless you’re in the JCP too 🙂

Much kudos to Will Sargent over at “Terse Systems”:http://tersesystems.com/ for pointing out an eclipse plugin called “Ganymede”:http://sourceforge.net/projects/ganymede/, which captures “Log4J(Log4J Project Homepage)”:http://jakarta.apache.org/log4j/docs/index.html messages inside eclipse itself.

_Updated 11:51am_: Well, from the screen shot and descriptions at Terse Systems, it looked good. However I have been completely unable to find ANY documentation on how to actually install and run the thing! The downloadable packages come with no readme files, the homepage is a directory listing, and the only readme to be found on the sourceforge site was useless. It might be the greatest project in the world but if no-one knows how to use it, whats the point?

Now first off I have to say I have a lot of time for Allen Holub. Ever since I got a review copy of his “Taming Java Threads”:http://www.apress.com/book/bookDisplay.html?bID=35 a few years ago, it has become my bible for threading in Java. Allen Holub’s article “extends is evil”:http://www.javaworld.com/javaworld/jw-08-2003/jw-0801-toolbox.html made some very valid points – in fact I realised that I’ve subconsciously completely removed implementational inheritance from my code – the places in which the use of an extends relationship made sense seemed to occur less and less frequently.
Slightly less informative was his latest piece “Why getters and setters are evil”:http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html. I understand the logic and applaud him for raising this to peoples attention, but feel the rather abstract article could do with more in the way of concrete articles.
In anycase it seems that Allen is working on a new book, Patterns: Learning Design Patterns by Looking at Code, which I’ll be sure to pickup.

At work recently I’ve been doing an informal review of our code base, in an attempt to get together a potential code refactoring work package. I say informal because I haven’t got any official time allocated to it – currently its taking place in lunchtimes and during slack that I haven’t told management about. Along with tools like “checkstyle”:http://checkstyle.sourceforge.net/ and “QStudio pro”:http://www.qa-systems.com/products/qstudioforjava/ I’ve been able to pick up some issues which will exist in any organisation which, like ours has had no real coding standards or review process. In addition I’ve been carrying out a more general design review, and one issue that cropped up was that of singleton classes and static classes.
Continue reading…

From the Apache announcement mailing list:

The Regexp team announces the availability of Jakarta Regexp 1.3 release.

This is primarily maintenance release containing several bug fixes
accumulated since the last Regexp release. Complete list of changes is
available at: “http://jakarta.apache.org/regexp/changes.html”:http://jakarta.apache.org/regexp/changes.html

Regexp comes in one download, containing binary and source code.
Download Regexp from “http://jakarta.apache.org/site/binindex.cgi”:http://jakarta.apache.org/site/binindex.cgi

Bug reports and patches are accepted via Bugzilla,
http://nagoya.apache.org/bugzilla/”:http://nagoya.apache.org/bugzilla/

I’ve just downloaded QStudio for Java Pro, which is being offered with a free year-long license.

QStudio for Java Pro is a comprehensive software health quality assessment and control tool targeted towards the software developer.

Developers can automatically inspect their Java source code and improve their Java programming skills as they write their programs. QStudio for Java Pro provides descriptive Java patterns explaining error prone code constructs and providing solutions for it.

For those of you familiar with tools like Checkstyle or even the built in code checker in Eclipse, it does a similar job, although it does seem more sophisticated. Probably the best feature is the ability to generate a HTML view of your source complete with annotated “Observations” (as QStudio puts it) making code reviews a real breeze. I’m still trying to get it to play nice with Jalopy – however thats more an issue with getting Jalopy to format its code so QStudio doesn’t moan about it.

* “David Raynes'”:http://www.rayners.org/ “MTSubCategories plugin”:http://www.rayners.org/2003/08/19/subcategories.php for MT lets you use subcategories in MovableType, as you’d expect. Thanks to “Brainstorms and Raves”:http://brainstormsandraves.com/archives/2003/08/19/organizing_your_website/
* Another “link(Brainstorms and Raves – BBC News Styleguide”:http://brainstormsandraves.com/archives/2003/08/20/bbc_news_styleguide/ from Brainstorms and Raves, the BBC has published its “style guidelines(BBC News Styleguide)”:http://www.bbctraining.co.uk/onlineCourse.asp?tID=5487&cat=3 for news journalism. I doubt it’ll help with my spelling.
* OnJava.com has an article by Tom White entitled “Memoization in Java Using Dynamic Proxy Classes”. It details a design for a transparent caching layer for functions.