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

<channel>
	<title>Volcano.newts.org</title>
	<atom:link href="http://volcano.newts.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://volcano.newts.org</link>
	<description>Read, Learn, Evolve</description>
	<lastBuildDate>Thu, 05 Jan 2012 21:16:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Google Uses Synonyms, sometimes incorrectly</title>
		<link>http://volcano.newts.org/2012/01/05/google-uses-synonyms-sometimes-incorrectly/</link>
		<comments>http://volcano.newts.org/2012/01/05/google-uses-synonyms-sometimes-incorrectly/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 21:16:40 +0000</pubDate>
		<dc:creator>jvail</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://volcano.newts.org/?p=96</guid>
		<description><![CDATA[<p>Yeh, I am sure this is not-news for most of you but I was surprised.</p> <p>Anyway, so I was googling for some info for using forks in subversion with the string:</p> svn fork -git "how to" <p>and I noticed one of the hits had nothing to do with svn but only the normal use of [...]]]></description>
			<content:encoded><![CDATA[<p>Yeh, I am sure this is not-news for most of you but I was surprised.</p>
<p>Anyway, so I was googling for some info for using forks in subversion with the string:</p>
<pre><strong>svn fork -git "how to"</strong></pre>
<p>and I noticed one of the hits had nothing to do with svn but only the normal use of the word &#8220;subversion&#8221;  Notice my search has <em>svn</em> and not the word <em>subversion</em>.</p>
<p>&nbsp;</p>
<blockquote>
<h3><a href="http://www.nytimes.com/2011/03/20/magazine/mag-20Subversion-t.html"><em>How to</em> Beat the Salad Bar &#8211; NYTimes.com</a></h3>
<div></div>
<div>
<div><cite>www.nytimes.com/2011/03/20/magazine/mag-20<strong>Subversion</strong>-t.html</cite><button id="gbpwm_7" title="Recommend this page"></button></div>
</div>
<div>Mar 17, 2011 – <em>How to</em> Beat the Salad Bar <strong>&#8230;</strong> Acts of Mild <em>Subversion</em> at the Salad Bar<strong>&#8230;</strong> a plastic box, and next thing you know you&#8217;re <em>forking</em> over 13 bucks. <strong>&#8230;</strong></div>
</blockquote>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://volcano.newts.org/2012/01/05/google-uses-synonyms-sometimes-incorrectly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why I bought a Chevy Volt</title>
		<link>http://volcano.newts.org/2011/12/03/why-i-bought-a-chevy-volt/</link>
		<comments>http://volcano.newts.org/2011/12/03/why-i-bought-a-chevy-volt/#comments</comments>
		<pubDate>Sat, 03 Dec 2011 00:40:07 +0000</pubDate>
		<dc:creator>jvail</dc:creator>
				<category><![CDATA[Chevy Volt]]></category>
		<category><![CDATA[chevy electric]]></category>
		<category><![CDATA[energy]]></category>
		<category><![CDATA[green]]></category>
		<category><![CDATA[volt]]></category>

		<guid isPermaLink="false">http://volcano.newts.org/?p=93</guid>
		<description><![CDATA[<p>Because I wanted a practical electric car.  That is the answer to the question of why.  I did all the calculations and at the end of the day the additional cost of the Volt does not save any money at current gas and electric prices for about 20 years.  I hope it lasts a long [...]]]></description>
			<content:encoded><![CDATA[<p><strong><em>Because I wanted a practical electric car</em></strong>.  That is the answer to the question of why.  I did all the calculations and at the end of the day the additional cost of the Volt does not save any money at current gas and electric prices for about 20 years.  I hope it lasts a long time but probably not that long so what I save at the pump doesn&#8217;t add up to what I pay at the dealer.</p>
<p>Some other reasons:</p>
<ul>
<li>Saves energy: I leave a smaller carbon footprint.</li>
<li>No pollution (at point of use).</li>
<li>Green energy: yes, most of the electricity in NH is coal but I can pretend that my electrons come from hydro or solar or nuclear.</li>
<li>Not using imported oil is better for the economy and world stability.</li>
<li>Driving an electric car is wicked cool!  The Volt is very fast compared to other cars I have owned and quite unique and stylish right now.</li>
<li>This is the first US branded and made car I have owned (my Toyata minivan was made in the US but it Japanese branded).</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://volcano.newts.org/2011/12/03/why-i-bought-a-chevy-volt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Infinite Jest</title>
		<link>http://volcano.newts.org/2011/11/28/infinite-jest/</link>
		<comments>http://volcano.newts.org/2011/11/28/infinite-jest/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 02:56:19 +0000</pubDate>
		<dc:creator>jvail</dc:creator>
				<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://volcano.newts.org/?p=82</guid>
		<description><![CDATA[<p>I finally finished Infinite Jest after way to long.  I started reading the first time shortly after it came out and lost speed about a third into it.  With Infinite Summer on Twitter last year I thought it would be a great time to start it again and actually keep up.  Well, that didn&#8217;t exactly last [...]]]></description>
			<content:encoded><![CDATA[<p>I finally finished<span style="text-decoration: underline;"> Infinite Jest</span> after way to long.  I started reading the first time shortly after it came out and lost speed about a third into it.  With Infinite Summer on Twitter last year I thought it would be a great time to start it again and actually keep up.  Well, that didn&#8217;t exactly last and it ended up on at work where I would read about a chapter a week at lunch.  Last week I was ill and the book was mostly done so I took it home and finished it off.</p>
<p>Now that it is done I am not sure how I feel.  Good I finally completed it.  Incomplete because the ending just kind of ended.  Nothing really was resolved in the plot lines.  The &#8220;entertainment&#8221; was never recovered.  Obviously the lack of a real ending is some post modern comment on entertainment in America.  Yeh yeh, I still want more.  David Foster Wallace is a genius.</p>
<p>All sarcasm aside it was a great read.</p>
]]></content:encoded>
			<wfw:commentRss>http://volcano.newts.org/2011/11/28/infinite-jest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Volt vs Prius</title>
		<link>http://volcano.newts.org/2011/10/27/volt-vs-prius/</link>
		<comments>http://volcano.newts.org/2011/10/27/volt-vs-prius/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 14:15:50 +0000</pubDate>
		<dc:creator>jvail</dc:creator>
				<category><![CDATA[Chevy Volt]]></category>

		<guid isPermaLink="false">http://volcano.newts.org/?p=72</guid>
		<description><![CDATA[<p>I traded in my2004 Prius for a 2012 Chevy Volt.  Here are some comparisons and differences between between them.  I am updating the article as I go along.</p> <p>At the beginning of each item I pick the &#8220;winner&#8221; or &#8220;loser&#8221; and the indicate the amount of the win or lose by the number of + [...]]]></description>
			<content:encoded><![CDATA[<p>I traded in my2004 Prius for a 2012 Chevy Volt.  Here are some comparisons and differences between between them.  I am updating the article as I go along.</p>
<p>At the beginning of each item I pick the &#8220;winner&#8221; or &#8220;loser&#8221; and the indicate the amount of the win or lose by the number of + or &#8211; I assign.</p>
<ul>
<li><strong>Volt+++ <em>The Volt is electric</em></strong>.  This is of course the main reason <em>why</em> I bought a Volt.  Silent at all speeds and if I am careful I can mostly avoid gas stations.  The Prius has electric motor but it is a gas powered car even if it does get twice the MPG of other gas cars.</li>
<li><strong>Prius+ <em>The Prius is a little larger</em></strong> for the back seat and cargo area.  The Prius hatch also loads out flat at bumper level and the Volt has a wall you have to lift stuff over which can be a pain for larger items like bikes.  The Prius has belts and enough room on the rear bench seat for 3 people if a bit cramped.  The Volt has bucket seats and a center console.</li>
<li><strong>Volt+ <em>The Volt is Sportier </em></strong>The seats are stiff and molded, the suspension flat and the steering responsive.  It feels more powerful than the Prius at all speeds.  It can be fun to drive in addition to leveling up when you want to play the hypermile game.</li>
<li><strong>Volt&#8211; <em>No place on the Volt for a bike rack hitch</em></strong>.  On the Prius I bought a 2&#8243; hitch bar that bolted on to the hold-down hook points and I could attach a bike rack (I have a 3 bike Allen).  Early reports are there are no hitches available and the placement of the backup camera and light in the center make it more complicated.  I may end up selling the rear rack and get a Thule roof rack.  This adds more wind resistance and is less convenient.</li>
<li><strong>Volt- <em>Visibility</em>.</strong>  When I first drove the Prius I didn&#8217;t like the view in the back and I thought I would have trouble seeing with the hatch in the way.   I got used to it.  In the Volt it seems even worse.  Maybe it is something to  get used to again.  The Volt has the backup camera which I really love!  One really stupid thing seems to be the rear view mirror where this some hump in front of it that obscures the view on top.  I don&#8217;t know what this is for besides for seat belt indicators and even then it doesn&#8217;t have to extend out so far.</li>
<li><strong>Volt++ <em>Rear View Camera and Sonar</em></strong>.  My Volt has the rear view camera as well as front and rear sonar beeps.  Yes, the camera is available on newer Prii but it wasn&#8217;t on mine.  In fact when driving  friends&#8217; Prii I wanted one myself even more.</li>
<li><strong>Volt+ <em>Feeping Creatures</em></strong>.  I mean creeping features: cup holders, 12v jacks, etc.    The Prius had 2 12v jacks in front.  One by the passenger legs and one in the hump box.  The Volt has one in the box, one on the dash box and one in the back hump for passengers to use.  Maybe more that I haven&#8217;t found yet.  There is also a USB in the hump box.  They both have the same number of cup holders.  In the Prius the rear one was fold out and vulnerable to being pulled off when kicked (kids!) while the Volt has it built into the hump.</li>
<li><strong>Volt- <em>Premium Gasoline.</em></strong>  The Prius preferred lower octane gas while the Volt takes Premium.  They say it is because the gas in the Volt may stay unused in the tank and engine for a longer time and Premium won&#8217;t break down or gum up as easy.  The bright side is the Volt shouldn&#8217;t need to fill up very often.</li>
<li><strong>Volt++ <em>Infotainment</em></strong>.  This is mostly 7 years of improvements in car electronics.  My Prius had the premium JBL system with 6 CD changer and cassette tape (!!).  No AUX jack or bluetooth A2DP.  I added an iPod dock connector which I used about every day.    The Volt has the premium Bose system with 1 CD/DVD, XM, Aux in and USB (NO bluetooth A2DP).  The lack of Bluetooth concerns me but the USB to my Android (Photon) phone does an excellent job of showing and playing files.  The AUX can do the job if needed without the hassle of bluetooth audio so maybe it is OK.  XM radio is underwhelming so far and the nifty traffic info on the NAV screen doesn&#8217;t include Rt 3 which I use for my commute.</li>
<li><strong>Volt+ <em>Tire Pressure readout  </em></strong>How awesome is it to see your tire pressure right on the display?  Even more awesome is getting email telling me one tire has low pressure!</li>
<li><strong>Volt+ <em>OnStar</em></strong>.  How do you change my opinion that OnStar is an expensive luxury feature and intrusive invasion of privacy to wondering how I ever lived without it?  Simple: give it away for free (for 3 years).   The OnStar app for Android lets me see the battery and fuel levels, control charging and do remote control like remote start and door control from anywhere.  It also shows me tire pressure and sends diagnostic reports.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://volcano.newts.org/2011/10/27/volt-vs-prius/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lucretius</title>
		<link>http://volcano.newts.org/2011/09/20/lucretius/</link>
		<comments>http://volcano.newts.org/2011/09/20/lucretius/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 18:08:03 +0000</pubDate>
		<dc:creator>jvail</dc:creator>
				<category><![CDATA[TBR]]></category>

		<guid isPermaLink="false">http://volcano.newts.org/?p=64</guid>
		<description><![CDATA[<p>From:</p> <p><a href="http://www.npr.org/blogs/krulwich/2011/09/19/140533195/lucretius-man-of-modern-mystery?ps=cprs" target="_blank">NPR</a></p> <p>&#160;</p> <p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.25em; margin-left: 0px; font-family: georgia, sans-serif; font-size: 16px; color: #666666; line-height: 1.3em; overflow-x: visible; overflow-y: visible; width: auto; padding: 0px;">As Greenblatt describes it, Lucretius (borrowing from Democritus and others), says the universe is made of an infinite number of atoms &#8230;</p> <p style="margin-top: 0px; [...]]]></description>
			<content:encoded><![CDATA[<p>From:</p>
<p><a href="http://www.npr.org/blogs/krulwich/2011/09/19/140533195/lucretius-man-of-modern-mystery?ps=cprs" target="_blank">NPR</a></p>
<p>&nbsp;</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.25em; margin-left: 0px; font-family: georgia, sans-serif; font-size: 16px; color: #666666; line-height: 1.3em; overflow-x: visible; overflow-y: visible; width: auto; padding: 0px;">As Greenblatt describes it, Lucretius (borrowing from Democritus and others), says the universe is made of an infinite number of atoms &#8230;</p>
<blockquote class="edTag" style="border-left-width: 3px; border-left-style: solid; border-left-color: #e5e5e5; padding-top: 0px; padding-right: 35px; padding-bottom: 0px; padding-left: 35px; display: table; margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; font-style: normal; font-size: 12px; line-height: 16px; color: #666666;">
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: arial, sans-serif; font-size: 12px; color: #666666; line-height: 16px; overflow-x: visible; overflow-y: visible; width: auto; font-style: normal; padding: 0px;">&#8230; moving randomly through space, like dust motes in a sunbeam, colliding, hooking together, forming complex structures, breaking apart again, in a ceaseless process of creation and destruction. There is no escape from this process. &#8230; There is no master plan, no divine architect, no intelligent design.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: arial, sans-serif; font-size: 12px; color: #666666; line-height: 16px; overflow-x: visible; overflow-y: visible; width: auto; font-style: normal; padding: 0px;">All things, including the species to which you belong, have evolved over vast stretches of time. The evolution is random, though in the case of living organisms, it involves a principle of natural selection. That is, species that are suited to survive and to reproduce successfully, endure, at least for a time; those that are not so well suited, die off quickly. But nothing — from our own species, to the planet on which we live, to the sun that lights our day — lasts forever. Only the atoms are immortal &#8230;</p>
</blockquote>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.25em; margin-left: 0px; font-family: georgia, sans-serif; font-size: 16px; color: #666666; line-height: 1.3em; overflow-x: visible; overflow-y: visible; width: auto; padding: 0px;">Not only did Lucretius write this more than 2,000 years ago, somehow his book managed to survive the fall of Rome, the burning, looting and desecration of the great libraries, a thousand years of cold storage in medieval monasteries where bookworms, censorship and erasures were common, so that at one point, maybe three — that&#8217;s all, three — copies were in existence — and yet, says Stephen, <em>On the Nature of Things</em> emerged to become one of the most radical and talked about essays of the post-Renaissance, a favorite of Machiavelli, Montaigne, Sir Thomas More and Thomas Jefferson.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://www.npr.org/blogs/krulwich/2011/09/19/140533195/lucretius-man-of-modern-mystery?ps=cprs">http://www.npr.org/blogs/krulwich/2011/09/19/140533195/lucretius-man-of-modern-mystery?ps=cprs</a></p>
]]></content:encoded>
			<wfw:commentRss>http://volcano.newts.org/2011/09/20/lucretius/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Infinite Words</title>
		<link>http://volcano.newts.org/2011/08/28/infinite-words/</link>
		<comments>http://volcano.newts.org/2011/08/28/infinite-words/#comments</comments>
		<pubDate>Sun, 28 Aug 2011 21:33:54 +0000</pubDate>
		<dc:creator>jvail</dc:creator>
				<category><![CDATA[Books]]></category>

		<guid isPermaLink="false">http://volcano.newts.org/?p=51</guid>
		<description><![CDATA[<p>My word list from Infinite Jest  by David Foster Wallace (the words I looked up in the dictionary):</p> <a href="http://en.wiktionary.org/wiki/sulcus" target="_blank">sulcus</a> 192 <a href="http://en.wiktionary.org/wiki/%C3%A9clat">éclat</a> 155 <a href="http://en.wiktionary.org/wiki/rutilant" target="_blank">rutilant</a> <a href="http://en.wiktionary.org/wiki/acutance" target="_blank">acutance</a> 96 halation 97 carminative 103 prandial 191 reticulate 127 murated 127 erumpet 155 duress 181 annularized 183 trivium 188 quadrivium mucronate 208 frustum 213 bradyauxetic 313 [...]]]></description>
			<content:encoded><![CDATA[<p>My word list from <span style="text-decoration: underline;">Infinite Jest</span>  by David Foster Wallace (the words I looked up in the dictionary):</p>
<ul>
<li><a href="http://en.wiktionary.org/wiki/sulcus" target="_blank">sulcus</a> 192</li>
<li><a href="http://en.wiktionary.org/wiki/%C3%A9clat">éclat</a> 155</li>
<li><a href="http://en.wiktionary.org/wiki/rutilant" target="_blank">rutilant</a></li>
<li><a href="http://en.wiktionary.org/wiki/acutance" target="_blank">acutance</a> 96</li>
<li>halation 97</li>
<li>carminative 103</li>
<li>prandial 191</li>
<li>reticulate 127</li>
<li>murated 127</li>
<li>erumpet 155</li>
<li>duress 181</li>
<li>annularized 183</li>
<li>trivium 188</li>
<li>quadrivium</li>
<li>mucronate 208</li>
<li>frustum 213</li>
<li>bradyauxetic 313</li>
<li>blepharoprothesis 314</li>
<li>mucronate 314</li>
<li>saurian 316</li>
<li>homodontic 316</li>
<li>frisson 322</li>
<li>Ansuchluss 322</li>
<li>magisculed 354</li>
<li>apicals 366</li>
<li>aphasiac 368</li>
<li>aigrette 380</li>
<li>amanuentic 381</li>
<li>glabrous 388</li>
<li>orts 438</li>
<li>baroque 414</li>
<li>fungoes 457</li>
<li>shirliny 556</li>
<li>threnody 556</li>
<li>pules 670</li>
<li>ephebe 677</li>
<li>shibboleth 706</li>
<li>mystagmus 1018</li>
<li>swivet 1019</li>
<li>falcate</li>
<li>picayune 1025</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://volcano.newts.org/2011/08/28/infinite-words/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sensei Electric Ninja 250</title>
		<link>http://volcano.newts.org/2011/08/26/sensei-electric-ninja-250/</link>
		<comments>http://volcano.newts.org/2011/08/26/sensei-electric-ninja-250/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 14:55:07 +0000</pubDate>
		<dc:creator>jvail</dc:creator>
				<category><![CDATA[Electric Motorcycle Project]]></category>
		<category><![CDATA[electric motorcycle]]></category>
		<category><![CDATA[emp]]></category>
		<category><![CDATA[lithium]]></category>
		<category><![CDATA[motor]]></category>

		<guid isPermaLink="false">http://volcano.newts.org/?p=13</guid>
		<description><![CDATA[<p>This sounds familiar!  Excellent site and conversion project.  The interesting points are:</p> Lithium Welded struts on the frame in place of missing engine structural There are new resources like the battery monitor controller link There is a new more powerful Etek motor. Why is he using a brushed controller on a brushless motor? <p><a href="http://corin.com/sensei/index.shtml" [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_18" class="wp-caption alignnone" style="width: 310px"><a href="http://volcano.newts.org/files/2011/08/sensei.jpg"><img class="size-medium wp-image-18" title="Sensei Ninja 250" src="http://volcano.newts.org/files/2011/08/sensei-300x200.jpg" alt="" width="300" height="200" /></a><p class="wp-caption-text">Sensei Ninja 250</p></div>
<p>This sounds familiar!  Excellent site and conversion project.  The interesting points are:</p>
<ul>
<li>Lithium</li>
<li>Welded struts on the frame in place of missing engine structural</li>
<li>There are new resources like the battery monitor controller link</li>
<li>There is a new more powerful Etek motor.</li>
<li>Why is he using a brushed controller on a brushless motor?</li>
</ul>
<p><a href="http://corin.com/sensei/index.shtml" target="_blank">http://corin.com/sensei/index.shtml</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://volcano.newts.org/2011/08/26/sensei-electric-ninja-250/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flashman and the Tiger</title>
		<link>http://volcano.newts.org/2009/06/23/flashman-and-the-tiger/</link>
		<comments>http://volcano.newts.org/2009/06/23/flashman-and-the-tiger/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 21:26:58 +0000</pubDate>
		<dc:creator>jvail</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[flashman]]></category>
		<category><![CDATA[sherlock holmes]]></category>

		<guid isPermaLink="false">http://volcano.newts.org/?p=9</guid>
		<description><![CDATA[<p>Finished. Hilarious at the end when he meets Oscar Wilde and Sherlock Holmes.</p> <p>&#160;</p>]]></description>
			<content:encoded><![CDATA[<p>Finished. Hilarious at the end when he meets Oscar Wilde and Sherlock Holmes.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://volcano.newts.org/2009/06/23/flashman-and-the-tiger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RFID @catdoor for Twitter, Phase 1</title>
		<link>http://volcano.newts.org/2009/01/10/rfid-catdoor-for-twitter-phase-1/</link>
		<comments>http://volcano.newts.org/2009/01/10/rfid-catdoor-for-twitter-phase-1/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 04:13:21 +0000</pubDate>
		<dc:creator>jvail</dc:creator>
				<category><![CDATA[Make]]></category>
		<category><![CDATA[cat]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rfid]]></category>

		<guid isPermaLink="false">http://volcano.newts.org/?p=44</guid>
		<description><![CDATA[Simple concept, put an RFID chip on your cat and a reader by the door. Tweet whenever the cat uses the door.The reader is a <a href="http://apsx.com/">APSX</a> 15.56MHZ RW-210 reader. The RFID is a Sakymat LOGI TAG aka &#8220;laundry tag&#8221;. The server is a Hush mini-ITX machine with a 32G CF chip instead of a hard drive. [...]]]></description>
			<content:encoded><![CDATA[<div>Simple concept, put an RFID chip on your cat and a reader by the door. Tweet whenever the cat uses the door.The reader is a <a href="http://apsx.com/">APSX</a> 15.56MHZ RW-210 reader. The RFID is a Sakymat LOGI TAG aka &#8220;laundry tag&#8221;. The server is a Hush mini-ITX machine with a 32G CF chip instead of a hard drive. The code is written in Python running on Fedora Core 10.Pictures will follow, the code is below:</div>
<div>This is the first draft of the catdoor.py</div>
<div>
<pre class="python PluGeSHin"><span class="co1">#!/usr/bin/python</span>
<span class="kw1">import</span> twitter
<span class="kw1">from</span> apsx <span class="kw1">import</span> *rfid_open<span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>
 api <span class="sy0">=</span> twitter.<span class="me1">Api</span><span class="br0">&#40;</span>username<span class="sy0">=</span><span class="st0">'catdoor'</span><span class="sy0">,</span> password<span class="sy0">=</span><span class="st0">'xxxxxx'</span><span class="br0">&#41;</span><span class="co1"># let's  blink some</span>
 <span class="co1">#</span>
 <span class="kw1">for</span> i <span class="kw1">in</span> <span class="kw2">range</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="sy0">,</span><span class="nu0">50</span><span class="br0">&#41;</span> :
 red_LED<span class="br0">&#40;</span><span class="kw2">True</span><span class="br0">&#41;</span>
 green_LED<span class="br0">&#40;</span><span class="kw2">True</span><span class="br0">&#41;</span>
 red_LED<span class="br0">&#40;</span><span class="kw2">False</span><span class="br0">&#41;</span>
green_LED<span class="br0">&#40;</span><span class="kw2">False</span><span class="br0">&#41;</span><span class="kw1">while</span> <span class="nu0">1</span> :
<span class="co1"># get a button</span>
 <span class="co1">#</span>
 b <span class="sy0">=</span> read_UID<span class="br0">&#40;</span><span class="br0">&#41;</span>
 sleep<span class="br0">&#40;</span><span class="nu0">.1</span><span class="br0">&#41;</span>
<span class="kw1">if</span> b :
 green_LED<span class="br0">&#40;</span><span class="kw2">True</span><span class="br0">&#41;</span>
 <span class="kw1">print</span> <span class="st0">'got a button: %s'</span> % hexer<span class="br0">&#40;</span>b<span class="br0">&#41;</span>
 status <span class="sy0">=</span> api.<span class="me1">PostUpdate</span><span class="br0">&#40;</span><span class="st0">'Cat at the door UID: %s'</span> % hexer<span class="br0">&#40;</span>b<span class="br0">&#41;</span><span class="br0">&#41;</span>
 <span class="kw1">print</span> <span class="st0">'TWEET! | %s'</span> % status.<span class="me1">text</span>
<span class="kw1">while</span> b :
 sleep<span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span>
 b <span class="sy0">=</span> read_UID<span class="br0">&#40;</span><span class="br0">&#41;</span>
green_LED<span class="br0">&#40;</span><span class="kw2">False</span><span class="br0">&#41;</span>
<span class="kw1">else</span> :
 red_LED<span class="br0">&#40;</span><span class="kw2">True</span><span class="br0">&#41;</span>
 sleep<span class="br0">&#40;</span><span class="nu0">.1</span><span class="br0">&#41;</span>
 red_LED<span class="br0">&#40;</span><span class="kw2">False</span><span class="br0">&#41;</span>
 sleep<span class="br0">&#40;</span><span class="nu0">.9</span><span class="br0">&#41;</span></pre>
<p>The apsx.py code to talk to the APSX board is here:</p>
<p>&nbsp;</p>
<pre class="python PluGeSHin"><span class="co1">#</span>
<span class="co1">#  Python code to talk to a APSX RFID Module</span>
 <span class="co1">#</span>
 <span class="co1">#  Not a complete set of functions but enough to get my cat door working.</span>
 <span class="co1">#</span>
 <span class="co1">#  10 Jan 09   JV       - Created</span>
 <span class="co1">#</span>
 <span class="kw1">import</span> serialser <span class="sy0">=</span> NonePresetValue <span class="sy0">=</span> <span class="nu0">0xffff</span>
 Polynomial <span class="sy0">=</span> <span class="nu0">0x8408</span>
<span class="kw1">def</span> crc<span class="br0">&#40;</span>DataBytes<span class="br0">&#41;</span> :
 <span class="st0">&quot;APSX ISO 15693 CRC-16&quot;</span>
CRCValue <span class="sy0">=</span> PresetValue
 <span class="kw1">for</span> b <span class="kw1">in</span> DataBytes :
 CRCValue <span class="sy0">=</span> CRCValue ^ <span class="kw2">ord</span><span class="br0">&#40;</span>b<span class="br0">&#41;</span>
<span class="kw1">for</span> j <span class="kw1">in</span> <span class="kw2">range</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="sy0">,</span><span class="nu0">8</span><span class="br0">&#41;</span> :
 <span class="kw1">if</span> CRCValue &amp; <span class="nu0">1</span> :
 CRCValue <span class="sy0">=</span> <span class="br0">&#40;</span>CRCValue<span class="sy0">&gt;&gt;</span><span class="nu0">1</span><span class="br0">&#41;</span> ^ Polynomial
 <span class="kw1">else</span> :
 CRCValue <span class="sy0">&gt;&gt;=</span> <span class="nu0">1</span>
CRCValue <span class="sy0">=</span> <span class="sy0">~</span>CRCValue - <span class="nu0">65536</span>
 CRCValue &amp;<span class="sy0">=</span> <span class="nu0">0xffff</span>
 CRCLSB <span class="sy0">=</span> CRCValue % <span class="nu0">256</span>
 CRCMSB <span class="sy0">=</span> CRCValue <span class="sy0">&gt;&gt;</span> <span class="nu0">8</span>
<span class="kw1">return</span> <span class="br0">&#40;</span>CRCLSB<span class="sy0">,</span> CRCMSB<span class="br0">&#41;</span>
<span class="kw1">def</span> read_UID<span class="br0">&#40;</span><span class="br0">&#41;</span> :
 <span class="st0">&quot;Read a UID or None if not exactly 12 bytes&quot;</span>
 ser.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'<span class="es0">\0</span>xfa'</span><span class="br0">&#41;</span>
 s <span class="sy0">=</span> ser.<span class="me1">read</span><span class="br0">&#40;</span><span class="nu0">12</span><span class="br0">&#41;</span>
 <span class="kw1">if</span> <span class="kw2">len</span><span class="br0">&#40;</span>s<span class="br0">&#41;</span> <span class="sy0">==</span> <span class="nu0">12</span> :
 <span class="kw1">return</span> s
 <span class="kw1">return</span> <span class="kw2">None</span>
<span class="kw1">def</span> red_LED<span class="br0">&#40;</span>on<span class="br0">&#41;</span> :
 <span class="kw1">if</span> on :
 ser.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'<span class="es0">\x</span>fd'</span><span class="br0">&#41;</span>
 <span class="kw1">else</span> :
 ser.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'<span class="es0">\x</span>fc'</span><span class="br0">&#41;</span>
 sleep<span class="br0">&#40;</span><span class="nu0">.02</span><span class="br0">&#41;</span>
<span class="kw1">def</span> green_LED<span class="br0">&#40;</span>on<span class="br0">&#41;</span> :
 <span class="kw1">if</span> on :
 ser.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'<span class="es0">\x</span>ff'</span><span class="br0">&#41;</span>
 <span class="kw1">else</span> :
 ser.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'<span class="es0">\x</span>fe'</span><span class="br0">&#41;</span>
 sleep<span class="br0">&#40;</span><span class="nu0">.02</span><span class="br0">&#41;</span>
<span class="kw1">def</span> rfid_open<span class="br0">&#40;</span>port<span class="br0">&#41;</span> :
 <span class="st0">&quot;call to open the serial port&quot;</span>
<span class="kw1">global</span> ser
 <span class="kw1">if</span> ser :
 <span class="kw1">if</span> ser.<span class="me1">isOpen</span><span class="br0">&#40;</span><span class="br0">&#41;</span> :
 ser.<span class="me1">close</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
 ser <span class="sy0">=</span> serial.<span class="me1">Serial</span><span class="br0">&#40;</span>port<span class="sy0">,</span> <span class="nu0">19200</span><span class="sy0">,</span> timeout<span class="sy0">=</span><span class="nu0">1</span><span class="br0">&#41;</span>
 <span class="kw1">print</span> ser.<span class="me1">portstr</span>
<span class="kw1">def</span> hexer<span class="br0">&#40;</span>s<span class="br0">&#41;</span> :
 <span class="st0">&quot;return a hex string&quot;</span>
h <span class="sy0">=</span> <span class="st0">''</span>
 <span class="kw1">for</span> c <span class="kw1">in</span> s :
 h +<span class="sy0">=</span> <span class="st0">'0x%02x '</span> % <span class="kw2">ord</span><span class="br0">&#40;</span>c<span class="br0">&#41;</span>
 <span class="kw1">return</span> h
<span class="co1">#red_LED(True)</span>
 <span class="co1">#green_LED(True)</span>
 <span class="co1">#red_LED(False)</span>
 <span class="co1">#green_LED(False)</span>
<span class="co1">#ser.close()</span></pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://volcano.newts.org/2009/01/10/rfid-catdoor-for-twitter-phase-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Machining Mars Etek Backplate with Python</title>
		<link>http://volcano.newts.org/2008/12/01/machining-mars-etek-backplate-with-python/</link>
		<comments>http://volcano.newts.org/2008/12/01/machining-mars-etek-backplate-with-python/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 01:12:41 +0000</pubDate>
		<dc:creator>jvail</dc:creator>
				<category><![CDATA[Electric Motorcycle Project]]></category>
		<category><![CDATA[emp]]></category>
		<category><![CDATA[g-code]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://volcano.newts.org/?p=25</guid>
		<description><![CDATA[<p>To get the slots and the screws just right I used a Sherline tabletop CNC milling machine to cut the screw slots and openings. Only a little rework and it came out pretty good.</p> <p>Being new to machine a g-codes and also being a programmer I cobbled up some python to calculate the angles and [...]]]></description>
			<content:encoded><![CDATA[<p>To get the slots and the screws just right I used a Sherline tabletop CNC milling machine to cut the screw slots and openings. Only a little rework and it came out pretty good.</p>
<p>Being new to machine a g-codes and also being a programmer I cobbled up some python to calculate the angles and emit the g-code used by the linuxcnc program. The code is below:</p>
<p>&nbsp;</p>
<pre class="python PluGeSHin"><span class="kw1">import</span> <span class="kw3">math</span>
&nbsp;
<span class="co1"># G20 is inch units</span>
&nbsp;
preamble <span class="sy0">=</span> <span class="st0">&quot;&quot;&quot;
%
N10
G17
G20
&quot;&quot;&quot;</span>
&nbsp;
toolsize <span class="sy0">=</span> <span class="nu0">0.200</span>
depth <span class="sy0">=</span> <span class="nu0">0.200</span>
plunge_rate <span class="sy0">=</span> <span class="nu0">2</span>
feed <span class="sy0">=</span> <span class="nu0">3</span>
&nbsp;
<span class="co1"># angle offset to rotate motor from normal</span>
<span class="co1">#</span>
fudge_angle <span class="sy0">=</span> <span class="nu0">0</span>
&nbsp;
<span class="kw1">def</span> deg_to_rad<span class="br0">&#40;</span>d<span class="br0">&#41;</span> :
<span class="kw1">return</span> d / <span class="br0">&#40;</span><span class="nu0">180.0</span> / <span class="kw3">math</span>.<span class="me1">pi</span><span class="br0">&#41;</span>
&nbsp;
<span class="kw1">def</span> vector<span class="br0">&#40;</span>angle<span class="sy0">,</span> radius<span class="br0">&#41;</span> :
angle <span class="sy0">=</span> <span class="br0">&#40;</span>angle + fudge_angle<span class="br0">&#41;</span> % <span class="nu0">360</span>
angle <span class="sy0">=</span> deg_to_rad<span class="br0">&#40;</span>angle<span class="br0">&#41;</span>
y <span class="sy0">=</span> <span class="kw3">math</span>.<span class="me1">cos</span><span class="br0">&#40;</span>angle<span class="br0">&#41;</span> * radius
x <span class="sy0">=</span> <span class="kw3">math</span>.<span class="me1">sin</span><span class="br0">&#40;</span>angle<span class="br0">&#41;</span> * radius
<span class="kw1">return</span> <span class="br0">&#40;</span>x<span class="sy0">,</span>y<span class="br0">&#41;</span>
&nbsp;
<span class="kw1">def</span> transition<span class="br0">&#40;</span>xy<span class="br0">&#41;</span> :
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'G0 X%1.4f Y%1.4f Z0<span class="es0">\n</span>'</span> % xy<span class="br0">&#41;</span>
&nbsp;
<span class="kw1">def</span> plunge<span class="br0">&#40;</span><span class="br0">&#41;</span> :
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'G01 Z-%1.4f F%d<span class="es0">\n</span>'</span> % <span class="br0">&#40;</span>depth<span class="sy0">,</span> plunge_rate<span class="br0">&#41;</span><span class="br0">&#41;</span>
&nbsp;
<span class="kw1">def</span> home<span class="br0">&#40;</span><span class="br0">&#41;</span> :
<span class="st0">&quot;lift the tool and transition home&quot;</span>
&nbsp;
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'G00 Z%1.4f<span class="es0">\n</span>'</span> % depth<span class="br0">&#41;</span>
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'G00 X0.0 Y0.0<span class="es0">\n</span><span class="es0">\n</span>'</span><span class="br0">&#41;</span>
&nbsp;
shroud_radius <span class="sy0">=</span> <span class="nu0">3.5</span>
screw_arc <span class="sy0">=</span> <span class="nu0">4</span>
<span class="kw1">def</span> screw_slot<span class="br0">&#40;</span>angle<span class="br0">&#41;</span> :
<span class="st0">&quot;cut slot for the screw&quot;</span>
&nbsp;
a_xy <span class="sy0">=</span> vector<span class="br0">&#40;</span>angle - screw_arc<span class="sy0">,</span> shroud_radius<span class="br0">&#41;</span>
b_xy <span class="sy0">=</span> vector<span class="br0">&#40;</span>angle + screw_arc<span class="sy0">,</span> shroud_radius<span class="br0">&#41;</span>
&nbsp;
transition<span class="br0">&#40;</span>a_xy<span class="br0">&#41;</span>
plunge<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
<span class="co1"># Cut the circle</span>
<span class="co1">#</span>
&nbsp;
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'G02 X%1.4f Y%1.4f R%1.4f F%d <span class="es0">\n</span>'</span> % <span class="br0">&#40;</span>b_xy<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">,</span>b_xy<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">,</span>shroud_radius<span class="sy0">,</span>feed<span class="br0">&#41;</span><span class="br0">&#41;</span>
home<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
of <span class="sy0">=</span> <span class="kw2">open</span><span class="br0">&#40;</span><span class="st0">&quot;backplate.nc&quot;</span><span class="sy0">,</span><span class="st0">&quot;w&quot;</span><span class="br0">&#41;</span>
of.<span class="me1">write</span><span class="br0">&#40;</span>preamble<span class="br0">&#41;</span>
&nbsp;
<span class="co1"># Cut the electrical slot</span>
<span class="co1">#</span>
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'(Electrical slot)<span class="es0">\n</span>'</span><span class="br0">&#41;</span>
&nbsp;
slot_id <span class="sy0">=</span> <span class="nu0">2.2</span> + toolsize
slot_od <span class="sy0">=</span> <span class="nu0">3.75</span> - toolsize
start_angle <span class="sy0">=</span> <span class="nu0">116.0</span>
end_angle <span class="sy0">=</span> <span class="nu0">156.0</span>
&nbsp;
a_xy <span class="sy0">=</span> vector<span class="br0">&#40;</span>start_angle<span class="sy0">,</span> slot_id<span class="br0">&#41;</span>
b_xy <span class="sy0">=</span> vector<span class="br0">&#40;</span>end_angle<span class="sy0">,</span> slot_id<span class="br0">&#41;</span>
c_xy <span class="sy0">=</span> vector<span class="br0">&#40;</span>end_angle<span class="sy0">,</span> slot_od<span class="br0">&#41;</span>
d_xy <span class="sy0">=</span> vector<span class="br0">&#40;</span>start_angle<span class="sy0">,</span> slot_od<span class="br0">&#41;</span>
&nbsp;
<span class="co1"># transition to the start</span>
<span class="co1">#</span>
transition<span class="br0">&#40;</span>a_xy<span class="br0">&#41;</span>
plunge<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
<span class="co1"># cut inside arc</span>
<span class="co1">#</span>
<span class="co1">##of.write('G02 X%1.4f Y%1.4f I%1.4f J%1.4f F%d \n' % (b_xy[0],b_xy[1],0.0,0.0,feed))</span>
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'G02 X%1.4f Y%1.4f R%1.4f F%d <span class="es0">\n</span>'</span> % <span class="br0">&#40;</span>b_xy<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">,</span>b_xy<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">,</span>slot_id<span class="sy0">,</span>feed<span class="br0">&#41;</span><span class="br0">&#41;</span>
&nbsp;
<span class="co1"># cut to outside radius</span>
<span class="co1">#</span>
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'G01  X%1.4f Y%1.4f F%d<span class="es0">\n</span>'</span> % <span class="br0">&#40;</span>c_xy<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">,</span>c_xy<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">,</span> feed<span class="br0">&#41;</span><span class="br0">&#41;</span>
&nbsp;
<span class="co1"># cut outside arc</span>
<span class="co1">#</span>
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'G03 X%1.4f Y%1.4f R%1.4f  F%d <span class="es0">\n</span>'</span> % <span class="br0">&#40;</span>d_xy<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">,</span>d_xy<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">,</span>slot_od<span class="sy0">,</span>feed<span class="br0">&#41;</span><span class="br0">&#41;</span>
&nbsp;
<span class="co1"># cut back to the beginning</span>
<span class="co1">#</span>
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'G01  X%1.4f Y%1.4f F%d<span class="es0">\n</span>'</span> % <span class="br0">&#40;</span>a_xy<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">,</span>a_xy<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">,</span> feed<span class="br0">&#41;</span><span class="br0">&#41;</span>
&nbsp;
home<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'(Slot 2)<span class="es0">\n</span>'</span><span class="br0">&#41;</span>
screw_slot<span class="br0">&#40;</span><span class="nu0">97</span><span class="br0">&#41;</span>
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'(Slot 3)<span class="es0">\n</span>'</span><span class="br0">&#41;</span>
screw_slot<span class="br0">&#40;</span><span class="nu0">236</span><span class="br0">&#41;</span>
&nbsp;
<span class="co1"># Case bolt</span>
<span class="co1">#</span>
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'(Case bolt hole)<span class="es0">\n</span>'</span><span class="br0">&#41;</span>
&nbsp;
bolt_xy <span class="sy0">=</span> vector<span class="br0">&#40;</span><span class="nu0">45</span><span class="sy0">,</span> <span class="nu0">4.0</span><span class="br0">&#41;</span>
transition<span class="br0">&#40;</span>bolt_xy<span class="br0">&#41;</span>
plunge<span class="br0">&#40;</span><span class="br0">&#41;</span>
home<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'(Slot 1)<span class="es0">\n</span>'</span><span class="br0">&#41;</span>
screw_slot<span class="br0">&#40;</span>-<span class="nu0">15</span><span class="br0">&#41;</span>
&nbsp;
home<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
<span class="co1"># Cut the fan circle</span>
<span class="co1">#</span>
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'(Cut fan circle)<span class="es0">\n</span>'</span><span class="br0">&#41;</span>
&nbsp;
fan_radius <span class="sy0">=</span> <span class="nu0">2.0</span> - toolsize
fan_xy <span class="sy0">=</span> vector<span class="br0">&#40;</span><span class="nu0">0</span><span class="sy0">,</span> fan_radius<span class="br0">&#41;</span>
&nbsp;
<span class="co1"># transition to the start</span>
<span class="co1">#</span>
transition<span class="br0">&#40;</span>fan_xy<span class="br0">&#41;</span>
&nbsp;
<span class="co1"># Cut the circle</span>
<span class="co1">#</span>
plunge<span class="br0">&#40;</span><span class="br0">&#41;</span>
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'G02 X%1.4f Y%1.4f R%1.4f F%d <span class="es0">\n</span>'</span> % <span class="br0">&#40;</span>fan_xy<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">,</span>-fan_xy<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">,</span>fan_radius<span class="sy0">,</span>feed<span class="br0">&#41;</span><span class="br0">&#41;</span>
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'G02 X%1.4f Y%1.4f R%1.4f F%d <span class="es0">\n</span>'</span> % <span class="br0">&#40;</span>fan_xy<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">,</span>fan_xy<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">,</span>fan_radius<span class="sy0">,</span>feed<span class="br0">&#41;</span><span class="br0">&#41;</span>
&nbsp;
home<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
of.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">'m2<span class="es0">\n</span>%<span class="es0">\n</span>'</span><span class="br0">&#41;</span>
of.<span class="me1">close</span></pre>
<div><span class="Apple-style-span" style="font-family: verdana, arial, helvetica, sans-serif; font-size: 13px; font-weight: normal; line-height: normal; background-color: #ffffff;"><br />
</span></div>
]]></content:encoded>
			<wfw:commentRss>http://volcano.newts.org/2008/12/01/machining-mars-etek-backplate-with-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

