- 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.
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
Sunday, December 28, 2003
Aggregating feeds with Bloglines
Wednesday, December 24, 2003
Scale free networks in immunisation programmes
Tuesday, December 23, 2003
Comment capability added - gingerly
On the Internet, nobody knows you are a process
The Point and Click Preservation Society - a festive ITWorld article
Monday, December 22, 2003
OpenOffice in Government
Inevitable Technology Illussions
Inevitable Technology Illusions is an ITWorld article on this subject.
Inappropriate Abstractions
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?
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 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
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
Final post on XML USA 2003
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
- "It is not the literal past, the 'facts' of history, that shape us, but images of the past embodied in language."
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
Thursday, December 11, 2003
XML 2003 - another day
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
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
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
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
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
- "Beware of the argument that complexity isn't a problem so long as it is hidden.".
Amen.
Saturday, December 06, 2003
Web Services as RPC again!
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
Friday, December 05, 2003
None of the above
Personally, I think a "MU" option would be an excellent addition.
anti-links again
Thursday, December 04, 2003
Python programming for money
Wednesday, December 03, 2003
And the conclusion is?
"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
Pssst, object oriented design doesn't always work
Thick client web apps and blame allocation
Monday, December 01, 2003
XML as legacy?
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"?
Debugger as tool of last resort
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
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
Dipping a toe into Jython?
Friday, November 28, 2003
A musical complimentary currency for open source
Thursday, November 27, 2003
Betty Harvey on her travails with W3C XML Schema
Scripting/Dynamically typed languages at JavaOne
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...
Wednesday, November 26, 2003
Are dynamic languages going to replace static languages?
The fine art of blame allocation
Tuesday, November 25, 2003
Python writing make file components - Bruce Eckel
Monday, November 24, 2003
XML Conference and Exhibition, 2003, Philly
Sun should loosen up on the 'one language' thing
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
Saturday, November 22, 2003
Excruciatingly good
Friday, November 21, 2003
Joining the ranks of the favicon enabled
Thursday, November 20, 2003
A good new book on XML
Wednesday, November 19, 2003
Fat Macs and Power Macs
Reminder: XML Ireland Event Tonite
Tuesday, November 18, 2003
Invoices through the ages
Monday, November 17, 2003
The role of markup
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
Saturday, November 15, 2003
Poking around in a running webapp with Jython
This Jython interactive servlet looks interesting for this kind of work.
Friday, November 14, 2003
Want a nicotini chaser with that pint of Stout?
Thursday, November 13, 2003
Everything about this page is wonderful
Wednesday, November 12, 2003
To err is human but to really mess things up requires a computer
Firebird rocks
Tuesday, November 11, 2003
Context - XML's gift to the world (and the impotence of numbers)
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
From prototype software to English language verb in 5 years. Pretty good.
Plone tops the poll at Comdex Open Source Pavilion
Upcoming XML Ireland Event
Saturday, November 08, 2003
QWERTY meets ABCDEF
Friday, November 07, 2003
Wednesday, November 05, 2003
Open Source Voting System?
Tuesday, November 04, 2003
More hardware frolics
What is 'on' your website?
Programming polyglots unite
Monday, November 03, 2003
Tangled up in blue
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
Back soon.
Frequent programmer points anyone?
Zope/Python training in Dublin
Tuesday, October 14, 2003
Archiving in Australia with OpenOffice
OpenOffice's XML notation
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
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
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
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
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
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:-)
Thursday, October 09, 2003
Wednesday, October 08, 2003
Dealing with outliers in XML data models
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
Sunday, October 05, 2003
Saturday, October 04, 2003
Friday, October 03, 2003
The never ending name game
Thursday, October 02, 2003
Passing the conference litmus test
Tuesday, September 30, 2003
Who's got Time To Build Infrastructure?
Saving money is the driver innovation
Monday, September 29, 2003
SOA's and the Dutch
Saturday, September 27, 2003
One shot and your gone
Friday, September 26, 2003
Enterprise architecture cannot be bought (like happiness and love).
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
Wednesday, September 24, 2003
Tuesday, September 23, 2003
Most overloaded word in the whole of IT?
Blogging goes mobile
Monday, September 22, 2003
Interoperability in Construction
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
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
Friday, September 19, 2003
When is XPath a viable application level query language?
A storage space oddity
A compact syntax for XSD?
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
Minus times minus = plus? Why?
Thursday, September 11, 2003
Making fractals Origami style
Wednesday, September 10, 2003
Rabbits, mountains, tweezers
UDDI woes
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
Saturday, September 06, 2003
An optical illusion worth playing with
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
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
And now for something, completely different
Tuesday, September 02, 2003
More link knowledge for blogs?
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?
Monday, September 01, 2003
Spitting in the eye of logical positivism
Sunday, August 31, 2003
Shining a light on open source in government
<Quibble>the P in "LAMP" does not stand for "PHP".</Quibble>
Saturday, August 30, 2003
Audio books
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
Tuesday, August 26, 2003
Monday, August 25, 2003
A simple route to location based services
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
Pssst. XML is not a good syntax for a programming language
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
"...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
Wednesday, August 20, 2003
NITF version 3.2
Tuesday, August 19, 2003
Von Neumann's Curse
Postel's Law and XML
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
No argument from here.
Monday, August 18, 2003
Thursday, August 14, 2003
XML Namespaces - Spike Milligan style
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
A good example of a semantic shadow for knowledge representation - FOAF-XML
Wednesday, August 13, 2003
No ISSN's for Irish Blogs
- Certain categories of on-line publication are also eligible for ISSNs, weblogs, being specifically excluded.
Oh, well.
Tuesday, August 12, 2003
Python for .NET
Monday, August 11, 2003
Sublinking...or something
"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.
- "Implementability was not a goal of the Schema Working Group."
I'd laugh if I could find room through the tears :-/
Sunday, August 10, 2003
Blog link problems
Emacs mode for Python goes to Sourceforge
Saturday, August 09, 2003
REST, Steve Vinoski
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."
Buddah-Nature
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
Documents = state
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.
Amen.
Programming Paradoxes
"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."
Wednesday, August 06, 2003
Interesting identity and jurisdiction issues?
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
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.
Monday, August 04, 2003
Google-farts
Yes, it is a Bank Holiday in Ireland.
Thursday, July 31, 2003
Towards Jython 2.2
Wednesday, July 30, 2003
le voila
Monday, July 28, 2003
Service Oriented Integration
Sunday, July 27, 2003
Name based polymorphism in programming languages
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
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.
Friday, July 25, 2003
Identity in the real world
Manuals, conversations and RSS
Thursday, July 24, 2003
An interesting interview with Bruce Eckel over on Borland Community
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
Senior architect required in Propylon
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."
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
Monday, July 21, 2003
Friday, July 18, 2003
Objects in a distributed system
Relax NG Book
Thursday, July 17, 2003
Formless non-physical mind and Buddhist meditation
"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."
Hmmmn.
Tuesday, July 15, 2003
What have Wittgenstein, Murphy, Rockerfeller, Heisenberg, Democritus and Einstein got it common?
Monday, July 14, 2003
Interested in eGovernment?
Saturday, July 12, 2003
Thursday, July 10, 2003
Mac OSX (Panther) to use Python 2.3
RSS now back on line (I think)
Tuesday, July 08, 2003
Interesting new Java technology from fellow Irish company
On Simplicity
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
Monday, July 07, 2003
Its all about dataflows
Filtering SPAM with SpamBayes
Wednesday, July 02, 2003
The end of database-centric design
Here is an ITWorld article I wrote that asks some questions around this area.
Linux in US Schools
"A look at the success of Linux in schools, and how it should constitute the model for state and local government."
Get 'em early.
Tuesday, July 01, 2003
Visual programming
A novel approach to getting your copy of the truly indespensible GNU Emacs Lisp Reference Manual
I got mine by buying it online from Amazon with a credit card. How Baroque!
Monday, June 30, 2003
Saturday, June 28, 2003
Arise POJO's
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.
Server side RSS aggregation and "virtual RSS"?
Just draw your business process and then execute it? Yeah, right.
Loose Coupling - compliment or criticism?
The real tragedy of SPAM
Friday, June 27, 2003
Thursday, June 26, 2003
Wednesday, June 25, 2003
Monday, June 23, 2003
Michael Jackson and blogging
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.
Saturday, June 21, 2003
Service Oriented Architecture for e-Government
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?
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
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
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
Picturing a Service Oriented Architecture
Interesting looking XML conference
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
The good, the bad and the DOM
Tuesday, June 17, 2003
Googling M.C, Escher
Monday, June 16, 2003
Dan Gillmor ponders Mobile Cameras and the nature of snapshots
Python stuff on microsoft.com
Saturday, June 14, 2003
An XML editor with RelaxNG support
Friday, June 13, 2003
Scripting Ant with Jython
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.
- 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.
- 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!
- 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 :-)
- 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
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.
Thursday, June 12, 2003
Why not just use regular expressions to parse XML?
REST/SOAP - 85% plays 15% on Amazon
"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
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
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.
Amen.
Tuesday, June 10, 2003
Taking XML processing out of the dark ages
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
The next big thing: asynchronicity
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.