Dave Johnson on open web technologies, social software and Java
In preparation for the Atom Protocol interopathon this week, I've been busy updating my Atom Protocol client and server implementations. They were using Atom 0.3 because they're based on ROME and that's all that ROME supported, but this weekend I modified ROME to support Atom 1.0. I submitted a patch to the ROME team, but for some reason it still hasn't shown up on the ROME dev mailing list.
Welcome to Elias, who brings the Roller committer count up to seven (in chronological order: Dave, Matt, Lance, Anil, Henri, Allen, and now Elias). Elias runs one of the biggest Roller installs in the world at IBM and he's got lots of cool feature ideas and practical suggestions for improving Roller.
Mailing-list traffic and interest in Roller really seems to have picked up recently. I'm not sure if that's due to interest in Roller 2.0 or the ongoing move to Apache, but either way that's a good thing for Roller developers and users alike.
Now that Google is indexing newsfeeds and providing Google Blog Search, is there any hope for the wee little blog search companies like Technorati, Feedster, and PubSub? They'll be OK, don't you think? After all, nobody would have invested in them if they didn't have a contingency plan for Google's entry into the market.
It's interesting to me that the servce returns results in "funky" RSS 2.0 format (RSS 2.0 with Dublin Core elements for date and creator info) and Atom 0.3. I assume they can index any format, but I wonder: are Atom 1.0 feeds indexed by Google Blog Search and when will they start producing search results in Atom 1.0 format?
When I found out about the big Roller installation inside IBM, I urged the IBM guys to move to Roller 1.0 and to help out with Roller development. Well now, looks like that's happening (tho they're probably going to skip straight to Roller 2.0). IBM blogger Elias Torres has been participating on the Roller list, submitting patches (for Apache Derby and IBM DB2 support) and showing great interest in further contributions. So, I just want to say: thanks Elias!
Wondering what's going on with Roller and Derby? Elias has submitted a couple of patches, but Derby support is not quite there yet. I think there's a pretty good chance we'll be able to work out the issues in the 2.0 timeframe. One of the reasons I upgraded Roller to use Hibernate3 yesterday (the 2.X to 3.0 migration was quite a pain, BTW) was to help Elias along. He may have to fine-tune Hibernate's Derby and he'd much rather do that with a modern version of Hibernate (we were on Hibernate 2.1.4 before).
There have been a number of somewhat confusing announcements and threads regarding the open source licenses that are popular among Java developers: APL, LGPL, MPL and CDDL. Here's my take on a couple of those items.
Open office goes LGPL
The first announcement regards LGPL and SISSL. Sun has retired the SISSL and the Sun-sponsored Open Office project will be making all subsequent releases under the LGPL license. This doesn't mean that Sun is moving en masse to LGPL as at least one Java blogger seems to think. It just means that the OpenOffice folks decided that LGPL is the best license for their product.
JSF goes CDDL
The next announcement regards CDDL and JSF. Sun has released its Java ServerFaces implementation under the CDDL. Some Java sites covered this as news, but I don't think it is all that newsworthy. Sun had already released its J2EE implementation Glassfish under CDDL and J2EE now includes JSF, so most license savvy folks probably already assumed that JSF was under CDDL.
Apache and the LGPL
And finally, we come to the touchy topic of Apache and the LGPL. Apache is close to deciding a policy to define how LGPL components may be used in official Apache releases. Does this mean that Apache projects can now use and ship LGPL components. No, not yet. Cliff Schmidt announced the proposed policy and that policy was to be voted on by the Apache board on Aug. 17, but I've heard no news of this.
In case you're wondering what this might mean to Roller, the proposed policy allowed Apache projects to depend on third-party LGPL components but not to ship them. For Roller, that would mean that we can keep on using Hibernate, but we'd have to ask people to download the Hibernate jars separately from Roller. That's unpleasant, but it's not too bad, I guess. If you read the email thread that Cliff's email started you'll see that some folks would like to allow Apache projects to ship third-party LGPL components, but not to have hard dependencies on them. For Roller, that's actually worse. We'd have to support an alternative non-Hibernate implementation of the Roller backend. We've been there and done that (i.e. supported both a Hibernate and Castor/JDO backend) and it was not an experience that I'd like to repeat. I wonder what happened in that Aug. 17 board meeting.
I'd also hoped to answer the question posed by Geert Bevin on The Server Side: What's the best developer-friendly open-source license for Java products, but that'll have to wait for a later post.
As I promised at the start of the week, I've put together an easy to install "early access" build of Roller 2.0. The build is a standalone bundle that includes pre-configured Tomcat app server, HSQL-DB database and Roller packages. You should be able to get up and running by simply unzipping the package and running the startup script.
You can get the build here: roller20ea-demo.tar.gz
The purpose of this release is 1) to get feedback on the new Roller UI and group blogging features and 2) to allow folks to help out with testing. If you have feedback on the UI and new features, subscribe to the Roller user/dev list and discuss them with the Roller team. If you encounter bugs, please report them to Roller's JIRA issue tracker.
Here is the README that is included in the build:
ROLLER 2.0 EA DEMO RELEASE This is a totally unofficial demo and test release of the Roller blog server software. Roller is currently in the incubator at Apache, but this release is not sanctioned, approved or supported by Apache Software Foundation in any way. If you have problems with this release, please contact Dave Johnson at (davidm.johnson at sun.com) and/or report bugs to Roller's JIRA issue tracking database at the following URL: [http://opensource2.atlassian.com/projects/roller] INSTALLATION INSTRUCTIONS 1. Download roller20ea-demo.tar.gz from Java.Net 2. Unzip the file into a directory on your hard-drive (directory name should have no spaces) 3. Ensure that the JAVA_HOME environment variable is set to point to your JDK 4. Ensure that CATALINA_HOME and CATALINA_HOME are NOT set in your environment 5. To start Roller, either: - on Windows: open the Roller bin directory and double-click on startup.bat - on UNIX: cd to the Roller bin directory, chmod +x on all files, run ./startup.sh 6. Point your browser at http://localhost:8080/roller 7. Login as admin/admin, otto/otto or register as a new user 8. Get rollin'
BTW, I built the demo on my Solaris 10 box and tested it on Mac OS X 10.3.9 and Windows XP SP2.
One of the things that makes the Solaris X86 experience so pleasant is Blastwave.org. All the Solaris software I need, just a
pkg-get install foo away (with the notable exception of Java goodies -- but that's another story). So I'm saddened to hear that the volunteers who run the site can't afford to keep it going. They're calling for help, so help them out! They need a big sponsor, but small donations will help was well. Save Blastwave!
And don't forget to check with your employer. As Sun blogger Noel Franus points out, Sun Microsystems and other employers are matching employee donations.
I've been crazy busy on Roller 2.0 and unread emails and blog entries are piling up. Sorry if I haven't responded to you. I'm going to catch up tomorrow morning.
If you're waiting on Roller 2.0, here's the deal. The roller_2.0 branch is rapidly approaching stability, but there are still some rough spots and stack-traces lurking around the edges. Feature work is nearly complete and should wrap-up this week. I've been promising a snapshot build for the past month or so, but this time I mean it -- I will release a standalone demo/test build by the end of this week.
If you're wondering about RSS and Atom In Action, so am I. Writing is basically complete, except for chapter 8, which covers the Atom Protocol. The protocol list seems to be making progress, but it's going slow and it's looking like the next draft is going to be significantly different than the last.
That's all for now. Night all...