Spikes, PHP and a Platform that just works

I’ve had a pretty good week. I’ve been totally engrossed in a project I’ve been working on since getting back from Xtech last week. Essentially I’ve been working on a spike with Andrew and Hardeep to extend the functionality in our Project Cenote concept car.

The purpose of the spike was two fold. Firstly to try to better understand how to build a funky new set of features into Cenote, and secondly to allow the members of the team become familiar with and experiment with some technologies that they aren’t familiar with.

In fact it felt quite good leaving work today, having gotten to the point where the little prototype is pretty much feature complete. What’s really impressed me isn’t necessarily what it does (which is cool!), but the speed with which we’ve been able to put it all together. The spike was timeboxed to two weeks, but the reality is that the bulk of the implementation has actually been completed within the last few days. It’s by no means a production system it’s just enough to hopefully facilitate some of the discussions we hope to have both internally and externally … much like the first release of Cenote, which we Open Sourced recently.

The original version of Cenote was a read only application that allowed users to search for books and then mashed up the results with data held in various stores in the Talis Platform as well as external sources such as Amazon in order to provide users with some pretty useful information. This spike extends the original version by allowing users to use that data to create and share some really useful things.

I think there’s some important reasons why we have been able to put this together so quickly. The technology stack has been kept very simple – its just an application built in PHP5, running under Apache 2. Furthermore the application is built upon our Talis Platform which is constantly evolving and becoming more and more powerful. I’m not saying that just as someone who has worked on building that platform, I’m actually saying that as someone who has been using and consuming it’s services primarily to build applications with it.

When Rob and I originally wrote Cenote, we were both impressed at how easily we were able to use the platform, as it was then, to put together a cool looking application in the space of a couple of days. If that impressed me at the time, then I’m doubly impressed at how simple it’s been to create an application that supports creation, deletion and updating of data.

Google New Experimental Search Features


Google have come up with a set of experimental new search features aimed at improving the search experience. I’ve been playing with them and have to admit they are really cool!

The first is the ability to view search results on a timeline or on a map. Google do this by extracting dates and locations from the search results so that the information can be viewed in a different way.

For example a search for Olympics, and specifying a map view plots the locations the event has been held in on a map. Whilst searching for information on the civil rights movement, and specifying a timeline view will highlight key dates and events on a timeline.

The next new feature, is the enabling of keyboard shortcuts to navigate around search results. After initially using this, I can’t stop! A small arrow is rendered next to a search result, pressing the ‘J’ key moves to the next results, whilst pressing ‘K’ moves to the previous. You can open a search result by pressing ‘O’ or just hitting enter. You can also press ‘/’ to have the cursor jumpt to the search box, whilst ‘ESC’ moves the cursor out of the search box. Try it for yourselves here, it’s really easy to use and if your like and means you dont need to use a mouse at all to navigate around search results.

Another new feature is the addition of facets to search results, ( which Google oddly refer to as left hand navigation? ). Basically the left hand pane lists a set of groupings, for example content type, patents, products, news etc. The left hand pane also list’s a set of related searches. Together both these bits of information allow you to narrow your search, in order to find whatever it is your looking for, hopefully, quicker. This feature is also available on the right hand side of the screen.

It’s encouraging to see that Google are trying very hard to improve search, not only by providing mechanisms that should enable ordinary users to get to the content they are interested in faster, but they are also thinking about how to improve the experience. The keyboard shortcuts, whilst on the face of it might look simple, actually increases your productivity because you don’t need to interact with a mouse at all.

I’m impressed.

Xtech 2007: Physical Hyperlinks

Speaker: Timo Arnall, Oslo School of Architecture and Design.

Some notes I made whilst listening to this talk.

Talk is about connecting the digital to the physical.


  • Things
  • places
  • people


  • Content
  • Applications
  • Services

Currently being driven by mobile phones technology, phones are fast becoming universal controllers.

Context Awareness is really hard AI, raises implications over choice. People like to be able to choose

Biggest driver of this technology is advertising and marketing – holy grail of advertising.

Taking services and things back to physical products.

Design for universal access. Finding more information about products for people with impairments.

Mimic graffiti by offering new ways of authoring.

Mobile devices increase social awareness but also narrow them down to a screen – which can be a very anti social activity. Physical hyperlinks an help get us back to interacting in the physical work instead of these tiny screens.

Everyday objects start to have agency and voice in the digital world.

Technologies that would allow us to achieve this:

  • Bluetooth, used increasingly for marketing and advertising. Posters in London allow users to download advertisements. Problems with Bluetooth: works at a large range, the interaction field is large and difficult to visualise, ideal platform for location spamming. As a user I want to be able to choose what I get, not have it pushed to me.
  • SMS, e.g. Yellow Arrow. Simple to implement, but requires users to read and type codes, relies on network and you have to wait for feedback which will not be immediate.
  • Barcodes. Everything has barcodes, they are truly ubiquitous. Designed to improve the speed and accuracy of data entry. They have become universal standards, they are so ubiquitous we dont notice them anymore.


  • Seen as a replacement for barcodes.
  • RFID doesnt work when theres metal around or liquids, currently problematic in practise.
  • Tag per item or per pallet?
  • Short range technology 10cm.
  • Interaction is quick, there is an immediacy.
  • Hold up to 4kb of data.
  • Two way information, get data from tag or write info to it.
  • Often break down when there is more than one tag in the same bubble.
  • Controversial because of privacy issues, but this might be unfounded.


Timo showed many examples of how Barcodes etc. QR Codes are used in real world applications. Infrastructure can now be setup using QR Codes this is an interesting way of delivering settings to devices (i.e. network access).

Urban Seeder, uses very complex visual codes, and relies on more sophisticated pattern recognition. Lovely in the way that most people would not recognised them unless they were in the know, this might mean that people start exploring, taking pictures of patterns to see if they contained a hidden meaning.

Some of Timo’s research has shown that people using these things on the street in Norway find that it can feel very strange to be interacting with smart posters etc. because its manifestly apparant that you are to everyone passing you by … users complained it felt like picking up litter, because you very exposed. Whereas RFID is much quicker. Is this local cultural ( norway ) or could it be a gobally cultural phenomenon.

Of all the talks I’ve listened to this morning, I must confess I enjoyed Timo’s the most. Find out more about him and his research here:


Xtech 2007 : Arrived in Paris

My fellow Talisians and I flew into Paris earlier this evening and managed to find our way, eventually, to the Novotel Paris Tour Eiffel hotel. After we checked in and freshened up we all met up in reception and wondered off towards the Eiffel Tower in search of somewhere to eat, and eventually found a lovely little restaurant where we spent the better part of the evening. It was a really pleasant evening, spent most of it laughing and joking, but also discussed what we wanted to try to achieve whilst we are all here.

The walk back to the hotel was really pleasant, in fact I remember an old friend once saying that the true soul of a city is revealed at night, and I did sense that was true of Paris, or perhaps thats just the romantic in me.

The conference doesn’t officially start until tomorrow but we are all pretty excited to be here. There’s going to be some very interesting talks on tomorrow and I suspect I’ll probably camp in Amphitheatre C for the talks on the Ubiquitous web. I’m not sure if the other’s have decided which talk’s they are going to sit in on but I have no doubt we’ll all be meeting many of the attendees here this year.

I’ll echo some comments made my colleague, and our newly promoted CTO, Ian Davis:

“So here’s the pitch from the new CTO: if you want to face the challenge of creating something world-changing; if you like the idea of a company that controls its own destiny and is small enough for you to change it; if you never want to stop learning; then I want to hear from you.”

“Come and find me at XTech this week, or grab one of the other 8 Talisians that are going and get the lowdown on what it’s really like to work here. If you can’t make XTech, then email careers@talis.com and tell them I sent you :)”

Creativity: the mind, machines and mathematics

Having one of those nice quiet weekends where I get to catch up on some reading and a few webcasts! Came across this really interesting debate entitled the mind, machines and mathematics. The event was held last November on the 70th Anniversary of Alan Turing’s1 seminal paper “On Computable Numbers“. The purpose of the debate was to discuss the question: “Can we build super intelligent machines or are we limited to building super intelligent zombies?“.

Photo: Donna Coveney. From left Ray Kurzweil, Rodney Brooks and David Gelertner

The participants in the debate are David Gelernter, Professor of Computer Science at Yale, and Ray Kurzweil, a prodigious inventor and author of “The age of intelligent machines”. The debate is moderated by Rodney Brooks, the director of MIT’s Computer Science and Artificial Intelligence Laboratory.

Kurzweil takes the position that machines will achieve a level of human intelligence, whilst Gelernter takes the opposite anti-cognitivist stand point. I guess it’s not surprising that the key point of contention was defining consciousness, or actually whether it could be defined.

For example, Kurzweil makes the point that: “there is no consciousness detector that we can imagine creating … that doesn’t have some philosophical assumptions built into it.” to which Gelertner insists, perhaps rightly, that “you can’t possibly understand the human mind if you dont understand consciousness“. Listening to them argue about consciousness I chuckled as I was reminded immediately of a passage from the beginning of Dennett’s Consciousness Explained, which I plucked off my bookshelf and have transcribed parts of it here ( taken from the opening couple of pages of Chapter two: Explaining Consciousness):

Human consciousness is just about the last surviving mystery …There have been other great mysteries: the mystery of origin of the universe, the mystery of life and reproduction, the mystery of time, space and gravity. These were not just areas of scientific ignorance, but of utter bafflement and wonder. We do not yet have the final answers to any of the questions of cosmology and particle physics, molecular genetics and evolutionary theory but we do know how to think about them. The mysteries haven’t vanished, but they have been tamed … we know how to tell the misbegotten questions from the right questions, and even if we turn out to be dead wrong about some of the currently accepted answers, we know how to go about looking for better answers.

With consciousness, however, we are still in a terrible muddle. Consciousness stands alone today as a topic that often leaves even the most sophisticated thinkers tongue-tied and confused. And, as with all the earlier mysteries, there are many who insist – and hope – that there will never be a demystification of consciousness.

Dennett’s book is a wonderful read but its one of those texts that you have to persevere with since it can be fairly inaccessible, lets face it he combines psychology, philosophy, neuroscience along with many other areas of research so its small wonder some readers struggle with it. In fact I vividly recall one of the undergraduates on my AI course, years ago, who grew rather frustrated with it describing it as a head fuck. Which may not be entirely unfair …. anyway I digress … 🙂

During the debate Gelernter goes on to argue that building a conscious mind “out of software seems to be virtually impossible“, since software by definition can be taken from one computer to another, “peeled off“, can be ported from one platform to another and run in a “logically identical way on any computing platform“, but “the mind cannot be ported to any other platform or even to an instance of the same platform“, and whilst consciousness is an emergent property running hugely complex programs with billions or trillions of processes but there is no reason to believe that consciousness would or even could emerge.

Kurzweil, rather optimistically perhaps, went to point out that “that’s because were thinking of software as it is today“, since information technology is expanding exponentially and continuing research into the human brain is revealing more about brain chemistry and neural functions. I guess the point he wanted to make was that a biological brain shifting chemicals around isn’t really that dissimilar to a computer that shifts symbols? Which is a pretty valid point since Gelernter also stated that “we don’t have the right to dismiss our of hand the role the chemical makeup of the brain plays in creating the emergent property of consciousness“.

Invariably any discussion on consciousness leads to the question of spirituality, which Gelernter defined as a “thirst for the living God” and he asks, and answers, the equally inevitable question, “can we build a robot with a physical need for a non -physical thing? maybe but don’t count on it. And forget software.

I did laugh out loud when Gelernter offers an answer to the question whether super intelligent conscious machines are desireable?

I think it’s desirable to learn about every part of a human being. But assembling a complete artificial human being is a different project. We might easily reach a state someday where we prefer the company of a robot from walmarts to our next door neighbours … but its sad that in a world where we tend to view such a large proportion of our fellow human beings as useless we are so hot to build new ones! In a western world that no longer cares to have children at the replacement rate we cant wait to make artificial humans – believe it or not but if we want more complete fully functional people we can have them right now, all natural ones, consult me afterwards and I’ll let you know how its done

I could provide a blow by blow account of the entire debate, but I won’t 😉 I think you should watch it,enjoy it for yourselves, and form your own opinions. What I will say though is that It’s a wonderful little debate and the speakers are both engaging and seem to endeavour to inject a fair amount of humour into it which makes this a really entertaining and informative discussion to watch.

  1. AlanTuring.net, http://www.alanturing.net[back]

We listen but will we ever understand?

The ink of the scholars is worth more than the blood of the martyrs

The Prophet Mohammed (PBUH)

I wonder if the prophet would have imagined a time when Islamic scholars would, themselves, put an end to scholarly exploration, investigation, innovation, or even criticism? Have elements both within the Islamic faith and outside of it succeeded, so completely, in polarising opinions and distorting our faith to the extent where we no longer recognise who we are or what we are becoming … as we, all of us muslim and non muslim, are forced to march inexorably to our doom.

100 Web Apps for everything you’ll ever need?

Came across this earlier, its a list of the 100 web apps for everything you will ever need. When I consider some of the recent things I’ve written about this idea that applications are moving away from the desktop and delivered primarily over the web, then this list serves to illustrate how wide ranging web based applications are becoming.

The list organises the applications into a set of categories

  • Organisational
  • Calendars and to-do Lists
  • Your Money
  • Project Management & Productivity
  • Storage
  • Writing and Design Tools
  • Security and Privacy
  • Mobility and Contact
  • Meeting and Networking
  • Business and Legal
  • Client Contact and Feedback
  • Website tools
  • Printing and Packaging
  • Tools to give and take
  • Miscellaneous

In addition to the examples on this list there’s other pretty useful applications out there. I’ve been playing around with SnipShot, which allows you to upload images and edit, adjust them online. It doesn’t provide the full functionality of PhotoShop, but it is very simple to use and integrates with Flickr making it far more valuable as a tool than if it worked in isolation.

That’s the real strength of Web based applications? The ever increasing ease with which they can be integrated and used together?

The Hollow Men


We are the hollow men
We are the stuffed men
Leaning together
Headpiece filled with straw. Alas!
Our dried voices, when
We whisper together
Are quiet and meaningless
As wind in dry grass
Or rats’ feet over broken glass
In our dry cellar

Shape without form, shade without colour,
Paralysed force, gesture without motion;

Those who have crossed
With direct eyes, to death’s other Kingdom
Remember us — if at all — not as lost
Violent souls, but only
As the hollow men
The stuffed men.


Eyes I dare not meet in dreams
In death’s dream kingdom
These do not appear:
There, the eyes are
Sunlight on a broken column
There, is a tree swinging
And voices are
In the wind’s singing
More distant and more solemn
Than a fading star.

Let me be no nearer
In death’s dream kingdom
Let me also wear
Such deliberate disguises
Rat’s coat, crowskin, crossed staves
In a field
Behaving as the wind behaves
No nearer —

Not that final meeting
In the twilight kingdom


This is the dead land
This is cactus land
Here the stone images
Are raised, here they receive
The supplication of a dead man’s hand
Under the twinkle of a fading star.

Is it like this
In death’s other kingdom
Waking alone
At the hour when we are
Trembling with tenderness
Lips that would kiss
Form prayers to broken stone.


The eyes are not here
There are no eyes here
In this valley of dying stars
In this hollow valley
This broken jaw of our lost kingdoms

In this last of meeting places
We grope together
And avoid speech
Gathered on this beach of the tumid river

Sightless, unless
The eyes reappear
As the perpetual star
Multifoliate rose
Of death’s twilight kingdom
The hope only
Of empty men.


Here we go round the prickly pear
Prickly pear prickly pear
Here we go round the prickly pear
At five o’clock in the morning.

Between the idea
And the reality
Between the motion
And the act
Falls the Shadow

For Thine is the Kingdom

Between the conception
And the creation
Between the emotion
And the response
Falls the Shadow

Life is very long

Between the desire
And the spasm
Between the potency
And the existence
Between the essence
And the descent
Falls the Shadow
For Thine is the Kingdom

For Thine is
Life is
For Thine is the

This is the way the world ends
This is the way the world ends
This is the way the world ends
Not with a bang but a whimper.

by T.S. Eliot

Google Tech Talk: Away with applications: The death of the desktop

The computer desktop metaphor is ubiquitous, but how much work do we get done there? None! … all Time is entirely wasted navigating or shuffling content to the application in which we can finally work. What lessons can we learn from designing interfaces without the desktop and without applications? Is it even possible? And how does this apply to the Web? Currently, Web applications are often more usable than their desktop-based counterparts because each one does one thing and does it well.

Aza Raskin gives this excellent talk which is really about human computer interaction and usability. For those who don’t know Aza is the son of Jeff Raskin the guy who started the Macintosh project at Apple.

Aza’s offers some very useful views on User interface design, he touches on GOMS Models, Cognetics, Habituation in a wonderfully easy to follow manner. In this talk he outlines how we can get rid of the application centric model which comes from the desktop design paradigm in order to free functionality that can be made accessible using a ZUI along with a universal method for accessing functionality.

Applications are like walled cities that hoard their functionality, but we need to give that functionality away so others can use it wherever they are. But to facilitate this Aza argues that we need a universal access interface. Web services give you a separation between the UI and the Data but up until now services are really available to developers, they’re not really intended for end users but can we expose them through CLI’s?. He proposes a synthesis between GUI’s and CLI’s and from what he says they’re having a great success some of the examples he shows are compelling. I for one can see the value of this. In fact we’ve already put it into practise about six months ago.

You see this was something Rob and I thought about when we developed Project Cenote, one of the features of the user interface is that the browser’s URL line is an interface in its own right. For example if you type this into the url line:


And the application will perform a search for all items that were authored by “gemmell”. So if your like me and you just want to get to the content your interested in you can use this as opposed to navigating around the site and entering search terms into a search box. It is basically a Command Line Interface, and I think this is a wonderful way of giving end users access to content without necessarily forcing them to always use a GUI.

I was amused when one Aza paraphrased Asimov’s Three laws of Robotics into Raskins Rules of Interfaces:
1. An interface shall not harm your content or, through inaction, allow your content to come to harm.
2. An interface shall not waste your time or require you to do more work than is strictly necessary.
3. An interface shall not allow itself to get into a state where it cannot manipulate content.

This is a great talk to listen to and full of some very useful tips.