Sunday, November 7, 2010

Starting a New Thing

I just bought one of these:

As my wife said while we were walking out of the Fry's, "It blows my mind that you can buy a whole computer in a little box like that." I don't think I can or want to add anything to that.

I got Ubuntu Lucid Server up and running on without really any trouble at all, even with the configuration I chose, of booting the installer from a thumb drive and installing to an SD card. (I'm trying to keep it as low power as possible; we'll see if the SD card pans out.)

My plan is to write some server code for this thing (in Go!) and hook up some peripherals like a web cam, door opening monitor circuits, etc. My aim is somewhere between home automation and a homebrew security system. Most likely I will just end up spying on the cats. Heh heh...

So far it's a pretty impressive little widget. Hopefully things will pan out and I'll get something spiffy out of it all.

Wednesday, November 3, 2010

BEHOLD the Future All Over Again

This article is pretty much spot on:

I was especially interested that the author recognizes that the events that are now getting under way will mirror the PC model in outcome, but not in the gory details. This is something that's been on my mind for some time, too.

The PC world took off because there were various curated standards, like ISA/PCI/PCI Express, ATA/IDE/SATA, CGA/EGA/VGA, and so on. But the consumer electronics industry of today does not have any analog of that. Processors are wired directly to peripheral chips -- at least, those peripherals not directly integrated into the SoC -- and just about the only "off the shelf" widget you can buy that just works in multiple devices is a flash storage card.

This has been (in my view) the primary drag on rapid innovation in the consumer electronics industry over the past 10 years or so:  no common "interface" where hardware and software could meet and act as the stable foundation to build interesting products on.

The fundamental insight of the article (to my mind at least) is that in the PC world, this "interface" evolved just on the hardware side of the border. But in the mobile/electronics world, various economic forces prevented that (which is a whole other story.) So what Android is really doing is establishing an equivalent "interface", except on the software side of the border.

To put it another way, modern OSes for PCs include a "hardware abstraction layer" to gloss over the minor differences between mostly-compatible hardware. But Android is a hardware abstraction layer that paves over the huge differences between consumer electronics devices. (This is why it's impossible to create a generic version of Android that is installable on any phone. You can't install a consumer electronics OS, you have to port it.)

From the point of vantage point of developers and device builders sitting on top of this, the view is very much the same as the PC world: they see a common set of APIs and a well-defined execution environment that they can build on. Since the view looks so similar, the outcome should likewise be similar.

Of course they mostly don't realize just how much the structure below what they can see differs from the PC world; but the beauty of Android is, they don't need to.

This is indeed an exciting time.