Archive for December, 2006

more conferences

December 19, 2006

Busy week! On Monday/Tuesday/Wednesday I went on-call for Google Earth. Fortunately nothing much went wrong (that wasn’t of my own doing). We now have very cool Wikipedia integration, and have connected the app to a database of location photos. Sweet!

On Wednesday morning I got up at 5:30 to give a presentation on autopackage to the LSB meeting in Berlin. Unfortunately I wasn’t able to stick around and hear feedback. On Wednesday evening I flew out to Oregon for the OSDL Desktop Architects Meeting. This was a combination of cool and depressing. Cool things: meeting Paul Davis of the Ardour project at last. Uncool things: hearing (and speaking about) a litany of essentially unsolvable problems with the Linux desktop. Breakout sessions supposed to target these things came back with the conclusion “cannot or will not be fixed”.

It seems now that as desktop Linux has matured, all the easy problems have now been solved, leaving only the hard ones left. 3D composited desktops? Easy. Desktop search engines? Easy. Solving the 3rd party driver problem? Hard. Solving the problems ISVs have? Hard.

To me, this says a lot. The remaining problems discussed at DAM 3 are not, in fact, technical. They are all social. Hardware manufacturers don’t want to wait a year before people can use their hardware, but the kernel developers won’t compromise (even for open drivers). Distros don’t want to “ossify” the platform by leaving old libraries in the base install sets, but ISVs don’t want to port apps between each distro release. Audio developers still can’t agree on a simple way to solve audio mixing, but it’s considered a basic feature the desktop must have.

The list goes on and on. The amount of time spent discussing print dialogs, of all things, was astonishing and disturbing – zoomed in so far the big picture becomes lost, it seems the more insignificant the problem the more community brain cycles it takes.

But there is a bigger point, that I thought about bringing up at the end of the meeting but then didn’t have the heart to do so.

If every hard problem discussed at DAM 3 was to be somehow magically solved by tomorrow we would at best have created something competitive with MacOS X. However, MacOS X is not at all competitive.

Have you ever wondered why Apple has no competitors in the integrated-hardware-OS space? It’s because it’s a fundamentally insane business to be in. Nobody in their right mind would want to produce something like the Mac today. The expense of implementing a desktop OS from scratch is mind-blowing. The risks of losing ISV support are terrifying. Most of all the rewards are too small.

I say the Mac exists only because Apples history requires it to exist, because Jobs requires it to exist, because Apples shareholders require it to exist. It doesn’t exist because it actually makes sense, as a project.

But how can I say it doesn’t make sense? Hasn’t MacOS had a huge impact? Is it not potentially the inheritor of the Windows throne?

I don’t believe so. MacOS X is no longer the new and hopeful youngster it once was. No longer can it claim to be a serious challenger to the Windows desktop. It’s now been years since it first came out, and its main achievement has been to keep the Mac platform alive. It has failed to win significant marketshare, it has failed to truly revolutionise computing (sorry but I don’t consider 128×128 icons to be a revolution), most damningly of all it’s completely failed to gain traction in business and as a result, the size of its userbase remains tiny and inconsequential.

Windows has won, completely and utterly. It has fended off two challengers with key advantages it couldn’t match: in Apples case, seamless hardware/software integration combined with a fresh start. In the case of Linux, the open development model that made financial failure impossible and broke the catch-22 of “where does the software come from?”. In both cases, those advantages were not enough. Windows remained and even extended its lead, despite simultaneously stagnating as a project.

How did that happen? Put simply, people always over-estimate the importance of something new and always under-estimate the cost of removing something old. A software ecosystem is like a pond. If you keep draining it to clean the water, you’ll kill most of the fish swimming in it. Those fish will never breed and so the fish population will never expand. This is the problem Linux has today – the constant churn massively increases support costs for a Linux port. As a result, many companies decide not to bother (sometimes even after they did the work of producing the port!), and so there aren’t many ISV applications, and so it always seems like the cost of yet another API break is minor. It’s a self-fulfilling prophecy.

Apple are trying to drain the ocean. By creating an alternative to Win32 and asking developers to use it, they are throwing out the old and replacing it with ….. something pretty much the same. C++ changes to Objective C, CWindow changes to NSWindow, but ultimately the bread and butter of desktop applications doesn’t change. It’s still boils down to putting widgets in windows. This then is the key to their failure: the benefits of the Mac are trivial and the costs of moving our infrastructure to it are enormous. No matter what Apple might like to believe MacOS is not a big enough leap over Windows, it’s not revolutionary enough to justify rewriting all that software and retraining all those people. Neither is Linux, hence our problem.

You could argue that the goal of “Linux”, whatever that is, is simply to be free and not to necessarily be an improvement. RMS would argue that. It’s a fine argument and a fine position to take, but it makes OSDL and the DAM meetings pretty much irrelevant because they are focussed on solving practical usability problems. It also means you can’t ever complain when your laptop fails to suspend or some cool new app comes out that you can’t run.

To stand a chance of displacing Windows, you must build something fundamentally better. Not a little bit better, not even a lot better. Something fundamentally better. For a certain class of programs web apps were fundamentally better and over time huge amounts of software were indeed rewritten on top of the browser. That never happened for operating computers as a whole though. So … what might such a thing look like? Well, it’s not likely to be an installable operating system. More likely, it’ll be some new kind of computing device based on many of the technical innovations of the past 20 years – digital paper, 3D mice, provable type systems, whatever. I don’t know what it might look like. But when a significant number of people own both the new device along with a Windows based PC, and never think anything of it, you know you’re winning.

olpc is genius

December 10, 2006

If you haven’t done so already, go read the OLPC HIG now. I swear to God, this document is a work of pure, inspired genius. Will it work? I don’t know. But if you have an ounce of interest in your body for design, you will admire their balls and creativity.

This UI is quite simply one of the deepest and most interesting redesigns of the desktop user interface ever produced. It makes MacOS look like what it is – boring and unoriginal. The list of things this UI gets right is so long it makes my head spin:

  • It actually uses Fitts Law effectively. Compare that to Windows/MacOS/GNOME/KDE which basically do nothing with the 4 corners of the screen (maybe you can set a corner to activate the screensaver or something similarly rare).
  • Network and presence is fully integrated into the core of the design
  • They threw out the clipboard and replaced it with something that doesn’t suck
  • They junked 2.5D, which is something that regularly confuses less technical types or people who are older and haven’t grown up with WIMP style ui (notice how many Windows users have every window maximized all the time and simply use the taskbar to switch between active tasks).
  • They junked the address bar. You can still type in URLs but now it just shows you the title of the page. I want them to make anything you type in here go to a search if it doesn’t parse as a URL – Firefox almost but not quite gets this right. Given that nearly all the top queries on Google are the names of websites, it’s quite clear that huge numbers of people still don’t understand the address bar and the structure of URLs despite them being everywhere around us. Usability studies done on web browsers also confirm this. And who can blame them? URLs not only have a stupid TLA as a name, they are full of weird punctuation and bizarre acronyms like “http”, “www”, “com” etc.
  • The Bulletin Board sharing concept is marvellous – a single, simple idea can be used to not only keep track of your own work, but to share it with others, and review/collaborate using spatial comments.
  • They junked open/save – wow, it only took like 15 years! The “Journal” acts as a temporal log of major things you do with the laptop, allowing for easy rewinding of any particular object (file/document) or even the state of the whole machine. The filing system is of course fully versioned. The Journal can even be used to track progress on a particular project or piece of work.
  • Process vs document has been cleaned up – every document is a separate instance of an activity (application) in the UI. This means an end to the confusing separation between “running application” and “document within that application”, the legacy of which still haunts us to this day.
  • Icons transmit information, and are SVG only. Basic activity icons are simplified to monochrome black/white icons. Once started, they are filled with the childs unique XO colour that represents them in the mesh. Therefore an instance of an activity can always be linked to who started it (assuming the users pick unique colours for themselves and aren’t totally colourblind like me). That’s a neat way of further integrating presence with the system, at the cost of reducing the visual attractiveness of the system significantly. Given that a lot of the time the screen will be in the black/white outdoor mode though, it probably makes sense.
  • Application bundles can be signed by whoever works on them – because there is a “view source” key on the keyboard, anybody can modify an app and distribute it. Some bundles can be signed by official authorities as a mark of trust. Signing or watermarking is used to keep track of the history of the object, allowing credit to be given. Officially signed bundles automatically update across the mesh, allowing updates to be distributed virally through a mix of the mesh and the sneakernet. There is no notification a bundle has been updated – it just happens behind the scenes. There is no explicit software installation, instead joining an activity found via the mesh will download it automatically.
  • However, writing viruses for this thing will be much harder if Ivan gets his stuff right (and I think he will), because the security model is totally different – bundles have a very limited but fine grained set of permissions. For instance a bundle cannot trigger a global/system notification. In other words the old user vs root security model has also been dumped.
  • The keyboard is adapted to the UI. They need to be careful with this – one of the buttons has a picture of lips and eyes, which I believe are considered offensive in some cultures. There is a “view source” key (overloads +=) that lets you see under the hood. There are analog slider keys for things like volume, etc. They removed caps lock (hurrah). I think they could have gone further with this, for instance, the “alt gr” key still exists. It has a legitimate use here but the label is still rather questionable. The trackpad area can be used both as a regular trackpad/mouse input and also as a graphics tablet (it’s much wider than a regular trackpad for this reason).

The HIG is not finished and significant work remains (eg widget definitions). Still, what’s there is fantastic. The existing computer design we use has changed only a bit since the Xerox PARC days, and OLPC is breathing some fresh air into the space. It could be a complete disaster, we won’t know until it’s been tried, but at least they are trying.

Incidentally I have now seen an actual laptop in real life. They are quite cute, much smaller than a regular laptop, though there were quite a lot of random holes/buttons/etc on the laptop that I think they should cut down on.