<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;AkUNRH48eSp7ImA9WhRUEk8.&quot;"><id>tag:blogger.com,1999:blog-19789023</id><updated>2012-01-22T05:31:35.071-05:00</updated><category term="Google Maps" /><category term="myth" /><category term="KML" /><category term="Party" /><category term="power meter" /><category term="iPhone" /><category term="energy" /><category term="twitter" /><category term="programming" /><category term="perl" /><category term="GPS" /><category term="electric bill" /><category term="syslog" /><category term="stats" /><category term="Polycom" /><category term="dhcp" /><category term="Mario" /><category term="api" /><category term="Zombies" /><category term="ted5000" /><category term="Brains" /><category term="gdb backtrace core" /><title>My cape is stuck in the phone booth!</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.jasongarland.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.jasongarland.com/" /><author><name>jgarland79</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_HMOdVnllr_U/SNpzpBatkiI/AAAAAAAABK4/lFgKkLHRGAY/S220/jason+eye.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/MyCapeIsStuckInThePhoneBooth" /><feedburner:info uri="mycapeisstuckinthephonebooth" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;A0MCRHw_eCp7ImA9WhRUEUU.&quot;"><id>tag:blogger.com,1999:blog-19789023.post-971231231283101547</id><published>2012-01-21T18:44:00.000-05:00</published><updated>2012-01-21T18:44:25.240-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-21T18:44:25.240-05:00</app:edited><title>Download all of your images from Smugmug</title><content type="html">I cheated and used wget to grab the files. This could be done using a perl module if you wanted.&lt;br /&gt;
&lt;br /&gt;
You will need to have the &lt;a href="http://search.cpan.org/~floweryso/WWW-SmugMug-API-1.03/lib/WWW/SmugMug/API.pm"&gt;WWW::SmugMug::API&lt;/a&gt; module installed for this script to work. All of the others should be standard stuff.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: html"&gt;
#!/opt/bin/perl

use warnings;
use strict;
use Data::Dumper;
use WWW::SmugMug::API;
use File::Path;

my $APIKey='your_key';
my $username='your_login_email';
my $password='your_password';

my $dest_folder='/share/jgarland/Photos/Smugmug';

my $sm_api = WWW::SmugMug::API-&gt;new(
 {
  sm_api_key =&gt; $APIKey,
  secure     =&gt; 0
 });

$sm_api-&gt;login_withPassword(
 {
  EmailAddress =&gt; $username,
  Password     =&gt; $password
 });

&amp;get_images;

$sm_api-&gt;logout;
exit;





sub get_images {

 my $albums=$sm_api-&gt;albums_get();
 foreach my $album (@{$albums-&gt;{'Albums'}}) {
  my $images=$sm_api-&gt;images_get(
   {
    AlbumID =&gt; $album-&gt;{'id'},
    AlbumKey =&gt; $album-&gt;{'Key'}
   });
  foreach my $image (@{$images-&gt;{'Images'}}) {
   my $image_info=$sm_api-&gt;images_getInfo(
    {
     ImageID =&gt; $image-&gt;{'id'},
     ImageKey =&gt; $image-&gt;{'key'}
    });
   download($album, $image_info);
  }
 }
}


sub download {
 my $album=shift;
 my $image_info=shift;
 my $album_folder=$dest_folder . '/' . $album-&gt;{'Category'}-&gt;{'Name'} . '/' . $album-&gt;{'Title'};
 my $image_file=$album_folder . '/' . $image_info-&gt;{'Image'}-&gt;{'FileName'};

 unless(-d $album_folder) { mkpath $album_folder or die; }

 if ( -e $image_file ) { return(); }
 
 my $command='/usr/bin/wget -c -q \'' . $image_info-&gt;{'Image'}-&gt;{'OriginalURL'} . '\' -O "' . $image_file . '"';
 print "$command\n";
 my @results=`$command`;
 my $errlvl=$?;
 print Dumper(@results);
 if ( $errlvl == 0 ) {
  return();
 } else {
  unlink($image_file);
  die("errlvl=$errlvl\nDeleting $image_file\n");
 }

}

&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19789023-971231231283101547?l=blog.jasongarland.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyCapeIsStuckInThePhoneBooth/~4/rfZcO5rx_1o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jasongarland.com/feeds/971231231283101547/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=19789023&amp;postID=971231231283101547" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/971231231283101547?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/971231231283101547?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyCapeIsStuckInThePhoneBooth/~3/rfZcO5rx_1o/download-all-of-your-images-from.html" title="Download all of your images from Smugmug" /><author><name>jgarland79</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_HMOdVnllr_U/SNpzpBatkiI/AAAAAAAABK4/lFgKkLHRGAY/S220/jason+eye.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.jasongarland.com/2012/01/download-all-of-your-images-from.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMMSHw4cSp7ImA9WhdbFU8.&quot;"><id>tag:blogger.com,1999:blog-19789023.post-8045396230276174897</id><published>2011-10-13T13:53:00.001-04:00</published><updated>2011-10-13T13:54:49.239-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-13T13:54:49.239-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="gdb backtrace core" /><title>What do I do with this core file?</title><content type="html">Use this script to generate a useful backtrace from the core file.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: html"&gt;#!/bin/bash

corefile=$1
outfile=$1.gdbtrace.log

function getprocess {

        commandstring=$(gdb -c $corefile \
                --eval-command='set pagination off' \
                --eval-command='bt' \
                --eval-command='quit' \
                |awk '/Core was generated by/ { split($0, a, "`"); split(a[2], b, "'\''"); print b[1] }')

        echo $commandstring|awk '{print $1}'
}


if [ -a $corefile ] ; then
        process=$(getprocess)
else
        echo You must provide a core file as an argument
        exit
fi

if [ -a $process ] ; then

echo Core was generated by $process

gdb $process \
                -c $corefile \
                --eval-command='set pagination off' \
                --eval-command="set logging file $outfile" \
                --eval-command='set logging on' \
                --eval-command='bt' \
                --eval-command='bt full' \
                --eval-command='thread apply all bt' \
                --eval-command='thread apply all bt full' \
                --eval-command='quit'

echo "Trace written to $outfile"

else
        echo "Can not find $process. This script my be broken, or the file disappeared."
        exit
fi

&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19789023-8045396230276174897?l=blog.jasongarland.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyCapeIsStuckInThePhoneBooth/~4/VQeRtkNDxgA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jasongarland.com/feeds/8045396230276174897/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=19789023&amp;postID=8045396230276174897" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/8045396230276174897?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/8045396230276174897?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyCapeIsStuckInThePhoneBooth/~3/VQeRtkNDxgA/what-do-i-do-with-this-core-file.html" title="What do I do with this core file?" /><author><name>jgarland79</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_HMOdVnllr_U/SNpzpBatkiI/AAAAAAAABK4/lFgKkLHRGAY/S220/jason+eye.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.jasongarland.com/2011/10/what-do-i-do-with-this-core-file.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EHQn05fSp7ImA9WhZTGEk.&quot;"><id>tag:blogger.com,1999:blog-19789023.post-2388312556328076346</id><published>2011-03-22T20:49:00.001-04:00</published><updated>2011-03-22T20:53:53.325-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-22T20:53:53.325-04:00</app:edited><title>German exit signs</title><content type="html">I've made my way to Frankfurt, Germany. Tomorrow I will be taking the train to Regensburg. I will post all of my photos on my photo sharing site later &lt;a href="http://jgarland.smugmug.com"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
All throughout the airport I've seen these exit signs and they reminded me of the signs you see inside the game &lt;a href="http://en.wikipedia.org/wiki/Portal_(video_game)"&gt;Portal&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Here is a picture of one of the signs. (I didn't take this picture. I can't get my memory card reader to work right now.)&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-m7db7xMeYLI/TYlDGIOQd0I/AAAAAAAAETw/wT_cQYTs-uE/s1600/438743037QwPYxt_fs.jpeg" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="240" width="320" src="http://4.bp.blogspot.com/-m7db7xMeYLI/TYlDGIOQd0I/AAAAAAAAETw/wT_cQYTs-uE/s320/438743037QwPYxt_fs.jpeg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
And here is a logo for the game:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-OzL8rnAntZg/TYlDGPpCFqI/AAAAAAAAET4/y-sY2cmUzOg/s1600/XBL_Portal-Still-Aliveboxart_160w.jpeg" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="220" width="160" src="http://2.bp.blogspot.com/-OzL8rnAntZg/TYlDGPpCFqI/AAAAAAAAET4/y-sY2cmUzOg/s320/XBL_Portal-Still-Aliveboxart_160w.jpeg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19789023-2388312556328076346?l=blog.jasongarland.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyCapeIsStuckInThePhoneBooth/~4/skpbTgJD27Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jasongarland.com/feeds/2388312556328076346/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=19789023&amp;postID=2388312556328076346" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/2388312556328076346?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/2388312556328076346?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyCapeIsStuckInThePhoneBooth/~3/skpbTgJD27Y/german-exit-signs.html" title="German exit signs" /><author><name>jgarland79</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_HMOdVnllr_U/SNpzpBatkiI/AAAAAAAABK4/lFgKkLHRGAY/S220/jason+eye.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-m7db7xMeYLI/TYlDGIOQd0I/AAAAAAAAETw/wT_cQYTs-uE/s72-c/438743037QwPYxt_fs.jpeg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.jasongarland.com/2011/03/german-exit-signs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UNR3szeip7ImA9WxFVEE0.&quot;"><id>tag:blogger.com,1999:blog-19789023.post-2664280095459691802</id><published>2010-06-08T08:38:00.004-04:00</published><updated>2010-06-08T08:48:16.582-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-08T08:48:16.582-04:00</app:edited><title>Yamaha V6 Outdrive stuck shifter repair</title><content type="html">Here are some pictures and directions for repairing a stuck shifter on a Yamaha outdrive that I created about two years ago for my &lt;a HREF="http://groups.google.com/group/yamaha-sterndrives"&gt;Yamaha Sterndrive owner's group&lt;/A&gt;. This is a common problem with this unit.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://picasaweb.google.com/jgarland/YamahaV6OutdriveStuckShifterRepair?feat=blogger" imageanchor="1"&gt;&lt;img border="0" src="http://lh6.ggpht.com/_HMOdVnllr_U/SJ4GswQdasE/AAAAAAAABIg/BbEiFMhTaRs/s160-c/YamahaV6OutdriveStuckShifterRepair.jpg"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19789023-2664280095459691802?l=blog.jasongarland.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyCapeIsStuckInThePhoneBooth/~4/UmXUoExahwI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jasongarland.com/feeds/2664280095459691802/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=19789023&amp;postID=2664280095459691802" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/2664280095459691802?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/2664280095459691802?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyCapeIsStuckInThePhoneBooth/~3/UmXUoExahwI/yamaha-v6-outdrive-stuck-shifter-repair.html" title="Yamaha V6 Outdrive stuck shifter repair" /><author><name>jgarland79</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_HMOdVnllr_U/SNpzpBatkiI/AAAAAAAABK4/lFgKkLHRGAY/S220/jason+eye.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_HMOdVnllr_U/SJ4GswQdasE/AAAAAAAABIg/BbEiFMhTaRs/s72-c/YamahaV6OutdriveStuckShifterRepair.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.jasongarland.com/2010/06/yamaha-v6-outdrive-stuck-shifter-repair.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8DRno7eCp7ImA9WxFXE0w.&quot;"><id>tag:blogger.com,1999:blog-19789023.post-4257679819688879296</id><published>2010-05-19T15:25:00.002-04:00</published><updated>2010-05-19T21:27:57.400-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-19T21:27:57.400-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Zombies" /><category scheme="http://www.blogger.com/atom/ns#" term="Party" /><category scheme="http://www.blogger.com/atom/ns#" term="Mario" /><category scheme="http://www.blogger.com/atom/ns#" term="Brains" /><title>80's / Zombie party</title><content type="html">So we had this 80's Zombie party at our place last weekend. I was going to be Zombie Mario, but I gave up on the Zombie makeup after screwing it up several times. So I was just Mario the Zombie slayer.&lt;br /&gt;
&lt;br /&gt;
Anyways... I had one of my friends film me playing Mario Brothers on the Wii. It cracks me up every time I watch it. Check it out:&lt;br /&gt;
&lt;br /&gt;
&lt;object height="505" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/o5j_QG8ldjE&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/o5j_QG8ldjE&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
I should also mention that my wife made an awesome brain cake for all the zombies to munch on:&lt;br /&gt;
&lt;br /&gt;
&lt;img width=600 src="http://lh6.ggpht.com/_HMOdVnllr_U/S_Q71EPFF5I/AAAAAAAACUY/bFsq2bQ-4vI/s1280/DSC00630.JPG"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19789023-4257679819688879296?l=blog.jasongarland.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyCapeIsStuckInThePhoneBooth/~4/dMLisloF5os" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jasongarland.com/feeds/4257679819688879296/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=19789023&amp;postID=4257679819688879296" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/4257679819688879296?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/4257679819688879296?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyCapeIsStuckInThePhoneBooth/~3/dMLisloF5os/80s-zombie-party.html" title="80's / Zombie party" /><author><name>jgarland79</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_HMOdVnllr_U/SNpzpBatkiI/AAAAAAAABK4/lFgKkLHRGAY/S220/jason+eye.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_HMOdVnllr_U/S_Q71EPFF5I/AAAAAAAACUY/bFsq2bQ-4vI/s72-c/DSC00630.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.jasongarland.com/2010/05/80s-zombie-party.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMFRXY7fyp7ImA9WxFXEkQ.&quot;"><id>tag:blogger.com,1999:blog-19789023.post-8996684987920611006</id><published>2010-05-19T13:04:00.007-04:00</published><updated>2010-05-19T15:13:34.807-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-19T15:13:34.807-04:00</app:edited><title>Twittering doorbell</title><content type="html">All I wanted was a doorbell that would send me a text message when somebody rang it, and I wanted it NOW. There are a number of ways I could have done this. Ideally I would have used an opto isoloator, but Radioshack didn't have those. They did have a full wave bridge rectifier, and a 5V relay. I already had some random capacitors, and a 5V regulator, so that would have to do. I connected the AC inputs on the rectifier inline with the doorbell using the connections behind the doorbell transformer in my garage. The relay switch is connected to the digital input and ground connections on my &lt;a href="http://iobridge.com/products/"&gt;IOBridge&lt;/a&gt;. I've configured the iobridge to send an email to both my magic account at&amp;nbsp;&lt;a href="http://ping.fm/"&gt;ping.fm&lt;/a&gt; that updates twitter, as well as an email&amp;nbsp;distribution&amp;nbsp;list that sends text messages to both my wife and myself, as well as to our email inboxes.&lt;br /&gt;
&lt;br /&gt;
You can find the twitter updates from my doorbell on my twitter account here: &lt;a href="http://twitter.com/jgarland79"&gt;http://twitter.com/jgarland79&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Here is the schematic and a photo:&lt;br /&gt;
&lt;br /&gt;
&lt;table border="1"&gt;&lt;tbody&gt;
&lt;tr&gt;     &lt;th bgcolor="#FFFFFF"&gt;&lt;img src="http://lh5.ggpht.com/_HMOdVnllr_U/S_QYVCOYucI/AAAAAAAACUM/91TZ2RultOY/doorbell.png" width="600" /&gt;&lt;/th&gt;   &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://lh4.ggpht.com/_HMOdVnllr_U/S_QYVewKVAI/AAAAAAAACUQ/OUTGvTkU5Lw/doorbell%20circuit%20photo.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19789023-8996684987920611006?l=blog.jasongarland.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyCapeIsStuckInThePhoneBooth/~4/bRLXAUVZaRs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jasongarland.com/feeds/8996684987920611006/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=19789023&amp;postID=8996684987920611006" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/8996684987920611006?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/8996684987920611006?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyCapeIsStuckInThePhoneBooth/~3/bRLXAUVZaRs/twittering-doorbell.html" title="Twittering doorbell" /><author><name>jgarland79</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_HMOdVnllr_U/SNpzpBatkiI/AAAAAAAABK4/lFgKkLHRGAY/S220/jason+eye.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_HMOdVnllr_U/S_QYVCOYucI/AAAAAAAACUM/91TZ2RultOY/s72-c/doorbell.png" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://blog.jasongarland.com/2010/05/twittering-doorbell.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MBQ3g6eSp7ImA9WxFQFEs.&quot;"><id>tag:blogger.com,1999:blog-19789023.post-6740375205750620065</id><published>2010-05-09T13:14:00.002-04:00</published><updated>2010-05-10T01:30:52.611-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-10T01:30:52.611-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="power meter" /><category scheme="http://www.blogger.com/atom/ns#" term="myth" /><category scheme="http://www.blogger.com/atom/ns#" term="electric bill" /><title>Busting the myth: Unbalanced Breaker panel = Larger electric bill</title><content type="html">There is a myth that if your breaker panel is "unbalanced" then you will be billed for the higher leg on the meter.&lt;br /&gt;
&lt;br /&gt;
Let's find out...&lt;br /&gt;
&lt;br /&gt;
&lt;object style="background-image:url(http://i3.ytimg.com/vi/rnRqo9gQWg4/hqdefault.jpg)"  width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/rnRqo9gQWg4&amp;amp;hl=en_US&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/rnRqo9gQWg4&amp;amp;hl=en_US&amp;amp;fs=1" width="425" height="344" allowScriptAccess="never" allowFullScreen="true" wmode="transparent" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;object style="background-image:url(http://i3.ytimg.com/vi/B8RKJb1b0VA/hqdefault.jpg)"  width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/B8RKJb1b0VA&amp;amp;hl=en_US&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/B8RKJb1b0VA&amp;amp;hl=en_US&amp;amp;fs=1" width="425" height="344" allowScriptAccess="never" allowFullScreen="true" wmode="transparent" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I didn't film the third part because it was dark outside, but I went outdoors and monitored the meter before and after I shut off the breakers on one of the phases making the load unbalanced. The meter DID spin half as fast, so this proves that the meter IS accurate and this myth is BUSTED!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19789023-6740375205750620065?l=blog.jasongarland.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyCapeIsStuckInThePhoneBooth/~4/MWfkcvxhW60" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jasongarland.com/feeds/6740375205750620065/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=19789023&amp;postID=6740375205750620065" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/6740375205750620065?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/6740375205750620065?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyCapeIsStuckInThePhoneBooth/~3/MWfkcvxhW60/busting-myth-unbalanced-breaker-panel.html" title="Busting the myth: Unbalanced Breaker panel = Larger electric bill" /><author><name>jgarland79</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_HMOdVnllr_U/SNpzpBatkiI/AAAAAAAABK4/lFgKkLHRGAY/S220/jason+eye.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.jasongarland.com/2010/05/busting-myth-unbalanced-breaker-panel.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YHQnk8eyp7ImA9WxFQFEw.&quot;"><id>tag:blogger.com,1999:blog-19789023.post-1689624253678194755</id><published>2010-05-09T10:00:00.002-04:00</published><updated>2010-05-09T10:25:33.773-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-09T10:25:33.773-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Polycom" /><category scheme="http://www.blogger.com/atom/ns#" term="syslog" /><category scheme="http://www.blogger.com/atom/ns#" term="dhcp" /><title>DHCP Notify Parsing with Polycom phones</title><content type="html">Syslog sample:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: html"&gt;Jul  8 18:25:12 babelfish dhcpd: {"vendor-class-identifier": {"substrings": [ {"company": "Polycom"}, {"part": "SoundPointIP-SPIP_430"}, {"part_number": "2345-11402-001,1"}, {"app_version": "SIP/2.2.2.0084/20-Nov-07 10:17"}, {"bootrom_version": "BR/4.1.0.0219/10-Dec-07 13:08" ] } }}
&lt;/pre&gt;&lt;br /&gt;
create polycom.conf and include it in your dhcpd.conf file.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: html"&gt;authoritative;
allow booting;
 
option option-150 code 150 = text;
option option-155 code 155 = text;
option option-160 code 160 = text;
option sip-server code 151 = text;
option voice-vlan code 128 = text;
 
 
class "polycom" {
            match if(
            (substring (option vendor-class-identifier, 0, 4) = 00:00:36:3d) and
            (substring (hardware, 1, 12) = 00:04:f2:11:f3:b9)
                        );
 
            set vendor_class_identifier = (substring (option vendor-class-identifier,5,(extract-int ((substring (option vendor-class-identifier, 4, 1)),8))));
            set vendor_class_identifier_1_len = (extract-int ((substring (vendor_class_identifier,1,1)),8));
            set vendor_class_identifier_1 = (substring (vendor_class_identifier,2,vendor_class_identifier_1_len));
 
            set vendor_class_identifier_2_len = (extract-int ((substring (vendor_class_identifier,(3 + vendor_class_identifier_1_len),1)),8));
            set vendor_class_identifier_2 = (substring (vendor_class_identifier,(4 + vendor_class_identifier_1_len),vendor_class_identifier_2_len));
 
            set vendor_class_identifier_3_len = (extract-int ((substring (vendor_class_identifier,(5 + vendor_class_identifier_1_len + vendor_class_identifier_2_len),1)),8));
            set vendor_class_identifier_3 = (substring (vendor_class_identifier,(6 + vendor_class_identifier_1_len +  vendor_class_identifier_2_len),vendor_class_identifier_3_len));
 
            set vendor_class_identifier_4_len = (extract-int ((substring (vendor_class_identifier,(7 + vendor_class_identifier_1_len + vendor_class_identifier_2_len + vendor_class_identifier_3_len),1)),8));
            set vendor_class_identifier_4 = (substring (vendor_class_identifier,(8 + vendor_class_identifier_1_len +  vendor_class_identifier_2_len + vendor_class_identifier_3_len),vendor_class_identifier_4_len));
 
            set vendor_class_identifier_5_len = (extract-int ((substring (vendor_class_identifier,(9 + vendor_class_identifier_1_len + vendor_class_identifier_2_len + vendor_class_identifier_3_len + vendor_class_identifier_4_len),1)),8));
            set vendor_class_identifier_5 = (substring (vendor_class_identifier,(10 + vendor_class_identifier_1_len +  vendor_class_identifier_2_len + vendor_class_identifier_3_len + vendor_class_identifier_4_len),vendor_class_identifier_5_len));
 
 
            log(info, (concat ("{\"vendor-class-identifier\": {\"substrings\": [ {\"company\": \"", vendor_class_identifier_1,"\"}, {\"part\": \"", vendor_class_identifier_2,"\"}, {\"part_number\": \"", vendor_class_identifier_3,"\"}, {\"app_version\": \"", vendor_class_identifier_4,"\"}, {\"bootrom_version\": \"", vendor_class_identifier_5,"\" ] } }}")));
 
            if (option dhcp-message-type = 8)
            {
                        option dhcp-parameter-request-list 2,3,4,6,15,17,42,43,60,66,128,150,151,155,160;
                        option option-150 "http://PlcmSpIp:PlcmSpIp@172.16.129.94/polycom/";
                        option option-155 "http://PlcmSpIp:PlcmSpIp@172.16.129.94/polycom/";
                        option option-160 "http://PlcmSpIp:PlcmSpIp@172.16.129.94/polycom/";
                        option tftp-server-name "http://PlcmSpIpFOO:PlcmSpIp@172.16.129.94/polycom/";
                        option sip-server "sip.voip.local";
                        option domain-name-servers 172.16.129.94, 172.16.129.94, 172.16.129.94, 172.16.129.94;
                        option domain-name "voip.local";
                        option ntp-servers 172.16.129.94;
                        option time-servers 172.16.129.94;
                        option time-offset -18000;
                        #option voice-vlan "VLAN-A=10;";
            }
}
 
subnet 172.16.0.0 netmask 255.255.0.0 {
}
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19789023-1689624253678194755?l=blog.jasongarland.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyCapeIsStuckInThePhoneBooth/~4/yy827Q39hVI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jasongarland.com/feeds/1689624253678194755/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=19789023&amp;postID=1689624253678194755" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/1689624253678194755?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/1689624253678194755?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyCapeIsStuckInThePhoneBooth/~3/yy827Q39hVI/dhcp-notify-parsing-with-polycom-phones.html" title="DHCP Notify Parsing with Polycom phones" /><author><name>jgarland79</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_HMOdVnllr_U/SNpzpBatkiI/AAAAAAAABK4/lFgKkLHRGAY/S220/jason+eye.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.jasongarland.com/2010/05/dhcp-notify-parsing-with-polycom-phones.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UBSHg_eSp7ImA9WxFQFEw.&quot;"><id>tag:blogger.com,1999:blog-19789023.post-131072726489343588</id><published>2010-01-14T15:01:00.009-05:00</published><updated>2010-05-09T10:27:39.641-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-09T10:27:39.641-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="api" /><category scheme="http://www.blogger.com/atom/ns#" term="stats" /><category scheme="http://www.blogger.com/atom/ns#" term="ted5000" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="twitter" /><category scheme="http://www.blogger.com/atom/ns#" term="perl" /><category scheme="http://www.blogger.com/atom/ns#" term="energy" /><title>Twitter update your energy usage using a TED 5000</title><content type="html">&lt;a HREF="http://www.theenergydetective.com/ted-5000-overview.html"&gt;The Energy Detective 5000&lt;/A&gt; has an &lt;a HREF="http://www.theenergydetective.com/ted-5000-developer-and-api.html"&gt;API&lt;/A&gt; that can be polled for data using this simple perl script that I wrote.&lt;br /&gt;
&lt;br /&gt;
You can find my Twitter feed here: &lt;a href="http://twitter.com/jgarland79power"&gt;http://twitter.com/jgarland79power&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a HREF="http://www.amazon.com/TED-5000-C-The-Energy-Detective/dp/B003C12U3E?tag=fb23-20"&gt;Order your own TED 5000 here.&lt;/A&gt;&lt;br /&gt;
&lt;br /&gt;
If you are running Debian Linux you will need to install a few dependencies:&lt;br /&gt;
sudo apt-get install libxml-simple-perl libwww-curl-perl&lt;br /&gt;
&lt;br /&gt;
And you can automate the execution of this script with an hourly cron job:&lt;br /&gt;
Run: crontab -e&lt;br /&gt;
and then add this line (assuming you put my script in ~/bin/:&lt;br /&gt;
0 * * * * ~/bin/twitterpower.pl&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: html"&gt;#!/usr/bin/perl

# Written by Jason Garland @ http://blog.jasongarland.com/

my $twitter_user="jgarland79power";
my $twitter_password="super_secret_password";

my $ted_ip="192.168.3.132";

# use module
use XML::Simple;
#use Data::Dumper;
use WWW::Curl::Easy;

sub write_callback {
 my ($chunk,$variable)=@_;
 # store each chunk/line separately
 # This should be faster than using $$varable .= $chunk;
 push @{$variable}, $chunk;
 return length($chunk);
}

my $curl = WWW::Curl::Easy-&gt;new();

my @body;
$curl-&gt;setopt(CURLOPT_WRITEFUNCTION, \&amp;amp;write_callback);
$curl-&gt;setopt(CURLOPT_FILE, \@body);
$curl-&gt;setopt(CURLOPT_URL, "http://$ted_ip/api/LiveData.xml");
$curl-&gt;perform;
my $body=join("",@body);

# create object
$xml = new XML::Simple;

# parse XML
$data = $xml-&gt;XMLin($body);

my $PowerTDY=$data-&gt;{Power}-&gt;{Total}-&gt;{PowerTDY};

$status="used $PowerTDY watt hours of #electricity since midnight today. Find out more here: http://a1.ly/7";

print $status,"\n";
$curl-&gt;setopt(CURLOPT_URL, "http://twitter.com/statuses/update.json" );
$curl-&gt;setopt(CURLOPT_POST, 1 );
$curl-&gt;setopt(CURLOPT_POSTFIELDS, "status=$status" );
$curl-&gt;setopt(CURLOPT_USERPWD, "$twitter_user:$twitter_password" );
$curl-&gt;perform;
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19789023-131072726489343588?l=blog.jasongarland.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyCapeIsStuckInThePhoneBooth/~4/cipiBKrucz0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jasongarland.com/feeds/131072726489343588/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=19789023&amp;postID=131072726489343588" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/131072726489343588?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/131072726489343588?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyCapeIsStuckInThePhoneBooth/~3/cipiBKrucz0/twitter-update-you-energy-usage-using.html" title="Twitter update your energy usage using a TED 5000" /><author><name>jgarland79</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_HMOdVnllr_U/SNpzpBatkiI/AAAAAAAABK4/lFgKkLHRGAY/S220/jason+eye.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.jasongarland.com/2010/01/twitter-update-you-energy-usage-using.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MHSXw6fCp7ImA9WxFQEkQ.&quot;"><id>tag:blogger.com,1999:blog-19789023.post-8073437180720659363</id><published>2007-07-20T15:15:00.002-04:00</published><updated>2010-05-08T00:03:58.214-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-08T00:03:58.214-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="KML" /><category scheme="http://www.blogger.com/atom/ns#" term="iPhone" /><category scheme="http://www.blogger.com/atom/ns#" term="GPS" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Maps" /><title>Use a GPS with your iPhone</title><content type="html">Here is a little trick to allow you to use a GPS feed with Google Maps on your iPhone.&lt;br /&gt;
&lt;br /&gt;
The Google Maps app on the iPhone is similar to the Google Maps for Mobile. A while back I discovered that you would input a URL for a KML feed into Google Maps mobile so when I got my iPhone I gave it a try on there too AND IT WORKED!&lt;br /&gt;
&lt;br /&gt;
Simply type in the URL for a KML feed into the search box on the Google Maps app on your iPhone.&lt;br /&gt;
&lt;br /&gt;
So how do we get our current GPS cords into the iPhone? You use a separate device like the Motorola i415 that you can pick up at Walmart for ~ $30 and load up the &lt;a href="http://mologogo.com"&gt;mologogo.com&lt;/a&gt; application on it. The phone can then transmit your coordinates to a web server where you can generate a KML feed for your iPhone.&lt;br /&gt;
&lt;br /&gt;
You can find sample scripts on how to build the KML feed here: &lt;a href="http://mologogo.wikispaces.com/"&gt;http://mologogo.wikispaces.com/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Here is the feed for mine: &lt;a href="http://gps.jasongarland.com/earth1.kml"&gt;http://gps.jasongarland.com/earth1.kml&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Type it into the search box on your iPhone and you will see my current location. (Assuming I have the Mologogo app running)&lt;br /&gt;
&lt;br /&gt;
NO STALKERS PLEASE! This means don't attempt to go to any of the locations on this map to try and find me. If you want to talk to me you can send me a message on this blog.&lt;br /&gt;
&lt;a HREF="mailto:3175312913@tmomail.net"&gt;&lt;/A&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19789023-8073437180720659363?l=blog.jasongarland.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MyCapeIsStuckInThePhoneBooth/~4/_V7C5oZC3v4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jasongarland.com/feeds/8073437180720659363/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=19789023&amp;postID=8073437180720659363" title="12 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/8073437180720659363?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/19789023/posts/default/8073437180720659363?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MyCapeIsStuckInThePhoneBooth/~3/_V7C5oZC3v4/use-gps-with-your-iphone.html" title="Use a GPS with your iPhone" /><author><name>jgarland79</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="21" src="http://2.bp.blogspot.com/_HMOdVnllr_U/SNpzpBatkiI/AAAAAAAABK4/lFgKkLHRGAY/S220/jason+eye.jpg" /></author><thr:total>12</thr:total><feedburner:origLink>http://blog.jasongarland.com/2007/07/use-gps-with-your-iphone.html</feedburner:origLink></entry></feed>

