Backwards compatibility on the web

I just noticed the following excerpt in the web page describing a rich-text editing component:

Supported Browsers (Confirmed)
… list …

Note: This list is now out of date and some new browsers such as Safari 3.0+ and Opera 9.5+ suffer from some issues.
(Free Rich Text Editor – www.freerichtexteditor.com)

In odd moments I have recently been working on bringing vfridge back to life.  Partly this is necessary because the original Java Servlet code was such a pig1, but partly because the dynamic HTML code had ‘died’. To be fair vfridge was produced in the early days of DHTML, and so one might expect things to change between then and now. However, reading the above web page about a component produced much more recently, I wonder why is it that on the web, and elsewhere, we are so bad at being backward compatible … and I recall my own ‘pain and tears‘ struggling with broken backward compatibility in office 2008.

I’d started looking at current  rich text editors after seeing Paul James’ “Small, standards compliant, Javascript WYSIWYG HTML control“.  Unlike many of the controls that seem to produce MS-like output with <font> tags littered randomly around, Paul’s control emphasises standards compliance in HTML, and is using the emerging de-facto designMode2 support in browsers.

This seems good, but one wonders how long these standards will survive, especially the de facto one, given past history; will Paul James’ page have a similar notice in a year or two?

The W3C approach … and a common institutional one … is to define unique standards that are (intended to be) universal and unchanging, so that if we all use them everything will still work in 10,000 years time.  This is a grand vision, but only works if the standards are sufficiently:

  1. expressive so that everything you want to do now can be done (e.g. not deprecating the use of tables for layout in the absence of design grids leading to many horrible CSS ‘hacks’)
  2. omnipotent so that everyone (MS, Apple) does what they are told
  3. simple so that everyone implements it right
  4. prescient so that all future needs are anticipated before multiple differing de facto ‘standards’ emerge

The last of those is the reason why vfridge’s DHTML died, we wanted rich client-side interaction when the stable standards were not much beyond transactions; and this looks like the reason many rich-text editors are struggling now.

A completely different approach (requiring a  degree of humility from standards bodies) would be to accept that standards always fall behind practice, and design this into the standards themselves.  There needs to be simple (and so consistently supported) ways of specifying:

  • which versions of which browsers a page was designed to support – so that browsers can be backward or cross-browser compliant
  • alternative content for different browsers and versions … and no the DTD does not do this as different versions of browsers have different interpretations of and bugs in different HTML variants.  W3C groups looking at cross-device mark-up already have work in this area … although it may fail the simplicty test.

Perhaps more problematically, browsers need to commit to being backward compatible where at all possible … I am thinking especially of the way IE fixed its own broken CSS implementation, but did so in a way that broke all the standard hacks that had been developed to work around the old bugs!  Currently this would mean fossilising old design choices and even old bugs, but if web-page meta information specified the intended browser version, the browser could selectively operate on older pages in ways compatible with the older browsers whilst offering improved behaviour for newer pages.

  1. The vfridge Java Servlets used to run fine, but over time got worse and worse; as machines got faster and JVM versions improved with supposedly faster byte-code compilers, strangely the same code got slower and slower until it now only produces results intermittently … another example of backward compatibility failing.[back]
  2. I would give a link to designMode except that I notice everyone else’s links seem to be broken … presumably MSDN URLs are also not backwards compatible 🙁 Best bet is just Google “designMode” [back]

Dublin, Guiness and the future of HCI

I wrote the title of this post on 5th December just after I got back from Dublin.  I had been in Dublin for the SIGCHI Ireland Inaugural LectureHuman–Computer Interaction in the early 21st century: a stable discipline, a nascent science, and the growth of the long tail” and was going to write a bit about it (including my first flight on and off Tiree) … then thought I’d write a short synopsis of the talk … so parked this post until the synopsis was written.

One month and 8000 words later – the ‘synopsis’ sort of grew … but just finished and now it is on the web as either HTML version or PDF. Basically a sort of ‘state of the nation’ about the current state and challenges for HCI as a discipline …

And although it now fades a little I had great time in Dublin meeting, talking research, good company, good food … and yes … the odd pint of Guiness too.

sunrise

One of those mornings when Iona and the Ross of Mull peep over the horizon, islands floating above a sea of light.  Then the sun breaks, itself fluid, a drop of steel from the furness, burning gold flowing like mercury.

Christmas services

Lots of travelling about to see family and lots of deadlines over Christmas period, but now back on Tiree and it’s New Year’s day, so time for a short breather.

All the travelling about meant we didn’t seem to get to as many carol services and the like before Christmas, so it didn’t really feel as if Christmas Day was near until it was upon us.

Miriam is in the choir at Birmingham Cathedral and was singing at both the midnight service on Christmas Eve and the Christmas Morning service, so we all spent Christmas with her.  To be honest I expected the Cathedral services to be beautiful, but lifeless affairs.  I was very wrong.

The midnight service was full-on bells-and-smells with smoking incense wafted over Bible, congregation and anything else in range.  Poor Fiona, who had a cough anyway, struggled to breath through the rich spicy fumes and one other girl had to step out for air.  As well as the people, but I’ll come to those later, the turning point to me was when the priest, dressed in a white surplus with beautiful and intricate embroidery,  came to the centre of the aisle to read the New Testament lesson, flanked on either side by candle bearers in cassocks …  of course all heavily wafted in incense … and she began to read.   Clearly she too found it hard to breath in the smoke (Miriam told us later that the incense was only occasionally used in the services, so she had little practice reading under adverse conditions), but, as her head moved from side to side reading the lesson, the light caught a sparkle of glitter in her hair and suddenly the solemnity of the occasion, her own humanity and the joy of the celebration all came together.  A sparkle in the hair a parable for the message of incarnation.

To be honest tired after so much driving, thesis reading, etc., I fell asleep through some of the sermon … and yes, sometimes if you notice me in a talk with my eyes closed it is rapt attention, but sometimes …

Christmas services are always times which bring in the once-a-year visitors as well as the weekly faithful, so always difficult for the preacher.  Some primarily address the latter, hoping that the former will absorb the message and the occasion, often appropriate in small communities.  The opposite alternative is to treat it as an ‘opportunity for evangelism’ addressing the newcomer, but risking treating them as gospel cannon fodder and maybe even neglecting to focus on the celebration that is Christmas. This seems particularly difficult in a cathedral, which is both a place of worship, but also part of civic life; there to serve the city, to welcome people in on their own terms and yet offer them more.

Again, being honest, I expected the preacher to ‘play safe; bland words and a Christmas greeting, but instead (between my naps) he seemed to get it just right, not ‘preachy’ but welcoming yet leaving no doubt that we were not gathered just to sing a few nice songs, but there to celebrate the birth of a real baby, who became a real man, offering a rich promise, and making real demands on our lives.

However, what struck me most was not so much the ‘front activity’ of  priests and candles, lectern and Bible, or even bread and wine, but the people in the congregation. So varied: the lady in ‘Sunday best’ everybody’s image of the librarian or old-style school teacher, three men with tightly cropped hair like the Mitchell brothers in Eastenders, a group of young women maybe going to a party later, a girl in a heavy-metal sweat shirt, and a young couple punctuating their devotions with the occasional hug.  I wondered at their stories, some regulars, some who, like us, had come especially for the service, some who maybe wandered in.

On the Sunday after Christmas we were all in Kendal and went to the morning service at Sandylands, our regular church while we’d lived at Kendal.  Being the post-Christmas service, one of the readings was the familiar story of when Mary and Joseph took the new baby Jesus to the temple to make their offering of two doves after the birth.  Simeon is an old man but had been told that he wouldn’t die until he has seen the Messiah … he sees the baby Jesus and recognises him.

As this was read, the mathematician in me woke up and I did some quick sums, probably a few 100,000 in Palestine at that time, birth rate for replacement maybe 3%, so thousands of babies a year brought to the temple, maybe a few dozen babies every day … and out of  all these Simeon spots one.  I was reminded of Ursula le Guin’s book “A Wizard of Earthsea“.  It is set in a world of oceans and islands … not so far different from the Hebrides … all interlaced with magic.  The young wizard Sparrowhawk is on a quest and in a tower in the far north is lead into a deep room where a great treasure is stored.  The room is empty, but amongst the flagstones on the floor, he spots one, a small insignificant stone, worn from depths of ages, but so so old and holding a deep ancient dark power.  Like Sparrowhawk, Simeon spots the one of great value amongst the many; does it take special eyes or a special gift to see, or just willingness to look?

Although the old dark powers in “A Wizard of Earthsea” are just a story, the Christmas celebrations are themselves set at midwinter at the time of many old pre-Christian festivals.  The early Christians saw no problem in embracing pagan places and even names  (even the English word Easter!) so long as they were consistent with the Christian purpose. Indeed,  it is commonly assumed, there being no indication in the Gospels as to the time of year when Jesus was born, that the early Christians chose the Roman feast of Sol Invictus, the official State sun god so as to declare Christ the Son’s place at the heart of formal society; like those in Birmingham today, treading a difficult line between personal devotion and civic religion.

The parties, eating and drinking of Christmas capture some of the spirit of pagan midwinter, celebrating the sun’s return, and not entirely absent from cathederal mass … see the sparkle in the hair amongst the robes and dress coats of formal civic celebration, but both raw humanity and ordered civilisation give way to something greater.   There is a logic that is not the tit-for-tat logic of base human nature, nor the clinical logic of pure reason (although both are part of us), but instead is a logic that takes all the problems and pain of the world and answers them in a tiny wriggling baby.

short story for Christmas

A few years ago I wrote a short children’s story “Christopher’s Christmas“.  I put a PDF online at the time, but just put the whole thing online as HTML to read in the browser.

This was partly written because it is too easy to forget how difficult things are for little children, and also as a personal catharsis remembering myself, as a slightly older child, on my first Christmas after my own dad died.

… and no, I didn’t get a 5 year old to draw the pictures … just that I draw like a 5 year old :-/

reading: Computing is a Natural Science

I’ve just been re-reading Peter Denning’s article “Computing is a Natural Science1.    The basic thesis is that computation as broad concept goes way beyond digital computers and many aspects of science and life have a computational flavour; “Computing is the study of natural and artificial information processes“.  As an article this is in some ways not so controversial as computational analogies have been used in cognitive science for almost as long as there have been computers (and before that analogies with steam engines) and readers of popular science magazines can’t have missed the physicists using parallels with information and computation in cosmology.  However, Denning’s paper is to some extent a manifesto, or call to arms: “computing is not just a load of old transistor, but something to be proud of, the roots of understanding the universe”.

Particularly useful are the “principles framework for computing” that Denning has been constructing through a community discussion process.  I mentioned these before when blogging about “what is computing? The article lists the top level categories and gives examples of how each of these can be found in areas that one would not generally think of as ‘computing’.

Computation (meaning and limits of computation)
Communication
(reliable data transmission)
Coordination
(cooperation among networked entities)
Recollection
(storage and retrieval of information)
Automation
(meaning and limits of automation)
Evaluation
(performance prediction and capacity planning)
Design
(building reliable software systems)
categories from “Great Principles of Computing

Occasionally the mappings are stretched … I’m not convinced that natural fractals are about hierarchical aggregation … but they do paint a picture of ubiquitous parallels across the key areas of computation.

Denning is presenting a brief manifesto not a treatise, so examples of very different kinds tend to be presented together.  There seem to be three main kinds:

  • ubiquity of computational devices – from iPods to the internet, computation is part of day-to-day life
  • ubiquity of computation as a tool –  from physical simulations to mathematical proofs and eScience
  • ubiquity of computation as an explanatory framework – modelling physical and biological systems as if they were performing a computational function

It is the last, computation as analogy or theoretical lens that seems most critical to the argument as the others are really about computers in the traditional sense and few would argue that computers (rather than computation) are everywhere.

Rather like weak AI, one can look treat these analogies as simply that, rather like the fact that electrical flow in circuits can be compared with water flow in pipes.  So we may feel that computation may be a good way to understand a phenomena, but with no intention of saying the phenomena is fundamentally computational.

However, some things are closer to a ‘strong’ view of computation as natural science.  One example of this is the “socio-organisational Church-Turing hypothesis”, a term I often use in talks with its origins in a 1998 paper “Redefining Organisational Memory“.  The idea is that organisations are, amongst other things, information processing systems, and therefore it is reasonable to expect to see structural similarities between phenomena in organizations and those in other information processing systems such as digital computers or our brains.  Here computation is not simply an analogy or useful model, the similarity is because there is a deep rooted relationship – an organisation is not just like a computer, it is actually computational.

Apparently absent are examples of where the methods of algorithmics or software engineering are being applied in other domains; what has become known as ‘computational thinking‘. This maybe because there are two sides to computing:

  • computing (as a natural science) understanding how computers (and similar things) behave – related to issues such as emergence, interaction and communication, limits of computability
  • computing (as a design discipline) making computers (and similar things) behave as we want them to – related to issues such as hierarchical decomposition and separation of concerns

The first can be seen as about understanding complexity and the latter controlling it.  Denning is principally addressing the former, whereas computational thinking is about the latter.

Denning’s thesis could be summarised as “computation is about more than computers”.  However, that is perhaps obvious in that the early study of computation by Church and Turing was before the advent of digital computers; indeed Church was primarily addressing what could be computed by mathematicians not machines!  Certainly I was left wondering what exactly was ubiquitous: computation, mathematics, cybernetics?

Denning notes how the pursuit of cybernetics as an all embracing science ran aground as it seemed to claim too much territory (although the practical application of control theory is still live and well) … and one wonders if the same could happen for Denning’s vision.  Certainly embodied mind theorists would find more in common with cybernetics than much of computing and mathematicians are not going to give up the language of God too easily.

Given my interest in all three subjects, computation, mathematics, cybernetics, it prompts me to look for the distinctions, and overlaps, and maybe the way that they are all linked (perhaps all just part of mathematics ;-)).  Furthermore as I am also interested in understanding the nature of computation I wonder whether looking at how natural things are ‘like’ computation may be not only an application of computational understanding, but more a lens or mirror that helps us see computation itself more clearly.

  1. well when I say re-reading I think the first ‘read’ was more of a skim, great thing about being on sabbatical is I actually DO get to read things 🙂 [back]

island life – three weeks in

It was three weeks yesterday when we moved here to Tiree and slowly getting into the pace of island life.  Steve, our first visitor, left on Thursday, on the ‘big’ plane (about 30 seats).  Had a great time working with Steve on the Physicality book that we are writing as an outcome of the DEPtH project.  We managed the odd walk on the beach together, albeit rather windy, and Steve, brave soul, cycled several times from his hotel in Scarinish to our house, not far and flat all the way, but with a 30 knot wind in your face!

Otherwise have had our first fuel shortage when we needed petrol for the car and found there was none on the island for several days (incidentally the garage must have one of the best views in the country), had our first takeaway (fish and chip van 100 yards from the house … we are well positioned), lit our first fires (ah the smell of coal smoke reminds me of my childhood), registered at the doctors to get vaccinations ready for India (not in regimented 10 minute slots!), and of course lots of paddling in the sea … but think I might be developing my first every chilblains … well I know my own fault, but how can I resist when there is sea and foaming waves to dip my toes in.

It still feels like a holiday …  of course holiday for me tends to mean working with a nice view … so not sitting around the whole day watching the wind blow foam back in clouds from the breaking wave crests and the patterns of dark and light constantly shift with the moving clouds.  Getting lots done, for once clearing the to-do list faster than it grows (although it does still grow, some things don’t change), but for the first time for years free of that ever present feeling of heavy heavy weight on my shoulders.

… and on Monday I’ll be experiencing the flight to Glasgow myself as travelling to Dublin to give the SIGCHI Ireland inaugural lecture.  Managed to work out flights without needing a stay-over in Glasgow, but I have a feeling I will get to know the Holiday Inn Express at Glasgow airport quite well over the coming year.

Steve’s bin

This is Steve‘s bin that I mentioned in my last post.

Glasdon UK: Plaza® Litter Bin

Glasdon UK: Plaza® Litter Bin

Had to be drunk proof, dustman proof, and bomb proof.  Also has to be emptied without needing a key, but be difficult to open if you don’t know how (to prevent Saturday night vandalism).  To top it all had to be designed to be able to be replaced after emptying so that it self locks, and yet is made by a moulding process that means there may be up to a couple of centimetres movement from the design spec.  I am very impressed.

strength in weakness – Judo design

Steve Gill is visiting so that we can work together on a new book on physicality.  Last night, over dinner, Steve was telling us about a litter-bin lock that he once designed.  The full story linked creative design, the structural qualities of materials, and the social setting in which it was placed … a story well worth hearing, but I’ll leave that to Steve.

One of the critical things about the design was that while earlier designs used steel, his design needed to be made out of plastic.  Steel is an obvious material for a lock: strong unyielding; however the plastic lock worked because the lock and the bin around it were designed to yield, to give a little, and is so doing to absorb the shock if kicked by a drunken passer-by.

This is a sort of Judo principle of design: rather than trying to be the strongest or toughest, instead by  yielding in the right way using the strength of your opponent.

This reminded me of trees that bend in the wind and stand the toughest storms (the wind howling down the chimney maybe helps the image), whereas those that are stiffer may break.  Also old wooden pit-props that would moan and screech when they grew weak and gave slightly under the strain of rock; whereas the stronger steel replacements would stand firm and unbending until the day they catastrophically broke.

Years ago I also read about a programme to strengthen bridges as lorries got heavier.  The old arch bridges had an infill of loose rubble, so the engineers simply replaced this with concrete.  In a short time the bridges began to fall down.  When analysed more deeply  the reason become clear.  When an area of the loose infill looses strength, it gives a little, so the strain on it is relieved and the areas around take the strain instead.  However, the concrete is unyielding and instead the weakest point takes more and more strain until eventually cracks form and the bridge collapses.  Twisted ropes work on the same principle.  Although now an old book, “The New Science of Strong Materials” opened my eyes to the wonderful way many natural materials, such as bone, make use of the relative strengths, and weaknesses, of their constituents, and how this is emulated in many composite materials such as glass fibre or carbon fibre.

In contrast both software and bureaucratic procedures are more like chains – if any link breaks the whole thing fails.

Steve’s lock design shows that it is possible to use the principle of strength in weakness when using modern materials, not only in organic elements like wood, or traditional bridge design.  For software also, one of the things I often try to teach is to design for failure – to make sure things work when they go wrong.  In particular, for intelligent user interfaces the idea of appropriate intelligence – making sure that when intelligent algorithms get things wrong, the user experience does not suffer.  It is easy to want to design the cleverest algotithms, the most complex systems – to design for everything, to make it all perfect. While it is of course right to seek the best, often it is the knowledge that what we produce will not be ‘perfect’ that in fact enables us to make it better.

The Cult of Ignorance

Throughout society, media, and academia, it seems that ignorance is no longer a void to be filled, but a virtue to be lauded.  Ignorance is certainly not a ‘problem’, not something to be ashamed of, but is either an opportunity to learn or a signal that you need to seek external expertise.  However, when ignorance is seen as something not just good in itself, but almost a sign of superiority over those who do have knowledge or expertise, then surely this is a sign of a world in decadence.

Although it is something of which I’ve been aware for a long time, two things prompt to think again about this: a mailing list discussion about science in schools and a recent paper review.

The CPHC mailing list discussion was prompted by a report by the BBC on a recent EU survey on attitudes to science amongst 15-25 year olds.  The survey found that around 1/2 of Irish and British respondents felt they “lacked the skills to pursue a career in science” compared with only 10% in several eastern European countries.  The discussion was prompted not so much by the result itself but by the official government response that the UK science community needed to do more “to understand what excites and enthuses young people and will switch them on to a science future.”  While no-one disagrees with the sentiment, regarding it as ‘the problem’ disregards the fact that those countries where scientific and mathematical education is not a problem are precisely those where the educational systems are more traditional, less focused on motivation and fun!

I have blogged before about my concerns regarding basic numeracy, but that was about ‘honest ignorance’, people who should know not knowing.  However, there is a common attitude to technical subjects that makes it a matter of pride for otherwise educated people to say “I could never do maths” or “I was never good at science”, in a way that would be incongruous if it were said about reading or writing (although as we shall see below technologists do do precisely that), and often with the implication that to have been otherwise would have been somehow ‘nerdy’ and made them less well-balanced people.

Sadly this cult of ignorance extends also to academia.

A colleague of mine recently had reviews back on a paper.  One reviewer criticised the use of the term ‘capitalisation’ (which was in context referring to ‘social capital’) as to the reviewer word meant making letters upper case.  The reviewer suggested that this might be a word in the author’s native language.

At a time when the recapitalisation of banks is a major global issue, this surely feels like culpable ignorance.  Obviously the word was being used in a technical sense, but the reviewer was suggesting it was not standard English.  Of course, ‘capital’ in the financial sense dates back certainly 300 years, the verb ‘capitalise’ is part of everyday speech “let’s capitalise on our success”, and my 30 year old Oxford English Dictionary includes the following:

Capitalize 1850. …. 2. The project of capitalizing incomes 1856. Hence Capitalization.

Now I should emphasise it is not the ignorance of the reviewer I object to; I know I am ignorant of many things and ready to admit it.  The problem is that the reviewer feels confident enough in that ignorance to criticise the author for the use of the word … apparently without either (a) consulting a dictionary, or (b) while filling out the online review form bothering to Google it!

This reminded me of a review of a paper I once received that criticised my statistical language, suggesting I should use the proper statistical term ‘significance’ rather than the informal language ‘confidence’.  Now many people do not really understand the difference between significance testing (evidence of whether things are different) and confidence intervals (evidence of how different or how similar they are) – and so rarely use the latter, even though confidence intervals are a more powerful statistical tool.  However the problem here is not so much the ignorance of the reviewer (albeit that a basic awareness of statistical vocabulary would seem reasonable in a discipline with a substantial experimental side), but the fact that the reviewer felt confident enough in his/her ignorance to criticise without either consulting an elementary statistical text book or Googling “statistics confidence”.

So, let’s be proud of our skills and our knowledge, humble in accepting the limits of what we know, and confident enough in ourselves, so that we do not need to denegrate others for doing what we cannot.  Then ignorance becomes a spring board to learn more and a launching point for collaboration