<?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>TikiRobot! &#187; howto</title>
	<atom:link href="http://www.tikirobot.net/wp/tag/howto/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tikirobot.net/wp</link>
	<description>Mai Tais and Blinky Lights, Ahoy!</description>
	<lastBuildDate>Wed, 01 Feb 2012 22:14:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Miranda July on How To Make A Button</title>
		<link>http://www.tikirobot.net/wp/2011/03/22/miranda-july-on-how-to-make-a-button/</link>
		<comments>http://www.tikirobot.net/wp/2011/03/22/miranda-july-on-how-to-make-a-button/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 03:31:37 +0000</pubDate>
		<dc:creator>rajbot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[miranda july]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.tikirobot.net/wp/?p=3425</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><iframe title="YouTube video player" width="500" height="311" src="http://www.youtube.com/embed/7RBir3jmQSc?rel=0" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tikirobot.net/wp/2011/03/22/miranda-july-on-how-to-make-a-button/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A ramp for Mom!</title>
		<link>http://www.tikirobot.net/wp/2010/01/09/a-ramp-for-mom/</link>
		<comments>http://www.tikirobot.net/wp/2010/01/09/a-ramp-for-mom/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 23:14:32 +0000</pubDate>
		<dc:creator>flickr</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[wheelchair ramp]]></category>

		<guid isPermaLink="false">http://www.tikirobot.net/wp/2010/01/09/a-ramp-for-mom/</guid>
		<description><![CDATA[.flickr-photo { border: solid 2px #000000; } .flickr-yourcomment { } .flickr-frame { text-align: left; padding: 3px; } .flickr-caption { font-size: 0.8em; margin-top: 0px; } A ramp for Mom!, originally uploaded by tiki.robot. -raj]]></description>
			<content:encoded><![CDATA[<style type="text/css">
.flickr-photo { border: solid 2px #000000; }
.flickr-yourcomment { }
.flickr-frame { text-align: left; padding: 3px; }
.flickr-caption { font-size: 0.8em; margin-top: 0px; }
</style>
<div class="flickr-frame">
	<a href="http://www.flickr.com/photos/22009051@N05/4260112609/" title="photo sharing"><img src="http://farm5.static.flickr.com/4012/4260112609_d3526c0961.jpg" class="flickr-photo" alt="" /></a><br />
<br />
	<span class="flickr-caption"><a href="http://www.flickr.com/photos/22009051@N05/4260112609/">A ramp for Mom!</a>, originally uploaded by <a href="http://www.flickr.com/people/22009051@N05/">tiki.robot</a>.</span>
</div>
<p class="flickr-yourcomment">
	-raj</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tikirobot.net/wp/2010/01/09/a-ramp-for-mom/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to run lighttpd under upstart</title>
		<link>http://www.tikirobot.net/wp/2009/03/28/how-to-run-lighttpd-under-upstart/</link>
		<comments>http://www.tikirobot.net/wp/2009/03/28/how-to-run-lighttpd-under-upstart/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 04:23:51 +0000</pubDate>
		<dc:creator>rajbot</dc:creator>
				<category><![CDATA[code code]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[support]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[upstart]]></category>

		<guid isPermaLink="false">http://www.tikirobot.net/wp/?p=2385</guid>
		<description><![CDATA[Upstart is Ubuntu&#8217;s init.d replacement. It greatly simplifies writing init.d scripts and has a great respawn feature similar to daemontool&#8217;s supervise or monit. And it comes with Ubuntu by default. For some reason, almost no one uses upstart. Even Ubuntu&#8217;s services use traditional /etc/init.d scripts instead of upstart scripts. I think this might be due [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://upstart.ubuntu.com/">Upstart</a> is Ubuntu&#8217;s init.d replacement. It greatly simplifies writing init.d scripts and has a great respawn feature similar to daemontool&#8217;s supervise or monit. And it comes with Ubuntu by default.</p>
<p>For some reason, almost no one uses upstart. Even Ubuntu&#8217;s services use traditional /etc/init.d scripts instead of upstart scripts. I think this might be due to upstart&#8217;s non-existent documentation. There is no man page for upstart, and multiple people I know who have read <a href="http://upstart.ubuntu.com/getting-started.html">the online docs</a> somehow missed the three important commands that control upstart jobs: <strong>/sbin/start</strong>, <strong>/sbin/stop</strong>, and <strong>/sbin/status</strong>!</p>
<p>Here is how it works: put an upstart script in /etc/event.d. Let&#8217;s call it /etc/event.d/foo. This script is now immediately available under upstart. Just type <tt><strong>sudo start foo</strong></tt>. That&#8217;s it.</p>
<p>I converted Ubuntu&#8217;s /etc/init.d/lighttpd script to a much shorter upstart script. The big advantage of this is upstart will restart lighttpd if it dies for some reason. This is what the upstart script looks like:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#this is an upstart script that  starts lighttpd</span>
&nbsp;
start on runlevel <span style="color: #000000;">2</span>
start on runlevel <span style="color: #000000;">3</span>
start on runlevel <span style="color: #000000;">4</span>
start on runlevel <span style="color: #000000;">5</span>
&nbsp;
stop on runlevel <span style="color: #000000;">0</span>
stop on runlevel <span style="color: #000000;">1</span>
stop on runlevel <span style="color: #000000;">6</span>
&nbsp;
respawn
<span style="color: #7a0874; font-weight: bold;">exec</span> <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #660033;">-u</span> www-data lighttpd <span style="color: #660033;">-D</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>lighttpd<span style="color: #000000; font-weight: bold;">/</span>lighttpd-infobase.conf</pre></div></div>

<p>That&#8217;s it! Save this script as /etc/event.d/OL-lighttpd, and then type <tt><strong>sudo start OL-lighttpd</strong></tt>. You can kill off the lighttpd process and it will get restarted.</p>
<p>If you want to configure your lighttpd to write out a pid file, you can use pre-start and post-stop script to prepare and clean up the pid file:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#this is an upstart script that  starts lighttpd</span>
&nbsp;
start on runlevel <span style="color: #000000;">2</span>
start on runlevel <span style="color: #000000;">3</span>
start on runlevel <span style="color: #000000;">4</span>
start on runlevel <span style="color: #000000;">5</span>
&nbsp;
stop on runlevel <span style="color: #000000;">0</span>
stop on runlevel <span style="color: #000000;">1</span>
stop on runlevel <span style="color: #000000;">6</span>
&nbsp;
&nbsp;
pre-start script
    <span style="color: #666666; font-style: italic;">#make sure there is a place to write the pid file (optional):</span>
    <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #660033;">-p</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>run<span style="color: #000000; font-weight: bold;">/</span>lighttpd <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null
    <span style="color: #c20cb9; font-weight: bold;">chown</span> www-data:www-data <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>run<span style="color: #000000; font-weight: bold;">/</span>lighttpd
    <span style="color: #c20cb9; font-weight: bold;">chmod</span> 0750 <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>run<span style="color: #000000; font-weight: bold;">/</span>lighttpd
end script
&nbsp;
respawn
<span style="color: #7a0874; font-weight: bold;">exec</span> <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #660033;">-u</span> www-data lighttpd <span style="color: #660033;">-D</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>lighttpd<span style="color: #000000; font-weight: bold;">/</span>lighttpd-infobase.conf
&nbsp;
post-stop script
    <span style="color: #666666; font-style: italic;">#remove pid file (optional)</span>
    <span style="color: #666666; font-style: italic;">#add server.pid-file = &quot;/var/run/lighttpd/lighttpd.pid&quot; to lighttpd.conf file to have it generate the pid file</span>
    <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>run<span style="color: #000000; font-weight: bold;">/</span>lighttpd<span style="color: #000000; font-weight: bold;">/</span>lighttpd.pid
end script</pre></div></div>

<p>If you want to stop lighttpd, just type <tt><strong>sudo stop OL-lighttpd</strong></tt>. You can also type <tt><strong>sudo initctl list</strong></tt> for a list of all jobs under upstart.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tikirobot.net/wp/2009/03/28/how-to-run-lighttpd-under-upstart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to get your Mac to output 24p to a Samsung LN46a650</title>
		<link>http://www.tikirobot.net/wp/2009/03/28/how-to-get-your-mac-to-output-24p-to-a-samsung-ln46a650/</link>
		<comments>http://www.tikirobot.net/wp/2009/03/28/how-to-get-your-mac-to-output-24p-to-a-samsung-ln46a650/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 03:04:10 +0000</pubDate>
		<dc:creator>rajbot</dc:creator>
				<category><![CDATA[osx]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[ln46a650]]></category>
		<category><![CDATA[samsung]]></category>
		<category><![CDATA[support]]></category>
		<category><![CDATA[SwitchResX]]></category>
		<category><![CDATA[tronix]]></category>

		<guid isPermaLink="false">http://www.tikirobot.net/wp/?p=2381</guid>
		<description><![CDATA[I hooked up my first-generation MacBook Pro to my Samsung LCD TV with a DVI->HDMI cable. The mac was able to output 1920x1080p at 60Hz to the TV. There was noticeable judder when trying to view 24fps content. I searched the net and no one seems to have gotten their mac to output 24p to [...]]]></description>
			<content:encoded><![CDATA[<p>I hooked up my first-generation MacBook Pro to my Samsung LCD TV with a DVI->HDMI cable. The mac was able to output 1920x1080p at 60Hz to the TV. There was noticeable judder when trying to view 24fps content. I searched the net and no one seems to  have gotten their mac to output 24p to their Samsung TV.</p>
<p>OK, here is how to get your mac to output 24p to your Samsung series 6 (or higher) TV:</p>
<p><OL>
<li> Connect your mac to your tv with a DVI->HDMI cable
<li> Install <a href="http://www.madrau.com/html/SRX/About.html">SwitchResX</a>, which will let you customize display settings on your mac.
<li> Launch SwitchResX and create a custom resolution, using the settings below.
<li> Reboot your mac.
<li> Launch SwitchResX again and confirm that the new 1080p24 setting is available.
<li> Activate it and rejoice!<br />
</OL><br />
Here are the setting I used, which might still need a bit of tweeking. I&#8217;m still trying to get the vertical refresh to be exactly 23.976Hz. I cribbed from <a href="http://forums.plexapp.com/index.php?showtopic=9&#038;st=0&#038;p=1297&#entry1297">these settings that are known to work for a sony bravia</a>. The judder seems gone, but I still see some occasional choppy playback, I think due to dropped frames during h.264 decode. I&#8217;ll investigate further.</p>
<p><img src="http://www.tikirobot.net/wp/wp-content/uploads/2009/03/macbook24psettings.png" alt="macbook24psettings" title="macbook24psettings" width="519" height="454" class="alignnone size-full wp-image-2382" /></p>
<p>I&#8217;m mostly happy with my new TV (in true redneck fashion, I traded my pickup truck for it). I originally got a Series 5, but It could only do 1080p60, and I really wanted 1080p24, so I had to upgrade to the Series 6. Unfortunately, the Series 6 arrived with a dead pixel. I don&#8217;t know what to do about that..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tikirobot.net/wp/2009/03/28/how-to-get-your-mac-to-output-24p-to-a-samsung-ln46a650/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How To Replace The Gas Coils In A Clothes Dryer</title>
		<link>http://www.tikirobot.net/wp/2009/03/21/how-to-replace-the-gas-coils-in-a-clothes-dryer/</link>
		<comments>http://www.tikirobot.net/wp/2009/03/21/how-to-replace-the-gas-coils-in-a-clothes-dryer/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 21:29:10 +0000</pubDate>
		<dc:creator>rajbot</dc:creator>
				<category><![CDATA[dryer]]></category>
		<category><![CDATA[frigidaire]]></category>
		<category><![CDATA[gas coil]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[solenoid valve]]></category>
		<category><![CDATA[support]]></category>
		<category><![CDATA[tronix]]></category>

		<guid isPermaLink="false">http://www.tikirobot.net/wp/?p=2365</guid>
		<description><![CDATA[Our Frigidaire gas dryer broke! It seemed to be working properly except it produced no heat. Replacing the gas coils for the solenoid valves fixed the problem. Here is a guide on how to replace the gas coils in your dryer: Our Frigidaire dryer is model GLGQ332A, and is manufactured by Electrolux. The parts catalog [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/rkumar/3351910895/"><img src="http://farm4.static.flickr.com/3664/3351910895_8dfe3bec67_m.jpg" width="180" height="240" alt="IMG_5516" align="right"/></a>Our Frigidaire gas dryer broke! It seemed to be working properly except it produced no heat. Replacing the gas coils for the solenoid valves fixed the problem. Here is a guide on how to replace the gas coils in your dryer:</p>
<p>Our Frigidaire dryer is model GLGQ332A, and is manufactured by Electrolux. The <a href="ftp://ftp.electrolux-na.com/ProdInfo_PDF/Webster/5995396925.pdf">parts catalog</a> shows where the solenoid valves are and which replacement coils to buy. Since the primary and secondary coils are sold together, I replaced them both without actually troubleshooting which part was bad. I needed parts 71 and 72 (part numbers 5303307291 and 5303307292). I got replacement kit 5303931775 (which contains both coils) <a href="http://www.reliableparts.com/product/inv_5303931775">from Reliable Parts</a> in SF (on Howard and 12th) for $37. This same package is available for $10 online, but I paid extra so I could get the parts the same day.</p>
<p>OK. Let&#8217;s get started. First step is to UNPLUG YOUR DRYER.</p>
<p>Next, we are going to lift the top up. There are two clips in the front of the dryer holding the top on, and two hinges on the back. Use a putty knife to press the clips in so the top pops off. Here is how to detatch the clip on the left:</p>
<p><a href="http://www.flickr.com/photos/rkumar/3352733846/"><img src="http://farm4.static.flickr.com/3640/3352733846_e5c15f0601.jpg" width="500" height="375" alt="IMG_5520" /></a></p>
<p>This is what the clip looks like when popped off:<br />
<a href="http://www.flickr.com/photos/rkumar/3352734102/"><img src="http://farm4.static.flickr.com/3418/3352734102_9b13879f41_m.jpg" width="240" height="180" alt="IMG_5522" /></a><a href="http://www.flickr.com/photos/rkumar/3352734488/"><img src="http://farm4.static.flickr.com/3634/3352734488_55ba1ca400_m.jpg" width="240" height="180" alt="IMG_5523" /></a></p>
<p>Now lift the top up and look on the right side, near the timer. You should see a 9-pin molex connector, which you need to detatch. To make my life easier, I always use a sharpie to mark the connector direction. There is a zip tie holding the wires to the frame of the dryer. You are going to take the front of the dryer off, so you will have to cut this ziptie.</p>
<p><a href="http://www.flickr.com/photos/rkumar/3352718636/"><img src="http://farm4.static.flickr.com/3442/3352718636_e16a65eac1.jpg" width="500" height="375" alt="IMG_5537" /></a></p>
<p>Now we are going to take the front of the dryer off. There is a screw on each side of the dryer holding the front on, and there also a few clips. This picture shows both a screw and a clip on the left side:</p>
<p><a href="http://www.flickr.com/photos/rkumar/3352717016/"><img src="http://farm4.static.flickr.com/3087/3352717016_a13db70268.jpg" width="375" height="500" alt="IMG_5528" /></a></p>
<p>I think there were three clips on the left and two on the right. You can get them off by pushing up on them and pulling the front out. They are kind of a pain to get off. Since they are designed to snap under force, I think repair guys just yank the front off and then replace them with new ones.</p>
<p>Once all the screws and clips are out, you will be able to pull the front off. Pull the top part of the front towards you and the front will disengage from the tumbler. There are two clips on the bottom. Lift the front off of these clips:</p>
<p><a href="http://www.flickr.com/photos/rkumar/3352728024/"><img src="http://farm4.static.flickr.com/3460/3352728024_d23d8c0b4d.jpg" width="500" height="375" alt="IMG_5544" /></a></p>
<p>Set the front aside. You can take this opportunity to clean out any lint stuck in the lint chute, seen here in the lower left:</p>
<p><a href="http://www.flickr.com/photos/rkumar/3352729438/"><img src="http://farm4.static.flickr.com/3570/3352729438_aac1273921.jpg" width="375" height="500" alt="IMG_5542" /></a></p>
<p>This is what the inside of your dryer looks like:</p>
<p><a href="http://www.flickr.com/photos/rkumar/3351906525/"><img src="http://farm4.static.flickr.com/3648/3351906525_1cea863ca1.jpg" width="375" height="500" alt="IMG_5545" /></a></p>
<p>The gas valves are on the lower left:</p>
<p><a href="http://www.flickr.com/photos/rkumar/3352719536/"><img src="http://farm4.static.flickr.com/3650/3352719536_89287b1fae.jpg" width="500" height="375" alt="IMG_5547" /></a></p>
<p>Unscrew and remove the metal cover holding the coils in place:</p>
<p><a href="http://www.flickr.com/photos/rkumar/3351892171/"><img src="http://farm4.static.flickr.com/3556/3351892171_de1ffaa194.jpg" width="500" height="375" alt="IMG_5549" /></a></p>
<p>Now lift the coils off of the solenoid shafts, unclip the connectors, and put the new ones in place:</p>
<p><a href="http://www.flickr.com/photos/rkumar/3352714482/"><img src="http://farm4.static.flickr.com/3600/3352714482_fc9be327e8.jpg" width="500" height="375" alt="IMG_5550" /></a></p>
<p>You are now ready put everything back together. Hopefully your dryer now has heat!</p>
<p>If you want to be more rigorous, here are some resistance measurements I made on the new coils. Supposedly you can tell which coil is bad if the resistance measurement is different, but my old, bad coils seemed to have similar resistance:</p>
<p><a href="http://www.flickr.com/photos/rkumar/3352718570/"><img src="http://farm4.static.flickr.com/3452/3352718570_5ddf80ff48_m.jpg" width="240" height="180" alt="IMG_5556" /></a><a href="http://www.flickr.com/photos/rkumar/3351893971/"><img src="http://farm4.static.flickr.com/3584/3351893971_18a9be0935_m.jpg" width="240" height="180" alt="IMG_5557" /></a><a href="http://www.flickr.com/photos/rkumar/3351894109/"><img src="http://farm4.static.flickr.com/3610/3351894109_4323feff0c_m.jpg" width="240" height="180" alt="IMG_5558" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tikirobot.net/wp/2009/03/21/how-to-replace-the-gas-coils-in-a-clothes-dryer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Nine Steps to setting up a WordPress blog</title>
		<link>http://www.tikirobot.net/wp/2009/02/04/nine-steps-to-setting-up-a-wordpress-blog/</link>
		<comments>http://www.tikirobot.net/wp/2009/02/04/nine-steps-to-setting-up-a-wordpress-blog/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 07:32:53 +0000</pubDate>
		<dc:creator>rajbot</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[meta]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.tikirobot.net/wp/?p=2281</guid>
		<description><![CDATA[I just finished setting up the RanCH bLoG and am getting pretty good at setting up WordPress. Here are the steps I take after installing a new WordPress 2.7 blog: Enable Archival-style permalinks. In settings -> permalinks choose &#8220;Day and name&#8221;. Add a .htaccess file to make permalinks work. WordPress will try to do this [...]]]></description>
			<content:encoded><![CDATA[<p>I just finished setting up the <a href="http://www.megashear.org/">RanCH bLoG</a> and am getting pretty good at setting up WordPress. Here are the steps I take after installing a new WordPress 2.7 blog:</p>
<p><OL>
<li> Enable Archival-style permalinks. In <tt>settings -> permalinks</tt> choose &#8220;Day and name&#8221;.
<li> Add a .htaccess file to make permalinks work. WordPress will try to do this for you when you enable permalinks, but might not be able to write to the root dir of your blog.
<li> Disable &#8220;Comment author must have a previously approved comment&#8221; in <tt>settings -> discussion</tt>, so you don&#8217;t have to keep watching over your comments.
<li> Enable the Akismet plugin, to block spam. You will have to create a free wordpress.com account to get an API key.
<li> Install the <a href="http://recaptcha.net/">reCAPTCHA</a> plugin, to block more spam. You will need to create a free recaptcha.net account to get an API key.
<li> Install a <a href="http://wordpress.org/extend/themes/">GPL-compatible theme</a>.
<li> Add sidebar widgets in <tt>appearance -> widgets</tt>. I always add the Recent Comments, Categories, Tag Cloud, and Search widgets.
<li> Replace any boilerplate text in the theme. Hopefully this can be done by replacing the boilerplate area with a text widget, but you might have to update your theme&#8217;s php files.
<li> Update the blogroll with links to your friends.<br />
</OL><br />
Maybe one of these days I will follow my own advice and update this blog to a modern theme.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tikirobot.net/wp/2009/02/04/nine-steps-to-setting-up-a-wordpress-blog/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>How To Filter San Francisco Tap Water</title>
		<link>http://www.tikirobot.net/wp/2008/02/17/how-to-filter-san-francisco-tap-water/</link>
		<comments>http://www.tikirobot.net/wp/2008/02/17/how-to-filter-san-francisco-tap-water/#comments</comments>
		<pubDate>Sun, 17 Feb 2008 07:50:34 +0000</pubDate>
		<dc:creator>rajbot</dc:creator>
				<category><![CDATA[food]]></category>
		<category><![CDATA[san francisco]]></category>
		<category><![CDATA[activated carbon]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[water filter]]></category>

		<guid isPermaLink="false">http://www.tikirobot.net/wp/2008/02/17/how-to-filter-san-francisco-tap-water/</guid>
		<description><![CDATA[Background Our water has gunk in it (possibly due to this construction). This gunk gets caught in our kitchen faucet&#8217;s aerator, and if we don&#8217;t clean it out, the water flow will stop completely. Here is what the gunk looks like: So we decided it was time to install a water filter. The easiest way [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Background</strong><br />
Our water has gunk in it (possibly due to <a href="http://www.tikirobot.net/wp/2007/04/27/the-worlds-largest-drill-bit/">this construction</a>). This gunk gets caught in our kitchen faucet&#8217;s aerator, and if we don&#8217;t clean it out, the water flow will stop completely. Here is what the gunk looks like:</p>
<p><img src='http://www.tikirobot.net/wp/wp-content/uploads/2008/02/a1.jpg' alt='a1.jpg' width=287 height=285/></p>
<p>So we decided it was time to install a water filter. The easiest way to filter drinking water is to use a Britta and Pur pitcher, but these don&#8217;t work for me. I use them for a bit, and then get tired of changing the expensive replacement filters every month.</p>
<p>The water filter industry has a standard size for under-sink <a href="http://en.wikipedia.org/wiki/Adsorption">adsorption</a> filters: 9 3/4&#8243;. These filters are similar to but much larger than the standard Britta pitcher-style filter, and they only need to be changed every 4-12 months (depending on filter type). You can buy 9 3/4&#8243; filters from several different manufacturers, which helps keep the prices down.</p>
<p><strong>Choosing a Filter</strong></p>
<p>Deciding what kind of filter you need should be easy. In theory, you can call your water utility (or check <a href="http://sfwater.org/">their website</a>), find out what contaminants are in your water, and then <a href="http://www.nsf.org/certified/dwtu/">check which filters are certified by the NSF</a> to filter out those contaminants. </p>
<p>I did a bunch of research and found that SF tap water is generally safe to drink. It is disinfected with <a href="http://sfwater.org/mto_main.cfm/MC_ID/13/MSC_ID/166/MTO_ID/399">Chloramine</a> and contains trace amounts of parasites, copper, and lead. The SF PUC <a href="http://sfwater.org/listview.cfm/MC_ID/13/MSC_ID/166/MTY_ID/5">monitors Cryptosporidium and Giardia</a> levels every two weeks, and their <a href="http://sfwater.org/detail.cfm/MC_ID/13/MSC_ID/166/MTO_ID/299/C_ID/3488">2006 Water Quality Report</a> (published 6/07 <a href="http://sfwater.org/Files/Reports/WaterQualityReport_2006FINAL.pdf">PDF</a>) shows that all measurable contaminants are below maximum contaminant levels.</p>
<p>Even after finding that SF water is safe for us to drink, I decided to get an  <a href="http://en.wikipedia.org/wiki/Activated_carbon">activated carbon</a> filter in addition to a sediment filter, because I&#8217;m worried that chemicals might enter into the water main during construction, just as visible sediment enters into the water main. Also, I decided that activated carbon was really cool (one gram has a surface area of 500 m² &#8211; 1500 m²)!</p>
<p><strong>Choosing a 9 3/4&#8243; Filter Housing</strong></p>
<p>My first thought was to get an <a href="http://www.omnifilter.com/undersink.htm#OT32">OmniFilter OT32</a> for $140. This unit has a double housing that can fit 2 9 3/4&#8243; filters, and it comes with a string-wound sediment filter and an <a href="http://www.nsf.org/Certified/DWTU/Listings.asp?Company=34540&#038;Standard=">NSF-certified</a> 0.5-micron enhanced carbon block filter.</p>
<p>After some digging, I found I get a cheaper 2-filter housing from <a href="http://www.pentekfiltration.com/">Pentek Filtration</a>. I bought a BFS-201 housing (<a href="http://www.pentekfiltration.com/pdfs/310089%20BFS-BBFS%20Systems.pdf">PDF</a>) from <a href="http://www.filtersfast.com/Pentek-BFS-201-Dual-Filter-Housing.asp">FiltersFast</a> for $57. It&#8217;s seems well-built and looks like this:<br />
<a href="http://www.flickr.com/photos/rkumar/2262466384/" title="IMG_3837 by rkumar, on Flickr"><img src="http://farm3.static.flickr.com/2251/2262466384_d075a56460_m.jpg" width="180" height="240" alt="IMG_3837" /></a></p>
<p><strong>Installing the Filter Housing</strong></p>
<p>The recommended way of using under-sink filters is to install a second, low-flow-rate faucet to get the maximum effect from your filter. I didn&#8217;t want to do this, because I didn&#8217;t want to drill a new hole through our granite countertop, so I investigated splicing the filter into our cold water line.</p>
<p>If we only wanted to filter sediment, we could easily add the filter to cold water line, because sediment filters can handle 10 gallons per minute, and our faucet only had a 2gpm flow rate.</p>
<p>Unfortunately, activated carbon filters only work at reduced flow rates. If you only want to filter for what the NSF calls &#8220;Aesthetic Effects&#8221; (Standard 42), then you can buy a carbon filter that works at 2gpm. But if you want to filter for things like lead, mercury, VOCs, asbestos, MTBEs, Cryptosporidium, and Giardia (what the NSF calls &#8220;Health Effects&#8221;, or Standard 53), then you have to reduce to the flow rate to 0.5-0.6 gpm.</p>
<p>We decided that it was OK to reduce the flow rate of the cold water at the faucet, since we will still have the full hot water flow rate for washing, and the dishwasher cold supply is already split off. This means we don&#8217;t need to drill for a new faucet.</p>
<p>The Pentek filter housing has two 3/8&#8243; female NPT water connections. Our cold water line has a 1/2&#8243; IP straight thread on the faucet side and a 3/8&#8243; compression fitting on the other. To splice the housing into the cold water line, we need to add two 3/8&#8243; NPT to 3/8&#8243; compression adapters to the filter housing, using teflon tape to ensure a good seal:<br />
<img src='http://www.tikirobot.net/wp/wp-content/uploads/2008/02/b.jpg' width=215 height=210 /></p>
<p><strong>Choosing a Sediment Filter</strong><br />
Now comes the fun part! We get to choose some filters. Since these are a standard size, we can choose from a bunch of brands, and mix-and-match. Sediment filters are very inexpensive. They are usually made of wound string, last for 10-15,000 gallons, and cost under five bucks. I got the <a href="http://www.pentekfiltration.com/pdfs/310062%20CW-WP%20Series.pdf">Pentek CW-MF</a> from <a href="http://www.filtersfast.com/Pentek-CW-MF-water-filters.asp">FiltersFast</a> for $3.30. Looking at the spec sheet, I should have gotten the WP-5 for $5.60, since it has a 5 micron rating instead of a 30 micron rating. It might not matter, since the water will be flowing through a carbon filter anyway. This filter is mostly to lengthen the life of the carbon filter.</p>
<p><strong>Choosing an Activated Carbon Filter</strong><br />
The <a href="https://www.filtersfast.com/OmniFilter-CB3-water-filter-cartridge.asp">OmniFilter CB3</a> seems pretty good. It costs $36 dollars and has <a href="http://www.nsf.org/Certified/DWTU/Listings.asp?Company=34540&#038;Standard=">NSF Standard 42 and Standard 53 ratings</a> to reduce Asbestos, Atrazine, Cyst, Lead, Lindane, Mercury, and VOCs, as well as Chloramine and Chlorine.</p>
<p>I found <a href="http://www.pentekfiltration.com/pdfs/310080%20CBR2%20Series.pdf">Pentek CBR2-10R</a>, which is basically the same thing as the OmniFilter CB3, but it lacks the NSF Standard 53 rating. However, it <a href="http://www.filtersfast.com/Pentek-CBR2-10R-water-filters.asp">costs only $17 at FiltersFast</a>, and I decided it was good enough for me. It also has a built-in 0.6gpm flow restrictor, which makes sure you get the full effect of the filter.</p>
<p>After installing everything, this is how it looks:<br />
<a href="http://www.flickr.com/photos/rkumar/2270187357/" title="IMG_3870 by rkumar, on Flickr"><img src="http://farm3.static.flickr.com/2140/2270187357_91f4ffd6aa.jpg" width="500" height="375" alt="IMG_3870" /></a></p>
<p>The water definitely tastes different; it has a slightly-metallic aftertaste, similar to distilled water. I&#8217;m interested to see how much stuff the sediment filter catches after 3 months.</p>
<p><strong>Costs</strong><br />
This is my bill from FiltersFast:</p>
<p>Filter Housing BFS0-201     $56.99<br />
Carbon Filter CBR2-10R      $16.95<br />
Sediment Filter CW-MF       $3.30<br />
Filter wrench SW-1a         $2.70<br />
Shipping                    $1.99<br />
retailmenot.com coupon     -$5.00<br />
Total                       $76.93</p>
<p>I also had to buy two 3/8&#8243; compression to 3/8&#8243; MPT adapaters for $4.79 and a couple hoses from Cole Hardware, bringing the total up to a hundred bucks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tikirobot.net/wp/2008/02/17/how-to-filter-san-francisco-tap-water/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to tunnel VPN over SSH</title>
		<link>http://www.tikirobot.net/wp/2008/02/12/how-to-tunnel-vpn-over-ssh/</link>
		<comments>http://www.tikirobot.net/wp/2008/02/12/how-to-tunnel-vpn-over-ssh/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 00:43:11 +0000</pubDate>
		<dc:creator>rajbot</dc:creator>
				<category><![CDATA[archive]]></category>
		<category><![CDATA[commandline]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[vnc]]></category>

		<guid isPermaLink="false">http://www.tikirobot.net/wp/2008/02/12/how-to-tunnel-vpn-over-ssh/</guid>
		<description><![CDATA[Today I had to use VNC to debug a remote machine, but firewalls were blocking VNC ports. After I failed to get my VNC client (Chicken of the VNC) to use a SOCKS proxy, I was able to use SSH port forwarding to get it working. On your local machine type: ssh user@remotehost -L 5900/localhost/5900 [...]]]></description>
			<content:encoded><![CDATA[<p>Today I had to use VNC to debug a remote machine, but firewalls were blocking VNC ports.</p>
<p>After I failed to get my VNC client (Chicken of the VNC) to use a SOCKS proxy, I was able to use SSH port forwarding to get it working. On your local machine type:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ssh</span> user<span style="color: #000000; font-weight: bold;">@</span>remotehost <span style="color: #660033;">-L</span> <span style="color: #000000;">5900</span><span style="color: #000000; font-weight: bold;">/</span>localhost<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">5900</span></pre></div></div>

<p>This forwards port 5900 on localhost to port 5900 on the remotehost. Then in Chicken of the VNC, open a new connection to localhost. That&#8217;s it! EEZ!</p>
<p>It turned out that Xorg was eating all available memory and invoking the oom killer. Sigh.</p>
<p>I guess I could have figured this out without VNC, but I couldn&#8217;t reproduce the bug locally, so I watched as a remote user was working on the machine.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tikirobot.net/wp/2008/02/12/how-to-tunnel-vpn-over-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Configure Your Laptop for Wireless Backups Using Time Machine</title>
		<link>http://www.tikirobot.net/wp/2008/01/24/how-to-configure-your-laptop-for-wireless-backups-using-time-machine/</link>
		<comments>http://www.tikirobot.net/wp/2008/01/24/how-to-configure-your-laptop-for-wireless-backups-using-time-machine/#comments</comments>
		<pubDate>Fri, 25 Jan 2008 03:31:54 +0000</pubDate>
		<dc:creator>rajbot</dc:creator>
				<category><![CDATA[osx]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[support]]></category>
		<category><![CDATA[TimeMachine]]></category>

		<guid isPermaLink="false">http://www.tikirobot.net/wp/2008/01/24/how-to-configure-your-laptop-for-wireless-backups-using-time-machine/</guid>
		<description><![CDATA[The greatest thing about Leopard is that you can configure your Mac laptop to backup wirelessly and transparently using Time Machine. You can wander around the world editing files, and your laptop will automatically back them up when you come home and connect to your wireless router, without you having to do anything. You will [...]]]></description>
			<content:encoded><![CDATA[<p>The greatest thing about Leopard is that you can configure your Mac laptop to backup wirelessly and transparently using Time Machine. You can wander around the world editing files, and your laptop will automatically back them up when you come home and connect to your wireless router, without you having to do anything.</p>
<p>You will need a second Mac or Linux box to host the remote backup. This takes five to ten minutes to set up and configure.</p>
<p>First, configure your remote backup machine. These instructions assume that you are using a Mac for this.<br />
<UL>
<li> Configure your remote backup machine with a static IP address<br />
<UL>
<li> Your backup machine must be connected to the same wireless router that your laptop will connect to when you are home
<li> My wireless router is set to assign IP addresses starting with 192.168.1.100, so I assigned my remote mac to use 192.168.1.23
<li> To assign an IP address manually while still using DHCP to get other network settings from your wireless router, go to System Preferences -> Network -> Airport -> Advanced -> TCP/IP and choose &#8220;Using DHCP with manual address&#8221;<br />
</UL>
<li> Configure AFP File Sharing under System Preferences -> Sharing<br />
<UL>
<li> Select the &#8220;File Sharing&#8221; checkbox. You should see a message that says &#8220;Others can access your computer at afp://192.168.1.23&#8243;, or something similar.
<li> Click the &#8220;+&#8221; button under &#8220;Shared Folders:&#8221;, and add the hard drive you want to store the backups to the list
<li> Click the &#8220;+&#8221; button under &#8220;Users:&#8221;. Create a user called &#8220;backup&#8221;. Give this user Read &#038; Write permissions to the backup hard drive<br />
</UL></UL><br />
Now, configure your laptop<br />
<UL>
<li> Mount the remote backup hard drive<br />
<UL>
<li> In the Finder, choose &#8220;Connect to Server&#8230;&#8221; under the Go menu
<li> Type afp://192.168.1.23 in for the server address
<li> When asked, log in using user &#8220;backup&#8221; and type in the password. Be sure to click &#8220;Remember password in my Keychain&#8221;<br />
</UL>
<li> Now, Configure Time Machine<br />
<UL>
<li> Choose System Preferences -> Time Machine
<li> Click &#8220;Choose Backup Disk&#8221;
<li> Choose the remote backup disk that you mounted using AFP<br />
</UL></UL><br />
That&#8217;s it! The first time Time Machine backs up, it will be really slow. Just let it run overnight. All the following hourly backups will be very fast.</p>
<p>If you use your laptop in the standard, Apple-approved manner, then you can configure Time Machine to only backup your Users directory, which will save space and time. Let me know if you need more help!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tikirobot.net/wp/2008/01/24/how-to-configure-your-laptop-for-wireless-backups-using-time-machine/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How To Quickly Find the Size of an Image</title>
		<link>http://www.tikirobot.net/wp/2007/12/20/how-to-quickly-find-the-size-of-an-image/</link>
		<comments>http://www.tikirobot.net/wp/2007/12/20/how-to-quickly-find-the-size-of-an-image/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 23:38:08 +0000</pubDate>
		<dc:creator>rajbot</dc:creator>
				<category><![CDATA[code code]]></category>
		<category><![CDATA[commandline]]></category>
		<category><![CDATA[exiftool]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[identify]]></category>
		<category><![CDATA[ImageMagick]]></category>

		<guid isPermaLink="false">http://www.tikirobot.net/wp/2007/12/20/how-to-quickly-find-the-size-of-an-image/</guid>
		<description><![CDATA[To find the size of an image, I usually use ImageMagick&#8217;s identify command. Unfortuantely, identify is horribly slow, especially for JPEG 2000 images (thanks to a very slow libjasper). So instead of using identify: identify -format "%wx%h" image.jp2 Use exiftool instead: exiftool -s -s -s -ImageSize image.jp2 exiftool is 62.5 times faster(!!!) than identify for [...]]]></description>
			<content:encoded><![CDATA[<p>To find the size of an image, I usually use ImageMagick&#8217;s identify command. Unfortuantely, identify is horribly slow, especially for JPEG 2000 images (thanks to a very slow libjasper).</p>
<p>So instead of using identify:<br />
<code>identify -format "%wx%h" image.jp2</code></p>
<p>Use exiftool instead:<br />
<code>exiftool -s -s -s -ImageSize image.jp2</code></p>
<p>exiftool is 62.5 times faster(!!!) than identify for finding image size on my dual 2.0Ghz Athlon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tikirobot.net/wp/2007/12/20/how-to-quickly-find-the-size-of-an-image/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

