IMG_0275.JPG via Photon

Uploaded via Photon, an export plugin for iPhoto (thanks to Dave for pointing it out).


More about searching wikis

Ross Mayfield: Meanwhile, Jimmy Wales and others are working on Wikia, a wiki search engine, and Wikipedia produces a nice diff feed.  Adapting to MediaWiki covers 1/4 of public wikis.  There are well over 100 open source wikis, a wonderful diversity to respect, and search engines would do well to adapt to them over time just as they have with less standard blog implementations.

Eclipse for Solaris x86 no longer available

I was using Eclipse (both 3.0.1 and 3.1M3) on Solaris x86 and it used to be on the download list, but now it is gone. WTF! I was hoping that, maybe, they'd switch the Solaris x86 build of Eclipse from Motif to GTK. I mean, how hard can that be? Instead they've taken it right off the list. I guess is not as independent of an organization as I had previously thought. They must take orders directly from Palmisano. I want my Eclipse!

I'm back

Some friends and I took a couple days of vacation in the North Carolina mountains. We were trapped in the house (pictured in the previous post) for most of the weekend, due to the extreme cold and a very icy road, but there's a full-sized pool table in the house, so we had no complaints.

I'm sorry if I have not returned your email. I was off-line for the weekend and since my return, I've been (mostly) ignoring my inbox and my newsreader so that I can finish Chapter 8: Publishing With Atom and some cool stuff that I can't talk about yet. I'm going to take a break this afternoon and tend to my mail and blog reading.

MyJXTA powered blog chat

James Todd:a handful of my citizen blog peers have added swag 'chat' links to thier sites:

i truly appreciate folks kicking these ideas around. great dialog. great ideas. all grounded in very real world activities. just the way it should be. make it real! further, when i have run into a brick wall, for various reasons, i tend to turn more often or not to those that post here at

Keep an eye on that guy. MyJXTA based blog chat is starting to catch on at

Levels of Roller Customization

Junkfood has a nice summary of the different levels of Roller customization and the documentation you need to do customization. He writes "Roller is poorly documented" and he's right. I haven't updated the user guide since 0.9.8 and the macro reference, which is auto-generated from tags in the Velocity code just doesn't cut it. I'm working on user and install docs now. Next up are the customization docs.

Here are Junkfood's levels of Roller customization:

1. Edit CSS stylesheets to customize styles.
2. Edit page templates to add/delete/move page elements and Roller macros.
3. Select different theme packages to get different base page templates and CSS stylesheets.
4. Create and use new macros.
5. Override existing Roller macros.
6. Change Roller configuration and installation.
7. Change Apache configuration.
8. Edit Roller source code.

Roller is nofollowing along

I added nofollow attributes to all links displayed from incoming comments, referrers, and trackbacks to Roller today. This fix and a couple of others will be included in a Roller 1.0.1 release sometime next week.

Raleigh paralyzed by 0.7 inches of snow

We were hit by an unexpected winter storm today. It dusted the area with less than an inch of snow and paralyzed the city. Hundreds of kids are still stuck at school and many will spend the night there. We've got a couple of extra kids staying with us too. Folks are trapped in gridlock all over the area right now at 11PM, still not able to get home from work even though they left halfway through the afternoon. Folks are complaining about the school system's poor planning, the county's inadequate response, and the horrible gridlock. How do I know? They're snowblogging it on the WRAL site.

And then there were 10

Right out of the blue comes RSS 1.1, a revision of RSS 1.0 produced by "independent group of RSS 1.0 users" not associated with the RSS-Dev working group. Nine Incompatible Versions of RSS + 1 = 10.

BlogClient 1.0 is available

BlogClient is an experimental blog client library designed to make it easy to write Java programs that blog. It supports both Atom and XML-RPC based protocols. I wrote BlogClient for the new Manning book Blogs, Wikis, and Feeds In Action, which is due for release this Spring. I'm not quite done but I am ready to get some feedback, so please download BlogClient, try it out in your own programs (or try the test GUI), and let me know how I can make it better.

How does it work?

The idea is to define a couple of simple interfaces for the objects we need to blog, such as a BlogClient, BlogSite, and BlogEntry. Then, provide implementations of those interfaces for the different protocols. The diagram below shows the interfaces and classes that make up the Blog Client API. Right now, I have two implementations of the interfaces. I have an AtomBlogClient, that is based on the Atom protocol and a MetaWeblogApiClient that is based on a combination of the MetaWeblog and Blogger APIs.

Diagram of Blog Client interfaces

Using Blog Client

Assuming that you have the BlogClient jars in your classpath, using the BlogClient to make a post to your blog via the MetaWeblog API works like this:
    BlogClient client = new MetaWeblogApiClient(
"", "scott", "tiger");
String[] sites = client.getUserBlogs();
BlogSite site = client.getBlogSite(sites[0]);

BlogEntry entry = site.createEntry();
BlogEntry.Content content = new BlogEntry.Content("Hello blog world!")
As you can see, some improvements could be made in API usability. Let me know how you'd like to see the API work. Oh, and those jars I mentioned:

rome-0.5.jar (modified to support link titles and rel="")

Where to learn more

You can find the complete BlogClient API interfaces on the Roller wiki and you can download version 1.0 of the client library here: blogclient-1.0.tar.gz. Also, included in the client library is a Swing-based GUI that supports creating, editing, and deleting blog entries as well as uploading images. Here 's a screenshot:
BlogClient GUI
And here are a couple more:
Login | Editor view | Entries view

Status of BlogClient

BlogClient is not complete because Atom itself is not complete. Work remains to bring BlogClient in-line with the current Atom protocol and format specifications. BlogClient been tested against the important blog servers -- by which I mean, of course, Blojsom, Pebble, Roller, and a couple of others. The table below shows the testing that has been done so far.

Roller 1.1 XML-RPC X
Roller 1.1 Atom X
Blojsom XML-RPC X
Blojsom Atom X
Pebble XML-RPC X*
Movable Type XML-RPC X
Das Blog XML-RPC

? Can't tell what expected behavior should be
* Operation succeeds but exception is thrown

** Atom does not support categories yet
*** Movable Type does not implement categories via MetaWeblog API

Plans for Blog Client

I'm releasing BlogClient as open source now to get feedback and I'll be improving it over the next month or so. Once the book goes to print, I'll try to find it a nice home (most likely as a Rome sub-project).


Roller 1.0 is available

Finally! Roller 1.0 is available. There will be a slightly more formal announcement on the Roller blog a little later.

If you have problems during install, join the Roller mailing lists or join us in the #roller IRC chat room on Freenode. BTW, I'll be updating the User Guide for 1.0 next week.

Andi's next computer

She doesn't know it yet, but Andi's getting a Mac mini. The kids can have the old Windows box, but we'll have to disconnect it from the net so they can use it safely ;-)

Roller docs in Chinese and Japanese

Thanks to two very generous contributors, we now have translations of the Roller user guide, installation guide, and FAQ. Take a look:

Thanks Noniko and Nan Chang. I'm sure your efforts will be appreciated by many new Roller users.

By the way, the Installation Guide is in sync with Roller 1.0, but I still need to update the User Guide to document the new Roller 1.0 features.

Submitted Chapter 7: Publishing with XML-RPC based APIs

I just uploaded Blogs, Wikis, and Feeds In Action Chapter 7: Publishing With XML-RPC based APIs to Manning for review. After introducing the  reader to XML-RPC, the Blogger API, and the MetaWeblog API the chapter the leads the reader through the development of a complete blog client library using C# and Cook Computing XML-RPC.Net (there is also a Java and Apache XML-RPC based version of the library which will be available on the book's website). The blog client library interfaces look kinda the ones I proposed on the Roller wiki, but they've evolved a bit and I imagine they'lll evolve a bit more as I complete the Atom implementation.

Joint syndication-publishing session at JavaOne?

Pat Chanezon suggests that the developers of the newsfeed parsers, newsfeed generators, and blog API client libraries should come together, learn from each other, and -- at JavaOne -- educate the rest of the Java community about syndication and publication technologies. I'm included in his list of developers because of Roller and because of my recent work on Blogs, Wikis, and Feeds In Action which includes a blog client library which works with either Atom or XML-RPC based blog servers.

I think this is a great idea. As you might expect, each of us has our own point of view and different needs for our APIs. For example, some developer prefer a SAX like approach like Kevin Burton's FeedParser while others prefer a DOM like approach like Rome. And, some developers want a liberal parser while others prefer "draconian" XML error handling.

If we put together a joint session, we'll each get insight into each other's motivations and needs, we'll educate others, and we may just find our way towards a common set of interfaces -- perhaps even a JSR - for publishing and syndication. We've got to move quickly though; the JavaOne deadline is January 31.

6A + LJ = critical mass for Atom

Robert Sayre: "Six Apart's recent acquisition of LiveJournal means goodness for Atom format and protocol clients. Together with Blogger, this should push things to critical mass."

Oh, and I forgot to mention Atom Protocol support (ROL-605) in my list of possible post-1.0 Roller features (it is almost complete now, BTW).

What happens after Roller 1.0?

Now that we're getting down to the last couple of bugs, it's time to think about what comes after Roller 1.0. I've been reviewing the bug database and making sure all the things folks have been asking for are in there as bugs, new features, or improvements. I've put together a list of the new feature areas that I personally think are most interesting with links into our JIRA issue tracker.

I'm posting this to get feedback from anybody and everybody willing to give it, but this is not a democratic process. My manager will ultimately determine what I work on (since the book eats all of my so called free time) and the other Roller developers will decide what they each want to work on. But we'd all like to hear what you, the Roller users and fans and victims (like Charles at have to say. You can respond here, on your blogs, in the issue tracking system (as votes or comments), or on the Roller mailing lists.

Group blogging

Group blogging is a long requested feature. We've always known that eventually, each user would have more than one blog and each blog could have more than one user (ROL-598). We've also discussed the idea of a simple workflow, where only designated "editors" in a group blog can post and regular authors can only save drafts (ROL-599).

Better front page / community area

Better front page and community features are also much requested. We need better ways to explore the blogs on a Roller server, better reports, and some way to browse users. Right now, you can only see who posted recently and the top 40 blogs for the day, based on hit counts (ROL-561). Rick Ross has suggested adding a language field for each weblog entry, so that visitors can switch between the all languages front page to view only French entries, only Spanish, or whatever they prefer (ROL-423). We've also discussed the idea of adding a community aggregator to the front page (ROL-596).

Category improvements

We need to complete support for hierarchical categories (ROL-511) and allow multiple categories per blog entry (ROL-58). Also, to better support new front page views and corporate blogging, we should consider having an option for a shared category tree (ROL-606) instead of allowing each user to have his/her own category scheme.

Better comment management

We've come a long way with comment spam protection in Roller 1.0, but have a ways to go. We have both CAPTCHA and simple math-question comment authenticators, but we could use some others. And we need better ways to manage, edit, and even bulk delete comments (ROL-563).

Better plugin support

We have plugins now -- such as the read-more, wiki, and others -- but they could do so much more. We have discussed a proposal to expand plugin support to allow plugins to add arbitrary metadata to blog entries and to allow plugins to hook into the weblog editor (ROL-601). Such a plugin would make it very easy to add support for Podcasting (ROL-597).

Better URLs and GUIDs

Tim Bray commented on Roller's "lame" perma-links, which need fixing (ROL-594). Also, Roller permalinks include the publication dates which can be changed so they don't really make good GUIDs -- we should fix that as well (ROL-595). We'd better fix those are the same time too, so that Charles at doesn't have to endure multiple floods of new JRoller and entries.

Administrative Improvements

Changes are also needed to help support Roller administrators. For example, a Roller admin should have a super-user capability so that they can view, edit, and delete any blog entry or comment in the system. (ROL-600). To ease the pain of Roller installs, we need a real installer (we've discussed this on mailing list and IRC, but there is no JIRA issue). And poor old bug #9  which calls for a forgot-my-password page, has been ignored for far too long.

That's all I have for you tonight. Now it's your turn. What features do you think Roller needs most?

Bootchart for Solaris

That looks very cool.

« Previous page | Main | Next page »