Blogging Roller

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


Don Park rags on Roller.

What a jackass and he is totally wrong. We don't ship 50 jars, we ship 49! I do wonder how many of those 49 jars could be deleted without affecting Roller. I just got back from Kill Bill, so perhaps it is time for some hack and slash on the WEB-INF/lib folder. Update: I was able to reduce the number of jars from 49 to 34. Of the 34 remaining jars, 9 belong to Struts and 6 belong to Hibernate.

Tags: Roller

Rollin' at work with PostgreSQL.

I finally got around to installing Roller at work. How did I justify this narcissistic activity? I'm responsible for our product's internal demo site and what better way to keep the sales force up on the latest code drops than a Roller-driven weblog. It took me about 30 minutes to install Roller, get it working with PostgreSQL (my group's open source database of choice), and hack together a nice corporate theme. One minor problem: the Roller main page is broken under PostreSQL, but I don't really need it so I disabled it for now. Maybe somebody else has alredy solved this problem. Anybody else try Roller 0.9.8 under PostgreSQL?

Tags: Roller

Roller 0.9.8.1 released.

Roller 0.9.8.1 is just a bug fix release. Change-list, source, and binaries are available on SourceForge. Thanks to everybody who took the time to submit a bug and to Atlassian who helped us manage the issues. Don't forget: report JRoller account and sys-admin issues to the JRoller JIRA and report Roller Weblogger bug reports and enhancement requests go to the Roller Weblogger JIRA.

Tags: Roller

FIRST POST!

The new bloggers are rolling in over at JRoller. It is amazing and a little scary. Some of the bloggers do not seem to have any idea what a blog is. I'm sure this will result in a lot of ghost blogs, but I'm also sure that we'll see some great new blogs popping up.

Tags: Roller

It's official.

Rick Ross: it is my great pleasure to announce that we have formally adopted the Java-powered and Java-centric blogging system formerly known as "FreeRoller.net" and begun the process of re-launching it as "JRoller.com."
Thanks to Rick Ross, Matthew Schmitt, Anthony Eden, and the Roller contributors for making this happen.
Tags: Roller

Progress on Roller 0.9.8.1.

I've been making progress on a series of bug fixes for Roller 0.9.8. You can check the progress on Roller's JIRA issue tracker.

I just deployed Roller 0.9.8.1-dev to this site to test the new RSS 2.0 template. The old template was based on a very old Mark Pilgrim template and it used a bunch of Dublin Core elements like <dc:date> and others - it was pretty funky. If you complained that all posts appear to be new posts on JRoller, this site, and other Roller-based blogs then please give my new feed a try. Does this change fix the problem?

There are still a couple of issues to be resolved, so I'm not quite ready to deploy anything to JRoller.

Tags: Roller

Blojsom vs. Roller.

I just received an email that asked the question "could you please tell me the differences between Blojsom and Roller Weblogger? Which one is better or what could you tell me about these both projects?" Below is my reply.

I think the main advantages that Roller has over Blojsom are full multi-user support and a web-based UI for editing blogs, managing bookmarks, configuring blogs/themes, and for configuring the system. Blojsom doesn't have an extensive web-based UI like Roller's. The main disadvantage of Roller is that it requires a database and this requirement makes installation and maintenance a little more difficult. If you are going to build a community site like ruckyou.com or jroller.com, then Roller seems like the obvious choice. For comparison: the Roller Installation Guide and User Guide.

The main advantages that Blogsom has over Roller are that it is small, easy to setup, has an extensible architecture with excellent support for plugins. One example: with Roller, your page templates must use Velocity macros. With Blojsom, there are a number of plugin options for page templates. If you are going to run a single user blog, you don't want the hassles of setting up a database, and you are happy without a web UI for managing your blog, then Blojsom seems like the obvious choice. For comparison: the Blojsom Installation/User Guide

If you looking for a good blogging tool, you might want to widen your search. Is there a reason that you are looking only at Java-based blogging software? If you are a Java programmer and you want to be able to customize your blogging software or contribute to it's development then Roller or Blojsom are good choices. If you are techically saavy, you want to setup you own bogging software on your ISP's site, and you don't care what language was used to write the blogging software, then expand your search to include other choices like MovableType. If you don't want the hassles of setting up your own blogging software then look at JRoller, Blogger, Typepad, or one of the other blogging services.

Tags: Roller

Obligated to serve.

OK, we don't know what the JRoller terms of service are going to be, but now is definitely the time to take a stand against the giant freedom hating global JavaLobby comglomerate that has taken over FreeRoller. As Chiara has pointed out, JavaLobby is obligated to provide free weblogs, free bandwidth, free file storage, free system adminstration services, and free support to anybody and everbody who wants a weblog - all without charging a dime to anybody, placing any advertisements, or restricting anybody elses right to place advertisements. If JavaLobby somehow weasels out of this obligation, then Anthony Eden must do it. He should be put under house arrest and forced to again serve the community that he started. If Anthony escapes house arrest, then the Roller authors should be put into bondage, have their assets siezed, and be forced to comply with Chiara's every wish. As I have said before: if, at this point, you do not know that I am kidding, then you are an idiot.

Tags: Roller

JRoller.com.

Some have noticed that FreeRoller has become JRoller and some have started to wonder just what in the blue blazes is going on. Fear not Java bloggers, good things are happening. The JavaLobby will probably be making a more formal announcement at some point, but now that the cat is out of the bag, I'll give you my take on this story.

Now that the Roller software that drives the site has proven itself, JavaLobby is stepping in to support, administer, and nurture the JRoller community. JavaLobby is putting in place scheduled backups, issue tracking (via everybody's favorite: JIRA), and customizations to tie JRoller into the JavaLobby community. I'm going to take an active role, along side other JavaLobby volunteers, in the support of JRoller.

Here are a couple of anticipated FAQs:

Why is the JavaLobby doing this? Blogging fits in perfectly with the JavaLobby charter because it gives individual Java developers a voice and a platform for sharing, learning, activism, and community building.

What does this mean to JRoller users? With JavaLobby backing and support, JRoller users can expect better levels of service and better support. JRoller will remain free and there are no plans for adding or allowing advertising on user weblog pages or RSS feeds.

What does this mean to the Roller Weblogger software? As before, Roller will remain a separate an independent product and project, but Roller releases will now be tested on JRoller (as we did with Roller 0.9.8) before they are released on SourceForge. JRoller will remain on the bleeding edge of Roller development, sound like fun?

What about the links to my blog, will they be broken? FreeRoller founder Anthony Eden has agreed to continue to point the FreeRoller domain at JRoller so that FreeRoller links will remain valid, but requests are are now being redirected to JRoller.com. I encourage you to start using the new name JRoller and the new URL in your links to JRoller based blogs.

Tags: Roller

Mr. Roller

is happy and I'm going to go canoeing. See you next week.
Tags: Roller

Fixing Roller.



A number of people have asked how Freeroller suddenly became so fast and so stable. The answer is Roller 0.9.8. Freeroller had been running Roller 0.9.7, which had a history of performance and stability problems from the start.

The first problem we experienced with Roller 0.9.7 wasn't noticed by the users, but our gracious hosts at The Javalobby noticed an unusually high load on their server coming from the Roller and MYSQL processes. Later, as the number of bloggers blogging and readers visiting the site grew, users started to notice unpredictable behavior. Spurious 404 errors, sluggish performance, and frequent downtime started to irritate everybody.

Roller 0.9.8 seems to have resolved all of these problems. Let's take a look at the changes made since Roller the initial 0.9.7 release starting with the changes that were applied to Freeroller before the Roller 0.9.8 upgrade:

  • Caching weblog update times. Because Roller uses page caching, most content is served out of the page cache and for most requests there is almost no need to hit the database. For most requests we only hit the database to bump up hit counters and to determine last-update-time for RSS newsfeeds. Still, Roller was killing MYSQL and the load from Roller and MYSQL was dragging the Javalobby server down. Since RSS newsfeeds account for more than 60% of all traffic, I decided to cache those last-update-times. Javalobby noticed an improvement in load, but load was still a little high.
  • The Open session in view pattern. With new users signing up every day and a number of more high-profile bloggers starting to draw in the hits, Freeroller really started to drag and users started to notice. The Roller development team started to wonder "what have we done wrong?" We eventually concluded that Roller uses too many persistence sessions, which roughly correspond to database connections, per request. Lance implemented the open session in view pattern in the Castor and the Hibernate persistence implementations in the Roller main branch. I backported the changes to the Roller 0.9.7 branch and deployed them to Freeroller only to find a minimal performance increase.
  • OSCache 2.0-beta upgrade. Around that time, the OSCache team relased a beta of OSCache 2.0 and Hani told me that the old OSCache was rubbish and had a terrible memory leak, so I switched Roller and Freeroller over to the new OSCache, configured it for memory caching plus unlimited disk cache, and noticed a pretty big leap in performance and decrease in system load. Still, the stability was poor and spurious 404s continued.

Those changes were important changes, but they did not fix the performance and stability problems. Now, let's move on to the changes that were added by the Roller 0.9.8 upgrade:

  • Numerous small fixes. While I was fussing with Freeroller and Roller 0.9.7, Lance and Min were looking for further performance improvements in the Roller 0.9.8 branch. Min fixed the Roller calendar control to keep it from hammering the database as it use to. They both worked to change the persistence layer interfaces to return lists instead of arrays, since both Castor and Hibernate return lists, list to array conversions are just silly in this case.
  • Database indices. At some point during Roller 0.9.8 development somebody (Jim Smart?) contributed a patch for the Roller database creation script and added indices where indices were missing. I didn't think much of it at the time, but this was a pretty significant change.
  • Hibernate/JCS caching. Freeroller was getting worse and worse, even causing Freeroller founder Anthony Eden to leave and, believe it or not, even causing the Hibernate team to feel the heat. Some were suggestingthat perhaps Hibernate did not scale. Gavin King stopped by the Roller dev-list and suggested that we try using proxies and JCS caching. I didn't get far with proxies, but it was easy to turn on JCS caching. Unfortunately, JCS caching by itself didn't seem to help much.

So, what change made the big difference in performance? It can't have been only update-time caching, open session in view, and OSCache 2.0 changes because they were all in place before the Roller 0.9.8 upgrade. It can't have been Hiberate/JCS caching because stress testing showed that JCS actually slowed down the system a bit. All of these fixes played a part in the performance improvements, but because of the greatly reduced load on MYSQL I think the database indices made the biggest difference.

Tags: Roller

One year ago today.

The Roller vs. WebloggerZilla fiasco ended peacefully.
Tags: Roller

Roller 0.9.8 is available.

This new Roller release provides a dramatic performance increase due to addition of database indices, proper use of persistence sessions, and a new version of OSCache. New features include Weblog.com ping and integrated Lucene weblog search. Thanks to all that helped out with the release. For details, see the change notes. You can download the release from the project's SourceForge download page.

Tags: Roller

Roller 0.9.8 on the way.

The FreeRoller performance and stability problems seem to be behind us, so I'll be making a the Roller 0.9.8 release this weekend. A number of people have asked how we achieved the dramatic performance increase on FreeRoller, so I'll try to summarize the performance fixes that were made between 0.9.7 and 0.9.8 in a later post.
Tags: Roller

Hurricane.

Today was cool and clear fall day here in North Carolina. No sign of the approaching storm. I live in Raleigh which is a couple of hundred miles from the shore, but the storm could track close enough to us give us a dose of 60 mile-per-hour winds, power outages, and downed trees. I'm hoping that the two giant oak trees in our yard will survive and will not land on our house. My hurricane preparations? I stowed all of our lawn furniture, bought extra charcoal for the grill, and bumped up the maxProcessors thread-count on FreeRoller from 75 to 200 threads.
Tags: Roller

Guidelines for setting Tomcat's maxProcessors parameter?

I've been googling around for some guidelines for setting the number of request-processing threads on a Tomcat site. So far, I've found nothing. FreeRoller had been set for 75 threads, but it seems to run out at that level. Does this by itself indicate a problem or is 75 threads too low for a relatively high volume blog site like FreeRoller?
Tags: Roller

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.

Tags: Roller

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?

Tags: Roller

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.

Tags: Roller

« Previous page | Main | Next page »