Blogging Roller

Dave Johnson on open web technologies, social software and software development


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.

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:

  • April 5, 2002: Roller 0.9.0 released
  • <a href= "http://www.rollerweblogger.org/page/roller/20020410#p_startfragment_first_post_p">April 10, 2002: Blogging Roller started as a Radio blog
  • <a href= "http://www.rollerweblogger.org/page/roller/20020419#p_i_was_out_of">April 17, 2002: <a href= "http://www.onjava.com/pub/a/onjava/2002/04/17/wblogosj2ee.html">Building an Open Source J2EE Weblogger published
  • <a href= "http://www.rollerweblogger.org/page/roller/20020429#p_i_ve_gotten_a">April 29, 2002: Roller 0.9.1 released
  • <a href= "http://www.rollerweblogger.org/page/roller/20020608#font_size_2_b_roller">June 19, 2002: Blogging Roller goes live on CQHost
  • <a href= "http://www.rollerweblogger.org/page/roller/20020621#leo_michael_johnson">June 21, 2002: Leo is born
  • <a href= "http://www.rollerweblogger.org/page/roller/20020630#i_m_back1">June 29, 2002: I move Blogging Roller from CQHost to <a href= "http://www.kattare.com/index.kvws?referer=roller">Kattare
  • <a href= "http://www.rollerweblogger.org/page/roller/20020701#strong_font_size_2_roller">July 1, 2002: Roller 0.9.3 released
  • <a href= "http://blogs.application-servers.com/blogs/page/dgirard/20020731">July 31, 2002: <a href= "http://blogs.application-servers.com/blogs/index.jsp">blogs.application-servers.com announces beta
  • <a href= "http://www.raibledesigns.com/page/rd/20020801#roller_installed_successfully">August 1, 2002: Matt goes live!
  • <a href= "http://www.rollerweblogger.org/page/roller/20020807#welcome_to_lance_lavandowska_and">August 7, 2002: Matt and Lance join the Roller project
  • <a href= "http://roller.anthonyeden.com/page/aeden/20020807">August 7, 2002: Anthony Eden starts offering Roller accounts for free
  • <a href= "http://brainopolis.dnsalias.com/roller/page/lance/20020822">August 22, 2002: Lance goes live!
  • <a href= "http://www.rollerweblogger.org/page/roller/20020831#roller_0_9_5_released">August 30, 2002: Roller 0.9.5 released
  • <a href= "http://www.rollerweblogger.org/page/roller/20020920#weblogger_com_update">September 20, 2002: Weblogger.com threatens to sue, then backs down
  • <a href= "http://www.rollerweblogger.org/page/roller/20021022#roller_0_9_6">October 22, 2002: Roller 0.9.6 released
Tags: roller

Year in review.

Karl Martino put together a nice collection of year in review links.

Tags: General

Christmas loot.

My wife and I decided not to exchange gifts this year.  I had been warned by other males that this type of arrangement would not work, but I have the (apparently) rare and wonderful sort of wife that does not like to shop, does not like jewelry, and really truly did not want me to buy her anything for Christmas this year.  So I didn't.  Instead I bought myself a couple of "work" books: Learning the bash Shell (so I can ween myself from csh) and Essential XML (so I can fill in the giant gaps in my XML knowledge base).

For Christmas, I recieved a Borders gift certificate.  I used it to order Java Development with Ant and Struts in Action.  I also recieved a nice little stack of CDs from my brother including: The Clash/This is Live Clash, Big Star/What's Goin' Ahn, Elvis Costello/Cruel Smile, The Cure/Greatest Hits, and Bill Hicks/Dangerous. I've ripped and listened to them all. All are excellent, although 'This is Live Clash' is a bit rough (to be expected, of course).

Tags: General

MozBlog success!

I was able to get MozBlog to work with my local copy of Roller 0.9.7-dev. The problem was in the Blogger API getUsersBlogs() method. Roller was returning an empty string for each user's blog URL. One blogger client (w:bloggar) had no problem with that, but MozBlog choked on it. Next, I'm going to try to get blog titles titles to work via MozBlog and w:bloggar. I think this can be done without going to Blogger API 2.0, but I'm not absolutely sure about that yet.

Tags: Roller

Unsightly Tomcat port number issue.

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?
Tags: Java

"blog entry" vs. "blog"

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.

Tags: Blogging

Reading blogs in context.

Chris Winters: <a href= "http://www.cwinters.com/News/show/?news_id=764">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 <a href= "http://www.javablogs.com">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.
Tags: Blogging

Let's get physical.

Boy, Jeremy Zawodny sure is easy to irritate. I think the word physical refers to the physical layer of a network. If your database is remote, then a new database connection may require a new network connection. Don't forgo connection pooling just because you are using MySQL, you will still gain significant benefit from using a connection pool.

Tags: Java

Dollar store christmas presents.

We had a very nice Christmas eve dinner in Chapel Hill with my parents, known as G'ma and P'pa by the kids, and my brother Dan.  We had dinner and dessert and opened presents.  This year the kids received lots of Lego sets and lots of Rescue Hero toys.  They were unbelievably excited!  It was interesting how they reacted to the toys.  Alex had a pretty good idea of what he would get, he knew what he wanted, and he was really happy to finally get what he had asked for.  Linus, on the other hand, did not remember what he had asked for, enjoyed the act of opening presents, and was very disappointed when the flow of presents stopped.  He seemed disappointed with his presents and said, this was a "horrible Christmas, all I got were Rescue Heroes."  He was just whining of course, because ten minutes later he was saying that Resue Heroes were the best presents in the world.  I think that Alex reacted the same way last year, so I guess it is just a "phase."

We tried something new this year.  We asked the boys to select and purchase with their own money presents for all of the family members who would be at Christmas.  Being only 4 and 6 years old, they do not have a lot of money and so, they did their shopping at the one-dollar store where each and every item costs only one dollar.  This was Andi's idea and it was a great idea.  

I took Alex to the dollar store.  Everything was going fine until it was time to buy Linus' present.  Alex did not want to buy Linus something nice.  I guess he was trying to preempt jealousy.  I would say "Alex, how about this cool motorcycle" and he would answer "no Dad, he would like these little gray balls."  Even the lady who was stocking the shelves noticed that he did not want to get his brother anything nice. Finally, I had to pick something for Linus.  Money was the next problem.  I asked Alex for his money, his lifetime savings of eighteen dollars.  He was so shocked and disappointed that he would have to use his own money to pay for the presents that he wanted to drop the shopping basket and return home.  I convinced him not to do that by telling him that he could also use his money to buy something for himself.  He picked up a bag of 300 tiny toy soldiers and went to the register to pay.

Andi took Linus to the dollar store and he was more than happy to buy Alex a present, in fact he wanted to buy Alex lots of presents.  Alex and Linus are so different!  Alex is independent, a bit of a loner, and a little selfish.  Linus is more dependent, outgoing, very sharing, and generous.  I don't think this is just a phase.

At Chrismas, the boys were very excited to see everybody open up the presents that they had chosen.  They did a great job of chosing presents to suit the different people in their live.  The one dollar presents turned out to be the most meaningful presents of the day.

Tags: family

I'm back.

I'm back and getting geared up to do some Roller work again. I'll probably start out by upgrading to Eclipse 2.1 M4 tonight, then who knows? I still need to address the FreeRoller main-page performance problems. I'll also be catching up a bit on blogging, which I have been neglecting.

Tags: Roller

Santa says:

ahhh goo!

Leo as Santa

I say: I'll be back this weekend.

Tags: family

Christmas eve.

We have all recovered from the tummy bug and have resumed holiday fun. Now we are off to my parents house for a Christmas eve dinner. Alex (6) and Linus (4) are so excited that their feet rarely touch the ground and when they do, only tippy toes come in contact with carpet. We are off. I hope to post a picture of our little Santa later tonight or tomorrow. Until then, Merry Christmas to all and to all a good night!

Tags: family

The only band that mattered.

The Clash

Rest in peace, Joe.

Tags: music

Holiday fun laid low by tummy bug.

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 <a href= "http://dictionary.reference.com/search?q=godawful">godawful and <a title="you can't even sail close to NC without getting sick" href= "http://www.pilotonline.com/military/ml1220sic.html">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 <a href= "http://www.quinion.com/words/qa/qa-hap1.htm">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 <a href= "http://radio.weblogs.com/0104308/2002/12/23.html#a2858">RTP bloggers lunch today.
Tags: family

The Two Towers.

Here is my review: awesome, spectacular, beautiful, and a great movie. Ebert gave it three out of four stars.

Tags: General

Eclipse and that jerk Andy.

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 <a href=" http://www.freeroller.net/page/acoliver">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 <a href= "http://www.raibledesigns.com/page/rd/20021218#erik_hatcher_s_blog">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 <a href= "http://www.raelity.org/apps/blosxom/">Blosxum (pronounced "blossom") blogger in Java. Erik is using the <a href= "http://jakarta.apache.org/lucene/docs/index.html">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!
Tags: Blogging

PC Mag: Linux vs. dot-Net Server

Is .Net the right Choice? - PC Magazine compares .Net Server 2003 with Linux.

Tags: Microsoft

Fat, slow and vulnerable.

WIRED says Microsoft is The New Electric Company

Tags: General

Eclipse yanked back in.

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, <a href= "http://www.theregister.co.uk/content/53/28615.html">writes Gavin Clarke [The Register].
Despite the ridiculous sounding introduction, the article in fairly interesting. As I have mentioned <a href= "http://www.rollerweblogger.org/page/roller/20021113#i_really_missed_the_point">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.
Tags: Java

First drafts are done!

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.
Tags: General

Main | Next page of month (Dec 2002) »