December 30, 2004

Recipe Markup Language

At a recent extended family dinner, we discussed creating a family cookbook. We have, for my lifetime and likely before, eaten traditional Swedish food (read: 19th century immigrant food) for Christmas Eve dinner, and there was some desire to make sure we had the recipes for this meal safe and secure. So, we're planning on gethering these reciepes and other favorites into a little family cookbook.

Naturally, being the info geek that I am, I'm thinking I'll store the recipe data in XML, and transform to HTML for web and PDF (or maybe RDF) for printing purposes.

And, being the info geek that I am, my first move was to see what others have done in the area of marking up recipes. Why duplicate the work of designing a schema, or even the supporting tools? And, if there are standards, I'd want to make sure I could interoperate with other services (although, I doubt many would want my uncle's pickled herring recipe).

So, off to Google I went...

It turns out that there are quite a number of competing (?) XML recipe formats out there. This is in part because this is not a very hard problem to solve. In fact, the problem is often used as an example in books or classes that teach XML.

Here's a rundown of the formats I found:

  • RecipeML looks like the most official of the bunch. But, it is at version .5, and hasn't been updated in a few years. This doesn't mean it isn't worth using, but it is a bit odd. The language seems fairly straightforward and fairly complete. Clearly a front-runner.
  • The awkwardly-named eatdrinkfeelgood looks to be an offshoot of RecipeML (according to this post). At first glance of one of the examples, it seems more verbose than RecipeML. EDFG has a number of good examples, plus a DTD, a number of XSLT files, and a mess of perl tools. I didn't see anything on licensing. Another well-done example.
  • While EDFG and RecipeML have a bunch of supporting material, our next contender is pretty simple: RCP: Recipe Classification Protocol. This entry comes to us from CSS/HTML guru Dan Cederholm. It's main virtue is that it is quite simple. Dan says that he is "half kidding, but conversely, half serious" about formalizing it. I think he ended up writing a book instead. Regardless, I rather like it.
  • The final entry was found on Joel's Virtual Desktop. It's another straightforward one. Not much to say, I guess.

So, which one will I use? I don't know yet...I probably won't figure it out until I actually start working on this project. A part of me just wants to slap together my own format, thus allowing me to do pretty much whatever I want. Another part says that it makes sense to build on someone else's work, especially if there are pre-existing tools. Of course, I could always extend an existing format (with namespaces!) or build an application profile. We'll see...

Posted by Karl at 09:05 PM | TrackBack

Smart URLs

Anne van Kesteren writes about creating smarter URLs by dropping the suffix and/or using redirects. I'm all in favor of sane URLs (especially since I've created a few insane--or at least mildly unhealthy--ones in the past).

We've been moving a few files and directories around lately at work. We're doing this mostly to either correct mistakes (misspellings) or create a bit nicer hierarchy (like actually putting pages in the "About" section in the /about/ directory). As good little web developers, we're redirecting users to the current page. The technology of choice is mod_rewrite. But, one of our server guys recently recommended we use symlinks ("ln -s [to] [from]" in the shell). I'm not entirely which way would be best. I like the organization of having everything in one file (.htaccess) rather than spreading symlinks around the file structure. But, there might be a slight performance gain by not having Apache check every request against the mod_rewrite rules (although I suspect the gain would be fairly minor). Any opinions on this out there? Email me.

(via Nick Finck)

Update: Anne wrote in and came down in favor of mod_rewrite:

If you can, put the redirects in the httpd.conf file from Apache. That file is cached. mod_rewrite is only a little bit of overhead. On a low traffic site you do not need to worry about it.

I'm running what I'd call a moderate traffic site...or at least we've had periods of fairly high traffic (took down an oddly configured server cluster at one point w/ too much traffic). I'm not super concerned about the mod_rewrite overhead, but I am reasonably aware of anything that could slow down the site.

Anyway, for most things, I think I'm still in favor of mod_rewrite. Anyone have a compelling argument for symlinks?

Posted by Karl at 08:56 AM | TrackBack

December 29, 2004

Rich Internet Apps

In the wake of Google Suggest, I've been seeing more and more activity in the dynamic-yet-not-flash-web app arena. Harry Fuecks noted a number of interesting new projects. The one that caught my eye was QWAD, a framework of widgets (javascript/CSS/DOM stuff) that allows you to create some interesting interfaces in a web environment.

Harry also mentioned Simple Test for PHP, a unit testing framework. Something to look into, I think.

Posted by Karl at 08:45 AM | TrackBack

Family Tech Support

If you're the family "computer guy" (or girl), you're likely to end up doing tech-support duties for friends and family as I do. Thus, you might chuckle, as I did, at this line from Tim Bray:

Lauren and I will cheerfully help our friends and relations out with their computers, even Windows boxes, but not if they use Outlook or IE.

On a slightly more serious note, check out this nice little article: "How to fix Mom's computer" Gina Trapani includes details of every little thing she did to tune-up an older PC, from spyware to Firefox. It'll be useful to pull out the next time I have to help with this sort of thing...

Posted by Karl at 08:29 AM | TrackBack

December 23, 2004

Stuff to Read

On Christmas Break? Bored? Looking for something to do? First check out Kottke's list of best links 2004 -- mostly creative non-fiction, and mostly good stuff, too. Then, check out the Good Experience Blog's list of "fun stuff" links. Very little of this has anything to do with, you know, information management or anything like that. But enjoy anyway. If I have some time, I'll try to make it through my backlog of relevant material and post some good links later.

Posted by Karl at 05:33 PM | TrackBack

December 16, 2004

Mini-Link-Dump

Three good-looking web resources that I ran across today:

Posted by Karl at 05:12 PM | TrackBack

December 14, 2004

Digital Identity

I'm listening to the Gillmore Gang discuss digital identity with Phil Windley. Looking forward to Windley's book...

Posted by Karl at 10:43 AM | TrackBack

December 10, 2004

Google Suggest

The web is abuzz with word of Google's new "Suggest" feature.

I'm, quite frankly, amazed they can do this as the speed they're doing it. Very impressive. Update: Slashdot post on the implementation details. Another Update: Chris Justus dissects and explains Google's code.

One of the more interesting blog posts comes from IA Slash, where Jess McMullin talks about implications of the Google tool for controlled vocabulary situations. One of the links Jess points to is an interesting look at some good uses for heirarchical CVs on designweenie.

Posted by Karl at 01:11 PM | TrackBack

Building Basecamp

The 37Signals guys are holding a Building Basecamp workshop in Seattle, just up the street from my place, actually. Cool! I'll be there.

Posted by Karl at 12:38 PM | TrackBack

December 06, 2004

ISBN Tricks

OCLC's Jeff Young wrote me in response to a recent post of mine about xISBN to let me know about a few nifty uses of xISBN:

I'd really love to see a really simple web service where a developer could feed the service an ISBN, and the service would return some very basic bibliographic information in a structured (XML) format.

Turns out that OCLC has something kinda sorta similar to this, only it returns HTML, not XML. Check out http://labs.oclc.org/xisbn/liblook?baseURL=http://google.com&opacID=openworldcat&isbn=025332968x. (Without the Frame.) This is a view into OCLC's WorldCat...it looks like the view was actualy put together for Google.

So, if I had this service, plus xISBN, I could build the little booklist manager I've been writing in my head for the past few months. Basically, to add a book, you'd just need to punch in an ISBN. The system would reach out to WorldCat and find the basic info about the book (title, author, publication info). Then, it would create links to my local library and Amazon. The upshot is I could keep a better list of books-to-read (the combo of an Amazon wishlist and my library's hold queue isn't cutting it for me right now).

Granted, I could probably do this pretty easily through Amazon's web services, but the sheer scope of WorldCat is pretty compelling ("57 million quality records and counting").

Posted by Karl at 08:18 PM | TrackBack

Flash = Cilantro

Okay, so I'm not going to dive into the age-old debate about Flash, but I did like this nice turn of a phrase by Merlin Mann:

Use Flash like you would cilantro—sparingly and for a single high-impact effect. Nobody wants to eat a whole bowl of cilantro, and nobody wants an animated death march when they have a “passionate task” to complete.

Of course, I might just like it because I'm a foodie...

Posted by Karl at 12:35 PM | TrackBack

December 02, 2004

Citation Searching

Reason number 42 why Amazon is kicking my local library's butt: citation searching.

Posted by Karl at 01:24 PM | TrackBack