|
|
Sunday, February 24, 2002 |
Paul Prescod on REST and RPC
Paul Prescod on REST vs RPC
Paul Prescod has written a long and thoughtful piece on REST. He says, in part:
For instance, a balkanized way to reference about a particular stock value is as WebService.stockQuote("KREM"). This syntax is particular to some programming language and is not available outside of it. It can only be used by some other service through some form of glue. A universally addressable way is http://www..../webservice/stockquotes?KREM.
Is it just me, or this discussion a little like a Necker cube? I see it both ways, depending on how I look.
I wish, though, that we could drop the tired stock-quote example. Calling a service with one simple value, and returning one simple value, does make the point that an equivalently standard one-line SOAP invocation, while possible, doesn't exist yet. But what about when complex objects are passed?
True, we can send and receive blobs of XML atomically. Paul notes we can then pipeline these operations, and he likens HTTP GET and PUT to the Unix shell's pipe operators. I guess that's true. On the other hand, if the command I stick after the pipe operator can support introspection, then I want to use that instead of a man page.
Discussion.
11:24:05 PM
|
|
Java Web Start trickle-feed
The feature does exist, says David Wragg. But it's not all that useful, he concludes.
I can't remember. Why didn't Marimba's approach to Java software distribution standardize?
6:32:11 PM
|
|
Sam Ruby meditates on type metadata
Sam Ruby meditates on type metadata
"...meta data about arguments is often very helpful," Sam writes. "In statically typed languages, this data is most useful at design time. In dynamically typed languages, this information is useful at runtime. Either way, if you want to reliably get the results you want, you need to call the correct operation with the correct data types and provide information about those data types. That doesn't mean that some languages can't accept a wider range of operands. Or even that the recipient language cares about what data type the sender thinks it is sending."
Sam also recirculates the meme from Mark Pilgrim's "erudite reader" -- that two axes of typing, strong/weak and dynamic/static, are orthogonal. Python's interesting status in this regard may help to tease apart the issues that are currently polarizing the WSDL debate. It's not simply scripting languages versus compiled languages, I don't think.
5:51:21 PM
|
|
Visible subscriptions, revisited
So Dave called and reminded me that the subscriptions are available, for example here. Now, those aren't the same as what you see on my homepage. That's because I turned off the Pref that upstreams mySubscriptions.opml. But, as it turns out, it is enabled by default. Should it be? I'd say not. I'd say that most people would expect this not to happen unless they ask it to. Why is it done? To compute rankings.
At some point, I noticed the mySubscriptions Pref and turned it off. But it is a subtle thing, and you might expect that turning off the Participate in Weblogs.com Pref would have the same effect. It doesn't, though.
3:17:37 PM
|
|
Introducing the channelroll
Displaying subscriptions
The widget below my calendar displays the RSS feeds to which I'm subscribed in Radio. It's a Web service, although at the moment (since I'm blocking inbound access) it can only be used locally, like so:
<%params = {}; xml.rpc ("127.0.0.1", 5335, "radio.subs", @params)%>
or, equivalently,
<% ["xmlrpc://127.0.0.1:5335/"].radio.subs () %>
or, in fact:
<% ["soap://127.0.0.1:5335/"].radio.subs () %>
The script is here. It's an experiment in transparency. I'm revealing not just what I might say that I read, for example in a static blogroll, but what my aggregator database shows that I actually do read (or at least scan).
This might be a little too intimate for most people to want to do. It might even be too intimate for me to want to do, at least for a global audience. I'll see how that feels.
In any case this is clearly something that smaller teams of people might want to do in order to pool knowledge resources. And that's the beauty of having the implementation be a Web service. The same code that's used to render the global homepage can be used in a point-to-point kind of way.
Part of this experiment is about getting RSS URLs to be more visible, and more easily transferable. Note that some of these feeds are courtesy of NewsIsFree. I think this is an acceptable non-commercial use. If I hear otherwise, I'll desist.
1:22:29 PM
|
|
© Copyright 2002 Jon Udell.
|
|