Thursday, October 14, 2004

Wednesday, October 13, 2004

Python meetup in Dublin is tonite

Python meetup in Dublin this evening. I will be there. Will you?

Google via SMS

This looks very cool. Google search via SMS. US only shortcode at the moment. I cannot think of a previous example of a US SMS service being way ahead of a European SMS service. This is certainly one. We wants it, precious. We wants it.

Tuesday, October 12, 2004

Verbs, verbs, verbs - Patrick Logan nails it

Paraphrasing Patrick here : Verbs for coordination are different than verbs for application level action.

Amen to that.

Verbs for coordination constitute a transfer protocol - a fixed set of verbs for bitshovelling data between communicating processes. Verbs for application level action are application specific verbs - ReciteOdeToASmallLumpOfGreenPuttyIFoundInMyArmpitOneMidsummersMorning is a good example.

Do the latter belong in the fundamental "interface" your service exposes to the world? I say no (others say yes). I say you need to soft-code these to produce evolvable systems. Message "type" is soft. It is dynamic. It is a duck.

The former are fundamentals of your transfer protocol. There are only so many ways to get stuff done between cooperating processes just as with cooperating people.



Herding cattle and trapping mice

Herding cattle and trapping mice.

Yes, you guessed it. An article about Graphical User Interface development paradigms.

Sunday, October 10, 2004

Jython and Web App Development Tutorial - part the first

I have published a tutorial treatment of Jython and Java servlets. It is part of a larger tutorial I'm working on to illustrate how much you can do with JVM + dynamic languages + XML + servlets + asynchronous messaging, which, to my way of thinking, are most of what is needed for flexible, scalable Web Services at least for the next century or so.

http://seanmcgrath.blogspot.com/JythonWebAppTutorial.html

Verbs, verbs, verbs

Mark Nottingham speaks sagely on the subject of verbs.

I'm very dubious about Don's assertion, mentioned by Mark, that once you get (no pun intended) uniform interfaces based on verbs, you see the benefit of creating domain-specific, verb-based interfaces.

I for one, haven't ended up there. I believe it essentially leave you back more or less where you started. You end up with domain specific interfaces and hard-coding N-squared awfulness to interlink domains. I don't see how it is any better than, say, having a abstract base class for a domain that specifies pure virtual methods for each of the verbs and then a bevvy of concrete classes supplying implementations of those verbs. The sort of thing OO-based distributed app designers have been doing for a long time now.

I've been reading some stuff lately that leads me to think that the "proof" (if that is not too strong a word:-) of the pan-domain uniform interface argument will eventually come, not from comp. sci. but from linguistics and the social sciences.

Here is a quick Gedanken based on some stuff I read by Stephen Pinker lately:
Are the phrases "Sean loaded the wagon with hay" and "Sean loaded hay onto the wagon" the same or different?

On the face of it "wagon" sure looks like a resource/object and "load" sure looks like a verb/method.

So, what would this mean?

    wagon.load("hay")


Now replace "wagon" with "wall", "load" with "splash" and "hay" with "water".


    wall.splash ("water")



In the case of the wagon and the hay, the order of the object and the verb affects the semantics of the statement ("Sean loaded the wagon with hay" sure sounds like afterwards, the wagon was full up whereas "Sean loaded hay onto the wagon" does not imply that the wagon was full afterwards.).

In the case of the wall and the splashing water, the order of object and verb does not affect the semantics.

Given a choice, I would "post" hay to the wagon and "post" water to the wall because all semantics of exactly what that means are attached to the resources - not implied by the precise choice of words in the verbs.