This website is now archived. To find out what BERG did next, go to

Widgets, widgets, everywhere

There’s been rather an explosion of desktop, mobile, browser and Web widgets. Recently, too, I was groping round the idea of web apps situated outside the computer–but not getting very far. Then I was chatting over email about the Chumby, a cute, carryable, dedicated widget platform… and situated web apps ideas finally locked into focus:

Widgets embedded in everything.

My camera, video camera, phone, mp3 player, TV, DVD player and car stereo all have embedded electronics, a control surface and a display. My washing machine and oven have micro-controllers and an interface–I don’t know whether my house thermostat is electronic, but it could be.

In short: I am surrounded by objects which do things, all with embedded computing and screens. What if I could run whatever applications I wanted to on them? What if, let’s say, each of them was a widget platform, allowing code upload and exposing a hardware API to all sensors and controls?

Hardware as an open platform

If I was a pro-am photographer on a month-long safari shoot, I could grab a custom camera interface from the Web, set up to provide easy-access presets to the light and movement conditions I’d face. I’d repurpose a couple of the external buttons to twiddle parameters in the presets, and have a perfect wildlife interface for four weeks. At home, I’d revert to the general purpose interface or get another one.

If I could sell widgets for compact cameras, I’d sell one that was specially made for nights out. It’d assess the conditions and get the best possible picture given the dark, the necessity of taking a quick shot, and the inability of the drunk person holding the camera to stop swaying.

I’d have an interface on my washing machine that had only the single setting I use. I’d load and set the machine early in the morning or late at night, and it’d then display a red, flashing “ready to go” button that I could slap on my way out of the house, after my morning shower. Perhaps it would use the hardware API to the pressure on the water intake, to refuse to start if the shower was in use.

My TV would use its video buffer and the remote control API to give me a dedicated “record this advert” button.

Hey, maybe I’d even hack my vacuum cleaner and have it fight.

Why can’t I write widgets to run on everything in my pockets and everything in my home? I don’t really mean home automation–I mean using the existing control surface to interface with the hardware in a way that I chose.

I want to download widgets off the Web, scan barcodes with my oven to share recipes with my friends on last.microwave, and hard-code my radio to never miss Radio 4 comedy. This is what I mean about 3C products tapping into creativity, community and connectedness, by the way.

What Nikon should do

Professional Nikon cameras aren’t doing so well against Canon right now. If I were Nikon, I’d document the hardware API to the camera files, the jacks, the display and the controls, stick Bluetooth in it, and throw the camera open as a software platform. Then as a professional purchaser, I’d have a significant decision to make: Do I put down a year’s purchasing power on a Canon, and risk having a Nikon-owning competitor later creating an interface that makes them twice as effective… or get a Nikon so I never get left behind?

Embedded widgets are already here

We already have widgets in some things, of course. My Nokia N70 runs Python, which now has the ability to intercept and send SMS, run full-screen apps, and is provided with APIs to the camera, calendar, contacts, the internet and more. That the small Python app can bridge the hardware API with all the other APIs on the internet, using the existing display and keys, is what makes this so powerful.

Here’s another data-point: The Canon imageRunner series of networked copier/scanner/printers have what they call Java MEAP: A platform to write and run your own apps on the copier. (Thanks Simon Wardley for alerting me.) As this MEAP interview says:

It’s not so difficult to include a variety of useful functions in an application so that anyone can use it. Yet, as user requirements vary widely, the application becomes bloated, impairing its operability. … Users can replace the applications as their needs change and enjoy simple operation.

Exactly. Products made for everyone are complex! Let all of us help out to design them just for our friends. Canon’s doing it for workaday, now give me everyday.

Before this:

5 Comments and Trackbacks

  • 1. Trevor F. Smith said on 27 November 2006...

    You may be interested in PARC’s recombinant network project (aka Speakeasy and Obje). The first paper to read is here:

    The (ancient) project page is here:

    The folks to see about the topic are Keith Edwards (now at GA Tech) and Mark Newman (still at PARC).

  • 2. Walter Adamson said on 28 November 2006...

    Widgets for a Rainy Day

    “Japanese researchers have developed a unique hi-tech umbrella named “Pileus” which is Internet ready, has an integrated digital camera, built-in Wi-Fi plus an attached video projector.

    Developed at the Okude laboratory in Tokyo’s Keio University, the digitized umbrella can capture both still images and video and can automatically upload them to Flickr and YouTube respectively.”

  • 3. John Evans said on 28 November 2006...

    First let me say I really like the idea that I can easily get into the workings of something and modify it for my own use, and I think what you laid out here covers something I have also been considering for some time now.

    However the idea of everyone being able to hack their electronics is a pretty exclusive one. The echo chamber of the net and our own design community perhaps leads us down the wrong road to the right conclusion.

    In your example Nikon would not only have to document their cameras internals, they would also need some sort of platform for development that is easy to use, which would be a lot of work and probably a big stumbling block. Pointing to your Python example, whilst it might be ‘easy enough’ to get started it is still quite difficult to create something of purpose because the tools for creation are embedded with the mindset of programmers and engineers. We all know what happens when they get to design the user interface for something, which is essentially what something like Python is, its the UI to the hardware and data, it just takes a different form from what we think of as UI.

    I really admire the approach Apple has taken with its widgets and Apple script, but taking a second to examine both one can see Applescript for all its power and legacy never really took off in a meaningful way, its both hard to implement for the creators of applications and hard to grasp for users. Widgets however are a different story, they are simply web-pages, pretty web-pages with added functionality, the effort in creating a widget is directly tied to ones skill and effort. It is trivial to create a widget, and will become easier in Leopard. This means a lot of people have the base skills to create something, and soon anyone will be able to create something of use to themselves. Yet imagine how much work this has been for Apple.

    Ease of use/creation does not come cheap nor easy, it requires real work from the creator of these products, so whilst the idea of hackable everything is very appealing to us and others like us the real question is, is it feasible for the creators of products to empower everyone and not just a very exclusive subset of users?

  • 4. John Evans said on 28 November 2006...

    Typo above “the effort in creating a widget is directly tied to ones skill and effort” should read, “the effort in creating a widget is not directly tied to ones skill but ones effort”

  • 5. Matt said on 28 November 2006...

    John, you have a good point about the effort on the part of the manufacturers. In a small way, I’d point to the Web: It wasn’t long ago that Web APIs were regarded as a waste of time or hard to do. But it turns out building has an API has two distinct benefits:

    1. The backend and interface can be decoupled and iterated separately, allowing experimentation with the interface which may lead to a better product. (That comes from using the same API internally.)

    2. The apps and tools that a small community of enthusiastic participants create make the whole product more compelling. Look at Flickr for that.

    I know this isn’t quite the same as widgets, but each medium has its own system (plugins on the desktop, mods for games). Ease of use (that old term) is getting important in consumer electronics; I wonder how much of what you describe is already in demand by the internal interface groups? Perhaps some of these devices already use standard widget sets, I don’t know.

    I agree we’re still a good way from professional photographers having a base set of skills which can be transferred easily to making custom widgets for their cameras… but I think a good deal of the work in, say, an open knowledge, shareware approach to widgets is cultural. That’s possibly a harder leap for companies to make.

Comments for this post are now closed.

Recent entries from
Matt Webb

Popular Tags