<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2enclosuresfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>brainwagon</title>
	
	<link>http://brainwagon.org</link>
	<description>This feed is dedicated to all the mental flotsam and jetsam that I find on the web and pursue in my off hours. It's a view into the head of a geek blogger with more interests than time. I hope you find something interesting.</description>
	<lastBuildDate>Thu, 02 Sep 2010 23:02:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/brainwagon" /><feedburner:info uri="brainwagon" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><media:copyright>Copyright 2006, Mark VandeWettering</media:copyright><media:thumbnail url="http://brainwagon.org/images/grumpy-brainwagon-small.jpg" /><media:keywords>geek,science,programming,computers,blogging,freebsd,telescopes,astronomy,gadgets,toys,games,puzzles,cryptography</media:keywords><media:category scheme="http://www.itunes.com/dtds/podcast-1.0.dtd">Games &amp; Hobbies</media:category><media:category scheme="http://www.itunes.com/dtds/podcast-1.0.dtd">Science &amp; Medicine/Natural Sciences</media:category><media:category scheme="http://www.itunes.com/dtds/podcast-1.0.dtd">Technology</media:category><geo:lat>37.969673</geo:lat><geo:long>-122.294134</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-nc-sa/2.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:browserFriendly>This is an XML formatted feed. Normally, you'd pass this URL to an RSS aggregator to subscribe to this feed.</feedburner:browserFriendly><item>
		<title>GPS Visualizer</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/CzZxQJv8XNY/</link>
		<comments>http://brainwagon.org/2010/09/02/gps-visualizer/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 23:02:31 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Amateur Radio]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6177</guid>
		<description><![CDATA[GPS visualizer takes all sorts of data from various GPS type hardware/applications, and can convert into bunches of other output formats, like Google Earth&#8217;s KML files, GPS files, output for Google Maps, and JPEG/PNG/SVG. It&#8217;s free. Stashed for future reference. GPS Visualizer.]]></description>
			<content:encoded><![CDATA[<p>GPS visualizer takes all sorts of data from various GPS type hardware/applications, and can convert into bunches of other output formats, like Google Earth&#8217;s KML files, GPS files, output for Google Maps, and JPEG/PNG/SVG.   It&#8217;s free.  Stashed for future reference.</p>
<p><a href="http://www.gpsvisualizer.com/">GPS Visualizer</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=CzZxQJv8XNY:uU3dIsaK72Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=CzZxQJv8XNY:uU3dIsaK72Y:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=CzZxQJv8XNY:uU3dIsaK72Y:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=CzZxQJv8XNY:uU3dIsaK72Y:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/CzZxQJv8XNY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/09/02/gps-visualizer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/09/02/gps-visualizer/</feedburner:origLink></item>
		<item>
		<title>Les Météores, René Descartes</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/EMxJOdwi3BQ/</link>
		<comments>http://brainwagon.org/2010/08/31/les-meteores-rene-descartes/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 05:51:31 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Amateur Science]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6174</guid>
		<description><![CDATA[I was hoping to find a copy of René Descartes treatment of rainbows as part of Project Gutenberg (hopefully in English) but no dice. It does appear that the Université de Québec has the work Les Météores as part of their online collection. It&#8217;s far too late for me to work on reading it (my [...]]]></description>
			<content:encoded><![CDATA[<p>I was hoping to find a copy of René Descartes treatment of rainbows as part of Project Gutenberg (hopefully in English) but no dice.   It does appear that the Université de Québec has the work Les Météores as part of their online collection.   It&#8217;s far too late for me to work on reading it (my French is pretty rusty, especially without my French dictionary) but I&#8217;ll have to have a look at it some other time.</p>
<p><a href="http://classiques.uqac.ca/classiques/Descartes/meteores/meteores.html">Les classiques des sciences sociales: René Descartes, Les Météores (1637)</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=EMxJOdwi3BQ:CDyD96Tj4og:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=EMxJOdwi3BQ:CDyD96Tj4og:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=EMxJOdwi3BQ:CDyD96Tj4og:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=EMxJOdwi3BQ:CDyD96Tj4og:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/EMxJOdwi3BQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/31/les-meteores-rene-descartes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/31/les-meteores-rene-descartes/</feedburner:origLink></item>
		<item>
		<title>Somewhere… over the (simulated) rainbow…</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/Rm83V5vBhNY/</link>
		<comments>http://brainwagon.org/2010/08/31/somewhere-over-the-simulated-rainbow/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 23:32:57 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Amateur Science]]></category>
		<category><![CDATA[Computer Graphics]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6165</guid>
		<description><![CDATA[A few days back, I simulated how light propagated in a single drop of water, but with a number of problems. First of all, it didn&#8217;t simulate the Fresnel equations, which describe how light is reflected and refracted at the interface between two media. This meant that in my simple model, no light is actually [...]]]></description>
			<content:encoded><![CDATA[<p>A few days back, I simulated <a href="http://brainwagon.org/2010/08/27/on-light-in-drops-of-water/">how light propagated in a single drop of water</a>, but with a number of problems.   First of all, it didn&#8217;t simulate the Fresnel equations, which describe how light is reflected and refracted at the interface between two media.  This meant that in my simple model, no light is actually subject to total internal reflection, and no light was scattered back in the direction that the light originated.   This is an important effect: without it, you cannot see rainbows.   It also assumed a single index of refraction, so we couldn&#8217;t see how the reflection and refraction change as a function of wavelength.</p>
<p>So, I decided to fix both problems, and run a simulation to see if I could capture some interesting features of rainbows by direct simulation.</p>
<p>To keep you interested (if possible), I&#8217;ll merely give the picture, then explain it.  (Click on it to view it full size).</p>
<div id="attachment_6166" class="wp-caption aligncenter" style="width: 398px"><a href="http://brainwagon.org/wp-content/uploads/2010/08/rainbow.png"><img src="http://brainwagon.org/wp-content/uploads/2010/08/rainbow-388x300.png" alt="" title="rainbow" width="388" height="300" class="size-medium wp-image-6166" /></a><p class="wp-caption-text">Simulated rainbow reflection, light enters from left, goes to right</p></div>
<p>It&#8217;s hard to see the detail in the area of interest, so here&#8217;s a better version, zoomed in (click to view bigger):</p>
<p><a href="http://brainwagon.org/wp-content/uploads/2010/08/closeup.png"><img src="http://brainwagon.org/wp-content/uploads/2010/08/closeup-300x300.png" alt="" title="closeup" width="300" height="300" class="aligncenter size-medium wp-image-6170" /></a></p>
<p>This describes the distribution of light in each outgoing direction, assuming light coming in from the left.    There are four different plots, ranging from the shortest wavelength (4047 Angstroms, or deep violet) to the longest (7065 Angstroms, or deep red).   (Sadly, there isn&#8217;t any correlation between the plot color and the wavelength, you have to look at the legend to interpret things properly.)  I got these plots by determining the index of water at each wavelength, and then simulating via Monte Carlo techniques the resulting outgoing distribution by tossing 10 million simulated photons at the drop.  At each surface interaction, it determines what the ratio of reflected to refracted light could be, and then take one path or the other based upon a weighted coin flip.  The final outgoing directions are binned, and we take the log of the count in each bin to produce the distance from the center in the polar plot.</p>
<p>This plot isn&#8217;t the most pretty thing you&#8217;ll ever see, but you&#8217;ll actually find a number of interesting things.   First of all, you&#8217;ll see that there are two rainbows represented.  The inner one is the brighter, and the outer one is significantly dimmer (you might estimate that it contains 1/10 as much energy, since it appears about 1 unit lower and I used log based 10).   The inner bow has violet at the inner side, and red at the outer side while the outer bow is reversed (red on the inner radius and violet on the outer radius).   There is also a distinct <em>lack</em> of light between the two bows.  The amount of light reflected in between the two bows is less than that scattered outside them.  This is a phenomenon called <a href="http://en.wikipedia.org/wiki/Alexander%27s_band">&#8220;Alexander&#8217;s band&#8221;</a>.   </p>
<p>I thought this was a fun experiment.   I could work a bit harder and actually produce the appropriate colors and intensities by some more computer graphics magic.   Perhaps that will wait for some other day.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=Rm83V5vBhNY:Cu4r8EYQWNw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=Rm83V5vBhNY:Cu4r8EYQWNw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=Rm83V5vBhNY:Cu4r8EYQWNw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=Rm83V5vBhNY:Cu4r8EYQWNw:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/Rm83V5vBhNY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/31/somewhere-over-the-simulated-rainbow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/31/somewhere-over-the-simulated-rainbow/</feedburner:origLink></item>
		<item>
		<title>APRS experiment: OpenTracker + Kenwood TH-D7A</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/SsazYEXNlLw/</link>
		<comments>http://brainwagon.org/2010/08/30/aprs-experiment-opentracker-kenwood-th-d7a/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 00:05:59 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Amateur Radio]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6160</guid>
		<description><![CDATA[On Saturday, I decided that the missus and I needed to do two things: get out of the house and get some exercise, and test my OpenTracker. So, I thought that we&#8217;d drive out to Mount Diablo, get a hike around, and then see how well the combination of my TH-D7A and the OpenTracker worked. [...]]]></description>
			<content:encoded><![CDATA[<p>On Saturday, I decided that the missus and I needed to do two things: get out of the house and get some exercise, and test my OpenTracker.   So, I thought that we&#8217;d drive out to Mount Diablo, get a hike around, and then see how well the combination of my TH-D7A and the OpenTracker worked.   For added difficulty, I set the TH-D7A to use the &#8220;EL&#8221; power setting, which is a very minimal 50mw, fed to the mag mount whip on the top of my Expedition.  </p>
<p>Here&#8217;s the path it recorded:</p>
<div id="attachment_6161" class="wp-caption aligncenter" style="width: 320px"><a href="http://brainwagon.org/wp-content/uploads/2010/08/K6HX-EL.png"><img src="http://brainwagon.org/wp-content/uploads/2010/08/K6HX-EL-310x300.png" alt="" title="K6HX-EL" width="310" height="300" class="size-medium wp-image-6161" /></a><p class="wp-caption-text">OpenTracker, Kenwood TH-D7a at 50mw</p></div>
<p>It worked pretty well, which bodes well for the balloon launch.  It suggests that power levels of a couple hundred mw would be entirely adequate for balloon launches.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=SsazYEXNlLw:haaVw6Vq_jo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=SsazYEXNlLw:haaVw6Vq_jo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=SsazYEXNlLw:haaVw6Vq_jo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=SsazYEXNlLw:haaVw6Vq_jo:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/SsazYEXNlLw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/30/aprs-experiment-opentracker-kenwood-th-d7a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/30/aprs-experiment-opentracker-kenwood-th-d7a/</feedburner:origLink></item>
		<item>
		<title>Khan Academy</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/yoU9Y0PscPI/</link>
		<comments>http://brainwagon.org/2010/08/30/khan-academy/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 19:37:12 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Amateur Science]]></category>
		<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6158</guid>
		<description><![CDATA[I&#8217;ve seen the Khan Academy listed a couple of times before, but never really bothered to look at it again until today. I was confused about a minor issue in linear algebra (hey, it&#8217;s been 25 years since I took linear algebra) so I surfed over and found the lecture on null subspaces to be [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve seen the Khan Academy listed a couple of times before, but never really bothered to look at it again until today.  I was confused about a minor issue in linear algebra (hey, it&#8217;s been 25 years since I took linear algebra) so I surfed over and found the lecture on null subspaces to be clear and easy to follow.   The Khan Academy has a huge number of lectures, covering mathematics, economics, physics, and lots of other good stuff.   Bookmark it for future reference! </p>
<p><a href="http://www.khanacademy.org/">Khan Academy</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=yoU9Y0PscPI:RGXVeMCHfNo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=yoU9Y0PscPI:RGXVeMCHfNo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=yoU9Y0PscPI:RGXVeMCHfNo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=yoU9Y0PscPI:RGXVeMCHfNo:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/yoU9Y0PscPI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/30/khan-academy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/30/khan-academy/</feedburner:origLink></item>
		<item>
		<title>Hydropower generator</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/J6esrYd4G08/</link>
		<comments>http://brainwagon.org/2010/08/30/hydropower-generator/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 17:19:09 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Amateur Science]]></category>
		<category><![CDATA[Link of the Day]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6151</guid>
		<description><![CDATA[On hack-a-day today, I saw this interesting link to a small hydroelectric generator. I&#8217;ve been interested in DIY/non-centralized generation of electricity for quite a while (without actually developing any serious knowledge about it, mind you) so I found the idea rather interesting. Paul taps water from a stream and uses it to feed a 2 [...]]]></description>
			<content:encoded><![CDATA[<p>On hack-a-day today, I saw this interesting link to a small hydroelectric generator.   I&#8217;ve been interested in DIY/non-centralized generation of electricity for quite a while (without actually developing any serious knowledge about it, mind you) so I found the idea rather interesting.   Paul taps water from a stream and uses it to feed a 2 inch water pipe, which eventually gets split into four 1/2 outlets which spray water onto a turbine which drives a low-rpm alternator.   </p>
<p><a href="http://hackaday.com/2010/08/27/hydropower-generator/#comments">Hydropower generator &#8211; Hack a Day</a>.</p>
<p>The hack-a-day article did make one claim which made me pause though: it said it could generate 56VDC at 10A.   Really?   That&#8217;s 560 watts, which seemed a lot.  In watching the video, it shows that it can generate 56V (actually AC), but that is without <em>any load</em>.   As soon as a load (such as a charge controller) is placed on the circuit the voltage will drop.  I&#8217;ll work out the math a bit at lunch, but I&#8217;d be surprised if you could get much over 100 watts of power.  Still, not inconsiderable, and if I had a shack in the woods, it would be a great way to keep the place lit. </p>
<p>It&#8217;s also interesting to figure out what the reliability of such a system can be.   The turbine is constructed from PVC elbows, and it&#8217;s not clear to me how they would handle the stress in continuous duty.</p>
<p>Still, very cool. </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=J6esrYd4G08:c0u6gDvHLhE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=J6esrYd4G08:c0u6gDvHLhE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=J6esrYd4G08:c0u6gDvHLhE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=J6esrYd4G08:c0u6gDvHLhE:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/J6esrYd4G08" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/30/hydropower-generator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/30/hydropower-generator/</feedburner:origLink></item>
		<item>
		<title>iHAB Iowa High Altitude Balloon</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/FTcFMMkV4ig/</link>
		<comments>http://brainwagon.org/2010/08/28/ihab-iowa-high-altitude-balloon/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 19:58:11 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Amateur Radio]]></category>
		<category><![CDATA[Amateur Satellite]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6148</guid>
		<description><![CDATA[I was on the #hamradio channel on IRC this morning where people were watghing the progress of the Iowa High Altitude Ballon (IHAB) operating with callsign W0OTM-4. We saw it drift up to an altitude of about 88K feet, before descending. They had a 20m beacon, an APRS beacon running on 2m, and a cellular [...]]]></description>
			<content:encoded><![CDATA[<p>I was on the #hamradio channel on IRC this morning where people were watghing the progress of the Iowa High Altitude Ballon (IHAB) operating with callsign W0OTM-4.   We saw it drift up to an altitude of about 88K feet, before descending.   They had a 20m beacon, an APRS beacon running on 2m, and a cellular telephone tracker.   Very cool.   Hopefully, they&#8217;ll have some photos soon.</p>
<p><a href="http://www.w0otm.com/iHAB/">iHAB Iowa High Altitude Balloon</a>.</p>
<p><b>Addendum:</b> Using aprs, i tracked both the balloon and the chase vehicle (callsign W0OTM-2) and showed the complete groundtrack of both.  Pretty neat.  </p>
<div id="attachment_6155" class="wp-caption alignnone" style="width: 357px"><a href="http://brainwagon.org/wp-content/uploads/2010/08/W0OTM.png"><img src="http://brainwagon.org/wp-content/uploads/2010/08/W0OTM-347x300.png" alt="" title="W0OTM" width="347" height="300" class="size-medium wp-image-6155" /></a><p class="wp-caption-text">Red track is the balloon, Blue is the chase vehicle</p></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=FTcFMMkV4ig:pmx5iGd0lWQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=FTcFMMkV4ig:pmx5iGd0lWQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=FTcFMMkV4ig:pmx5iGd0lWQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=FTcFMMkV4ig:pmx5iGd0lWQ:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/FTcFMMkV4ig" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/28/ihab-iowa-high-altitude-balloon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/28/ihab-iowa-high-altitude-balloon/</feedburner:origLink></item>
		<item>
		<title>Lightning, slowed down by a factor of 300…</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/5PtGhyqEJ24/</link>
		<comments>http://brainwagon.org/2010/08/27/lightning-slowed-down-by-a-factor-of-300/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 04:46:31 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Science]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6146</guid>
		<description><![CDATA[0.3 seconds of real time, stretched out to 90 seconds of video. Very cool.]]></description>
			<content:encoded><![CDATA[<p>0.3 seconds of real time, stretched out to 90 seconds of video.   Very cool.</p>
<p><center><iframe src="http://www.snotr.com/embed/5079" width="400" height="330" frameborder="0"></iframe></center></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=5PtGhyqEJ24:BA-pmhLBHa0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=5PtGhyqEJ24:BA-pmhLBHa0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=5PtGhyqEJ24:BA-pmhLBHa0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=5PtGhyqEJ24:BA-pmhLBHa0:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/5PtGhyqEJ24" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/27/lightning-slowed-down-by-a-factor-of-300/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/27/lightning-slowed-down-by-a-factor-of-300/</feedburner:origLink></item>
		<item>
		<title>On light in drops of water…</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/UHIcfrJIcZs/</link>
		<comments>http://brainwagon.org/2010/08/27/on-light-in-drops-of-water/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 20:13:46 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Amateur Science]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6138</guid>
		<description><![CDATA[A couple of days ago, I linked to an article which talked about using a laser beam as a kind of microscopic projector. The collimated laser light passes into a small drop of water, and then casts the image of protozoa (or other small swimmers) onto the wall. Very cool, but I wasn&#8217;t entirely sure [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of days ago, I <a href="http://brainwagon.org/2010/08/23/laser-microscope/">linked to an article which talked about using a laser beam as a kind of microscopic projector</a>.  The collimated laser light passes into a small drop of water, and then casts the image of protozoa (<a href="http://www.youtube.com/watch?v=ewWhc2gw6rg">or other small swimmers</a>) onto the wall.  Very cool, but I wasn&#8217;t entirely sure what was going on here.   The actual physics of the image formation is remarkably complicated, so I thought I&#8217;d try to understand it more or less from first principles.</p>
<p>Warning: I could be totally wrong about this stuff.  While I have all the right books to figure this stuff out, I haven&#8217;t dug them up or consulted them beyond some minor exploration of a couple of formulas.</p>
<p>I began by ignoring the wave theory of light entirely (which won&#8217;t get us very far, but it&#8217;s where I&#8217;m starting).   What does the distribution of light look like when it is refracted through a spherical drop of water?   I looked up the index of refraction for water (around 1.33) and wrote a simple 2D raytracer which uses Snell&#8217;s law to trace rays through a sphere.   Here&#8217;s the result:</p>
<div id="attachment_6140" class="wp-caption aligncenter" style="width: 310px"><a href="http://brainwagon.org/2010/08/27/on-light-in-drops-of-water/drop/" rel="attachment wp-att-6140"><img src="http://brainwagon.org/wp-content/uploads/2010/08/drop-300x300.png" alt="" title="drop" width="300" height="300" class="size-medium wp-image-6140" /></a><p class="wp-caption-text">A collimated laser beam hitting a spherical drop...</p></div>
<p>A couple of things to notice: the beam doesn&#8217;t converge inside the water droplet: it is &#8220;focussed&#8221; in a region outside the sphere.  It isn&#8217;t focused to a single point, it exhibits classic &#8220;spherical aberration&#8221;: the rays which hit the drop at different vertical positions cross the horizontal axis at different locations.   This raytrace also implements what is known as &#8220;total internal reflection&#8221;: when a ray passes from a dense (say water) medium into a less dense medium, there is a critical angle where instead of refracting, the ray is reflected.   It is a rather interesting quirk that this situation doesn&#8217;t occur in this hypothetical situation: all the rays hit the far side of the sphere at angles below the critical angle, and therefore exit the sphere after just two air/glass interactions.</p>
<p>If we zoom far back, we can see what the distributions of light should be:</p>
<div id="attachment_6141" class="wp-caption aligncenter" style="width: 310px"><a href="http://brainwagon.org/2010/08/27/on-light-in-drops-of-water/far/" rel="attachment wp-att-6141"><img src="http://brainwagon.org/wp-content/uploads/2010/08/far-300x300.png" alt="" title="far" width="300" height="300" class="size-medium wp-image-6141" /></a><p class="wp-caption-text">Same diagram, zoomed way back...</p></div>
<p>The light is scattered in a smooth lobe out the far side of the laser.   In Alan&#8217;s photos, you can see a very bright spot, which I suspect is caused largely by the fact that the droplets he was examining where very much smaller than the beamwidth of his laser, and you are simply seeing spillage around the laser light.</p>
<p>I was originally confused because I was thinking there simply <em>had</em> to be rays in this simple setup which would exhibit total internal reflection.   My thinking was that rainbows appear opposite the sun in the sky, so there has to be a reflection to get light back into your eye.   But the mechanism of this propagation isn&#8217;t by total internal reflection, it is governed by the <a href="http://en.wikipedia.org/wiki/Fresnel_equations">Fresnel equations</a>.   Whenever light passes between two media which have differing refractive indices, <em>both</em> reflection and refraction may occur.   The critical angle of Snell&#8217;s law is simply a subset of the behavior described by the Fresnel equations.    Fresnel&#8217;s equations predict the reflectance and transmission at interfaces based upon the angles and media.    Using this, you can determine that even at angles which are normal to the surface, you get some reflectance (in the case of air/water, about 2% of the light is bounced back).     It is this Fresnel reflectance on the interior bounces which is apparently responsible for the appearance of rainbows.  </p>
<p>(Of course, rainbows rely on the fact that the refractive index of a material is wavelength dependent.  Our laser is essentially a single wavelength, so we won&#8217;t ponder it further now). </p>
<p>Anyway, back to the laser projector.   It was apparent to me from the original video that there were significant diffraction patterns around each Protozoa, and Alan&#8217;s video (with much smaller critters) is primarilly full of diffraction patterns.  It is my believe that most of the light passing through these drops is actually propagating via diffraction (much like Gabor&#8217;s inline holograms) rather than simple projection.   The laser beam doesn&#8217;t form a small point inside the droplet, it is much closer to being a single collimated beam.   This means that potentially the methods used for digital inline holography could be applied to this very simple experimental setup.</p>
<p>More thoughts on this as they occur.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=UHIcfrJIcZs:bs1dsCsD-nY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=UHIcfrJIcZs:bs1dsCsD-nY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=UHIcfrJIcZs:bs1dsCsD-nY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=UHIcfrJIcZs:bs1dsCsD-nY:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/UHIcfrJIcZs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/27/on-light-in-drops-of-water/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/27/on-light-in-drops-of-water/</feedburner:origLink></item>
		<item>
		<title>Morning Commute with OpenTracker+</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/JPekTJzAr_w/</link>
		<comments>http://brainwagon.org/2010/08/24/morning-commute-with-opentracker/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 16:53:19 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Amateur Radio]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6134</guid>
		<description><![CDATA[So, this morning I decided to give my OpenTracker another run, both to get a feel for how some of the parameters worked, as well as just trying to find out how complete the coverage is here in the Bay Area. For this test, I first modified the APRS symbol to stop being the balloon [...]]]></description>
			<content:encoded><![CDATA[<p>So, this morning I decided to give my OpenTracker another run, both to get a feel for how some of the parameters worked, as well as just trying to find out how complete the coverage is here in the Bay Area.</p>
<p>For this test, I first modified the APRS symbol to stop being the balloon that I had yesterday (symbol &#8220;/O&#8221;) and switched it instead to the car icon (symbol &#8220;/>&#8221;).   I also turned on &#8220;smartbeaconing&#8221;, (described <a href="http://www.hamhud.net/hh2/smartbeacon.html">here</a>) so that it would beacon more frequently as my speed increases, and also beacon when I made turns of more than 28 degrees.   I then embarked upon my commute.    It worked pretty well, with a few caveats.</p>
<p>On the main highway, coverage was in general excellent, but in the areas directly surrounding my home (which has quite a few hills) the coverage is much spottier.   Even where coverage is good, most of the digipeaters here me are across the bay on San Francisco peninsula or are north, with distances that are quite large (and perhaps surprising, given the fact that I am transmitting with only 5w of output power).    I&#8217;m wondering, is there some way to locate all the digipeaters that are active in a given geographic region?   I&#8217;m interested in terms of my balloon planning: while I am going to be carrying an APRS equipped mobile rig in the chase vehicle, it would also be nice to know that our data has a good chance of making it to the APRS-IS network so that people could track it over the Internet, and to serve as a backup for our mobile operations.</p>
<p>Anyway&#8230; more on it all later.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=JPekTJzAr_w:IrN4br4JCVE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=JPekTJzAr_w:IrN4br4JCVE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=JPekTJzAr_w:IrN4br4JCVE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=JPekTJzAr_w:IrN4br4JCVE:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/JPekTJzAr_w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/24/morning-commute-with-opentracker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/24/morning-commute-with-opentracker/</feedburner:origLink></item>
		<item>
		<title>Laser Microscope</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/XSk4mNez_ec/</link>
		<comments>http://brainwagon.org/2010/08/23/laser-microscope/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 05:10:12 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Amateur Science]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6128</guid>
		<description><![CDATA[An interesting impromptu project: a laser pointer directed through a drop of water projects a large magnified image on the wall. Teravolt.org -- Laser Microscope. This reminded me of the setup that Gabor described decades ago for inline digital holography. I might have to give this a try sometime. www.youtube.com/watch?v=2aK_a-jr-tI]]></description>
			<content:encoded><![CDATA[<p>An interesting impromptu project: a laser pointer directed through a drop of water projects a large magnified image on the wall.   </p>
<p><a href="http://teravolt.org/Laser_Microscope.htm">Teravolt.org -- Laser Microscope</a>.</p>
<p>This reminded me of the setup that Gabor described decades ago for inline digital holography.   I might have to give this a try sometime.</p>
<p><center><br />
<span class="youtube">
<object width="425" height="373">
<param name="movie" value="http://www.youtube.com/v/2aK_a-jr-tI&amp;color1=006699&amp;color2=54abd6&amp;border=1&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0?rel=0" />
<param name="allowFullScreen" value="true" />
<embed wmode="transparent" src="http://www.youtube.com/v/2aK_a-jr-tI&amp;color1=006699&amp;color2=54abd6&amp;border=1&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0?rel=0" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="373"></embed>
<param name="wmode" value="transparent" />
</object>
</span><p><a href="http://www.youtube.com/watch?v=2aK_a-jr-tI">www.youtube.com/watch?v=2aK_a-jr-tI</a></p><br />
</center></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=XSk4mNez_ec:hh149dIYmME:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=XSk4mNez_ec:hh149dIYmME:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=XSk4mNez_ec:hh149dIYmME:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=XSk4mNez_ec:hh149dIYmME:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/XSk4mNez_ec" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/23/laser-microscope/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/23/laser-microscope/</feedburner:origLink></item>
		<item>
		<title>A Project from the Past: My OpenTracker+</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/dPTewSoSxU8/</link>
		<comments>http://brainwagon.org/2010/08/23/a-project-from-the-past-my-opentracker/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 21:19:24 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Amateur Radio]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6120</guid>
		<description><![CDATA[Over a year ago, I blogged that I had assembled a bit of amateur radio gear, the OpenTracker+. This little gadget has a couple of DB-9 ports on it. The first is used to connect to a GPS, and the other to a radio, such as my Kenwood TH-D7A. Together, they form a tracker: the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://brainwagon.org/2009/04/16/more-on-the-open-tracker-and-aprs/">Over a year ago, I blogged that I had assembled</a> a bit of amateur radio gear, the <a href="http://argentdata.com/products/otplus.html">OpenTracker+</a>.   This little gadget has a couple of DB-9 ports on it.  The first is used to connect to a GPS, and the other to a radio, such as my Kenwood TH-D7A.  Together, they form a tracker: the gps provides positioning, which the OT1+ encodes into a packet radio signal and sends via the HT.</p>
<p>Back then, I had it roughly hooked to my Garmin GPS 18 LVC, but I didn&#8217;t do a lot of testing with it (I didn&#8217;t wire up the proper power supply cabling and the like), but lately I&#8217;m trying to get back onto the possibility of doing a high altitude balloon launch, so I dusted it off and decided to get it all working again.   Since I built it, Argent Data Systems has begun to sell a nice little compact GPS, <a href="https://www.argentdata.com/catalog/product_info.php?cPath=23&#038;products_id=85&#038;osCsid=0002251d2f653f866608071a6801bd6f">the ADS-GM1</a>, which simply plugs into the open tracker, so I went ahead and ordered one, along with the radio/power cable designed to work with my Kenwood HT.  I don&#8217;t really think that I am going to send this precise hardware into space (it&#8217;s rather bulky compared to what can be achieved now) but it will give me experience with the OpenTracker, which has a smaller SMT based version that I could use.</p>
<p>Stay tuned for some smoke testing later.</p>
<p>Addendum: It works!  I hooked it up to my TH-D7A, and drove it around for bit.   I didn&#8217;t bother to calibrate the audio levels very well, but it seems like it works pretty well.  Here is a log of the packets received at findu.com for <a href="http://www.findu.com/cgi-bin/raw.cgi?call=K6HX-9">K6HX-9</a>.   The voltage varies as I start and stop my car, while the temperature (23C, or about 73F) stays pretty constant (it was a nice day today).   </p>
<div id="attachment_6125" class="wp-caption aligncenter" style="width: 435px"><a href="http://brainwagon.org/2010/08/23/a-project-from-the-past-my-opentracker/k6hx-2/" rel="attachment wp-att-6125"><img src="http://brainwagon.org/wp-content/uploads/2010/08/k6hx-425x254.png" alt="" title="k6hx" width="425" height="254" class="size-medium wp-image-6125" /></a><p class="wp-caption-text">K6HX-9 on a trip to the frozen yogurt shop via my OpenTracker+</p></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=dPTewSoSxU8:Lbh99ZrJUW0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=dPTewSoSxU8:Lbh99ZrJUW0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=dPTewSoSxU8:Lbh99ZrJUW0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=dPTewSoSxU8:Lbh99ZrJUW0:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/dPTewSoSxU8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/23/a-project-from-the-past-my-opentracker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/23/a-project-from-the-past-my-opentracker/</feedburner:origLink></item>
		<item>
		<title>Twitter Test</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/avCyCZLTe9c/</link>
		<comments>http://brainwagon.org/2010/08/19/twitter-test/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 21:13:26 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6114</guid>
		<description><![CDATA[A recent upgrade broke twitter updates on my blog. If you read this on twitter, it means that it&#8217;s working again. Addendum: Sigh. Still broken. Working on it.]]></description>
			<content:encoded><![CDATA[<p>A recent upgrade broke twitter updates on my blog.   If you read this on twitter, it means that it&#8217;s working again.</p>
<p>Addendum:  Sigh.  Still broken.    Working on it.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=avCyCZLTe9c:W9Ivhh6JNqQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=avCyCZLTe9c:W9Ivhh6JNqQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=avCyCZLTe9c:W9Ivhh6JNqQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=avCyCZLTe9c:W9Ivhh6JNqQ:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/avCyCZLTe9c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/19/twitter-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/19/twitter-test/</feedburner:origLink></item>
		<item>
		<title>Old Glory, in Postscript</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/9rI8ETtZi-o/</link>
		<comments>http://brainwagon.org/2010/08/19/old-glory-in-postscript/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 20:47:43 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[My Projects]]></category>
		<category><![CDATA[Toys and Gadgets]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6105</guid>
		<description><![CDATA[I needed a graphic of a flag that I could scale to whatever size I needed. About 10 minutes of Postscript hacking with the specifications in Wikipedia yielded the following results: Sadly, the syntax highlighter that I have here doesn&#8217;t know about PostScript, so I&#8217;ll just have to add it here. %!PS % % % [...]]]></description>
			<content:encoded><![CDATA[<p>I needed a graphic of a flag that I could scale to whatever size I needed.  About 10 minutes of Postscript hacking with the specifications in Wikipedia yielded the following results:</p>
<p><a href="http://brainwagon.org/2010/08/19/old-glory-in-postscript/flag/" rel="attachment wp-att-6106"><img src="http://brainwagon.org/wp-content/uploads/2010/08/flag-425x224.png" alt="" title="flag" width="425" height="224" class="alignnone size-medium wp-image-6106" /></a></p>
<p>Sadly, the syntax highlighter that I have here doesn&#8217;t know about PostScript, so I&#8217;ll just have to add it here.</p>
<pre style="font-size: 10px; line-height: 11px;">
%!PS
%
%
% PostScript program for generating an image of the US Flag
% Generated by implementing the specifications which are listed on
% the wikipedia page:
%
% http://en.wikipedia.org/wiki/Flag_of_the_United_States#Specifications
%
% by Mark VandeWettering

/inch {72 mul} def

/Hoist 1.0 def
/Fly 1.9 def
/UnionHoist Hoist 7 mul 13 div def
/UnionFly Fly 2 mul 5 div def
/WidthStripe Hoist 13 div def
/F 0.054 def
/G 0.063 def

/StarDiameter 0.0616 def
/StarRadius StarDiameter 2 div def

% When a regular pentagon is inscribed in a circle with radius R, its
% edge length t is given by the expression:
% t = 2 R sin(pi / 5)
% PostScript does sin in degrees, so we need 180 instead...

/StarSide StarDiameter 36 sin mul def
/StarDiagonal StarSide 5 sqrt 1 add 2 div mul def

/white {1 1 1 setrgbcolor} def
/red {0.698 .132 .203 setrgbcolor} def
/blue {0.234 0.233 0.430 setrgbcolor} def

% draw a star at the cursor position...

/stardiagonal {
	StarDiagonal 0 lineto
	currentpoint translate
	-144 rotate
} def

/star {
	gsave
	exch StarDiagonal 2 div sub exch
	StarRadius 18 sin mul add
	moveto currentpoint translate
	4 { stardiagonal } repeat closepath
	fill
	grestore
} def

% draw the border...
/Flag {
    gsave
    0.001 setlinewidth
    Fly 2 div neg Hoist 2 div neg translate
    0 0 Fly Hoist rectstroke
    % paint in the bg, just in case
    white
    0 0 Fly Hoist rectfill
    % paint in the red stripes...
    red
    1 2 13 {
	1 sub
	WidthStripe mul 0 exch Fly WidthStripe rectfill
    } for
    % draw in the union...
    blue
    0 Hoist UnionHoist sub UnionFly UnionHoist rectfill

    % now, the stars, easiest to do in two passes.
    gsave
    0 Hoist UnionHoist sub translate
    white
    1 2 9 {
	/y exch def
	1 2 11 {
	    /x exch def
	    x G mul y F mul star
	} for
    } for
    2 2 8 {
	/y exch def
	2 2 10 {
	    /x exch def
	    x G mul y F mul star
	} for
    } for
    grestore

    grestore

} def

8.5 inch 2 div 11.0 inch 2 div translate 4 inch dup scale

Flag

showpage
quit
</pre>
<p>Enjoy.</p>
<p>Addendum:</p>
<p> Oh, incidently, you can use <a href="http://gimp.org">The Gimp</a> to convert this from PostScript to a normal graphics format like the PNG file above.  It will even do some antialiasing to make the jaggies look better.   Very nice.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=9rI8ETtZi-o:D-iXhtUSskA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=9rI8ETtZi-o:D-iXhtUSskA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=9rI8ETtZi-o:D-iXhtUSskA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=9rI8ETtZi-o:D-iXhtUSskA:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/9rI8ETtZi-o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/19/old-glory-in-postscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/19/old-glory-in-postscript/</feedburner:origLink></item>
		<item>
		<title>Pictures of the Blum Blum Shub Random number generator…</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/E4A51CQIk7I/</link>
		<comments>http://brainwagon.org/2010/08/18/pictures-of-the-blum-blum-shub-random-number-generator/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 06:24:30 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Amateur Radio]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6099</guid>
		<description><![CDATA[A couple of years ago, I did a post about the Blum Blum Shub random number generator. I was watching Psych, and bored, so I decided to just make a picture of the random bits generated when I generated two 50 digit primes. Without further ado, or explanation, check it: There do indeed seem to [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of years ago, I did a post about the Blum Blum Shub random number generator.  I was watching Psych, and bored, so I decided to just make a picture of the random bits generated when I generated two 50 digit primes.    Without further ado, or explanation, check it:</p>
<p><a href="http://brainwagon.org/2010/08/18/pictures-of-the-blum-blum-shub-random-number-generator/xxx-2/" rel="attachment wp-att-6100"><img src="http://brainwagon.org/wp-content/uploads/2010/08/xxx.png" alt="" title="xxx" width="256" height="256" class="aligncenter size-full wp-image-6100" /></a></p>
<p>There do indeed seem to be very little pattern in it.   Although if you knew the two primes that I used, you could generate the value of not just any bit here, but any bit in the future too.</p>
<p>Time for bed.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=E4A51CQIk7I:p6WhaFBKwFg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=E4A51CQIk7I:p6WhaFBKwFg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=E4A51CQIk7I:p6WhaFBKwFg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=E4A51CQIk7I:p6WhaFBKwFg:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/E4A51CQIk7I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/18/pictures-of-the-blum-blum-shub-random-number-generator/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/18/pictures-of-the-blum-blum-shub-random-number-generator/</feedburner:origLink></item>
		<item>
		<title>CUSF Landing Predictor 2.0</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/rAElmIw5snw/</link>
		<comments>http://brainwagon.org/2010/08/16/cusf-landing-predictor-2-0/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 04:32:28 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Amateur Satellite]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6095</guid>
		<description><![CDATA[Cambridge University has an amazing webpage that provides a web based front end to a weather balloon flight prediction program. It can even save output in Google Earth&#8217;s KML format. Very cool, very useful, saved for future perusal. CUSF Landing Predictor 2.0.]]></description>
			<content:encoded><![CDATA[<p>Cambridge University has an <em>amazing</em> webpage that provides a web based front end to a weather balloon flight prediction program.   It can even save output in Google Earth&#8217;s KML format.   Very cool, very useful, saved for future perusal.</p>
<p><a href="http://www.srcf.ucam.org/~cuspaceflight/predict/">CUSF Landing Predictor 2.0</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=rAElmIw5snw:mSfzNyNORDA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=rAElmIw5snw:mSfzNyNORDA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=rAElmIw5snw:mSfzNyNORDA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=rAElmIw5snw:mSfzNyNORDA:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/rAElmIw5snw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/16/cusf-landing-predictor-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/16/cusf-landing-predictor-2-0/</feedburner:origLink></item>
		<item>
		<title>Making a soft-circuit input device for your computer</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/318HEUyxomo/</link>
		<comments>http://brainwagon.org/2010/08/13/making-a-soft-circuit-input-device-for-your-computer/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 20:27:07 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Toys and Gadgets]]></category>
		<category><![CDATA[electronics]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6086</guid>
		<description><![CDATA[I&#8217;m intrigued by various uses for embedded processors, and so are my readers. I hadn&#8217;t seen this particular microcontroller board before, the &#8220;Teensy&#8221;, which is very similar to the Arduino, except that it is uses an ATMEL AVR chip with a direct support for USB. The link also points at a nifty interface to &#8220;soft [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m intrigued by various uses for embedded processors, and so are my readers.  I hadn&#8217;t seen this particular microcontroller board before, the &#8220;Teensy&#8221;, which is very similar to the Arduino, except that it is uses an ATMEL AVR chip with a direct support for USB.   The link also points at a nifty interface to &#8220;soft circuit&#8221; elements, which probably has some nifty controller applications.</p>
<p><a href="http://blog.makezine.com/archive/2010/08/making_a_soft-circuit_input_device.html">Make: Online : Making a soft-circuit input device for your computer</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=318HEUyxomo:NSvIeO_EqVg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=318HEUyxomo:NSvIeO_EqVg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=318HEUyxomo:NSvIeO_EqVg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=318HEUyxomo:NSvIeO_EqVg:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/318HEUyxomo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/13/making-a-soft-circuit-input-device-for-your-computer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/13/making-a-soft-circuit-input-device-for-your-computer/</feedburner:origLink></item>
		<item>
		<title>Thoughts on the Google/Verizon net neutrality proposal…</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/qmNzgSUEp2Q/</link>
		<comments>http://brainwagon.org/2010/08/12/thoughts-on-the-googleverizon-net-neutrality-proposal/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 23:05:22 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Rants and Raves]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6084</guid>
		<description><![CDATA[I&#8217;ve had a few days to sit and think about the proposal that Google and Verizon have published, and I think it is time to write some of it down. If nothing else, in the future it will provide me perspective in future years, as August 12th rolls around each year, this post will circulate [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had a few days to sit and think about the proposal that Google and Verizon have published, and I think it is time to write some of it down.   If nothing else, in the future it will provide me perspective in future years, as August 12th rolls around each year, this post will circulate back to the top and I can see how prescient I was.</p>
<p>First of all, if you haven&#8217;t read it, you probably should.  It&#8217;s only a couple of pages, so surf on over and give it a read.  I&#8217;ll still be here when you get back.</p>
<p><a href="http://tinyurl.com/2ctjeew">Verizon-Google Legislative Framework Proposal</a></p>
<p>Okay, did it leave you with an uneasy feeling?   It did me.   Most of the people I respect seem to think that I should feel uneasy, but a select few seem to think that I&#8217;m overreacting.   I am not sure which is right, but I&#8217;ll let you know what my specific qualms are, and then follow it with a few general comments.   </p>
<p>First of all, the section on Consumer Protections qualifies that broadband Internet service providers should not prevent users from accessing &#8220;lawful content of their choice&#8221; or &#8220;running lawful applications and using lawful services of their choice&#8221;.   IANAL, but I&#8217;m a little troubled by this concept of &#8220;lawful content&#8221; or &#8220;lawful applications&#8221;.   Lots of people are whining about this provision, presumably because it prevents them from downloading copyrighted material on the Internet.  I&#8217;m a bit concerned by this, because it gives the ISP a convenient excuse for nearly any modification of internet access: &#8220;we are trying to prevent trafficking of copyrighted materials&#8221;.    </p>
<p>The section on Network Management is similarly a bit strange.   I agree that ISPs need to be able to efficiently run their networks in an efficient manner, but I am a bit concerned at the idea that &#8220;any technically sound practice&#8221; can be used, without any guidance as to the underlying principles that must be followed.   A technically sound practice might include simply disconnecting the top 1% of the bandwidth users to mitigate connection problems.   It might even be agreed to by the majority of service providers, but it isn&#8217;t necessarily the right choice for consumers.   I think it is entirely reasonable to allow ISPs to limit the total bandwidth or capacity, or to price their service according to bandwidth used, but not to pick and choose which services or which users are &#8220;managed&#8221; out side of those basic constraints.</p>
<p>But the section that really disturbs me is the &#8220;differentiated services&#8221;.   I wonder really what those differentiated services are, and they were very coy in their proposal.   Some people might think that delivering VOIP over the internet is a &#8220;differentiated service&#8221;.   Or running an FTP server.   Or downloading Netflix.   Applications to your mobile phone.   All of these things were &#8220;distinguishable in scope and purpose from broadband Internet&#8221; at some point, but now are part and parcel of what people use the Internet for every day.  I cannot help but think that this is an attempt for ISPs to carve out special exceptions for neutrality on new services so that they have a preferred track to sell such services and prioritize them over the more &#8220;traditional&#8221; Internet services.   This is bad for competition, and bad for consumers. </p>
<p>I&#8217;m also troubled by the desire for an exemption for wireless networks.   There is simply no rationale given, merely the assertion that they have &#8220;unique technical and operational characteristics&#8221;, so the requirement of transparency would be required for operation over the wireless networks.    I can imagine that the cellular phone networks are very happy with this provision, since they already run some of the least consumer-friendly and most lucrative networks available, and this provision is essentially carte-blanche to permit or deny any service on their networks that they like.    They would have the power to be the kingmakers of the wireless internet, purely by allowing or denying companies access to consumers. </p>
<p>Okay, those are pretty specifically the parts that annoy me.   In the end, we give up network neutrality on wireless networks, we grant the ISPs the power to differentiate their networks by selling differentiated products and we have to deal with consumer agencies who are asked to fill a law enforcement role (or who can at least hide behind it as an excuse for nearly arbitrary changes in service).   We also agree to allow the industry players to decide what practices can be used to solve their networking problems.   And in return consumers get&#8230;.?    Greater transparency, okay.   And the ability to ask the FCC to investigate on a case by case basis any abuses, but without any additional rulemaking power.</p>
<p>I&#8217;m underwhelmed.   I think you should be too.</p>
<p>Google is partnering with Verizon on this proposal, and I think we as consumers should be skeptical of this.  After all, the wireless industry engages in all sorts of activities which are terrible for consumers, and which are antithetical to the principles that allowed the vibrant Internet growth of the last decade or more.   Wireless companies uniformly try to lock consumers into long term contracts, with high penalties for early cancellation, and often include excessive activation fees for account changes.   Consumers often have no protection against accidental overages, or must pay (again) excessive charges to prevent overages.   Consumers pay high fees for SMS messaging, despite the nearly neglible costs associated with sending SMS because of the incredibly low amount of information sent.   Consumers have to deal with phones which are locked by vendors to prevent a consumer from leaving a particular network and going to a competitor.   Consumers cannot get any information about the delivered call quality, or the percentage of dropped calls.</p>
<p>The Verizon-Google proposal talks about the &#8220;increased competition&#8221; in the wireless arena, but even though there are probably three or four carriers that might reasonably be used in an area, often the effective number is only two or even one major carrier.   When you combine this with the long contracts and high penalties for switching, this presumed &#8220;competition&#8221; simply vanishes.   </p>
<p>Consider AT&#038;T&#8217;s most recent filing with the SEC.   As part of that filing, they had to list the risk associated with the possibility of losing the relatively lucrative exclusivity agreement with Apple and the iPhone.  They downplayed this risk in a number of ways, including statements like:</p>
<blockquote><p>
As these exclusivity arrangements end, we expect to continue to offer such handsets (based on historical industry practice), and we believe our service plan offerings will help to retain our customers by providing incentives not to move to a new carrier. As noted above, more than 80 percent of our postpaid subscribers are on Family Talk® Plans and business plans that would involve moving the whole group to a new carrier. Moreover, the vast majority of our postpaid subscribers (including Family Talk® Plan users) are allowed to accumulate unused minutes (known as rollover minutes), a feature that is currently not offered by other major post-paid carriers in the United States, and users would lose these minutes if they switched carriers. As is common in the industry, most of our phones are designed to work only with our wireless technology, requiring customers who desire to move to a new carrier with a different technology to purchase a new device. In addition, many of our handsets would not work or would lose some functionality if they were used on another carrier’s network (even a carrier using GSM technology), requiring the customer to acquire another handset.
</p></blockquote>
<p>The cynic in me reads this as &#8220;the majority of our customers won&#8217;t switch because our industry has made it painful and costly to switch&#8221;.  </p>
<p>Okay, so what is my answer?   I think that we need clear separation between carriers and service providers.   Carriers should not be allowed to sell services or differentiate traffic with respect to source or application.   They should be required to be transparent.   They should be permitted to sell Internet bandwidth in ways which allow customers to pay for the bandwidth and latency that they need.    Consumers should have portability of devices, and be protected against absurd overages and upgrade fees.   And the future Googles and Facebooks of the world shouldn&#8217;t be stifled by Verizon and AT&#038;T. </p>
<p>Okay, back to work.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=qmNzgSUEp2Q:6Kp6JaqA7Jg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=qmNzgSUEp2Q:6Kp6JaqA7Jg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=qmNzgSUEp2Q:6Kp6JaqA7Jg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=qmNzgSUEp2Q:6Kp6JaqA7Jg:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/qmNzgSUEp2Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/12/thoughts-on-the-googleverizon-net-neutrality-proposal/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/12/thoughts-on-the-googleverizon-net-neutrality-proposal/</feedburner:origLink></item>
		<item>
		<title>HOWTO make a simple HTTP server…</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/bSr7eD_c8B0/</link>
		<comments>http://brainwagon.org/2010/08/12/howto-make-a-simple-http-server/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 19:06:05 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Programming]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6082</guid>
		<description><![CDATA[It&#8217;s occasionally useful to have a basic HTTP running to serve the files in a directory. You might want to fetch some MP3 or movie files from one machine, or in my case, a PDF document that I&#8217;m hacking on my Linux box while ssh&#8217;ed in from my Windows laptop. In the past, I have [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s occasionally useful to have a basic HTTP running to serve the files in a directory.   You might want to fetch some MP3 or movie files from one machine, or in my case, a PDF document that I&#8217;m hacking on my Linux box while ssh&#8217;ed in from my Windows laptop.   In the past, I have used Jef Poskanzer&#8217;s mini-httpd, but there is an even simpler way, especially if you already have Python installed.</p>
<p>Just &#8220;cd towhatever directory&#8221;, and then type &#8220;python -m SimpleHTTPServer&#8221;.   Voila!   An HTTP server running, bound to port 8000 on that machine.   </p>
<p>Very useful.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=bSr7eD_c8B0:P9Ug9Ys2lJ8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=bSr7eD_c8B0:P9Ug9Ys2lJ8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=bSr7eD_c8B0:P9Ug9Ys2lJ8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=bSr7eD_c8B0:P9Ug9Ys2lJ8:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/bSr7eD_c8B0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/12/howto-make-a-simple-http-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/12/howto-make-a-simple-http-server/</feedburner:origLink></item>
		<item>
		<title>Zounds!   Sounds!</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/kQZR-5Bid4g/</link>
		<comments>http://brainwagon.org/2010/08/11/zounds-sounds-2/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 18:39:50 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[My Projects]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6065</guid>
		<description><![CDATA[Tom and I have been discussing some early hacking efforts, probably spawned in part by my re-reading of Levy&#8217;s Hackers. A couple of days ago, this resulted in me pondering the mysteries of Minsky&#8217;s circle algorithm (still ongoing), but today it drove me to an early interesting sound algorithm documented in the legendary HAKMEM, ITEM [...]]]></description>
			<content:encoded><![CDATA[<p>Tom and I have been discussing some early hacking efforts, probably spawned in part by my re-reading of Levy&#8217;s <em>Hackers</em>.   A couple of days ago, this resulted in me pondering the mysteries of Minsky&#8217;s circle algorithm (still ongoing), but today it drove me to an early interesting sound algorithm documented in <a href="http://www.inwap.com/pdp10/hbaker/hakmem/hacks.html#item168">the legendary HAKMEM, ITEM 168</a>, which shows a simple six instruction program that generated sounds on the PDP-1.  The basic idea was pretty simple: we have two variables, A and B.   Read the front panel switches from the PDP-1, and add it to A.   Then take the contents of A, apply a bit-wise AND from a mask, and then add that to B.   Mask off the high bit of B, and output that as the &#8220;music&#8221;.   (Note: I am a bit confused by ITEM 168.  The PDP-1 code there doesn&#8217;t seem to be exactly what I described, but the mnemonics they list are somewhat unfamiliar to me.  In any case, the rough English description above will suffice for now&#8230;)</p>
<p>In any case, I didn&#8217;t have a PDP-1 lying around, so I decided to implement the thing in C, using portaudio and the GNU readline library.   Here&#8217;s the code:</p>
<pre class="brush: cpp;">
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;math.h&gt;
#include &lt;readline/readline.h&gt;
#include &lt;sndfile.h&gt;

/*                  __
 *    ___  ___ ____/ /__  ___  ___
 *   / _ \/ _ `/ _  / _ \/ _ \/ _ \
 *  / .__/\_,_/\_,_/\___/\___/ .__/
 * /_/                      /_/
 *
 * A simple musical toy inspired by some discussions on early computer
 * music with Tom Duff, written by Mark VandeWettering.
 *
 * THE BASIC IDEA
 * Tom informed me that someone generated odd musical tones with a
 * very short program on the PDP 1 that basically looked like this:
 *
 * for (;;) {
 *    a += sw ;         some front panel switches
 *    b += a &amp; mask ;   mask just selects some part of a...
 *    output(a&gt;&gt;30) ;   output a single bit square wave...
 * }
 *
 * So that's what this toy emulates.
 *
 * I've also added a tiny bit of interface to allow you to change the
 * switch settings and the mask on the fly, to &quot;play&quot; the instrument.
 *
 * I've called this program &quot;padoop&quot; just because I needed some vowels
 * added to &quot;PDP&quot;.
 *
 * Tom points out that it wouldn't be hard to implement this in
 * hardware, completely without a processor.
 */

#include &lt;stdint.h&gt;
#include &lt;portaudio.h&gt;

#define SAMPLE_RATE     44100

typedef struct {
        uint32_t        a, b ;
        SNDFILE         *sf ;
} paMusicData ;

uint32_t        SW ;
uint32_t        MASK ;

/*
 * Here is a very simple output filter designed by Fisher's mkfilter code.
 */

#define NZEROS 2
#define NPOLES 2
#define GAIN   3.414213562e+00

static float xv[NZEROS+1], yv[NPOLES+1];

float
filter(float inp)
{
    xv[0] = xv[1]; xv[1] = xv[2];
    xv[2] = inp / GAIN;
    yv[0] = yv[1]; yv[1] = yv[2];
    yv[2] = (xv[0] + xv[2]) + 2 * xv[1]
        + ( -0.1715728753 * yv[0]) + ( -0.0000000000 * yv[1]);
    return yv[2];
}

static int
paMusicCallback(const void * inputBuffer,
                void * outputBuffer,
                unsigned long framesPerBuffer,
                const PaStreamCallbackTimeInfo * timeInfo,
                PaStreamCallbackFlags statusFlags,
                void * userData)
{
    paMusicData * data = (paMusicData *) userData ;
    float *out = (float *) outputBuffer, *op ;
    float f ;
    int i ;

    op = out ;
    for (i=0; i&lt;framesPerBuffer; i++) {
        data-&gt;a += SW ;
        data-&gt;b += data-&gt;a &amp; MASK ;
        *op++ = filter((data-&gt;b&amp;(1L&lt;&lt;31))?1.0:-1.0) ;
    }

    if (data-&gt;sf != NULL) sf_write_float(data-&gt;sf, out, framesPerBuffer) ;

    return 0 ;
}

void
process_command(char *cmd)
{
    uint32_t tmp ;

    if (strlen(cmd) &gt; 0)
        add_history(cmd) ;
    if (strcmp(cmd, &quot;p&quot;) == 0 || strcmp(cmd, &quot;print&quot;) == 0) {
        fprintf(stderr, &quot;sw 0x%08X\n&quot;, SW) ;
        fprintf(stderr, &quot;mask 0x%08X\n&quot;, MASK) ;
    } else if (sscanf(cmd, &quot;sw %i\n&quot;, &amp;tmp) == 1) {
        SW = tmp ;
        fprintf(stderr, &quot;sw 0x%08X\n&quot;, SW) ;
    } else if (sscanf(cmd, &quot;mask %i\n&quot;, &amp;tmp) == 1) {
        MASK = tmp ;
        fprintf(stderr, &quot;mask 0x%08X\n&quot;, MASK) ;
    }
}

main()
{
    PaStream *stream ;
    paMusicData data ;
    PaError err = Pa_Initialize() ;
    uint32_t m1, m2 ;
    if (err != paNoError) goto error ;
    SF_INFO sfinfo ;

    data.a = data.b = 0 ;
    /* log output data to a file... */

    sfinfo.samplerate = SAMPLE_RATE ;
    sfinfo.channels = 1 ;
    sfinfo.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16 ;
    data.sf = sf_open(&quot;padoop.wav&quot;, SFM_WRITE, &amp;sfinfo) ;

    SW = 012345 ;
    MASK = 0x0f0f0f0f ;

    /* open the music output device... */
    err = Pa_OpenDefaultStream(&amp;stream,
        0,              /* no input */
        1,              /* just one output */
        paFloat32,      /* output float data */
        SAMPLE_RATE,    /* at some sample rate */
        8192,           /* samples per frame */
        paMusicCallback,
        &amp;data) ;

    if (err != paNoError) goto error ;

    /* start */
    err = Pa_StartStream(stream) ;
    if (err != paNoError) goto error ;

    for (;;) {
        char * line = readline(&quot;padoop&gt; &quot;) ;
        if (line == NULL) break ;
        process_command(line) ;
        free((void *) line) ;
    }

    err = Pa_StopStream(stream) ;
    if (err != paNoError) goto error ;

    sf_close(data.sf) ;

    err = Pa_Terminate() ;
    if (err != paNoError) goto error ;
    exit(0) ;

error:
    fprintf(stderr, &quot;PortAudio error: %s\n&quot;, Pa_GetErrorText(err)) ;
    Pa_Terminate() ;
    exit(-1) ;
}
</pre>
<p>You&#8217;ll need to have the portaudio and readline libraries installed to me it work.  When you run it, it should start making noises, and you&#8217;ll see a command line prompt.  It accepts 3 commands: &#8220;print&#8221; which dumps the contents of the mask and switches, &#8220;sw&#8221; followed by a number, which sets the value of the switches, and &#8220;mask&#8221; followed by a number, which does the same for the mask.   Give it a try.</p>
<p><b>Addendum:</b> Try &#8220;sw 4096&#8243; and &#8220;mask 0xFF0F0000&#8243;.   Let it run for a while.   If you find some interesting settings, post them in comments.<br />
<b>Addendum<sup>2</sup>:</b> I included a fairly soft output filter to round the square waves a tiny bit.  I&#8217;m not sure it makes any difference at all.<br />
<b>Addendum<sup>3</sup>:</b> I made a version of padoop that also logged the output audio to a WAV file, so even if you can&#8217;t compile it, you can hear some of the sounds it might make.<br />
<a href='http://brainwagon.org/wp-content/uploads/2010/08/padoop.mp3'>Output from Padoop, my PDP-1 inspired music program&#8230; </a><br />
<a href='http://brainwagon.org/wp-content/uploads/2010/08/padoop2.mp3'>Another bit of output&#8230;</a><br />
<b>Addendum<sup>4</sup>:</b> While editing, I got some of the escaped characters screwed up, so I reinserted with the latest version.  It automatically outputs a padoop.wav file of all the output that the program creates.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=kQZR-5Bid4g:uPkv_uQkKGE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=kQZR-5Bid4g:uPkv_uQkKGE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=kQZR-5Bid4g:uPkv_uQkKGE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=kQZR-5Bid4g:uPkv_uQkKGE:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/kQZR-5Bid4g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/11/zounds-sounds-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>

<enclosure url="http://brainwagon.org/wp-content/uploads/2010/08/padoop2.mp3" length="896730" type="audio/mpeg" />
		<media:content url="http://feedproxy.google.com/~r/brainwagon/~5/zWgnK3ydyuU/padoop.mp3" fileSize="850754" type="audio/mpeg" /><feedburner:origLink>http://brainwagon.org/2010/08/11/zounds-sounds-2/</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/brainwagon/~5/zWgnK3ydyuU/padoop.mp3" length="850754" type="audio/mpeg" /><feedburner:origEnclosureLink>http://brainwagon.org/wp-content/uploads/2010/08/padoop.mp3</feedburner:origEnclosureLink></item>
		<item>
		<title>Drawing “circles” ala Marvin Minsky…</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/tSPGHCOjlbU/</link>
		<comments>http://brainwagon.org/2010/08/09/drawing-circles-ala-marvin-minsky/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 22:41:22 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Computer Graphics]]></category>
		<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Math]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6053</guid>
		<description><![CDATA[In my re-reading of Levy&#8217;s book Hackers, I was reminded of an interesting bit of programming lore regarding an early display hack that Marvin Minsky did for circle drawing. It&#8217;s an interesting hack because the lore was that it was originally coded by mistake, and yet the result proved to be both interesting and even [...]]]></description>
			<content:encoded><![CDATA[<p>In my re-reading of Levy&#8217;s book <em>Hackers</em>, I was reminded of an interesting bit of programming lore regarding an early display hack that Marvin Minsky did for circle drawing.   It&#8217;s an interesting hack because the lore was that it was originally coded by mistake, and yet the result proved to be both interesting and even useful.    I first learned of this years ago when Blinn did an article on different ways to draw a circle, but also learned that it was part of the MIT AI memo called &#8220;HAKMEM&#8221;.    Here&#8217;s the basic idea:</p>
<p>One way that you can draw a circle is to take some point x, y on the circle, and then generate new points by rotating them around the center (let&#8217;s say that&#8217;s the origin for ease) and connecting them with lines.    If you have a basic understanding of matrix math, it looks like this:</p>
<pre>
/ x' \   /  cos theta  sin theta \ / x \
|    | = |                       | |   |
\ y' /   \ - sin theta cos theta / \ y /
</pre>
<p>(I should learn how to use MathML, but you hopefully get the idea).   The matrix with the cosine and sine terms in it is a <em>rotation matrix</em> which rotates a point around by the angle theta.    Apparently Minsky tried to simplify this by noting that cos(theta) is very nearly one for small theta, and that sin(theta) can be approximated by theta (we can get this by truncating the Taylor series for both).   Therefore, he thought that (I&#8217;m guessing here, but it seems logical) that we could simplify this as:</p>
<pre>
/ x' \   /   1  eps \ / x \
|    | = |          | |   |
\ y' /   \ -eps  1  / \ y /
</pre>
<p>Okay, it&#8217;s pretty obvious that this seems like a bad idea.   For one thing, the &#8220;rotation&#8221; matrix isn&#8217;t a pure rotation.   It&#8217;s determinant is <s>1 &#8211; eps^2</s> 1 + eps^2, which means that points which are mapped move slowly <s>toward</s> away from the origin.     Nevertheless, Minsky apparently thought that it might be interesting, so he went ahead an implemented the program.  I&#8217;ll express it here is pseudo-code:</p>
<pre>
newx = oldx - eps * oldy
newy = oldy + eps * newx
</pre>
<p>Note: this program is &#8220;buggy&#8221;.   The second line should (for some definition of should) read &#8220;oldy + eps * <b>oldx</b>&#8220;, but Minsky got it wrong.    Interestingly though, this &#8220;bug&#8221; has an interesting side effect: it draws circles!   If eps is a power of 2, you can even implement the entire thing in integer arithmetic, and you don&#8217;t need square roots or floating point or anything.    Here&#8217;s an example of it drawing a circle of radius 1024:</p>
<p><a href="http://brainwagon.org/2010/08/09/drawing-circles-ala-marvin-minsky/circle/" rel="attachment wp-att-6054"><img src="http://brainwagon.org/wp-content/uploads/2010/08/circle-400x300.png" alt="" title="circle" width="400" height="300" class="aligncenter size-medium wp-image-6054" /></a> </p>
<p>Well, there is a catch: it doesn&#8217;t really draw circles.   It draws ellipses.  But it&#8217;s still a very interesting bit of code.  The first thing to note is that if you actually write down the transformation matrix that the &#8220;wrong&#8221; equations implement, the determinant is one.   That helps explain why the point doesn&#8217;t spiral in.   But there is another odd thing: if you implement this in integer based arithmetic, it&#8217;s eventually periodic (it doesn&#8217;t go out of control, all the round off errors eventually cancel out, and you return to the same point again and again and again).   In HAKMEM, Schroeppel proclaims that the reason for the algorithm&#8217;s stability was unclear.   He notes that there are a finite number of distinct radii, which indicates that perhaps the iterative process will always eventually fill in the &#8220;band&#8221; of valid radii, but the details of that seem unclear to me as well.  I&#8217;ll have to ponder it some more.</p>
<p><b>Addendum:</b>  The real reason I was looking at this was because the chapter in <em>Hackers</em> which talks about Spacewar! also talks about the <em>Minskytron</em> whose official name was TRI-POS.   It apparently uses some of this idea to draw curves in an interesting way.   HAKMEM item #153 also suggests an interesting display hack:</p>
<blockquote><p>
<b>ITEM 153 (Minsky):</b><br />
To portray a 3-dimensional solid on a 2-dimensional display, we can use a single circle algorithm to compute orbits for the corners to follow. The (positive or negative) radius of each orbit is determined by the distance (forward or backward) from some origin to that corner. The solid will appear to wobble rigidly about the origin, instead of simply rotating.
</p></blockquote>
<p>Might be interesting to implement.</p>
<p><b>Addendum<sup>2</sup>:</b>  I goofed up the determinant above, it should be 1 + eps^2, not 1-eps^2.   Corrected.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=tSPGHCOjlbU:Mpn9B9LqA9E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=tSPGHCOjlbU:Mpn9B9LqA9E:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=tSPGHCOjlbU:Mpn9B9LqA9E:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=tSPGHCOjlbU:Mpn9B9LqA9E:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/tSPGHCOjlbU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/09/drawing-circles-ala-marvin-minsky/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/09/drawing-circles-ala-marvin-minsky/</feedburner:origLink></item>
		<item>
		<title>My Thoughts on The Acceleration of Addictiveness</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/GlQh-kvivcM/</link>
		<comments>http://brainwagon.org/2010/08/09/my-thoughts-on-the-acceleration-of-addictiveness/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 18:20:16 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Rants and Raves]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6051</guid>
		<description><![CDATA[Paul Graham has a interesting little missive over on his website on the increasing trend toward addictiveness in our society: The Acceleration of Addictiveness. I don&#8217;t think it is bad as far as it goes, but I wonder why he didn&#8217;t ask what I thought was the obvious question: &#8220;why are things becoming more addicting?&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Paul Graham has a interesting little missive over on his website on the increasing trend toward addictiveness in our society:</p>
<p><a href="http://www.paulgraham.com/addiction.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+PaulGrahamUnofficialRssFeed+%28Paul+Graham%3A+Unofficial+RSS+Feed%29&amp;utm_content=Google+Reader">The Acceleration of Addictiveness</a>.</p>
<p>I don&#8217;t think it is bad as far as it goes, but I wonder why he didn&#8217;t ask what I thought was the obvious question: &#8220;why are things becoming more addicting?&#8221;</p>
<p>Let&#8217;s consider what we eat as an example.   Hardly a day goes by when you can&#8217;t find a story about the obesity epidemic that is going on here in the United States.  We&#8217;re getting fatter, and we are having fatter kids.  And everyone is asking why this should be happening.</p>
<p>I think the answer is really quite simple: we are addicted to food.   Well, not food precisely, but to things that we eat which sort of vaguely resemble food, but are engineered to be addicting.   </p>
<p>No doubt some of you are tsk-tsking.   You&#8217;ll probably post a comment which says that what we eat is a personal choice, that we have control, and that we simply don&#8217;t exercise enough and that we eat the wrong things.   You probably will also look at the people you know who still smoke, and wonder why they simply don&#8217;t quit.</p>
<p>I&#8217;m going to say that while you are right in a sense (nobody can get you to quit except you) but you are wrong in that it is simple or easy.   Nobody really likes to be overweight, if it were easy to avoid being so, <em>they would</em>.  If you examine the rate at which people successfully lose weight and keep the weight off, you&#8217;d find it was <em>vanishingly small</em>.   In that respect, it seems very similar to drug and alcohol addiction.   The actual effectiveness of even well accepted treatment options like AA is near zero, if not actually negative.   But that&#8217;s another posting&#8230;</p>
<p>If there is an acceleration in addictiveness, it seems to me that there is an increase in the number of suppliers of these addictive products.  Let&#8217;s call them what they really are: pushers.   Pushers are willing to sell products to consumers which aren&#8217;t really good for them.   They are eager to reduce the cost of their product, to increase its availability, and to increase their potency.  They may not start selling addictive products intentionally, but let&#8217;s face it: it&#8217;s much easier to sell products to addicts than to people who can take or leave your product.</p>
<p>Pushers will tell you that they are just filling a demand, and that their consumers are adults who are responsible for their own choices.   At best this is denial.  At worse, it&#8217;s just a lie that attempts to shift responsibility to the addict. </p>
<p>It astonishes me that there are still people farming tobacco and making cigarrettes.  Not because it should be illegal, but because it takes an inhuman lack of respect for others to profit from selling them products which are so dangerous.  I&#8217;ve begun to feel the same way about many packaged food producers and fast food purveyors, who carefully market &#8220;food&#8221; which is sadly nutritionally deficient and which maximizes the use of things like HFCS and processed white flour to reduce costs and to unnaturally manipulate appetite.  And perhaps we should begin to consider companies like Facebook to be in this realm as well: they are using games and social interaction as an enticement to reveal much of your private information, and this only works if they can entice you to return again and again.</p>
<p>If we are concerned about our increasingly addictive, impatient, immediate gratification based society, perhaps we should all be asking ourselves whether we are becoming pushers: purveyors of behaviours which are ultimately bad for us.  If we are, perhaps we should consider forgoing the profits that dealing addiction can reap, and figure out how to apply our effort and ingenuity in more productive directions.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=GlQh-kvivcM:YJmVYc3ysPo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=GlQh-kvivcM:YJmVYc3ysPo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=GlQh-kvivcM:YJmVYc3ysPo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=GlQh-kvivcM:YJmVYc3ysPo:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/GlQh-kvivcM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/09/my-thoughts-on-the-acceleration-of-addictiveness/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/09/my-thoughts-on-the-acceleration-of-addictiveness/</feedburner:origLink></item>
		<item>
		<title>Kite Photography</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/1XmqC8rMMM0/</link>
		<comments>http://brainwagon.org/2010/08/06/kite-photography/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 06:49:13 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[My Projects]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6048</guid>
		<description><![CDATA[Tom and I took a quick break after work today to try lofting my Canon camera up in the air. We used the Picavet that Tom constructed, and ran a simple uBASIC script that just took a snapshot every five seconds. We shot a total of about 120 shots, about one fourth of which were [...]]]></description>
			<content:encoded><![CDATA[<p>Tom and I took a quick break after work today to try lofting my Canon camera up in the air.  We used the Picavet that Tom constructed, and ran a simple uBASIC script that just took a snapshot every five seconds.   We shot a total of about 120 shots, about one fourth of which were reasonably acceptable.   We sent the camera up about three times with the camera adjusted three ways: the best seemed to be where the camera was adjusted to aim slightly down, below the horizon.<br />
Check out the photos linked on Picasa below.  </p>
<p><a href="http://picasaweb.google.com/mvandewettering/20100806KitePhotographyFirstAttempt?feat=directlink">Pictures of my first attempt at kite photography</a><br />
<embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="400" height="267" flashvars="host=picasaweb.google.com&#038;captions=1&#038;hl=en_US&#038;feat=flashalbum&#038;RGB=0x000000&#038;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fmvandewettering%2Falbumid%2F5502488975674705393%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=1XmqC8rMMM0:IVsIPuXUKAQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=1XmqC8rMMM0:IVsIPuXUKAQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=1XmqC8rMMM0:IVsIPuXUKAQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=1XmqC8rMMM0:IVsIPuXUKAQ:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/1XmqC8rMMM0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/06/kite-photography/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/06/kite-photography/</feedburner:origLink></item>
		<item>
		<title>I don’t think I am a hacker…</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/yNUc3YAKj2w/</link>
		<comments>http://brainwagon.org/2010/08/06/i-dont-think-i-am-a-hacker/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 18:45:16 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Rants and Raves]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6046</guid>
		<description><![CDATA[Today&#8217;s moment of introspection came this morning. After some time spent updating my twitter feeds and answering emails, followed by my regular commute (where I forgot to pick up my prescriptions, doh!), I realized something: I don&#8217;t think I am a hacker. I used to think that I was. Back in the early 1980s, I [...]]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s moment of introspection came this morning.   After some time spent updating my twitter feeds and answering emails, followed by my regular commute (where I forgot to pick up my prescriptions, doh!), I realized something:</p>
<p>I don&#8217;t think I am a hacker.</p>
<p>I used to think that I was.   Back in the early 1980s, I was living in Oregon, first in the Portland area, and later in Eugene as I entered the University of Oregon as an undergraduate in their CIS department.   While it had a respectable program, it wasn&#8217;t particularly innovative.   I took my first official class (CIS 201) which used Apple IIs running a Pascal like language <a href="http://en.wikipedia.org/wiki/Karel_%28programming_language%29">called Karel</a>, which was meant to teach you programming by directing a little synthetic robot around a grid.  It was staggeringly easy (by that time, I had been programming microcomputers for about 4 years).  The instructor decided that he&#8217;d give us all the assignments for the class on the first day.  I completed them by the third day (could have done it in one day, but limited lab times) which freed up a substantial block of time for me to wander around, trying to find other machines I could use, reading books and magazines in the computer reading room, and generally pursuing my own interests.   I took lots of dreadfully boring classes as well: on FORTRAN and COBOL (yes, I&#8217;ve taken a COBOL class) using their DEC 1091 and their IBM 4341.  By midway through my sophomore year, I had exhausted the undergraduate program of anything remotely interesting, and decided on the spur of the moment to enroll in a class on compilers, taught by Professor Ginnie Lo.   I had an ulterior motive: taking that class would give me access to the departments VAX 11/750, which was running Unix, about which I had heard a great deal, but had no practical experience at all.   The first day, she was calling roll and came to my name.   I raised my hand, and she looked at me and said &#8220;Did I give you my permission to take this class?&#8221; to which I replied truthfully &#8220;no&#8221;.   To her credit, she merely went back to calling roll.   I learned a lot about compilers and Unix.   I developed a bit of an obsession with computer languages.   I learned to program in C.  I found a small number of others who shared our fascination, and we rapidly became friends and room mates.   It was a great time for me intellectually, even though I was struggling with three jobs and a full class load.    </p>
<p>Ah, back to the hacker thing&#8230;.</p>
<p>One thing was obvious: I seemed to be different than the majority of other students.  Outside of our inner circle of over-achievers, we saw lots of people who were good solid students, but which seemed to lack the inner passions that we felt, the nearly maniacal obsession to understand how we could use these machines to achieve new things.   We craved access to computers, and spent a lot of our time trying to find ways to gain access to hidden computing resources, or resources that were reserved for a select few.    </p>
<p>Amidst this, I read Steven Levy&#8217;s book &#8220;Hackers: Heroes of the Computer Revolution&#8221;.   And I finally had a name for what it was we were.</p>
<p>Levy espoused a <em>hacker ethic</em>, which I&#8217;ll reproduce here from the Wikipedia page on his book:</p>
<ul>
<li>Access to computers—and anything which might teach you something about the way the world works—should be unlimited and total.</li>
<li>Always yield to the Hands-on Imperative!</li>
<li>All information should be free</li>
<li>Mistrust authority—promote decentralization.</li>
<li>Hackers should be judged by their hacking, not bogus criteria such as degrees, age, race or position.</li>
<li>You can create art and beauty on a computer.</li>
<li>Computers can change your life for the better.</li>
</ul>
<p>It&#8217;s hard to say how transformative this book was for me.  I had stumbled into some of these principles more or less on my own, but now I had a name for them, and some inkling that other people were doing the same thing in exciting places elsewhere in the world.    Until then, I had mostly thought that the path to success in school was to do well in my classes.   While I enjoyed the extra-curricular work I did, I never saw it as anything more than a distraction.  But post-Levy, I understood that my extra-curricular activities were actually <em>the important stuff</em> and that there was no reason to postpone doing the interesting stuff.   My friends and I wrote programs, both together and as singular endeavors.   We shared code and experience, and we got better.   I became interested in computer graphics, and started writing ray tracing programs.    I used USENET to make contact with other people interested in ray tracing, and we shared information and built on each others experience.   It was awesome.</p>
<p>So, why don&#8217;t I think I&#8217;m a hacker?</p>
<p>Up until a few years ago, many self-identified &#8220;true&#8221; (in the Levy sense) hackers were irritated that the press used the term to indicate those who break into computers or computer networks.   This is no doubt in no small part because of the antics of <a href="http://en.wikipedia.org/wiki/Kevin_Mitnick">Kevin Mitnick</a>, who was perhaps the first computer criminal to reach the attention of the general public.  While some were certainly interested in computer security, it was (I suspect) initially mostly to gain access to computing resources and to measure their extent, not to commit crimes or fraud.   Most of those &#8220;hackers&#8221; were actually posers whose skills were commonly fairly mundane and uninteresting.   Years later, we&#8217;d have the term &#8220;script kiddie&#8221;, which is an accurate portrayal of 99% of all &#8220;hackers&#8221; of this sort.</p>
<p>I&#8217;m not one of those.</p>
<p>But in the last few years, we&#8217;ve seen another use of the term: exemplified perhaps most clearly in my head by <a href="http://en.wikipedia.org/wiki/Paul_Graham_%28computer_programmer%29">Paul Graham</a>.   While Graham has made some interesting technical contributions, he&#8217;s widely known now as an essayist and as a venture capitalist heading <a href="http://ycombinator.com/about.html">Y Combinator</a> which specializes largely funding web based startups.    As a result, it has become somewhat fashionable to use the term &#8220;hacker&#8221; as synonymous with &#8220;any programmer who is working in the web space, especially on social networks, and especially in start ups&#8221;.    I&#8217;m not actually a fan of his essays.  Most of what he says that I think is true were said better by people like Brooks, and most of the rest I think is self-serving egotism. </p>
<p>I&#8217;m not like him either.    Sadly, that means I&#8217;m not as wealthy either.</p>
<p>For me, my hacking is the internal struggle to make my brain a more interesting place to spend my life.   I am interested in lots of stuff, and it turns out that a computer allows me to explore these things.   In almost every case it is &#8220;boldly going where others (usually smarter) have gone before&#8221;, but the effort of actually examining the details is pleasing to me.</p>
<p>As an example, I have a directory on my computer which I call &#8220;play&#8221;.   I use it to store most of the trivial and not so trivial programs that I enjoy writing.   It&#8217;s got about 300 directories in it now (not all are code that I&#8217;ve written, some of it is code from others that I&#8217;ve found inspiring).   It includes things like the original raytracer I wrote in 1986, which I occasionally still hack on, and its successor that I wrote a few years ago during the week between Christmas and New Years, and which hopefully integrates some of what I&#8217;ve learned since 1986.   I&#8217;ve got a <a href="http://brainwagon.org/2008/10/23/prime-number-fun/">program that I wrote to count all the primes to 10**12</a> or <a href="http://brainwagon.org/2008/03/15/232582657-1-is-prime/">one that implements bignum arithmetic using the Fast Fourier Transform</a>.   I&#8217;ve written and blogged about my checkers program Milhouse.   I&#8217;ve written a library in Python for computing the location of Earth orbiting satellites.   I&#8217;ve written a PDP-1 emulator to play Spacewar!   I have written a small compiler that takes in scripts and outputs randomized test sessions to learn Morse code by using speech synthesis.   I&#8217;ve written several simulators for the Enigma machine, including one that runs on the Atari 2600 video game.   Fractal image compression.  Volume rendering.   Stuff that draws wireframes of globes.   Extracts nice 256 entry color maps from photos.   Sends and receives slow scan television.   Finds and downloads tagged images on Flickr.   Aligns frames from my video of Mercury transiting the surface of the sun.  Computes the Ronchi pattern for testing telescope mirrors.   Computes the diffraction pattern for off-axis parabolic reflectors.   And dozens more.</p>
<p>I used to think that made me a hacker.</p>
<p>Perhaps the better word would be &#8220;crazy&#8221;.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=yNUc3YAKj2w:AbBfIYsmVxY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=yNUc3YAKj2w:AbBfIYsmVxY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=yNUc3YAKj2w:AbBfIYsmVxY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=yNUc3YAKj2w:AbBfIYsmVxY:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/yNUc3YAKj2w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/06/i-dont-think-i-am-a-hacker/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/06/i-dont-think-i-am-a-hacker/</feedburner:origLink></item>
		<item>
		<title>One Bit Ferrite Core Memory</title>
		<link>http://feedproxy.google.com/~r/brainwagon/~3/y-S-tKb9c5U/</link>
		<comments>http://brainwagon.org/2010/08/05/one-bit-ferrite-core-memory/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 00:33:22 +0000</pubDate>
		<dc:creator>brainwagon@gmail.com (Mark VandeWettering)</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[electronics]]></category>

		<guid isPermaLink="false">http://brainwagon.org/?p=6042</guid>
		<description><![CDATA[Anyone younger than me has probably never seen core memory, or even knows how it works. A very cool writeup, illuminating the actual workings of this technology from the past. One Bit Ferrite Core Memory &#8211; Wayne&#8217;s Tinkering Page.]]></description>
			<content:encoded><![CDATA[<p>Anyone younger than me has probably never seen core memory, or even knows how it works.  A very cool writeup, illuminating the actual workings of this technology from the past.</p>
<p><a href="http://sites.google.com/site/wayneholder/one-bit-ferrite-core-memory">One Bit Ferrite Core Memory &#8211; Wayne&#8217;s Tinkering Page</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/brainwagon?a=y-S-tKb9c5U:aw_8fiuzE5s:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=y-S-tKb9c5U:aw_8fiuzE5s:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/brainwagon?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/brainwagon?a=y-S-tKb9c5U:aw_8fiuzE5s:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/brainwagon?i=y-S-tKb9c5U:aw_8fiuzE5s:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/brainwagon/~4/y-S-tKb9c5U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://brainwagon.org/2010/08/05/one-bit-ferrite-core-memory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://brainwagon.org/2010/08/05/one-bit-ferrite-core-memory/</feedburner:origLink></item>
	<copyright>Copyright 2006, Mark VandeWettering</copyright><media:credit role="author">Mark VandeWettering</media:credit><media:rating>nonadult</media:rating></channel>
</rss>
