Blog vs. blog via The Register
Red Hat opens losing propaganda offensive against Sun | The Register: "Tiemann will lose this battle of blogging wits in a big way. It's probably best, Michael, if you toddle back to the labs and find new and improved ways to put proprietary wrappers around Torvalds' code."
Ouch!
HowTo RSS Feed State
Randy Charles Morin explains "how to properly publish and pull RSS content from the Web" using skipHours, skipDays, TTL, ETags, GZip, and HTTP cache control headers. (Via breyten's del.icio.us links).
Rome v0.4 is available
The Rome project has released another alpha version of the Rome newsfeed library. Rome 0.4 adds adds an HTTP client for fetching feeds and handles XML charset encoding defined by XML 1.0 spec and RFC 3023. The next release will be a beta.
Thanks Sam!
While I was enjoying a soccer double header with Alex and Linus playing back to back games, relaxing at Cupajoes, and rocking at a sold out Wilco show, Sam Ruby was doing my work for me. He dove right into the Roller source code and implemented the hard parts of the RFC 3229 "feed" instance manipulation method. Check it out: FeedDiff for Roller.
Blog vs. blog
I'm not sure why the Redhat exec team decided to respond to Jonathan Schwartz's post about OpenOffice.org instead of one of Schwartz's other Redhat jabs, but I would like to point out that the David Johnson who responded to Redhat is not me.
Roller 0.9.9.5 release on the way
It has been a very long time since the last Roller release. We've got some pretty solid code running on JRoller.com and it is time to get it out there so we can resume main-line Roller development. I'm going to wrap up some security related enhancements, fix as many bugs as I can this week, update the user/install documentation, and shoot for a Roller 0.9.9.5 release some time next week. I have updated the <a href= "http://opensource.atlassian.com/projects/roller/secure/BrowseProject.jspa?id=10000&report=roadmap"> JIRA roadmap to reflect this new plan. I'm not sure I'm going to get all of those fixes in, so feel free to pitch in, but I'm definitely going for secure logins (ROL-476), encrypted passwords (ROL-331), and some form of comment authentication (ROL-477).
Roller hacks: Wellformed rss comments feed for JRoller
You don't have to wait for Roller to add a comments newsfeed, you can do it yourself through the Roller UI just by hacking templates, as illustrated by Richard Osbaldeston who has put together a page template that shows comment. I think Lance and Euxx have shown how to do this before, but Richard's comments feed is an extended RSS 2.0 feed and it also includes trackback:ping, wfw:comment, and slash:comments elements from the corresponding modules. Most excellent.
Richard also wonders aloud about contributing his work to Roller, or at least to the Roller Wiki. Unfortunately, I had to shut down public access to the Roller Wiki due to Wiki vandals/spammers. However, if you have something to contribute please let me know and I'll set you up with a login.
Don't drink and dev
Henri Yandell has joined the Roller project as a committer (welcome Henri!) and he appears to be pretty serious about contributing. He is setting aside a Roller day each week. Thankfully, he decided not to combine Friday pub-time with Roller development. Remember kids, don't drink and dev.
FeedMesh
Sam Ruby: FeedMesh is a group working to establish a "peering network" for decentralized web(site|log) update notifications and content distribution
Bryan Bell themes
I've ported a couple of Bryan Bell's free themes to Roller. I'm still tweaking them, but take a look: I'm hosting them temporarily at Brushed Metal and Movable Manilla. On his site, Bell says "I pretty much feel that the 'free' themes I created are public domain" and "I'd like to encourage anyone to port my themes to whatever platform they use. I do however ask for clear attribution to remain on the theme, and that you in-turn provide your derivative work to other users of your favored blogging tool." I think that means that we can distribute them with Roller as long as we keep the attribution.
Securing Pebble, Roller, and Java web apps in general
Simon Brown has been posting a number of good recommendations for securiting Pebble, but which apply to just about any Java web app. If you are running a public Roller server you should at least implement recommendations #1 and #2.
Additionally, for Roller site admins: if you are running Roller 0.9.8, make sure you are running with the latest security patch, see the Roller project blog for details. If you are running Roller 0.9.9 from CVS make sure you have updated your site since August 2, 2004.
RSS link vs. guid vs. source elements
I've been researching newsfeed formats for various reasons. I've been using Rome to convert to and from various formats and that revealed a problem with Roller's RSS feed. After re-reading the loosey goosey RSS specs, I'm thinking that I it wrong in the Roller RSS feeds. What do you think? Currently, Roller uses the following elements for links:
- <guid isPermaLink="true"> - the permalink
- <link> - the (optional) source link, i.e. the one link that the blog entry is about
- <link> - the permalink
- <guid isPermaLink="true"> - the permalink, same as <link>
- <source url="[url of source]"> - the (optional) source link
Can't tell you yet
I'm sitting on some very big news for Roller and for me, but I have to tell some other folks about it before I can tell you.
Osbald's Roller hacks
Richard Osbaldeston has been doing some Roller macro hacking. His most recent post on the topic explains how to set the title of your Roller weblog to be the same as the title of your most recent weblog entry. We'll have to work on that because it really shouldn't be that hard to do.
Sealing deals faster... with Roller.
Business Week: Jonathan Schwartz, president and chief operating officer of server maker Sun Microsystems (SUNW ), first suspected that his blog was a success when his salespeople began reporting that customers were reading his posts and sealing deals faster.Schwartz saw that as irrefutable proof that his blog, started on June 28, was a gold mine.
Roller roundup.
I've been so busy with other projects, my day job, vacation, and being a Dad that I haven't been able to do much Roller development at all. That's a shame, because we are so close to a Roller 1.0 release. We also need a bug fix release from the Roller 0.9.8 branch, but that is probably not going to happen until things slow down a bit. My development efforts have been at a near standstill, but I've been keeping an eye on Roller. Here's a round-up of recent Roller developments.
John Hoffman of Sun has been giving some thought to the Roller main page and has introduced an interesting sortable interface for blogs.sun.com. John laments the fact that Roller supports only MySQL. With a couple of code changes, Roller 0.9.8 can be made to support PostgreSQL. Roller 1.0 will support PostgreSQL right out of the box.
Lance has been working on improving Roller's search interface and making numerous other fixes.
One blogger tried to install Roller on JBoss and didn't get very far, but I'm not sure why because he does not provide any specifics. Andy Depue is also working on getting Roller to run on JBoss, and trying to get some help on the mailing lists.
I'm not sure why Roller on JBoss is such a pain, but blogger Jeff Sheets observes that Roller on Tomcat just got a whole lot easier thanks to the Roller Demo bundle. I called it the Roller Demo bundle because I'm concerned about supporting HSQLDB for "production" blogging. Should I be?
A couple of JRoller users have complained about the Roller editors recently, so when I heard about the FCK editor I took note. I'm playing with it now in my Roller sandbox, but I'm a little discouraged that it does not support Safari.
It's kinda cool to see a Business Week about a Roller blog entry, even if it doesn't actually mention Roller.
Roller tip: Styling Blog entries according to Blog category
Scott Hudson asks "Is there any way to modify Roller to insert the category information around each entry, so we can do additional CSS styling?" The answer is yes, with a little page template hacking you can do almost anything to your Roller Blog.
To add a div around each entry with a style class that varies with the entry category, you need to add some code to your Blog's day template. Find the foreach loop in your day template that iterates over each day's Blog entries and add a div tag around the contents of that foreach, as shown below. To give each category it's own category, you use a Velocity expression to get the category name $entry.category.name.
#foreach( $entry in $entries )
<p>
<div class="cat_$entry.category.name">
... display one weblog entry, code removed for brevity ...
</div>
</p>
#end
Now that you've got class, you can add some style. You can do this by adding CSS to your main Blog page or to your CSS template if you have one. For example, if you have categories General, Music, and Java and you'd like ot put a red border around your General entries, a green border around your music entries, and a blue border around your Java entries, you would add the following CSS:
.cat_General {
padding: 3px;
border-left: 5px red solid;
border-right: 1px red solid;
border-top: 1px red solid;
border-bottom: 1px red solid;
}
.cat_Music {
padding: 3px;
border-left: 5px green solid;
border-right: 1px green solid;
border-top: 1px green solid;
border-bottom: 1px red solid;
}
.cat_Java {
padding: 3px;
border-left: 5px blue solid;
border-right: 1px blue solid;
border-top: 1px blue solid;
border-bottom: 1px blue solid;
}
Below is a screenshot that shows what this looks like (and yes, I'm aware of the border mix-up on the Music post):

Try Roller, it's easy!
To make it easier for folks to try Roller, I have created a standalone Roller demo by bundling Roller with JSPWiki, Tomcat, and the tiny pure-Java HSQLDB database. Everything is preconfigured and ready to run. All you need to do to try Roller is the following:
1. Download roller-demo-0.9.9.2.zip from SourceForge (an 18MB download) 2. Unzip the file into a directory on your hard-drive (directory name should have no spaces) 3. Ensure that the JAVA_HOME environment variable is set to point to your JDK 4. Ensure that CATALINA_HOME is NOT set in your environment 5. To start Roller, either: - on Windows: open the Roller bin directory and double-click on startup.bat - on UNIX: cd to the Roller bin directory, chmod +x on all files, run ./startup.sh 6. Point your browser at http://localhost:8080 7. Login as testuser1/testuser1, admin/admin, or register as a new user 8. Get rollin'
EZ rollin HSQLDB
I'm messing around with HSQLDB because I need to create an easy-to-install demo-only version of Roller. I want to bundle everything needed to run Roller and make it drop-dead simple to try Roller on your own machine. All that you, the potential Roller user, will have to do is to unzip the distribution file and run a startup script.
To make this work I need Roller, a database, and a Web app server, all bundled together into one downloadable file. That is easy to do: I start with a Tomcat distribution and drop Roller into the webapps directory. When Tomcat starts, Roller will start. Roller won't function without a database, so I need to add the tiny pure-Java HSQLDB database to the mix. I need to get HSQLDB started before Roller starts. This part is not so easy: after looking at the HSQLDB docs I found that I have at least three options:
- Use the "in-memory" version of HSQLDB. With this approach, no HSQLDB starter is necessary. If you use a JDBC connect string of the form jdbc:hsqldb:filepath instead of the normal jdbc:hsqldb:hsql://host:port form, then HSQLDB will start itself inside your process (is that cool - or what!). The problem with this approach is that it requires the person who installs my demo to edit a file - they have to set the path to the HSQLDB, or I have to rely on an unreliable relative path. Another problem is that, in this mode, HSQLDB will not accept JDBC connections from other clients - such as the HSQLDB database manager.
- Add a ServletContextListener to Roller that starts the "standalone" server version of HSQLDB on it's own thread when my Web app starts, on contextInitialized(), and shuts down when my Web app stops, on contextDestroyed(). There are a couple of problems with this approach. First, I don't want to add anything to Roller. Second, I want the database to be available for other Web apps - like JSPWiki which I will include in the demo - to do authentication. Finally, after some experimentation I could not get HSQLDB starting ServletContextListener to start before the other parts of Roller that need a database connection.
- Add a LifecycleListener to the Tomcat server.xml to start the "standalone" server verion of HSQL on it's own thread when Tomcat starts. To enable this, I also add some -D startup parameters to catalina.sh to tell my listener where the database file is and what port to use.
import org.apache.catalina.Lifecycle;
import org.apache.catalina.LifecycleEvent;
import org.apache.catalina.LifecycleListener;
import org.roller.util.HSQLDBUtility;
public class TomcatHSQLDBPlugin implements LifecycleListener {
public void lifecycleEvent(LifecycleEvent event) {
if (event.getType().equals(Lifecycle.START_EVENT)) {
HSQLDBUtility.start();
}
else if (event.getType().equals(Lifecycle.STOP_EVENT)) {
HSQLDBUtility.stop();
}
else {
System.out.println(getClass().getName()+": Not handling LifecycleEvent: "+event.getType());
}
}
}
To plug-in to the Tomcat startup and shutdown process, I had to do two things. First, I placed a jar with my TomcatHSQLDBPlugin and HSQLDBUtility classes in a jar in tomcat/server/lib. Second, I added the following XML to the tomcat/conf/server.xml file along side the listeners already in the file:
<Listener className="org.roller.tomcat.TomcatHSQLDBPlugin" debug="0"/>
That's that. I've got this stuff working now. Next up: JSPWiki integration and then I'll make Roller-Demo available for download on SourceForge.
« Previous page | Main | Next page »