Wednesday, February 27, 2002


I updated my doc on Enabling Category Specific Stories. The category story index now uses a generic macro. I made both macros in the doc available for direct import into Radio.
5:08:45 PM      

Switching between XSLT and XPath. Do you know how to specify patterns for node searching? Learn how to switch between XSLT patterns and XPath syntax. [JavaScript Tip of the Day]

That is a useful tidbit. I would far prefer to do XML queries using XPATH expressions than XSLT patterns. The former is just much richer. OK, I expect you guys to start writing all your queries this way!
3:29:10 PM      


[Dave Winer says] On this day four years ago, I wrote an essay that really got things moving. "It's RPC over HTTP via XML. I believe it's the next protocol for runtimes." Got a call from Bob Atkinson at Microsoft; then Don Box, Mohsen Al-Ghosein, Bob and myself designed XML-RPC, which later became SOAP. It was a big day in my life, led to lots of good things.

I remember reading this posting and being stunned, at first, then seeing all of the pieces begin to fall into place. I had only just started playing around with Frontier (version 5.01) and I was still trying to grok an announcement from earlier that year about something called betty. I was thinking of Frontier as something just for developing content and had never thought about why it might be nice to serve content from the same application. I wish I had the same "bonk" reaction Dave did back then. That would have saved me a lot of time. Sure, I could develop some nice web pages in Frontier, but it was still more work than I was willing to put in to create and manage a website (mainly because I had no need at the time). But I sure did like the Usertalk scripting language and the development environment and the object database and the clean way everything was developed in Frontier. That was inspirational. That was fun. I really wanted to work in that environment, but it seemed everything was confined to working within the Frontier environment. I felt like I was trapped inside Smalltalk or something. There just did not seem to be a real good way of developing utilities and apps that I could launch from the command line (Desktop Scripts aside). In the end, I put Frontier on the shelf for at least a year.

The XML-RPC essay, on the other hand, made lots of sense to me. I was experiencing DCOM registration problems and saw that XML-RPC offered a potential way to solve that problem. It also looked like it could solve a nasty distributed object serialization argument that just would not die in our office. And then I finally got hold of an early beta of Radio Userland. OK, I picked it up because it looked like a slick way to manage my collection of MP3s! But as I began to play around in it again I remembered how much I enjoyed that environment for developing tools and utilities. With Dave's mind bombs I realized that I could use technologies like XML-RPC to expose these utilities to other apps outside of Frontier/Radio.

I have always enjoyed scripting languages. I still use an old release of ScriptEase Desktop for building tools that require use of the Win32 API. But over the last couple of years I have spent more and more time working within Radio - building client tools to go against server apps I develop (or my team develops) and writing internally useful server tools exposed via XML-RPC or SOAP. It is fun, partly because it is so easy. It is fun, because you see immediate results and everything just tends to work the way it is supposed to.
2:58:41 PM      


Russ Liption, who is documenting Radio, comments on my story about enabling category-specific stories: It looks like the only hard-wired code item is the "ict' category - am I right? Also, where within Radio (radio.root?) should the macro live?

I will make the doc a bit clearer on this point when I get a chance (probably tomorrow). I did hard-code my category name ("ict") in the macro that generates my category's story index. The macro itself is not stored in Radio, but the index.txt document. A better design would be to store the macro in Radio, say in workspace.radio.macros or maybe user.radio.macros, and modify it to accept the category name as a parameter. Then the index.txt document could just contain an invocation of the macro - similar to the way Radio handles any other index document. The advantage to this approach is that you can have one copy of the macro building indexes for multiple categories. Thanks Russ!
1:39:15 PM