It’s just data

Google Reader API

Chris Wetherell: A short (and incomplete) list of stuff to do includes:

Close, indeed (the one warning is due to Niall copying the data).

Niall is doing a good job (un)covering the story.

Redirecting comment feeds

Phil Ringnalda: From now until the ambiguous time when “I’m satisfied” all my titles will include at least one less-than character, whether they need it or not

This has lead to my RSS comment feeds producing warnings, and I can’t have that.  So effective immediately, all my per entry and overall RSS comment feeds permanently redirect to equivalent Atom 1.0 feeds.

If your aggregator has problem with titles which are not markup, point them to these tests.

XML Errors in Feeds

Mihai Parparita: Dealing with the millions of RSS and Atom feeds out there is hard work.

Thanks for recommending the Feed Validator.  And thanks for putting the title bug on your todo-list.


James Holderness: I’m just not convinced that another incompatible, unspecified RSS format is such a great idea.


PocketDish Saga

This adventure started a number of years ago.


Apache Perspective

There are WS-* and REST projects at the ASF.  And J2EE, .Net, and LAMP projects at the ASF.  And people working on Linux, Solaris, and Windows.


Revenge of the LazyWeb

Les Orchard: I guess that teaches me to poke the lazyweb with a stick

This had me chuckling.  We’ve all been there.

And the best line of all: Thanks for the responses, guys! I couldn’t pay for this kind of support.

Titles support in RSSBandit

Dare Obasanjo: I just checked in a fix for all the tests into the RSS Bandit CVS tree


Title Conformance Tests

Phil Ringnalda: Results from a few testcases of various forms of escaping an Atom title which is not markup

I imagine that this is the first time many of these consumers have seen such tests.  Let’s see which ones improve over time, and which ones stagnate.

To allow for updates — and to give an opportunity for those who were not included in Phil’s original survey an opportunity to participate — let’s keep track here.

DB2 interface for Ruby Milestone

I’ve completed my first pass at porting the PHP ibm_db2 extension to Ruby.  If anyone out there has both Ruby and DB2 installed on a Unix machine, I would appreciate hearing if you can reproduce my results.


Two Fifty Three

252 + 1 =


Nudging forward

The time has arrived.  Where there previously was only a general warning, you now get specific, element by element, and attribute by attribute indication of what needs to change to make your Atom feeds conform to RFC 4287.


Two times One.Oh!

Rails Geronimo

DB2 interface for Ruby progress

I’ve made progress porting the PHP ibm_db2 extension to Ruby.


Book Trends

Tim O’Reilly: I was just looking at our BookScan data mart to update a reporter


RFC 4287

Mark Nottingham: Atom has finally realised its most important advantage over the various flavours of RSS — it’s a Standards-Track RFC.

Developing a DB2 interface for Ruby

The current state of IBM DB2 support in Rails is somewhat... suboptimal.  Unfortunately, I don’t know enough of DB2 to be able to help much with that.  However, I do know enough of C, PHP, and Ruby to be able to port the PHP ibm_db2 support to Ruby.


For small values of the web

Tim Bray: Maybe I’m wrong. Maybe you can abstract the Web away. Hmph.

Pssst: don’t tell anyone, but this is only true for small values of ‘the web’.

Meanwhile, the ETech 2006 agenda is starting to take shape.  I’m presenting on Neurotransmitters.  Mark Pilgrim is presenting on Greasemonkey.  My boss’s boss will be presenting too.  As, apparently, will be Tim Bray.

Fasten your seatbelts boys and girls.  We are in for some radical simplification.  A very me-centric one.


Exploring a more modular approach to implementing the Feed Validator via a domain specific language and metaprogramming.



Randy Charles Morin: feedAnalyzer is a Japanese RSS validator. What a great idea!

Let’s try a few validators with a Korean feed.


OPML compatibility

Robert Scoble: Why aren’t Bloglines or Newsgator OPML Editor compatible?

Robert produced this OPML file with NewsGator.

He then went on to produce handcode this OPML file for use with the OPML Editor v10.1a2:

Summary/Full Content non-issue

Robert Scoble: Phil Burns is totally in my camp, saying “I HATE partial text feeds,” but then goes even further than me and chides folks for not offering BOTH full and partial text feeds. Atom lets you do that explicitly

Why do people need to be in one “camp” or the other?


Google at RTP?

Jason Caplain: Rumor is that Google could be announcing that they are opening up an office in Research Triangle Park, NC. [via Marketing Pilgrim]


Miguel de Icaza: Novell will be sending some folks from our Open Office team to the newly created ECMA TC45 working group. We hope to determine if the standard will be open enough and the details complete enough to allow for interoperability.

Office XML at ECMA

David Berlind: The question that must then be asked once the ECMA technical committee (TC) overseeing the Office XML Reference is officially formed is, to what extent other organizations — Sun and IBM for example — can not only join the TC, but influence the overall outcome as well.


Feedback via Proxy

I’ve left a series of technical comments in Dare's weblog entry (I wish Dare’s blogging software supported per comment permalinks); I would encourage others to do likewise.


This is Sharing?

Microsoft introduced the term shared source, and now seems to be extending their unique idea of “sharing” to syndication.

The first attribute that the the Simple Sharing Extensions for RSS and OPML is to “treat the item list as an ordered set”.  This sounds like something from the Simple List Extensions Specification that was also hatched in private and then unleashed with great fanfare about five months ago.  Sure a wiki was set up, but any questions posted there were promptly ignored.  The cone of silence has been so impenetrable that even invoking the name Scoble turns out to be ineffective.

Now the Simple List Extensions Specification URI redirects to an ad for vaporware.  Some things never change.

Should we wait for version 3.0?

Google Base Format Review

I’ve started implementing Feed Validator support for the Google Base Bulk Upload formats, initial support is already online, more is committed and should go online overnight, and work will continue into next week, including better error messages.  I made a number of assumptions, and have a number of questions.


W3C Feed validator

W3C: The W3C Feed Validator exposes its Web service as a SOAP 1.2 interface, which you can use in your own applications. [via Robert Sayre]

re: appropriates?  Nay, I actually encourage this.  I only hope that they keep it up to date (there are significant changes coming this weekend, for example).

As to the SOAP 1.2 interface, I was unaware of this.

"Just" Use XML

Slides from today’s presentation.

I experienced serious technical difficulties when giving this presentation.


RESTful Rails

Dan Kubb: I created a proof of concept controller that implements some of the ideas we’ve been talking about for a more RESTful Rails

Where's your Google?

Yesterday, my daughter came to my all distraught.  “Where’s your laptop?”, she asked me.  I told her where it was, and she quickly fetched it.



Tim Bray: So, I understand why we still need spreadsheets and presentation packages, but assuming you had a Web editor with a good change tracker, why would anyone want a word processor any more?

Check out wikiCalc and s5.  Once these (or similar technologies) reach the 80/20 point, watch out.

Update: perhaps change tracking is not such a good idea after all. ;-)

AdSense Blocker

Simon Phipps: Expect to see referral buttons appearing all over the web ...

Just for giggles, I put a Firefox referral button on my older pages. Once again, such ads don’t show up on browsers that support XHTML.  Once again, I kinda like it that way.  ;-)


If my experience is anywhere near representative, it seems like the future of SPAM on the Internet is to be sent purportedly from somebody that doesn’t exist, and to somebody that doesn’t exist.

* ! ^TO_rubys@
* ! ^List-Id
| /home/rubys/bin/logspam

Update: added exclusion for emails containing List-Id as I was no longer seeing emails from the feedvalidator-users mailing list.

Identity System Discovery

Mike Graves: The this behind YADIS is not about implementing a particular identity scheme. It’s not an identity framework itself. Rather it’s a discovery mechanism. A Yadis-equipped website – say your blog – would use the Yadis discovery protocol to determine what identity capabilities the submitted URL supported. Right now, the only two that are addressed are LID and OpenID.

More Honoured in the Breach

Joshua Allen: the spec could easily be modified to be just as useful without breaking so many feeds

Surely, then, somewhere in Microsoft there are sufficient resources to apply to improving the spec?  Particularly if it would be so easily done?


Ubuntu Certified for IBM DB2

IBM DB2 Logo

Ubuntu’s home page: Ubuntu is moving into Enterprise computing with IBM’s certification of Ubuntu as “Ready for IBM DB2 Software for Linux”. Read more in the press release.

Update: Dan Scott has more details.


Nexenta makes its first steps into the big world. We invite you to join us and participate too! Help us make Nexenta the best operating environment in the world! Help us test Nexenta on your laptops, desktops, and servers. Help us improve our web portal, translate Nexenta into your own language, add new applications, enhance existing ones and define a set of software to be used in the future releases. [via Dave Johnson and Tim Bray]



Geir Magnusson Jr.: I think of Harmony as a big freight train. It’s hard to get moving, but when you do, even a little velocity means you have a big momentum.

Historical Perspective

zekel: No one had been quite as abused as the the little file: URL.  This URL was special because we had always used files and DOS paths (and no one at the time knew about path canonicalization attacks), everyone was quite sure what they looked like , acted like, and even tasted like.  It didn’t help that the file: protocol remained in RFC limbo as a platform/OS specific protocol.  So the browser and the browser’s little friends would take turns dressing a DOS path like an URL in a pink bunny suit and undressing the URL with a pair of rusty scissors, pretending it was the same DOS path they started with.  Only the simplest of URLs was able to withstand this abuse, and it soon became clear that something would have to be done, lest the little file: URLs go off on their own and be lost forever. [via Joshua Allen]

iTunes Podcasting Spec

Ernie Prabhakar: While there is as yet no definitive URL for the official spec, here is the last publicly available version, as posted on syndication-dev by Pete Alcorn


301 Moved Permanently

John Patrick: Today I made a change that is important to me but will go unnoticed by close to 100% of the people who read this blog.


I actually argued for a more cautious, staged approach.  But John always has been a trail blazer.

Patch for libxml2's Ruby binding

I mentioned previously that libxml2 had a habit of writing to STDERR.  With the Python bindings, this can be mitigated by the use of an error handler global to the library.  The steps below describe how to add equivalent functionality to Ruby’s bindings.


Prisoner's Dilemma

Luke Hutteman: Maybe there’s an exception to Postel’s law after all.

On Notice

Sean Lyndersay: We will only support feeds that are well-formed XML.

Gutsy, and welcome, move.


Sometimes the dragon wins

If you have a requirement for full text search, and you haven’t outsourced it to google, then you need a database that understands encodings, and all of Julik’s points apply.


Dragons be gone

Jacques Distler: if anyone tells you: “i18n is easy, just use utf-8!” … go ahead and smack them.

Luckily, I’m outside of arms reach.


WRAL Interview

I was interviewed today by Kelcey Carlson of WRAL TV, with Courtney Davis as the photographer.


It Just Works

Robert Scoble: What do you think? Did I miss anything in my list of 12?

Scoble tosses out a softball.  I’ll bite.


Beyond Java

I read Beyond Java yesterday.  In it, Bruce Tate makes an excellent case that conditions are ripe for exploring alternatives in places that were once strongholds for Java.  Bruce also tends to favor some of the same technologies that I do.  In all, I would strongly recommend this book as it poses all the right questions.

Despite the fact that I happen to agree with the answers that this book puts forward, I feel that Bruce weakens his case by prematurely dismissing alternatives.


OPML validators

Nick Bradbury: I also tested FeedDemon’s OPML import with the OPML exported by a wide array of other aggregators, and here are the most common problems I’ve found


Testing FeedTools Dynamically

In the spirit of this, and based on this from the Universal Feed Parser, I created this for FeedTools, enabling FeedTools to directly make use of the vast suite of feedparser tests These tests already pass.


FeedTools on Ubuntu

When I first heard about FeedTools, I was skeptical.  I’ve seen many attempts at writing feed parsers by authors who have been seduced by the claims that that feeds are simple; in most cases these parsers end up being abandoned before they ever really become complete.

Loooking again, it appears to me that Bob Aman has the persistence to take this task to completion, as such FeedTools merits a second look.


Actually innovative

Bob Aman: If you’re working for an actually innovative startup, please consider thinking about i18n, unicode, and all that jazz. Actually, do more than consider it. Just do it. Not everyone speaks English, and there’s no reason to restrict “Web 2.0” (there’s that involuntary shudder again) to English speakers.

First RadRails Patch

Last night I submitted my first patch to RadRails.  I tried to do more, but didn’t quite succeed.



Brad Wilson: Doesn’t that feel like cheating, though? :)

RadRails/Eclipse on Breezy - take 2

Download J2SDK 1.4.2.  Download Eclipse SDK 3.1.1.  Add Universe.

sudo apt-get install rails subversion
sh j2sdk-1_4_2_09-linux-i586.bin
tar xzf eclipse-SDK-3.1.1-linux-gtk.tar.gz
export PATH=`pwd`/j2sdk1.4.2_09/bin/:$PATH

Follow these directions.


RadRails/Eclipse on Breezy - take 1

Short version: don’t install Eclipse via apt-get on breezy just yet...


Rails on Breezy

Add Universe.

sudo apt-get install rails irb
sudo apt-get install libhtml-htmltokenizer-ruby libxml-parser-ruby1.8


They're baaaaaaack!

David Heinemeier Hansson: The Google Web Accelerator is back with a vengeance

I’m on the other side of this debate. While this appears to be a purely philosophical concern, in reality this stuff matters.  In any case, while Google may be the first crawler of this sort, it most definitely won’t be the last.

Ubuntu T42p Video

New laptop.  New OS.  Everything (including suspend, wifi) works out of the box... except full motion video is bit sluggish:

rubys@rubypad:~$ glxinfo | grep direct
direct rendering: No
OpenGL renderer string: Mesa GLX Indirect

glxgears shows about 320 frames per second.

I’ve tried installing and building a number of alternatives (both open and proprietary) without much luck.

How have others fared?

Update: I've got it working


John Patrick: As with all fundamental technologies, there are a lot of myths in the early stages — like “The Internet is free” or “The web is for documents, not for applications”. Add to the list that blogging is a vanity tool for people to write about themselves or their hobbies.

Homesteaders of the 21st Century

As computers, like electric motors before them, fade into the woodwork we need to enable a future where everybody can be a switchboard operator.


Despair Linux

Jon Lech Johansen: Having used various GNU/Linux distributions over the years, I find these pictures hilarious: Caldera, Debian, Fedora, Gentoo, Mandrake, RedHat, Slackware, Ubuntu.

Ruby, Rails briefing

Here’s a presentation I did earlier today.  Hat tip goes out to the RedMonk guys for stirring up interest.  I’m quite sure that somebody out there won’t like it.  Particularly since there really isn’t much new in these slides.

Now, off to RubyConf, which appears to be sold out.  Hopefully my friends will pull some strings.  ;-)

And, no MrO, sorry to disappoint, but I am taking a plane.

"Just" use XML

My proposal got accepted for the 2005 XML Conference - Thursday, November 17th in Atlanta.  Should be fun.

OpenID code complete on Rails

I’ve now got basic function test coverage for the OpenID consumer functionality.  It required me to intercept get and post requests to the, and get rails to recognize and process them.  I also had to add two methods to ActionController::TestResponse to make it more closely emulate Net::HTTPResponse.


OpenID Consumer on Rails

I’ve roughed in the consumer pieces to my OpenID implementation.  Except for the autodiscovery, all the pieces were things I could lift from my test cases, and in one case, from the server support for dumb consumers.  My implementation attempts to be smart consumer, but will degrade as necessary.


Programming with Gotos

OK, I’ve not got an OpenID server on Rails, and seem to be over the hump understanding OpenID.


OpenID by way of examples

Jon Udell: I learn poorly from API documentation, and rely almost exclusively on examples.

Me too.


Extraordinary Alien

David Heinemeier Hansson: I’m now legal to stay, work, and pay taxes in the US of A for 3 years. With the possibility of infinite 1-year extensions.

Need for Advanced Tools

Dave Thomas: the reason you need very advanced tools to develop software for Java is that the underlying language is too complex

Ruby 1.8 vs LINQ

Jon Udell: I’ve been checking out the LINQ technical preview, and it’s definitely an eye-opener. The following snippet does a three-way join across an XML data source and two CLR objects. The XML data source is the content of this blog. The objects are a dictionary of date mappings, and an array of strings. The output is constructed as XML.

As an educational exercise, I’ve converted this to Ruby


XML Cleansing

If you accept data from various sources, and want to produce XML that can be consumed, one thing you need to be careful about is character set issues.


Enclosure type parameters

Duncan Mackenzie: tells me that the main MSDN feed  ( is invalid, because we have  enclosures with a MIME type of type="text/html; charset=utf-8", but I believe that is a valid value...

It appears that I will never be done learning.  I had assumed that charset was a Content-Type header parameter, instead such parameters are considered part of the media type.

Producing Well Formed XML with Rails

I started out taking a look at how I could robustly handle i18n in my Rails Weblog implementation, and ended up in a completely different place - ensuring that Weblog produced well formed XML.


Do you Sudoku?

My 17 year old son turned me onto this.

Warning: it can be addictive.

Brays, Fairness, and DoubleSpeak

While journalists have a reputation for “fairness”, Bloggers have a reputation for fact checking.  Time for some of the latter.


Atom Store

Joe Gregorio: My latest article is up at, "Dreaming of an Atom Store: A Database for the Web".

Prototyping Intertwingly on Rails

It is said that Rails is opinionated software.  I’ve been exploring to see how it stacks up on a subject area where I have opinions: weblogging software.  So far, it has measured up pretty well.


Jetty 6.0 Continuations - AJAX Ready!

Greg Wilkins: Jetty 6 supports a new feature called Continuations that will allow scalable AJAX applications to be built, with threadless waiting for asynchronous events.

Elias Torres joins the Roller team

Dave Johnson: Welcome to Elias, who brings the Roller committer count up to seven (in chronological order: Dave, Matt, Lance, Anil, Henri, Allen, and now Elias). Elias runs one of the biggest Roller installs in the world at IBM and he’s got lots of cool feature ideas and practical suggestions for improving Roller.

This pleases me very much.

Atom 0.3 Deprecated

By my read, today is August 46th or thereabouts, which I guess qualifies as early August, so I’ve gone ahead and made the Feed Validator issue deprecation warnings whenever it encounters Atom 0.3 feeds (example).  No other code changes were made.  Feeds that worked yesterday with any given combination of tools should work exactly the same way today. 

Hopefully, this will slow down the rate at which new Atom 0.3 feeds are being created, and will ultimately encourage producers to upgrade to the IETF standard.  More information can be found on, including a link to a helpful article on Moving from Atom 0.3 to 1.0

From here on out, changes to the Feed Validator will be made with wanton disregard to the impact of validation of Atom 0.3 feeds.  By the end of the year, the plan is still to remove support for Atom 0.3 entirely.

Last Line of Defense

GIGO.  It is easier to produce correct XML output if you have correct XML input.  One way to achieve this is to ensure that data that is not well formed XML can never to be stored.  With Ruby on Rails, this can be enforced with validation rules that invoke a parser, and throw an error upon failure.


Sri Lanka

Sri Lanka was overwhelming.  If ever I am fortunate enough to have a similar opportunity again, I will likely do one or more of: 1) bring some or all of my family, 2) stay longer, and/or 3) do less.


The Case for Dynamic Languages

Slides from my FOSSSL keynote

Rails and Fragments

Not seeing an obvious way to create links to URIs with fragment identifiers, I added the following to my BlogController.  It appears to work.  Anybody got any better suggestions?

def url_for options = {}, *parameters_for_method_reference
  fragment = options.delete("#".to_sym)
  url = super options, *parameters_for_method_reference
  url += "##{fragment}" if fragment
  return url

Open Office Wars, Part 8

Robert Sutor: To be clear, there is nothing preventing Microsoft and others from implementing and supporting the OASIS OpenDocument format. And Bob has more links.

I’ve been following this for quite some time.

The question I have to ask (again) is: if Microsoft can produce updates to Office 2000, XP, and 2003 that will allow those versions to read and write their new format, why can’t they produce updates to read and write the OASIS standard?

Routing (Around|With) Rails

I have two use cases for routing that I would like to explore.  First is a common MultiViews pattern by which the file extension is used to determine either the action or the template.  The second is the common REST paradigm by which all resources of a given type are handled by the same controller, but the action isn’t determined by the URI, but instead by the HTTP request method used.


Data 2.0

Jesse Andrews: That, my friend, is what everyone wants right now. Web 2.0 needs Data 2.0! A for files [via Joe Gregorio]


Next month, I will be presenting at FOSSSL '05 in Colombo, Sri Lanka; first a keynote on Friday entitled The Case for Dynamic Languages, then a tutorial on Saturday entitled Riding Ruby-On-Rails.

Acts As Tree

Combining the Rails Confidence Builder and Atom’s processing model for content, and I’m nearly ready to consume some real data.


To blog or not to blog

It is weird to see your picture in a newpaper article above a paragraph which mentions water-free urinals.

State of Autodiscovery

I was curious about the uptake of autodiscovery among the Feedster top500 weblogs.  The good news is that about 80% have autodiscovery links.  But looking deeper, I found some surprising results (all reports other than the last one rounded to the nearest 5%):

I’m not yet certain what this all means.


While updating my Ubuntu laptop, I noticed D-Bus being downloaded.  What caught my eye was the python bindings.  Usage of Python decorators reminiscent of C# attributes.  Object_path reminiscent of Java class names.

It has an introspection format in XML, though the protocol itself is binary.

While comparisons with other systems used for RPC is inevitable, this protocol is aimed squarely at IPC.

Gotta ask twice

Patrick Chanezon: Google servers support gzip encoding, but only for certain HTTP User-Agents  [via Mark Baker]

I would be curious to know under what circumstances an application would send an Accept-Encoding: gzip, but not actually accept a gzip encoded response.

Generally such a header is intentional.

P.S.  No, I don’t think that this behavior is an outright bug.  One could argue that it is an unfortunate or unwise policy, but not that it is incorrect. However, for caches to operate correctly, the response SHOULD include a Vary: UserAgent header.

Alter DB

James Duncan Davidson: My opinion is tha Rails needs to follow the same model as EOF uses in Web Objects and Core Data uses in Tiger: Use some abstract data model definition, not database specific SQL, that can be adapted at runtime for the particular data store in use.  Furthermore, Rails in development mode should keep the internal structure of the database in sync with the data model, adding and dropping columns and tables as required.

I’m not to sure of that (particularly the comment about altering tables), but meanwhile, it is fair to observe that scripting language tend to excel at text processing.  Here is a script that will convert the DDL you have to one that can be used by SQLite.  While it currently only handles a small subset of MySQL’s DDL, the script should be fairly easy to extend.

xml:base support

The version of REXML included within ruby 1.8.2 does not appear to contain xml:base support.  However, this is not much of a problem in Ruby, as such support can easily be added.


Unit Testing in Ruby

First, Jim Weirich has posted his slides and Ruby-centric perspective of OSCON.  Well worth checking out.

For today, I’ve taken a look at unit testing in Ruby.  I took a simple task (Atom’s processing model for content), and implemented it in Ruby.  Unsurprisingly, REXML makes it easy.

Even so, test cases are always a good idea.  Ruby’s unit testing support seems to follow in the path pioneered by JUnit, and emulated by many others.  As is often the case, lines of code in the test cases in this example outnumber the lines of code in the implementation.

RDoc can also be used to produce pretty documentation of the code and the tests.

Rails Confidence Builder

I don’t know about you, but taking a look at a new framework is a daunting task. Particularly if there are code generators and multiple directories involved.  You don’t know what is assumed, and what is required.  Sure, the videos make it look easy, but somehow the person making the presentation always seems to already know all the answers; they know exactly where to put every file, the syntax of every command and statement, and have a detailed knowledge of all the relevant class libraries.


Copyright Submission Madness

Tim Bray: The U.S. Library of Congress Copyright Office is asking a question: “whether persons filing the electronic-only preregistration form prescribed by the Copyright Office will experience difficulties if it is necessary to use Microsoft’s Internet Explorer web browser in order to preregister a work”.  No, I’m not making this up.  Comments are called for, and have to be sent (five copies!) by snail mail; the address is behind the link above. Thanks to Beth Macknik for the heads-up.

Agile Web 2.0 Development

There is an interesting discussion going on between Tim (Bray) and Tim (O’Reilly) over the use of the term Web 2.0.  I’m with Tim (O’Reilly) in that the term Web 2.0 is as relevant today as the term P2P was in 2001.  And I’m with Tim (Bray) in that the term Web 2.0 will likely be as relevant in 2009 as the term P2P is today.


Visual Pun

This was inspired by this.

As Danny O’Brien noted, Ruby seems to have found some sort of shortcut through Gandi’s four step program; traversing directly from step 1 to step 4 in approximately three weeks.

Many attribute this to Rails.

At OSCON, I was able to score a copy of Agile Web Development with Rails, and I am working my way through the book.

Pie-thon Update

Slides from my OSCON presentation.

Spotted in the audience: Jim Hugunin, Patrick Michaud, Guido van Rossum, Chip Salzenberg, and Larry Wall.

Oxygenating The Web Service Platform

WSO2: Are you familiar with Apache Axis and Apache Axis2? How about Apache WSS4J? Or Apache WSIF? Or Apache Sandesha? WSO2’s founders and engineers are the people behind many of the key Apache Web services projects.

Way to go Sanjiva and Dims!

Male Professor of Journalism at BlogHerCon

Jay Rosen: Everyone was taking pictures because that is part of what people do at blogging conferences. I had no camera. So I took these notes instead.


Shaving the Yak

Joi Ito: I bought a discounted IBM T42 ThinkPad and installed Ubuntu on it. I decided that I would try to get switched over to Linux (for now) before I headed off to OSCON later this week. It was amazingly easy to install and wifi, suspend and various hardware goodies seem to work.

Data First

Stefano Mazzocchi: Data First strategies have higher usability efficiency (all rest being equal) than Structure First strategies.

Sifting for Metadata

Elias Torres: Atom undoubtedly will be the format and API of choice for all these content types, but its design was to be the minimal amount of metadata to communicate information and not a rich semantic framework to express it all.



Phil Ringnalda: If you are interested in and concerned about how Apple products produce and consume RSS, in Safari or iTunes or Garageband or the Chapter Tool, you now have an opportunity and a responsibility: get on the list (and please, be nice: remember, this is Apple, not Microsoft ;)).

Like Phil, I am very pleased to see this occurring.  I’ve already updated a test case, added another, and made the change to the validator, though it will be a several hours before these changes are online and everything is online now!

I’ve also asked my next question.

Since Phil mentioned Microsoft, I’m kinda hoping that whatever Gnomedex did to them eventually wears off.  Creating a blog and a wiki is nice, but somebody needs to come in and clean out the cobwebs.

/me whispers “ Scoble” in the hopes that in doing so, this post gets noticed.

Update: the fix is now online!

Patching Firefox for Atom 1.0

Phil Ringnalda decided to copy me on the Live Bookmarks should support Atom 1.0 bug report.  This lead to my developing and testing a patch.


DoublePlus Good

Paul Krill: Indigo removes the reliance on Web servers by extending beyond HTTP to support protocols such as ... REST (Representational State Transfer).  [via Ryan Tomayko]

Works Now

Randy Charles Morin: The above is an example of a REST application. It’s easy and works reliably for at least a few hours.

This week, I had my car serviced.  The air conditioner wasn’t working, and let me tell you that air conditioning is important during the summer in North Carolina.  Fixing it wasn’t cheap.

Of course, I could have chosen to replace my car with one that breaks down less often.  Generally such cars cost even more to repair.

There is a large market for reasonably priced cars, particularly ones that can be readily serviced.


Somebody has an API that is intended to shield the developer from the inner workings of SOAP and perhaps another protocol or three.  The person is thinking about adding REST support (generally in the form of removing the requirement for a SOAP envelope and adding support for additional HTTP methods).  What can go wrong?


Moving from Atom 0.3 to 1.0

Niels Leenheer: Many people will automatically move to Atom 1.0 when they upgrade their weblog software, or when large weblog providers such as Blogger update their software. The rest of us, who are going to change our feeds manually are going to run into a number of differences between Atom 0.3 and Atom 1.0.  Below I will highlight some of the main changes.


There's Plenty of Room at the Bottom

Bill de hÓra: As next generation browser and aggregator applications fully support Atom, RSS and the APP, there’s no reason to think that facilities like online order tracking and notifications will not be exposed using those formats.

Atom 0.3 Denouement

As much as I appreciate Longhorn’s support, I really would appreciate it they did not include Atom 0.3 support.  By the time Longhorn comes out, I have every intent to make Atom 0.3 feeds as rare as Atom 0.2 feeds are now; which is to say, practically non-existent.


Surviving Slashdot

I was able to survive a slashdotting yesterday.  The solution was simple


Podcasting Specifications Update

Steve Harris: A much more clear, consistent and readable specification for the iTunes RSS Specification is now available, dated 7/7/2005: [link]


Indigo supporting REST?

Don Box: the HTTP message transport in Indigo Beta 1 gets in your way, as it is hard wired to POST.  We’re fixing this, so you can make up HTTP methods until the cows come home

I left this as a comment on Dare’s weblog, but I thought I would surface it here:

How about fully supporting GET?  Things like content type, charsets, permanent redirects, ETags, Last-Modified, gzip or zlib compression, content negotiation, yadda, yadda, yadda...

The New Public Relations

Tim Bray: The new PR pipeline is a lot shorter, simpler, and wider:

  1. Senior management works out a company’s goals and messages.
  2. Management works hard to make sure that the employees understand them.
  3. The people who are really doing the work tell the story to the world, directly.

I have one problem with this.  To figure out what it is, note the use of the word “works” in the first two bullets.  Now apply the third bullet.

Podcasting Spec Iterations Ahead

Tantek Çelik: Kevin and I volunteered to help out with iterations on the spec. Kevin knows a thing or two about RSS and podcasting, and I know a thing or two about spec-writing.


Anti-Design Aesthetic

Jarrod Trainque: Inspired by the transcendental minimal layout of Sam Ruby

I’m speechless.  Not that anybody would dare to copy my css files.  But that anybody would actually want to.


Treed Racoon

Intellectual Bankruptcy

Jacques Distler: we, here at Musings, still believe in something called … Standards

Blogging as 20% Time?

Stephen O’Grady: All of this is just a fancy way of saying that for us, we don’t find the time for blogging, we make time for it. I’ve commented in the past that blogging isn’t an addition to our day job, it’s part of our day job. In recent weeks I’ve come to think of it as something akin - though different - to Google’s 20% time. We have nothing so formalized, but we probably spend something like 20% of our time (ok, more) researching and writing and pursuing what we consider to be new and interesting avenues of interest. Some of these bear fruit for RedMonk, some don’t. But it only takes a couple of hits to make the whole thing worthwhile.

Test Driven Specifications

Phil Ringnalda: If you possibly can, include whoever will be revising the spec document, especially in writing test cases. There’s no better way to sharpen up your spec writing than to sit down, type


and then ask yourself "what do I have to do next, what can I not do next?"

The Standard in Syndication

Robert Sayre: I’ve got an article in this month’s issue of IEEE Internet Computing: Atom: The Standard In Syndication. The article is semi-technical, but introductory. Probably not super informative for my readers. [via Anil Dash]

Excellent overview.

Shameless Pandering

OK, so I don’t normally beg for links.  In fact, I never do.  It very unbecoming, and — quite frankly — I’m happy with the amount of traffic I attract.  Not too little, and not too much.

All that being said, I want to increase the chances that the following information finds its way into Apple.  And Disney.  But mostly Apple.

Read the comments.  They are a precious combination of funny, insightful, and sad.  Very, very sad.

So, if you can spare a link for the cause, I would appreciate it.  Thanks.

Insensitive iTunes

Mark Pilgrim: it appears that iTunes uses a real, draconian, namespace-aware XML parser... except that namespaces are case-insensitive.

What’s worse, is that the high profile Disney The Gears Behind the Ears feed appears to be depending on this functionality, as well as on other non- standard element definitions.

Sock Puppets

gsb: today I was looking over comments on this post. If one hovers over the commentator’s name one can see the IP, or resolved domain, of the person who posted. Of course, there’s probably ways around this kind of thing, but it might be a good start. Can we have something like this?

FWIW, my experience is that both trolling and spamming were greatly reduced once I implemented this.


Open Media Standards

David Hall: Just like you, we don’t want 10 different proposals floating around that you have to add to your feeds in order to satisfy Yahoo, Microsoft, Apple, Google, AOL, my aunt Edna, etc etc. To be short, Yahoo “gets it”. As far as we are concerned, we’d drop Media RSS entirely if something else provided the functionality that was required for true efficient media syndication.

I’m highly confident that any number of standards bodies would be quite willing to get involved in the creation of such a specification.

Undecipherable Specification Error

What happens when the authors of the FeedValidator can’t decipher a specification?


Podcast Specifications Questions

Apple has released their PodCast Specifications.  I note three places where the specifications deviate from their sample, in one case, significantly so.


Longhorn and Standards

What will the Longhorn RSS Platform Sync Engine do with feeds that are not well-formed?


Switcher Spotted

Sean McGrath: On Windows I was a die-hard Emacs, Thunderbird, Firefox and Open Office wonk. Now that I’m on Ubuntu, I’ve switched to, um, Emacs, Thunderbird, Firefox and Open Office.

Simple List Questions

I’m looking into adding FeedValidator support for Microsoft’s Simple List Extensions Specification, and have a few questions


Hurry, quantities limited!

Richard Hundhausen: Own your very own 128-bit Uniqueidentifier (GUID) [via The Daily WTF]

Retrofitting Backlinks

Bill de hÓra: here’s a strawman. Retrofitting backlinks dominates Web innovation - pagerank, wikis, tags, folksonomies, trackback, pingback, bloglines,, pubsub, technorati - enabling backlinking is what releases value. When people talk about building out social computing infrastructure, backlinking is also the basis for that.

First reaction: very interesting.  Second reaction: so what?

Open Office Wars, Part 7

The saga continues



Reminder: early registration ends Monday.


Two Years

... ago today, the Pie wiki was created.  During that period, we had interminable naming discussions, a lengthy process of selecting a standards body, endless discussion on dates, and a last call.

One week from today, format-09 is scheduled to be reviewed by the IESG.

Easiest way to talk to a VC

Mark Pincus: write about him:)

Zend Core for IBM

IBM, Zend: Zend Core for IBM Beta (available on Linux x86, x86_64, POWER and AIX).

Open Office Wars, Part 6

Brian Jones: New default XML formats in the next version of Office [via Dare Obasanjo]

Fresh on the heels of the OpenOffice standard announcement comes this welcome news.


Bogarting LAMP

Bill de hÓra: Unquantified ilities don’t amount to a hill of beans in this crazy world

Lost in Space

Alex Papadimoulis: It’s just great when you can extrapolate the entire design of a system based on a tiny little peak into it.


danah boyd: Perhaps, if you feel so inclined, invite the Daemons to visit your server so that you too may rest without email.

Teaming Essays

Scott Berkun: Why you must lead or follow, Why smart people defend bad ideas, How to pitch an idea, and How to give and receive criticism.

Open Office Wars, Part 5

Tim Bray: If those docs/spreadsheets/presos might be long-lived, or contain high-value data that you might want to re-use later, and you don’t use OpenDocument, well there’s a word for that but I’m not going to put it up on the front page at ongoing.

Earlier I wrote parts 1, 2, 3, 4.  Time for an update.


ASF Election Results

Ken Coar: The annual ASF members meeting has just adjourned, and the election results are in.

Dishing It Out

VI Reference Mug Ben Hyde: The VI reference mug, shown at right, is available here.  The emacs reference place setting for for twelve is not yet available.


Brad Fitzpatrick: Yadis is now OpenID, and we’ll soon have (The previous owner, David Lehn, gave it to us!)  Props to Randy for the sexy logo!  Join the mailing list (still named yadis) if you want to help with all this. We need programmers of all types for clients and servers.


Criminal Database

Mark Frauenfelder: If you want to know where to buy street drugs or hire the services of a prostitute in Chicago, this web site, which pinpoints the location of crimes using Google maps, would certainly be helpful.

Blogging: 3 questions

Bob Sutor: As part of our blogging "event" earlier this week, the IBM internal website published some interviews with bloggers such as Sam Ruby, Ed Brill, Grady Booch, Catherine Helzerman, and me. What follows is a slightly edited version of my responses to the three questions I was asked.



James Gosling: We’ve got several thousand man-years of engineering in [Java], and we hear very strongly that if this thing turned into an open source project—where just any old person could check in stuff—they’d all freak. They’d all go screaming into the hills.

The next page goes on to mention NetBeans (Sun Public License) and Eclipse (Common Public License).  No mention is made of Geronimo (Apache License) or JBoss (LGPL).

Meanwhile GCJ (GPL with the ‘libgcc exception’) and ClassPath (GPL with clarification and special exception) continue to make progress with (Dual LGPL and SISSL).

Augmented Web Reality

Rael Dornfest: This does present an interesting conundrum: as source becomes not only viewable but browser-rewriteable on the fly, how much of what we’re seeing is really on the Web and how much an artifact of augmented Web reality?

Air Suckers

Jeneane Sessum: Aerobic leaders like Sam Ruby, Grady Booch, Robert Sutor, and anaerobic leaders like Ed Brill and Catherine Helzerman, have played a very significant role in this effort [via Chris Ferris]

Update: From IBM's Breathing Conduct Guidelines: Don't exhale on clients, partners or suppliers without their approval.

Robot Child-Herders

Chris Anderson: We have a Roomba Discovery, which we love. It does an amazingly good job of cleaning the children’s playroom, but perhaps not in exactly the way its inventors at iRobot intended.

Disclaim This!

Apparently, my employer wants me to create a disclaimer.  I’m looking for suggestions.


Selfish Memes

Hugh Macleod: Good conversations don’t care who start them. [via Doc Searls]

Preparing for Dual Boot

Now that I am comfortable with Ubuntu on my borrowed hard drive, thoughts turn to the endgame.


Dive Into Greasemonkey

Mark Pilgrim: Well, this is what I do [via Joe Gregorio].

Fetch Me A Rock

We have all experienced the pleasure of trying to please either customers or bosses who don’t really know what they want.  It isn’t fun.


IBM to buy Gluecode

Steve Lohr: I.B.M. is increasingly betting that it can build a big business around open-source software. The latest step in that strategy is the purchase of Gluecode Software, an open-source start-up.

Grappling with Greasemonkey

Babak Nivi: Greasemonkey is to websites what inheritance is to objects in object-oriented programming.

See also the ever growing set of user scripts.

Taking the unsafe GETs out of Rails

Tom Moertel: So, how do we make doing the right thing as easy as creating a link? My answer is button_to, a method that takes the same parameters as the ever-popular link_to but creates a tiny form that contains a single button instead of a link

Richard Soderberg: Here’s a bit of CSS to make all INPUTs of class="hyperlink" resemble hyperlinks more closely  (Though, like Phil, I wonder why buttons look like that).

Sincerest Form Of Flattery

Anne van Kesteren: Sam catches that referrer, does some magic, and displays an excerpt of the post in his comments, along with a link and the title of the post that linked him. I believe he uses the feed that is linked from the referrer’s post for that. (Yes, I’m jealous and like this feature.)


Corrupting Influences

Geir Magnusson Jr: Hey, I’m blogging in Sam’s style...

P.S.  Note to Planet Apache: add Geir.

Hamilton on Harmony

Graham Hamilton: We’ll probably participate in the project at some level


Haiku day

U.S. haiku day
Oh-five oh-seven oh-five
Europe has to wait

Apache Harmony

Geir Magnusson Jr: We kicked of a J2SE project today at the ASF. If the Incubator PMC approves, we’re on our way. Here’s the proposal. Please come and participate.

This Stuff Matters

Robert Sayre: If you’re going to do RPC, have the courtesy to tunnel it through POST.

Follow Rob’s links.  Follow Rael's links.

Data has been lost.  This stuff matters.

Integrated Aggrevation

James Governor: Sometimes less function leads to a better experience.

Glue Layer People

Koranteng Ofosu-Amaah: As an application designer my perspective has mostly been “inside out” and I’ve been forever amazed at the serendipitous magic that you glue layer people have been able to do with things I’ve built.

P.S. Congrats!

Ubuntu Update

Having used Ubuntu as my primary Operating System without a glitch for over a week, I’m beginning to make preparations for establishing it as my primary OS on my laptop, alongside with a small clean install of Windows XP.


Mobius Strip Architecture

Patrick Logan: We seem to be in a world that is more like a mobius strip than the expected seven-layer model!

Sample + One Line + Glue = Solution

Michal Wallace: I mentioned to Sam Ruby that I’d like to have a window pop up on my home machine if the load started to creep up on one of my servers. Not five minutes later he sends me a python/Tkinter script that does just that!


Simple Single Sign-on

Jon Udell: Today’s 2.75-minute screencast features Nic Wolff’s ingenious solution to the vexing problem of single sign-on to websites.

Another example of the Long Tail Of Software Development, a.k.a., pushing integration to the edges.

Things to note:

Related: Situated Software.

Facets of complexity

David Singer and Sara Moulton Reger: A Web page that requires a reader to scroll to the top to click the “next page” link instead of duplicating the link at the bottom of the page

A bit of an irony, coming from a presentation which is largely devoid of links.

Update: these pages now have Previous and Next links!

Whither WhiteWalls?

As I was driving the other day, I casually remarked to my daughter that the car approaching us was likely an unmarked police car.  It turns out that she was unfamiliar with the concept, and asked me how I knew.  I said I couldn’t be sure, but pointed out a few telltale signs... late model, high powered but somewhat plain, large American made car.  I pointed out the number and placement of antennas.  Finally I pointed out the lack of white wall tires.  To emphasize that last point, I looked around to find an example of whitewall tires.


Sparklines for Minimalists

Joe Gregorio I am deeply impressed with the work being done on RedHanded, which is not only sparklines in Ruby, but they’re generating BMPs and PNGs from scratch. Wow.

Wow is an understatement.  I’m humbled.

Incremental Evolution

Stefano Mazzocchi: Thank you, little <canvas> tag, you’ll be teaching a lot of lessons to a lot of people and you’ll be making my rich-webapp-developer life easier.

Bloglines: Hide Google Image Ads

That didn’t take long.  [More]


Japan vs India

Downsides of Consistency

Now that a shell window is on my laptop is completely indistinguishable from a ssh window into my server (outside of the title bar and the prompt that appears on each and every line, that is), I’ve managed to lose mail (I think I’ve recovered most of it) and accidentally replace the kernel on my server (which has had no ill side effects, but did make me pause).

Ubuntu Live on T40

Steps: Download Ubuntu, Burn to CDROM, Enable Booting from CDROM, Boot Ubuntu, Post to Weblog.


Complexity and Condensation

Ben Hyde: Difuse big markets call out to be condensed. They call out to capitalists to be owned. They call out to engineers to be made safe and efficent. They call out to the monkeys to come join in the fun, and those monkeys start demanding regulations, police, schools, etc.

Atom Format Last Call

Tim Bray: please have a look either at the IETF ASCII or nice modern HTML versions of the draft, and see if you think we’ve missed anything.

Once the path through the IESG is well underway (perhaps by June?), my plans are to first upgrade the FeedValidator to add support this format, and issue warnings on Atom 0.3 documents.  Later (end of the year?) I plan to remove support for Atom 0.3.

Remixing Maps

Aaron Swartz: CTA (Chicago) and MBTA (Boston) maps

First we saw Craigslist content placed over Google’s images, now we see Google’s content placed over Transit Authority images.


Interface Constraint - Visualized

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
<svg id="body" width="600" height="600" viewBox="0 0 600 600"
    <g id="plug">
      <path d="M100,0 c0,0 -100,100 0,200 l200,0 c0,0, 100,-100, 0,-200"
      <path d="M150,50 l20,0 l0,50 l-20,0 Z"/>
      <path d="M230,50 l20,0 l0,50 l-20,0 Z"/>
      <circle cx="200" cy="150" r="20" />
    <use xlink:href="#plug" x="50" y="80"/>
    <use xlink:href="#plug" x="50" y="300"/>
    <path d="M50,20 l400,0 l-20,20 l-360,0" style="fill:rgb(64,64,64)"/>
    <path d="M50,20 l0,550 l20,-20 l0,-510" style="fill:rgb(128,128,128)"/>
    <path d="M50,570 l400,0 l-20,-20 l-360,0" style="fill:rgb(160,160,160)"/>
    <path d="M450,20 l0,550 l-20,-20 l0,-510" style="fill:rgb(96,96,96)"/>

Blocks for Box

Don Box: The underlying language feature (along with its cousin, anonymous methods) do in fact rock though.

Let’s explore further.


Another kind of springtime allergy

Craig Jarvis: One day last week, native New Yorker Robert Weiss, artistic director of Carolina Ballet, paused in the middle of an overheated studio to think through the choreography for a pair of dancers he was rehearsing.

Suddenly, he sounded irritated and snapped, “What is that noise?”

Outside a door that had been propped open, a warbler sang in the fresh North Carolina spring air.

“It’s a bird,” someone replied.

“It’s not a cell phone?” Weiss said, incredulous.


Koranteng Ofosu-Amaah: What feature was it, you might ask? There was no way to bookmark anything in WebSphere Portal.

Hidden in Plain Sight

Deepak Alur: So, O wise and famous (to be) anonymous blogger, do me and others a favor. Please forsake your anonymity.  Please tell us who the heck you are (on your blog). The world will be a better place.



David Heinemeier Hansson: Hey, Sam, there’s no reason to stay on the sideline watching. We got plenty of room in our pool of Radical Simplification to let both you and the rest of IBM dip in. It’s a party and a pursuit where everyone’s invited.

First question: is YARV still destined to become RITE?  It looks like development has stalled in recent weeks.

I’d like to start with the assembler.  Unfortunately, I don’t know Japanese.  The README points me to doc/yarvasm.rb for the yarv instruction assembler, but that file doesn’t exist.  Perhaps it meant rb/yasm.rb?

Continuations, slightly updated

Frankly, I’m surprised how much interest Continuations for Curmudgeons generated.  I guess that there was a demand for an explanation from the perspective of a C programmer, eh?

Based on two bugs reported in one section, I’ve updated it to reflect that what is being described there is actually a closure, not a continuation.  I’ve also added a section showing how classes are simply a special case of closures.

Mass customization

Adrian Holovaty: Why Greasemonkey is good for publishers [via Simon Willison]

I’m looking forward to the next step... where producers insert in hooks designed for extensibility.  This could be as simple as agreeing on div class names.

Zen of Conferencing

David Weinberger: Gotta love the Blogher conference’s idea of a “do-ocracy”: Want to get a topic on the agenda of this one day event? Do it!  And the political philosophy behind this: "How do you subvert the dominant hierarchy? You give up control."