Featured Post


 These days, I mostly post my tech musings on Linkedin.  https://www.linkedin.com/in/seanmcgrath/

Wednesday, December 31, 2003

New year resolutions

  • In my copious spare time in 2004 I will:

    • write (or at least make a very big hole in) a science novel about the relationship between computing, language and creativity.

    • write (or at least make a very big hole in) a non-fiction book challenging some of the self-serving mores of the IT industry as constituted at the start of the 21st century.

    I also undertake to get my hair cut more often, eat less fatty food and chew my way more quickly towards what is, at this stage, a brobdingnagian backlist of books and interesting URLs.

Sunday, December 28, 2003

Aggregating feeds with Bloglines

I've just now created a couple of folders to better organize by feeds in the excellent bloglines, server-side aggregator. When you click on a folder, you get a page with the new posts from *all* of the feeds in that folder i.e. a merged feed. Excellent for infrequently updated blogs as it (a) saves a bunch of clicks to get to the chewy stuff and (b) reduces roundtripping to the server which makes for a snappier reading exeperience and an injection of warm-n-fuzzies for being a better netizen.

Wednesday, December 24, 2003

Scale free networks in immunisation programmes

'Six Degrees of Immunization' Strategy Proposed article on Scientific American. What a great idea.


Some developers in Propylon will probably be interested in pydiction for the VIM editor. As an Emacs bigot, I will have to pass. BTW, what's with the 22/7 rating? PI in the sky?

Tuesday, December 23, 2003

Comment capability added - gingerly

I have added comments capability to this blog using haloscan. If it slows down page rendition or gets spammed or otherwise ill-used I'll be taking it down again PDQ. Hopefully, that won't happen.

On the Internet, nobody knows you are a process

The non-distinction between 'actions' and 'things' on the Web/Internet is the chewy stuff in the center of this tidbit ITWorld, e-Business in the Enterprise article.

The Point and Click Preservation Society - a festive ITWorld article

Is the simplicity of the point and click web interface threatened by the growth in non-browser based web applications? Is the simplicity worth the cost in terms of inefficiency/lack of power UI features? Santa answers "yes" and "no" respectively in this ITWorld, e-Business in the Enterprise article.

Monday, December 22, 2003

OpenOffice in Government

OpenOffice is a very, very capable office suite on Windows and Linux. This article talks about a couple of government users in Israel and Texas.

Python 2.3.3 (final)


Inevitable Technology Illussions

In this business, you can be wrong in one of two ways. (a) you can be wrong and outvoted by a majority who are right. (b) you can be right but outvoted by a majority who have fallen for a fallacy.
Inevitable Technology Illusions is an ITWorld article on this subject.

Inappropriate Abstractions

As regular readers of this blog know, I'm not a big fan of object abstractions for distributed systems. Part of my mission at the moment is to promote a vision of loosely coupled systems that gets most of its power from starting with asynchronous XML messaging as its primary abstraction.
Its hard work. There is a lot of wishful thinking out there that just hopes against hope that XML/Web Services is the magic sauce that will make distributed objects work. It won't. This interview with Anders Hejlsberg of C# (and Turbo Pascal and Delphi) fame contains some gems.
    "The problem with that type of programming [OO] is: it works great in a single process; it works quite well across processes; it works fairly well in a small intranet; but then it completely sucks thereafter."

    "If you hide the fact that messages go across a network, and don't know when they go across, you end up with chatty conversations. And all of a sudden, the speed of light can become a big problem for you."

    "...Whereas, we know precious little about how to scale CORBA systems in a geo-scalable fashion. We just don't. There's just no knowledge about it, and I've never heard of anyone being particularly successful doing it."

Wednesday, December 17, 2003

So you think you know how to program a Web App do ya?

Check this out for a mind bender from Christian Tismer. Methinks continuations may make a comeback. Not only are they excellent for web programming (as Christian's example shows) but they are great for event driven architectures such as (as far as I'm concerned) any SOA worthy of the name.

Bloglines supporting Atom

The excellent bloglines server side aggregator now supports Atom.

Tuesday, December 16, 2003

Binary file formats get the Eric Raymond treatment

    "When you feel the urge to design a complex binary file format, or a complex binary application protocol, it is generally wise to lie down until the feeling passes"

The Importance of Being Textual
Priceless. Way to go Eric.

Turned off introductory programming in College by Java or C++ or Pascal? Try this textbook.

Python Programming: An Introduction to Computer Science.
Python is a wonderful teaching language. If the sound of "public static void" or "char far star" makes you hurl your breakfast, try Python whose equivalent (in both cases) is "".

ISO standard status for Relax NG

ISO/IEC 19757-2:2003
Information technology -- Document Schema Definition Language (DSDL) --
Part 2: Regular-grammar-based validation -- RELAX NG
Catalog entry.
Congratulations to all involved in this excellent technology, especially James Clark and Murata Makoto. Fantastic stuff.

Saturday, December 13, 2003

Jython as scripting language of the year for the Java platform

Vote here.

Final post on XML USA 2003

Highlight of the last day for me was the session I chaired in which Henry Thomson talked about pipeline processing (Yay!) and Sam Ruby walked through the Atom syndication project.
I did manage to exchange a few words with Rick Jelliffe at lunch before I had to dash off early. Ricks presentation on quality in XML processing and the distinction between "plan" and "probe" techniques is required reading for anyone approaching XML processing or schema design.
Unfortunately, I had to spend Thursday in D.C. so could not travel to N.Y. with Walter Perry to hear Rick talk to the XML SIG of New York. February of last year I presented on the XPipe proposal for pipelined XML processing to the same group. It was my last visit to NY actually. The city is well and truly back on its feet now. Chinatown was just crazy with people and traffic today and yesterday evening there was a large party crown heading into downtown Manhatten from New Jersey. The big apple is buzzing again.

Hairy tale of New York

    "They have cars big as bars they have rivers of gold but the wind blows right through ya 'tis no place for the old."

In the big apple humming the best XMas song of all time.
Much fun was had playing with the traffic all the way from Philly and then fighting through the Holland Tunnel to the seat of our libations and somnambulations in the east village.
Spent some quality time in the company of eight miles of books in Strands bookshop. The have everything basically and cheap too, especially with the way the Euro is against the Dollar at the moment. Ireland is such a *()%^ ripoff for books and CDs. Amazon is great but you cannot smell it, if you know what I mean. Some times you need to get up close, turn your head through ninety degrees and get up on some steps to hit the high shelves. Its part of the fun. (Tip to Amazon, allow users to browse books as if they were on bookshelves. It will help invoke the nostalgia of the physical bookshop. Probably not much you could do about the musty smell...unless...naw....).

Friday, December 12, 2003

Images, History, Language

In this city of Philly it seems appropriate to quote the playwrite Brian Friel.
    "It is not the literal past, the 'facts' of history, that shape us, but images of the past embodied in language."
A suitable Wittgenstein-ish sentiment for an XML conference where the struggle is (as ever) primarily with language and context in the ongoing battle for self-describing information.
I have long harbored the belief that in document-centric XML there is a time lag between content origination and its ex-post-facto 'obvious' structure. We look at the facts of our historical creation (the content) through the medium of language, dressed up in angle brackets.[1]
Paraphrasing another Irish literary giant (Joyce: "a nation is the same people living in the same place") - an XML schema is what you can create when you have documents that are the same structure used in the same context.

More XML folk

I met Dare Dare Obasanjo for the first time yesterday and also settled a question Lauren Wood had about the tallest XML geek (in the room. and probably at the conference as a whole). Norm Walsh comes first, followed by moi, followed by joint XML Cup 2003 winner, Michael Sperberg-McQueen.

Thursday, December 11, 2003

XML 2003 - another day

Out of town all day at meetings so did not get to the conference at all. Got a nice photo of me standing next to Einstein though in D.C.
Yesterday evening Tim and Lauren hosted a soiree when I met another couple of folks I have known for years electronically but never met in person before - Eve Maler and David Megginson or example.
I missed James Clarks talk on namespace routing language but managed to catch some of the town hall session on validation which was interesting. I made (surprise) a suggestion that a pipeline architecture is an excellent vehicle for achieving powerful validation capabilities without resorting to more and more complex expression languages. I made something of a mini-rant on the subjects of performance too.
Seconds per document is not the interesting metric. The interesting metric is documents processed per second. Beware von Neumann's curse.

Wednesday, December 10, 2003

XHTML - what it gets you and what it doesn't get you

XHTML - a recommendation and a warning (but mostly a warning) is an ITWorld article about XHTML.
I'm a big fan of XHTML but in my work I often come across situations where too much is made of the XML-ness of XHTML.
If you want to get semantic structure into your documents you have two choices for XML markup. Either create tags (and preferably a schema). Or - and this is, I think, becoming more and more compelling as XHTML tools improve - tunnell structure into your XHTML using well thought out stylenames for CSS. With a bit of thought and with the help of XHTML's span and div elements, you can go a long way to semantic markup. The XSLT mapping from XHTML+Styles to generic XML (and back) is left as an exercise for the reader:-)

Context is king

During his keynote yesterday Jon Udell quoted from one of my ITWorld articles : "...the four-ness of four is the least interesting thing about it." A couple of people at the conference have asked me what article that quote came from and what it is about. The article is called The impotence of numbers and its all about context being the real thing that turns data into information. XML Markup does not amount to a hill of beans without context. Markup context takes a number of forms including internal (within the confines of an XML instance) and external (how an aggregation of XML instances are inter-related.).
The former can be severly diluted by thinking of XML as a notation for associating atomic types with strings. The latter is not something that XML itself gets involved in (with the exception of the general entity structure which, whilst in XML 1.0, has something of a quantum verisimilitude is the industry.)

Tuesday, December 09, 2003

Day 1 (for me) XML USA

Jon Udell's keynote was very interesting. Other talks patchy. Looking forward to James Clark who tells me he is going to load a 35Mb OWL ontology into Emacs/NXML tomorrow.
Bumped into some more old faces. John Cowan, Walter Perry. Put some new faces to names: Sam Ruby, Wendell Piez.
Rick Jelliffe is talking at XML NY tomorrow. If possible, I'll be going up. Walter kindly offered a give me a ride if his car trouble is sorted.
Finally : Relax NG is to XML Schema as Igloo is to Gotham City.
Yes, it makes no sense.

Philadelphia here I come

Actually, Philadelphia here I am. Sitting in a good hotel that has Marriot has its meta-class. Its block to block Marriot instances around here, all nuanced in different ways. Glorious WiFi included in room charge. Saw some familiar faces yesterday evening when I arrived. Simon St. Laurent, Edd Dumbill, Eric van der Vlist, Bob du Charme. Also, met R. P. Bourret for the first time.
Its all deja vu stuff. We where here 4 years ago for XML '99. I remember giving a XML processing with Python tutorial.

Sunday, December 07, 2003

Hiding complexity versus pretending it isn't there

Mike Champion makes a number of important points in this article but the one that struck me most was:
    "Beware of the argument that complexity isn't a problem so long as it is hidden.".


The bear necessities of networking


Saturday, December 06, 2003

Web Services as RPC again!

"An XML web service is, to a first approximation, a wide-area RPC service in which requests and responses are encoded in XML as SOAP envelopes, and transported over HTTP.".
This extract from this piece is so not what I think an XML web service is.
If that is what it is then why not just badge any one of a zillion RPC centric distributed technologies and stick a layer of pointy brackets on top. Why re-invent it? Whats the point?
I think Web Services technology *does* need to be invented because its benefits come from it *not* being a wide-area RPC mechanism. Web servicies are not, as far as I'm concerned, distributed objects. If they are, its all a bit of a waste of time and money reinventing it isn't it?

Patents in e-Commerce - it would be funny if it were not so serious

[via Webmink]. A graphic illustration of the problem.

Friday, December 05, 2003

None of the above

Campaign for a "None of the Above" option on electronic ballots in Ireland.
Personally, I think a "MU" option would be an excellent addition.

Blogging XMLUSA

bloggers who will be blogging next weeks XML USA conference.

anti-links again

About this time last year I was noodling the pros/cons of a machine readable anti-linking mechanism.
Today I found this a really simple suggestion for how to do it with services like tinyurl. Isn't the Web's predisposition towards intermediation a great and wonderful thing?

Thursday, December 04, 2003

Web Services are not distributed objects

A big Amen Brother to this piece by Werner Vogels.

Python programming for money

The Shuttleworth Foundation has some Python projects it would like to see done and some money to make it happen in 2004.

Wednesday, December 03, 2003

And the conclusion is?

A good article, and a well put conclusion:

"Our interest in Python developed from a prototyping standpoint, but we quickly adopted it as the language of choice for our management interface as well as for ad-hoc prototyping of future concepts. Numerous developers have come up to speed with Python quickly, and they have expressed pleasant surprise at the simplicity of the language and how quickly they are able to fulfill functional requirements with it. Moreover, Python's robust string and file handling (as well as its built-in types) make it the language of choice for our user interface. We're quite excited about the potential that Python has given us.

In the future, Python will be looked upon favorably by both the development staff and the company at large, because it has allowed us to respond to customer requests in a fast-paced, rapid development environment. The built-in types, lack of compilation, interactive interpreter and usability of Python have made it the language of choice of many and have raised the bar of excellence when evaluating other languages."

Tuesday, December 02, 2003

No sign of the googlechop

Its been over a year now and still now sign of 'googlechopped' being googlechopped

Pssst, object oriented design doesn't always work

Works great in the small, less great in the large. What we need is a grand unifying theory of how applications can interact with other applications. God, as far as I'm concerned, does not play DCE with the universe:-)

Thick client web apps and blame allocation

Before getting too excited about the potential of desktop applications that connect to the web but run outside the browser, it is worth considering what might be lost. In particular, the sheer simplicity of apportioning blame, in the event of a malfunction. In a Dilbertian way, this is a very important issue and one that thin client web browsing has brought sharply into focus. The fine art of blame allocation is an ITWorld article on this subject.

Monday, December 01, 2003

Epoz - WYSIWYG editor for Zope

Epoz now does XHTML. Very nice.

XML as legacy?

This article on recent moves towards a standard binary encoding of XML contains the phrase "legacy XML".
I cannot believe how anyone would think it a good idea to have to go back to the back old days of funky binary decoders to understand the bits on the wire.
If XML bulk is killing the performance of your application (and I say "if" - you need to back that up with real data). (1) use standard text compression technology e.g. gzip. If that fails (2) consider not using XML at all.
I would prefer to see application specific syntaxes - like CSS or Relax NG compact syntax - bloom instead of letting the binary encoding genie back out of the bottle. Been there, bought the T-shirt, had troulble opening the packet and when I finally opened it, it was "corrupted" whatever that means :-)

Sunday, November 30, 2003

What the heck is "maths frameworking"?

Every John Steinbeck book on Amazon has "maths frameworking" in parentheses after the title. A publishers name? Sure looks weird.

Debugger as tool of last resort

Robert. C. Martin on the two edged sword known as "a good debugger".
Odd, but in my years programming Python, I have never felt the need to fire up the debugger that comes with it. I lived in a debugger when I was a C++ programmer.

Titanic herculean translations

Tim Bray points out a considered piece of language translation where the mechanical choice of 'titanic' has been eschewed for the more apposite 'herculean'. As Tim says, language is a slippery, slippery thing.
Douglas Hofstadter, of Godel, Escher, Bach fame, wrote an entire book centered around the translation of one 28 line French poem by Clément Marot.
Highly recommended if you are interested in language and the difficulty (futility?) of mechanizing the interpertation and translation of natural language.

Saturday, November 29, 2003

EuroPython moves to Sweden for 2004

EuroPython conference, 2004, will be in Sweden.

Dipping a toe into Jython?

I have had a couple of e-mails from people looking for a way to evaluate the suitability of Jython for their work without spending much time setting stuff up etc. Chapter 1 of Pedroni/Rappin's excellent book is online at developer.com and I recommend that as a place to start.

Friday, November 28, 2003

Thursday, November 27, 2003

NewBay wins Ericcson award for moblogging system

I see that NewBay have won an award for their phone blogging system foneblog from Ericcsson.

Betty Harvey on her travails with W3C XML Schema

Betty Harvey writes about her travails with W3C XML Schema.

Scripting/Dynamically typed languages at JavaOne

Frank Cohen has put in a BOF proposal for next years Java One on scripting languages. Great. We need to come in low and under the radar. Lets start with "scripting". Given 10 minutes to play with, say, Jython, any programmer with a semi-open mind will see that this baby is a fully blown, object oriented programming language that can step up to the plate in hard core application development.
Someday hopefully, the phrase "dynamically typed" will come to supplant "scripting" in the language of static-typed, compile-centric programmers. Someday. For now, "scripting" is the right word I think. Low and under the radar...steady as she goes...

Another Irish tech blogger

Peter Flynn joins the ranks of the blog enabled.

Wednesday, November 26, 2003

Are dynamic languages going to replace static languages?

An interesting article on the static versus dynamic typing chestnut.

The fine art of blame allocation

We live in a world in which the comprehensive swing away from client-side programs (thick clients) in favour of server-side progams (thin clients) has reached a critical juncture. Will the trend continue or will the powers that be and/or users, decide that the time is right for thicker, client-side applications? Locally installed web-apps that are not in the browser, web service based UIs? Before leaping into any thickening of the client I think we need to ask if the benefits merit the increased flakiness of the client-side that will go with it. The fine art of blame allocation is an ITWorld article on this topic.

Tuesday, November 25, 2003

Python writing make file components - Bruce Eckel

A delicious just-it-time generation of a chunk of a makefile, by itself - sort of.

Monday, November 24, 2003

XML Conference and Exhibition, 2003, Philly

I will be at this years XML Conference & Exposition next month in Philly. I have skipped XML conferences for a couple of years now so its time I took in another one. The IdeaAlliance conference is always a good one. I typically get so pumped after one of these it takes me a week to decompress. Sad eh?

Sun should loosen up on the 'one language' thing

I'm with James Strachan on on this. I firmly believe that the long term viability of Java the platform depends on a more grown up and less condescending attitude to the benefits of interpreted languages on the JVM.
Anyone who thinks you need a compiler to be a real programmer needs to wake up and smell the roses :-) Anyone who thinks compile-time type checking is a sina-qua-non to robust software needs to ... no skip it ... I cannot be bothered...Just go here and do some reading.

Jython taglib for Tomcat

[Via the ever informative Daily Python-URL]. A generic jython taglib for tomcat. Nice.

Saturday, November 22, 2003

Excruciatingly good

Get an earful of Florence Foster Jenkins and your appreciation of the subtleties of a soprano voice will be forever enriched.

Friday, November 21, 2003

Joining the ranks of the favicon enabled

Yes, I now have one. Its a necker cube thing. An appropriate illusion, given that the concept of a 'website' onto which to put a favicon is something of an illusion.

Thursday, November 20, 2003

A good new book on XML

Elliotte Rusty Harold's new book - Effective XML - 50 Specific ways to improve your XML. Is well worth a read. Lots of solid advice. I don't agree with all of it but on the whole, very good stuff. Laid out in chunks so that you can dip into it easily. Recommended.

Wednesday, November 19, 2003

Fat Macs and Power Macs

An amusing juxtaposition. Todays discerning Mac user probably packs something like a Power Mac with 512 Megs of RAM.
Roll backwards ten years and the discerning Mac user packed something like a Power Mac with a cool 512 K of RAM :-)

Reminder: XML Ireland Event Tonite

Tim Bray and Lauren Wood speaking this evening in TCD. Be there or be ASN.1.

Tuesday, November 18, 2003

Invoices through the ages

Every article I have written for ITWorld's e-Business in the Enterprise newsletter so far has been completely serious. This article Invoices through the ages is no exception.

Monday, November 17, 2003

The role of markup

The role of markup is to follow a documents structure, not to define it..
There are scenarios in document-centric XML where this is exactly what you need and traditionally, XML editing tools haven't been good at the sort of 'get out of the way' support required.

Open Source Migration Guidelines for the Public Sector

IDA Open Source Migration Guidelines available on this page [PDF] make interesting reading as does the comparison spreadsheet.

Saturday, November 15, 2003

Poking around in a running webapp with Jython

One of the great joys of Jython (and Python) is its interactive mode. I have lost count of the number of hours debugging I know I have saved by being able to break out into an interactive shell and poke around inside a running application - examining variables, modifying stuff, doing 'what if' tests and so on.
This Jython interactive servlet looks interesting for this kind of work.

Thursday, November 13, 2003

Everything about this page is wonderful

Everything about Rob Pikes old Bell Labs page is wonderful. Read it twice - especially the first bit. Howzatt for an email address r@google.com - an icon to brevity.

Wednesday, November 12, 2003

To err is human but to really mess things up requires a computer

Total registered voters = 19,000. Total ballots = 5,352. Total votes cast (!) = 144,000. Interesting.

Firebird extensions

Thanks to Pat for this link to firebird extensions.

Firebird rocks

I downloaded Firebird not expecting much yesterday and today it is my default browser. An excellent piece of work.

Tuesday, November 11, 2003

Context - XML's gift to the world (and the impotence of numbers)

Hierarchies are a great modelling tool. Why? Because (a) they map well onto the way our heads manage complexity and (b) they allow us to model context. We can put things within other things and nuance the semantics of the contained by means of the container and the container's container and so on.
This, for me, is the essence of XML. Throw away the containership model and what have you got? A language that allows you to describe flat structures. Structures in which context does not play an important role. Structures in which semantics are spot-welded to atomic units of data. Structures in which all contextual knowledge is squeezed out in favour of (ugh!) out-of-band storage of semantics and or (double ugh!) ontological particle physics featuring the standard quarks, leptons and guages known as dates, integers and strings. The impotence of numbers is an ITworld article on this topic.

Monday, November 10, 2003

Google in 1998

In this paper, we present Google, a prototype of a large-scale search engine....
From prototype software to English language verb in 5 years. Pretty good.

Plone tops the poll at Comdex Open Source Pavilion

Good to see Plone getting the recognition it deserves.

Upcoming XML Ireland Event

Lauren Wood and Tim Bray are the speakers at the next XML Ireland event taking place in TCD, Dublin on Wednesday, 19th.

Saturday, November 08, 2003


Ask a fourteen year old (in Ireland anyway) what sort of typing gadget they use and the majority will say mobile phones. A system even more bizzare than QWERTY. It just might catch on. QWERTY meets ABCDEF is an ITWorld article I wrote on the subject.

Wednesday, November 05, 2003

Open Source Voting System?

I hold this truth to be self evident - an electronic voting system can only be taken seriously if it can be inspected for flaws. It cannot rely on secrecy of code for its features. There is no confort in security-through-obscurity in something as important as democracy. Its security comes from the fact that everyone knows how it works - like PKI. The only way to truly inspect software is to have access to the code? Anyway, this looks interesting - voting software with an open licence.

Tuesday, November 04, 2003

More hardware frolics

I've had my fair share of hardware problems these last couple of days. Latest casualty - my Nomad Jukebox 3. I cannot believe that it's 'rescue mode' is not in any of the documentation shipped with the device! Its working again now. If it were not for the Web, this puppy was heading back to the manufacturer in a box. Why have a rescue mode that you don't tell people about?

XML + Python = ?

An interesting thought experiment from Kimbro Starken.

What is 'on' your website?

Some more musings in an ITWorld article - Websites, databases and other illusions.. This time concerning the fact that there is no such thing as a website (really!) and how static things are often useful illusions fabricated from more dynamic substrates.

Programming polyglots unite

In praise of multilingualism is an ITWorld article I wrote to point out some of the significant benefits I see in a multilingual approach to software development. I'm using the word 'language' in the sense of computer languages.

Monday, November 03, 2003

Tangled up in blue

Just back from the first two week clean-break-from-computers I have taken in about a decade. All is fresh and exciting...and blue. A big ugly blue screen of death on my laptop. Optimistic of me to think it could run for two solid weeks just downloading e-mail once an hour obviously.
I reboot, thinks work for a while then a second BSOD. Ominous. As luck would have it, the redoubtable David Higgins has teed up a new portable for me in my absense. Oh happy collission of imperative and opportunity!

Thursday, October 16, 2003

Taking a break from the e world

I'm going cold turkey from the e-world for a while. First time in many years. No e-mail. No blogging. No surfing. It will be a tough regime to stick to, so I am putting 35 miles between me and this machine as a buffer zone.

Back soon.

Frequent programmer points anyone?

Some musings about complimentary currencies and open source: Complimentary currencies in the future of the software business.

Zope/Python training in Dublin

I see that Open App are running a Zope/Python training course in Dublin in conjunction with Beehive.

Tuesday, October 14, 2003

Archiving in Australia with OpenOffice

Australia's history archived in OpenOffice.org. There is something oh so conforting about knowing that you can dig your content out of files without relying on a proprietary application. It helps you sleep better. Unless you are a hardware engineer in which case you worry about longevity of CD-RWs, tapes etc.

OpenOffice's XML notation

Whoppee! A book detailing the file format cometh! Excellent.
You don't have to go through an API all the time to process data - its a very liberating feeling. I recommend it.
There is *nothing* to stop you processing the OpenOffice data directly. For too long now, application APIs have (with plenty of help from commercial software vendors) being touted as the only way to access your own data. In such a situation, you don't really own your own data at all. Worse, you don't even own the conceptual model used to express how your data is structured and how it all hangs together.
Use the data Luke!

Monday, October 13, 2003

A news standards summit

I'm taking this as a sign of progress. Others may be aghast that something as simple sounding as standardising a notation for news could be the subject matter for a summit.
McGrath's second law of complexity (first one here) states that the greater the overt simplicity of a data model, the greater its hidden complexities. What data model could be simpler than news? As simple as an invoice, thats how simple. We all know a news story when we see it but it eludes being pinned down. Just like invoices, addresses, dates and all those other simple structures that populate Maletopia.

RSS-Data again

Patrick Logan asks what I'm on about when I say yin/yang essence of XML. I think the best way of explaining it is to paraphrase SICP:

    The normative expression of digital information should be written for people to read, and only incidentally for machines to process.

Friday, October 10, 2003

Hal Varian does interop

Hal Varian (of "Information Rules" fame) has done some Office application interop tests.
I particularly recommend the "Waging a Standards War" stuff that Varian and Shapiro write about in that book and elsewhere. Fascinating. I wrote about it in Its Science Jim, but not as we know it..

A really, really bad idea

Compromisiming on standalone readability by *people* is, unfortunately one of the classic premature optimisations in the XML world. The essence of XML is the yin/yang between people and machines. Tilt too far in either direction and the noosphere weeps.
The rss-data proposal tilts too far away from people in favour of machines. There is no point in teeing up a data structure for the agregations in terms of dates, strings and integers and calling it XML. It is XML is syntax only, not in spirit. If you really want to do that, use ASN.1 or something.

The business of the social side of business

Enabling the social dimension of effective e-business is an ITWorld article I wrote concerning the increasingly important role technology will play in the social side of e-business.
We have technology to connect the computers of businesses together. But this capability does not amount to a hill of beans unless businesses can find each other. Straight forward search only goes so far - hence all the world's golf clubs:-)

Wednesday, October 08, 2003

Getting Python

Getting Python. Amen brother.

Dealing with outliers in XML data models

Eliott Rusty Harold points out a home truth about real world data. You have to model what you find and what you find will invariable contain some totally off-the-way, give-that-document-an-enema type weirdness.
What to do? Three things:
(1) grok profit center versus cost center markup.
(2) grok the power of pattern/rule based validation as a compliment to grammer based validation.
(3) Treat validation as a process not an atomic action - linear process pipes are your friend.

Tuesday, October 07, 2003

Friday, October 03, 2003

The never ending name game

I'm up to my posterior ethmoidals in naming convention problems today. Its the only hard problem you know :-|

Thursday, October 02, 2003

Passing the conference litmus test

One important transition in the emergence of any exciting new technology or application is when there is enough interest to justify a conference. Plone has made that transition.

Tuesday, September 30, 2003

Who's got Time To Build Infrastructure?

The phrase "Who's got Time To Build Infrastructure" is the title of an instrumental piece by a group called Farces Wanna Mo. Not my musical taste but what a *great* title. A commercial IT architects rueful anthem in the making:-)

Saving money is the driver innovation

Obvious I guess, but I think it is interesting how things like business models and taxation regimes can drive innovation in one direction rather than another. In this ITWorld article I give an example or two.

Monday, September 29, 2003

SOA's and the Dutch

Now I understand why Dutch speakers grin when I talk about how everyone should have an SOA :-)

Saturday, September 27, 2003

One shot and your gone

This camera, in *one shot*, would fill to the brim, the first hard disk I ever had - the mighty Winchester.

Friday, September 26, 2003

Dali does Disney - the mind boggles

Dali and Disney?.

Enterprise architecture cannot be bought (like happiness and love).

John Gotze writes about handcuffs and Enterprise architectures. He is, of course, absolutely right. Stakeholders gotta own this stuff, not vendors
You have to, have to, have to, own your own architecture and *critically* the data that flows around it. The tools and techniques and knowlege are all there but it is not a product. You cannot buy this off the shelf.
Most critically, what is needed is not simply XML. XML is just a fancy alphabet. It gains you very little in terms of ownership and control unless you apply it intelligently.
You need standards - your standards - for semantic representation of business data - completely independent of any technology stack. You need to understand how data conforming to these standards will flow around your enterprise architecture. You need to tuck these into Appendix A of your RFT.
That is the only way you will ever get true ownership over your own enterprise. Without it, your just constantly posting (expensive) bail to take the handcuffs off something you always thought to owned but you didn't.

Thursday, September 25, 2003

Jython Remedy/ARS stuff

Some Jython stuff that might be of interest if you work with Remedy ARS.

Tuesday, September 23, 2003

Azinamg docerisvy on how the hmaun bairn wkros

How vrey ture.

Most overloaded word in the whole of IT?

My vote goes to "messaging". E-mail, SMS, EDI, MOM, Instant (e.g. AIM), Object Oriented Method Invocation (message passing). Others?

Oh yummy!

Stack 'em Danno.

Interfaces. in hardware and in software plus some thoughts on complexity (and where it lives). Oh yes, and tips for handling soldering irons.

Putting the 'soft' into software. An ITWorld article.

Blogging goes mobile

This article on mobile blogging contains a phrase I had not heard used before about blogging "homesteading the web". Describes it well I think.

Monday, September 22, 2003

Interoperability in Construction

This site is a source of two types of information for me - information on interoperability and rich a source of metaphors about physical engineering.
It never ceases to amaze me how, how the same interop issues crop up time and time again in very diverse areas - construction, telco, healthcare, government etc.

Sunday, September 21, 2003

Induction versus deduction - social software

Interesting article that takes a view of social software that I had not considered before - inductive versus deductive systems. There is something in this (I have an upcoming ITWorld article that wonders about the whole area.).
I'm having trouble with language though (as usual). If I write an algorithm to compute all acquaintances with a JClark number[1] of less than 2, is that a deduction or an induction? Its a deduction isn't it. Dang! So much for that tidy juxtaposition.
[1]A JClark number is like an Erdos Number but refers to those who have collaborated with James Clark.

Saturday, September 20, 2003

Minus times minus - a good explanation

I received a few e-mails about my question concerning minus times minus equalling plus. (Thanks). Particular thanks to Bob Lyons for the link to this explanation which worked for me. Thats that itch scratched.

Friday, September 19, 2003

When is XPath a viable application level query language?

When it is integrated with an XML DB. Check out Syncato - a very cool weblogging system by Kimbro Starken.

X# perhaps?

http://www.research.microsoft.com/~emeijer/Papers/XS.pdf [PDF]

A storage space oddity

I've just copied every digital photo I ever took onto my MP3 player's 20GB hard disk as a backup. The amount of storage space we have at our disposal these days is mind blowing. The more you contemplate the vastness of data space the more you appreciate the severe limitations of data tranmission systems. This gulf is the subject of this ITWorld article Moving a mountain with tweezers.

A compact syntax for XSD?

xscs brings some of the benefits of the Relax NG compact syntax approach to XSD. I.e. don't tie yourself up in purist knots by describing your grammar in the same syntax as the instances it describes. (A good rule of thumb, I've come to believe.).
It cannot do anything about the often heinious semantic complexity of XSD but its a help at the first-pass-grok level.

Thursday, September 18, 2003

Any sufficiently monolithic technology...

is indistinguishable from spaghetti.. Brilliant! [via Tim Bray].

Minus times minus = plus? Why?

Can anyone point me to a good explanation as to why minus times minus = plus? Thanks.

Thursday, September 11, 2003

Making fractals Origami style

Constructing the dragon. Some wet Sunday afternoon I'm going to make one of these.

Wednesday, September 10, 2003

The First International Conference on Service Oriented Computing

The First International Conference on Service Oriented Computing.
It won't be the last.

Rabbits, mountains, tweezers

I am a rabbit. I am moving a mountain with tweezers. An ITWorld article on the growing gulf between storage capacity and bandwidth capacity.

UDDI woes

"The UDDI standard was initially misconceived, then neglected, and now it's on the verge of fragmenting into multiple implementations with limited interoperability." -- http://www.looselycoupled.com/blog/2003_08_17_lc.htm#106155119250588247.
A complex system that works invariably can be traced back to a simple system that worked. That is a law named after someone, I cannot remember who at the moment. Anyway, UDDI and a bunch of other Web Service "standards" are showing what happens if you ignore this law.
I'm a UDDI heretic by the way.

Monday, September 08, 2003

Testing software

Medidations on testing and the sequiter (as in the opposite of "non sequiter":-) that leads to dynamic languages (oh, an XML as a catalyst.). Anyway, testing, testing, one two three, testing. An ITWorld article.

Problem oriented

A mockup of a home page for python.org. Problem oriented - I love it.

Saturday, September 06, 2003

An optical illusion worth playing with

In this image. The squares marked A and B do indeed have the same RBG values. My trusty Paintshop Pro reports RGB = (107,107,107).
A good way to see that you are not crazy is to cut away bits of the image bit by bit until you are just left with a vertical band running from A to B. As you strip stuff away, you will see that your brain registers B as darker and darker. By the time all remenants of the gray square south of A and North of B is gone, B will have faded (untouched!) in your brain to the same shade as A. Amazing.

Friday, September 05, 2003

Proposed SPAM legislation in Ireland

The Fine Gael party has a proposal on SPAM. Its great to see legislators taking this probem seriously but forcing the intermediaries like the ISPs to filter it is *not* the way to do it.
Lawrence Lessig's ideas on this subject deserve close examination in my opinion.
On a geek note, I'm worried that putting such smarts into the arteries of the internet are deeply at odds with the edge principle so beautifully illustrated to date by the Internet.

Wednesday, September 03, 2003

Calls returning documents

Bill de hOra on how to build things that don't break when stuff changes. Or, put another way, how to build anything at all really.

And now for something, completely different

Cleese - an OS in Python. Some names I recognise - James Tauber, Gavin Nichol. Interesting.

Tuesday, September 02, 2003

Putters, programs and prarie dogs

An ITWorld article on the subject of optimization (sort of).

There is something odd about the concept of an EAI 'adapter'

The integration adapter game. An ITWorld article.

More link knowledge for blogs?

Lots of blogs have web-traffic monitors such as those provided by stats.blogger.com.
These stats are normally private to the blog owner.
What if users made their stats public the same way they make their RSS public?
Wouldn't the information therein add an extra dimension to blog searching?
Let me see, each item would be a link into the blog with a date and a description being the referer that got you there.
A collection of items that have dates, titles and descriptions...where have I come across that before?

What does a CTO do?

Following on from the last post, it has also come to my attention that this blog is the number one hit on ask.com for the phrase what does a CTO do.

Monday, September 01, 2003

Spitting in the eye of logical positivism

It has come to my attention that this blog is the number 1 Google hit for the phrase There is no such thing as truth. Bizarre.

Sunday, August 31, 2003

Shining a light on open source in government

governmentforge.org looks interesting. Watch that space.
<Quibble>the P in "LAMP" does not stand for "PHP".</Quibble>

Saturday, August 30, 2003

Audio books

Some of the project Gutenburg collection is finding its way into MP3 via voice synthesis. Great idea. Given a choice you would listen to a real human reading this stuff but in the abence of such a thing, computer generated speech is better than nothing at all.
Having said that, it occurs to me that there is a lot of literary stuff encoded in SGML/XML especially as a result of the Text Encoding Initiative(TEI).
I wonder has anyone looked into using the XML markup to generate better synthesized voice?

Thursday, August 28, 2003

Wednesday, August 27, 2003

Web Services are not distributed objects

I disagree with some of Werner Vogel's article but agree wholeheartedly with his central idea which is that web services are *not* about distributed objects.

Monday, August 25, 2003

A simple route to location based services

So, the Irish Government is overhauling the speed limit signs. Every town/village in the country has at least one speed limit sign. So, while changing it for the new system, allocate each one a unique four character code.
Then, tie the location of the road sign to the code on the web and you have a very simple, very cheap way to deploy location based services e.g. where am I, where is the nearest hospital to me, how far is it to Sligo town, whatever. All these could easily be provided with SMS for example.
A quick calculation: use base 36 arithmetic ... 1.7 million unique 4 character codes using the letters A..Z and numbers 0..9. More than enough. Indeed, businesses might like to get a code and use it to help people find them - both geographically and also on the web. Just get people to jot down the 4 letter code and then they can use that to find your website etc.
Why not?

Saturday, August 23, 2003

Ernie from tech support

Some strong language and robust metaphors in this standup piece by Ernie Cline. Suitable for those at either end of a tech support call in need of some light relief. [MP3]

Linguistic Simplicity

[via Artima] Linguistic simplicity.

Pssst. XML is not a good syntax for a programming language

Opinions differ of course. Each to his own but I find XML-based imperative programming awful with a capital A. Compare the two factorial functions on this page.
I'm mulling a future itworld article that I want to write on syntactic aesthetics. I believe that when it comes to syntax, "beauty" is a mini-endorphine rush nature gives you to re-inforce your brains opinion that what you are looking at is easy to grok with a good blend of expressive power and clarity.
Tag based programming languages, with angle-brackets sticking their arses in the air at every saccade, don't cut any endorphines loose for me.

Friday, August 22, 2003

More fuel to the fire - Dynamic languages and enterprise applications

In the Joel on software forum. Peter Breton says
"...I also get the sense that the companies don't think that this is 'a difference that makes a difference' ".
This is indeed a problem. I find translating it into dollars works well. Take a conservative figure of a factor of five increase in productivty and crunch the numbers. Companies who get it, who believe it, can hit the bottom line in a positive wa very quickly by incorporating dynamically typed/latently typed langauges like Python/Jython into their development processes. With a high focus on test driven development of course:-) Goes without saying right?

Test versus Type

Interesting piece about the whole tests versus types thing, a better classification system to get beyond the asinine, bludgenous, torpitude of "static versus dynamic". Oh, and a full and frank exchange of views in the comments :-)

Wednesday, August 20, 2003

NITF version 3.2

NIFT is one of those things that has been in my peripheral vision for a long time but I have not had the chance to look at it more closely. How does this sit with blogs/rss/peaw?

An RNC mode for Emacs

Thanks to Bill for a pointer to this RNC mode for Emacs.

Tuesday, August 19, 2003

Von Neumann's Curse

Some musings on parallelism and the embarrasment of computational power at our disposal - still largely untapped in my opinion - owing to a predisposition to think of processing as centralised. An E-Business in the Enterprise article.

Postel's Law and XML

Aaron claims that XML's draconian error handling violates Postel's Law and is bad.
I disagree. It's not that simple. When XML is used in a machine to machine context ("I'm sending this guys blood pressure figures to that machine over there") you definitely want draconian error handling. I don't want any machine making a stab at interpreting something that is bogus and cannot unambigously be turned into a DAG.
When XML is used in a human facing context (XHTML for example), draconian is, arguably, too draconian. The two cases have to be kept distinct IMHO.

RelaxNG compact syntax

"...this is the best syntax currently available for writing schemas for XML languages". Tim Bray.
No argument from here.

Thursday, August 14, 2003

XML Namespaces - Spike Milligan style

A. There is nothing at the end of that namespace URI you know.
B. Then I won't dereference it.
A. But it might contain something we don't need to know!
B. Then I'd better dereference it to find out what isn't there.

Interesting optical trick on a FoneBlog

Stare at it for 60 seconds. Close your eyes. What do you see? Very clever.

A good example of a semantic shadow for knowledge representation - FOAF-XML

Simon St. Laurent has implemented a mapping between a simple XML language - tuned to the problem domain - and its more general, but way more abstract RDF representation. This is a very nice example of what I referred to as a 'semantic shadow' in RDF and other monkey wrenches.

Wednesday, August 13, 2003

No ISSN's for Irish Blogs

I read about ISSN's for weblogs and made a few enquiries. Quoting from the reponse:
    Certain categories of on-line publication are also eligible for ISSNs, weblogs, being specifically excluded.

Oh, well.

Tuesday, August 12, 2003

Python for .NET

Python for .NET is a near-seamless integration of the CPython runtime with the .NET Common Language Runtime (CLR).

Monday, August 11, 2003

Chomsky deconstructs LOTR :-)


Nutch - doesn't work as a verb for me

"To nutch" something. Would that work as a verb for you?

Sublinking...or something

Dorothea wonders:

    "Has any enterprising lit-critter come up with a term yet for what I just did in the last paragraph? Undercutting the literal meaning of the sentence on the page with the links I tied to it? Somebody must have. I see people doing this all over the place; I surely didn’t invent it.)"

Beats me.

I told you namespaces were easy

Trends in modular XML specifications at the W3C.
Overheard at Extreme Markup (easily the best conference I've never been to) as reported on xmlhack:
    "Implementability was not a goal of the Schema Working Group."

I'd laugh if I could find room through the tears :-/

Open Office? Easter Egg?

here. Works in 1.1 as well.


"Mad Hatter desktops will use JavaCards for authentication..." it says in this Infoworld article about Sun's upcoming Mad Hatter desktop. Interesting.

Sunday, August 10, 2003

I want one

A koobox costs $449.

Blog link problems

Links to my blog from my RSS feed etc. are not working. Thanks to those who have reported the problem to me via e-mail. I've reported the problem to Blogger.

Emacs mode for Python goes to Sourceforge

python-mode is wonderful, wonderful thing if you are an Emacs using Python/Jython programmer. Highly recommended.

Saturday, August 09, 2003

REST, Steve Vinoski

Steve Vinoski of Iona on REST in the context of Web Services Interactions. [PDF].
Best bits:

    "Some vendors are attempting to push existing middleware system models, such as CORBA and Enterprise JavaBeans (EJB), directly into Web services, but as I described last issue, this approach is fraught with problems. One of the worst is that it causes inappropriate details (about protocols, type systems, interaction models, and so on) to show through the Web Services level from the underlying systems, destroying the service encapsulation and isolation that Web services are supposed to provide."

    "Because I am a longtime RPC advocate, associates are often surprised when I promote Rest. From what I’ve learned about it to date, I know that it neatly solves some of the complexity and scaling issues faced by RPCbased distributed systems. I suggest those with backgrounds similar to mine take the time to seriously study Rest and learn how it works. The fact that the Web — the largest and most successful distributed system in existence is built on Rest principles should be enough to convince even the most stalwart advocates of other interaction models that Rest holds significant promise for putting the “Web” back into Web services, and aligning their interaction models with existing Web architecture."

XML namespaces and training wheels

Jon Udell on XML namespaces.


What is the ontological status of Buddah-nature apart from its soteriological orientation and salvific import?
I am a sucker for sentences that include the word "ontological". Such a richly overloaded word!
I had to lie down when I first read the question. Doesn't it *sound* great on the ear? Its quite a simple question (in the sense of understanding the question - not the answer!). I had to hit the dictionary for "soteriological" though.

Friday, August 08, 2003

Congrats to Boa Constructor

Sourceforge product of the month. Richly deserved. Boa has a ridiculously low version number for such a powerful and functional piece of software.

Documents = state

Brilliant summation by Mark Baker of the essence of the difference between the REST approach and the Procedure Call approach to system design:

    A document is state (the S in REST). Look in any file folder, document storage system, archived tape, or heck, any file system, and you will find chunks of state. What you won't see in any of these are "methods". If you encapsulate the state within a "method" wrapper, then what you have is no longer a document, because it carries with it intent; state does not.


Programming Paradoxes

I like this list on Patrick Logan's blog. My favourite:-

    "A language designed to give programmers what they want may initially succeed but create pernicious problems as it catches on. However, a language designed to give programmers what they really need may never catch fire at all."
Why do Visual Basic and Lisp (in that order) spring to mind :-)

Wednesday, August 06, 2003

Interesting identity and jurisdiction issues?

OK, so I'm stretching it a bit but doesn't the upcoming wedding of a Spaceman raise a number of interesting issues to do with identity and jurisdiction?

How do the powers that be know that the voice is really the person given that he is not co-located with his SO? Is "orbit" a place covered by the 'power invested in my by xxx" etc.

Tuesday, August 05, 2003

XML Namespaces, Java classpath, UTF16 surrogate pairs, 6502 machine code

XML namespaces (blech) remind me of the Java classpath problem. On one hand, the problem being solved seems simple and the solution elegant but the implementation and practice tells a totally different story.
UTF16 surogate pairs remind me of 6502 machine code. There was a magic area - the first 1024 bytes of RAM. If you wished to access anything beyond (I think) the first 1k in the 64k you could address, you had to put your address data somewhere in the first 1k and then jump through it.

Life is too short, and expertise too expensive, to optimise application components as if disk space were expensive

The economics of application installation. An ITWorld article.

Interesting debugging tool for Java/Jython


Google does synonyms

Google does synonyms. Add a wiggle like this. [via fieldmethods].

Monday, August 04, 2003


There must be a name for Google searches that don't produce a single relevant hit surely :-) Looking for a high res image of Elmo (Sesame St.) for one of my kids. I did this search and got 4 very odd hits. This one produces a bigger set of hits that sheds light on matters but still no cutesy little red guy.
Yes, it is a Bank Holiday in Ireland.

Thursday, July 31, 2003

Towards Jython 2.2

Jython, lest you do not know of it, is the most compelling weapon the Java platform has for its survival into the 21st century:-) Jython 2.2 alpha release now available.

Polblogs in Portugal

Parliamentary Weblogs in Portugal. The start of a trend.

Wednesday, July 30, 2003

le voila

Python 2.3 released. List of some of the new stuff here. My favourites: csv module and zip file imports.

Monday, July 28, 2003

Service Oriented Integration

Principles of Service Oriented Integration is a white paper by myself and my colleague Fergal Murray of Propylon. [5 page PDF]. Think you know what BANDSTAND means? Think again :-)

Sunday, July 27, 2003

Name based polymorphism in programming languages

Reading the (very useful) article: Typing: Strong vs. Weak, Static vs. Dynamic has lead me to re-formulate my understanding of name-based polymorphism.
Simply put, Python has what is sometimes referred to as 'duck typing'. That is, if an object has the attributes one associated with a duck, then its a duck, *regardless* of its inheritance hierarchy.
In Aspect Oriented Programming-speak, it is as if Python "interfaces" (Java speak) are implemented as cross-cutting concerns rather than tucked into the syntax of the language.
In philosophy-of-language-speak, it is as if Python does not require a rigid designator for a collection of object attributes.
i.e. You don't have to name the interface. Any collection of attributes is readily usable as an interface - no formal naming mechanism required
Descriptivists probably approve:-)

Saturday, July 26, 2003

Another software complexity law

I have a (somewhat pessimistic) addition to this list, also inspired by physics:

    Some software complexity cannot be destroyed, it can only be moved from one place to another.

Recognizing this type of complexity is a key skill in SW engineering in my opinion. Those who cannot spot it are themselves easily spotted. They are the ones swimming in layer upon layer of interface/class/factory/aspect as they struggle to get the ab initio complexity to disappear in a puff of refactoring logic.

Adam Bosworth has a blog

Adam Bosworth has a blog. You know what to do.

Friday, July 25, 2003

The end of eclectic

Leigh Dodds announced the end of eclectic.

Identity in the real world

Identity in the real world is an ITWorld article I wrote about the fallacious concept of knowing that someone is who they say they are with 100% certainty. An idea that is doing the rounds in the e world but does not exist in the real world. Why are we so hung up on it?

Manuals, conversations and RSS

I cannot debug software these days without RSS. What am I talking about? Read Manuals, conversations and RSS - an ITWorld article I wrote on the subject of debuging, technical documentation and the enormous impact that the Web and RSS have had on both.

Thursday, July 24, 2003

An interesting interview with Bruce Eckel over on Borland Community

Bruce interview. Interesting stuff. The photo is probably a bit bigger than strictly necessary. I have a soft spot for Borland ever since I bought Turbo Pascal for my 2.33 Mhz PC with its enormous 10MB (thats ten whole megabytes folks!) Winchester drive.


It occurs to me that hyperlinking can be used as a way of writing stuff between the lines as it were. A sort of visible subtext if you like. Hmmmm. Does this idea have a name. Suggestions?

Electronic voting

    "We conclude that, as a society, we must carefully consider the risks inherent in electronic voting, as it places our very democracy at risk"

Analysis of an Electronic Voting System[24 page PDF]

Fascinating and deeply troubling in a "Nobody will listen until there is a major incident" type way.

Wednesday, July 23, 2003

Better Messaging

Sam Ruby picked up on my post about messaging. I couldn't agree more about the need for clean, thorough specification of XML messages.

Senior architect required in Propylon

[A short commercial posting]. Propylon are looking for a senior architect to add to current team. Must have strong knowledge of XML, MOM, J2EE,EAI worlds. Must be capable of architecting, overseeing development and delivering real solutions to real customers within real deadlines.
Attractive package for the right person. Dublin (Ireland) based. Mail me if interested.

Tuesday, July 22, 2003

Multiple canonical models, messaging

    "One of the interesting consequences of a messaging based approach to integration is that there is no longer a need for a single conceptual model to underpin the integration effort."

Martin Fowler

Amen to that. The real beauty of messaging is the tremendous scope it provides for intervention in message flows. Where you can intervene, you can transform and
Transformation is the only truth.
Canonical models are Dukha. Don't go there. Instead of "same" think "isomorphic".

This is terribly, terribly depressing

I don't know where to start on this one: SOAP Message Transmission Optimization Mechanism. I'll just link to it and let the title of this post do the talking for me:-)

Friday, July 18, 2003

Objects in a distributed system

Thanks to Mike Champion, I found A note on Distributed Computing which resonates strongly with my own feelings about distributed computing. Namely, the word "distributed" needs to be taken seriously, you cannot and should not, try to design away the network. Embrace it, don't try to work against it, its stronger that you are :-)

Relax NG Book

Eric van der Vlist has made his Relax NG book in progress available on the Web. Highly recommended.

Thursday, July 17, 2003

Formless non-physical mind and Buddhist meditation

Interesting mental chewing gum.

    "The fact that the mind is formless means that it is unconstrained..it it is free from steps, loops, branches, strings, tables, stacks, queues, datastructures and all the other algorithmic constraints."


Monday, July 14, 2003

Reliable Messaging (again)

Read this. Then this.

Interested in eGovernment?

A white paper on eGovernment architecture issues by my colleague at Propylon, Fergal Murray and I. My favourite line "only the data endures".

Saturday, July 12, 2003

Thursday, July 10, 2003

Mac OSX (Panther) to use Python 2.3

Excellent. Oh, and Guido is moving to California. Interesting times.

RSS now back on line (I think)

Thanks to Sam Pedroni for pointing out that my RSS feed was out of date. Sure enough, when I checked blogger, it had been turned off. A blip in the recent upgrade I suspect. I get a few javascript errors in the new UI for blogger but then I get them on a lot of sites :-)

Tuesday, July 08, 2003

Interesting new Java technology from fellow Irish company

JCoverage looks interesting. A developer I know told me this evening that it had shown up numerous "interesting" things about the application he is working on.

Got a computer, can you write software, want money?

Check out the Zimbu award.

On Simplicity

APIs shield you from complexity right? Try this.
The Zen of the web is to realise the heights we can reach with nothing more complex than URIs, a small handfull of operations (verbs) and a sprinkling of data.
(Thanks to Mike Champion for pointing me at Mark's post.

e-europe awards

The Inter-agecy messaging Service (IAMS) we in Propylon built for Reach has recieved an honourable mention at The E-Europe Awards.

Monday, July 07, 2003

Its all about dataflows

Jon Udell in typically insightful form : "XML data flows and active intermediaries fundamentally alter the IT political landscape". Indeed.

Pipelining to connect IT infrastructure

Phil Windley on pipelining. PropelX for example:-).

Type checking and techie control

Bruce Ekel on data typing.

Filtering SPAM with SpamBayes

Windows users who are not using Outlook may like to know that SpamBayes can be set up to work with any e-mail client on Windows. (Outlook users have a fully blown install program available to them via http://spambayes.sourceforge.net). Get the details here.


An amusing BEEP Poem.

Wednesday, July 02, 2003

The end of database-centric design

Where are the database(s) in your mental model of enterprise applications? Are they central with everything revolving around them or are business processes central, with databases revolving around them?
Here is an ITWorld article I wrote that asks some questions around this area.

Linux in US Schools

From the piece:
"A look at the success of Linux in schools, and how it should constitute the model for state and local government."
Get 'em early.

Tim Bray is as mad as hell and I don't blame him

As Tim says. it has gone way too far.

Tuesday, July 01, 2003

Visual programming

This can work you know. It really can. But not as long as we treat data flow as subservient to algorithm invocation. For algorithms - I think a word will always be worth a thousand pictures.

A novel approach to getting your copy of the truly indespensible GNU Emacs Lisp Reference Manual

Walter Higgins is getting his via Google Adsense.
I got mine by buying it online from Amazon with a credit card. How Baroque!

Saturday, June 28, 2003

Arise POJO's

I'm with Mike Clark when it comes to POJOs. I've seen good stuff that is not POJO based but I've seen an awful lot of stuff that is just awful. Complexity delivered in a steady hushed monotone designed to frighten the natives. If its complex and abstract, its good right?
I *love* this quote from Nicklaus Wirth:

    Increasingly, people seem to misinterpret complexity as sophistication, which is baffling -- the incomprehensible should cause suspicion rather than admiration.

Beautiful, looks as if it has a continuous first derivative, but what does it mean?

This blogs share price on blogshares.

Blagging it

Thanks to Sam Ruby and Fredrik Lundh for pointers to blagg and pyblagg (now Spcyroll).

Server side RSS aggregation and "virtual RSS"?

I have a lot of feeds now. I'd like to get some server-side cleverness to coalesce various standalone feeds into, aggregated feeds so that my client side aggregator sees it as a single feed. Does such a thing exist?

Just draw your business process and then execute it? Yeah, right.

ITWorld article: Sometimes, a word is worth a thousand pictures. The essence of the difference between words and pictures - programs and models - fascinates me. I am primarily a words person but I appreciate the value of a good picture. What I don't see is a near future in which programming is reduced to pictorial lego.

Loose Coupling - compliment or criticism?

ITWorld article: Loosely coupled may not be a term of endearment argues that us technical folk need to watch our language on this one.

The real tragedy of SPAM

ITWorld article : The end-to-end design principle and the real tragedy of spam laments that spam filtering is consistent with the end-to-end principle of network design (simply put - put smart stuff at the edges of the network). Unfortunately, that means we loose all that lovely bandwidth. What a shame.

Friday, June 27, 2003

Keeping the Web in Web Services

I missed this article until now. Highly recommended.

Thursday, June 26, 2003

Monday, June 23, 2003

Michael Jackson and blogging

No not that Michael Jackson. An English computer scientist by the name of Michael Jackson, creator of JSP - no not that JSP - (Jackson Structured Programming) and JSD (Jackson Structured Design) once wrote:

    What is a library but a collection of books? To model a library, you must first model a book.

Like turtles, this one goes all the way down.

    What is a weblog but a collection of entries? To model a weblog, you must first model an entry.

To my mind, the essense of a weblog is that it crumbles the page model of the web into finer grained items that have URIs - blog entries. A weblog "page" for human consumption is what you get when you skin a collection of blog entries with HTML. A weblog for machine consumption is what you get when you take a collection of well-formed blog entries (XML of course) and skip the skin.
So, is Sam's Log Format initiative a good idea? Absolutely.

First prize in the category "most spectacular arrival at a regional Zope Conference" goes to...

Phil Windley.

Saturday, June 21, 2003

Service Oriented Architecture for e-Government

I have done a lot of work over the last eighteen months with Reach - the Irish Government Agency with responsibility for the Public Services Broker initiative.
A large part of my involvement has been the creation of an architectural model for e-Government with particular emphasis on the integration challenges encountered.
It is (to my definitions at least!) an example of a Service Oriented Architecture.
The architectural model can be found here(PDF) 270k.

Friday, June 20, 2003

Error messages, source code envy, utter frustration and how did we survive before the Web?

I have problems. Error messages. Java apps using Sun MQ. I have error numbers. Here are a few - C4055, B2009, B4006.
Normally, I'm a mere google away from information once I have the error numbers. Not in this case. Yes, I have tried Sun Forums. No joy. Boy is this frustrating!
Just in case some JMS guru is reading this blog...
I have three apps reading/writing MQ queues. Given just the right time ordering of activity, I can provoke a "B4006 - unable to attach to queue . A primary queue is already active.".
All doco I can find is silent on what a "primary queue is" and the circumstances that can lead to not being able to attach to them.
The good news is that the Singapore Noodles from the local takeway are cheering me up this Friday evening.

Illusion of interoperability

Kendall Clark, in a piece on xml.com about WS-Arch, says:

    The web services architecture is concerned with making sure that all of the relevant standards are conceptually coherent, so that actually existing, deployed web services may work together. If the relevant standards cohere with each other, and if deployed services comply with those standards, interoperability may be a more likely outcome.

    I state this conclusion in a very weak form because it's not clear that coherence and compliance are sufficient or necessary conditions of interoperability. I don't have space here to argue for that claim; email me privately if you're curious about it.

Kendall hits on a very, very important point. Remember DOS? Remember Int 21H? It appears to me that the WS-Arch uses the term "interoperablity" to mean that a programmer can write against a software interrupt spec. without regard to who provided the software interrupt "stack". This gains you very, very, little and is often at odds with what WS vendors tell you are getting.
API interoperability has basically nothing to do with data interoperability.
The big irony here is that if you look at the problem the other way round and focus on data interoperability *first*, we would be a lot further on in terms of real business level interoperability.

Wednesday, June 18, 2003

Generate Java object models from Relax schemas

Relaxer. Another reason not to use Relax NG bites the dust.

Picturing a Service Oriented Architecture

How would you draw and SOA? I am very opinionated on this point. I think you can tell a lot about where any proponent of SOA's is coming from by looking at how they draw it. This is an interesting list. No, I wouldn't draw an SOA like any of those. The diversity is very interesting I think. Compare Three tiered architecture.


O2 Ireland offering phone blogs on 30 day free trials.

Interesting looking XML conference

Gotta love this description of a paper at the upcoming Applied XML Conference, 2003, West

    SOAP, it wasn't Simple, we didn't Access Objects and its not really a Protocol
    David Ing, Meridian Project Systems
    Writing a business critical enterprise product from scratch using new programming languages, run-time and a new team just wasn't hard enough - so we added SOAP web services to the mix. This talk describes the XML adventures of the last two years using web services to bring a new product to market. Some of the real-world experiences discussed will contradict the current thinking of the use of WSDL, ASP.NET and XML Schema, so please be prepared for some awkward silences. It describes the design patterns that emerged from a service-orientated architecture and what lessons are still being learnt at every daily build. If you're contemplating starting your shiny new web services based product soon, then use this talk to save yourself some time, money and heartache. Warning: This talk contains explicit references to OO heresy - flaming torch / pitchfork not supplied.

I hope someone blogs the conference. Actually, thats pretty much guaranteed looking at the other speakers. Sam Ruby, Dave Winer, Patrick Logan etc.

Using XPath to query Jython objects

Patrick Logan shows how to tee up a Jython class so that it can be acessed with XPath expressions.

The good, the bad and the DOM

ERH on the wonderous, towering, monument to complexity that is the Document Object Model.

Tuesday, June 17, 2003

Jython is just too useful

Joey Gibson shares the delights of interactive Jython.

Googling M.C, Escher

I love today's Google logo. I first came across Escher at a Usenix conference in London some time in the late Eighties. A bunch of AT&T luminaries were in the front row. I think it was Rob Pike (or what is Ken Thompson?) who had a Escher T-Shirt. Someone else from AT&T pushing the benefits of TCP/IP had a T-Shirt that said something like "ISO Seven Layered Model - same day response in a nanosecond world". Or words to that effect.

Monday, June 16, 2003

Dan Gillmor ponders Mobile Cameras and the nature of snapshots

Mobile cameras and the nature of snapshots. How many moblog entries as-they-happened do you think this photo represents. What if the photo was take again this time next year? My hunch is that every phone will have a blog. A perfect place to put your photos which, unlike your SMS messages, need to live beyond the moment.

Python stuff on microsoft.com

Via Todd Ogasawara, eGovernment Team Leader for the State of Hawaii Information & Communications Services Division. There is lots of Python stuff to be found on microsoft.com. This article is about getting Python set up for scripting inside IIS.

Saturday, June 14, 2003

Using Jython with Cocoon

Alex Krut demonstrates using Jython to control Cocoon process flow.

An XML editor with RelaxNG support

Oxygen starts what will (I predict) become a trend - especially in document centric XML (and you know in your heart that all XML should be document centric don't you:-)

Friday, June 13, 2003

Scripting Ant with Jython

Scripting Ant with Jython. And this from James Duncan Davidson Ant dot-Next. Oh, and scons looks interesting too. The Python/Jython world is moving so fast these days its hard to keep up.

Bursting a couple more SOAP bubbles

As Mike says on his java.net blog, there is very little that we disagree about in the XML world. We see eye to eye on way more things than we disagree on. Mike points to some areas where he suggests SOAP can add value over XML/HTTP. I can confirm that this is something we do disagree on.

Mike puts forward 6 areas where SOAP can add value of HTTP/XML. Lets look at each one:

  • Routiing and reliable messaging across multi-node networks, such as when one must perform content-based routing from an HTTP gateway to the appropriate back-end service (e.g., the one nearest to the consumer).

    • No problem. Put your XML message payloads in a suitable business level envelope and use RESTian URIs to issue receipts for two-phase commit reliable messaging. [Irony alert - the Biztalk Framework from Microsoft has offered this facility using nothing fancier than ASP pages for years now :-)].

  • End to end encryption (from consuming application to service rather from consuming application to SSL gateway)

    • No problem. I can encrypt XML for end-to-end delivery just fine. I don't need SOAP for encryption.

  • integration of legacy services that may not have an HTTP URI

    • No problem. HTTP proxies are wonderful things.a HTTP "stack" is a trivial thing to put together in comparison to a SOAP stack.

  • Non-HTTP communications protocols and interfaces such as BEEP, MQ and JMS

    • No problem. HTTP is ubiquitous, proven and simple. Need JMS, MQSI etc? Tunnel'em over HTTP. A lot of JMS stuff out there works this way right now. SOAP adds nothing here.

  • Multipart service transactions that must be committed or rolled-back/compensated as an entity

    • No problem. I can rollback a transaction by exchanging a message in XML over HTTP just fine. If anything, SOAP is counter-productive here as it encourages a mindset in which the network disappears from the equation. See The Eight Fallacies of Distributed Computing. I have heard developers say that SOAP gives them what they need to do ACID transactions on their intranet. ACID in a distributed system where the network is not under your complete control doesn't work, hasn't worked and won't work. If you really want to give it a go, try CORBA!

  • More complex interactions between service suppliers and consumers that need to be described and choreographed.

    • No problem. Description and choreography are orthoganal issues. I can describe business processes and orchestrate them just fine without regard to how the nodes in the process communicate. Again I think this is an area where SOAP is positively counterproductive. When I see developers bludgeoning their business process state machinery into what is basically the envelope structure of a software interrupt I weep :-)

Yes its good that the SOAP WG took the concerns of the TAG on board and added GETability to simple SOAP services but its , well, "tokenism" is one possible word for it.

Fact is, the last thing the budding world of web services needs is a premature standardisation of the wrong paradigm. RPC. Thats where SOAP started and it has been backpedalling like crazy, adding more and more layers of goo, ever since. HTTP is not a transport protocol guys. It is a resource transfer protocol. A very different - and very powerful thing.

This one needs to be ripped up, torn down, rethought and started again - *when* and only *when* there is sufficient body of lore on how web services really will work. We cannot just standardise our way around finding out what really works! Lets do that,then worry about standards when there is something worth standardising.

I would urge anybody interested in this stuff to read Mark Baker and Paul Prescod.

Python's creator welcomes the scripting noises going on in the Java world

From this computerworld article:

    The new standard is a good idea, said Guido van Rossum, the creator of the Python scripting language. "Many Python afficionados need to use J2EE to earn their bread, and having the ability of using Python in that environment, for at least some of the tasks, would certainly be welcome," he said in an interview conducted via e-mail.

    Now that Sun's J2EE (Java 2 Enterprise Edition) platform has gained widespread acceptance, the company is beginning to focus more on developing the Java language. Adding scripting support is part of this effort, said Shipe. "We did spend a lot of time focusing on the platform," said Shipe. "Now we're turning our focus so that we can beef up the language side of Java."

Excellent. Long overdue but great to see Java the platform separate from Java the language.

Joi has too many gadgets!

Joi Ito charges up for a Finland trip

SOA Mailing List

A Yahoo mailing list for discussing Service Oriented Architectures. See you there.

Thursday, June 12, 2003

Why not just use regular expressions to parse XML?

I was asked this question today. By my reckoning, that is the 1,643,674,567,422,673'th time I've been asked. I can think of no better source explaining the issues than Kendall Clarks article on xml.com - XML isn't too hard.

REST/SOAP - 85% plays 15% on Amazon

[Via Tim O'Reilly]

    "I was recently talking with Jeff Barr, creator of syndic8 and now Amazon's chief web services evangelist. He let drop an interesting tidbit. Amazon has both SOAP and REST interfaces to their web services, and 85% of their usage is of the REST interface. Despite all of the corporate hype over the SOAP stack, this is pretty compelling evidence that developers like the simpler REST approach. (I know there are many more complex applications where SOAP is better, but I've always liked technologies that have low barriers to entry and grassroots adoption, and simple XML over HTTP approach seems to have that winning combination.)"

Very interesting but I would argue that it is not the case that for more complex apps, SOAP is better. Sure, there comes a point where you cannot encode parameters into a URI but I don't see why it follows that these more complex web services need to throw out the huge advantages of having a GETable URI.

Here is a URI that will invoke a webservice MYWS that requires a whole bunch of parameters. The params are stored in MyParams:

<a href="/InvokeWS?ARGSURI=MyParams&ForwardURI=MYWS">click me</a>

InvokeWS is retrieved via GET (in other words, its a hypertext link). It picks up the argument payload from the URI "MyParams" which is then POSTed into MyWS. Voila, a "clickable" full payload webservice.

Multibloggers and rss aggregators

Mike Champion has a blog on java.net. He has/had a blog on xegesis too.
Simon Phipps is here and also here. Looks like we are headed towards an era when individuals have multiple blogs - like credit cards - or airline loyalty cards. This trend will intensify the demand for RSS aggregators to create a single "view" of interesting stuff and interesting people.

Wednesday, June 11, 2003

Jython at Java One

Yes Simon, I'm very pleased. Very pleased indeed!

Scripting with Jython instead of XML

From Scripting with Jython instead of XML

    My bias is that XML is a great tool that is misapplied when it is used as a programming language.


Tuesday, June 10, 2003


If these are, what I think they are...yikes!

Taking XML processing out of the dark ages

There is a lot of XML out there. There are also lots of developers who, day in, day out, craft programs in Java SAX, DOM or XSLT. All these technologies are useful but incredibly low level tools.
As well as being low level, the exhibit that classic sign of costly development - low to non-existent re-use of processing components.
What if you took a platform like the Java Virtual Machine on which you can run a variety of languages, each suitable for certain types of XML processing task. Java itself of course but also XSLT and Jython.
What if you had a way (using XML of course) of parcelling up a program into a reusable XML processing component?
What if you had a studio that allowed you to grab existing components and chain them together - regardless of their implementation langauge - into an XML processing pipeline?
What if you had a scaleable, J2EE based engine for execting these pipelines?
That's what PropelX is.
The ideas underlying PropelX have been developing in my head for well over a decade at this stage. Back to waaay before XML existed and I did my markup work with SGML. The hope is that the ideas inherent in PropelX catch on, the XPipe project for example, is an open source project aimed at creating open source implementations. Propylon will be donating some code to this effort.
An analogy : Not too far fetched. Think of an XML document as a number. Currently, we do all our calculations by hand. Its terribly laborious and re-use is non-existent. Then the concept of a spreadsheet comes along. Bing! All of a sudden, number processing changes utterly and for the better.
The same thing will happen with XML processing. It has to. PropelX, I believe, is headed in the right direction.

Monday, June 09, 2003

PropelX 2.02 now available

PropelX 2.02 now available for download. Propylon's implementation of the XPipe approach to XML transformation. J2EE based. Use XSLT, Java, Jython to build XML processing components or re-use those supplied in the library. I'll be writing some pieces about PropelX here in the weeks ahead.

The next big thing: asynchronicity

The word - asynchronicity - is the best one word description of the future of integration technology that I can think of. Repeat after me:

RPC = sync over async.
RPC = sync over async.
RPC = sync over async.

Now you are in the right frame of mind to approach Web Services. As Ceperez says, The Hive Mind is asynchronous.