[<<] Industrie Toulouse

August 09, 2002

I've been doing a lot of "Zope" and "CMF" work lately, wrapping up a couple of projects and tinkering around with our own internal project site (hence all the recent interest in Bug/Issue Trackers, of which I still don't have a satisfactory conclusion about). There's not much to say except for a fair amount of praise. Zope 2.5.1 is a pretty solid release, and the recent new technologies that have been added to Zope, such as Page Templates, Python Scripts, and long-overdue Session management are pretty much done right. I'm not without a few complaints / desires. The one that really caught my mind today (from an annoyance that I had to bully through under tight deadline a month and a half ago) is this:

Page-Load Handlers for Page Templates

On one recent project, I had to deal with session timeout situations or situations where a user visited a page directly with no session data (their user id or shopping cart contents). The solution that worked out best for me was to just allow certain errors to happen (KeyErrors, etc), and catch that in standard_error_message and report it as "hmm, your session has most likely expired.. Unfortunately, this could mask other errors in the system - testing found most of them, and a "session timeout" is a friendlier error message than most, but I'm still uncomfortable for the situations it may be untrue in. In DTML, it was pretty easy to add a couple of lines of code to catch the situation and raise a redirect error. In Page Templates, it's a bit trickier. And uglier. ASP.NET has a 'Page_Load' event handler a developer could write. It can be used to prepare data for a Page, or to do preconditions. I think that Page Templates might benefit from a similar solution - add a 'Page Load Handler' field that is a TALES expression of its own. I see a fair amount of page templates that weigh themselves down with excessive TALES 'define' expressions at or near the top of a document, sometimes with funky boolean logic to try to prepare data for use later on. Attaching a Page_Load handler that could return data to add to the TALES options context, or return a substitute page in advent of some logic succeeding/failing (ie - a session timeout) could be quite advantageous. It could also benefit situations where Response headers need to be altered. And finally - it would help the separation of Template Logic (aka "display logic") from some of the more programmatic logic that still seeps in to Page Templates from time to time. It's just a thought. There are ways around having such a handler built in, but the ones I've toyed with have proven to be fallible or tricky to maintain.
J. Shell, August 9, 2002 10:39 PM, in
It's no wonder that Microsoft is having such a tought time with .NET - it lives two lives under the same moniker. The first is familiar to all developers, and that's the .NET Framework and development tools / systems (ASP.NET, ADO.NET, etc). I think Microsoft has done a decent job with this part of the system - so far as I can see.

But the other half - the services - is where MS seems to be struggling. And not just Microsoft, it's the whole Web Services camp. Eric Knorr wrote up this article in ZDNet, and Doug Kaye summarized it as "that the easy part of the web-services stack (SOAP, WSDL, UDDI) is nearly complete, but the upper layers (authentication, business processes, security) are in turmoil." But Microsoft most of all is getting slapped around for Passport/Hailstorm/".Net My Services".

So, there's something very curious about Apple's revamping of their previously free iTools services into .Mac. Much ballyhoo has been made about the pricing (which really comes down to a little more than $8/month, a little less than $5 a month for current iTools users who upgrade - I do wish Apple actually offered a monthly pricing option though), but there hasn't been much talk about .Mac's more serious aspects.

The first of which is - Apple now has their own "universal identification" service, similar to Passport. I don't see Apple trying to open Passport up to a plethora of different web sites as a usable login in the same way Passport is currently being used, but the use of the .Mac account with iChat is an interesting sign. For those not in the know, iChat is a new instant messaging client built in to the upcoming Mac OS 10.2. What makes it interesting is that it uses AOL's AIM network, but unlike other AIM clients, you don't need an AOL account/"screen name" to use the service. Your .Mac login can be used instead (or, if you choose, you can use a normal AOL login with iChat as well).

So suddenly, you're using the .Mac identification system to gain access to a different network. Hmmm. And while Apple is not listed as a Liberty Alliance member, AOL is. I would not be surprised to see .Mac's Identification scheme getting accepted into or somehow otherwise used with the Liberty Alliance, who are trying to make a challenger to Passport.

But Apple continues to do things in that lovable Apple way - quietly doing what everyone else is doing (yet somehow pulling it off), and then acting like it is their own idea. And when I say pulling it off - they really are. iPhoto integrates web services (it's unknown whether it's SOAP, XML-RPC, or some other mechanism) to allow ordering of Prints and Books online - but without ever leaving iPhoto (or being presented with anything resembling a "web UI"). It communicates with iTools/.Mac to generate web based photo albums, and makes them editable in an understandable way. The upcoming iCal calendering and task list program uses .Mac and/or WebDAV to share and synchronize calendars (finally!). And another upcoming application, iSync, is the bees knees. Apple is touting it as a single way to synchronize the plethora of devices we have, but the secret weapon of iSync which alone makes .Mac membership worth it is the ability to syncronize multiple Macs!. I'm sure I'm not alone in having three Macs in my life - my iMac at home, my G4 tower at work, and my iBook in between. I sync my Palm at home, but frequently need my Address Book and Calendar at work. If I have my iBook with me when traveling, it's much nicer to use than my Palm, but is never up to date with addresses and other items. With iSync over .Mac, I can synchronize my calendars at work to my home machine, and then put them on my Palm. I'll finally have one address book again (alright, two - my current cell phone isn't fancy enough to play with iSync) instead of five.

This all sounds vaguely similar to some of what was (vaguely) promised for what used to be called .Net My Services. The big difference - it's going to be installed and working on thousands and thousands of desktops soon.

J. Shell, August 9, 2002 10:22 AM, in