New Java books.
Hitting the racks this fall...
<a href= "http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471463620.html"> <img class="photo" border="0" align="right" src="http://www.rollerweblogger.org/resources/roller/book-josp.png" alt="Book cover: Java Open Source Programming" /> Java Open Source Java Programming by Joseph Walnes, Ara Abrahamian, Mike Cannon-Brookes, and Patrick A. Lightbody
I had the priviledge of reviewing a number of chapters from this book and found it to be not only a good introduction to WebWork, Sitemesh, and Hibernate, but also a great primer on test driven development and the use of mock objects in unit testing. It takes real disipline to do true test-first development and the authors of this book certainly have the disipline. The authors do whatever is necessary, sometimes writing scads of throw-away code along the way, to ensure that a test-first safety net is in place for each and every new development.
<img class="photo" border="0" align="right" src="http://www.rollerweblogger.org/resources/roller/book-projsp.png" alt="Book cover: Pro JSP" /> Pro JSP By Simon Brown, Sam Dalton, Daniel Jepp, Dave Johnson, Sing Li, and Matt Raible.
And now, from the shameless plug department... While you are book shopping you should also pick up a copy of Pro JSP, covering JSP 2.0, JSTL, database access options, Struts, XDoclet, and more. If you do, I'm sure I won't regret it.
Vinny says
RSS in depth.
September 2001.
We spent the first week of September 2001 at Ocracoke, one of the North Carolina barrier islands. Ocracoke is a three hour ferry-boat ride from the coast and the town of Ocracoke is tiny, so it feels so remote, disconnected, and isolated from the problems of the rest of the world. At the crack of dawn each morning, I would go out for a run. When I returned, I would take one or both of the boys out for a walk down the road, past the cute little light house, past the pelicans, and down to the little harbour, known as Silver Lake. One morning we found a bunch of kitties in the woods by the road, one morning we walked to the other side of town for breakfast, and every morning we saw a beautiful sunrise. This is what I would prefer to remember about September 2001.
Alex and Linus, on one of those morning walks.
ruckyou.com rugby site blogging with Roller too.
<a href= "http://blogs.atlassian.com/rebelutionary/archives/000287.html#comments"> Rebelutionary found this one. Ruckyou.com has taken Roller added a bunch of cool new themes (and who knows what else) and made an awesome looking Rugby community site.
la Repubblica.it blogging with Roller
A half-dozen very professional looking new Roller blogs have appeared at la Repubblica.it: Estremo occidente, Pulp Fiction, Rimbalzi, Blog Trotter, and Media-Trek. Now, somebody please tell monolingual me: what is la Repubblica.it?
Two words you don't often see together
are FreeRoller and fast.
<a href= "http://freeroller.net/page/nic/20030909#freeroller_net_snappy_and_fast"> Nic: freeroller.net snappy and fast!That is nice to hear, but will it still be snappy and fast after 24 hours?
<a href= "http://freeroller.net/page/aspinei/20030909#freeroller_finds_cure_to_it"> Aspenei: Someone, oh please !, someone tell me how did FreeRoller became so snappy overnight. If only I'd be able to implement such performance improvements in my customer's apps i'll instantly become their Java Consultant God (TM) or something.
The answer is Roller 0.9.8 which includes better usage of Hibernate, Hibernate/JCS caching, database indices, and numerous small fixes and improvements made over the last couple of months by the Roller team.
Roller 0.9.8-dev made it through the night.
I upgraded FreeRoller to Roller 0.9.8-dev last night. The upgrade went well. FreeRoller is noticably faster and, more importantly, FreeRoller made it through the night. There are a lot of fixes in Roller 0.9.8 as you can see from the Roller <a href= "http://opensource.atlassian.com/projects/roller/secure/BrowseProject.jspa?id=10000&report=roadmap"> roadmap, but Lowem has found that there are also gotchas for folks using "undocumented" features. If Roller 0.9.8-dev continues to work well, I'll release it as Roller 0.9.8 this weekend.
Mr. Roller
FreeRoller plans.
Now that the guy who started FreeRoller has bailed out, I'm going to start take a little more active role in FreeRoller administration. I don't really want to be the FreeRoller administrator (Roller is my baby not FreeRoller), but I don't want to see a thousand (1507 at last count) bloggers ejected from the blogosphere either. Plus, I'm interested in solving the FreeRoller performance problems or at least understanding them.
What's the plan? I talked to the folks at JavaLobby and we agreed on a couple of things: 1) new user registration will be closed until we get a better handle on performance and 2) FreeRoller will be moving to the improved Roller 0.9.8 codebase as soon as possible.
What about the performance problems? Gavin King of Hibernate is giving us some advice on using some of Hibernate's performance features, which I will deploy (after some testing/benchmarking) to FreeRoller with the Roller 0.9.8 code base. Since Roller uses page caching so heavily, I think it is a little unlikely that the persistence layer is to blame, in fact it is more likely that OSCache is to blame (or, of course, Roller itself), but at this point I'm willing to try anything.
Want to help? Grab the Roller source and have at it.
Who is going to run FreeRoller?
Anthony bailed out, leaving FreeRoller without an administrator.
Tiles is a tough sell.
<a href= "http://jakarta.apache.org/struts/userGuide/dev_tiles.html">Tiles seems to be a tough sell in my group, which includes a bona-fide JSP and web development guru. He has some good points. Tiles promises that you can define all of your page's layouts with a couple of template files. The goal is to reduce JSP code duplication and makes it easy to apply global changes to your site. But, if your pages use a completely CSS-driven layout and your site's entire look, feel, and layout can be changed by altering a single CSS file then what does Tiles buy you? To reduce JSP code duplication a couple of header and footer includes will do. Bringing a new web developer into a project is difficult enough with the Struts learning curve. Is the added complexity of Tiles really worth it?
I see it as a hobby.
<a href= "http://brainopolis.dnsalias.com/roller/page/lance/20030903#circle_blog">Lance: We continue working to make Roller faster, and to make Roller better. Some people see Roller as a product, me, I see it as a hobby. Everybody wants to be better at their hobby.
EJBs could rescue FreeRoller?
Cedric Buest suggests that EJB might be the answer to FreeRoller's scalability problems. Cedric, get BEA to donate an EJB implementation of the Roller persistence tier and a Weblogic server for the FreeRoller site and we'll do some performance tests to see how Hibernate/Roller and EJB/Roller hold up. I'll buy you a beverage no matter who wins.
Cameron Purdy is also talking about FreeRoller performance and even taking a look into the Roller code, which is good, but the problem that he identified was fixed about a month ago and that fix has been applied to FreeRoller. Cameron, please check out the latest code. The session problem you mentioned is fixed and Lance and Min have been making numerous performance fixes, but I'm sure there are other problems lurking.
Atom 4 U.
Lance has a new baby boy and a new open source project. He hasn't posted any baby pictures yet so I don't know what his new baby looks like, but his new open source project, Atom4J, just landed in the Roller CVS and I'm reviewing the code now.
Atom4J is a Java implementation of Atom, everybody's favorite new weblog syndication format and API. Instead of simply adding Atom support into Roller, Lance chose a more difficult and potentially more rewarding path. He released Atom4J as a standalone product that can be used to add Atom API support to any Java-based weblogging system. This is a Good Thing™. You can find out more and download Atom4J at the OSJava.org site.
A brief review of JIRA 2.4
About a year ago, Mike Cannon Brookes of Atlassian contacted me and offered to provide issue tracking for the Roller Weblogger project using JIRA, Atlassian's flagship web-based issue tracking software. I'd seen JIRA in action, so I took him up on the offer immediately. Mike set up a JIRA installation for us on an Atlassian-provided server, moved our old SourceForge bug-list into the system, and handed out usernames and passwords. We got the Atlassian legendary service, yet we didn't pay a penny.
Atlassian recently released JIRA 2.4 and to help get the word out, Mike Cannon Brookes has asked me to do a little review here on Blogging Roller. I like JIRA, so this is really no problem at all. I can give you my unbiased impressions of JIRA and the new JIRA 2.4 release without fear of retribution.
The old JIRA. First, lets talk about the old JIRA. When I started using JIRA, I was impressed by the clean, attractive, and easy to use user interface. Having worked with Scopus, PRTracker, and PVCS Tracker, nice UI was not what I had come to expect from a bug tracking system. Generally, things worked as I expected that they would and I found it was easy to tweak the settings that I needed to tweak. I added the names of the Roller components (e.g. Weblog Editor, Page Management, Installation, etc.) for issue categorization. I also added the release numbers of the previous and planned Roller releases. I've been using JIRA for a year now and it has been working well for me, it doesn't get in the way, and doesn't irritate. That is high praise for software.
The new JIRA 2.4. Roller's JIRA installation is still running the old JIRA 2.3, so to review JIRA 2.4 I had to install it myself. I downloaded the new JIRA 2.4 from the Atlassian site and installed the standalone version. The standalone version comes bundled with a copy of Tomcat 4.1 and the HSQL-DB database, so there is almost no setup. All you do is unzip, run the startup script, and point your browser at http://localhost:8080. Very cool and perfect for a quick review like this. You may also install JIRA as a standard Java Web Application Archive (WAR) or Enterprise Application Archive (EAR) and Atlassian provides step-by-step instructions for all of the major Java app servers (plus Resin and Orion). After starting up Tomcat and filling out a couple of JIRA setup screens, I had JIRA 2.4 up and running.
I created a test project and a couple of issues and found no major changes in the JIRA user-interface along the way. That makes sense. JIRA 2.4 is a minor enhancement and bug fix release. The most significant new features are a new bar-chart display for issue statistics, support for customization via the Jelly XML scripting language, and some improvements in custom field support. There are a host of other improvements and fixes. JIRA 2.4 is not a ground-breaking new release; it is a more stable, new, and improved version of the JIRA.
JIRA Limitations. There are a couple of major JIRA limitations that should be mentioned. I've seen JIRA lose a couple of deals (to TeamTrack and DevTrack) because of these limitations, so I'm hoping that Atlassian will address one or both of them in the next major release. First and foremost: out-of-the-box JIRA does not support full integration with any of the major Source Code Management (SCM) systems. The extensive JIRA API and plugin service and listener appear to provide all of the hooks customers need to implement full intregration, but missing out-of-the-box SCM integration can be a deal killer. The other limitation is the workflow. The workflow that is built into JIRA cannot be altered though the UI or through the three JIRA extension mechanisms (the API, listeners, and services). You can change the names of the issue states, but you cannot change the states and transitions in the issue workflow. This can also be a deal killer as many customers are either unwilling or unable to change their processes just to please a new software package.
Overall, JIRA is a simple, easy-to-use, and very flexible web-based issue tracking system with that provides a high-level of extensibility though Java APIs, plugins, and soon a SOAP-based web services interface. Installing JIRA is very straight-forward, the default settings are reasonable, and this allows you to get up and running quickly. JIRA sports some innovative features like voting and RSS feeds for issue events, but JIRA does not try to do as much as more complex, expensive issue tracking systems like TeamTrack. JIRA has a couple of major limitations, but the JIRA pricing helps to make up for those limitations. You can get a JIRA server license that allows unlimited users for the price of a couple of TeamTrack client licenses. If you want a low-cost and highly extensible web-based issue tracker for your software project then you should take a close look at JIRA.
« Previous page of month (Sep 2003) | Main | Next month (Oct 2003) »