apache apachecon app apple asf atom atomprotocol atompub barcamprdu blogapps blogging businessblogging conferences family feeds foss general glassfish google humor ibm java javaone links linux mac microsoft movies music netbeans opensocial opensource photos politics rest roller rome rss socialnetworking socialsite socialsoftware sun triangle trianglebloggers vacation webdev webservices wiki
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.
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:
I've been trying to figure out why Mozblog will not work with Roller's Blogger API implementation. I haven't had much luck, but I have again come across an irritating little issue with the Servlet API request.getRequestURL() method. I'm calling on the blog support line for advice.
Tomcat/Servlet experts, what do you make of this comment from Roller's RollerContext.getContextUrl() method?
// If you are running Roller behind a foreground server, // then your Servlet engine may be operating on a different // port than your forground server. For example, I run Roller // on a Tomcat background server that operates behind an // Apache foreground server. My Apache server is on port 80, // but my Tomcat server is on port 1003. // // If this is the case, then request.getRequestURL() may // return a URL that is valid but that includes an unsightly // and unnecessary port number that you would rather not // include in weblog permalink. In other cases (e.g. you are // running a standalone Tomcat instance on port 8080) the port // number is essential. // // To deal with this the Roller getContextUrl() method uses // a configuration parameter to determine if it should include // a port number. It calls request.getRequestURL(), parses apart // the result, and builds a context URL suitable for use in a // permalink with or without a port number.Is that clear? Is there an easier way to deal with this issue?
I've noticed that some bloggers refer to each blog entry as a blog. I think this is a UK thing (and therefore it is wrong ;-) but I'm not sure.
Chris Winters: Reading Blogs. "I like having context for blog entries: seeing the layout, surrounding entries, photos and so forth. I like knowing who is writing a particular blog, which is why I get ticked off when someone doesn't readily identify themselves on a blog."
I keep on going back and forth between reading blogs via an aggregator, via a bookmarked group of tabs, and via java.blogs. I keep on returning to the group of tabs approach because it is the best way to hit all of the blogs on my reading list and to read each in context.
I don't like the way that some blogs show you a permalinked blog entry by only showing you that one entry, alone on a page, and sometimes with comments. Blog entries do not always stand alone.Until yesterday, I was enjoying my time off, finishing up Christmas shopping, and spending time with friends back in town for the holidays. I had no time for blogging. Now the whole family and I are suffering from a godawful and highly contagious stomach bug. Little Leo spent his 6th month birthday going in and out of fever with hives. Thankfully, he has been able to keep his mommy milk down, he has avoided dehidration, and he remains happy as a clam.
I have not been so lucky. I spent most of the night tossing and turning, with an emphasis on tossing. What a drag. Now you know why I have not been posting and why I had to miss the RTP bloggers lunch today.Apparently the trick to getting a large number of hits from java.blogs is to mention an IDE, especially Eclipse, or, if that fails, insult Andy Oliver. Don't worry, I will use this new found power for good.
I'll tell you about a new blog on my java.blogroll: Erik Hatcher. As Matt Raible pointed out the other day, Erik is an Ant guru, author, and speaker. As Sam Ruby pointed out, Erik is rewriting Rael Dornfest's minimalistic Blosxum (pronounced "blossom") blogger in Java. Erik is using the Lucene search engine for blog entry storage, thus the name Blogscene. Cool stuff.
I also added Matt Croydon, whom I know less about but have reading regularly for a couple of weeks. I'm looking forward to meeting Matt at the next RTP bloggers lunch on Monday. He is driving down from the D.C. area.
Speaking of RTP bloggers, Mark Pilgrim now has a monthly column on O'Reilly's XML.com site called Dive into XML. Check out his first column What is RSS?. Congratulations Mark!An IBM-backed Java tools initiative could be yanked back into Sun Microsystems Inc's sphere of influence, to heal a potential community rift, through efforts lead by Oracle Corp, writes Gavin Clarke [The Register].Despite the ridiculous sounding introduction, the article in fairly interesting. As I have mentioned before, Oracle is pushing for a standard IDE plugin-API so that Eclipse does not become the universal standard tools platform. However, this doesn't line up with that effort:
"[Members] want to drag Eclipse back in-line with Sun... SWT versus Swing has put some tension in the organization." [Ted Farrel, Oracle]He can't be suggesting that IBM rewrite Eclipse using Swing, that would be crazy, so he must be suggesting that SWT becomes part of Java.
I wrapped up my first draft of 'Data Access with JDBC' last week and tonight I submitted 'Performance and Debugging' to WROX. Overall, I am pretty happy with the two chapters. I was able to apply what I learned while working on the application server development team at my current job and what I learned from developing, deploying, and supporting Roller. Writing the chapters was a hell of a lot of work and I really had to lock myself away from family and friends to get the job done, but it was also a lot of fun.
Tomorrow is my last day of work until January 6th and I have no big travel or vacation plans this Christmas. I bet WROX won't get back to me until after the new year and so I'll have lots of free time to spend with the trio of little tikes, hack around with Roller, and think about new directions for 2003.
This work is licensed under a Creative Commons License.
Copyright 2002-2007, David M Johnson (dave.johnson at rollerweblogger.org)
This is a personal weblog, I do not speak for my employer.

Buy now from Amazon.com
Or direct from Manning
| « December 2002 » | ||||||
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
6 | ||||||
8 | ||||||
20 | 21 | |||||
22 | 26 | 27 | ||||
| Today | ||||||
Allen Gilliland
Anil Gangolli
Dan Axon
Danese Cooper
Film Babble Blog
Geertjan's Weblog
Henri Yandell
James Robertson
Jim Grisanzio
Josh Staiger
Linda Skrocki
Pat Chanezon
Rama
Ruby Sinreich
Simon Phipps
Tim Bray
Will Snow
Janne Jalkanen
Joe Gregorio
Matt Raible
Mike Cannon Brookes
Rafe Colburn
Sam Ruby
Simon Brown
My other sites