I “posted(Advanced Table display using JSP Tags)”:http://www.magpiebrain.com/archives/000095.html a while back about my discovery of the “Display tag Library”:http://displaytag.sourceforge.net/, used to created tables in JSP pages. To recap the tag can handle formatting, automatic export options (Excel, CSV, XML), sorting and grouping with a minimum of fuss. Back then I was impressed just from reading the documentation and from viewing the “on line demos(Live Examples of the Displaytag library)”:http://www.displaytag.org/index.jsp. Now I’m impressed because I just used it to generate a very simple contacts list for our intranet, and it took me about 2 hours to download the taglib, install it, work out how to use it and then create a great looking table with sorting, grouping and CSV export. To be honest, I spent as much time playing with the CSS as anything else.
Next up, I think I’m going to look at a simple way of putting form controls in the table. A “prototype(Display tag library – Editable table implementation)”:http://sourceforge.net/tracker/index.php?func=detail&aid=755192&group_id=73068&atid=536615 based on the Display Tag was built but it seems a little complex, and despite being posted several months ago it doesn’t seem to of been integrated in the code base yet. Hopefully I’ll be able to come up with some simple extensions that don’t require too much coding.
Work is proceeding on my second article on the “Informa API”:http://informa.sourceforge.net/ – I’m currently refactoring the FeedManager class whose use forms the basis of the article. The FeedManager‘s job is to manage multiple feeds, and handle their lazy loading (which will fix a major flaw with the simple code presented in “my first article(Java.net – Using RSS in JSP pages)”:http://today.java.net/pub/a//today/2003/08/08/rss.html). I’m also getting to grips with OPML – support for which was added to Informa as of the 0.4.0 release by Niko Schmuck (Informa’s project manager), and will be adding a method to add channels from an OPML file to the FeedManager itself. All changes will be going back into the Informa code base – expect them to appear in the next release.
Seems my “article”:http://today.java.net/pub/a/today/2003/08/08/rss.html on RSS and Java that I wrote for “java.net”:http://www.java.net/ has made its way over to “OnJava.com”:http://www.onjava,com/, albeit only via a link from the front page. The second instalment will get finished sometime next week – it covers more aspects of the Informa API and the use of OPML files.
The Display tag library is a JSP Taglib that provides the advanced formatting and display of tables. As well as the ability to do simple things like style the data, it can also transform it using decorators, provide automatic searching, paging, grouping and even export to CSV, Excel or XML! I deal daily with tabled data and this taglib will be an absolute godsend. To get a good idea of what the taglib is capable of check the “live examples(JSP Display Tag in action)”:http://www.displaytag.org/displaytag-1.0-b1-examples/index.jsp.
Originally spotted over at “Dion(Dion – JSP Tag Libraries)”:http://blogs.codehaus.org/people/dion/archives/000184.html.
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…