<?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>MrBalky Heavy Industries</title>
	<atom:link href="http://www.mrbalky.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mrbalky.com</link>
	<description>Fat free with endorphins, anti-oxidants, bioflavonoids, creatine, glucosamine and caffeine!</description>
	<lastBuildDate>Sun, 14 Mar 2010 20:29:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Access -&gt; MySQL</title>
		<link>http://www.mrbalky.com/2009/10/23/access-mysql/</link>
		<comments>http://www.mrbalky.com/2009/10/23/access-mysql/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 19:54:09 +0000</pubDate>
		<dc:creator>mrbalky</dc:creator>
				<category><![CDATA[experiments]]></category>
		<category><![CDATA[hacks]]></category>

		<guid isPermaLink="false">http://www.mrbalky.com/?p=460</guid>
		<description><![CDATA[Long, long ago I hacked together a Java app that imports the freedb CD info files from my local drive to an MS Access database.  The CD ripper application I use creates a local freedb with a file for each CD I rip (all of them).  So importing from that freedb to a [...]]]></description>
			<content:encoded><![CDATA[<p>Long, long ago I hacked together a Java app that imports the <a href="http://www.freedb.org/">freedb</a> CD info files from my local drive to an <a href="http://en.wikipedia.org/wiki/Microsoft_Access">MS Access</a> database.  The CD ripper application I use creates a local freedb with a file for each CD I rip (all of them).  So importing from that freedb to a database seemed a natural thing to do.</p>
<p>Access was all that I had access (heh) to, and it had a &#8220;music collection&#8221; database template, so with slight modification to the template that&#8217;s what I used.</p>
<p>Well now, I no longer have access (heh) to Access, Access is a <a href="http://www.urbandictionary.com/define.php?term=PITA">PITA</a>, and I already have <a href="http://www.mysql.com/">MySQL</a> available on my home server, so I figured it was time to finally migrate.</p>
<p>I found a handy application called <a href="http://www.navicat.com/">Navicat</a> (fully functional trial), that will import directly from the Access .MDB file to a MySQL database.</p>
<p>While Navicat mostly worked, I was not quite done.  The import did not properly get the auto_increment attribute on the tables&#8217; &#8216;id&#8217; column.  Also, the Access database tables had spaces in their names which is kind of a drag.  Fortunately both were easily solved by exporting from MySQL to text using mysqldump, editing the .sql file that resulted, and then reimporting to MySQL from the .sql file.</p>
<p>Sure it&#8217;s a ridiculous thing nobody in their right mind will ever have to do, but I&#8217;m not in my right mind.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrbalky.com/2009/10/23/access-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crosier Mountain</title>
		<link>http://www.mrbalky.com/2009/10/17/crosier-mountain/</link>
		<comments>http://www.mrbalky.com/2009/10/17/crosier-mountain/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 11:45:03 +0000</pubDate>
		<dc:creator>mrbalky</dc:creator>
				<category><![CDATA[bike]]></category>
		<category><![CDATA[mtb]]></category>

		<guid isPermaLink="false">http://www.mrbalky.com/?p=439</guid>
		<description><![CDATA[It&#8217;s a long way away, but we finally got up there to do this loop.  Starting with about 5.5 miles climbing on the road, you then get another 5 miles or so of singletrack climb.  This singletrack is minimally technical; just a good steady climb.
Once at the top, there are some beautiful views [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a long way away, but we finally got up there to do this loop.  Starting with about 5.5 miles climbing on the road, you then get another 5 miles or so of singletrack climb.  This singletrack is minimally technical; just a good steady climb.</p>
<p>Once at the top, there are some beautiful views back into Rocky Mountain National Park from the top.  A spur of trail (that we didn&#8217;t take) gets you to the true summit of Crosier.</p>
<p>Then it&#8217;s 4.5 miles of descent, some of it pretty sketchy and loose, but still pretty fun.</p>
<p>I&#8217;d do it again:</p>
<p><a href="http://www.flickr.com/photos/mrbalkytoo/sets/72157622513236414/">Flickr set</a>:<br />
<object width="400" height="300"><param name="flashvars" value="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fmrbalkytoo%2Fsets%2F72157622513236414%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fmrbalkytoo%2Fsets%2F72157622513236414%2F&#038;set_id=72157622513236414&#038;jump_to="></param><param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=71649"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/slideshow/show.swf?v=71649" allowFullScreen="true" flashvars="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fmrbalkytoo%2Fsets%2F72157622513236414%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fmrbalkytoo%2Fsets%2F72157622513236414%2F&#038;set_id=72157622513236414&#038;jump_to=" width="400" height="300"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrbalky.com/2009/10/17/crosier-mountain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O Canada</title>
		<link>http://www.mrbalky.com/2009/10/05/o-canada/</link>
		<comments>http://www.mrbalky.com/2009/10/05/o-canada/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 20:55:25 +0000</pubDate>
		<dc:creator>mrbalky</dc:creator>
				<category><![CDATA[bike]]></category>
		<category><![CDATA[mtb]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://www.mrbalky.com/?p=415</guid>
		<description><![CDATA[
In February, after my 3rd knee surgery since 2005, I had no plans or expectations for my riding this summer.  And when all my friends made the commitment to a Whistler, BC trip in April, I just figured I was out.  But as the summer got going, I was feeling pretty good, and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mrbalky.com/wp-content/uploads/ca-lgflag.gif"><img src="http://www.mrbalky.com/wp-content/uploads/ca-lgflag-300x151.gif" alt="ca-lgflag" title="ca-lgflag" width="300" height="151" class="alignnone size-medium wp-image-423" /></a></p>
<p>In February, after my 3rd knee surgery since 2005, I had no plans or expectations for my riding this summer.  And when all my friends made the commitment to a Whistler, BC trip in April, I just figured I was out.  But as the summer got going, I was feeling pretty good, and riding pretty clean, and got the big encouragement from Steph, so I was in after all.</p>
<p>Scheduling difficulties meant that I would only get 3 days there instead of the 5 my friends would, but nevertheless, I was in.</p>
<p>We flew into Seattle, and rented a couple of cars there.  Flights to Vancouver were 2 or more times the price.  It means twice the driving, and add a <a href="http://www.cbp.gov/xp/cgov/toolbox/contacts/ports/wa/3004.xml">border crossing</a>, but we figured it was worth it to save a couple hundred each for 7 people.</p>
<p>The <a href="http://www.whistlerbike.com/index.htm">Whistler Bike Park</a> is incredibly well managed, and loaded with great riding.  There are ride-arounds for most of the big and committing features.  I spent 2 days there, and 1 day riding Vancouver&#8217;s North Shore.</p>
<p>It was incredible riding.  There&#8217;s a reason half the photos in bike magazines are from BC.  I thought maybe this was a once in a lifetime trip, but now I sure hope it isn&#8217;t.</p>
<p>The bike park was amazing fun, but next time I want more North Shore.  The incredible amount of work done there to build trails and mind-blowing stunts was astounding.</p>
<p>Friends of Tom from SoCal were there at the same time we were, and very very kindly showed us around the bike park, and especially the North Shore.  They were very patient with our (meaning my) slow pace.</p>
<p>Lessons learned:</p>
<p>Park bikes are very heavy and don&#8217;t really pedal at all.  They&#8217;re kind of inappropriate for my riding style on North Shore rides.<br />
<a href="http://www.mrbalky.com/wp-content/uploads/FlatlinePark-MD.jpg"><img src="http://www.mrbalky.com/wp-content/uploads/FlatlinePark-MD.jpg" alt="FlatlinePark-MD" title="FlatlinePark-MD" width="472" height="296" class="alignnone size-full wp-image-418" /></a><br />
So for me, park bike for park days, trail or all-mountain bike for the other stuff. </p>
<p>We had a condo, but the days were long and tiring, so we ate out all the time.  Restaurants in Whistler are breathtakingly expensive.  We could have hired a chef to cook for us in the condo and still come out ahead.<br />
<a href="http://www.mrbalky.com/wp-content/uploads/ADIP170602_T.jpg"><img src="http://www.mrbalky.com/wp-content/uploads/ADIP170602_T.jpg" alt="ADIP170602_T" title="ADIP170602_T" width="256" height="169" class="alignnone size-full wp-image-425" /></a></p>
<p>There&#8217;s no good beer there.  And it&#8217;s expensive.  Buy in Bellingham, WA on your way in.  (In fairness, we did receive this tip from others, but were too preoccupied with getting there.)<br />
<a href="http://www.mrbalky.com/wp-content/uploads/14-ImageResource.gif"><img src="http://www.mrbalky.com/wp-content/uploads/14-ImageResource-231x300.gif" alt="14-ImageResource" title="14-ImageResource" width="231" height="300" class="alignnone size-medium wp-image-426" /></a></p>
<p>Body armor and full-face helmets get pretty sweaty and stinky.  Since it&#8217;s somebody else&#8217;s stink, rented armor and rented full-face helmets are even worse.  At least buy your own helmet.<br />
<a href="http://www.mrbalky.com/wp-content/uploads/bell_bellisticmatteblack_09_m.jpg"><img src="http://www.mrbalky.com/wp-content/uploads/bell_bellisticmatteblack_09_m-300x272.jpg" alt="bell_bellisticmatteblack_09_m" title="bell_bellisticmatteblack_09_m" width="300" height="272" class="alignnone size-medium wp-image-428" /></a></p>
<p>Allow extra time for the border crossing.  <a href="http://www.wsdot.wa.gov/Congestion/border/TravelDelays.htm">Check the wait times</a>.<br />
<a href="http://www.mrbalky.com/wp-content/uploads/250px-Peacearch-usside.jpg"><img src="http://www.mrbalky.com/wp-content/uploads/250px-Peacearch-usside-225x300.jpg" alt="250px-Peacearch-usside" title="250px-Peacearch-usside" width="225" height="300" class="alignnone size-medium wp-image-429" /></a></p>
<p>Take lots of photos:</p>
<p>Day 1; Whistler Bike Park:<br />
<object width="400" height="300"><param name="flashvars" value="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fmrbalkytoo%2Fsets%2F72157623619855290%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fmrbalkytoo%2Fsets%2F72157623619855290%2F&#038;set_id=72157623619855290&#038;jump_to="></param><param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=71649"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/slideshow/show.swf?v=71649" allowFullScreen="true" flashvars="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fmrbalkytoo%2Fsets%2F72157623619855290%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fmrbalkytoo%2Fsets%2F72157623619855290%2F&#038;set_id=72157623619855290&#038;jump_to=" width="400" height="300"></embed></object></p>
<p>Day 2; More Whistler Bike Park<br />
<object width="400" height="300"><param name="flashvars" value="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fmrbalkytoo%2Fsets%2F72157623619871960%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fmrbalkytoo%2Fsets%2F72157623619871960%2F&#038;set_id=72157623619871960&#038;jump_to="></param><param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=71649"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/slideshow/show.swf?v=71649" allowFullScreen="true" flashvars="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fmrbalkytoo%2Fsets%2F72157623619871960%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fmrbalkytoo%2Fsets%2F72157623619871960%2F&#038;set_id=72157623619871960&#038;jump_to=" width="400" height="300"></embed></object></p>
<p>Day 3; Vancouver, North Shore:<br />
<object width="400" height="300"><param name="flashvars" value="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fmrbalkytoo%2Fsets%2F72157623619887158%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fmrbalkytoo%2Fsets%2F72157623619887158%2F&#038;set_id=72157623619887158&#038;jump_to="></param><param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=71649"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/slideshow/show.swf?v=71649" allowFullScreen="true" flashvars="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fmrbalkytoo%2Fsets%2F72157623619887158%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fmrbalkytoo%2Fsets%2F72157623619887158%2F&#038;set_id=72157623619887158&#038;jump_to=" width="400" height="300"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrbalky.com/2009/10/05/o-canada/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recent videos</title>
		<link>http://www.mrbalky.com/2009/07/16/recent-videos/</link>
		<comments>http://www.mrbalky.com/2009/07/16/recent-videos/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 15:13:52 +0000</pubDate>
		<dc:creator>mrbalky</dc:creator>
				<category><![CDATA[bike]]></category>
		<category><![CDATA[mtb]]></category>

		<guid isPermaLink="false">http://www.mrbalky.com/?p=410</guid>
		<description><![CDATA[I have nothing really to say.
Vimeo works better than Google with the AVIs from my new camera.
The log bridges on Little Raven can be tricky:

little raven 1 from charlie wanek on Vimeo.
This video notwithstanding, Casey handled the LR/SSV ride with few problems:

casey &#8211; little raven from charlie wanek on Vimeo.

ssv 2 from charlie wanek on [...]]]></description>
			<content:encoded><![CDATA[<p>I have nothing really to say.</p>
<p>Vimeo works better than Google with the AVIs from my new camera.</p>
<p>The log bridges on Little Raven can be tricky:<br />
<object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5311225&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5311225&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object>
<p><a href="http://vimeo.com/5311225">little raven 1</a> from <a href="http://vimeo.com/mrbalky">charlie wanek</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>This video notwithstanding, Casey handled the LR/SSV ride with few problems:<br />
<object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5541726&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5541726&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object>
<p><a href="http://vimeo.com/5541726">casey &#8211; little raven</a> from <a href="http://vimeo.com/mrbalky">charlie wanek</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p><object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5541747&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5541747&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object>
<p><a href="http://vimeo.com/5541747">ssv 2</a> from <a href="http://vimeo.com/mrbalky">charlie wanek</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p><object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5494915&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5494915&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object>
<p><a href="http://vimeo.com/5494915">south st. vrain 1</a> from <a href="http://vimeo.com/mrbalky">charlie wanek</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p><object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5494867&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5494867&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object>
<p><a href="http://vimeo.com/5494867">kevin &#8211; ssv</a> from <a href="http://vimeo.com/mrbalky">charlie wanek</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p><object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5494975&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5494975&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object>
<p><a href="http://vimeo.com/5494975">tyler &#8211; ssv</a> from <a href="http://vimeo.com/mrbalky">charlie wanek</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>The corkscrew at Keystone looks cool, and is scary at first, but is really more of a gimmick.<br />
<object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5440177&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5440177&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object>
<p><a href="http://vimeo.com/5440177">Keystone corkscrew</a> from <a href="http://vimeo.com/mrbalky">charlie wanek</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrbalky.com/2009/07/16/recent-videos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The VOIP experience</title>
		<link>http://www.mrbalky.com/2009/07/13/the-voip-experience/</link>
		<comments>http://www.mrbalky.com/2009/07/13/the-voip-experience/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 18:27:12 +0000</pubDate>
		<dc:creator>mrbalky</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[voip]]></category>
		<category><![CDATA[vonage]]></category>

		<guid isPermaLink="false">http://www.mrbalky.com/?p=383</guid>
		<description><![CDATA[I&#8217;ve been thinking about it literally for years, and I don&#8217;t know what finally made me do it, but I finally signed up for VOIP service.  I chose Vonage, just because they seemed biggest, best known, and least likely to simply vanish overnight like Sunrocket did a couple years ago.
I&#8217;ve been pretty happy with [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thinking about it literally for years, and I don&#8217;t know what finally made me do it, but I finally signed up for VOIP service.  I chose <a href="http://www.vonage.com">Vonage</a>, just because they seemed biggest, best known, and least likely to simply vanish overnight like Sunrocket did a couple years ago.</p>
<p>I&#8217;ve been pretty happy with my home network set up, particularly with <a href="http://www.dd-wrt.com/">DD-WRT</a> providing lots of nifty stuff on my gateway router.  So I didn&#8217;t want to screw with that by adding VOIP.  Fortunately, while Vonage prefers the adapter between the cable modem and the router, they do support putting the phone adapter behind the router.</p>
<p>The shipping confirmation email from Vonage very helpfully included the MAC address of the VOIP adapter, so I was able to get my router configured way ahead of time.</p>
<p>I started by giving the adapter a static DHCP lease.  This is trivial to set up in DD-WRT.  Administration -> Services:<br />
<a href="http://www.mrbalky.com/wp-content/uploads/dhcp.jpg"><img src="http://www.mrbalky.com/wp-content/uploads/dhcp-150x150.jpg" alt="dhcp" title="dhcp" width="150" height="150" class="alignnone size-thumbnail wp-image-404" /></a></p>
<p>I am not really doing any advanced firewalling on the router, so I didn&#8217;t have to do anything special for outgoing connections.  But Vonage requires incoming ports 10000-20000 forwarded to the adapter.  That is also trivial to set up in DD-WRT.  Applications &#038; Gaming -> Port Range Forwarding:<br />
<a href="http://www.mrbalky.com/wp-content/uploads/portfwd.jpg"><img src="http://www.mrbalky.com/wp-content/uploads/portfwd-150x150.jpg" alt="port range forwarding" title="port range forwarding" width="150" height="150" class="alignnone size-thumbnail wp-image-388" /></a></p>
<p>With this setup, I plugged in the adapter and it just worked(tm).</p>
<p>The most important thing to me was 911 service.  Vonage offers E911 in my neighborhood.  I called up the regular police phone number and was told the only to test is to just dial 911.  I don&#8217;t know if it&#8217;s this way everywhere, so you&#8217;d better not take my word for it.</p>
<p>It was actually sort of freaky to dial 911.  You just immediately say &#8220;This is not an emergency, I&#8217;m testing my VOIP&#8221;.  The emergency dispatcher&#8217;s system had already popped up with my name and address, just as promised by Vonage.</p>
<p>A <a href="http://en.wikipedia.org/wiki/Plain_old_telephone_service">POTS</a> line works fine during a power outage, but what about VOIP?  I have my cable modem, routers and voip adapter all on a UPS.  Coincidentally, I was working at the house about a week earlier, when there was a power hit long enough to freak out my TiVo and other devices in the house.  But my <a href="http://www.comcast.com/">Comcast</a> broadband stayed up through it, so I feel pretty good about my ability to use the phone during an outage.  Again, I have no idea if this is common, so don&#8217;t come running to me if yours doesn&#8217;t work that way.</p>
<p>The last thing I was interested in testing was if I could get voice traffic prioritized on the WAN connection.  DD-WRT has some handy Quality of Service settings, and there are <a href="http://www.google.com/search?hl=en&#038;safe=off&#038;rlz=1B3GGGL_enUS230US231&#038;ei=Rb1XSsaPHo-4M6GX9Z0I&#038;sa=X&#038;oi=spell&#038;resnum=0&#038;ct=result&#038;cd=1&#038;q=dd-wrt+voip+qos&#038;spell=1">a variety of pages</a> out on teh interwebs with instructions for setting it up.  In the end, I just took some conservative guesses, exempting the VOIP adapter from throttling and setting bittorrent to bulk.  Applications &#038; Gaming -> QoS:<br />
<a href="http://www.mrbalky.com/wp-content/uploads/qos.jpg"><img src="http://www.mrbalky.com/wp-content/uploads/qos-150x150.jpg" alt="qos" title="qos" width="150" height="150" class="alignnone size-thumbnail wp-image-405" /></a></p>
<p>I then downloaded an <a href="http://www.ubuntu.com/">Ubuntu</a> ISO image, getting 200-300KBps down; a bit slower than normal, but for me, still a totally acceptable transfer rate.  The voice quality was still good.</p>
<p>So everything looked good, but I was still interested in testing the quality and usability for a bit before committing to port our phone number from <a href="http://www.qwest.com/">Qwest</a> to Vonage.  If you port at signup it&#8217;s free, but costs an extra $10 to do later, but I figured the testing was worth it.</p>
<p>I now have the cordless phone system on the VOIP, and put an answering machine on the old number&#8217;s line.  So incoming calls are inconvenient, but outgoing calls would most often be over VOIP.</p>
<p>We lived with that for a couple days, and everything was just fine, so I kicked off the number porting process.  The number port went right through, and it&#8217;s scheduled, but I have no idea why there&#8217;s a 10 day lead time for the switch even after all the approvals have gone through.  I&#8217;m guessing that&#8217;s Qwest&#8217;s fault.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrbalky.com/2009/07/13/the-voip-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DIY headset locker for Rock Shox Pike</title>
		<link>http://www.mrbalky.com/2009/05/19/diy-headset-locker-for-rock-shox-pike/</link>
		<comments>http://www.mrbalky.com/2009/05/19/diy-headset-locker-for-rock-shox-pike/#comments</comments>
		<pubDate>Tue, 19 May 2009 19:52:07 +0000</pubDate>
		<dc:creator>mrbalky</dc:creator>
				<category><![CDATA[bike]]></category>
		<category><![CDATA[hacks]]></category>

		<guid isPermaLink="false">http://www.mrbalky.com/?p=362</guid>
		<description><![CDATA[This might work for other Rock Shox forks too&#8230;
My new Pike&#8217;s steerer tube has a cap in the bottom with a threaded hole the same size as a standard headset bolt (M6).  Instead of pounding a star nut into the steerer, it&#8217;s exteremely easy use this cap as the bottom of a headset locker [...]]]></description>
			<content:encoded><![CDATA[<p>This might work for other Rock Shox forks too&#8230;</p>
<p>My new Pike&#8217;s steerer tube has a cap in the bottom with a threaded hole the same size as a standard headset bolt (M6).  Instead of pounding a star nut into the steerer, it&#8217;s exteremely easy use this cap as the bottom of a headset locker like the <a href="http://www.oneal.com/catalog/product_info.php?cPath=2_19&#038;products_id=590">Azonic Headlock</a> or <a href="http://www.use1.com/products/safe-t/ ">USE Safe-T</a>.</p>
<p>Required parts (in addition to headset, stem, spacers, etc.):<br />
M6 threaded rod (shortest I could buy was 3 feet)<br />
M6 coupler nut<br />
Total cost about $5.</p>
<p>Insert the rod to measure the correct length.  I threaded the rod through the bottom of the steerer tube until half an inch or so was protruding out the top of the tube.  This took some time to thread the 10&#8243; of rod through; I could have done an initial cut to an estimation of length to save myself some time, I suppose.<br />
<img src="http://www.mrbalky.com/wp-content/uploads/img_1182-209x300.jpg" alt="img_1182" title="img_1182" width="209" height="300" class="aligncenter size-medium wp-image-364" /><br />
<img src="http://www.mrbalky.com/wp-content/uploads/img_1181-300x258.jpg" alt="img_1181" title="img_1181" width="300" height="258" class="aligncenter size-medium wp-image-363" /></p>
<p>Add coupler nut, headset cap and original stem bolt.  Thread the nut on the rod first, headset cap on original stem bolt, and then stem bolt into the coupler nut as well.<br />
<img src="http://www.mrbalky.com/wp-content/uploads/img_1183-300x289.jpg" alt="img_1183" title="img_1183" width="300" height="289" class="aligncenter size-medium wp-image-367" /><br />
<img src="http://www.mrbalky.com/wp-content/uploads/img_1184-300x296.jpg" alt="img_1184" title="img_1184" width="300" height="296" class="aligncenter size-medium wp-image-368" /></p>
<p>Tighten down the headset cap so there is no play or extra space in the steerer stack.  Mark the point where the rod emerges from the bottom of the steerer tube.  Take it all apart again, and cut the rod at the mark with a hacksaw.<br />
<img src="http://www.mrbalky.com/wp-content/uploads/img_1185-182x300.jpg" alt="img_1185" title="img_1185" width="182" height="300" class="aligncenter size-medium wp-image-370" /><br />
<img src="http://www.mrbalky.com/wp-content/uploads/img_1186-268x300.jpg" alt="img_1186" title="img_1186" width="268" height="300" class="aligncenter size-medium wp-image-371" /></p>
<p>Put it all together with the headset cap back on original bolt, coupler to original bolt, then threaded rod into coupler.  You may want to use some removable threadlocker on the coupler to make it behave more like a single bolt when it&#8217;s in the steerer.  Tighten the original stem bolt tightly into the coupler; it&#8217;ll butt up against the threaded rod.<br />
<img src="http://www.mrbalky.com/wp-content/uploads/img_1188-300x108.jpg" alt="img_1188" title="img_1188" width="300" height="108" class="aligncenter size-medium wp-image-374" /><br />
Drop the whole thing into the steerer tube, thread it into the bottom cap, then tighten the bolt to the torque specs of your headset.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrbalky.com/2009/05/19/diy-headset-locker-for-rock-shox-pike/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More filler</title>
		<link>http://www.mrbalky.com/2009/02/24/more-filler/</link>
		<comments>http://www.mrbalky.com/2009/02/24/more-filler/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 20:54:30 +0000</pubDate>
		<dc:creator>mrbalky</dc:creator>
				<category><![CDATA[humor]]></category>
		<category><![CDATA[humour]]></category>
		<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://www.mrbalky.com/?p=353</guid>
		<description><![CDATA[A dose of schadenfreude for your afternoon enjoyment:

]]></description>
			<content:encoded><![CDATA[<p>A dose of schadenfreude for your afternoon enjoyment:</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/qiIYEmpWaaQ&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/qiIYEmpWaaQ&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrbalky.com/2009/02/24/more-filler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Follow my TiVo on Twitter</title>
		<link>http://www.mrbalky.com/2009/02/24/follow-my-tivo-on-twitter/</link>
		<comments>http://www.mrbalky.com/2009/02/24/follow-my-tivo-on-twitter/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 16:14:53 +0000</pubDate>
		<dc:creator>mrbalky</dc:creator>
				<category><![CDATA[hacks]]></category>
		<category><![CDATA[tivo]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.mrbalky.com/?p=338</guid>
		<description><![CDATA[The other night my friend Bob mentioned somebody had set up a Twitter account for their TiVo.  After thinking about it for a second I said something like &#8220;that&#8217;s almost trivial&#8221;.
Naturally I had to see if it really was trivial, which in fact it turned out to be.  @mrbalkytivo is busier than I [...]]]></description>
			<content:encoded><![CDATA[<p>The other night my friend Bob mentioned somebody had set up a <a href="http://twitter.com">Twitter</a> account for their <a href="http://www.tivo.com/">TiVo</a>.  After thinking about it for a second I said something like &#8220;that&#8217;s almost trivial&#8221;.</p>
<p>Naturally I had to see if it really was trivial, which in fact it turned out to be.  <a href="http://twitter.com/mrbalkytivo">@mrbalkytivo</a> is busier than <a href="https://twitter.com/mrbalky">I</a> am.</p>
<p>Put <a href="http://www.mrbalky.com/wp-content/uploads/tweettivophp.txt">tweetTivo.php</a> someplace to be called by cron.</p>
<p>class_tivo_xml.php is not written by me and is required.  <a href="http://www.google.com/search?q=class_tivo_xml">Google it up</a>.  Figuring out how to get the XML info from the TiVo is left as an exercise for the reader.</p>
<p>The script will tweet about any new recording that starts, including TiVo suggestions, which are not always reflective of my taste, but then again, neither are many of MrsBalky&#8217;s choices.  I thought about enhancing the script to skip suggestions, but grew bored and drifted away.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrbalky.com/2009/02/24/follow-my-tivo-on-twitter/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>So long W</title>
		<link>http://www.mrbalky.com/2009/01/19/so-long-w/</link>
		<comments>http://www.mrbalky.com/2009/01/19/so-long-w/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 17:54:02 +0000</pubDate>
		<dc:creator>mrbalky</dc:creator>
				<category><![CDATA[politics]]></category>

		<guid isPermaLink="false">http://www.mrbalky.com/?p=323</guid>
		<description><![CDATA[Less than a day to go.
Don&#8217;t let the door hit you in the ass on the way out.
It may be that &#8220;history&#8221; will judge differently, but I&#8217;ll go out on a limb and say it now.  Worst&#8230; President&#8230; Ever&#8230;
At last it&#8217;s time for the countdown to be retired:

]]></description>
			<content:encoded><![CDATA[<p>Less than a day to go.</p>
<p>Don&#8217;t let the door hit you in the ass on the way out.</p>
<p>It may be that &#8220;history&#8221; will judge differently, but I&#8217;ll go out on a limb and say it now.  Worst&#8230; President&#8230; Ever&#8230;</p>
<p>At last it&#8217;s time for the countdown to be retired:<br />
<img src="http://www.mrbalky.com/wp-content/uploads/ws-last-day.jpg" alt="ws-last-day" title="ws-last-day" width="277" height="96" class="aligncenter size-full wp-image-325" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrbalky.com/2009/01/19/so-long-w/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TwitPic upload hack</title>
		<link>http://www.mrbalky.com/2009/01/13/twitpic-upload-hack/</link>
		<comments>http://www.mrbalky.com/2009/01/13/twitpic-upload-hack/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 01:46:48 +0000</pubDate>
		<dc:creator>mrbalky</dc:creator>
				<category><![CDATA[experiments]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[cygwin]]></category>
		<category><![CDATA[twitpic]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.mrbalky.com/?p=304</guid>
		<description><![CDATA[Some Twitter users have been using TwitPic to link photos to tweets.  I, on the other hand, have been using Flickr and Snipr.  It&#8217;s a PITA, so I&#8217;m giving TwitPic a whirl.  Sadly, Digsby, does not support TwitPic, and I&#8217;m not installing yet another app.
TwitPic has an API, so I rolled my [...]]]></description>
			<content:encoded><![CDATA[<p>Some <a href="http://twitter.com">Twitter</a> users have been using <a href="http://twitpic.com/">TwitPic</a> to link photos to tweets.  I, on the other hand, have been using Flickr and <a href="http://snipr.com/">Snipr</a>.  It&#8217;s a PITA, so I&#8217;m giving TwitPic a whirl.  Sadly, <a href="http://www.digsby.com/">Digsby</a>, does not support TwitPic, and I&#8217;m not installing yet another app.</p>
<p>TwitPic has an <a href="http://twitpic.com/api.do">API</a>, so I rolled my own simple uploader with <a href="http://www.cygwin.com/">cygwin</a> and <a href="http://curl.haxx.se/">curl</a>.  There&#8217;s no doubt in my mind that I&#8217;ve reinvented the wheel here&#8230;</p>
<p><em>Standard disclaimer applies: this is quick n’ dirty(tm)</em>:</p>
<pre>
<code>#!/bin/bash

# curl executable.  I'm a PC.
CURL=C:/cygwin/bin/curl

# The upload script that will accept the data
UPLOAD_URL=http://twitpic.com/api/uploadAndPost

# Snag stuff off the command line
TWITTER_USER=$1
TWITTER_PW=$2
PHOTO=`cygpath -m "$3"`
TWEET_MSG=$4

# Prompt for message if it's not given
if [ "$TWEET_MSG" = "" ]; then
   read -p "Tweet msg: " TWEET_MSG
fi

# Go
echo Uploading...
$CURL \
  --form username=$TWITTER_USER \
  --form password=$TWITTER_PW \
  --form media=@"$PHOTO" \
  --form message="$TWEET_MSG" $UPLOAD_URL

# Wait for user to read result message
echo
read -p "Press &lt;enter&gt; to continue" bogus</code>
</pre>
<p>Create a desktop shortcut with uid and password:</p>
<pre><code>C:\cygwin\bin\sh.exe ~/twitpic.sh --userid-- --password--</code></pre>
<p>Now just drag and drop the photo onto the desktop shortcut.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrbalky.com/2009/01/13/twitpic-upload-hack/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
