Monday, July 27, 2009

Tagging content with Curl macros (Part 2)

Today I added a page on Curl markup at

It seems long-overdue that some attention be paid to Curl's natural fit for SemWeb - if only in the enterprise.

Saturday, July 18, 2009

Tagging content with Curl macros

Curl was thought of as a web content language before getting some attention as an RIA platform, but Curl macros are of interest for markup because Curl files are Curl data and macros are expanded based on the package reading that file. So in different contexts, the same markup can be used to obtain different results with no conversion.
Here is an example from an outline of mine on microformats:

{topic "microformats",

{wp "", Lang.en},

{home ""},

{intro ""},

{blog "", BlogType.personal },

{cf ""}

The commas are an option that I chose for the {topic} macro, but the Curl macro format is very open and the punctuation is wholly arbitrary on my part.
Curl also offers a more extensive {define-syntax} option which is even more suited to treating Curl as data than the friendly {define-macro} with its many template or pattern options.
In the elements {wp} and {blog} the final attributes are themselves optional and in some contexts might be ignored altogether. Here they are simply my enums Lang and BlogType.

Wednesday, July 1, 2009

CINCOM Web Velocity available

An epistle from James Robertson, CINCOM's Smalltalk evangelist, informs me that Web Velocity is now available.

James is the author of a great many quality Smalltalk podcasts available on iTunes, so learning Web Velocity should be a pleasure.

Forget Rails. Web Velocity is built on Seaside from Ruby-guy Avi Bryant ( and returns to Ruby as the "Borges" web framework) and allows editing your live server-side code in the web page in your browser. The live page.

The only thing that comes close to this in my experience is the "live code" {example}macro in the Curl Documentation Viewer in the Curl IDE.

Congrats to Alan Knight and his team at CINCOM and to the Squeak folks who helped carry Seaside forward!