Roller 4.0

posted 08:25PM Dec 12, 2007 with tags opensource roller weblog by Lars Trieloff

Congratulations to the Apache Roller team for releasing Roller 4.0. Now, all I have to do is updating weblogs.goshaky.com....

JCR for Roller

posted 01:28PM Nov 22, 2007 with tags jackrabbit jcr jspwiki microsling opensource roller sling weblog wiki by Lars Trieloff

Dave Johnson's wrap-up of the ApacheCon contains some interesting pieces: Of course he mentions the Shindig proposal, which I hold as one of the most interesting developments in the social networking space and he has written a longer paragraph on combining Roller (the weblog software) and Jackrabbit (the JCR repository that is the core of Day's CRX).
The idea of using a content management system to store Roller content keeps on coming up. At ApacheCon EU earlier this year, I spent some time talking to Lars Trieloff (who now works for CMS vendor Day Software) about implementing the Roller back-end interfaces using the Java Content Repository (JCR) APIs instead of the Java Persistence API (JPA) that we use now.
My rationale then was, to allow true free form collaboration in Mindquarry, we needed a weblog system. Mindquarry is based on Jackrabbit and I did not want to open another repository backend then, so I thought about creating a JCR-based backend for Roller that would easily integrate with Mindquarry.
At this ApacheCon, Noel Bergman brought up the topic a couple of times and pointed out that Day Software, has blog and wiki modules that are both backed by JCR. We could do the same thing: create version of Apache Roller and Apache JSPWiki (incubating) that share the same content repository.
The main advantage is that Roller and JSPWiki are content-centric applications. Every well-designed content-centric application moves sooner or later into the direction of having a separate repository layer. In JSPWiki the repository-layer allows you to have different backends, from flat files, to RCS to Apache Roller. In Roller there is a domain-specific repository implementation that is called "model", but if you have read my recent posts on microsling, you will note that using Model-View-Controller (MVC) for content-centric applications is disgusing the content-centric nature of the application, which would need a Content-Behavior-Appearance (CBA) model.
Later, Jukka Zitting (who also works for Day Software), suggested the idea of implementing JPA itself with JCR, thus allowing Roller to store its content in a CMS in a totally transparent fashion. This topic is interesting to me, but I don't fully understand the benefits of backing blogs and wikis with JCR. What new use cases would this support? How do the interesting features of JCR, like versioning for example, bubble up through Roller -- especially if Roller is to support both RDBMS and CMS back-ends?
I had a chat with Jukka yesterday in which he pointed out that implementing JPA based on JCR could be a very-cost effective solution and it might be the ideal way to go to migrate applications stuck with relational or object-relational backends to a content-based backend. Of couse, you would lose many of the advanced features that JCR offers you like full-text-search, observations, versioning because you have to mainatain backwards-compatibility to relational databases.

As always, this is a questions of frameworks and the right time to start a project. When the Roller project was started, there was no JCR, no Sling and no practical and standardized way of implementing content-centric-applications. With this in mind, it is easy to map some of the features JCR is offering to the needs of a blog application:

versioning
keeping all versions of a blog post, allowing incremental writing and backup
observations
notifications for new comments
workspaces
having a draft and a publish area for posts
hierarchy
posts belong to weblogs, comments to posts, etc.
export
backup
queries
tagging, categories, full-text-search

Disclaimer: I am Day's product manager for collaboration products, namely Blog and Wiki and I am a long-time user of Roller and JSPWiki. This blog post was written on Roller, using the JSPWiki plugin.

| Comments[1]

Coming soon: BlogBridge Pub Service for micro publishers

posted 02:27PM Feb 10, 2007 with tags blogbridge blogs cool roller by Lars Trieloff

Check out this post from BlogBridge:
If you write or contribute to a blog or publish your work and commentary somewhere then we you will be interested to hear about the BlogBridge Pub Service. Ed: Yes, we did change the name from Pro to Pub after some feedback]

We’ve found that many of our users like BlogBridge for the same reason that we like it: you read (or follow) lots and lots of blogs and want to be as efficient as possible doing this. And why do you read so many blogs?

(from: Coming soon: BlogBridge Pub Service for micro publishers)

 This post was written using the new publishing feature in BlogBridge 4.4 (you need to use the weekly release, available for Java WebStart). And thanks to the stellar work of Aleksey Gureev and the BlogBridge team the latest 4.5 Snapshot of BlogBridge supports Roller, which allows you to publish to Goshaky Weblogs, JRoller.com, blogs.sun.com and many more.

How to get Your Roller 3.0 Blogroll in OPML format

posted 09:44AM Dec 07, 2006 with tags blogs opml roller tips by Lars Trieloff

Roller always had the feature to output your blogroll as OPML. This list of bookmarks was helpful for migrating from Roller to another weblog service or to feed a feedreader that support OPML Reading Lists like Blogbridge or Straw. With these Reading Lists, the feed reader will automatically subscribe to all feeds listed in your blogroll.

Unfortunately, this fetaure is gone in Roller 3.0

Personally, I don't think we need OPML feeds in the URL structure. If somebody wants an OPML feed, he/she can add a page and generate OPML using models/macros.

Fortunately creating these macros is quite easy: In your Roller backend, go to Preferences >Templates, add a new page, called OPML and copy and paste following template code.

<?xml version="1.0" encoding="UTF-8"?>
<opml version="1.0">
<head>
    <title>Lars Trieloff's Bookmarks</title>
</head>
<body>
#set($rootFolder = $model.weblog.getBookmarkFolder("/"))
#foreach ($bookmark in $rootFolder.bookmarks)
   <outline 
     text="$bookmark.name" 
     type="rss" xmlUrl="$utils.escapeXML($bookmark.feedUrl)" 
    htmlUrl="$utils.escapeXML($bookmark.url)" />
#end
</body>
</opml>

After saving the template, the OPML file will be made available at the URL WeblogBaseURL/page/OPML.

New Theme

posted 10:00PM Dec 04, 2006 with tags blogs roller theme by Lars Trieloff

Thanks to the optional themes in Roller 3.0 this weblog features now a new theme: It is called almostspring, was originally developed for Wordpress by Beccary and ported to Roller by Dave Johnson. How do you like this new theme?

Roller 3.0

posted 12:12AM Dec 04, 2006 with tags blogs roller software by Lars Trieloff

I've just updated weblogs.goshaky.com to Roller 3.0. Thanks to the new template system I had to revert to a more default stylesheet. Furthermore, the URLs have changed to a more convenient format, but this change should not be user-visible as everything is redirected.

The secret of optimzing your JRoller weblog for Google, del.icio.us and Firefox

posted 01:24PM Aug 01, 2006 with tags blogs delicious firefox google roller seo tips by Lars Trieloff

Roller is a great weblog software. This is the reason why JRoller and Goshaky Weblogs use this software and this is the reason why so many great bloggers are on JRoller. But the standard Roller templates get one thing wrong: They fail to set the correct title for individual weblog permalink pages.

Take for example the Bile Blog, which is one of the most popular blogs on JRoller. The title of the start page is "The Bile Blog", but if you turn to an individual entry's permalink page, you will see the title of this page, e.g. of Another googleturd is again "The Bile Blog". Why is this bad? The top-5 reasons are:

  1. Google cannot see the difference. The title of the page is important for Google's rankings and without a proper title, Google will not find out it is being bashed in Another googleturd, which means less visitors for the Bile Blog.
  2. Firefox cannot see the difference. Imagine you are opening three stories of the Bile Blog in tabs in your Firefox webbrowser. The title of all three tabs will be "The Bile Blog" and you have no chance to see the difference, e.g. if you would like to show your colleagues the latest Google-bashing
  3. del.icio.us bookmarks cannot see the difference: Many people are using the del.icio.us bookmarket to manage their bookmarklets. After clicking the bookmarklet and tagging the entry they are not reviewing the title, so their bookmark will be entitled "The Bile Blog", even if they are not bookmarking the whole blog, but a particular story. Take a search at del.icio.us for "The Bile Blog" and find out whether a link is pointing to the start page or an entry,
  4. It is not accessible. Most people do not care about making their site accessible, but most people with disabilities are actually using the internet. Setting the correct title helps them visting your weblog.
  5. You look like someone who is not able to customize the templates of his weblog system correctly, but with these instructions, it is no problem for nobody.

All you have to do is to login to your JRoller weblog. Click on Preferences, click on Theme, click on Customize (if you are not already using a customized theme), click on Templates and edit the Weblog or _decorator template. You need to find the text between <title> and </title> and paste following code:

#macro( showEntryTitle $entries)
  #foreach( $entry in $entries )
    #if ( $velocityCount == 1)
    $entry.title
    #end
    #if ( $velocityCount == 2)
    and more
    #end
  #end
#end

#if ($pageModel.weblogEntry)
  #set($entries = [$pageModel.weblogEntry])
  #showWebsiteTitle(): 
  #showEntryTitle( $entries )
#else
  #showWebsiteTitle()
#end

This will show the title of your current post on permalink pages and leave the start page unchanged. And, most important it will make Google, del.icio.us and Firefox users happy.