<?xml version="1.0" encoding="utf-8"?>
<!-- 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
-->
<?xml-stylesheet type="text/xsl" href="https://rollerweblogger.org/roller-ui/styles/rss.xsl" media="screen"?><rss version="2.0" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:atom="http://www.w3.org/2005/Atom" >
<channel>
  <title>Blogging Roller</title>
  <link>https://rollerweblogger.org/roller/</link>
    <atom:link rel="self" type="application/rss+xml" href="https://rollerweblogger.org/roller/feed/entries/rss?tags=apacheroller" />
  <description>Dave Johnson on open web technologies, social software and software development</description>
  <language>en-us</language>
  <copyright>Copyright 2026</copyright>
  <lastBuildDate>Tue, 28 Apr 2026 07:02:22 +0000</lastBuildDate>
  <generator>Apache Roller 6.1.5</generator>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/roller-6-0-0-snapshot</guid>
    <title>Roller 6.0.0-SNAPSHOT</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/roller-6-0-0-snapshot</link>
    <pubDate>Sat, 26 Jan 2019 22:13:38 +0000</pubDate>
    <category>Roller</category>
    <category>apacheroller</category>
    <category>asf</category>
<description>&lt;p&gt;Upgraded this site to Roller 6.0.0-SNAPSHOT today, which meant an hour of fiddling around with my private Docker registry, then giving up and using the one free private repository offered by DockerHub and then, another hour of futzing around trying to figure out my PostgreSQL JDBC driver doesn&amp;#39;t work anymore (I inadvertently upgraded from JDK 1.7 to 1.8) and why I can&amp;#39;t seem to upgrade it (Kubernetes caches Docker images unless you set imagePullPolicy to always). In the end, I got it working. This post is written in the yet to be officially release Apache Roller 6.0.0-SNAPSHOT version.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Side note&lt;/b&gt;: the new rich-text editor in Roller is now &lt;a href=&quot;https://summernote.org&quot;&gt;Summernote&lt;/a&gt; and it seems quite nice. I need to tweak it a bit because there is currently no way to set the font or add a link unless you switch to raw HTML mode.&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/10_years_ago</guid>
    <title>10 years ago today</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/10_years_ago</link>
    <pubDate>Tue, 17 Apr 2012 07:41:07 +0000</pubDate>
    <category>Roller</category>
    <category>apacheroller</category>
    <category>blogging</category>
    <category>ibm</category>
    <category>java</category>
    <category>oracle</category>
<description>&lt;p&gt;&lt;img src=&quot;https://rollerweblogger.org/roller/mediaresource/d41c26ed-d162-4b37-b9a5-65fccc404303&quot; alt=&quot;O&amp;#39;Reilly logo&quot; align=&quot;right&quot;&gt;Ten years ago on this day, O&amp;#39;Reilly published an article that I wrote called &lt;a href=&quot;http://onjava.com/pub/a/onjava/2002/04/17/wblogosj2ee.html&quot;&gt;Building an Open Source J2EE Weblogger&lt;/a&gt;, the article that introduced the Roller weblogger (now known as &lt;a href=&quot;http://roller.apache.org&quot;&gt;Apache Roller&lt;/a&gt;) to the world. It changed my career and my life in a bunch of nice ways and 10 years later I&amp;#39;m still benefiting from my choice to create Roller and write that article. So you can get a taste of the times, here&amp;#39;s the intro:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;http://onjava.com/pub/a/onjava/2002/04/17/wblogosj2ee.html&quot;&gt;Building an Open Source J2EE Weblogger&lt;/a&gt;: As a Java developer, you should be aware of the tremendous wealth of open source development software that is available for your use -- even if you have no desire to release any of your own software as open source. In this article, I will introduce you to some of the most useful open source Java development tools by showing you how I used these tools to develop a complete database-driven Web application called Roller.&lt;/p&gt;

&lt;p&gt;Roller fits into the relatively new category of software called webloggers: applications that make it easy for you to maintain a weblog, also known as a blog -- a public diary where you link to recent reading on the Web and comment on items of interest to you.&lt;/p&gt;

&lt;p&gt;The Roller Web application allows you to maintain a Web site that consists of a weblog, an organized collection of favorite Web bookmarks, and a collection of favorite news feeds. You can define Web pages to display your weblog, bookmarks, and news feeds. By editing the HTML templates that define these pages, you have almost total control over the layout and appearance of these pages. Most importantly, you can do all of this without leaving the Roller Web application -- no programming is required.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I&amp;#39;ve written and talked about Roller and the history of Roller numerous times. If you&amp;#39;re interested in learning more about it here&amp;#39;s my most recent Roller presentation, which covers Roller history in some detail:&lt;/p&gt;


&lt;div style=&quot;width:425px;&quot; id=&quot;__ss_2573296&quot;&gt; &lt;strong style=&quot;display:block;margin:12px 0 4px;&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/snoopdave/whats-new-in-roller5&quot; title=&quot;Whats New In Roller5&quot; target=&quot;_blank&quot;&gt;Whats New In Roller5&lt;/a&gt;&lt;/strong&gt;  &lt;div style=&quot;padding:5px 0 12px;&quot;&gt; View more &lt;a href=&quot;http://www.slideshare.net/&quot; target=&quot;_blank&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/snoopdave&quot; target=&quot;_blank&quot;&gt;snoopdave&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;


&lt;p&gt;These days, Roller isn&amp;#39;t really thriving as an open source project. Wordpress became the de facto standard blogging package and then micro-blogging took over the world. There are only a couple of active committers and most recent contributions have come via student contributions. Though IBM, Oracle and other companies still use it heavily, they do not contribute back to the project. If you&amp;#39;re interested in contributing to Roller or becoming part of the Apache Software Foundation, then &lt;a href=&quot;http://rollerweblogger.org/project/entry/roller_needs_you&quot;&gt;Roller needs YOU!&lt;/a&gt;.&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/roller_and_gsoc_2011</guid>
    <title>GSOC 2011: Mobile-enabled themes for Roller</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/roller_and_gsoc_2011</link>
    <pubDate>Sat, 3 Sep 2011 16:37:42 +0000</pubDate>
    <category>Roller</category>
    <category>apacheroller</category>
    <category>google</category>
    <category>gsoc</category>
    <category>mobile</category>
    <category>opensource</category>
<description>&lt;p&gt;
I&amp;#39;m going to break blog silence now to tell you about Apache Roller and &lt;a href=&quot;http://code.google.com/soc/&quot;&gt;Google Summer of Code&lt;/a&gt; 2011, which just wrapped up about a week ago. 
&lt;/p&gt;

&lt;a href=&quot;http://code.google.com/soc/&quot;&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/mediaresource/2e6823f1-1b5e-43e2-9396-3d4318699968&quot; alt=&quot;GSOC logo&quot; vspace=&quot;5&quot; hspace=&quot;5&quot;&gt;&lt;/a&gt;

&lt;p&gt;
This year we were very fortunate to get a another highly motivated and smart student, Shelan Perera, and an good proposal as well: Mobile-enabled Templates. Over the summer Shelan designed and implemented a new feature for the Roller blog server, one that enables theme authors to provide an alternative &amp;quot;mobile&amp;quot; template for each page template in a Roller blog theme. You can see a screenshot of the new Edit Template page in Shelan&amp;#39;s blog &lt;a href=&quot;http://rollermobile.blogspot.com/2011/08/how-to-change-template-codes-in-roller.html&quot;&gt;How to change template codes in Roller&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
Now, when a page request comes into Roller, Shelan&amp;#39;s code determines if it&amp;#39;s from a mobile device and, if it is, switches to a mobile template, if one is available. There&amp;#39;s also an easy way for template authors to create a button to allow users to switch to the &amp;quot;Standard&amp;quot; site instead of the mobile version. The screenshot on the right, of Roller with a mobile theme comes from Shelan&amp;#39;s most &lt;a href=&quot;http://rollermobile.blogspot.com/2011/08/roller-mobile-themes-is-popping-up.html&quot;&gt;recent blog&lt;/a&gt;. 
&lt;/p&gt;

&lt;p&gt;
&lt;img src=&quot;http://rollerweblogger.org/roller/mediaresource/f5800774-52f9-4f13-bdc4-7efd2e8eb4f0&quot; alt=&quot;screenshot of a mobile Roller theme&quot;&gt;
&lt;/p&gt;

&lt;p&gt;
It was an honor to act as mentor for this project, and fun talking to Shelan via Skype most Fridays. I&amp;#39;m looking forward to getting this on my blog, and getting this cool new feature into an Apache Roller 5.1 release sometime soon. Thanks, Shelan! And, thanks to Google for running the most excellent &lt;a href=&quot;http://code.google.com/soc/&quot;&gt;Summer of Code&lt;/a&gt; program.
&lt;/p&gt;


</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/apache_roller_5_0_released</guid>
    <title>Apache Roller 5.0 released</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/apache_roller_5_0_released</link>
    <pubDate>Wed, 25 May 2011 14:06:00 +0000</pubDate>
    <category>Roller</category>
    <category>apacheroller</category>
    <category>asf</category>
    <category>opensource</category>
<description>&lt;p&gt;&lt;i&gt;(cross-posted from the Roller project blog)&lt;/i&gt;
&lt;/p&gt;&lt;p&gt;
&lt;p&gt;Here&amp;#39;s some more happy Roller news. Apache Roller 5.0 has been released! 
&lt;/p&gt;
&lt;p&gt;http://rollerweblogger.org/project/mediaresource/3cdaff7b-2745-4dac-89c9-151a3a1ccf26&amp;#39; 
align=&amp;#39;right&amp;#39; style=&amp;#39;padding:1em&amp;#39; /&amp;gt;
&lt;/p&gt;
&lt;p&gt;The major new feature in Roller 5.0 is Media Blogging, a set of enhancements to Roller&amp;#39;s file upload and management capabilities. Also included in 5.0 are simple multi-site support, OpenID and ~OAuth support for Roller&amp;#39;s AtomPub interface. All major dependencies have been updated and Roller now uses Maven for build and dependency management. You can find a summary of &lt;a class=&quot;external&quot; href=&quot;http://cwiki.apache.org/confluence/display/ROLLER/What%27s+new+in+Roller+5.0&quot;&gt;Roller 5.0&amp;#39;s new features&lt;/a&gt; on the Roller wiki.
&lt;/p&gt;
&lt;p&gt;The road to Roller 5.0 has been a long one and if you are interested the history, you might want to check Dave Johnson&amp;#39;s &lt;a class=&quot;external&quot; href=&quot;http://www.slideshare.net/snoopdave/whats-new-in-roller5&quot;&gt;What&amp;#39;s New in Roller 5.0&lt;/a&gt; presentation from ApacheCon US 2009. Roller 5.0 includes contributions from contributors from Google Summer of Code, San Jose State Univ. and the usual case of Roller committers. Thanks to all who contributed to Roller 5.0 over the years.
&lt;/p&gt;
&lt;p&gt;To download Apache Roller 5.0 and documentation, visit the &lt;a class=&quot;external&quot; href=&quot;http://roller.apache.org/downloads.html&quot;&gt;Apache Roller download page&lt;/a&gt; at the Apache Software Foundation&amp;#39;s website.
&lt;/p&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/apache_roller_5_0_rc2</guid>
    <title>Apache Roller 5.0 RC2</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/apache_roller_5_0_rc2</link>
    <pubDate>Sun, 3 Oct 2010 10:11:39 +0000</pubDate>
    <category>Roller</category>
    <category>apacheroller</category>
    <category>asf</category>
<description>&lt;p&gt;A couple of weeks ago, I made a second release candidate available for Apache Roller 5.0. Here&amp;#39;s the announcement (also available at &lt;a href=&quot;http://s.apache.org/apacheroller50rc2&quot;&gt;http://s.apache.org/apacheroller50rc2&lt;/a&gt;):&lt;/p&gt;

&lt;blockquote&gt;&lt;pre&gt;
Apache Roller 5.0 Release Candidate RC2 is now available for testing. 
Note that this is NOT a release of the Apache Software Foundation or 
anybody else; this release candidate is for testing purposes only and 
not recommended for production.

   What&amp;#39;s new in Roller 5.0:
   &lt;a href=&quot;https://cwiki.apache.org/confluence/display/ROLLER/What&apos;s+new+in+Roller+5.0&quot;&gt;https://cwiki.apache.org/confluence/display/ROLLER/What&amp;#39;s+new+in+Roller+5.0&lt;/a&gt;

   Roller 5.0 JIRA change list:
   &lt;a href=&quot;https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310906&amp;styleName=Html&amp;version=12313828&quot;&gt;https://issues.apache.org/jira/sec ... sion=12313828&lt;/a&gt;

   Signed binary and source files
   &lt;a href=&quot;http://people.apache.org/~snoopdave/apache-roller-5.0/&quot;&gt;http://people.apache.org/~snoopdave/apache-roller-5.0/&lt;/a&gt;

   Issues resolved since RC1:
   &lt;a href=&quot;http://bit.ly/9eWjJk&quot;&gt;http://bit.ly/9eWjJk&lt;/a&gt;

If you would like to help out then please test RC2, discuss 
the problems you encounter here and file specific bugs with steps to
reproduce in the Roller JIRA bug tracking system.&lt;/pre&gt;&lt;/blockquote&gt;

&lt;p&gt;I&amp;#39;m running RC2 on this site and it seems to be holding up just fine so far.&lt;/p&gt;
</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/the_jazz_connection</guid>
    <title>The Jazz Connection</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/the_jazz_connection</link>
    <pubDate>Mon, 4 Jan 2010 18:25:58 +0000</pubDate>
    <category>IBM</category>
    <category>apacheroller</category>
    <category>jazz</category>
    <category>lotusconnections</category>
    <category>rational</category>
<description>&lt;img src=&quot;http://rollerweblogger.org/roller/resource/RationaJazz_148x78.jpg&quot; style=&quot;padding:4px;align:right;&quot;&gt;

&lt;p&gt;Here&amp;#39;s something I&amp;#39;ve been closely involved with during my entire IBM career (almost 9 months now): making software development more social by integrating Rational Team Concert and Lotus Connections.&lt;/p&gt;

&lt;p&gt;In case you don&amp;#39;t know, &lt;a href=&quot;http://www.ibm.com/software/awdtools/rtc&quot;&gt;Team Concert&lt;/a&gt; is Rational&amp;#39;s &amp;quot;complete agile collaborative development environment&amp;quot; with integrated source code control, issue tracking, build management and very slick Eclipse and web-based client UIs -- it&amp;#39;s a collaborative environment for software developers. Lotus Connections is IBM&amp;#39;s comprehensive social software suite with blogs (Roller based!), wikis, social bookmarking, forums, file sharing, social networking and more -- an environment for more general collaboration.&lt;/p&gt;

&lt;img src=&quot;http://rollerweblogger.org/roller/resource/connections-logo.jpg&quot; style=&quot;padding:4px;align:left;&quot;&gt;

&lt;p&gt;IBM partner Mainsoft has developed an integration between Team Concert and Connections and it&amp;#39;s &lt;a href=&quot;http://jazz.net/blog/index.php/2009/12/15/lotus-connections-integration-with-rational-team-concert-technology-preview-now-available&quot;&gt;now available as a tech preview&lt;/a&gt;. The product makes it easy for developers to hook a a software development project up to a Lotus Connections and enable software developers to collaborate with the much wider community of folks involved with a software project including end users, subject matter experts, executives and other stakeholders. As you can see from the &lt;a href=&quot;https://jazz.net/projects/rational-team-concert/features/social&quot;&gt;list of features&lt;/a&gt;, it&amp;#39;s a pretty tight integration.&lt;/p&gt;

&lt;p&gt;If you want to learn more about the integration, check out the links I referenced above. There&amp;#39;s also a short podcast available at Developer Works and there will be sessions at &lt;a href=&quot;http://www.ibm.com/software/lotus/events/lotusphere2010&quot;&gt;Lotusphere 2010&lt;/a&gt; this month and (with luck) at Rational&amp;#39;s &lt;a href=&quot;http://www.ibm.com/software/rational/innovate/&quot;&gt;Innovate 2010&lt;/a&gt; Conference in June.&lt;/p&gt;








</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/apachecon_trip_report</guid>
    <title>Trip report: ApacheCon US 2009</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/apachecon_trip_report</link>
    <pubDate>Sun, 15 Nov 2009 10:59:18 +0000</pubDate>
    <category>IBM</category>
    <category>apacheroller</category>
    <category>opensocial</category>
    <category>socialsite</category>
    <category>widgets</category>
    <category>wookie</category>
<description>&lt;p&gt;&lt;i&gt;(Last week, I returned after a week of vacation and a week of conferences in the SF bay area. Instead of posting my trip reports to the limited audience that reads my internal IBM blog, I&amp;#39;m going to post them here so that everybody can benefit from them.)&lt;/i&gt;
&lt;/p&gt;&lt;p&gt;&lt;table border=&quot;0&quot; class=&quot;imageplugin&quot;&gt;
&lt;tr&gt;&lt;td style=&quot;&quot;&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/mediaresource/bed8afd6-e1e8-4112-9c5d-70eaa0529646&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s my report from ApacheCon US, focusing on the projects I&amp;#39;m involved with: Roller, Shindig and SocialSite.
&lt;/p&gt;
&lt;p&gt;
&lt;h3 id=&quot;section-dummyPage-RollerSession&quot;&gt;Roller session#&lt;/h3&gt;
&lt;p&gt;In my session, I covered the new features in 5.0, Roller history and sort of a Roller state of the union. I explained that nobody is working full-time on Roller these days, it&amp;#39;s an all volunteer effort with about three people active and if folks want us to keep on making official Apache releases then those very same folks had better step-up and get involved so we can knight some new PMC members. I also did a demo of the new features in Roller 5.0 including OpenID and the file upload and management improvements.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;What&amp;#39;s new in Apache Roller 5.0, Dave Johnson &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://www.us.apachecon.com/c/acus2009/sessions/280&quot;&gt;http://www.us.apachecon.com/c/acus2009/sessions/280&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Announcement: Roller 5.0 beta 1 available &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://markmail.org/message/rwk6pj4voxbyuaj3&quot;&gt;http://markmail.org/message/rwk6pj4voxbyuaj3&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;h3 id=&quot;section-dummyPage-ShindigSession&quot;&gt;Shindig session#&lt;/h3&gt;
&lt;p&gt;After my Roller talk and in the same room, I attended Paul Lindner&amp;#39;s talk on Apache Shindig. Paul has worked on OpenSocial implementations at Hi5 and LinkedIn and he&amp;#39;s also a committer on the Apache Shindig project.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Empowering the Social Web with Apache Shindig, Paul Linder &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://www.us.apachecon.com/c/acus2009/sessions/281&quot;&gt;http://www.us.apachecon.com/c/acus2009/sessions/281&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I&amp;#39;m familiar with Shindig so this was mostly review for me. I liked Paul&amp;#39;s assessment of Shindig quality, saying that they have good processes in place, use code reviews and have good test coverage. Paul acknowledged problems with Shindig&amp;#39;s developer friendly-ness and said that the community is working to fix them. I&amp;#39;ve heard similar complaints from multiple source and seen myself that it&amp;#39;s not as easy as it should be to understand the codebase, figure out how to plug-into it and understand which parts are really required for OpenSocial and which are just sample code.
&lt;/p&gt;
&lt;p&gt;Paul also talked about the Open Stack concept, a set of open standards that enable social networking interoperation including OpenSocial, ~OAuth, OpenID and portable contacts. He said that Shindig is the best way to implement the stack and keep up with the evolving standards. He had a nice quote about &amp;quot;Shindig is to OpenSocial as Apache HTTPD is to HTTP&amp;quot;
&lt;/p&gt;
&lt;p&gt;
&lt;h3 id=&quot;section-dummyPage-SocialWidgetsGadgetsMeetup&quot;&gt;Social Widgets / Gadgets meetup#&lt;/h3&gt;
&lt;p&gt;On Thursday night, I attended Social Widgets / Gadgets meetup which brought together members of the Apache Shindig, Apache SocialSite and Apache Wookie Communities.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Apache Shinding: OpenSocial Reference Implementation &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://incubator.apache.org/shindig&quot;&gt;http://incubator.apache.org/shindig&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Apache SocialSite: Headless Social Networking server plus Gadgets &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;https://socialsite.dev.java.net/&quot;&gt;https://socialsite.dev.java.net/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Apache Wookie: W3C Widgets, OpenSocial and Wave Gadgets server &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://incubator.apache.org/wookie&quot;&gt;http://incubator.apache.org/wookie&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;There were about 25 people there including folks from Google, Atlassian, Yahoo, Ning, LinkedIn, Hippo (CMS/portals ISV) and, I&amp;#39;m guessing, a bunch of SF bay area startups. The meetup started around 8PM and lasted over two hours. 
&lt;/p&gt;
&lt;p&gt;I presented a lightning talk on Apache SocialSite using a couple of slides from the JavaOne talk and including a quick status report. Status is this: still waiting on Sun to come through on code grant, Globant is having some success with SocialSite in production and work is almost complete in converting the build over to Maven. I also did a quick talk about the Enterprise 2.0 OpenSocial panel, which occurred the day before.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;SocialSite Mavenized &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://code.google.com/p/socialsite-mavenized&quot;&gt;http://code.google.com/p/socialsite-mavenized&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Next, Jas Nagra did a very entertaining and informative mini-presentation on Caja, complete with XMen 2 references. Caja is a way to run Javascript code (e.g. gadgets) loaded from different locations, each in its own secure sandbox where it can&amp;#39;t interfere with others and can&amp;#39;t do evil -- but without relying on iframes. Shindig uses Caja, but it&amp;#39;s optional and off by default.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Google Caja - A source-to-source translator for securing Javascript-based web content &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://code.google.com/p/google-caja/&quot;&gt;http://code.google.com/p/google-caja/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;After that Paul Linder did a quick talk on the Open Stack idea and revised his Shindig quote to &amp;quot;Shindig is to the Open Stack as Apache HTTPD is to HTTP.&amp;quot; Then we broke up and folks stuck around to talk about APIs, projects, possibilities and everything else for quite some time.
&lt;/p&gt;
&lt;p&gt;That&amp;#39;s all I&amp;#39;ve got for now. I hope to document some of my experiences on the &amp;quot;Enterprise OpenSocial&amp;quot; panel at Enterprise 2.0 later, possibly in a blog post on the OpenSocial blog.
&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/trip_report_social_web_camp</guid>
    <title>Trip report: Social Web Camp, Santa Clara, CA</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/trip_report_social_web_camp</link>
    <pubDate>Mon, 9 Nov 2009 10:07:19 +0000</pubDate>
    <category>IBM</category>
    <category>apacheroller</category>
    <category>atompub</category>
    <category>foaf</category>
    <category>opensocial</category>
    <category>salmon</category>
    <category>sun</category>
<description>&lt;p&gt;(I just returned to work after vacation and a week of conferences in the SF bay area. Instead of posting my trip reports to the limited audience that reads my internal IBM blog, I&amp;#39;m going to post them here so that everybody can benefit from them.)
&lt;/p&gt;&lt;p&gt;&lt;table border=&quot;0&quot; class=&quot;imageplugin&quot;&gt;
&lt;tr&gt;&lt;td style=&quot;&quot;&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/mediaresource/77f1d993-07cf-4696-999c-277c4ae6dc27?t=true&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/p&gt;
&lt;p&gt;On Monday Nov. 2, I attended Social Web Camp at Sun&amp;#39;s Santa Clara campus. There were about 40 people in attendance. The event was organized by Sun&amp;#39;s Henry Story, an expert in semantic web technologies and inventor of the FOAF+SSL approach to implementing Social Networking features (relationship based privacy). Unfortunately, Henry was not able to attend the conference because he was detained by US immigration.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Social Web Camp, Santa Clara, CA &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://barcamp.org/SocialWebCamp-Santa-Clara&quot;&gt;http://barcamp.org/SocialWebCamp-Santa-Clara&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Sun&amp;#39;s Santa Clara Campus - AKA the Agnews Insane Asylum &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://www.nps.gov/nr/travel/santaclara/agn.htm&quot;&gt;http://www.nps.gov/nr/travel/santaclara/agn.htm&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;FOAF+SSL distributed/open social networking &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://esw.w3.org/topic/foaf+ssl&quot;&gt;http://esw.w3.org/topic/foaf+ssl&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Henry detained for 6 days, case dismissed in 30 seconds &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://twitter.com/bblfish/status/5509198135&quot;&gt;http://twitter.com/bblfish/status/5509198135&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;During the camp, I lead a session on OpenSocial using my &amp;quot;What&amp;#39;s up with OpenSocial&amp;quot; slides from BarCampRDU. Surprisingly, very few people were familiar with OpenSocial, so this was an introductory level discussion.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;What&amp;#39;s up with OpenSocial preso from BarCampRDU &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://docs.google.com/present/edit?id=0AWuMBlP1tnN6ZGcyY2ZuendfOThmcXMydjdmcQ&amp;amp;hl=en&quot;&gt;http://docs.google.com/present/edit?id=0AWuMBlP1tnN6ZGcyY2ZuendfOThmcXMydjdmcQ&amp;amp;hl=en&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I participated in a session on enterprise social networking and shared a little about we do with micro-blogging inside IBM, mentioning BlueTwit and the new features in Lotus Connections. A couple of folks from Boeing were present and described the home-grown social networking and micro-blogging system. 
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;BlueTwit mentioned in Business Week &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://www.businessweek.com/magazine/content/08_22/b4086056643442.htm&quot;&gt;http://www.businessweek.com/magazine/content/08_22/b4086056643442.htm&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;John Panzer of Google pitched his new Salmon protocol, a distributed commenting system that allows comments made on items in downstream systems (e.g. aggregators, social networks, FriendFeed, etc.) to find their way back upstream to the source item. The protocol is based, in part, on AtomPub. Comments are signed and posted back upstream. Seems like this could be useful in both Lotus Connections river of news feature, Jazz-based products and Roller; so I&amp;#39;ll going to track this one closely. It might be fun to try to implement Salmon for Roller.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Salmon: comments and annotations to swim upstream, spawn more commentary &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://www.salmon-protocol.org/&quot;&gt;http://www.salmon-protocol.org/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I missed a little of the conference because I had lunch with some of my former co-worker from Sun and I left a little early to return my vacation rental car and make my way to Oakland for ApacheCon US 2009. More about that later...&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/roller_status_cc_world</guid>
    <title>Roller status, CC: world</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/roller_status_cc_world</link>
    <pubDate>Tue, 22 Sep 2009 21:15:28 +0000</pubDate>
    <category>Roller</category>
    <category>apachecon</category>
    <category>apacheroller</category>
<description>&lt;p&gt;It&amp;#39;s been a while since I have blogged about it, but I haven&amp;#39;t completely stopped working on Roller. In case you&amp;#39;re wondering what&amp;#39;s up in Roller-land, here&amp;#39;s an update based on an &lt;a href=&quot;http://markmail.org/message/hymm4qa5qgmkjzt4&quot;&gt;email&lt;/a&gt; I recently sent to the Roller dev mailing list.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I&amp;#39;ve been doing some weekend and evening work on Roller 5.0 to get it ready for release. Ganesh and Tanuja did great work on the new Media Blogging features, but there were a couple of significant pieces missing such as data migration and I18N. I had hoped to finish that work during the summer, but life got in the way. Now I&amp;#39;m scrambling to wrap things up. I&amp;#39;ll be &lt;a href=&quot;http://rollerweblogger.org/project/entry/roller_at_apachecon_us_2009&quot;&gt;speaking at ApacheCon US 2009 in November on the topic of What&amp;#39;s New in Roller 5.0&lt;/a&gt;, so I&amp;#39;d really like to have a 5.0 release candidate ready by then.&lt;p&gt;

&lt;p&gt;Just as a reminder, here&amp;#39;s what&amp;#39;s currently on the 5.0 feature list:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Media Blogging Support&lt;/li&gt;
    &lt;li&gt;Externalizable User Management&lt;/li&gt;
    &lt;li&gt;OpenID Support&lt;/li&gt;
    &lt;li&gt;Tag Data API&lt;/li&gt;
    &lt;li&gt;OpenSearch&lt;/li&gt;
    &lt;li&gt;OAuth for AtomPub&lt;/li&gt;
    &lt;li&gt;See the &lt;a href=&quot;http://cwiki.apache.org/confluence/x/9aQB&quot;&gt;full list on the Roller wiki&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Except for Media Blogging, all of those features are complete. My plan is this. I&amp;#39;ll do some more cleanup work on Media Blogging, which is the major new feature in 5.0, fix some bugs and then I&amp;#39;ll cut an RC.&lt;/p&gt;
&lt;/p&gt;&lt;/p&gt;&lt;/blockquote&gt;
</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/oauth_everywhere</guid>
    <title>OAuth everywhere!</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/oauth_everywhere</link>
    <pubDate>Fri, 6 Mar 2009 11:10:54 +0000</pubDate>
    <category>Social Software</category>
    <category>apacheroller</category>
    <category>openoauth</category>
    <category>opensocial</category>
    <category>rest</category>
<atom:summary type="html">For my &lt;a class=&quot;external&quot; href=&quot;http://www.eu.apachecon.com/c/aceu2009&quot;&gt;ApacheCon EU&lt;/a&gt; talk, which is now just a couple of weeks away, I&amp;#39;m going to talk about &lt;a class=&quot;external&quot; href=&quot;http://www.eu.apachecon.com/c/aceu2009/sessions/184&quot;&gt;Shindig for Blogs and Wikis&lt;/a&gt;. I promised to show social features and OpenSocial Gadgets running inside Apache Roller and Apache JSPWiki (incubating). This post explains, at a very high level, how I got a Roller Gadget working, one that uses OAuth to call Roller and enables Roller to use OAuth to call back to the social network. It assumes you have a basic understanding of &lt;a class=&quot;external&quot; href=&quot;http://opensocial.org&quot;&gt;OpenSocial&lt;/a&gt; and &lt;a class=&quot;external&quot; href=&quot;http://oauth.net&quot;&gt;OAuth&lt;/a&gt;.</atom:summary><description>&lt;p&gt;For my &lt;a class=&quot;external&quot; href=&quot;http://www.eu.apachecon.com/c/aceu2009&quot;&gt;ApacheCon EU&lt;/a&gt; talk, which is now just a couple of weeks away, I&amp;#39;m going to talk about &lt;a class=&quot;external&quot; href=&quot;http://www.eu.apachecon.com/c/aceu2009/sessions/184&quot;&gt;Shindig for Blogs and Wikis&lt;/a&gt;. I promised to show social features and OpenSocial Gadgets running inside Apache Roller and Apache JSPWiki (incubating). This post explains, at a very high level, how I got a Roller Gadget working, one that uses OAuth to call Roller and enables Roller to use OAuth to call back to the social network. It assumes you have a basic understanding of &lt;a class=&quot;external&quot; href=&quot;http://opensocial.org&quot;&gt;OpenSocial&lt;/a&gt; and &lt;a class=&quot;external&quot; href=&quot;http://oauth.net&quot;&gt;OAuth&lt;/a&gt;.&lt;br&gt; &lt;br&gt;
&lt;/p&gt;&lt;p&gt;
&lt;h4 id=&quot;section-dummyPage-UseCasePostingActivitiesFromRoller&quot;&gt;Use case: posting Activities from Roller #&lt;/h4&gt;
&lt;p&gt;Specifically, what I want to show is a &amp;quot;Social Roller&amp;quot; Gadget that you can install into your Profile Page and that will post an Activity every time that you post a new blog entry in Roller.
&lt;/p&gt;
&lt;p&gt;Sounds simple, but I didn&amp;#39;t realize just how much work it would take. To do it the right way, I needed &lt;i&gt;OAuth everywhere!&lt;/i&gt; I needed OAuth Consumer and Provider support in both my Shindig-powered Social Network Server, that&amp;#39;s &lt;a class=&quot;external&quot; href=&quot;http://socialsite.dev.java.net&quot;&gt;SocialSite&lt;/a&gt;, and in my Blog Server, which of course is &lt;a class=&quot;external&quot; href=&quot;http://roller.apache.org&quot;&gt;Roller&lt;/a&gt;. Unfortunately, when the layoff axe fell at Sun the SocialSite team had not finished OAuth support and Roller didn&amp;#39;t have any OAuth support at all. Good thing is, SocialSite and Roller are open source and I had nothing better to do than to learn about OAuth and crank out some code. I&amp;#39;m not going to let a bunch of axe-wielding bean-counters stop me from keeping my promises.
&lt;/p&gt;
&lt;p&gt;
&lt;h4 id=&quot;section-dummyPage-HowItWorks&quot;&gt;How it works#&lt;/h4&gt;
&lt;p&gt;I now have complete OAuth Provider and Consumer support in SocialSite and Roller working and ready to demo. I&amp;#39;ll post a screen-cast of the UI changes once I polish it up a bit (and finish my slides). For now, all I&amp;#39;ve got for you is a diagram that explains how the gadget interacts with SocialSite, Roller and OAuth to post activities to your profile.
&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;inline&quot; src=&quot;http://rollerweblogger.org/roller/resource/oauth-roller-socialsite.jpg&quot; alt=&quot;http://rollerweblogger.org/roller/resource/oauth-roller-socialsite.jpg&quot;&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;Here&amp;#39;s the deal. You install the Social Roller Gadget into your Profile Page within Roller. The gadget needs to talk to Roller so &lt;b&gt;(#1)&lt;/b&gt; it calls Roller via the JS Container APIs. &lt;i&gt;(Note that the blue indicates parts of the Social Roller Gadget.)&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;(#2)&lt;/b&gt; The container will work with the SocialSite Proxy servlet to add the right OAuth consumer keys, secrets and/or tokens to the request and will then send that request off to Roller. It must first &lt;b&gt;(#3)&lt;/b&gt; negotiate with the OAuth Servlets in Roller. If you have not authorized the gadget to access your Roller account, then the container will show Roller&amp;#39;s OAuth authorization page so you can hit the Authorize button, or not.
&lt;/p&gt;
&lt;p&gt;Once the gadget is authorized to access your Roller account, it will &lt;b&gt;(#4)&lt;/b&gt; call the gadgetsetup.jsp page via HTTP GET to determine if you have enabled Activity posting. If you want to enable or disable, it will use an HTTP POST to tell Roller what you want. 
&lt;/p&gt;
&lt;p&gt;The setup page will then &lt;b&gt;(#5)&lt;/b&gt; call the Gadget Task to tell it to look out for your new blog posts and post an activity for each. The Gadget Task is controlled by Roller&amp;#39;s cluster-friendly task management system and setup to run every minute.
&lt;/p&gt;
&lt;p&gt;Once you&amp;#39;ve enabled Activity posting, when the Gadget Task runs it will check to see if you have made any new posts and if you have, it will &lt;b&gt;(#6)&lt;/b&gt; call the OpenSocial REST API to post an activity for each to your Profile. Negotiating with the OAuth Servlets as needed. And that&amp;#39;s that.
&lt;/p&gt;
&lt;p&gt;
&lt;h4 id=&quot;section-dummyPage-WhatIDidnTCover&quot;&gt;What I didn&amp;#39;t cover#&lt;/h4&gt;
&lt;p&gt;There are a lot of things I didn&amp;#39;t mention and I hope to document some of them in the next week or so, while I&amp;#39;m still unemployed. Here&amp;#39;s a quick summary of missing pieces:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;How does SocialSite get the Consumer Key and Secret needed for calling Roller?
&lt;/li&gt;&lt;li&gt;How does Roller get the Consumer Key and Secret needed for calling SocialSite?
&lt;/li&gt;&lt;li&gt;How does the user authorize Roller&amp;#39;s access to his Profile information in SocialSite?
&lt;/li&gt;&lt;li&gt;When is OAuth support coming to the Roller trunk and can you use it for AtomPub?
&lt;/li&gt;&lt;li&gt;How do I add my gadget to SocialSite so users can install and use it?
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;There are happy answers for all those questions, but that&amp;#39;s all I&amp;#39;ve got time for today. I&amp;#39;ve got some slides to finish in a hurry.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/media_blogging_for_roller</guid>
    <title>Media Blogging for Roller</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/media_blogging_for_roller</link>
    <pubDate>Thu, 19 Feb 2009 12:57:37 +0000</pubDate>
    <category>Roller</category>
    <category>apacheroller</category>
    <category>atom</category>
    <category>java</category>
    <category>mentoring</category>
    <category>opensource</category>
    <category>rss</category>
<atom:summary type="html">For the past five months I&amp;#39;ve had the pleasure of mentoring two &lt;a href=&quot;http://www.sjsu.edu/&quot;&gt;San Jose State Univ.&lt;/a&gt; graduate students, &lt;a href=&quot;http://www.linkedin.com/pub/dir/ganesh/mathrubootham&quot;&gt;Ganesh Mathrubootham&lt;/a&gt; and &lt;a href=&quot;http://www.linkedin.com/pub/7/71/299&quot;&gt;Tanuja Varkanthe&lt;/a&gt;, who are working on a project for classes CMP 295A and B. They picked one of the projects that I first proposed for Google Summer of Code and then for Glassfish&amp;#39;s student outreach program, Media Blogging for &lt;a href=&quot;http://roller.apache.org&quot;&gt;Apache Roller&lt;/a&gt;. It&amp;#39;s turned out to be a major project and the central new feature in the upcoming Roller 5.0 release.&amp;nbsp;</atom:summary><description>&lt;p&gt;For the past five months I&amp;#39;ve had the pleasure of mentoring two &lt;a href=&quot;http://www.sjsu.edu/&quot;&gt;San Jose State Univ.&lt;/a&gt; graduate students, &lt;a href=&quot;http://www.linkedin.com/pub/dir/ganesh/mathrubootham&quot;&gt;Ganesh Mathrubootham&lt;/a&gt; and &lt;a href=&quot;http://www.linkedin.com/pub/7/71/299&quot;&gt;Tanuja Varkanthe&lt;/a&gt;, who are working on a project for classes CMP 295A and B. They picked one of the projects that I first proposed for Google Summer of Code and then for Glassfish&amp;#39;s student outreach program, Media Blogging for &lt;a href=&quot;http://roller.apache.org&quot;&gt;Apache Roller&lt;/a&gt;. It&amp;#39;s turned out to be a major project and the central new feature in the upcoming Roller 5.0 release.&lt;/p&gt;


&lt;h4&gt;The plan&lt;/h4&gt;

&lt;p&gt;The basic idea is to make it really easy to upload images, audio and video files to Roller, and really easy to include them in Roller blog posts and RSS/Atom feeds. Of course, the devil is in the details and Ganesh and Tanuja really have those covered. They have put together the most detailed and well thought-out plan and design ever for a new Roller feature. You can find the &lt;a href=&quot;http://cwiki.apache.org/confluence/x/rnkB&quot;&gt;proposal page&lt;/a&gt; and the full Media Blogging for Roller Project Plan (PDF, 2mb) on the Roller wiki. Here&amp;#39;s a key excerpt from the project summary:&lt;/p&gt; 

&lt;blockquote&gt;
&lt;p&gt;Roller currently lacks support for the latest blogging features.  Roller does allow 
users to upload any type of content to their blogs and include that content on blog entries as images or podcasts, but lacks tools to make media blogging a seamless experience for bloggers.  Interface to manage uploaded files is not sortable and not page-able. Once the user has uploaded a file, which could be an image or a podcast, he needs to explicitly cut and paste the URL into his blog post.&lt;/p&gt;

&lt;p&gt;Overall, Rollerâ&#128;&#153;s support for media blogs is currently limited to basic file upload functionality, which is cumbersome to use for creating media blogs. This project will revamp the existing file upload interface to incorporate powerful media blogging features into Roller. Also, successful media management websites such as Flickr and YouTube are driven by a public media library, offering different ways for users to search and locate the content of their like. This feature incorporated into a blog server can make it very powerful and we intend to do that as part of this project.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To get an idea of what this is all about, let&amp;#39;s take a look at some screenshots/wireframes taken directly from the project plan.&lt;/p&gt;


&lt;h4&gt;New media file upload dialog&lt;/h4&gt;

&lt;p&gt;First up is the new media file upload dialog. There are a couple of interesting things here. We&amp;#39;ll have metadata for each upload, including description, tags and copyright message. We&amp;#39;ll also have the option of including the file in the gallery. We&amp;#39;ll support a media gallery for each blog, and new files added to the gallery are included in a special media feed for the blog.&lt;/p&gt;

&amp;lt;img src=&amp;quot;http://rollerweblogger.org/roller/resource/mediablogging-upload-1.png&amp;quot;
alt=&amp;quot;screenshot of new upload dialog&amp;quot; /&amp;gt;


&lt;h4&gt;File Uploads browser&lt;/h4&gt;

&lt;p&gt;To make it easy to manage your media files, the proposal includes a new upload browser interface, with a tabular and a hierarchical view. Thumbnails will be automatically generated on upload. Search and filtering controls will make it easy to find and operate on the files you are looking for, based on file metadata.&lt;/p&gt;

&amp;lt;img src=&amp;quot;http://rollerweblogger.org/roller/resource/mediablogging-browse-1.png&amp;quot; 
alt=&amp;quot;screenshot of new upload browser&amp;quot; /&amp;gt;


&lt;h4&gt;Select media dialog&lt;/h4&gt;

&lt;p&gt;When you are writing a blog post, you&amp;#39;ll be able to browse for and include media files without leaving the blog editor interface. You&amp;#39;ll be able to choose the size and orientation of the image or video in the blog post, as you can see below.&lt;/p&gt;

&amp;lt;img src=&amp;quot;http://rollerweblogger.org/roller/resource/mediablogging-video-1.png&amp;quot; 
alt=&amp;quot;screenshot of new add media dialog&amp;quot; /&amp;gt;


&lt;br&gt;&lt;br&gt;

&lt;p&gt;Needless to say, I&amp;#39;m pretty excited about these new features, and to looking forward to a major new Roller release, and one where I don&amp;#39;t have to do much of the work. If you want more information on 5.0 then check the &lt;a href=&quot;http://cwiki.apache.org/confluence/x/9aQB&quot;&gt;Apache Roller 5.0 proposal page&lt;/a&gt;. And if you want to help out then join the &lt;a href=&quot;http://cwiki.apache.org/confluence/x/ZYk&quot;&gt;Roller development mailing list&lt;/a&gt; and introduce yourself.&lt;/p&gt;
</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/welcome_ganesh</guid>
    <title>Welcome Ganesh!</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/welcome_ganesh</link>
    <pubDate>Mon, 16 Feb 2009 11:16:26 +0000</pubDate>
    <category>Roller</category>
    <category>apacheroller</category>
<description>&lt;p&gt;From the &lt;a href=&quot;http://rollerweblogger.org/project/entry/ganesh_mathrubootham_joins_roller&quot;&gt;Roller project blog&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;a class=&quot;external&quot; href=&quot;http://www.linkedin.com/pub/dir/ganesh/mathrubootham&quot;&gt;Ganesh Mathrubootham&lt;/a&gt; has been doing great work on the &lt;a class=&quot;external&quot; href=&quot;http://cwiki.apache.org/confluence/x/rnkB&quot;&gt;Media Blogging&lt;/a&gt; for Roller project and helping out in other ways in Roller development and support. So in January we nominated and voted him in as Roller&amp;#39;s newest committer. Welcome Ganesh, we&amp;#39;re very happy to have you on the team.
&lt;/blockquote&gt;

&lt;p&gt;I&amp;#39;ve really enjoyed working with Ganesh and his project partner Tanuja over the past six months, so this is great news. I&amp;#39;ll tell you a bit more about the Media Blogging for Roller project in one of my next blog posts.&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/talking_shindig_at_apacheconeu</guid>
    <title>Upcoming: Shindig for Blogs and Wikis, ApacheCon EU</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/talking_shindig_at_apacheconeu</link>
    <pubDate>Wed, 21 Jan 2009 15:39:46 +0000</pubDate>
    <category>Social Software</category>
    <category>apachecon</category>
    <category>apacheroller</category>
    <category>conferences</category>
    <category>shindig</category>
<description>&lt;p&gt;The other day I got the happy news that my one of my proposed sessions was accepted for ApacheCon EU. ApacheCon and Amsterdam are definitely among my favorite places to be, so I&amp;#39;m thrilled. You ought to go too; here&amp;#39;s the information on the conference, which will include training, the hackathon and a BarCamp.&lt;/p&gt;

&lt;div style=&quot;margin:0 0 1em 2em;&quot;&gt;
&lt;h4&gt;ApacheCon Europe 2009 &lt;a href=&quot;http://www.eu.apachecon.com&quot;&gt;(link)&lt;/a&gt;&lt;/h4&gt;
23-27 March 2009 | MÃ¶venpick Hotel, Amsterdam&lt;br&gt;
&lt;a href=&quot;http://www.eu.apachecon.com/c/aceu2009/articles/prices&quot;&gt;Pricing&lt;/a&gt; 
(register before Feb 6 for discount)
&lt;/div&gt;

&lt;p&gt;My session is titled &amp;lt;a href=&amp;quot;http://www.eu.apachecon.com/c/aceu2009/sessions/184
&amp;quot;&amp;gt;Shindig for Blogs and Wikis. I&amp;#39;ll cover different approaches to adding social features to blogs and wikis and I&amp;#39;ll zoom-in on OpenSocial related options Shindig and Project SocialSite. Here&amp;#39;s the abstract, with some formatting that is missing from the ApacheCon site:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Blogs, wikis and feeds helped to make the web more social by making it easy for folks to read, write and have conversations on the web; and now social networking technologies are making the web and even more social.&lt;/p&gt;

&lt;p&gt;In this session you&amp;#39;ll learn about OpenSocial, a new standard for interacting with social networking data via Web Service and via JavaScript Gadgets that can be embedded into social networking sites. You&amp;#39;ll learn about Apache Shindig (incubating), which is the reference implementation of OpenSocial, and how it can be used to add support for social networking and gadgets to existing web applications and specifically Apache Roller and Apache JSPWiki. The session will cover:&lt;/p&gt; 
&lt;ul&gt;
&lt;li&gt;Quick introduction to OpenSocial and Shindig &lt;/li&gt;
&lt;li&gt;Overview of products/services that leverage OpenSocial &lt;/li&gt;
&lt;li&gt;Benefits of social networking in blogs and wikis &lt;/li&gt;
&lt;li&gt;How to support Google Gadgets in Roller and JSPWiki via Shindig &lt;/li&gt;
&lt;li&gt;How to enable social features in Roller and JSPWiki via Shindig &lt;/li&gt;
&lt;li&gt;How to add comprensive social graph support to Roller and JSPWiki via SocialSite &lt;/li&gt;
&lt;li&gt;How to create an OpenSocial Applications that access Roller and JSPWiki &lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;I&amp;#39;m already working on the demos and slides for this as it&amp;#39;s going to be quite a bit of work. Fortunately, I&amp;#39;ll be able to recycle some of the material in some other upcoming gigs.&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/more_about_the_theme</guid>
    <title>More about Fauxcoly</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/more_about_the_theme</link>
    <pubDate>Thu, 8 Jan 2009 22:34:07 +0000</pubDate>
    <category>Roller</category>
    <category>apacheroller</category>
    <category>themes</category>
    <category>yui</category>
<atom:summary type="html">Fauxcoly is a new Roller theme that I designed over the winter break and the one that you see here on this blog. I wanted a new theme that&amp;#39;s simple, easy to maintain, exposes my non-blog activities like Twitter, explains itself and takes full advantage of Roller theme system. This post explains the design and how to try the theme out.&amp;nbsp;</atom:summary><description>&lt;p&gt;Fauxcoly is the new Roller theme that I designed over the winter break and the one that you see here on this blog. I wanted a new theme that&amp;#39;s simple, easy to maintain, exposes my non-blog activities like Twitter, explains itself and takes full advantage of Roller theme system. Initially, I was planning on incorporating Google Friend Connect but I decided to focus on the theme first then decide how to use the Google widgets for comments, activity display, etc. This post provides some details about the theme&amp;#39;s design, its features and how to set it up.&lt;/p&gt;


&lt;h4&gt;Layout based on YUI Grids CSS&lt;/h4&gt;

&lt;p&gt;The theme uses YUI Grids CSS for layout and a &lt;a href=&quot;http://www.alistapart.com/articles/fauxcolumns/&quot;&gt;faux-columns&lt;/a&gt; background image that I created in &lt;a href=&quot;http://www.pixelmator.com/&quot;&gt;PixelMator&lt;/a&gt;. Using &lt;a href=&quot;http://developer.yahoo.com/yui/grids/&quot;&gt;YUI Grids CSS&lt;/a&gt; is easy. There are just a couple of steps.&lt;/p&gt;

&lt;p&gt;You organize your pages into the divs that YUI expects: hd, bd and ft. You wrap those in the &amp;quot;document&amp;quot; div, give it an id that specifies one of four standard pages sizes and a class that specifies one of six standard layouts. For Fauxcoly, I used &lt;code&gt;id=&amp;quot;doc2&amp;quot;&lt;/code&gt; to specify a 950px wide and centered layout and &lt;code&gt;class=&amp;quot;yui-t6&amp;quot;&lt;/code&gt; to specify a 300px right-sidebar layout. So, all of the pages in the theme are setup like so:&lt;/p&gt;

&lt;pre&gt;

&amp;lt;div id=&amp;quot;doc2&amp;quot; class=&amp;quot;yui-t6&amp;quot;&amp;gt
   &amp;lt;div id=&amp;quot;hd&amp;quot;&amp;gt &lt;b&gt;header content&lt;/b&gt; &amp;lt/div&amp;gt;
   &amp;lt;div id=&amp;quot;bd&amp;quot;&amp;gt
      &amp;lt;div id=&amp;quot;yui-main&amp;quot;&amp;gt; 
         &amp;lt;div class=&amp;quot;yui-b&amp;quot;&amp;gt; &lt;b&gt;main content&lt;/b&gt; &amp;lt/div&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;div class=&amp;quot;yui-b&amp;quot;&amp;gt; &lt;b&gt;sidebar content&lt;/b&gt; &amp;lt;/div&amp;gt;  
   &amp;lt/div&amp;gt;
   &amp;lt;div id=&amp;quot;ft&amp;quot;&amp;gt &lt;b&gt;footer content&lt;/b&gt; &amp;lt/div&amp;gt;
&amp;lt/div&amp;gt;

&lt;/pre&gt;

&lt;p&gt;And second, you include the appropriate YUI Grid CSS includes in your HTML. I put the whole of YUI in the directory /roller-ui/yui, so my includes look like this:&lt;/p&gt;

&lt;pre&gt;

&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=
   &amp;quot;$url.site/roller-ui/yui/build/reset-fonts-grids/reset-fonts-grids.css&amp;quot; /&amp;gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=
   &amp;quot;$url.site/roller-ui/yui/build/base/base-min.css&amp;quot; /&amp;gt;

&lt;/pre&gt;

&lt;h4&gt;Roller action pages&lt;/h4&gt;

&lt;p&gt;In Roller 4.0 we introduced the Template Action concept, wherein each theme can define pages for a standard set of actions shown below. Fauxcoly takes full advantage of this and defines a specialized template for each supported action types. Here are the actions Roller supports:&lt;/p&gt;

&lt;table border=&quot;0&quot; style=&quot;margin-left:2em;&quot;&gt;
&lt;tr&gt;&lt;td&gt;&lt;b&gt;Action&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Weblog&lt;/td&gt;       &lt;td&gt;Template used to display main page of weblog&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Permalink&lt;/td&gt;    &lt;td&gt;To display a single weblog entry&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Search&lt;/td&gt;       &lt;td&gt;To display search results&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TagsIndex&lt;/td&gt;    &lt;td&gt;To display entries that match one or more tags&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Custom&lt;/td&gt;       &lt;td&gt;Themes can define any number of custom templates&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;


&lt;h4&gt;Fauxcoly pages and features&lt;/h4&gt;

&lt;p&gt;Here&amp;#39;s a rundown of the pages defined in Fauxcoly and the features of each.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Weblog page&lt;/b&gt;. This displays the main page of the weblog, a page-able view of the most recent weblog entries in the blog. Also:
   &lt;ul&gt;
      &lt;li&gt;Search box that does full text search on weblog entries&lt;/li&gt;
      &lt;li&gt;Welcome message and subscribe button&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://gmpg.org/xfn/&quot;&gt;XHTML Friends Network&lt;/a&gt; (XFN) of follow me links to owner&amp;#39;s other sites&lt;/li&gt;
      &lt;li&gt;Sidebar display of frequently used tags, linked to Tags Index page&lt;/li&gt;
      &lt;li&gt;Sidebar display of latest tweets, photo uploads and bookmarks&lt;/li&gt;
   &lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Permalink page&lt;/b&gt;. Displays one individual weblog entry.
   &lt;ul&gt;
      &lt;li&gt;Welcome message with post to Delicious, Digg and Slashdot buttons&lt;/li&gt;
      &lt;li&gt;Shows list of recent related entries, i.e. those in same category&lt;/li&gt;
      &lt;li&gt;Links to navigate to next and previous entries&lt;/li&gt;
   &lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;About page&lt;/b&gt;. Shows an about this weblog message that you can edit as a weblog entry. 
   &lt;ul&gt;
      &lt;li&gt;Welcome message and subscribe button&lt;/li&gt;
      &lt;li&gt;XHTML Friends Network (XFN) of follow me links to owner&amp;#39;s other sites&lt;/li&gt;
   &lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Tags Index page&lt;/b&gt;. Shows most recent entries tagged with one or more tags, allows paging to previous and next pages of entries. The page title and heading make it clear you are looking at filtered results and the sidebar provides a link back to the main page of the weblog.&lt;br&gt;&lt;br&gt;&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Search page&lt;/b&gt;. Shows search results and allows paging to previous and next pages of entries. The page title and heading make it clear you are looking at search results and the sidebar provides a link back to the main page of the weblog.&lt;br&gt;&lt;br&gt;&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Archives page&lt;/b&gt;. Allows you to browse archives using the &amp;quot;big calendar&amp;quot; and provides links to most recent 30 entries.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Setting up Fauxcoly&lt;/h4&gt;

&lt;p&gt;Because of all the features, this theme is a little more difficult to setup than your average Roller theme. It is possible to setup the theme without actually customizing it via HTML/CSS edits, but you will need to be an admin user on your blog server to do a full setup. To help you along, when you first install the theme it will display the pointers below.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Welcome message&lt;/b&gt;. Fauxcoly uses your weblog&amp;#39;s About message as the welcome message. You can set your About message via your weblogs settings page.&lt;/p&gt;

&lt;p&gt;&amp;lt;img style=&amp;quot;margin-left:2em&amp;quot; src=&amp;quot;http://rollerweblogger.org/roller/resource/note-welcome.png&amp;quot; 
alt=&amp;quot;note about welcome&amp;quot; /&amp;gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Follow me links&lt;/b&gt;. Fauxcoly expects your weblog to have a bookmark folder caller &amp;quot;me&amp;quot; with links to your social network profile pages and other sites. It will display those bookmarks as XFN &amp;quot;me&amp;quot; links compatible with Google&amp;#39;s &lt;a href=&quot;http://code.google.com/apis/socialgraph/&quot;&gt;Social Graph API&lt;/a&gt;. For best results, specify a 14x4 pixel image for each link.&lt;/p&gt;

&lt;p&gt;&amp;lt;img style=&amp;quot;margin-left:2em&amp;quot; src=&amp;quot;http://rollerweblogger.org/roller/resource/note-melinks.png&amp;quot; 
alt=&amp;quot;note about me links&amp;quot; /&amp;gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;All feeds&lt;/b&gt;. Fauxcoly uses Roller&amp;#39;s built in Planet aggregator to display your latest tweets, photos and bookmarks. To set this you, you&amp;#39;ll need admin privileges on Roller. Create an aggregation group called &amp;quot;allfeeds&amp;quot; and include in it your blog feed, Twitter feed, Delicious.com feed and Flickr feed.&lt;/p&gt;

&lt;p&gt;&amp;lt;img style=&amp;quot;margin-left:2em&amp;quot; src=&amp;quot;http://rollerweblogger.org/roller/resource/note-allfeeds.png&amp;quot;  
alt=&amp;quot;note about allfeeds&amp;quot; /&amp;gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;About this blog&lt;/b&gt;. To setup the about this blog page, you must create a weblog entry titled &amp;quot;About this blog.&amp;quot; Once you do that, it will appears on your About page.&lt;/p&gt;

&lt;p&gt;&amp;lt;img style=&amp;quot;margin-left:2em&amp;quot; src=&amp;quot;http://rollerweblogger.org/roller/resource/note-about.png&amp;quot; 
alt=&amp;quot;note about about page&amp;quot; /&amp;gt;&lt;/p&gt;


&lt;h4&gt;Download it a try it out&lt;/h4&gt;

&lt;p&gt;Fauxcoly has been tested with Apache Roller 4.0. To install it you simply download it, expand the tarfile into your Roller themes directory and restart Roller. You&amp;#39;ll then be able to pick the theme via the Roller theme chooser. Here&amp;#39;s the download link:&lt;/p&gt;

&lt;p style=&quot;margin-left:2em;&quot;&gt;&lt;a href=&quot;http://people.apache.org/~snoopdave/themes/fauxcoly-20090108.tgz&quot;&gt;fauxcoly-20090108.tgz&lt;/a&gt; (496KB gzipped tarfile)&lt;/p&gt;
</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/eclectic_roller_hacks</guid>
    <title>Eclectic Roller hacks</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/eclectic_roller_hacks</link>
    <pubDate>Wed, 7 Jan 2009 18:03:25 +0000</pubDate>
    <category>Roller</category>
    <category>apacheroller</category>
<description>Sun&amp;#39;s CTO for UK and Ireland, Wayne Horkan, is a bit of a Roller hacker, and I mean that in the nicest way possible &lt;img src=&quot;https://rollerweblogger.org/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot;&gt; His blog has always been a showcase for what you can do with Roller template programming, although recently he has adopted a more simple and clean design. Wayne just posted a set of three interesting and useful Roller hacks on his blog &lt;a href=&quot;http://blogs.sun.com/eclectic/&quot;&gt;Eclectic&lt;/a&gt;:

&lt;ul&gt;
  &lt;li&gt;
    &lt;a href=&quot;http://blogs.sun.com/eclectic/entry/roller_weblogger_next_previous_macro&quot;&gt;New next-previous macro&lt;/a&gt;: this one is useful for showing a reader where they are in a blog, which post they are reading and the names of the next and previous posts; sorta like the &amp;quot;current location&amp;quot; sidebar in &lt;a href=&quot;http://blogs.sun.com/greimer/&quot;&gt;Greg Reimer&lt;/a&gt;&amp;#39;s theme.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;a href=&quot;http://blogs.sun.com/eclectic/entry/roller_weblogger_related_entries_macro&quot;&gt;Related entries&lt;/a&gt;: this is designed for use on an individual entry page and shows entries that are related to the entry being viewed based on tag and category relationships. This is an especially good hack because the code is a little scary; it iterates through the most recent 1000 posts in the entry&amp;#39;s category, then the most recent 1000 entries in any category and then it does some analysis. I suspect this gives blogs.sun.com a bit of a workout, but it&amp;#39;s serving four million hits/day at &lt;a href=&quot;http://rollerweblogger.org/roller/entry/details_of_roller_setup_at&quot;&gt;97% idle&lt;/a&gt; so that should be no problem, no?
  &lt;/li&gt;
  &lt;li&gt;
    &lt;a href=&quot;http://blogs.sun.com/eclectic/entry/roller_weblogger_archive_menu_macro&quot;&gt;Archive macro&lt;/a&gt;: this one shows a blogger.com-like list of links to recent month&amp;#39;s entries. Would be a little nicer if it displayed a count of entries for each month, but I don&amp;#39;t think that&amp;#39;s possible with Roller&amp;#39;s current template system and models.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nice stuff. Have you got any Roller hacks to share?&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/fauxcoly_and_xhtml</guid>
    <title>Fauxcoly and XHTML</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/fauxcoly_and_xhtml</link>
    <pubDate>Tue, 6 Jan 2009 08:59:36 +0000</pubDate>
    <category>Roller</category>
    <category>apacheroller</category>
    <category>themes</category>
    <category>xhtml</category>
<description>&lt;p&gt;Believe it or not, I&amp;#39;ve never created an XHTML theme for 
&lt;a href=&quot;http://roller.apache.org&quot;&gt;Roller&lt;/a&gt; and I didn&amp;#39;t even notice the XHTML declaration when I put my new theme (which I&amp;#39;m calling &lt;i&gt;Fauxcoly&lt;/i&gt;) together. I did notice when I got over 400 validation errors from the &lt;a href=&quot;http://validator.w3.org&quot;&gt;HTML validator&lt;/a&gt;. So, I worked for a couple of hours last night to fix the errors both in my new theme and in my most recent weblog entries. I also had to fix a couple of Roller bugs, which need to be reported.&lt;/p&gt; 

&lt;p&gt;Now the main pages of my blog validate and I&amp;#39;m brave enough to put this in the theme&amp;#39;s footer.&lt;/p&gt;

&lt;p&gt;
    &lt;a href=&quot;http://validator.w3.org/check?uri=referer&quot;&gt;
    &amp;lt;img src=&amp;quot;http://www.w3.org/Icons/valid-xhtml10-blue&amp;quot;
        alt=&amp;quot;Valid XHTML 1.0 Transitional&amp;quot; height=&amp;quot;31&amp;quot; width=&amp;quot;88&amp;quot; /&amp;gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Having a theme that supports XHTML isn&amp;#39;t enough, of course. You also have to ensure that each blog entry is well formed and comments too. Unfortunately, we don&amp;#39;t have great infrastructure for that in Roller (yet).&lt;/p&gt;

&lt;p&gt;I still plan to release the theme in packaged-theme form, but only after I XHTML-ize it too.&lt;/p&gt;

  </description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/new_year_and_new_theme</guid>
    <title>New Year and new theme</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/new_year_and_new_theme</link>
    <pubDate>Mon, 5 Jan 2009 11:42:26 +0000</pubDate>
    <category>Blogging</category>
    <category>apacheroller</category>
    <category>blogging</category>
    <category>themes</category>
    <category>yui</category>
<description>&lt;p&gt;Happy New Year 2009 to one and all! I took a nice long break from work, complete with a Florida vacation, hot tubbing, theme parks and a mini-vacation to rest-up from the main vacation and now I&amp;#39;m back. I think I&amp;#39;m rested and ready to restart some things including work, of course, and this blog.&lt;/p&gt;

&lt;p&gt;Restarting a blog is not easy, or so I&amp;#39;ve heard. Here&amp;#39;s what I did. I drew a big diagram on the white board with multiple colors, circles and arrows. I did some calculations and eventually figured out that what I need is a new theme. A little bit of eye candy for the couple of folks who end up here after a search gone wrong or accidentally clicking through as they skim over my blog in Google Reader; that&amp;#39;s just what will re-ignite my blogging activities. My problems all have technological solutions. Funny how that works.&lt;/p&gt;

&lt;p&gt;So, if you&amp;#39;ve clicked through to my blog then you&amp;#39;re looking at my new theme and newly restarted blog. Thrilling, huh? It&amp;#39;s a simple faux-column deal like my old theme, but this time I&amp;#39;m taking advantage of Roller&amp;#39;s new &amp;#39;action&amp;#39; pages, I&amp;#39;m using &lt;a href=&quot;http://developer.yahoo.com/yui/grids/&quot;&gt;YUI Grids CSS&lt;/a&gt; to define the layout and I&amp;#39;m including content from my other sites (Twitter, Flickr, Delicious, etc.) via aggregation. I&amp;#39;ll provide some more details about the theme and it&amp;#39;s features (and a download) in a subsequent post, after I&amp;#39;ve gotten some real work done.&lt;/p&gt;
</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/details_of_roller_setup_at</guid>
    <title>Details of Roller setup at blogs.sun.com</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/details_of_roller_setup_at</link>
    <pubDate>Tue, 18 Nov 2008 15:33:52 +0000</pubDate>
    <category>Roller</category>
    <category>apacheroller</category>
    <category>bsc</category>
    <category>java</category>
    <category>sun</category>
<description>&lt;p&gt;Meena Vyas, Murthy Chintalapati and Allen Gilliland just published an article on BigAdmin that describes the architecture of &lt;a href=&quot;http://blogs.sun.com&quot;&gt;blogs.sun.com&lt;/a&gt;, a Roller, Sun Web Server, Memcached and MySQL based site that averages 4 million hits a day with its two SunFire T2000 servers at 97% idle. You can get the article for free (registration required) here: &lt;a href=&quot;http://www.sun.com/bigadmin/features/articles/sunblogs.jsp&quot;&gt;Sun Blogs: A Sun Java System Web Server 7.0 Reference Deployment&lt;/a&gt;&lt;/p&gt;

   &amp;lt;img src=&amp;quot;http://rollerweblogger.org/roller/resource/bsc-architecture.png&amp;quot; 
      title=&amp;quot;blogs.sun.com architecture&amp;quot; alt=&amp;quot;diagram&amp;quot; /&amp;gt;
</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/social_roller</guid>
    <title>Social Roller</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/social_roller</link>
    <pubDate>Mon, 25 Aug 2008 19:51:31 +0000</pubDate>
    <category>Social Software</category>
    <category>apacheroller</category>
    <category>java</category>
    <category>socialsite</category>
<description>&amp;lt;img src=&amp;quot;http://rollerweblogger.org/roller/resource/socialroller-ss.jpg&amp;quot; 
title=&amp;quot;SocialSite - Roller demo screenshot from JavaOne 2008&amp;quot; align=&amp;quot;right&amp;quot; 
vspace=&amp;quot;15px&amp;quot; hspace=&amp;quot;15px&amp;quot; /&amp;gt;

&lt;p&gt;We demonstrated the &lt;a href=&quot;http://socialsite.dev.java.net&quot;&gt;Project SocialSite&lt;/a&gt; widgets in &lt;a href=&quot;http://roller.apache.org&quot;&gt;Roller&lt;/a&gt; at JavaOne, but we didn&amp;#39;t show much other than just the basic widgets. We modified a Roller front-page theme to include a people directory, added a profile page for each user and slapped the widgets on the page. It was pretty rough, as you can see on the right, like our other SocialSite demo vehicles.&lt;/p&gt;

&lt;p&gt;This week, I&amp;#39;m working to put together a much better demonstration, something useful enough to deploy to our internal blog site at Sun. Since I have limited time and I really need to get back to working on the SocialSite widgets and web services, I&amp;#39;ve been thinking about minimum set of features needed to add some value. Here&amp;#39;s what I think we need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Landing page&lt;/b&gt;: shows activities of your friends and groups, your inbox of social requests and place for you to update your status. This could be added to Roller&amp;#39;s Main Menu page or to pages of the Front Page blog, which is my preferred option.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Personal profile page&lt;/b&gt;: shows your mugshot and the subset of your profile information that the viewer is allowed to see. Shows your activities and the OpenSocial gadgets you have installed. This could be done in the pages of each user&amp;#39;s blog, which would give folks complete control of profile layout via page templates. Or I could be done in the pages of the Front Page blog.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Activity per entry or comment&lt;/b&gt;: whenever you publish a weblog post, or comment on one, an entry will be added to your activity feed so that your friends can see what you&amp;#39;re doing. This will be implemented as a feature of a Roller-specific OpenSocial Gadget.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Protected entries&lt;/b&gt;: ability to publish blog entries that are visible only to your friends via the Roller Gadget.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most of the above items should be pretty easy with the SocialSite widgets, but I&amp;#39;m sure I&amp;#39;ll run into a snag or two at least. I always do. I&amp;#39;ll post again next week and let you know how far I got.&lt;/p&gt;
</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/howto_memcached_with_roller</guid>
    <title>HOWTO: Configure Roller to use Memcached</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/howto_memcached_with_roller</link>
    <pubDate>Thu, 6 Mar 2008 17:43:19 +0000</pubDate>
    <category>Roller</category>
    <category>apacheroller</category>
    <category>memcached</category>
<atom:summary type="html">In my last post, I explained the details of Roller cache configuration and I mentioned that Roller&amp;#39;s caching system is pluggable but I didn&amp;#39;t explain what that really buys you. Basically, what it means is that you can replace Roller&amp;#39;s in-memory LRU caching mechanism with something else. In this blog entry, I&amp;#39;ll explain how to do that.</atom:summary><description>&lt;p&gt;In my last post, I explained the details of &lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/howto_configure_roller_caching&quot;&gt;Roller cache configuration&lt;/a&gt; and I mentioned that Roller&amp;#39;s caching system is pluggable but I didn&amp;#39;t explain what that really buys you. Basically, what it means is that you can replace Roller&amp;#39;s in-memory LRU caching mechanism with something else. In this blog entry, I&amp;#39;ll explain how to do that and specifically, how to replace Roller&amp;#39;s built-in cache with the popular &lt;a class=&quot;external&quot; href=&quot;http://www.danga.com/memcached&quot;&gt;Memcached&lt;/a&gt; caching system via the Roller Memcached plugin, which, like the rest of the Roller caching system was written by Allen Gilliland for use on &lt;a class=&quot;external&quot; href=&quot;http://blogs.sun.com&quot;&gt;blogs.sun.com&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;First, what is Memcached? Here&amp;#39;s what the Memcached web site says:
&lt;/p&gt;
&lt;dl&gt;&lt;dt&gt;&lt;/dt&gt;&lt;dd&gt;&lt;i&gt;&amp;quot;Memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.&lt;/i&gt;&lt;/dd&gt;&lt;/dl&gt;
&lt;dl&gt;&lt;dt&gt;&lt;/dt&gt;&lt;dd&gt;Danga Interactive developed memcached to enhance the speed of LiveJournal.com, a site which was already doing 20 million+ dynamic page views per day for 1 million users with a bunch of webservers and a bunch of database servers. memcached dropped the database load to almost nothing, yielding faster page load times for users, better resource utilization, and faster access to the databases on a memcache miss.&amp;quot;&lt;i&gt;&lt;/i&gt;&lt;/dd&gt;&lt;/dl&gt;
&lt;p&gt;&lt;i&gt;Lots of big sites use Memcached for distributed caching. In addition to LiveJournal, there&amp;#39;s also Wikipedia, Slashdot, SourceForge and  our very own blogs.sun,com. If you&amp;#39;re wanting to use Memcached, then you&amp;#39;re in good company.
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Why would you want to use Memcached with Roller? Well, if you are running a large Roller site and you&amp;#39;ve got multiple instances of Roller running then you might run into problems with cache consistency. A blog update that hits server A will update the cache on server A, but server B will still have the old blog data for some time. Using a distributed cache will solve this problem. Another, hopefully &lt;/i&gt;much&lt;i&gt; less common, reason for wanting to use Memcache is to avoid using the JVM heap -- some folks have experienced some &lt;a class=&quot;external&quot; href=&quot;http://www.javalobby.org/java/forums/t99490.html&quot;&gt;weird problems&lt;/a&gt; with the JVM heap management and might want to use plain old C memory management instead via Memcached.
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;br&gt;
&lt;b&gt;Download and install Memcached&lt;/b&gt;
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;The first thing you need to do is to get yourself a copy of Memcached. You can get downloads and docs on the &lt;a class=&quot;external&quot; href=&quot;http://www.danga.com/memcached&quot;&gt;Memcached web site&lt;/a&gt;. You can build it yourself if you&amp;#39;re a manly man or a womanly woman, but there are some much easier options. 
&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;For example, on Ubuntu or Debian, you can install Memcached with one simple command:
&lt;/i&gt;&lt;/p&gt;
&lt;pre&gt;

   apt-get install memcached

&lt;/pre&gt;
&lt;p&gt;Or, if you&amp;#39;re on Solaris and you&amp;#39;re a &lt;a class=&quot;external&quot; href=&quot;http://www.blastwave.org/&quot;&gt;Blastwave&lt;/a&gt; user, then you can do this:
&lt;/p&gt;
&lt;pre&gt;

   pkg-get install memcached

&lt;/pre&gt;
&lt;p&gt;On Mac, you can probably do something similar with &lt;a class=&quot;external&quot; href=&quot;http://www.finkproject.org&quot;&gt;Fink&lt;/a&gt; or &lt;a class=&quot;external&quot; href=&quot;http://www.macports.org&quot;&gt;MacPorts&lt;/a&gt;. There&amp;#39;s also a &lt;a class=&quot;external&quot; href=&quot;http://jehiah.cz/projects/memcached-win32&quot;&gt;Win32 version&lt;/a&gt; for those less fortunate.
&lt;/p&gt;
&lt;p&gt;And, of course, you&amp;#39;ll have to install Memcached on each machine on which you want to act as a cache server.
&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&lt;br&gt;
&lt;b&gt;Setup your Memcached caches&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;Now that you&amp;#39;ve got Memcached installed, you need to start it up. 
&lt;/p&gt;
&lt;p&gt;For example, let&amp;#39;s say you want to have two 2GB caches running on your two machines with IP addresses 10.0.0.40 and 10.0.0.41. One one maching you&amp;#39;d run this command to start the Memcached daemon with 2048M RAM and listening on port 11211.
&lt;/p&gt;
&lt;pre&gt;

$ ./memcached -d -m 2048 -l 10.0.0.40 -p 11211 

&lt;/pre&gt;
And on your other machine 10.0.0.41, you&amp;#39;d start Memcached with this command:
&lt;pre&gt;

$ ./memcached -d -m 2048 -l 10.0.0.41 -p 11211

&lt;/pre&gt;
&lt;p&gt;And, you&amp;#39;ll almost certainly want to set things up so that your Memcached daemons start up whenever your servers start up. On Solaris or Linux that means adding things under the /etc/init.d directory. You&amp;#39;ll have to figure that out for yourself.
&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&lt;br&gt;
&lt;b&gt;Download and install the Roller Memcached plugin&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;Next, you need to get yourself a copy of the Roller Memcached plugin and install it into Roller. You can get it from the Roller Support project. Go to the project&amp;#39;s &lt;a class=&quot;external&quot; href=&quot;https://roller.dev.java.net/servlets/ProjectDocumentList&quot;&gt;file download page&lt;/a&gt; and navigate to &lt;b&gt;Roller Support 4.0 / Plugins&lt;/b&gt;, or just use the link below:
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;external&quot; href=&quot;https://roller.dev.java.net/files/documents/190/88023/roller-memcached-4.0.tar.gz&quot;&gt;https://roller.dev.java.net/.../roller-memcached-4.0.tar.gz&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Unzip that file and add the two jars within to your Roller install&amp;#39;s WEB-INF/lib directory. Assuming that the Roller context is in the directory $ROLLER_HOME, you might do that like so:
&lt;/p&gt;
&lt;pre&gt;

$ tar xzvf roller-memcached-4.0.tar.gz 
$ cp roller-memcached/* $ROLLER_HOME/WEB-INF/lib

&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;br&gt;
&lt;b&gt;Configure the Memcached Plugin and Roller caching&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;The final step is to configure Roller to use Memcached for caching.  To do that, you simply add some properties to your roller-custom.properties override file. To use Memcached for all of your caches, set the following property:
&lt;/p&gt;
&lt;pre&gt;   

   cache.defaultFactory=\ 
      net.java.roller.tools.cache.memcached.MemcachedLRUCacheFactoryImpl

&lt;/pre&gt;
&lt;p&gt;If you don&amp;#39;t want to use Memcached for all of your caches, then configure it for just the caches you want. Refer to my &lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/howto_configure_roller_caching&quot;&gt;previous post about Roller caching&lt;/a&gt; for details, but basically you just set the factory for the cache to use the Memcached cache factory. For example, to use Memcached for caching feeds only, you&amp;#39;d add this instead of the above:
&lt;/p&gt;
&lt;pre&gt;

   cache.weblogfeed.factory=\ 
      net.java.roller.tools.cache.memcached.MemcachedLRUCacheFactoryImpl

&lt;/pre&gt;
&lt;p&gt;You also need to tell the Roller Memcached plugin how to find the Memcached servers. To continue with the example we started above with servers 10.0.0.40 and 10.0.0.41, you could add this to set the default Memcached servers for all caches:
&lt;/p&gt;
&lt;pre&gt;

cache.memcached.default.servers=10.0.0.40:11211, 10.0.0.41:11211 

&lt;/pre&gt;
&lt;p&gt;You can also set the servers to be used for specific caches . For example, here we set the weblog feed cache to use two different Memcached servers from that used by the weblog page cache:
&lt;/p&gt;
&lt;pre&gt;

cache.memcached.weblogpage.servers=10.0.0.40:11211, 10.0.0.41:11211 
cache.memcached.weblogfeed.servers=10.0.0.50:11211, 10.0.0.51:11211

&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;br&gt;
&lt;b&gt;Fire it up!&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;Now you&amp;#39;re ready to start up Roller. You might want to add some debug logging the first time around just to make sure things are working. Roller uses Log4j caching and you can add the Log4j properties directly to your roller-custom.properties file. For example, to enable debug caching for the Roller Memcached plugin you&amp;#39;d add this:
&lt;/p&gt;
&lt;pre&gt;

log4j.category.net.java.roller.tools.cache.memcached=DEBUG

&lt;/pre&gt;
&lt;p&gt;And that&amp;#39;s that. Let me know via comments if I&amp;#39;ve left something out or gotten something wrong. I&amp;#39;d also like to hear if you&amp;#39;ve had some success with Roller and Memcached. &lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/blogcentral_jpost_com</guid>
    <title>blogcentral.jpost.com</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/blogcentral_jpost_com</link>
    <pubDate>Wed, 5 Mar 2008 10:44:18 +0000</pubDate>
    <category>Roller</category>
    <category>apacheroller</category>
<description>&lt;p&gt;The Jerusalem Post is blogging with &lt;a href=&quot;http://roller.apache.org&quot;&gt;Apache Roller&lt;/a&gt;. (Belated) Congratulations to developer Odelya Glick and the rest of the JPost web team on the site launch.&lt;/p&gt;
&lt;a href=&quot;http://blogcentral.jpost.com/&quot;&gt;
&lt;img src=&quot;http://rollerweblogger.org/roller/resource/blogcentral-jpost.png&quot; alt=&quot;blog central logo&quot;&gt;
&lt;/a&gt;&lt;br&gt;

[&lt;a href=&quot;http://blogcentral.jpost.com/&quot;&gt;link&lt;/a&gt;]</description>  </item>
  <item>
    <guid isPermaLink="true">https://rollerweblogger.org/roller/entry/howto_configure_roller_caching</guid>
    <title>HOWTO: Configure caching in Apache Roller</title>
    <dc:creator>Dave Johnson</dc:creator>
    <link>https://rollerweblogger.org/roller/entry/howto_configure_roller_caching</link>
    <pubDate>Mon, 3 Mar 2008 12:15:00 +0000</pubDate>
    <category>General</category>
    <category>apacheroller</category>
    <category>blogging</category>
    <category>caching</category>
    <category>java</category>
    <category>memcached</category>
<atom:summary type="html">Since the early days, Roller has included a pluggable caching system for blog pages and feeds. In Roller 2.1 (early 2006), Sun&amp;#39;s Allen Gilliland rewrote the whole cache system and made it much more flexible and much easier to configure. But, apart from comments in the configuration file, we never provided any documentation for the cache system. In this post, I&amp;#39;ll start to correct that. I&amp;#39;ll explain the basics of how the cache works and how to configure it.</atom:summary><description>&lt;p&gt;Since the early days, Roller has included a pluggable caching system for blog pages and feeds. In Roller 2.1 (early 2006), Sun&amp;#39;s Allen Gilliland rewrote the whole cache system and made it much more flexible and much easier to configure. But, apart from comments in the configuration file, we never provided any documentation for the cache system. In this post, I&amp;#39;ll start to correct that. I&amp;#39;ll explain the basics of how the cache works and how to configure it.
&lt;/p&gt;&lt;p&gt;&lt;b&gt;Overview&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;Displaying a blog page can take dozens of database queries and database queries can be expensive. They take time, consume CPU cycles and typically use network bandwidth. Roller&amp;#39;s built-in caching system addresses this problem by caching generated pages and feeds. By default, Roller caches pages and feeds in memory using a Least Recently Used (LRU) algorithm and by default caches are configured appropriately for a 100 blog system. If you are running a site with more blogs or a very high-traffic site, you should consider changing the caching configuration. First,  let&amp;#39;s discuss how the caches work.
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Cache invalidation and expiration&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;When Roller generates a page, it puts a copy of that page in a cache. The next time that a request comes in for that page, Roller returns the page from the cache. When a blog changes, Roller &lt;i&gt;invalidates&lt;/i&gt; the blog&amp;#39;s cache enties, i.e. it throws that blog&amp;#39;s pages out of the cache. And by default, when the cache is full and we need to add a new entry to the cache, we push out the least recently used entry in the cache to make room; that&amp;#39;s the LRU algorithm I mentioned before.
&lt;/p&gt;
&lt;p&gt;Sometimes, a blog page includes things that change frequently like a list of referrers or a server-side hit counter or data from some other source. We don&amp;#39;t want to invalidate a blog&amp;#39;s cache entries every time a hit is counted. That would defeat the purpose of the cache. So, by default Roller uses an &lt;i&gt;expiring cache&lt;/i&gt; that automatically invalidates cache entries after timeout period. 
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Cache configuration&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;To configure the Roller caches, you add properties to your roller-custom.properties properties override file. You can learn more about this override in Section 6 of the Roller 4.0 Installation Guide and you can find a complete list of the properties you can override in Section 11.
&lt;/p&gt;
&lt;p&gt;First, let&amp;#39;s cover the default caching mechanism. If you&amp;#39;re running  a large and high-traffic site, you &lt;i&gt;might&lt;/i&gt; want to consider using the non-expiring cache or setting the cache timeout very high (4, 6 or 12 hours).  Here&amp;#39;s how you tell all caches to use the non-expiring cache:
&lt;/p&gt;
&lt;pre&gt;

   cache.defaultFactory=org.apache.roller.util.cache.LRUCacheFactoryImpl

&lt;/pre&gt;
However, if you do that, then blogs that use Roller&amp;#39;s built-in hit counter or that display referrers will not be updated as often as your users would like. So, you might want to consider removing the #showReferrersList() macro from any themes in use on your site.
&lt;p&gt;&lt;b&gt;Configuring Roller&amp;#39;s four page and feed caches&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;You can configure caching differently for the different types of pages and feeds produced by Roller. There are four separately configurable caches. Here are their names and an explanation of each:
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;b&gt;weblogpages&lt;/b&gt;: this cache is used to cache weblog pages
&lt;/li&gt;&lt;li&gt;&lt;b&gt;weblogfeeds&lt;/b&gt;: this one is for weblog RSS and Atom feeds
&lt;/li&gt;&lt;li&gt;&lt;b&gt;sitewide&lt;/b&gt;: this is for the aggregated front-page blog and it&amp;#39;s RSS/Atom feeds
&lt;/li&gt;&lt;li&gt;&lt;b&gt;planet&lt;/b&gt;: this is for feeds produced by Roller&amp;#39;s built-in aggregator
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;And for each one of these caches you can configure these properties:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;enabled&lt;/b&gt;: for debugging purposes you can completely disable a cache by setting it&amp;#39;s enabled property to &amp;#39;false&amp;#39; 
&lt;/li&gt;&lt;li&gt;&lt;b&gt;size&lt;/b&gt;: sets the total number of entries allowed in a cache, each entry holds one page or feed response.
&lt;/li&gt;&lt;li&gt;&lt;b&gt;timeout&lt;/b&gt;: the number of seconds that an entry is allowed to remain in the cache. After this time expires the entry will be removed from the cache.
&lt;/li&gt;&lt;li&gt;&lt;b&gt;factory&lt;/b&gt;: set the classname of the cache factory to be used for this cache, otherwise default cache will be used
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Cache property names follow the pattern cache... The best way to understand how this works is to look at the default cache configuration used by Roller:
&lt;/p&gt;
&lt;pre&gt;

# Weblog page cache (all the weblog content)
cache.weblogpage.enabled=true
cache.weblogpage.size=400
cache.weblogpage.timeout=3600

# Feed cache (xml feeds like rss, atom, etc)
cache.weblogfeed.enabled=true
cache.weblogfeed.size=200
cache.weblogfeed.timeout=3600

# Site-wide cache (all content for site-wide frontpage weblog)
cache.sitewide.enabled=true
cache.sitewide.size=50
cache.sitewide.timeout=1800

# Planet cache (planet feeds)
cache.planet.enabled=true
cache.planet.size=10
cache.planet.timeout=1800

&lt;/pre&gt;
&lt;p&gt;The default cache configurations above are setup for a 100 weblog system.  To some extent, this is guess-work. For example, we&amp;#39;ve decided to cache 4 pages and 2 feeds for each blog. That&amp;#39;s how we arrived a cache.weblogpage.size=400 and cache.weblogfeed.size=200. And we&amp;#39;ve decided to cache blog entries for 30 minutes and feeds for one hour. That&amp;#39;s how we arrived at cache.weblogpage.size=400 and cache.weblogfeed.timeout=3600. 
&lt;/p&gt;
&lt;p&gt;You might decide to do things a little differently on your Roller system.  Copy the properties above to your roller-custom.properties file and set them to values you thing are appropriate for number of weblogs, average page size, traffic levels and JVM heap size of your Roller installation.
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Conclusion&lt;/b&gt;
&lt;/p&gt;
&lt;p&gt;Roller default cache configuration will work well without modification for a small to medium size Roller installation, but for large high-traffic sites you should increase cache sizes and think carefully about timeouts. And if you&amp;#39;re running Roller in a cluster you might want to consider using a distributed caching system like &lt;a class=&quot;external&quot; href=&quot;http://www.danga.com/memcached&quot;&gt;memcached&lt;/a&gt;. I&amp;#39;ll discuss that in my next HOWTO.
&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</description>  </item>
</channel>
</rss>