Featured Post


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

Saturday, September 30, 2006


Overnight (or so it seems), all main roads around my house have acquired signs that say "Welcome to Bréifne".

I never heard of it until I looked it up a few minutes ago. Turns out that starting about 900 years ago, my house was in a kingdom ruled over by people with names like "Tadhg na gCaor mac Ualghairg" (1352-1376) and "Brian Og na Samhthach mac Briain na Murtha" (1591-1600). A full list of my former lords can be found here.

The website is http://www.breifne.ie.

Note to geek visitors. The signs on the road say http://www.bréifne.ie which will not be right until rfc3987 kicks in.

Its a marvelous night for a moon dance

I caught this on TV some weeks ago and now I see it on the net. A real live bird doing a real live Michael Jackson-esque slide. Very funny.

Shared Nothing: the next big issue for UCAs (Underdogging Chasm Activists)

You know the drill. Some problem X occupies the minds of those geeks (who are paid to/who can afford to/who cannot but) spend time looking over the horizon at what is coming next.

For each problem X, a family of possible approaches jocky for position on the leaping side of the chasm

From time to time and underdog actually ends up winning. From time to time and underdog ends up winning REAL BIG.

Maybe HTML/HTTP is the biggest WIN BIG underdog of all time. In its day, TCP/IP was an underdog. So was the concept of a PC. So was RDBMS...

In technology (and in sport come to think of it) I have the genetic marker that predisposes me to root for an underdog pretty much every time. Call it a character flaw if you like.

I've spent (and continue to spend) time shouting across the chasm wearing the tee-shirt of some underdog: SGML, Python, Desktop Ubuntu, REST...

Those are the happy memories because, to varying degrees, I've seen these progress across the chasm. (Ok. On the way, SGML was stripped down and renamed to XML but that is just a detail.)

Mind you, I also spent some time rooting for underdogs that never made it. Like a gambler, I'm better at remembering the good times rather than the bad times.

I rooted for Clipper[1]. I rooted for SMART (a DOS based 4GL so old I cannot find a href to it!). I rooted for DSSSL. I rooted for Lotus Improv...

I'm still very hopeful about underdogs like temporal decoupling/SEDA, Jython, Relax NG, semantic steganography, XML pipelining...

Anyway, the reason for this post is that as a fully paid up Underdogging Chasm Activist (UCA), I have a new tee shirt. Waaaayyyyy out there on the encumbent side of the chasm, truly embedded in current thinking about s/w is the concept of a thread and the concept of shared resources across threads and semaphores and spin locks...

My latest t-shirt claims this is not the way to go. Programming is hard enough without lacing the entire exercise with deep non-determinism.

My latest t-shirt claims that a "shared nothing" model baked right into the programing language - such as that epitomised by Erlang - is a much saner way to deal with the phenomenal processing power of tomorrows 80 core processors.

Yes, you can layer a shared nothing architecture on top of a language that does not hand-hold you towards a shared nothing design, but the scope for error is huge. Remember the days of malloc anyone? Same idea. You can do sane memory management in C but the scope for error is high. Too high given that s/w enineering needs more practitioners than there are coding gods.

Anyway. Here I am shouting across that chasm. Shared Nothing is the future folks.

[1] Fans of code blocks looking at, say, Ruby, might like to read about the history of code blocks in Clipper.

Thursday, September 28, 2006

On Javascript

A variety of scent trails lead me to Dreaming in Browser Swamp. It is a fun read, reminds me of twenty first century applets in parts. But I'm not sure I agree with some of it.

Steve is not a fan of the "lame-ass toolkit" approach of generating JavaScript. I dunno. Feels like a bootstrap opportunity to me.

1) Lots of v. ugly JavaScript needed to make an app work across a range of disparate browsers
2) Crystallise an abstraction over those browsers in the time-honoured GUI toolkit tradition
3) Write programs to the abstraction using language FOO
4) Compile down to JavaScript or translate on the fly so that all the browser sees is the JavaScript, perhaps after browser sniffing/CONNEG on the server side.

IF the abstraction takes hold, tools to work directly with the abstraction will take hold and eventually browsers that work directly with the abstraction will appear - obviating the need for the downtranslate to "legacy" Javascript.

Somehow, we gotta find a way to clear out the swamp without closing down the fairground. This seems like a reasonable approach to me.

Steve also makes a case for the ecomomic superiority of a single language that supports declarative programming. He is right on the money that the only way that this one-size-fits-all model will work is if it supports declarative programming. I'd go further and say that the key requirement (again a bootstrap argument) is the support for DSLs.

For me, it is the DSL bits of Ruby that are truly interesting vis-a-vis Python or Scheme. The Scheme/Lisp approach to one-size-fits-all falls into the particle physics trap I think. (The layers of abstraction you pay for the homogeneity of everything is too high.). (Think RDF applied to a programming language and you get the general idea.) Ruby mangages to keep fairly intuitive and clean syntax in the DSLs which, I think, is an important lesson for all language communities.

So, here is a strawman grand unifying theory:

XML = a DSL for data that validates and compiles data into tree structures. (think about it.)

FOO = a DSL for web programming at compiles programs into 21st century byte code called BPIJ (Browser Platform Indepdent Javascript)

FOO here is a placeholder for one of todays languages or some yet-to-be-created language.

Now here is the big question: why have FOO and also XML?

If FOO has excellent DSL capabilities then doesn't the difference between code and data dissapear in the blue smoke of logic?

I think the answer might be "yes" as long as the DSL features of FOO hit the right 80/20 point between expressive power and ease of expression.

Wednesday, September 27, 2006

The usefulness of e-mail bounce

I have a gmail account with a name that you can probably guess. There are many other people in the world with my name. It is very easy for somebody trying to email another Sean McGrath to e-mail me on gmail by mistake. Over the last while I have received 2-3 of these.

With company-centric e-mail addresses, you have to be more unlucky to send an e-mail to the wrong person. With gmail, pretty much every common name you can think off is registered to someone, somewhere @gmail.com. Therefore, the positive feedback associated with a bouncing e-mail - the loud and clear "No such person at that address buddy", doesn't happen with gmail.


Beautiful South/Leonard Cohen: Anhydrous Wit and Humour - Trip Report. Going off the deep end interpreting Leonard Cohen lyrics. Trip report.

The Beautiful South played Castlebar last night and a good time was had by all. There is something delicious about the way they take boulder sized lumps of acerbic wit/irony/social commentary and strap them to the back of tuneful, stompin' pop ditties which they then belt out in a wall-of-sound kind of way.

I can go for years without attending a live concert and now two come together in successive weeks. Next week the literary content quotient gets ratcheted up considerably at an Evening of Leonard Cohen Songs at the Point in Dublin.

Ideally of course it would be Leonard Cohen himeself. Doubly ideally, I would buttonhole him back stage and ask for a detailed explanation of this:

    Then I came back from where I'd been.
    My room, it looked the same -
    But there was nothing left between
    The Nameless and the Name.

A critique of nominalism?
Frege/Russell-esque denotation?
Kripke/Putnam Causal Theory of Reference?
The Heideggerian pre-ontological background on which Daisen formulates Being?

Maybe its just a love song. I should probably lie down.

Tuesday, September 26, 2006

Does work actually flow?

    "I posit that somewhere in the rolling green hills of Tumbolia there is a valley chock-full of machine readable workflows that have been abandoned by the organizations that created them." -- Does work actually flow?