Rough Proposal for Final Infographic Projects

April 20th, 2010

When it comes to visualizing personal energy use, most people have little more than a spinning meter outside their home and monthly utility bills to go from. Needless to say, there is an opportunity for creating a more compelling way to visualize personal energy use.

Looking at both methods, the spinning meter and the utility bill, we can see pros and cons of each:

Spinning Meter
pros: real time, movement conveys action
cons: no historical context, only current data

Utility Bill
pros: basic historical data, some sense of story telling
cons: static, only basic summary lacking info about when surges of usage happened.

1 + 1 = 3

My goal is to combine the best of both methods: the real time movement of the meter with the historical context of the utility bill, and then go above and beyond to create a visualization that communicates more information faster than either of the current methods allow.

The data set will be pulled from the same source that drove my redesign project: the TED 5000 device I have installed in my apartment. It generates minute-by-minute, hourly, and daily xml feeds that my site will use to generate the visuals.

I want to use animation to tell the story “live” (or as close to live as I can get within technological limits). Something along the lines of an infographic screensaver is what I’m envisioning.

When Do I Use the Most Electricity?

April 20th, 2010

Working version here:
When Do I Use the Most Electricity?

Note: For this project I only tested in Safari. Other browsers may give unexpected results.

Electric Infographics

March 25th, 2010

A few months back, when the first month of winter took its toll on my electric bill, I do what I normally do in situations like that: I looked for a geek solution.

Found this device that plugs into your circuit breaker and silently monitors how many kilowatts you use and when you use them. On top of that, once connected to your home network it provides live xml feeds of your usage. Jackpot!

The purchase was justified as an educational expense for my infographics class I’m taking in grad school, and motivated by my geeky love for manipulating and visualizing data.

It’s a work in progress, but here’s the visualizations I’ve got so far:

1. minute-by-minute grid
2. charts showing which hours of the day use the most energy

On the coding end, I’m bound and determined to avoid flash like the plague. I found Raphael, an amazing Javascript library that uses the html5 canvas to draw and animate vectors like flash+as3 does, but without the plugin (and thus iPhone compatible). jQuery makes parsing the xml easy, and allows the UI animation used in the second example above.

Wake sleeping Mac with Applescript and Automator

June 26th, 2009

wake-and-share

I have a Mac mini in my living room hooked up to my TV. I wanted to be able to control the mini from my iMac in my office. Using Screen Sharing built into Leopard, it’s a simple click of the mouse to do this. With a little Automator love, I created a simple workflow that turns the Screen Sharing step into a click of an icon in the dock.

However, even with the power efficiency of the 2009 Mac mini, I don’t want to leave it on 24/7. After searching through several solutions that used Python and Shell Scripting (neither of which I know or could make work), I found a nifty Applescript from Mark Muir that I adapted to solve my problem:

(*
Script adapted from Wake on WAN - by Mark Muir (2008-04-01)

http://forums.dealmac.com/read.php?4,2751523

*)

property MAC_address : "00:25:4b:9f:63:c8"
property WAN_IP_address : "255.255.255.255"

on run
	set command to "/usr/bin/php -r " & quoted form of ("$mac = " & quoted form of MAC_address & "; $ip = " & quoted form of WAN_IP_address & "; " & "
$mac_bytes = explode(\":\", $mac);
$mac_addr = \"\";
for ($i=0; $i<6; $i++)
$mac_addr .= chr(hexdec($mac_bytes[$i]));
$packet = \"\";
for ($i=0; $i<6; $i++)	/*6x 0xFF*/
$packet .= chr(255);
for ($i=0; $i<16; $i++)	/*16x MAC address*/
$packet .= $mac_addr;

$port = 9;
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, TRUE);
socket_sendto($sock, $packet, strlen($packet), 0, $ip, $port);
socket_close($sock);
")
	do shell script command
end run

Rolling that into my Automator workflow gives me one-click access from my dock to wake my Mac mini over the network and start screen sharing on Leopard. Here is the final Automator workflow:

wake-and-share-mac-mini.zip (68KB)