<?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>Thinkhole Labs</title>
	<atom:link href="http://thinkhole.org/wp/feed/" rel="self" type="application/rss+xml" />
	<link>http://thinkhole.org/wp</link>
	<description>www.thinkhole.org</description>
	<lastBuildDate>Wed, 25 Aug 2010 01:00:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Register now for CPOSC 2010</title>
		<link>http://thinkhole.org/wp/2010/08/24/register-now-for-cposc-2010/</link>
		<comments>http://thinkhole.org/wp/2010/08/24/register-now-for-cposc-2010/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 01:00:32 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://thinkhole.org/wp/?p=913</guid>
		<description><![CDATA[Central PA Open Source Conference 2010 (CPOSC), which will be held on Saturday, October 16, 2010 at Harrisburg University. Tickets include include access to all three tracks including 21 awesome speakers, breakfast, lunch, an afternoon snack break. The number of tickets available is limited based on the size of our venue, and last year tickets [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://cposc.org">Central PA Open Source Conference 2010</a> (CPOSC), which will be held on <strong>Saturday, October 16, 2010</strong> at <a href="http://www.cposc.org/location/">Harrisburg University</a>.  Tickets include include access to all three tracks including <a href="http://www.cposc.org/speakers/">21 awesome speakers</a>, breakfast, lunch, an afternoon snack break.</p>
<p>The number of tickets available is limited based on the size of our venue, and last year tickets were sold out before the conference.  Don&#8217;t miss your chance to <a href="http://cposc.org/register/">register</a>!</p>
<p>So, head on over to <a href="http://cposc.org/register/">www.cposc.org</a> to register, and we&#8217;ll see you in October! :)</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkhole.org/wp/2010/08/24/register-now-for-cposc-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New toys from Adafruit!</title>
		<link>http://thinkhole.org/wp/2010/01/22/new-toys-from-adafruit/</link>
		<comments>http://thinkhole.org/wp/2010/01/22/new-toys-from-adafruit/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 13:48:43 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Arduino]]></category>

		<guid isPermaLink="false">http://thinkhole.org/wp/?p=902</guid>
		<description><![CDATA[The kits I ordered from Adafruit arrived! Here&#8217;s the list: 2 x XBee Adapter Kit [v1.1] 2 x XBee Module &#8211; XB24-ACI-001 USB TTL-232 cable &#8211; TTL-232R 3.3V Adafruit Motor/Stepper/Servo Shield for Arduino kit &#8211; v1.0 The XBee module that Adafruit sells is the chip antenna version. According to Parallax, &#8220;The wire antenna versions will [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://thinkhole.org/wp/wp-content/uploads/2010/01/IMG_3432x-300x130.jpg" alt="XBee kits and Motor Shield" title="XBee kits and Motor Shield" width="300" height="130" class="aligncenter size-medium wp-image-903" /></p>
<p>The kits I ordered from <a href="http://www.adafruit.com">Adafruit</a> arrived!  Here&#8217;s the list:</p>
<ul>
<li>2 x <a href="http://www.adafruit.com/index.php?main_page=product_info&#038;cPath=29&#038;products_id=126&#038;zenid=9eddeaf092c9ba44d37f23fa035a474e">XBee Adapter Kit [v1.1]</a></li>
<li>2 x <a href="http://www.adafruit.com/index.php?main_page=product_info&#038;products_id=128&#038;zenid=9eddeaf092c9ba44d37f23fa035a474e">XBee Module &#8211; XB24-ACI-001</a></li>
<li><a href="http://www.adafruit.com/index.php?main_page=product_info&#038;products_id=70&#038;zenid=9eddeaf092c9ba44d37f23fa035a474e">USB TTL-232 cable &#8211; TTL-232R 3.3V</a></li>
<li><a href="http://www.adafruit.com/index.php?main_page=product_info&#038;cPath=17_21&#038;products_id=81&#038;zenid=96556a5714921213dc024d99bf313e62">Adafruit Motor/Stepper/Servo Shield for Arduino kit &#8211; v1.0</a></li>
</ul>
<p>The <a href="http://ladyada.net/make/xbee/modules.html">XBee module</a> that Adafruit sells is the chip antenna version.  According to <a href="http://www.parallax.com/tabid/829/Default.aspx">Parallax</a>, &#8220;The wire antenna versions will provide 20-30% more distance than the chip antenna in the same environment.&#8221;  Still, I should be able to get at least 300 feet out of it.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkhole.org/wp/2010/01/22/new-toys-from-adafruit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Github account and repos</title>
		<link>http://thinkhole.org/wp/2010/01/21/github-account-and-repos/</link>
		<comments>http://thinkhole.org/wp/2010/01/21/github-account-and-repos/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 13:13:50 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://thinkhole.org/wp/?p=895</guid>
		<description><![CDATA[Well, it&#8217;s long overdue, but I&#8217;m finally using some form of VCS for maintaining the code that I write at home. Up until a few weeks ago I was basically keeping a &#8216;Code&#8217; directory in Dropbox and that was about it. Now I&#8217;m using git on each computer (i.e. notebook, desktop, etc.) and made a [...]]]></description>
			<content:encoded><![CDATA[<p>Well, it&#8217;s long overdue, but I&#8217;m finally using some form of <a href="http://en.wikipedia.org/wiki/Revision_control">VCS</a> for maintaining the code that I write at home.</p>
<p>Up until a few weeks ago I was basically keeping a &#8216;Code&#8217; directory in <a href="http://www.getdropbox.com/">Dropbox</a> and that was about it.  Now I&#8217;m using <a href="http://git-scm.com/">git</a> on each computer (i.e. notebook, desktop, etc.) and made a <a href="http://github.com">Github</a> account (<a href="http://github.com/thinkhole">github.com/thinkhole</a>).</p>
<p>Right now I have two public repositories:
<ul>
<li><a href="http://github.com/thinkhole/Arduino-DS1620">Arduino-DS1620</a> &#8211; a library to use a <a href="http://datasheets.maxim-ic.com/en/ds/DS1620.pdf">DS1620</a> temperature sensor with an <a href="http://www.arduino.cc/">Arduino</a></li>
<li><a href="http://github.com/thinkhole/Euler">Euler</a> &#8211; a few <a href="http://projecteuler.net/">Project Euler</a> solutions in Ruby</li>
</ul>
<p>The Arduino library has a decent amount of documentation, and should be quite usable.  The Euler solutions are well&#8230; hey, they work. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkhole.org/wp/2010/01/21/github-account-and-repos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IR distance sensor and Arduino</title>
		<link>http://thinkhole.org/wp/2010/01/19/sharp-gp2d12-distance-sensor-and-arduino/</link>
		<comments>http://thinkhole.org/wp/2010/01/19/sharp-gp2d12-distance-sensor-and-arduino/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 00:22:09 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Arduino]]></category>

		<guid isPermaLink="false">http://thinkhole.org/wp/?p=889</guid>
		<description><![CDATA[Playing with the Arduino a bit again tonight. Here&#8217;s a snippet (source) to read the analog output from a Sharp GP2D12 analog distance sensor and convert it to centimeters: Seems to work reasonably well.]]></description>
			<content:encoded><![CDATA[<p><img src="http://thinkhole.org/wp/wp-content/uploads/2010/01/IMG_3333x-300x139.jpg" alt="GP2D12" title="GP2D12" width="300" height="139" class="aligncenter size-medium wp-image-890" /></p>
<p>Playing with the Arduino a bit again tonight.  Here&#8217;s a snippet (<a href="http://www.arduino.cc/playground/Main/ReadGp2d12Range">source</a>) to read the analog output from a Sharp GP2D12 analog distance sensor and convert it to centimeters:</p>
<p><script src="http://gist.github.com/281445.js?file=gistfile1.h"></script></p>
<p>Seems to work reasonably well.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkhole.org/wp/2010/01/19/sharp-gp2d12-distance-sensor-and-arduino/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gosu with Chipmunk physics</title>
		<link>http://thinkhole.org/wp/2009/12/01/gosu-with-chipmunk-physics/</link>
		<comments>http://thinkhole.org/wp/2009/12/01/gosu-with-chipmunk-physics/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 00:00:46 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://thinkhole.org/wp/?p=878</guid>
		<description><![CDATA[Gosu is a super-easy 2D game development library with a handy Ruby interface. Chipmunk is a fast 2D physics library, that plays nicely with Gosu. Mix them together and what do you get? Me having a great time making little blocks fall from the sky: The Chipmunk Ruby documentation is a bit lacking, but it [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.libgosu.org/">Gosu</a> is a super-easy 2D game development library with a handy Ruby interface.  <a href="http://code.google.com/p/chipmunk-physics/">Chipmunk</a> is a fast 2D physics library, that plays nicely with Gosu.</p>
<p>Mix them together and what do you get?  Me having a great time <a href="http://vimeo.com/7886303">making little blocks fall from the sky</a>:</p>
<p><object width="549" height="309"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7886303&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7886303&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="549" height="309"></embed></object></p>
<p>The <a href="http://code.google.com/p/gosu/wiki/RubyChipmunkIntegration">Chipmunk Ruby</a> documentation is a bit lacking, but it follows the C interface closely enough that I&#8217;ve been able to pick it up without a problem so far.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkhole.org/wp/2009/12/01/gosu-with-chipmunk-physics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Animated Collatz sequence using Gosu</title>
		<link>http://thinkhole.org/wp/2009/12/01/animated-collatz-sequence-using-gosu/</link>
		<comments>http://thinkhole.org/wp/2009/12/01/animated-collatz-sequence-using-gosu/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 23:52:27 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://thinkhole.org/wp/?p=874</guid>
		<description><![CDATA[Continuing my obsession with the Collatz conjecture, I took some of my Ruby code from the other day and mixed in some Gosu 2D animations. Basically, I randomly seed a bunch of objects and then let them bounce their way through the sequence until they bottom out at 1, and then drop them. There&#8217;s a [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing my obsession with the <a href="http://en.wikipedia.org/wiki/Collatz_conjecture">Collatz conjecture</a>, I took some of my Ruby code from <a href="http://thinkhole.org/wp/2009/10/31/hailstone-sequence/">the other day</a> and mixed in some <a href="http://www.libgosu.org/">Gosu</a> 2D animations.</p>
<p>Basically, I randomly seed a bunch of objects and then let them bounce their way through the sequence until they bottom out at 1, and then drop them.  There&#8217;s a counter in the top left that shows how many are left.</p>
<p>Anyway, here&#8217;s <a href="http://vimeo.com/7495962">the video</a> with the obligatory iMovie stock music in the background:</p>
<p><object width="549" height="309"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7495962&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7495962&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="549" height="309"></embed></object></p>
<p>The little monster blocks are a free icon set from <a href="http://www.fasticon.com/">Fast Icon</a>.  I&#8217;m a huge fan. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkhole.org/wp/2009/12/01/animated-collatz-sequence-using-gosu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dropbox and Ubuntu One</title>
		<link>http://thinkhole.org/wp/2009/11/12/dropbox-and-ubuntu-one/</link>
		<comments>http://thinkhole.org/wp/2009/11/12/dropbox-and-ubuntu-one/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 00:31:50 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://thinkhole.org/wp/?p=868</guid>
		<description><![CDATA[I did a talk on Dropbox and Ubuntu One at the CPLUG meeting on Tuesday night. The slides are online: I was surprised that no one had heard of Ubuntu One even though quite a few people in the room were running Ubuntu 9.10.]]></description>
			<content:encoded><![CDATA[<p>I did a talk on <a href="http://dropbox.com">Dropbox</a> and <a href="http://one.ubuntu.com">Ubuntu One</a> at the <a href="http://cplug.net">CPLUG</a> meeting on Tuesday night.  The slides are online:<br />
<center><a href="http://thinkhole.org/gallery/v/talk/dropbox/"><img src="http://thinkhole.org/wp/wp-content/uploads/2009/11/cplug_dropbox_112009_001-001-300x225.png" alt="cplug_dropbox_112009_001-001" title="cplug_dropbox_112009_001-001" width="300" height="225" class="aligncenter size-medium wp-image-869" /></a><br />
</center></p>
<p>I was surprised that no one had heard of Ubuntu One even though quite a few people in the room were running Ubuntu 9.10.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkhole.org/wp/2009/11/12/dropbox-and-ubuntu-one/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Gosu tutorial</title>
		<link>http://thinkhole.org/wp/2009/11/07/gosu/</link>
		<comments>http://thinkhole.org/wp/2009/11/07/gosu/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 03:59:42 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://thinkhole.org/wp/?p=859</guid>
		<description><![CDATA[Ran through the Gosu Ruby Tutorial tonight&#8230; I&#8217;m having a lot of fun with this. :)]]></description>
			<content:encoded><![CDATA[<p>Ran through the <a href="http://code.google.com/p/gosu/wiki/RubyTutorial">Gosu Ruby Tutorial</a> tonight&#8230;</p>
<p><object width="549" height="309"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7493563&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7493563&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="549" height="309"></embed></object></p>
<p>I&#8217;m having a lot of fun with this. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkhole.org/wp/2009/11/07/gosu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Apple iMac flickering display</title>
		<link>http://thinkhole.org/wp/2009/11/04/apple-imac-flickering-display/</link>
		<comments>http://thinkhole.org/wp/2009/11/04/apple-imac-flickering-display/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 03:12:39 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[display]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[iMac]]></category>
		<category><![CDATA[Vimeo]]></category>

		<guid isPermaLink="false">http://thinkhole.org/wp/?p=853</guid>
		<description><![CDATA[I recorded some video of the intermittent display issues I&#8217;ve been having with the new 27&#8243; iMac. You can see examples of both the horizontal white static/noise (need to watch carefully to see it in the video) and the complete screen blanking: There&#8217;s a second video showing similar problems as well. Looks like this is [...]]]></description>
			<content:encoded><![CDATA[<p>I recorded some <a href="http://vimeo.com/7442566">video</a> of the intermittent display issues I&#8217;ve been having with the new <a href="http://www.apple.com/imac/">27&#8243; iMac</a>.  You can see examples of both the horizontal white static/noise (need to watch carefully to see it in the video) and the complete screen blanking:  </p>
<p><object width="549" height="412"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7442566&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7442566&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="549" height="412"></embed></object></p>
<p>There&#8217;s a <a href="http://vimeo.com/7441594">second video</a> showing similar problems as well.</p>
<p>Looks like this is not uncommon, and the procedure is to take it back to the Apple store and they&#8217;ll replace it.  That&#8217;s cool, but still kind of a pain.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkhole.org/wp/2009/11/04/apple-imac-flickering-display/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Calculate a hailstone sequence</title>
		<link>http://thinkhole.org/wp/2009/10/31/hailstone-sequence/</link>
		<comments>http://thinkhole.org/wp/2009/10/31/hailstone-sequence/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 03:30:06 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[euler]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[R]]></category>

		<guid isPermaLink="false">http://thinkhole.org/wp/?p=846</guid>
		<description><![CDATA[One of the Project Euler problems deals with the Collatz conjecture, which can basically be summed up like this: We take any whole number n greater than 0. If n is even, we halve it (n/2), else we do &#8220;triple plus one&#8221; and get 3n+1. The conjecture is that for all numbers this process converges [...]]]></description>
			<content:encoded><![CDATA[<p>One of the <a href="http://projecteuler.net/">Project Euler</a> problems deals with the <a href="http://en.wikipedia.org/wiki/Collatz_conjecture">Collatz conjecture</a>, which can basically be summed up like this:</p>
<blockquote><p>We take any whole number n greater than 0. If n is even, we halve it (n/2), else we do &#8220;triple plus one&#8221; and get 3n+1. The conjecture is that for all numbers this process converges to 1.</p></blockquote>
<p>So you start with some seed number (n) and keep moving to the next number in the sequence by either dividing by two or multiplying by three and adding one.  If you start with 1, you&#8217;d get 1, 4, 2, 1.  If you start with 5, you&#8217;d get 5, 16, 8, 4, 2, 1.  The reason these are also known as &#8220;hailstone sequences&#8221; is because the numbers rise and sink like ice in an thunderstorm cloud.  Every number ever tested has always ended up falling to 1, but it&#8217;s never been mathematically proven that every number does the same.</p>
<p>Anyway, here&#8217;s some Ruby that, given a seed (n), will yield each number in the sequence and return the total length:</p>
<p><script src="http://gist.github.com/223381.js"></script></p>
<p>I added a few lines to write the output to a .csv file and then plotted it (n=27) using <a href="http://www.r-project.org/">R</a>:</p>
<p><img src="http://thinkhole.org/wp/wp-content/uploads/2009/10/hailstone27.png" alt="hailstone27" title="hailstone27" width="480" height="480" class="aligncenter size-full wp-image-847" /></p>
<p>That&#8217;s 112 data points going as high as 9232 before eventually dropping down to 1.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkhole.org/wp/2009/10/31/hailstone-sequence/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
