Thursday, March 28, 2013

Intel Atom (Haskell) vs ARM (Lua) for Home Monitoring Station

ARMs are cheap and plentiful, but computationally limited.  I'm looking to do some image processing (motion detection is done by cheap webcams rather than PIR sensors) using OpenCV. This should work on an ARM, but how slow will it go?

Haskell doesn't have much of an ARM presence and I can't rely on bindings to port well.  If I use Haskell (and I have already prototyped some motion detection using Haskell and OpenCV), then I'll need a beefy server. Why?  Imagine 5 or 6 motion detectors working in parallel to form a comprehensive picture of movement in a household.  Plus, some of the visual detection is fairly fine grain (detecting steam, smoke and burner flame from a stove -- more on that later!).

I feel like I am selling my ideas short by going with ARM (at this point). I'd toss the Haskell code and use Lua (upon which I've also done some OpenCV prototyping).

What is the state of small (set-top) Atom PCs?
Well, this one:  looks promising ($244). The price is a bit high (compared to Android/ARM stuff out there), but it can be a good system to target.


Tuesday, March 26, 2013

Home Monitoring / Elderly Care project reboot

This blog has been an  on-and-off  forum for my Home Monitoring project for Elderly people. (A non-intrusive, internet aware means of keeping track of Grandma/Grandpa).

For the past year I've been exploring different technologies, from X10 to Z-Wave to Cameras to homebrew sensors.

Within just a year, prices have dropped dramatically on embedded (ARM) computers, Android tablets, and USB/Wi-Fi cameras.  I'm not so much dedicated to cheap hardware, but I am open to any options given the steep prices for Z-Wave and other proprietary tech.

More info to come.  This is going to be interesting and... different.

For background, check out:

Stay tuned.

Friday, March 15, 2013

Thinking Big and Home Monitoring?

Sometimes I think too small.  I come up with a small idea and pour a lot of time into it,  cutting and polishing diamond from stone.  That is fine. That is where I spend a lot of time. But that is not me.

I like Big, bold ideas.

Now is a good time to be looking for Big Ideas.  The internet is huge.  It is the largest thing that humankind has devised. But it is not a single thing. It is not a networked collection of servers and clients. It is the essence of virtual. We run our ideas in virtual machines.  We use virtual memory.  In our distributed, concurrent web of things we don't ask how big, but how many?

What if my home monitoring project isn't really about a bunch of internet enabled sensors. What if the sensors are just players in a virtual network that represent home.  How do I make sense of all of the collected data?  How do I maintain privacy?  How do I make of all of this ubiquitous?

The Nest smart thermostat is a diamond.  It has one task and it does it (apparently) beautifully.
But I am interested in the bigger picture.  I'm interested in a more radical idea:

What if  you could monitor your home by modelling your home (sensors)  as intelligent agents in the cloud?  What if this model ran on a virtual network dedicated exclusively to you?  What if you virtual network of sensors could tell a story (a story about the well being of your home)?

What I don't want:  An alarm sent to my phone notifying me that Grandma's stove has been left on for over an hour without any sort of movement in the kitchen.

What I do want: An alarm sent to my phone because it is 11pm, the stove is on, no one has moved around in the kitchen for 20 minutes,  the TV is on in the bedroom and Grandma has never used the stove that late (her profile has shown that she has never used the stove after 9pm).

I dunno. There is a realistic, big idea somewhere in there. I just need to tease it out.

Next week I am heading off to the San Francisco Erlang 2013 conference.   Hopefully it will remind me that I am not a diamond cutter.

Monday, March 11, 2013

Another Weekend hack: BSON in Lua

I don't use MongoDB, but I'm doing some BSON (instead of JSON), so I whipped up a BSON implementation in pure Lua (because no one else has seemed to have done this).

The files are here:


Sunday, March 03, 2013

My Weekend Lua Hack: A LuaJIT/RabbitMQ binding

I spent Saturday afternoon getting the LuaJIT ffi to work with RabbitMQ. It was surprisingly easy to a simple publish/consume script up and running.

The files are here: