Semantic Web
Versatile RESTful APIs Beyond XML
Mar 14th
An article I wrote has just been published over at InfoQ. It’s called Versatile RESTful APIs Beyond XML and shows how easy it can be to extend Rails’ RESTful behaviour to input and output resources not only as XML but also as JSON and Microformatted HTML.
The article builds on some posts on this blog, such as Intercepting Microformats In Rails Input, but offers a bit more context. The timing of the article fits nicely with a post on the microformats-rest list about Rails, REST and microformats, so hopefully we’ll see more discussion of these concepts over the coming weeks.
Governmental Pipes
Mar 5th
I’ve refrained from blogging much about Yahoo! Pipes, mainly because everyone else seemed to be. It’s definitely an interesting development, and shows how far we’ve come with open data, but also how far we still are from that really making an obvious impact for non-geeks.
Two of the more interesting pieces on the use of Pipes that I’ve seen so far are two blog entries that Tim McGhee pointed out on the govtrack list. He’s done some work using Pipes to repurpose various feeds about government activity, and they’re worth a look. Check out: Managing the volume of content from Congress and Geek Out: Mashing Yahoo! Pipes and the Congressional Record over on his blogs.
Comparing rails geo-plugins
Mar 4th
There seems to be quite a plethora of Ruby/Rails libraries appearing aiming to simplify handling geography and distances. In some cases these libraries do quite distinct things (zip codes vs. longitude/latitude, map output vs. distance calculations) but they’re frequently lumped together and it’s difficult to tell which will be best to use in your projects.
I’ve used several of these projects and have previously blogged about YM4R and acts_as_locateable, but I’m still not sure which I’d pick for new projects. So I thought it would be helpful to try to put together a comparison of which libraries offer what functionality. Here I’ll just offer a quick chart, but I’m hoping to write them up in a bit more detail over the coming days/weeks. If there’s sufficient interest, I’d consider moving this out to a wiki for more general use.
| Auto-geocoding ActiveRecord models | Multi-provider geo-coding | Distance based finds | Distance based :through finds | Google map output | Yahoo map output | |
|---|---|---|---|---|---|---|
| GeoKit (plugin index) |
Y | Y | Y | N | N | N |
|
acts_as_geocodable ( plugin index) |
Y | Y* | Y | N | N | N |
|
acts_as_geocode (plugin index) |
Website currently down | |||||
|
actsaslocateable (plugin index) |
N | N | Y | Y | N | N |
|
YM4R (plugin index) |
N | N | N | N | Y | Y |
(* through companion gem)
Also worth mentioning are SpatialAdapter and GeoRuby (from the same developer as YM4R) which respectively provide ActiveRecord support for MySql Spatial and PostGIS geometric columns, and ruby data types for that information.
A recent addition is this Ruby library for the Geonames API which provides a nice way to interface with the GeoNames database of 2.2 million populated places. Properly harnessed, that service begins to make it possible to allow your users to describe their location in natural language and convert that into machine-parseable co-ordinates.
Update (8th March): Updated versions of this comparison will now appear on the foss4r wiki
Update (October 2008): The chart now lives on a separate page within this site.
Content management with subversion
Nov 10th
A recent comment reminded me of an old entry proposing yet another project I never had time to follow through with: Using Trac and Subversion with Social Documents. The idea there was to make use of subversion’s utility for version control and trac’s existing frontend for browsing that to present versioned documents.
In hindsight, I don’t think trac would actually be a good frontend for this unless the intended audience was entirely techies. Trac works for those of us who use it every day to follow a variety of projects, and its ability to combine a wiki with version control of the ‘official’ versions of documents provides some interesting ideas, but the interface just wouldn’t work.
But even if I’m unlikely to get time to play with it, I’m still interested in the idea of using subversion as the core for content management. It seems a sensible application of “small pieces loosely joined” to use a proven version control system as one layer in a system. So I’ll be interested to follow Bob DuCharme’s work to use subversion for Digital Asset Management in a CMS.
Bob’s looking into svn’s ability to store arbitrary metadata to store RDF relating to each revision and exploring how its hook mechanism an be employed to make it all work. As ever the proof will be in the interface, but the underlying principles definitely deserve exploration.
Dropping RSS1.0 From Wordpress
Jan 16th
One of the discussions going round the web over the past couple of days has been a discussion on the wordpress trac about dropping RSS0.92 and 1.0 support from future versions as they are seen as redundant.
Dropping RSS 0.92 support seems sensible. It’s an old format and there are considerable advantages to using a more recent, better developed standard. RSS 1.0, on the other hand, brings to the table a number of advantages lacking in its higher-numbered cousin.
Harry Chen provides three good reasons for sticking with RSS 1.0 support, reasons that are well worth seconding. Atom opens up a lot of semantic web possibilities—particularly thanks to work to model it as a microformat and in OWL—but RSS 2.0 certainly doesn’t offer the scope and power to justify replacing 1.0.
Naturally if Wordpress were to drop support it’d be a simple matter to hack it back in, but in these days of structured blogging, web 2.0 and related buzzwords, it’s definitely preferable to have publishing tools that prefer technologically superior solutions.