This is an archived post. Information in this may be out of date. More info…

ARCHIVES.estonbond.com

© 2005-2009

Step aside, HAL 9000

The dreams of elementary school kids are always the most fanciful: some want to be rock stars, some want to be doctors, some want to be fighter pilots and some want to be spies. They want new bicycles, Nerf guns and Nintendo. They want to slay dragons or become superheroes.

Back when I was a kid, somewhere between third and fourth grade, I thought the coolest thing to have would be a large, intelligent mainframe, some type of overarching computer knowledge base like you see in sci-fi movies and video games. Yeah, I was a geek then, too.

While obviously the idea faded off sometime as I grew up, the odd, nerdy fantasy found its way into my head roughly a week ago. I wondered what a modern interpretation of it would actually be: now, that knowledge base would be a personal information aggregator, some type of tool that would allow me one-look access to nearly all of the information that mattered in my life, from number of e-mails to financial data. I wanted the ultimate PIM. I wanted more than just an e-secretary: I wanted a true e-servant, able to connect to my apartment and automate the lighting, tell me where my car was, and recognise me by biometric authentication. I wanted what was effectively an artificial intelligence server, a modern-day HAL 9000 for my own personal use.

What would I really need to build such a system? What was it that I wanted? After realising that most of my ideas were most certainly feasible with modern-day technology and next-to-nothing costs (less than $50,) I actually began to design such a system. I named it Sarai, for Semi-Automated Residential Artificial Intelligence, which also doubles as the word for “house” in Persian and “palace” in Turkish according to Wikipedia. Sarai would have to be able to:

  • Be expandable For Sarai to be expandable, I would need to build it in an object-oriented language and make the codebase modular, that way I could add in new information systems or I/O libraries as was necessary to make the server work with current and future platforms.
  • Work with old technology Since Sarai was a limited-budget project, I needed to be able to make it work with really cheap hardware, including computer components I could get for free or close to it.
  • Be remotely accessible Since I wanted Sarai to have a remote interface, it would be best to run a web-based application to control most of Sarai’s functionality.
  • Be very, very stable and secure Sarai, given its Internet connectivity and responsibility as a be-all, end-all life aggregator, needed to be secure and stable. This ruled out any Windows-based solutions and most off-the-shelf software.
  • Be able to control lighting, including dimming I wanted Sarai to be able to control all of my apartment’s lighting. The cheapest solution for automated lighting control is still the X10 protocol; while other, more advanced solutions exist, the shoestring budget for building Sarai would require me to work with the cheapest components.
  • Keep tabs on my stuff Thanks to an application I wrote for O’Reilly Media, I had some experience in building GPS tracking systems for automobiles using Mologogo and hacked Nextel phones. The home stuff didn’t need to be that advanced, so using any old webcam would do the trick; I’d just need simple motion detection or the like.
  • Maintain data from all over my life Sarai would need connectivity with my stock portfolio, with research systems, with my PIM software on my smartphone, blog statistics, and message boards that I post on. Thanks to many Web 2.0 services and their software APIs, this type of connectivity has become infinitely easier in recent years, but there are still places where Sarai would have to use a rather-fragile screen scraper.
  • Show the data in a kiosk mode on a display Sarai also needed a kiosk mode, some way to dedicate a monitor to the display of the data it aggregates. This rules out a lot of really cheap hardware, as I’d have to run some type of GUI and a web browser
  • Look good While this sounds like it’d be the easiest thing to do, it could be tricky: the device needs to be able to support and display anti-aliased TrueType fonts to the user, as well as JavaScript and Flash.

Sarai’s end vision was what Danny O’Brien referred to as “secret software” at the O’Reilly Emerging Technology Conference back in 2004 (Cory Doctorow’s notes on the seminar give an awesome summary of what O’Brien said,) and it is this type of software that ultimately improves the productivity of the person using it. Sarai became more than a simple idea: it became a living example of the ultimate life hack.

Building Sarai: The hardware

I knew that to make Sarai development both quick and easy, I’d have to use a LAMP server solution on a UNIX/Linux box. Thankfully, a single-user server didn’t require that much power or RAM, so I knew a Pentium III box with sufficient memory and a big hard drive would work well enough for the project.

I originally searched eBay for a few computers, but shipping on a full-size computer made it effectively impractical to purchase one from afar. Craigslist turned up nothing but really overpriced Pentium II-class hardware. Eventually, I salvaged an aging IBM Aptiva; I found the Aptiva’s case literally rusting away, having been condemned to die in the elements. Had I not picked up the machine, it would have headed to the trash heap.

I came back to my apartment with my “new” server: with a 500MHz Pentium III and only 128MB RAM, this once cutting-edge machine was laughably obsolete compared to modern-day technology. After cleaning off the spider webs (including dead spider carcasses) and what I think were mold spores on the top of the black case, a bit of Windex and some Q-tips cleaned the machine up to a state that made it look brand new. Thanks to IBM’s relatively-timeless case design, the black machine sits simply on my desk, meeting the “look good” requirement.

The internal hardware, however, was still a bit of a mess: using an 80-gigabyte Western Digital Caviar I salvaged from a broken external hard disk enclosure and a 15″ Sony Trinitron CRT, I started up the machine. The floppy drive was entirely dead, causing BIOS errors until I disabled it, and the machine had a distinct lack of an Ethernet card. That said, the box contained a Linksys 802.11b PCI card with an aging, huge antenna coming out of the back; there was no guarantee that the wireless would work, either.

With the computer successfully running through BIOS checks otherwise, I decided it was time to start finding software.

What’s next

While the Sarai vision has certainly found its way closer to geeky reality, a lot more needs to be done before it’s actually useful; the actual application to aggregate things still has to be written. I’ve found ways to handle most of the incoming and outgoing data; it is now simply a matter of coding the proper solutions. Maybe the ideas of elementary schoolers aren’t so crazy after all.

Comments?

Comments are closed on archived posts.