Tomcat doesn't suck

Damn straight!

Atom vs. RSS

Why can't we all just get along

The SourceBeat blogs.

I've got to say, the SourceBeat blogs, which are all hosted on JRoller, look great. Here is a list of the active SourceBeat author blogs, RSS feeds, and topics:

Russell demonstrates the power of plain old JSP.

Russell has been busy updating his minimalistic JSP-based Weblogging package, which he now calls MyBlog. He added an Atom feed and then added a single JSP page implementation of the Blogger, Blogger2, MovableType, and MetaWeblog APIs. It is amazing and a little scary what you can do with a single JSP. He mentions the complexity of the same API implementation in other Java blogging packages, Blojsom, Pebble, and Roller. I can't take credit for the Roller implementation, I stole it from Blojsom.

Roller 0.9.9 - here's to the complainers

As I have said before: here's to the complainers. Those who care enough to complain are an important asset to any software product. Hani is the king of whiny-ass complainers, of course. He can't do anything except complain, that is the charter of his blog after all and he is locked into his own stinky little cage, but I do still appreciate the constructive criticism that he makes in his recent weblog entry about Roller. Here are the improvements that he suggested, minus the childish and poorly written bile:

  • Editor UI: add a dismiss button to the popup calendar
  • Editor UI: document plugins in Roller user guide
  • Editor UI: provide comment count
  • Editor UI: the allow comments on entry flag should default to true (fixed)
  • Weblog search: add paging for lengthy search results
  • Weblog search: problem with search results?
  • Main page: Font sizes too large on main page (fixed)
  • Main page: List weblog name rather than user name in hot blogs list (fixed)
  • Main page: Provide option to view main page with out excerpts
  • Edit user page: default locale to en and timezone to America/New_York (fixed)

We will be deploying new Roller 0.9.9 builds to JRoller over the next couple of weeks and we may have the opportunity to make some of these improvements, but these are not the only problems we are tracking and the all-volunteer Roller development team has limited time to commit to Roller. If you really want to make Roller better, it's up to you. Roller is open source software and you can help to make it better by filing bug reports and suggestions to Roller's JIRA issue tracker, by submitting patches, and by helping out with documentation on the Roller Wiki.

Roller is the most popular and successful weblogging software among Java bloggers, was recently chosen by Sun to power, and is enjoyed by thousands of webloggers worldwide. Join us, help to ensure Roller's continued success, and make a difference in the open source Java community.

Testing Wiki support in Roller 0.9.9

Wiki syntax seems to be working just fine in Roller 0.9.9 as demonstrated by this fine quality Wiki-Blog post.

I'm not sure why your _entry page template is not working, Matt. Perhaps one of the macros you are using has a different call signature than it did in 0.9.8?

The good news is that, with Lance's improvements to the plugin pipeline, you no longer need that _entry page template to enable Wiki syntax. If you have the Wiki plugin listed in your web.xml and you have the Wiki Syntax checkbox checked on your Website:Settings page then you will see a Wiki Syntax checkbox in the Weblog Edit page. You can enable Wiki Syntax on a per Weblog entry basis by setting that checkbox.

By the way, Wiki support is not enabled on because there is no Wiki on

JRoller: Roller 0.9.9 upgrade complete

I have successfully upgraded to Roller 0.9.9. If you encounter any problems please report a issue on Roller's JIRA issue tracker located here:

  • For all users: Roller now supports locale and timezone settings for each user. You can set your locale and timezone on the Website->User page of the Editor UI.

  • For users (excluding Hani) who have customized page templates: if you added a call to $pageModel.getRecentWeblogEntries() in your weblog templates, you will need to add a second argument to the call. In Roller 0.9.8 the method took only one argument, an integer being the number of entries to return. In Roller 0.9.9, the method takes a second parameter, a string being the category of posts to be displayed. Pass in "/" to include all categories. For example: $pageModel.getRecentWeblogEntries(15,"/") would get up to 15 recent entries in all categories.

JRoller upgrade on for today.

I worked out the problems with the database upgrade scripts and code. I'll be upgrading JRoller in the next hour or two.

UPDATE: upgrade is underway.

MySQL update kills timestamp fields?

I've got a table that looks like this:

create table comment (
    id         varchar(48) not null primary key,
    entryid    varchar(48) not null,
    name       varchar(255) null,
    email      varchar(255) null,
    url        varchar(255) null,
    content    text null,
    posttime   timestamp not null,
    spam       bit default 0 not null,
    remotehost varchar(128) null
And I want to set the spam field in all rows to false like so:
update comment set spam=false;
But that command also resets all of the posttime fields in the table to the current time. If I use the following command, my posttime fields are preserved.
update comment set spam=false, posttime=posttime;
What's up with that? Why does an update of one field affect other fields?

JRoller upgrade this weekend and Roller 1.0 plans

I think Roller 0.9.9 is ready for prime-time and I plan on deploying it to JRoller this weekend. I spent the last couple of nights testing the upgrade process using a very recent copy of the JRoller database and I believe that I will have all of the glitches worked out by this evening. I will post an announcement here a couple of hours before I begin the upgrade, which I hope will take less than an hour.

The plan is to upgrade JRoller to 0.9.9, get feedback and bug reports, fix bugs, release, get feedback and bug reports, fix bugs, release Roller, and then repeat the process until we are ready to declare victory. Once we reach that point, we'll call it Roller 1.0 and release it on SourceForge.

The major new features of Roller 1.0 will be a new Editor UI, hierarchical categories, hierarchical bookmark/blogroll folders with OPML import/export, Atom API support, Atom newsfeed support, a new look-and-feel in the Web interface, lots of other features, and numerous bug fixes. Some of these features may be disabled in the Roller 0.9.9 cut that I will deploy this weekend.


Eric Sink: Microsoft's new enterprise-class source control tool was written from scratch by a team in the Raleigh-Durham area. The team is being led by Brian Harry, the guy who originally developed SourceSafe at OneTree before it was acquired by Microsoft.
So much for Vault. Seems to me, Eric made an error in choosing his competition.

PostgreSQL startup items for MacOS X

I followed the PostgreSQL installation instructions on Apple's site and got PostgreSQL up and running in no time. To make PostgreSQL start when MacOS starts, I had to do a little more work. I added a startup item as described in James Duncan Davidson's Running Mac OS X Panther. First, I created a startup item directory and used vi to create a parameters file:

root# mkdir -p /Library/StartupItems/PostgreSQL
root# cd /Library/StartupItems/PostgresSQL
root# vi StartupParameters.plist

Next, I guessed that PostgreSQL requires Directory Services and uses Disks and came up with this StartupParameters.plist file:

   Description = "PostgreSQL Server";
   Provides = ("PostgreSQL");
   Requires = ("DirectoryServices");
   Uses = ("Disks");
   OrderPreference = "None";

Finally, I wrote a startup script to start, restart, and stop PostgreSQL:

. /etc/rc.common
StartService() {
   echo "Starting PostgreSQL"
   sudo -u postgres /usr/local/pgsql/bin/postmaster -i -D /var/postgres/rollerdb &
RestartService() {
   echo "Restarting PostgreSQL"
   sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /var/postgres/rollerdb stop
   sudo -u postgres /usr/local/pgsql/bin/postmaster -i -D /var/postgres/rollerdb &
StopService() {
   echo "Stopping PostgreSQL"
   sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /var/postgres/rollerdb stop
RunService "$1"

Once I was done with that I tested starting, restarting, and stopping PostgreSQL using the SystemStarter command. Once the script worked, I rebooted and found that PostgreSQL did indeed start on startup. It works, but I wonder, is this the best way to configure service for Mac OS X? Davidson's book menioned xinetd and mach bootstrap servers, but says that the SystemStarter is the way to go for now.



VeloEclipse is a fork of the, apparently inactive, VeloEdit project that has been updated to work in Eclipse 3.0 M8 and later.

Roller wish list

A number of folks have been taking a closer look at Roller and making note of the various problems and shortcomings that they encounter. Henri Yandell put together a list of Roller Grumbles, Michael Koziarski posted some notes on evaluating Roller, and, as a result of new feature discussions on the Roller-Dev mailing list there is now a Roller Wish List on the Roller Wiki. Drop by the mailing-list or the Wiki and make your voice heard.

Eclipse 3.0 M9

New JRoller blogger Vlad Hanciuta posts some first impressions of Eclipse 3.0 M9.

« Previous page | Main | Next page »