<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>hmmm.... &#187; geek</title>
	<atom:link href="http://michael.thegrebs.com/category/geek/feed/" rel="self" type="application/rss+xml" />
	<link>http://michael.thegrebs.com</link>
	<description></description>
	<lastBuildDate>Thu, 27 Oct 2011 18:48:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Whole House Energy Monitoring</title>
		<link>http://michael.thegrebs.com/2011/02/27/whole-house-energy-monitoring/</link>
		<comments>http://michael.thegrebs.com/2011/02/27/whole-house-energy-monitoring/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 00:18:20 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[eco]]></category>
		<category><![CDATA[electricity]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[green]]></category>
		<category><![CDATA[money]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/?p=277</guid>
		<description><![CDATA[I placed an order for a TED 5000 on February 10th. The TED 5000 is a whole house energy monitor &#8212; a kill-a-watt for the whole house. I&#8217;ve spent a lot of time reading about the products available in this &#8230; <a href="http://michael.thegrebs.com/2011/02/27/whole-house-energy-monitoring/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I placed an order for a <a href="http://www.theenergydetective.com/ted-5000/features">TED 5000</a> on February 10th. The <em>TED 5000</em> is a whole house energy monitor &#8212; a kill-a-watt for the whole house.  I&#8217;ve spent a lot of time reading about the products available in this space.   I&#8217;ve looked at about 10 products for whole house energy monitoring and three jump to the top.  The <a href="http://www.wattvision.com/">wattvision</a>, <a href="http://www.powerhousedynamics.com/content/solutions">PowerHouse Dynamics&#8217;s eMonitor</a>, and the <a href="http://www.theenergydetective.com/ted-5000/features">TED 5000</a>.</p>
<p><a href="http://michael.thegrebs.com/wp-content/uploads/2011/02/wattvision-analog-sensor-beta.jpg"><img class="alignright size-medium wp-image-281" title="wattvision-analog-sensor-beta" src="http://michael.thegrebs.com/wp-content/uploads/2011/02/wattvision-analog-sensor-beta-300x168.jpg" alt="" width="300" height="168" /></a>The <a href="http://www.wattvision.com/">wattvision</a> (~$250) most closely resembles the TED in terms of price and features.  The wattvision uses an optical sensor that counts the rotation of the disk in the utility meter.  This sensor is connected to the device, which is powered by an AC adapter and sends the data to wattvision&#8217;s servers via your home wifi network.  This is the easiest to install, but would require running the sensor cable from the outside to inside. Additionally, all data is sent to wattvision&#8217;s servers.  I&#8217;d also need to subscribe to wattvision&#8217;s <a href="http://www.wattvision.com/info/pricing">$8.99/month service</a> for the other features I want (like API access.)</p>
<p><img class="alignright size-medium wp-image-283" title="powerhouse dynamics eMonitor" src="http://michael.thegrebs.com/wp-content/uploads/2011/02/Picture29-300x276.png" alt="" width="300" height="276" />The <a href="http://www.powerhousedynamics.com/content/solutions">eMonitor</a> (starting around $688 for 12 circuits) is something I just recently discovered.  Really, this is my ideal solution: for <a href="http://www.smarthome.com/90428/PowerHouse-Dynamics-eMonitor-44-Intelligent-Residential-Power-Usage-Monitor/p.aspx">$1,277</a>, you get the necessary equipment for monitoring the power feed plus 44 individual breakers.  This gives a much better view of where your power consumption is going.  Per-circuit monitoring also enables nifty alerts &#8212; an SMS for power draw in the kids room after school starts on a week day, or if the compressor on the fridge is running longer than normal (time to clean the coils, etc.) I just can&#8217;t justify the expense at $1,277.  The price is certainly reasonable for what you are getting, but there is no way the wife would approve the purchase :/</p>
<p><img class="alignright size-full wp-image-285" title="ted-5000-g" src="http://michael.thegrebs.com/wp-content/uploads/2011/02/ted-5000-g.png" alt="" width="265" height="265" /><a href="http://www.theenergydetective.com/ted-5000/features">The Energy Detective</a> (TED, ~$200) from Energy Inc provides full house consumption monitoring like the wattvision.  Unlike the wattvision, the data is stored and served from a gateway device on your home network.  Two current transformers go around the two lines for the incoming split phase feed.  These are connected to a box, which is installed next-to-or-inside the breaker panel. The breaker panel is powered and communicates via a connection to a breaker on each phase.  The gateway is installed elsewhere in the house and plugs into an outlet for power and communication with the current sensor, and via Ethernet to serve its precious data up.</p>
<p>So, February 10th I finally got approval from the wife to order the TED and purchased the <a href="http://www.theenergydetective.com/ted5000-g">TED 5000-G</a> with overnight shipping. It arrived as expected on the 11th and I was eager to install it.  A coworker (also interested in the TED,) came over for dinner and to help out with the installation.  I was too excited to wait for his arrival and finished the install before he got there ;-).</p>
<p>It&#8217;s now February 27th and I still don&#8217;t have a working TED system.  The gateway I was originally shipped has a defective Ethernet port. It&#8217;s already been to Energy Inc and back and is <span style="text-decoration: underline;">still</span> defective.  They finally agreed to ship me a replacement gateway on the 25th but sent it with 2nd day shipping, which has the same transit time as ground (just more expensive.) The new unit should arrive March 1st.</p>
<p><div id="attachment_318" class="wp-caption alignright" style="width: 143px"><a href="http://michael.thegrebs.com/wp-content/uploads/2011/02/TED5000-display.png"><img src="http://michael.thegrebs.com/wp-content/uploads/2011/02/TED5000-display-e1298852839843-133x150.png" alt="" title="Optional TED Display" width="133" height="150" class="size-thumbnail wp-image-318" /></a><p class="wp-caption-text">Optional TED Display</p></div><br />
I&#8217;m quite eager to get things up and running, and anticipate no problems once I have a working gateway. The most common issue people run into is excessive noise or attenuation of the <a href="http://en.wikipedia.org/wiki/Power_line_communication">power line communications</a> (PLC) signal between the sensor and gateway. The forums seem to be full of people with lots of grief around this issue. The gateway does contain a <a href="http://en.wikipedia.org/wiki/Zigbee">ZigBee</a> transceiver but that is for communication with the <a href="http://www.theenergydetective.com/additonal-ted-5000-display">optional wireless display</a>. Some have questioned switching from PLC to <a href="http://en.wikipedia.org/wiki/Zigbee">ZigBee</a> for the current data but a device inside the metal breaker box would have a hard time getting any sort of RF signal out, and PLC seems the most logical solution (even with it&#8217;s inherent issues.)  Of course, this is easy for me to say since I don&#8217;t anticipate having any issue with PLC. I can see a clear ~3-4Vpk signal on the zero crossing of the A/C at the outlet I plan to install the gateway:</p>
<p><img src="http://thegrebs.com/~michael/plc_w_ac.png" alt="AC with TED MCU transmissions" width="320" height="234" /></p>
<p>I have another blog post in the works documenting my seemingly unending issues with the other half of the TED solution: the support staff and engineers backing the product. To be fair, the support staff is 1:2 &#8212; the second guy I spoke to there was great, but I&#8217;m pretty sure their engineers shouldn&#8217;t be allowed to know customers even exist, let alone talk to them on the phone. But, this is a story for my next blog post.</p>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2011/02/27/whole-house-energy-monitoring/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>multi-multi-multi function office machines</title>
		<link>http://michael.thegrebs.com/2008/08/28/multi-multi-multi-function-office-machines/</link>
		<comments>http://michael.thegrebs.com/2008/08/28/multi-multi-multi-function-office-machines/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 21:18:23 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[copiers]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/2008/08/28/multi-multi-multi-function-office-machines/</guid>
		<description><![CDATA[Currently in a waiting room and CNN is on. There was just a commercial for a Sharp deep freezer sized copier/scanner/printer/sink. The business person googled for a restaurant to take a client to on the built in touch screen then &#8230; <a href="http://michael.thegrebs.com/2008/08/28/multi-multi-multi-function-office-machines/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Currently in a waiting room and CNN is on.  There was just a commercial for a Sharp deep freezer sized copier/scanner/printer/sink.  The business person googled for a restaurant to take a client to on the built in touch screen then presses a button to print a full-color map to the restaurant.  What business person would go to the copy building (a room is not big enough) to google a restaurant?</p>
<p>Sorry check back later for pics, Steve Jobs says I don&#8217;t need copy &#038; paste as I&#8217;m sending this from the wordpress app on my iPhone.</p>
<p><strong>Update:</strong><br />
<img src="http://michael.thegrebs.com/wp-content/uploads/2008/08/sharp-mx-m1100-300x300.jpg" alt="" title="sharp-mx-m1100" width="300" height="300" class="alignright size-medium wp-image-135" /><br />
One note of clearification, as crazy as the feature set on these machines is, I still wouldn&#8217;t mind having one to use whenever I wanted, imagine what you could do with it!  The commercial I saw is available in flash form at<br />
<a href="http://www.sharpusa.com/files/workwithoutlimits.swf">http://www.sharpusa.com/files/workwithoutlimits.swf</a>.  </p>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2008/08/28/multi-multi-multi-function-office-machines/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Weather in Screen Statusbar</title>
		<link>http://michael.thegrebs.com/2008/06/05/weather-in-screen-statusbar/</link>
		<comments>http://michael.thegrebs.com/2008/06/05/weather-in-screen-statusbar/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 03:06:14 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[screen]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/?p=117</guid>
		<description><![CDATA[Caspar Clemens Mierau recently wrote about a nifty Debian package named weather-util and his method for embedding the current temperature into the screen status bar. Quite nifty. I did the same with one small exception, including the predicted probability of &#8230; <a href="http://michael.thegrebs.com/2008/06/05/weather-in-screen-statusbar/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://michael.thegrebs.com/wp-content/uploads/2008/06/screen-weather.png" alt="" title="Weather in Screen" width="279" height="49" class="alignright size-full wp-image-120" /><br />
Caspar Clemens Mierau <a href="http://www.screenage.de/blog/2008/06/04/my-package-of-the-day-weather-util-weather-report-and-forecast-for-the-console/">recently wrote</a> about a nifty Debian package named <tt>weather-util</tt> and his method for embedding the current temperature into the screen status bar.  Quite nifty.  I did the same with one small exception, including the predicted probability of precipitation if it exists.</p>
<p>My one liner that runs from cron (split to multiple lines for readability):</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;weather -iKACY -f | head -n 9 &nbsp;| \<br />
&nbsp; &nbsp; &nbsp;awk '/Temperature/ { print $2 &quot;F&quot; } <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /Relative/ { print $3 } <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /precipitation/ { sub (/ chance of.+$/, &quot;&quot;); print &quot;POP &quot; $NF }' | \<br />
&nbsp; &nbsp; &nbsp;xargs echo &gt; /home/michael/.weather</div></div>
<p>More details on the full implementation in the original post over at <a href="http://www.screenage.de/blog/2008/06/04/my-package-of-the-day-weather-util-weather-report-and-forecast-for-the-console/">Caspar Clemens Mierau&#8217;s blog</a>.  And yes, I stole his loadavg stuff too ;)</p>
<p><strong>UPDATE:</strong></p>
<p>Silly me, upon further investigation, two things to note.  First, the -i option applies only to current conditions and not to the forecast.  In my case I actually want <tt>weather -f ACY</tt> and <tt>/etc/weatherrc</tt> takes care of the rest.  Secondly, the field number for the precipitation percentage changes, oops.  I&#8217;ve correctly accounted for this in the updated awk script above.</p>
<p>After making these changes I decided the awk script was getting a bit long for a single line so I went all out creating <tt>~/bin/weather.awk</tt>:</p>
<div class="codecolorer-container awk vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="awk codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color:#808080;">#!/usr/bin/awk -f</span><br />
<br />
<span style="color:black;">/</span>Temperature<span style="color:black;">/</span> &nbsp; &nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">&#123;</span> temp = <span style="color:#000088;">$2</span> <span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
<span style="color:black;">/</span>Relative Humidity<span style="color:black;">/</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span> rh = <span style="color:#000088;">$3</span> &nbsp; <span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
<span style="color:black;">/</span>precipitation<span style="color:black;">/</span> &nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">&#123;</span> <span style="color: #07D589; font-weight: bold;">sub</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color:black;">/</span> chance of.<span style="color:black;">+</span>$<span style="color:black;">/</span>, <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; precip = <span style="color:#000088;">$NF</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; exit<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
<br />
<span style="color: #C20CB9; font-weight: bold;">END</span><span style="color: #7a0874; font-weight: bold;">&#123;</span> <span style="color: #0BD507; font-weight: bold;">print</span> temp <span style="color: #ff0000;">&quot;F &quot;</span> rh <span style="color: #ff0000;">&quot; POP &quot;</span> precip <span style="color: #7a0874; font-weight: bold;">&#125;</span></div></div>
<p>My crontab entry now looks like:</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">*/5 * * * * &nbsp; &nbsp; weather -f ACY | /home/michael/bin/weather.awk &gt; /home/michael/.weather</div></div>
<p>Much simpler.</p>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2008/06/05/weather-in-screen-statusbar/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Most Awesome Command Ever &#8211; timeout</title>
		<link>http://michael.thegrebs.com/2008/05/27/most-awesome-command-ever/</link>
		<comments>http://michael.thegrebs.com/2008/05/27/most-awesome-command-ever/#comments</comments>
		<pubDate>Wed, 28 May 2008 02:09:36 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[neat]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/?p=114</guid>
		<description><![CDATA[I have a Debian Sid box that I&#8217;d been putting off updating for a while so finally got around to doing it tonight. I took the opportunity to do a bit of spring cleaning and purge old packages I installed &#8230; <a href="http://michael.thegrebs.com/2008/05/27/most-awesome-command-ever/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have a Debian Sid box that I&#8217;d been putting off updating for a while so finally got around to doing it tonight.  I took the opportunity to do a bit of spring cleaning and purge old packages I installed to play with and forgot to purge or removed instead of purging.  While doing this I discovered an interestingly named package,</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">timeout</div></div>
<p>.</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">timeout</div></div>
<p>is a dead simple command, everything you need to know about it you can get from the usage information:</p>
<blockquote><p>
[michael@orion(~)] timeout<br />
usage: timeout [-signal] time command&#8230;
</p></blockquote>
<p>And an example:</p>
<blockquote><p>
[michael@orion(~)] timeout 5 cat<br />
Timeout: aborting command &#8220;cat&#8221; with signal 9<br />
Killed<br />
[michael@orion(~)]
</p></blockquote>
<p>How did I not know about this before?!?</p>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2008/05/27/most-awesome-command-ever/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dear Lazzy Web, fingerprint scanning?</title>
		<link>http://michael.thegrebs.com/2008/04/01/osx-fingerprint-scanning/</link>
		<comments>http://michael.thegrebs.com/2008/04/01/osx-fingerprint-scanning/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 00:58:13 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[fingerprint]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/?p=97</guid>
		<description><![CDATA[Anybody know of some open source fingerprint scanning software for OS X? Bonus points if it has magic integration with stuffs like the keychain, auto log-in, screen saver disable, etc. Failing available open source software, what about commercial software? I&#8217;m &#8230; <a href="http://michael.thegrebs.com/2008/04/01/osx-fingerprint-scanning/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Anybody know of some open source fingerprint scanning software for OS X?  Bonus points if it has magic integration with stuffs like the keychain, auto log-in, screen saver disable, etc.</p>
<p>Failing available open source software, what about commercial software?  I&#8217;m aware of software from upek that supports their <a href="http://www.upek.com/solutions/eikon/default.asp">Eikom</a> as well as ancient software from Sony for their Puppy scanner.  I&#8217;m looking for something that would support multiple scanners, ideally the U.are.U stuff.  Though if anybody wanted to trade a pair of USB U.are.U scanners for an Eikom one, that would be great too ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2008/04/01/osx-fingerprint-scanning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t Click Here</title>
		<link>http://michael.thegrebs.com/2008/03/20/dont-click-here/</link>
		<comments>http://michael.thegrebs.com/2008/03/20/dont-click-here/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 22:56:02 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[stupid]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/2008/03/20/dont-click-here/</guid>
		<description><![CDATA[Click this link! [18:54:56] < bhale> mikegrb: they should arrest the googlebot]]></description>
			<content:encoded><![CDATA[<p><a href="http://techdirt.com/articles/20080320/102209599.shtml">Click this link!</a></p>
<blockquote><p>[18:54:56] < bhale> mikegrb: they should arrest the googlebot</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2008/03/20/dont-click-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding a Datastore to an RRD File</title>
		<link>http://michael.thegrebs.com/2007/12/30/adding-a-datastore-to-an-rrd-file/</link>
		<comments>http://michael.thegrebs.com/2007/12/30/adding-a-datastore-to-an-rrd-file/#comments</comments>
		<pubDate>Sun, 30 Dec 2007 18:17:13 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[neat]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[rrd]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/2007/12/30/adding-a-datastore-to-an-rrd-file/</guid>
		<description><![CDATA[Mainly for personal future reference. Adding a DS to a bunch of RRD files is a big pain, RRD doesn&#8217;t have any sort of native mechanism for doing this. The usual procedure is exporting the RRD data to XML, creating &#8230; <a href="http://michael.thegrebs.com/2007/12/30/adding-a-datastore-to-an-rrd-file/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Mainly for personal future reference.</p>
<p>Adding a DS to a bunch of RRD files is a big pain,  RRD doesn&#8217;t have any sort of native mechanism for doing this.  The usual procedure is exporting the RRD data to XML, creating a new rrd file with the old datastores plus your new ones, then importing the data back in from the XML.</p>
<p>A while back I needed to do this for a load of RRDs so I wrote a quick and dirty bash script for it.  Today I had reason to add a DS again but couldn&#8217;t find my script.  A bit of googling was no help either, surely other people have this problem too?  I discovered Nicola Worthington&#8217;s <a href="http://search.cpan.org/~nicolaw/RRD-Simple/lib/RRD/Simple.pm">RRD::Simple</a> contains add_source method so a few moments in <a href="http://macromates.com/">TextMate</a> later we have:</p>
<pre class="textmate-source black_pearl"><span class="source source_perl"></span><span class="meta meta_comment meta_comment_full-line meta_comment_full-line_perl"></span><span class="comment comment_line comment_line_number-sign comment_line_number-sign_perl"></span><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_perl">#</span>!/usr/bin/perl

<span class="keyword keyword_control keyword_control_perl">use</span> strict;
<span class="keyword keyword_control keyword_control_perl">use</span> warnings;

<span class="keyword keyword_control keyword_control_perl">use</span> RRD::Simple();

<span class="storage storage_modifier storage_modifier_perl">my</span> <span class="variable variable_other variable_other_readwrite variable_other_readwrite_global variable_other_readwrite_global_perl"></span><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_perl">$</span>rrd_path = <span class="string string_quoted string_quoted_double string_quoted_double_perl"></span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_perl">"</span>/path/to/dir/of/rrds/<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_perl">"</span>;
<span class="storage storage_modifier storage_modifier_perl">my</span> <span class="variable variable_other variable_other_readwrite variable_other_readwrite_global variable_other_readwrite_global_perl"></span><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_perl">@</span>rrd_files = &lt;<span class="variable variable_other variable_other_readwrite variable_other_readwrite_global variable_other_readwrite_global_perl"></span><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_perl">$</span>rrd_path/*.rrd&gt;;

<span class="storage storage_modifier storage_modifier_perl">my</span> <span class="variable variable_other variable_other_readwrite variable_other_readwrite_global variable_other_readwrite_global_perl"></span><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_perl">$</span>rrd = RRD::Simple<span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_perl">-&gt;</span>new();

<span class="keyword keyword_control keyword_control_perl">for</span> <span class="storage storage_modifier storage_modifier_perl">my</span> <span class="variable variable_other variable_other_readwrite variable_other_readwrite_global variable_other_readwrite_global_perl"></span><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_perl">$</span>file (<span class="variable variable_other variable_other_readwrite variable_other_readwrite_global variable_other_readwrite_global_perl"></span><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_perl">@</span>rrd_files) {
<span class="meta meta_leading-tabs"></span><span class="meta meta_odd-tab">    </span><span class="support support_function support_function_perl">print</span> <span class="string string_quoted string_quoted_double string_quoted_double_perl"></span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_perl">"</span>Processing <span class="variable variable_other variable_other_readwrite variable_other_readwrite_global variable_other_readwrite_global_perl"></span><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_perl">$</span>file...<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_perl">"</span>;
<span class="meta meta_leading-tabs"></span><span class="meta meta_odd-tab">    </span><span class="variable variable_other variable_other_readwrite variable_other_readwrite_global variable_other_readwrite_global_perl"></span><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_perl">$</span>rrd<span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_perl">-&gt;</span>add_source(<span class="variable variable_other variable_other_readwrite variable_other_readwrite_global variable_other_readwrite_global_perl"></span><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_perl">$</span>file, <span class="string string_quoted string_quoted_single string_quoted_single_perl"></span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_perl">'</span>DS_name<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_perl">'</span><span class="keyword keyword_operator keyword_operator_comparison keyword_operator_comparison_perl"> =&gt;</span> <span class="string string_quoted string_quoted_single string_quoted_single_perl"></span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_perl">'</span>DERIVE<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_perl">'</span>);
<span class="meta meta_leading-tabs"></span><span class="meta meta_odd-tab">    </span><span class="support support_function support_function_perl">print</span> <span class="string string_quoted string_quoted_double string_quoted_double_perl"></span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_perl">"</span> ok.<span class="constant constant_character constant_character_escape constant_character_escape_perl">\n</span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_perl">"</span>;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2007/12/30/adding-a-datastore-to-an-rrd-file/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>TextMate Rocks</title>
		<link>http://michael.thegrebs.com/2007/11/21/textmate-rocks/</link>
		<comments>http://michael.thegrebs.com/2007/11/21/textmate-rocks/#comments</comments>
		<pubDate>Wed, 21 Nov 2007 22:06:37 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/2007/11/21/textmate-rocks/</guid>
		<description><![CDATA[TextMate is the best text editor ever. That is all.]]></description>
			<content:encoded><![CDATA[<p><a href="http://macromates.com/">TextMate</a> is the best text editor <i>ever</i>.</p>
<p>That is all.</p>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2007/11/21/textmate-rocks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nerd god I am</title>
		<link>http://michael.thegrebs.com/2007/10/26/nerd-god-i-am/</link>
		<comments>http://michael.thegrebs.com/2007/10/26/nerd-god-i-am/#comments</comments>
		<pubDate>Fri, 26 Oct 2007 21:24:31 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/2007/10/26/nerd-god-i-am/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nerdtests.com/nt2ref.html"><br />
<img src="http://www.nerdtests.com/images/badge/nt2/123068f724636c9d.png" alt="NerdTests.com says I'm an Uber-Dorky Nerd God.  What are you?  Click here!"/><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2007/10/26/nerd-god-i-am/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynex Support Sucks</title>
		<link>http://michael.thegrebs.com/2007/01/11/dynex-sucks/</link>
		<comments>http://michael.thegrebs.com/2007/01/11/dynex-sucks/#comments</comments>
		<pubDate>Thu, 11 Jan 2007 23:00:28 +0000</pubDate>
		<dc:creator>mikegrb</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[best buy]]></category>
		<category><![CDATA[dynex]]></category>
		<category><![CDATA[support]]></category>

		<guid isPermaLink="false">http://michael.thegrebs.com/2007/01/11/dynex-sucks/</guid>
		<description><![CDATA[Dynex is the Best Buy brand. We were recently there and I noticed a $20 webcam that said it supported OS X 10.1 and greater on the box so I decided to purchase it. I installed the included drivers and &#8230; <a href="http://michael.thegrebs.com/2007/01/11/dynex-sucks/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dynex is the Best Buy brand.  We were recently there and I noticed a $20 webcam that said it supported OS X 10.1 and greater on the box so I decided to purchase it.  I installed the included drivers and software and started up their software.  I just get a black screen with &#8220;No video input.&#8221;  The LED on the webcam does turn on and off appropriately.  I took it back and exchanged it thinking the unit was deffective.  The new one had the same problem.<br />
Unfortunately their included drivers are as ancient as the version of OS X referenced on the box.  There are a few commercial and open source driver sets available for web cam support on OS X but unfortunately this camera isn&#8217;t supported by any of them.  They said they had 24x7x365 support on their website so I figured, what the heck, maybe they have some nice shiny new drivers they forgot to link to on the website.</p>
<p>This is the call:</p>
<p><strong>&#8220;So what seems to be the problem?&#8221;</strong><br />
<em> &#8220;Well I have a Mac and the box said the Mac is supported so I installed the drivers and software that came with it and the software that came with it says there is no video from the cam&#8221;</em><br />
<strong> &#8220;Oh, well since you said you have a Mac you will need to contact the manufacturer of the computer<br />
to see if&#8230;&#8221;</strong><br />
<em>&#8220;There is nothing wrong with the computer.&#8221;</em><br />
<strong> &#8220;Right but maybe there is some sort of driver that you need for the Mac to make it work.&#8221;</strong><br />
<em> &#8220;Exactly, and that driver comes from the manufacturer of the device, that would be Dynex, whom you<br />
represent.&#8221;</em><br />
<strong> Click.</strong></p>
<p>Just to be clear, that  click there at the end is them hanging up on me.  I guess they couldn&#8217;t argue with that.</p>
]]></content:encoded>
			<wfw:commentRss>http://michael.thegrebs.com/2007/01/11/dynex-sucks/feed/</wfw:commentRss>
		<slash:comments>111</slash:comments>
		</item>
	</channel>
</rss>

