Today's links [March 13, 2006]

  • Windows RSS Platform
    Niall Kennedy also blogged about Windows RSS plaform this past weekend
  • Common Feed Errors
    Sam Ruby posts "An analysis of a week’s work of click-throughs on Feed Validator"


grass logoI just heard from the JavaPosse podcast that the GRASS Geographic Information System (GIS) is back with a new Java/Swing based front-end called JGRASS. The screenshots look pretty nice. Just, so you don't have to endure the absolutely horiffic ad-packed Sys-Con web site, which is linked to in the JavaPosse #40 show notes, here are some better links JGRASS information:
Why do I care? GRASS was my life for most of my early career and I worked with John Prestion in Kingston, Jamaica for over a year. I mentioned GRASS recently  in the eWeek interview and I've mentioned it here on the blog a couple of times before: 1993, Hey, I wrote that and That was fun.

IBM developerWorks: powered by Roller

Bill Higgins makes the first post. Very cool!

What's up with the Windows RSS platform?

The Windows RSS Platform (or Feeds API) is the feed handling engine that powers the new RSS features in IE7. It will also be included in Windows Vista for use by other applications. Note that here, RSS is a generic term meant to include both RSS and Atom -- the Feeds API supports both. The Feeds API is packaged in a DLL called msfeeds.dll and available to programmers as a set of dual-interface COM objects. Here are the features exposed via the Feeds API.
  • Common feed list: list of feeds for current user, organized as folder hierarchy.
  • Feed store: local cache of feeds, feeds available via abstract object model
  • Download engine: for managing and monitoring large enclosure downloads
  • RSS sharing extensions: new XML elements to support bi-directional sync via RSS

The Feeds API gives you access to the current user's feed subscription list, a feed parser that can handle any form of RSS and Atom as well as the IE7 podcast download engine. The parser parses feeds to an abstract object model designed to represent any sort of feed. It handles funky RSS and in some cases prefers the funky elements (e.g. <content:escape> over <description>).

I'd like to learn more about how the Feeds API decides which elements to use, how sync works, and how the whole package compares to the premier Java Feeds API ROME. So, I've downloaded IE7 and started experimenting with the API from C#. I'll be posting more on this topic in the next week or two.

Here are some of the references I've been using to understand the API:

Feeds API docs, specs and whitepapers from Microsoft 

Microsoft employee blogs about the RSS platform

Other blogs about it

Update1: added a couple of new links suggested by Mark Woodman
Update2: added reference to Simple List Extensions
Update3: added link to RSS in Windows Vista presentaton

Tags: topic:[atom], topic:[rss], topic:[ie7], topic:[atom protocol]

Spring weekend

Since the book was supposed to be finished by Friday (more on that later), Andi and her friends left town for a girls beach weekend at Topsail Island. So the boys and I have been fending for ourselves and enjoying a beautiful early spring weekend with temps in the high 70s.

On Friday night we went to dinner early, around 5:30PM, hoping to get an outside table at Mellow Mushroom. The patio was packed with after-workers and college kids, so we settled for an inside table. After eating half a pie and a small hill of black olives, we took a long walk around the Glenwood South area stopping for ice cream at Turkish Delights.

Today, I strapped the bikes on the back of the van and we drove down to Meredith College to ride the NC Museum of Art trail. The kids love the bike bridge. Fortunately, Leo at three is still light enough to ride in the bike seat. We took a ride, crossed the bridge and then walked through some of the outdoor pieces, that's one in the (Treo phone) photo above. After that, we went inside to walk through the European collection. It was a quick walk. Alex and Linus are old enough to appreciate the paintings, but Leo no so much. Then we made our way home. All and all a very nice way to spend a warm spring afternoon.

Ning's Atom protocol based API

The other week, we got the news that the Lucene search engine team chose Atom protocol for it's new Lucene-WS web services interface. Now, Web 2.0 darling has joined the Atom protocol club with the Ning Atom API. Is Atom protocol generic enough to become the standard for REST based web services? Via Sam Ruby.

eWeek: Sun's Open-Source Roller Keeps Blogs Rolling

Daryl Taft of eWeek interviewed me a couple of weeks ago and the resulting article Sun's Open-Source Roller Keeps Blogs Rolling was published today. The article covers Roller history, Apache Roller status, RSS and Atom in Action, the Blogapps project of RSS and Atom utilities and even mentions my year and a half honeymoon in Jamaica as a GRASS consultant. I'm very happy to get some more publicity for Roller and for the book, which will be officiallly complete tomorrow, available in e-book form next week and hopefully printed later this month.

Today's links [March 08, 2006]

Today's links [March 07, 2006]

Raleigh bloggers meetup, Cafe Cyclo tonight

Join us tonight at Cafe Cyclo in Raleigh's Cameron Village at 6:30PM. See Josh's blog for details.

Today is...

...the birthday of a truly great man and a wonderful father. Happy 70th birthday DAD!!!

Charles S. Johnson
(c) Charles S. Johnson, Jr.

Wilco's Jeff Tweedy on the local jock rivalry

Audience member: (screams) Duke sucks!
Jeff Tweedy: Whatever.
Jeff Tweedy: Ah, OK, (pause) Duke sucks!
Audience: (loud applause)
Jeff Tweedy: Unless we're playing Duke, in which case, uh... (mumbles something)

... later, during the encore ...

Jeff Tweedy: (sarcastically) And my sincere congraluations on your sports successes.

And by the way, Wilco rocked! UNC's Memorial Hall is a great place to see a show. It's pretty sure it's been renovated at least once since the last time I saw a rock show there (Hüsker Dü, back in in the stone age).

Roller 2.1 available for download

Roller 2.1 is available (announcement). The major new features are comment management, comment moderation, trackback verification (optional), security improvements, performance improvements, an all-new pluggable cache system and Atom 1.0 support in the integrated planet aggregator. New features are summarized in What's New doc.

Pebble and Blojsom and Atom protocol

I've used code from the excellent Pebble and Blojsom blog servers in the past (and given credit in the Roller CREDITS file). I'd love to be able to contribute back and now there's an opportunity to do that. So to Simon and David (or anybody else hacking those servers), if you want to get Atom protocol working in your server, the easiest way might be for you to bring in some code from Roller. I specifically designed our Atom protocol implementation to allow for sharing and to be free of Roller dependencies.

For example, here's how you'd do it for Pebble:
  • Bring the classes from the package org.roller.presentation.atomapi into Pebble (except for RollerAtomHandler, you won't need that one).
  • You'll also need to bring in the ROME and JDOM jars if you're not aleady using them.
  • Implement the interface AtomHandler with calls to the Pebble backend, call it PebbleAtomHandler or something similar.
  • Change one line of code in the AtomServlet method createAtomRequestHandler() to create your new PebbleAtomHandler instead of the Roller one.
And feel free to pepper me with questions along the way. I'd be happy to help and happy to make changes to make this sharing easier. I'm also considering the idea of an Atom Server Kit package in my Blogapps project (on second thought, ROME might be a better home).

When you're done, head over to the #atom channel on so we can do some interop testing with MatisseBlogger and other Atom protocol clients.

Blog server news

Couple of interesting items in the land of open source blog server software.

First, the Ibiblio folks over at UNC have announced a new project (or is it a new direction for an old project) called Lyceum to modify Wordpress for multi-user blogging. I'm a little surprised by this because I thought Wordpress already supported multi-user, that's what does and that's what the Wordpress/Mu is all about. Update: this post from Matt Mullenweg explains the difference between Wordpress and the Lyceum fork.

I think some of the Computer Science folks at UNC are pushing Roller (ITS already has one), which has been doing multi-user blogging for years now, so it will be interesting to see what UNC chooses for student blogs.

Second, Simon Brown has released milestone 1 of Pebble 2.0. This new version of Pebble will require Java 5.0, something I wish we could do now with Roller. I read recently that he decided to keep Pebble file-system based, which I think is a good choice. Part of the charm of Pebble is the super-easy install.


With the final deadline for my book and my JavaOne presentation on Java and REST: Implementing the Atom protocol coming up on the 10th, I've been spending a lot of time with Atom and specifically the Atom protocol (draft 8). I've been tweaking my BlogClient library, which provides an abstract interface over both Atom protocol and he MetaWeblog API. And, you may be surprised to hear that I've also been spending some time with Netbeans Matisse.

I've been working with Matisse to create MatisseBlogger, a Swing GUI that's built on top of my BlogClient library. In a very short amount of time, I've been able to build a pretty nice client. That's it in the screenshot below (click for full-size image).

MatisseBlogger screenshot
Today I spent some time in the #atom channel on doing Atom protocol interop testing with James Tauber and Joe Gregorio. James has an Atom protocol server named Demokritos and Joe has one called, well, I'm not sure what it's called. Long story short, MatisseBlogger made it's first posts today to two different servers.

In the screenshot above you can see that MatisseBlogger shows your blog accounts as a tree view, with each account having multiple blogs and each blog having an entries and resources collection (except for Joe's which currently only supports entries). So far, I've tested it with Demokritos, Joe's server, Roller, Wordpress (MetaWeblog) and MovableType (also MetaWeblog). It's still got some glitches, but it's almost ready for release. So, I'll include MatisseBlogger and Roller (2.2-dev with Atom Protocol enabled) in the next release of the Blogapps project, perhaps this weekend.

Tags: topic:[Atom Protocol], topic:[Atom], topic:[REST], topic:[MetaWeblog API], topic:[Matisse], topic:[Netbeans], topic:[RSS and Atom in Action]

Guerilla cannibal team

I wish I was as smart as James Governor seems to think I am. I agree with some of Governor's points about Roller and I'm honored to be on the same page with his A-Team, but I think he's overlooking a lot of very cool work that's going on at Sun and a lot of absolutely brilliant people here who most definitely "get it" in every way.

ROME is good

Bob Aman did a nice round-up of newsfeed parsers and Java's own ROME came in second (with the only rating of good) only to Mark Pilgrim's Python-based Universal Feed Parser (with the only rating of excellent). His findings are the same as those in Chapter 5 of my book (which lists Universal Feed Parser, ROME, Jakarta Feed Parser, RSS.NET and ATOM.NET), except that I rate Jakarta Feed Parser a bit higher. The book goes to the printers on March 10 and I'm in final review now, so I've still got time to add a reference to Kevin Burton's new Jakarta Feed Parser fork; I need to check that out immediately.

Roller on Geronimo

Jeff Genender explains how to get Roller running on Apache Geronimo. He mentions that Roller binaries are built with JDK5; a mistake (I believe) that affects only Roller 2.0.1. I'm going to respin that build as soon as I get a free minute.

Eclipse 3.1.1 on Solaris/X86/GTK

I've complained in the past about the fact that Eclipse for Solaris/X86 is linked to Motif and thus, drag-and-drop doesn't work, the mouse-wheel support is broken and  the whole thing looks like crap.

Since then I've switched over to Netbeans, but I when I saw that instructions were available for building Eclipse 3.1.1 on Solaris/X86/GTK, I just couldn't resist trying them out. Here's the result, Eclipse 3.1.1 running on Solaris 10 for X86. Looks almost as good as Netbeans, eh? Maybe they'll finally put an end to those awful Motif builds.

screenshot of Eclipse-GTK on Solaris/X86

« Previous page | Main | Next page »