A not so brief history of Roller.

Roller started out in Spring 2000 as a project named "Homeport".  I started Homeport to teach myself about EJB programming.  At the time, I knew nothing about weblogging, RSS, and all of that jazz.  Below is the opening paragraph from my May 2000 Homeport design document.

A HomePort is a cross-between a homepage and a portal, sort of a personal portal for you and for those you wish to share news and favorite links. Your HomePort page can be configured to serve as your homepage -- your web browser's start-up page, with all of your favorite bookmarked links and a Java applet that allows you to search all of the major search engines and directories. It can also serve as your personal portal -- the place where you share news stories, interesting URLs and other easily-updated items.

Sounds a lot like weblogging software, doesn't it?

So, working in a vacuum without knowledge of weblogging, I invented weblogging.  You know what I mean: I invented weblogging like Columbus discovered America.  If you ignore the fact that indians, native americans, aztecs, etc. had been living in the Americans for thousands of years and had in fact built entire civilizations there, the statement 'Columbus discovered America' is a true one.  So, I invented weblogging and now I'm in the process of pushing the aboriginal webloggers west and eventually into little reservations where they will no longer bother me with talk of <cite> tags, RSS 2.0, trackback, and other stuff that I will soon invent.  This is totally fair of course, because I discovered weblogging.  At this point I would like to point out that, if you don't know that I am kidding then you are an idiot.

Anyhow, back to Roller, er, I mean Homeport.  I wrote a design document for homeport, I drew diagrams of the data model, and I even mocked up an interface using the HAHTsite IDE.  Below is one of those artifacts.  Normally, I hate the word 'artifact' in regard to software development, sooo pretentious, but this really is an artifact: an old and dusty relic dug up from days gone by.

Homeport in HAHTsite

By April of 2001, I had a working prototype of Homeport that used EJB for persistence.  I was using the Borland EJB container and XDoclet, but I had not yet learned of Value Objects, Session Facades, Business Delegates, and other patterns necessary to make EJB performance acceptible.  Homeport was as slow as molasses and I was pretty discouraged.  Eventually, I learned how to use the Business Delegate and Value Object patterns to solve my performance problems and to hide the EJB APIs from my application.  Once I did that, I found that I could ditch EJB entirely and EJB was becoming tiresome so that is what I did.  I implemented the whole Business Delegate and Value Object dealio with Castor. 

The project that I started to learn the wonderful and resume-enhancing EJB technologies eventually taught me that EJB is a tiresome pain in the ass.  I believe that is called irony.  Maybe there is some class of applications for which EJB is well suited, but maybe not.  I'm pretty sure that the intersection of the fun-hobby-projects and the EJB-class-applications sets is an empty set, at least for me.

During the Summer of 2001, I happened upon the aboriginal bloggers. I discovered Dave Winer's weblog and Radio UserLand. I started a weblog, but I did not know what to write about and so it withered and died. I greatly enjoyed Winer's blog and I was pretty intrigued by the Radio software, but I thought that the desktop app's UI was horrible and I had absolutely no interest in learning some weird proprietary and single-purpose scripting language. I decided that, if I added templates to Homeport, I could replace Radio and so I started working on Homeport with renewed vigor. Homeport would be something to write about.

As I worked on Homeport, I started to realize that there are a tremendous number of excellent open source Java development tools. I was amazed by strengths of Ant, Struts, Velocity, and Castor. These tools were awesome and when tied together with XDoclet, they formed a complete development environment better than anything that I'd seen during my time working in the dev tools groups at Rogue Wave or my current employer.  I decided that I should write a magazine article about these tools and use Homeport as the example.

By February 2002 when I submitted the article to Java World and OnJava for consideration, I had renamed Homeport to Roller and had finished the majority of the development work. I can't remember why I renamed Homeport or why I chose the name Roller. On April 5, 2002 I made the first release of Roller, version 0.9.0, available on SourceForge. On April 11, 2002 I started a Radio-based weblog to help publicize Roller. The rest is history and is well documented on my weblog, so I don't need to write anymore. Here are some of the significant dates in that history:

Main | Next day (Jan 1, 2003) »