Saturday, April 4, 2009

Separating form from content

In a previous post I highlighted a video showcasing some experimental wearable Technology. One of the features in this video was that a person picked up a product from the shelf, scanned it, and received some information (green, yellow, or right lights) indicating whether the product was environmentally friendly.

A friend asked:

The thing that interests me the most about this is the impact it will claim to have on shoppers' ability to make more eco-friendly purchasing decisions. Where will the database be kept? Does it already exist? Also wondering how companies would be held to objective standards about the environmentally friendly nature of their products. Are there standards already in place? Will the database include packaging environmental impacts?

The important thing to recognize about the gizmo in the video is that it is not an information creator. It is simply a display device. In the current web 2.0 world, it's important to recognize the separation of form and content.

Essentially, the device consists of a wireless receiver, a camera, and a projected screen. All computers and computer-like devices require three basic components: input, output, and data. They've gotten more complicated over time, but they can still be best understood as variations on those basic components.

As a kid in 1982, I had an IBM PC 8086. For output, it had a screen that would display only four colors (red, green, blue, and of course black), and it had a speaker that could generate various pitches of annoying beeps. For input, it had a keyboard that made loud solid clicky noises; no mouse. It also had no hard drive. All data was stored to 5-1/4" floppy disks, which would turn on a red light when writing and produce an audible "kachunk kachunk" noise.

Many of my friends had Atari 2600s. Ataris didn't come with their own screen or speakers of course; instead, they had a dongle thingy that would plug into a standard TV and provide output. Input was limited to a joystick that had one button and four directions, which are not sensitive to the level of force you apply. Data was in the form of interchangeable cartridges. You could not save the state of your games; your progress only existed in memory while the console was on.

Now the components for a high end gaming system are getting more and more elaborate, especially with high end games: output includes complex 3D graphics and digitized sound, while input may include mouse, keyboard, camera, gamepad, and a microphone. Game files (data) take up several gigabytes, sometimes read from your hard disk and sometimes directly from a CD. Saved games may take several megabytes.

But something else is happening too.

The most important aspect of this is the internet. Thanks to the internet, the data component has shifted away from individual computers and onto servers that can be accessed from anywhere in the world. I don't have to be actually at my home computer anymore to look up some important information that's saved in an email. I don't have to be holding a physical copy of "Consumer Reports" in my hand to check out a product rating.

At the same time, wireless devices -- basically a fancy method of receiving additional input -- are infiltrating everything. We've got wi-fi hubs popping up all over the place, in coffee shops and restaurants and airports and malls. If you're not near a hub and you're willing to pay extra (I'm not yet), your cell phone will pull down an internet connection from satellite. And they're coming up with new methods to connect people, like Mobile Ad Hoc Networks, which can turn a room full of people with wireless devices into a grid of amplified signals.

So, how does the device in the video generate the information about environmental products? It doesn't. It doesn't take up space in the device's memory. It comes from the internet, from sites that are maintained by someone else.

As I envision the guts of this device, you probably install a minimal amount of middleware -- software which "knows" where to get raw data from and what is the best way to display it. The database that keeps track of individual products would probably be very large, but that needn't concern you, any more than the inner workings of your favorite web pages concerns you. You ask for a specific piece of information -- what is THIS product? -- and that gets interpreted into a web request, and the server sends it back as a stream of formatted information, to which the middleware then adds some graphical bells and whistles, for the display.

So then the question is, where does the environmental information come from? Does it already exist now, or is it just a fantasy from the video?

Well, yes it does, I think. I'm not real up on this stuff, but I googled around and came up with this and this. The data may not yet be formatted in a way that is useful to a mobile device, but the information exists in some format. If nothing else, somebody could easily write a program to scan the web page and throw out most of the HTML, pulling out only relevant information and turning it into a graphical display.

So the remaining question is: what is the standard for this information? Are these sites reliable? Well, that's up to you to decide. The main thing that has been accomplished by web 2.0 is that many competing organizations can generate this sort of content in a standardized format. Whether you trust the information depends on whether you trust the organization that generated it.

I can understand the suspicion if it is, for instance, a government agency that is known to have been strongly influenced by a political agenda. Likewise, if it's a corporate site, and the corporation is influenced by advertising dollars. But there are also consumer advocacy groups with a reputation to uphold. And while I am not a pure capitalist by any means, this really is a case where if there's a strong enough demand, the market provides what you want. "The market" in this case may be profit driven, or it may just be a bunch of activists who want to make this data available to further their agenda. Whatever the case, it's likely that you can find the data you're looking for.

The bottom line is that technology is a tool for getting at the information that already exists, or can be created. It gives you quick access to the same data from anywhere in the world.

I don't think the device shown in the video is perfect. After having some discussions about it, I think that waving your arms around is a clunky and tiring way to interact. I bet the screen is hard to read in a brightly lit area. That's not the point, though. The point is that it's becoming easier to apply technological solutions to pull in information about the world around you, and get back useful background information that's not immediately obvious to your senses.


  1. I could certainly envision a device like this being able to harness the same type of power as the iPhone's App Store, in that people might create downloadable applications onto their phone that can easily track the type of information that YOU want to access and project onto the toilet paper/book/human/etc.

    That is to say, when I saw the video I got the feeling that the simplest thing to do would be to allow consumers or developers to tailor the type of data retrieval and analysis that they would want out of the device, instead of leaving that all on the shoulders of the device and its programmer.

    So if you want your book ratings to be projected from or from your local church's banned book list, you could create or download an app to your phone that would easily get that specific information for you, which could be accessed once the Sixth Sense device scanned that copy of 'Ritual Sacrifice For Dummies' in your hands.

  2. As I envision the guts of this device, you probably install a minimal amount of middleware

    It's not clear from your paragraph where this middleware should be installed. The way I envision it, there are three parts: the information you really want (product ratings etc.) is out there on the web somewhere. The middleware that knows where to find the information and how to format it is on your server at home. And the wearable device serves (almost) purely as an I/O device. Kind of like the way the MP3 player in my living room works: it's just a box with an LCD display, an ethernet jack, an MP3 decoder, and an IR receiver. When you point the remote at the device and press a button, it sends a request to the server (in another room) saying "Button #9 was just pressed. Tell me what to do"; the server does everything, including animating the scrolling display.

    If the wearable device follows a similar model, it doesn't know anything about product reviews or gesture recognition or anything. If you arrange your fingers in a square in front of the camera, the device just sends coordinates of the four colored dots to the server at home and awaits a reply. The server at home then has to figure out that those dot positions form a square, and that that means "take a picture".

    Of course, given network delays and such, it's probably necessary to do some amount of preprocessing in the wearable device, but this should be minimal.

    PS: if you ever decide to talk about pointers, pointers to pointers, etc., you might find Lewis Carroll's "The name of the song is called 'Haddocks' Eyes.'"" to be a useful analogy. Or not.

  3. Arensb,

    At minimum, the computer needs a web browser capable of displaying HTML. So that's some of the middleware right there.

    Beyond that, I'm not sure what it needs to do. Obviously this isn't a conventional browser, because it doesn't have an address bar or forward and back buttons. When you scan the UPC, that's not sufficient information to determine what you're looking for. You might be looking for environmental feedback, or just product reviews, or you might be after information about the manufacturer.

    In any case, you need to have some software installed that knows your intentions, just so it can know WHICH database you're looking for. (The EPA's?'s?) From there, the web servers can probably decide whether you want a screen full of text, or just colored bubbles.

    Of course, given network delays and such, it's probably necessary to do some amount of preprocessing in the wearable device, but this should be minimal.

    Seems to me that the information transfer is pretty simple:
    1. Scan bar code, turn it into a simple UPC string.
    2. Send UPC to desired site.
    3. Read back display data.

    Regarding pointers: My favorite example when I used to teach was setting pre-tuned stations on your radio. I can't always remember that my favorite rock station is "102.1", but if I always preset my radio so that station 1 = "rock" and station 6 = "NPR" (which I do) then I only have to find the frequency once after each time I move to a new area.