Friday, January 20, 2006

Python on the Rails

Rails is interesting.

I remember Visicalc.

I used to be a technical sales support person in an Apple shop when standard kit was an Apple 2 and all the buzz was around something iminent called the "Apple Lisa".

Anyway, folks used to walk in off the street and say "I WANT A VISICALC!".
I would say "You mean you want an Apple 2 and a copy of Visicalc, the spreadsheet".
They would say "No. Just give me a Visicalc.".

Sometimes a concept surfs a wave. Rails is one such concept. Ruby is what is underneath in the same way that Apple 2's were under Visicalc.

People want Rails (it seems). Mostly Java people. Thats fine. Heck, if your current mental model of web computing is statically compiling great lumps of Java then sure Rails looks like total magic.

But so too would Python, and Smalltalk and ... if you had gone there.

But that is not the point. The point is that Rails is the wave.

Fine.

Ruby is a fine language in may respects. Too close to Python for me to be thinking "wow! lets go there" but a fine language non-the-less.

Especially if you are coming from Java or Perl...

But that is not the point.

My point is this: I hope that Ruby grows to be a more technically elegant and all-round-fantastically intellectually pleasing programming language than Python.

The world needs such things. I'm a big fan of them. I seek perfect tools just as much as the next guy.

But the world has a way of coalescing around the sub-optimal.

If Ruby/Rails creates a penumbra of sub-optimality around Python then what does that mean for Python?

Does it mean that Python is dooooomed?

On the contrary.

It creates some grass.

Some greener grass.

Over there. On the other side.

It makes Python a middle ground. Removes it from the extremities and plonks it in the middle.

The extremities are now elsewhere.

Python is no longer cool if you are into extremeties.

Python is now free to go totally mainstream.

That is fine by me.

My fondness and bias and vested interest in Python causes me to shout:

    Lets hear it for Ruby and Rails! Way to go!

Thursday, January 19, 2006

More from the "Desktop-Linux-has-come-a-long-way" category

So I needed a high quality print of a JPG...

I have an Epson 915 PhotoStyler which I have previously used from Windows...

I plug it into the USB of my Ubuntu Thinkpad.

I run the Gnome Desktop printer wizard to create a printer.

In the Gimp, I tell the print dialog about my Epson Printer. I pause a few minutes to marvel at all the functionality the Gimp provides...

Then I print...

...and it just works.

The way things ought to be but so seldom are.

Wonderful.

Things versus the attributes of things (and a picture of a cow) - LONG

I am mulling some philosophical stuff about objects, duck typing and so on. Having one of my recurring bouts of ontological angst you could say. In my defence, if you spend time with dynamically typed programming languages, the (non)differences between classes and objects-with-certain-attributes has a way of being 'in your face' quite a lot. Especially if you delve into meta-programming a bit and start creating classes - as distinct from objects - on the fly.

Anyway, as part of this effort I am reading Steve Hagen's Buddhism Plain and Simple.

Here is what I'm thinking. If "religion" was a base class in some OO programming language, what would it look like? What would be in the base class as opposed to in one of the derived classes and why? What would a class hierarchy that spanned say, Christianity, Islam, Judaism, Buddhism etc. look like? Would you be stuck at stage one on the basis that - in one view - Buddhism for example is not a religion per se?

I suspect that you would find that there is no generally acceptable way of capturing a concept like "religion" or "moral" or "beautiful" in a hierarchical ontology. They key I think is the phrase "generally acceptable".

I'm a big fan of the concept of software as language that is written primarily for other humans to read and secondally for computers to execute. On this analysis, software must be a human language as well as a computer language. It must therefore be based on a set of generally accepted conceptualisations in order to function as human language. If no such shared conceptualisations are possible in a particular domain, is software even possible in that domain?

Is the only viable route to "pitch" software at clusters of shared conceptualisations which are, in OO speak, always base classes. Base classes
which cannot be assembled so as to be derived classes of the more general concept - such as Religion or BeautifulThings or LifeForm or ... even though we seem to have shared conceptualisions of those very concepts? Or do we?

Oh yes, the picture of a cow...

In Hagen's book there is a black and white image that looks vaguely like a man lying down but only vaguely. Apparently, it is a picture of a cow which, if you start at the image long enough, becomes self evident.

Well, I have stared at the picture and it is not self evident to me :-)

If anyone out there has it sussed, I'd love to hear from you.

Wednesday, January 18, 2006

How to validate a Microformat

Lots of talk about microformats going on. Thats good.

Some folks worrying about the complexity of validating documents that use microformats.

Folks. All you need is some pipeline goodness.

Step 1 - get yourself an XML pipeline execution infrastructure or roll your own. Its not hard.

Step 2 - Create a two stage pipeline for validation. Stage 1 : a transform that turns class attributes into element type names. Stage 2 : a standard element-centric validation using RNC/G, DTD or XSD.

Tuesday, January 17, 2006

Bill Kent. Data and Reality. Bishop's Knees.

Today I found out over on Bob's weblog that Bill Kent passed away in December, aged 69.
Kent deserves to be better known in my opinion. His book "Data and Reality" is a classic of its kind and turned on a whole bunch of light bulbs for me when I first read it.
It was in Kent's book that I first came across the deep intertwinglements between spoken language and the conceptual models that software architects build in their heads. A concept I wrote about in the ITWorld article How to Model a Bishop some years back.

Monday, January 16, 2006

Laptop Service Providers

Sometimes, all the time I spend addressing problems with my computers, really starts to get to me.
Somewhere in the latter part of the last twenty years the fun has gone out of re-re-re-re-installing printer drivers, out-foxing duplicitious modem error messages and fetoscoping boot sectors...
If someone offered me a laptop deal in which I own the hard disk but rent the locked down laptop in return for no-nonsense we-will-fix-it support of the standard configuration, I would be tempted. A laptop service provider, if you will.

Crubeens and Piggies

Python user groups are usually called PIGgies. So far, the Irish one has been known as Python Ireland. To my shame, I've only managed to attend two of these meetings but under the stewardship of Mick Twomey and Sean O'Donnell, things would appear to be progressing nicely. WIKI page here.
In my defense, Thursday is the day of the week when I am least likely to be in Dublin. OH well.

For grins, I think we should dub members of the Irish Python Interest Group crubeens.