Thusly, he wrote

Was with Kiel, one of my PhD students the other day, reading a draft chapter of his PhD thesis. He used the word ‘thusly’ and at first I thought this was a Kiel-ism (sorry Kiel, you do have a few). However, he assured me it was common usage … and not just for him. I suspected it was a regional idiom and indeed a bit of web searching finds many archaic uses of thusly, but several more recent Lancashire uses.

I suspect the word arose because ‘thus’ often precedes a verb and so has acquired an adverb ‘-ly’ ending … a form of lexical over-generalisation. … and if you have not already stopped reading because you can’t understand why anyone would be even interested in this level of language … as I did the web search found a lovely discussion site called INTERACTION (and no, this one is not the synonymous BCS HCI Group) where one person mildly mocked another for using ‘thusly’ in the 21st Century … obviously not a Lancashire lad.

This has also made me reflect on my own frequent use of ‘thus’ to mean ‘therefore’ as opposed to ‘in this way’ … argh am I really a grammar nerd :-/

why software need never hang

Over 20 years ago I wrote “The Myth of the Infinitely Fast Machine“, about the way software developers effectively assume that everything on the machine side of human interaction happens instantly. Often interaction is programmed in a turn-taking style:

  1. wait for user action
  2. process the event
  3. display changes
  4. back to step 1

This assumption of instant (or at least infinitely fast) response at step 2 often ignores network delays, disk IO or heavy computation. This tends to work fine on a high-spec development or test machine, with a fast network and clean install of all system software … but when the software hits a real machine, a few years old, untidy system, slow network … things fall to pieces.

So 20 years later (as I described in my post last week) I am sitting watching the spinning rainbow ball as Word struggles to save a document (over an hour now, I think I will need to kill it). To be fair I think the root ’cause’ of the problem … or at least one problem … may be the printer as the Cannon printer driver has never worked properly on an Intel Mac (maybe new driver when I upgrade to Leopard?) and perhaps some change in the rest of the system (maybe the Office install) has tipped it over into not working at all.

As far as I can tell Word then decides to ask the printer things in order to set the margins properly when saving the document, and then gets stuck. I found a post on a Microsoft forum about a different print related problem and the ‘helpful’ tech support from MS simply said “not our fault, re-install everything”.

So to recap:

  • user asks Word to save – probably the most critical operation in the system, or the system auto-saves, again to ensure safety against crashes, so really critical
  • Word decides it needs information from the printer (although it has been displaying the page to the users using some existing information on page properties).
  • Word asks for info from the printer driver of the currently selected printer
  • if the printer doesn’t respond Word hangs and blocks all user interaction

However, the printer driver may be third party, may be connecting to a shared printer hanging off a different network, or in the case of a laptop on a network currently disconnected from the computer … and any resulting delay is not the fault of the developers of Word??!

The annoying thing is that such ‘hanging’ delays need never happen.

Basically there are four main causes for delays:

  1. ordinary computation takes a long time due to it being too complex for the available hardware
  2. unbounded internal computation -for example iterative algorithms
  3. waiting for external resources (disk, network, etc.)
  4. bugs that lead to the system going crazy (effectively case 2 by accident!)

Type 1 will surface during testing and may require re-design of the interaction, but is simply ‘slow’ rather than ‘hanging’. Typically it leads to things gradually getting slower as the document or data gets larger or more complicated. This requires standard profiling and optimisation.

Type 4 is hard to deal with – bugs do happen. However, the majority of the problems I’m experiencing in Word at the moment are not a failure of this kind as Word does, most of the time, eventually complete without crashing.

Types 2 and 3, especially the latter, should be detected and then dealt with in the design of the user interface.

Some real-time programming languages have ways of automatically working out how long code will take to run in order to be able to assert “this will respond within a 10 ms interrupt cycle”. However, this is hard, even for relatively simple embedded systems; so not practical for complex operating systems or user interfaces.

However, a simpler version of the above is possible. Certain system functions invoke external resources such as the disk, or the network. If any function or method in your own application invokes one of these system functions, then it could potentially hang – and should be documented to say so or return some sort of ‘promise’: “I’ve started to do X, please check back later to see if it is ready”. Of course the methods that call these themselves need to be documented as potentially hanging … and so forth.

If the response to any form of user interaction ends up calling a potentially hanging function, then it is in danger of having a delay of type 3 above. However, so long as this is known, it can be dealt with at the user interface level by spawning a thread to do the work so that some form of progress indicator or at least “Cancel” button can be active – it should never ‘hang’.

This marking of functions as potentially ‘hanging’ could be done by programmers themselves, but equally can be automated as a form of static analysis, simply starting with a known set of hanging system functions and recursively ‘colouring’ functions that call them. This kind of automated checking should be standard practice in any large software project.

The type 2 hanging is a little more complicated. The ADA programming language has a ‘safe’ subset that only allows loops where the bounds are fixed at compile time. This is probably too restrictive for complex software, but certainly any loop with unknown limits could be flagged. If as part of a code walk through or similar practice it is decided that the loop is ‘safe’ it can be annotated as such, otherwise, just like the case of system calls, the system can propagate the fact that certain functions may have unbounded computation and then the UI adjusted accordingly.

For small bespoke software development I can be forgiving, but for large vendors like Microsoft, Apple or Adobe, there is no excuse for this form of culpable failure.

… but I have a bad feeling that in 20 years time I may be writing again …

[[ News flash – 1.5 hours later Word has finished saving the document! … 14 pages obviously hard work. … but then it has hung again 🙁 ]]

pain, tears and office 2008

Some weeks ago I upgraded Microsoft Office to Office 2008 (yes it does still have menus on the Mac!), and life since has been constant trouble.

OK first there are ‘minor’ niggles like it eating 1/2 my screen space in huge tool bars replicated at the top of every window, or eveytime I read in an Excel spreadsheet it telling me that old macros no longer work … actually I don’t use Excel macros, but f you do and have lots of spreadsheets that use them what then? … and don’t get me started in the fact that I can no longer cut and paste directly between Word and Dreamweaver.

… and then, just over 2 weeks ago, I was at the AVI conference and, as one does, writing the slides for the presentation the day before. I had produced all the diagrams for the presentation in Powerpoint and then copied them into Word, so thought it would be easy – start with the Powerpoint file with all the diagrams in it and add a few words around them – after all pictures always best. However, this was reckoning without Office 2008. The figures had been produced in PPT 2004, and when I opened them in Office 2008 half the images just disappeared. I tried opening in the old version of office, but it simply crashed every time I tried to update a file, I assume the Office 2008 install broke the old Office 2004 install in some way. In desperation I tried cutting and pasting the slides between PPT 2004 and PPT 2008, but that failed (I guess because Powerpoint thought it was pasting back into itself!). Eventually I managed to get the crucial images by cutting and pasting via a third program.

But the reason I am blogging now, rather than doing the pile of work that I need to do, is that Word has decided that about every 10 minutes it needs a 15 minute break and disappears into a little spinning rainbow – it does eventually come back, but only after several cups of tea.

To be fair most of the problems seem to be with compatibility mode … but surely backward compatibility is not so difficult … after all we have a lot of old files out here .. or if they can’t code it properly simply produce one-off converters rather than pretending to work when they don’t!

But the spinning disk has at last stopped … so back to another 10 minutes work before it halts again.

local URIs … mashing up the desktop

I’ve worried for a while about desktop URLs.

Within the web it is easy to link things together. If I want to refer to my home page I just add a link like this. However, on the desktop things are not so simple and I end up copying chunks of mail messages into the notes field in iCal rather than simply being able to link to the mail message where I arranged the meeting.

Links from the desktop to the web are easy … just use the URL … many desktop applications including mail clients and word processors will allow you to embed clickable links. Indeed it is often easier to link to a web page than to another object on the desktop! However, things get more difficult if you want to link the other way round, from a web page to a local file or resource. In my browser’s favourites I have several links to local files, but you cannot easily do the same if your bookmarks are in a web service like del.icio.us or even my own Snip!t. It is hard to seamlessly weave your desktop into the global web.

A couple of events brought this issue to a head for me.

First at the CHI workshop on PIM entitled the Disappearing Desktop, I asked if anyone knew of work in the area and I heard from Leo Sauermann that they had made some progress on this as part of the Gnowsis project. Their proposal for a Desktop URI Scheme (edited by Leo) is targeted principally at the first of the scenarios above, being able to link between things within the desktop.

The second event was at the AVI workshop on designing multi-touch interaction techniques for coupled public and private displays. During discussions abut touch-based interactions such as the Microsoft Surface or Apple iPhone, we considered scenarios where peole got together for a meeting (as we were) in a hotel bar (where we split for small group discussion) and had screens on table tops and walls, laptops, tablets, phones … and wanted to seamlessly move material between devices. Clearly an essential requirement for which is some way to identify resources across ad hoc collections of devices.

Finally I was in Athens working with George Lepouras, Akrivi Katifori and others. George had developed a Thunderbird extension to allow Snip!t to snip from mail messages … but while we could snip the text there was no way for the Snip!t page to link back to the mail message. We need full round trip URIs that link desktop and web with no distinction – URIs that can be embedded in a web page and (assuming you have the right permissions and are in an appropriate place) can be clicked and the appropriate mail message, calendar entry or whatever is opened.

Based on this and discussions we had, I drafted a discussion document on globally accessible local URIs. Any feedback very welcome.

Over the summer we hope to put together a demonstrator / reference implementation – if anyone is interested let me know.

Tags and Tagging: from semiology to scatology

I’ve just been at a two-day workshop on “Tags and Tagging” organised by the “Branded Meeting Places” project.

Tags are of course becoming ubiquitous in the digital world: Flickr photos, del.icio.us bookmarks; at the digital/physical boundary: RFID and barcodes; and in the physical world: supermarket price stickers, luggage labels and images of Paddington Bear or wartime evacuees each with a brown paper label round their necks. Indeed we started off the day being given just such brown paper tags to design labels for ourselves.

Alan's tag

As well as being labels so we know each other, they were also used as digital identifiers using a mobile-phone-based image-recognition system, which has been used in a number of projects by the project team at Edinburgh (see some student projects here). We could photograph each others tags with our own phones, MMS the picture to a special phone number, then a few moments later an SMS message would arrive with the other person’s profile.

Being focused on a single topic and even single word ‘tag’ soon everything begins to be seen through the lens of “tagging”, so that when we left the building and saw a traffic warden at work outside the building, instantly the thought came “tagging the car”!

Vocal Thumbs logoThe workshop covered loads of ground and included the design and then construction of a real application – part of the project’s methodology of research through design. However, two things that I want to write about. The first is the way the workshop made me think about the ontology or maybe semiology of tags and tagging, and the second is a particular tag (or maybe label, notice?) … on a toilet door … yes the good old British scatological obsession.

Continue reading

when virtual becomes real

Just read Adam Greenfield’s blog entry “Reality bites“. He describes how a design he produced for a friend’s new restaurant became a solid metal sign within days. Despite knowing about recent rapid fabrication techniques, actually seeing these processes in action for his own design was still shocking.

I too am still amazed at the relative ease that ideas can be turned into reality. In a presentation “As we may print” at the 2003 Interaction Design for Children, Michael Eisenberg described how he and his co-workers at University Colorado were using laser cutters to enable children to design their own 3D designs in card or even thin plywood. More recently at the National Centre for Product Design and Development Research in Cardiff, I saw 3D metal printers. I was aware of 3D printers working in various gels and foams, but did not realise it was possible to create parts in titanium and steel, simply printed from 3D CAD designs. Chasing one of Adam’s links I found instructions to make your own 3D printer on the MIT site … however, this constructs your designs in pasta paste not metal!

One of the arguments we are making about our FireFly technology is that it will change lighting from being a matter of engineering and electronics, to a digital medium where the focus moves form hardware to software. While FireFly allows more flexible 2D and 3D arrangements than other technologies we are aware of, it is certainly not alone in making this transformation in lighting. Last week I was talking to Art Lights London and they are planning some large installations using Barco’s LED lighting arrays. Soon anything that you can point on your computer screen you will also be able to paint in light from your own Christmas tree to London Bridge.

Although it sometimes seems that technology is simply fuelling war and environmental catastrophe, it is a joy to still glimpse these occasional moments of magic.

mobile design workshop

A couple of weeks ago I attended a mobile design workshop at microsoft labs in Cambridge. Great 2 days … people from academia and industry (and no not just MS, also Google, Yahoo, Sony, Nokia, …!)
Alan in Helmet

Most of the time was spent splitting into small working groups then coming back together for plenaries. I took part in groups discussing:

(1) tools to make it easier for those in developing countries to design mobile phone applications that suit their needs [session notes], rather than simply passing on applications and designs fitted for very different needs and infrastructure. During the discussion various applications of phone technology were cited that were completely different form those we would expect in the UK, US or Europe, but fitted the situations of people. These included using the address book as a ‘who owes what’ list for a trader … the ‘telephone numbers’ were in act amounts of money! This use of ‘ancillary’ parts of the phone rather than simply being a glorified communication device. Although he context of this was Africa, it also echoes studies of domestic phone use by Malay women in the UK by Fariza (who has just had her PhD viva :-)). She found alarm, calculator and things like that, at least as important as phone & text for the people she studied.

(2) ‘mindfulness’ and mobile phones … and of course the fact that normally they do the opposite interupting etc. … but just to not make us all agree too much, I said that mindfulness sounded like we should all become like rabbits; it is the looking forward and back, with all its stress, that is one of the things that make us human.

(3) task/data oriented interaction … escaping from the ‘application’. This was particularly relevant to me given onCue at aQtive was in this space as are Snip!t and work on TIM project with colleagues at Rome, Athens and recently new collaborators Madrid … with whom I had a short but lovely visit after CHI.

Task session

It-ness and identity: FOAF, RDF and RDMS

Issues of ‘sameness’ are the underpinnings of any common understanding; if I talk about America, bananas or Caruso, we need to know we are talking about the ‘same’ thing.

Codd’s relational calculus was unashamedly phenomenological – if two things have the same attributes they are the same. Of course in practice, we often have things which look the same and yet we know are different: two cans of beans, two employees called David Jones. So many practical SQL database designs use unique ids as the key field of a table effectively making sure that otherwise identical rows are distinct1.

The id gives a database record identity – it is a something independent of its attributes.

I usually call this quality ‘it-ness’ and struggled to find appropriate (probably German) philosophical term to refer to it. Before we can point at something and say ‘it is a chair’, it must be an ‘it’ something we can refer to. This it-ness must be there before we consider the proeprties of ‘ot’ (legs, seat, etc.). It-ness is related to the substance/accident distinction important in medieval scholastic debate on transubstantiation, but different as the bread needs to be an ‘it’ before we can say that its real nature (substance) is different from its apparent nature (accidents).

In contrast RDF takes identity, as embodied in a URI, as its starting point. The origins of RDF are in web meta-data – talking about web pages … that is RDF is about talking about something else, and that something else has some form of (unique) identity. Although the word ‘ontology’ seems to be misused almost beyond recognition in computer science, here we are talking about true ontology. RDF assumes as a starting point it is discussing things that are, that exist, that have being. Given this of course several distinct things may have similar attributes2.

Whilst RDMS have problems talking about identity, and we often have to add artifices (like the id), to establish identity, in RDF the opposite problem arises. Often we do not have unique names even for web entities, and even less when we have RDF descriptions of people, places … or books. Nad discusses some of the problems of cleaning up book data (MARC, RDF and FRMR), part of which is establishing unique names … and really books are ‘easy’ as librarians have soent a long time thinking about idetifying them already.

FOAF (friend of a friend) is now widely used to represent personal relationships. In this WordPress blog, when I add blogroll entries it prompts for FOAF information: is this a work colleague, family, friend (but not foe or competitor … FOAF is definitely about being friendly!).

FOAF has an RDF format, but examples, both in practice … and in the XMLNS RDF specification, are not full of “rdf:about” links as are typical RDF documents. This is because, while people clearly do have unique identity, there is thankfully no URI scheme that uniquely and universally defies us3.

In practice FOAF says things like “there is a person whose name is John Doe”, or “the blog VirtualChaos is by a person who is a friend and colleague of the author of this blog”.

In terms of identity this is a blank node “the person who …”. The computational representation of the person is a placeholder, or a variable waiting to be associated with other placeholders.

In terms of phenomenological attributes, the values either do not uniquely identify an individual (here may be many John Doe’s) and the individual may have several potential values for a given attribute (John Doe may not be the body’s only name,and a person may have several email addresses).

In order to match individuals in FOAF, we typically need to make assumption: while I may have several email addresses, they are all personal, so if two people have the same email address they are the same person. Of course such reasoning is defeasible: some families share an email address, but serves as a way of performing partial and approximate matching.

I think to the semantic web purist the goal would be to have the unique personal URI. However, to my mind the incomplete, often vague and personally defined FOAF is closer to the way the real world works even when ontologically there is a unique entity in the world that is the subject. FOAF challenges simplistic assumptions and representations of both a phenomenological and ontological nature.

  1. Furthermore if you do not specify a key, RDMS are likely to treat a relation as bag rather than a set of tuples! Try inserting the same record twice.[back]
  2. For those who know their quantum mechanics RDMS records are like Fermions and obey Pauli exclusion principle, whilst RDF entities are like Bosons and several entities can exist with identical attributes.[back]
  3. As it says in The Prisoner “I am not a number” … although maybe one day soon we will all be biometrically identified and have a global URI :-/[back]

modelling entities and the history of ideas

A few weeks ago I was watching my friend Nad and some of his colleagues map out the key semantic entities for a domain ready for creating an open repository on the Talis Platform. Then this morning, by chance, I just came across an entry in the Portland Pattern Repository on “Stars: A Pattern Language for Query Optimized Schema1. This described a form of entity relationship modelling where one identifies “while business entities” (key business things like transactions) and then ‘dimensions’ that relate to them looking specifically for “people, places and things” … and time as a special case. The idea is that information about, say, a product, a customer or a salesperson tends to be scattered in different tables, linked at best implicitly by shared values (e.g. , a product code.) which may not actually be the key to any specifoc table. By giving these key entities their own tables, the linkage between them becomes obvious and queries are easy to form.

This sounded just like the focus in Semantic Web ontologies on having a shared set of classes and a unique identifier for entities in those classes to enable “linked data”. In SemWeb we have a class and the entity URI, but serving the same goal as the table and row key did in the “Stars” pattern, more than a decade ago.

However, this then reminded me again of the similarities between current ontologies and Extended Entity Relationship Models which were popular at least 20 years ago (I recall colleagues at York using this in the Aspect IPSE project2 in the Alvey programme). There were variants of EERM, but key concepts were (like standard ER) to have relationships explicitly defined – usually in tables containing ONLY foreign keys, and (unlike standard ER) to allow sub-typing/sub-classes (e.g. person > employee > academic). Like Semantic Web ontologies, the relationships were reified into tables and became first class, unlike SemWeb, ternary and higher order relationships were allowed, not just binary ones.

I was half way through writing Nad a mail with the Stars link, and was referring to the EERM and did a Google to find the correct acronym … and then that mail turned into this blog, partly because it was getting long and partly because it was so hard to find good references to EERM. There was no Wikipedia page, minimal entries in a few online dictionaries and even hard to find good paper references. The best link seems to be a 1994 book by Martin Gogolla3, but that was at least 8 years after I knew it was popular, but I guess when it had become stable. A bit more Googling unearthed a 1986 Computer Surveys article4 (whch I could NOT find using “extended entity-relationship model” in ACM DL’s own search) and eventually a 1981 paper5, although I’m not sure the latter uses the term in the same way as later EERM.

It was interesting and alarming to find, yet again, how difficult it is to find certain things in the web even in computing… like anything that happened more than 10 years ago! Some of this is to do with effective searching (like the ACM DL search), some because it is not there. However, as we rely more and more on online search, the recency effects produced by combinations of search ranking and availability can only get worse. This feels more like the attributes of pre-literate culture … the new digital stone age?

  1. also reported in: Peterson, S. 1995. Stars: a pattern language for query-optimized schemas. In Pattern Languages of Program Design, J. O. Coplien and D. C. Schmidt, Eds. ACM Press/Addison-Wesley Publishing Co., New York, NY, 163-177. [entry@ACM DL][back]
  2. Hitchcock, P. 1989. The process model of the aspect IPSE. SIGSOFT Softw. Eng. Notes 14, 4 (May. 1989), 76-78. DOI= http://doi.acm.org/10.1145/75111.75120[back]
  3. M. Gogolla. An Extended Entity Relationship Model. Fundamentals and Pragmatics. Springer, Berlin, LNCS 767, 1994[back]
  4. Teorey, T. J., Yang, D., and Fry, J. P. 1986. A logical design methodology for relational databases using the extended entity-relationship model. ACM Comput. Surv. 18, 2 (Jun. 1986), 197-222. DOI= http://doi.acm.org/10.1145/7474.7475[back]
  5. P. De, A. Sen and E. Gudes, An Extended Entity-Relationship Model with Multi Level External Views, in Proceedings of ER’81, North-Holland, 1981, pp. 455-472.[back]

the electronic village shop – update and kit

I forgot last week when I wrote my post “the electronic village shop – enhancing local community through global network” that Fiona had mentioned a blog, Silversprite, from the Outer Hebrides that mentioned the flip side of this; in a post “Tesco comes to the Outer Hebrides“, he mentions the potential conflicts between Tesco online and village shops. It is interesting that Tesco does not itself deliver direct, but you can give a local delivery firm as your drop off point and they do the last leg of the delivery … of course this delivery point could be the local shop!

I also remembered after that some years ago (2002) I had an email enquiry from someone who had found a reference to the electronic village shop in one of my talks. He was wondering how to revitalise his own village shop which was about to close and asked if I had any advice. The following is edited version of my reply where I pondered on what was possible as a single shop without buy-in from one of the big franchise chains:

Continue reading