<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7294135473370786875</id><updated>2011-08-08T07:34:28.280-04:00</updated><category term='anathem'/><category term='logging'/><category term='jokes'/><category term='acrylic'/><category term='EAS'/><category term='wiimote'/><category term='tools'/><category term='ultrasound'/><category term='3d'/><category term='books'/><category term='light'/><category term='garden'/><category term='slide rules'/><category term='infocards'/><category term='art'/><category term='temperature'/><category term='nobel prize'/><category term='parabola'/><category term='tension'/><category term='shampoo'/><category term='hair'/><category term='bagel'/><category term='binary'/><category term='bacteria'/><category term='thermodynamics'/><category term='linkage'/><category term='archimedes'/><category term='mouse'/><category term='piston'/><category term='DnD'/><category term='mechanics'/><category term='video'/><category term='solaris'/><category term='guacamole'/><category term='parts'/><category term='mit'/><category term='work'/><category term='laptop'/><category term='marble'/><category term='babbage'/><category term='socialism'/><category term='hygiene'/><category term='story'/><category term='simulation'/><category term='halloween'/><category term='genetic'/><category term='lego'/><category term='tornado'/><category term='techshop'/><category term='olpc'/><category term='woodworking'/><category term='stirling'/><category term='experiments'/><category term='hiphop'/><category term='computers math'/><category term='robots'/><category term='school'/><category term='game'/><category term='computers'/><category term='pizza'/><category term='geometry'/><category term='diet'/><category term='construction'/><category term='cardboard'/><category term='design'/><category term='led'/><category term='magicsmoke'/><category term='network'/><category term='vector graphics'/><category term='ubuntu'/><category term='stamps'/><category term='cooking'/><category term='pencils'/><category term='lego engineering'/><category term='pi'/><category term='mirror'/><category term='christmas'/><category term='youtube'/><category term='scratch'/><category term='evolution'/><category term='embryology'/><category term='blahblahblah'/><category term='compression'/><category term='moleskine'/><category term='sensors'/><category term='carving'/><category term='internet'/><category term='graphing'/><category term='hobbyshop'/><category term='invention'/><category term='sandwiches'/><category term='utopia'/><category term='science'/><category term='focus'/><category term='salsa'/><category term='arduino'/><category term='linux'/><category term='math'/><category term='children'/><category term='germs'/><category term='knots'/><category term='drawing'/><category term='photography'/><category term='programming'/><category term='NERD'/><category term='music'/><category term='electronics'/><category term='heater'/><category term='recipe'/><category term='metabolism'/><category term='clock'/><category term='food'/><category term='unix'/><category term='clay'/><category term='structure'/><category term='pumpkin'/><category term='data'/><category term='solar'/><category term='mobius'/><title type='text'>Project Potpourri</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>82</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-3083118672758035729</id><published>2009-12-18T08:53:00.003-05:00</published><updated>2009-12-18T09:34:01.024-05:00</updated><title type='text'>GBCW</title><content type='html'>In an effort to pull free of the increasingly paranoia-inducing Googleverse I'm ending this blog.  It will be continued elsewhere, but without a direct link from here.  If you are interested, you can email me at desiredusername@gmail.com and I'll send you a new link.  Or if you have another email address for me, contacting me there is fine too.  Or if you'll see me at Xmas.  Or you live in my house.  The point is, ask me for the new EARL.

(Also: Wordpress is sooooo much nicer than Blogger!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-3083118672758035729?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/3083118672758035729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/12/gbcw.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/3083118672758035729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/3083118672758035729'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/12/gbcw.html' title='GBCW'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-6962916719690031384</id><published>2009-12-09T13:50:00.015-05:00</published><updated>2009-12-11T20:11:26.829-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='archimedes'/><category scheme='http://www.blogger.com/atom/ns#' term='mobius'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><category scheme='http://www.blogger.com/atom/ns#' term='bagel'/><title type='text'>Pouring a Cone-Shaped 40 For Archimedes</title><content type='html'>&lt;p&gt;
&lt;a href="http://www.georgehart.com/bagel/bagel.html"&gt;George Hart presents what he says is a calculus problem&lt;/a&gt;: What is the ratio of the surface area of [the double mobius] cut to the surface area of the usual planar bagel slice?&lt;p&gt;

Calculus is not necessary to answer this question and I think there are some key insights if you kick it old-style. &lt;p&gt;

Let's start with the easy part: The area of the regular "sandwich style" bagel cut.&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/__HLRN4QOAxg/SyLpe0RUs2I/AAAAAAAAAVw/1hel2lZ5tPY/s400/bagel_plane.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 364px;" src="http://lh6.ggpht.com/__HLRN4QOAxg/SyLpe0RUs2I/AAAAAAAAAVw/1hel2lZ5tPY/s400/bagel_plane.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br&gt;

The area here is simply the area of the outer circle minus the area of the inner circle. &lt;p&gt; 

&amp;pi;(&amp;rho;+r)&lt;sup&gt;2&lt;/sup&gt; - &amp;pi;(&amp;rho;-r)&lt;sup&gt;2&lt;/sup&gt; = 4&amp;pi;r&amp;rho;&lt;p&gt;

Now, on to the (Double) Mobius Bagel.&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/__HLRN4QOAxg/SyLpfGUdfDI/AAAAAAAAAV0/DybEMG74MOc/s400/bagel_3d.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 361px;" src="http://lh4.ggpht.com/__HLRN4QOAxg/SyLpfGUdfDI/AAAAAAAAAV0/DybEMG74MOc/s400/bagel_3d.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br&gt;

(This image is very confusing--refer to the above link for a better visualization of the bagel in 3D.)  Note that the red and blue edges of the cut must be the same length because they are the same cut, just offset by &amp;pi; radians around the bagel.  OK, now unroll the bagel into a cylinder.  &lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/__HLRN4QOAxg/SyLpfZl0a9I/AAAAAAAAAV4/zybvEj-O4dQ/s400/bagel_unrolled.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 177px;" src="http://lh4.ggpht.com/__HLRN4QOAxg/SyLpfZl0a9I/AAAAAAAAAV4/zybvEj-O4dQ/s400/bagel_unrolled.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br&gt;

The double mobius cut is now a slice through the center of a cylinder. If you imagine the knife traveling down the cylinder, it rotates 2&amp;pi; radians while traversing the length.  (Aside: The solution to the question of how to make a true mobius cut in a bagel should now be easy to visualize.)&lt;p&gt;

I'm going to argue that unrolling the bagel didn't change the cut area.  If you imagine re-rolling this cylinder into a bagel, you'll see that one side stretches while the other side shrinks.  The red and blue lines are symmetrically spaced around the cylinder, and the two edges are the same length in the rolled state, so the stretching and shrinking should be the same for both.  But do the stretch and shrink cancel out?&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/__HLRN4QOAxg/SyLpfn9vwBI/AAAAAAAAAV8/TKFg2_PEMjg/s400/bagel_rerolled.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 254px;" src="http://lh4.ggpht.com/__HLRN4QOAxg/SyLpfn9vwBI/AAAAAAAAAV8/TKFg2_PEMjg/s400/bagel_rerolled.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br&gt;

The inner circumference of the re-rolled bagel will be 2&amp;pi;(&amp;rho;-r) = 2&amp;pi;&amp;rho;-2&amp;pi;r.&lt;br&gt;
The outer will be 2&amp;pi;(&amp;rho+r) = 2&amp;pi;&amp;rho;+2&amp;pi;r.  &lt;p&gt;

We get a stretch of 2&amp;pi;r with a shrink of -2&amp;pi;r.  Therefore unrolling the bagel doesn't change the cut area.  &lt;p&gt;

Another way to think of it is with a trapezoid.  If you shorten the top by the same amount that you lengthen the bottom while the height is constant, the area of the trapezoid is the same.&lt;p&gt;

So the area of the cut in cylindrical form is the same as the area of the cut in bagel form.  But what is that area?  We need to deal with the twist.  For this, we unroll the cylinder.&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/__HLRN4QOAxg/SyLpf63iPcI/AAAAAAAAAWA/GlNJ8lVMVuc/s400/bagel_unrolled_twice.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://lh4.ggpht.com/__HLRN4QOAxg/SyLpf63iPcI/AAAAAAAAAWA/GlNJ8lVMVuc/s400/bagel_unrolled_twice.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br&gt;

The width of this rectangle is the original cylinder length: 2&amp;pi;&amp;rho;. &lt;br&gt; 
The height of the rectangle is the original circumference of the cylinder: 2&amp;pi;r.&lt;br&gt;
By Pythagoras: b = sqrt((2&amp;pi;&amp;rho;)&lt;sup&gt;2&lt;/sup&gt; + (2&amp;pi;r)&lt;sup&gt;2&lt;/sup&gt;)) = 2&amp;pi;*sqrt(&amp;rho;&lt;sup&gt;2&lt;/sup&gt; + r&lt;sup&gt;2&lt;/sup&gt;).&lt;p&gt;

b is the length of the edge of the cut.  The "depth" of the cut is 2r (i.e. the diameter of the "tube" of the bagel).  Therefore the total area of the cut is 4&amp;pi;r*sqrt(&amp;rho;&lt;sup&gt;2&lt;/sup&gt; + r&lt;sup&gt;2&lt;/sup&gt;).  &lt;p&gt;

This area is larger than the sandwich-style cut by a factor of &amp;rho;/sqrt(&amp;rho;&lt;sup&gt;2&lt;/sup&gt; + r&lt;sup&gt;2&lt;/sup&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-6962916719690031384?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/6962916719690031384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/12/george-hart-presents-what-he-says-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/6962916719690031384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/6962916719690031384'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/12/george-hart-presents-what-he-says-is.html' title='Pouring a Cone-Shaped 40 For Archimedes'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/__HLRN4QOAxg/SyLpe0RUs2I/AAAAAAAAAVw/1hel2lZ5tPY/s72-c/bagel_plane.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-2040866382441250970</id><published>2009-09-23T11:16:00.004-04:00</published><updated>2009-09-23T11:26:32.344-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='jokes'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>A Professional Technical Conversation</title><content type='html'>&lt;b&gt;Me:&lt;/b&gt; I need to determine if an executable is in my path.  So I use &lt;tt&gt;which&lt;/tt&gt;...&lt;br&gt;
&lt;b&gt;Old Sk00l Unix Guru #1:&lt;/b&gt; Right.&lt;br&gt;
&lt;b&gt;Old Sk00l Unix Guru #2:&lt;/b&gt; Right.&lt;br&gt;
&lt;b&gt;Me:&lt;/b&gt; But I need to do it from a script, so I'm checking the exit code....&lt;br&gt;
&lt;b&gt;OSUG #1:&lt;/b&gt; Right.&lt;br&gt;
&lt;b&gt;OSUG #2:&lt;/b&gt; Right.&lt;br&gt;
&lt;b&gt;Me:&lt;/b&gt; And that works great on Linux.  But on Solaris, it's &lt;tt&gt;0&lt;/tt&gt; on both success and failure.&lt;br&gt;
&lt;b&gt;OSUG #1:&lt;/b&gt; Can't you just put it in backticks and grep the output?&lt;br&gt;
&lt;b&gt;Me:&lt;/b&gt; Well sure, I &lt;i&gt;can&lt;/i&gt;.  But it seems like such an old utility should have a way to return 'yes' or 'no'.  What's the Old Sk00l UNIX Way to do this?&lt;br&gt;
&lt;br&gt;
*all three characters pore over Solaris man page, which was last updated in 1992*&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Me:&lt;/b&gt; I guess I'll do that.  I just wanted to be sure that if I did the backtick and grep thing, someone isn't going to look at that later and say "what a n00b".&lt;br&gt;
&lt;b&gt;OSUG #1:&lt;/b&gt; You can write a comment that says "let me know if you have a better way".&lt;br&gt;
&lt;b&gt;OSUG #2:&lt;/b&gt; Or "to overcome braindead Solaris return code values".&lt;br&gt;
&lt;b&gt;Me:&lt;/b&gt; I guess leaving a comment about someone being braindead IS the Old Sk00l UNIX Way.&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-2040866382441250970?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/2040866382441250970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/09/professional-technical-conversation.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2040866382441250970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2040866382441250970'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/09/professional-technical-conversation.html' title='A Professional Technical Conversation'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-7245140260163789525</id><published>2009-09-07T14:00:00.002-04:00</published><updated>2009-09-07T14:06:42.334-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NERD'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='children'/><title type='text'>The Children Are Our Future</title><content type='html'>Number Two son (age 8) comes in to report that Number One son (age 10) is calling him stupid!  &lt;p&gt;

Number One son comes in holding a piece of paper:

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/__HLRN4QOAxg/SqRGIO34r6I/AAAAAAAAAT0/UUxpyt-7OYg/s400/EvansProgram_cropped.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 357px;" src="http://lh5.ggpht.com/__HLRN4QOAxg/SqRGIO34r6I/AAAAAAAAAT0/UUxpyt-7OYg/s400/EvansProgram_cropped.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-7245140260163789525?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/7245140260163789525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/09/children-are-our-future.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7245140260163789525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7245140260163789525'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/09/children-are-our-future.html' title='The Children Are Our Future'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/__HLRN4QOAxg/SqRGIO34r6I/AAAAAAAAAT0/UUxpyt-7OYg/s72-c/EvansProgram_cropped.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-8575640847144799534</id><published>2009-08-30T12:34:00.005-04:00</published><updated>2009-08-30T12:45:32.916-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='invention'/><category scheme='http://www.blogger.com/atom/ns#' term='drawing'/><category scheme='http://www.blogger.com/atom/ns#' term='jokes'/><title type='text'>Invention Idea #6</title><content type='html'>My office kitchen fridge has an incredible profusion of soda cans.  (As an aside, I don't understand why: If you want it cold, just buy it from the machine right before you drink it.  If you brought it from home to save money, you should be buying it in 2L bottles, not cans.)&lt;p&gt;

Many cans are unlabeled, but some have a name scrawled on them, or some tape, or a business card stuck under the tab.  However, these solutions have a couple problems.  First, they only provide identification, not security.  Second, some of these are kind of time-consuming.  The tape, for instance, can't take less than 60-90 precious seconds during which you could be reading some hilarious emails forwarded from the secretary.&lt;p&gt;

Thus my invention, which I call "Club Soda". You slip it on, snap it shut and club it with a tiny key.  It would be personalized with your name via a tag or engraving or something.  Security and identification in under 10 seconds.  MSRP $4.99.&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/__HLRN4QOAxg/SpqpKt9Np5I/AAAAAAAAATQ/6reXAR1K7UA/s800/clubsoda_full.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 374px; height: 800px;" src="http://lh6.ggpht.com/__HLRN4QOAxg/SpqpKt9Np5I/AAAAAAAAATQ/6reXAR1K7UA/s800/clubsoda_full.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-8575640847144799534?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/8575640847144799534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/08/invention-idea-6.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/8575640847144799534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/8575640847144799534'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/08/invention-idea-6.html' title='Invention Idea #6'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/__HLRN4QOAxg/SpqpKt9Np5I/AAAAAAAAATQ/6reXAR1K7UA/s72-c/clubsoda_full.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-7047872640742680416</id><published>2009-08-29T20:07:00.009-04:00</published><updated>2009-08-29T20:35:09.390-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><category scheme='http://www.blogger.com/atom/ns#' term='garden'/><category scheme='http://www.blogger.com/atom/ns#' term='food'/><category scheme='http://www.blogger.com/atom/ns#' term='blahblahblah'/><title type='text'>Garden Notes</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/__HLRN4QOAxg/SpnCpVKlvyI/AAAAAAAAASg/QYU0ZmJwoTU/s400/100_3931.jpg"&gt;&lt;img style="float:right; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 223px;" src="http://lh4.ggpht.com/__HLRN4QOAxg/SpnCpVKlvyI/AAAAAAAAASg/QYU0ZmJwoTU/s400/100_3931.jpg" border="0" alt="One harvest of 3 so far.  This week." /&gt;&lt;/a&gt;&lt;p&gt;


Notes for next year:&lt;br&gt;

&lt;ul&gt;

&lt;li&gt;Plant only about 4 tomato plants, not 6.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;Same for the jalape&amp;ntilde;os.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;MORE green peppers. Or maybe they were just shaded by the tomatoes?&lt;/li&gt;&lt;br&gt;

&lt;li&gt;Plant the tall things in the back.  Which is to say, the tomatoes.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;Tomato cages have very little resistance to bending from being overloaded.  Stake them.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;&lt;i&gt;&lt;a href="http://www.librarything.com/work/880547"&gt;The Garden-Fresh Vegetable Cookbook&lt;/a&gt;&lt;/i&gt; has a trillion good ways to use all the results.  (By the time I re-read this next year, I should know if they are actually yummy.)&lt;/li&gt;&lt;br&gt;

&lt;li&gt;I will also know if &lt;a href="http://www.pickyourown.org/canning_diced_tomato.htm"&gt;making my own crushed tomatoes&lt;/a&gt; worked.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;Add snap peas, basil, cilantro and possibly watermelons.&lt;/li&gt;

&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-7047872640742680416?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/7047872640742680416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/08/garden-notes.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7047872640742680416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7047872640742680416'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/08/garden-notes.html' title='Garden Notes'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/__HLRN4QOAxg/SpnCpVKlvyI/AAAAAAAAASg/QYU0ZmJwoTU/s72-c/100_3931.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-7872765604802704223</id><published>2009-07-21T07:49:00.007-04:00</published><updated>2009-07-21T08:07:53.676-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='math'/><category scheme='http://www.blogger.com/atom/ns#' term='geometry'/><title type='text'>Puzzle</title><content type='html'>Another hard one from &lt;a href="http://projectpotpourri.blogspot.com/2009/01/quickie.html"&gt;the problem-a-day&lt;/a&gt; calendar.&lt;p&gt;  

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/__HLRN4QOAxg/SmUcRyLdtlI/AAAAAAAAASE/lyM9UQqR2HQ/s800/chord_problem.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 800px; height: 624px;" src="http://lh6.ggpht.com/__HLRN4QOAxg/SmUcRyLdtlI/AAAAAAAAASE/lyM9UQqR2HQ/s800/chord_problem.jpg" border="0" alt="" /&gt;&lt;/a&gt;

My officemate and I discussed this one on-and-off throughout the day, drawing and redrawing many extra lines and triangles.  We did finally solve it, but by a kind of questionable meta-method.  Here's the basic idea:&lt;p&gt;

Imagine blowing up the circle just a little bit.  The line on the left can still be 12 units long.  It will still be possible to have another line cut a chord 7 units long.  And it will still be possible to have those two lines meet at a point.  The angle they form will be different, though, and the value of x may be different.  But the angle isn't a given and neither is the diameter of the circle.  Therefore that problem is the same problem as this one.  &lt;b&gt;Since we know this puzzle has a unique solution&lt;/b&gt;, the value of x must actually be a constant and we can make that angle whatever we want.  We will make it such that the chord is actually a diameter.  &lt;p&gt;

From that point the puzzle is easy and this method did yield the correct answer.  The questionable part is assuming there was a unique solution.  If we had come across this puzzle "in the wild" this wouldn't have been at all kosher.  So how did the first person solve this puzzle?  What's the real solution?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-7872765604802704223?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/7872765604802704223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/07/puzzle.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7872765604802704223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7872765604802704223'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/07/puzzle.html' title='Puzzle'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/__HLRN4QOAxg/SmUcRyLdtlI/AAAAAAAAASE/lyM9UQqR2HQ/s72-c/chord_problem.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-8099509011989378389</id><published>2009-07-10T08:35:00.008-04:00</published><updated>2009-07-10T09:37:23.198-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diet'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='woodworking'/><category scheme='http://www.blogger.com/atom/ns#' term='clock'/><category scheme='http://www.blogger.com/atom/ns#' term='clay'/><title type='text'>I Did It!</title><content type='html'>&lt;ul&gt;
&lt;li&gt;Woooo!  On 03/26/2007 I started at 259.  Today I'm at 199.  &lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/__HLRN4QOAxg/Slc8maQhMXI/AAAAAAAAARc/we8K57ss-s4/s400/chart.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 113px;" src="http://lh6.ggpht.com/__HLRN4QOAxg/Slc8maQhMXI/AAAAAAAAARc/we8K57ss-s4/s400/chart.png" border="0" alt="" /&gt;&lt;/a&gt;

That's right, just 1/2 lb per week.  Slow and steady catches the worm.  In graphical form:&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/__HLRN4QOAxg/Slc8mVqN6eI/AAAAAAAAARg/PgD9n17VpGE/s400/graph.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 280px;" src="http://lh6.ggpht.com/__HLRN4QOAxg/Slc8mVqN6eI/AAAAAAAAARg/PgD9n17VpGE/s400/graph.png" border="0" alt="" /&gt;&lt;/a&gt;

My BMI is still technically overweight, though.  Granted, BMI isn't a very good measure, but in this case I agree with the assessment and I'm going to go for 10 more lbs.  
&lt;/li&gt;&lt;br&gt;

&lt;li&gt;I've only recently started using multiple colors of clay together.  I have an irrational fear of "using up" the clay when I mix it, even though a pound of clay is like $1.  However, a clay model gathers impossible-to-remove dust and small nicks.  So I've finally bitten the more expensive bullet of switching to sculpey.  &lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/__HLRN4QOAxg/SlaaRp-2qoI/AAAAAAAAARA/NstuxMws02w/s400/100_3912.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://lh3.ggpht.com/__HLRN4QOAxg/SlaaRp-2qoI/AAAAAAAAARA/NstuxMws02w/s400/100_3912.jpg" border="0" alt="" /&gt;&lt;/a&gt;

A 4 year old of my acquaintance calls this "the treasure cat" and a 2 year old, also of my acquaintance, calls it "measure cat".  (Also, any Cheshire Experts will notice right away the wrong color I didn't notice until too late.)
&lt;/li&gt;&lt;br&gt;

&lt;li&gt;I have a scrollsaw from way back but the blade broke and it turns out that that size is hard to find.  Then last weekend I found a bandsaw at the flea market!  After some tuning and tweaking, it's running great.  &lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/__HLRN4QOAxg/SlaXFK0yRsI/AAAAAAAAAQ4/Aacr-8N35FM/s400/100_3910.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://lh5.ggpht.com/__HLRN4QOAxg/SlaXFK0yRsI/AAAAAAAAAQ4/Aacr-8N35FM/s400/100_3910.jpg" border="0" alt="" /&gt;&lt;/a&gt;

Is this&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/__HLRN4QOAxg/SlaXLVzFD-I/AAAAAAAAAQ8/iW4YdAYuek8/s400/100_3911.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://lh5.ggpht.com/__HLRN4QOAxg/SlaXLVzFD-I/AAAAAAAAAQ8/iW4YdAYuek8/s400/100_3911.jpg" border="0" alt="" /&gt;&lt;/a&gt;

the first step on the road to this?&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wooden-gear-clocks.com/dp_corner1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://www.wooden-gear-clocks.com/dp_corner1.jpg" border="0" alt="" /&gt;&lt;/a&gt;

Doubtful.  But maybe!

&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-8099509011989378389?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/8099509011989378389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/07/i-did-it.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/8099509011989378389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/8099509011989378389'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/07/i-did-it.html' title='I Did It!'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/__HLRN4QOAxg/Slc8maQhMXI/AAAAAAAAARc/we8K57ss-s4/s72-c/chart.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-6959207037837434676</id><published>2009-06-28T12:08:00.002-04:00</published><updated>2009-06-28T12:10:39.583-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='guacamole'/><category scheme='http://www.blogger.com/atom/ns#' term='nobel prize'/><category scheme='http://www.blogger.com/atom/ns#' term='sandwiches'/><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><category scheme='http://www.blogger.com/atom/ns#' term='blahblahblah'/><title type='text'>I Just Won The Nobel Prize In Sandwiches</title><content type='html'>A BLT, only instead of mayonnaise, guacamole.&lt;p&gt;

I wonder if egg salad could also benefit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-6959207037837434676?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/6959207037837434676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/06/i-just-won-nobel-prize-in-sandwiches.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/6959207037837434676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/6959207037837434676'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/06/i-just-won-nobel-prize-in-sandwiches.html' title='I Just Won The Nobel Prize In Sandwiches'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-5136345964598912232</id><published>2009-06-12T08:30:00.004-04:00</published><updated>2009-06-12T10:11:00.570-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NERD'/><category scheme='http://www.blogger.com/atom/ns#' term='children'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><category scheme='http://www.blogger.com/atom/ns#' term='DnD'/><category scheme='http://www.blogger.com/atom/ns#' term='blahblahblah'/><title type='text'>Contributing to the NERDliness of a Minor</title><content type='html'>Two minors, actually.  A few months ago, I caved in to demands of my oldest two boys (10 and 8) to play D&amp;D.  They made me be the DM and they loved it.  I did not really love it for several reasons:

&lt;ol&gt;

&lt;li&gt;Never played before.  Any halfway game is annoying the first few times as you learn The System and what is and isn't important, etc.&lt;/li&gt;

&lt;li&gt;Takes a lot of time to set up.&lt;/li&gt;

&lt;li&gt;I feel like a real dork saying things like "leathern helm" or "dwarf mage".&lt;/li&gt;
&lt;/ol&gt;

So I didn't do it again.  But that didn't make the demands stop.  Finally, I told the 10 year old that I would play with them if &lt;b&gt;he&lt;/b&gt; was the DM.  Last night, we started that game.  &lt;p&gt;

Which brings me to the nerdliness.  Playing D&amp;D.  Around the dining room table.  While eating pizza, hot dogs and nachos.  At least none of us has a neckbeard or obesity problem.  Although one of us runs Linux.  Oh and Mom brought in a sugary snack, plus we had our first game-based injoke.&lt;p&gt;

Anyway, he actually did really, really well at it.  I mean, we're wandering around without a clue in a very haphazard dungeon and he's giving hints pretty often ("do you want to check behind you?")...but he has the right attitude.  He's confidently telling us what's what and taking our unanticipated actions completely in stride.  Kudos, proto-NERD!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-5136345964598912232?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/5136345964598912232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/06/contributing-to-nerdliness-of-minor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5136345964598912232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5136345964598912232'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/06/contributing-to-nerdliness-of-minor.html' title='Contributing to the NERDliness of a Minor'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-8679162362373787471</id><published>2009-05-19T08:26:00.004-04:00</published><updated>2009-05-19T08:46:40.674-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='embryology'/><category scheme='http://www.blogger.com/atom/ns#' term='diet'/><category scheme='http://www.blogger.com/atom/ns#' term='computers'/><category scheme='http://www.blogger.com/atom/ns#' term='binary'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='evolution'/><title type='text'>Happy Modification Of Most Sigificant Digit In Base 10 Representation Day!</title><content type='html'>I didn't even think to comment when the MSB in base 2 changed.  What kind of a NERD am I?&lt;p&gt;

Once my average catches up with the daily weigh-in, I'll be Officially At My (Original) Goal.  I think I'm going to aim at another 10 lbs, though.&lt;p&gt;

In other news, I've been messing around with &lt;a href="http://www.haskell.org/"&gt;Haskell&lt;/a&gt;, but I need a real programming project to really do something.  I was thinking about &lt;a href="http://projectpotpourri.blogspot.com/2008/12/how-do-you-solve-represent-problem-like.html"&gt;this&lt;/a&gt; again.  &lt;p&gt;

I realized yesterday that it's not just hard but actually logically impossible to represent a mechanical object physically as a strict tree.  Consider even just a triangle of beams.  Two of them attach, making them children of the same parent (the joint).  The third attaches to both, which is illegal.&lt;p&gt;

A commenter suggested the &lt;a href="http://en.wikipedia.org/wiki/Netlist"&gt;netlist&lt;/a&gt; approach that electronic simulators take.  The problem is that the netlist is a genome of the device.  I have to be able to take a subset of the genome and swap it out for another piece that also has to drop in place.  How does that work without leaving dangling "wires"?  I could just leave them there for Nature to work out, but is that going to make success too infrequent for me to have patience for?&lt;p&gt;

I think my algorithmic approach could work.  But I haven't really worked it out.  In any case, Haskell (or possibly better yet, Tcl or Lisp) is probably a good match.  These languages already allow you to run data as code and treat code like data easily.  Actually, now that I think about it, I'm not sure Haskell does that.  What is that property even called?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-8679162362373787471?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/8679162362373787471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/05/happy-modification-of-most-sigificant.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/8679162362373787471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/8679162362373787471'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/05/happy-modification-of-most-sigificant.html' title='Happy Modification Of Most Sigificant Digit In Base 10 Representation Day!'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-4181271192161514438</id><published>2009-05-05T09:15:00.002-04:00</published><updated>2009-05-05T11:37:46.161-04:00</updated><title type='text'>Potpourri</title><content type='html'>&lt;ul&gt;
&lt;li&gt;Continuing an Obsolete Technology theme from my last entry, I got a &lt;a href="http://www.adclassix.com/images/51westcloxclocks.jpg"&gt;mechanical alarm clock&lt;/a&gt; at the flea market.  All the parts worked, but it lost 5-10 minutes over a 12 hour period, at which point it would stop.  &lt;p&gt;

I got a couple old-timey clock repair books at the library for tips on what to clean and/or adjust.  Now it actually gains 2-3 minutes in 24 hours, but I recentered the little adjusty lever, so I should be able to make it keep good time.  Unfortunately it still alarms 10 minutes before the set time.  Also, it sounds like a fire alarm, which is maybe not the ideal thing to wake up &lt;b&gt;only a single person&lt;/b&gt; at 5:30 am.&lt;/li&gt;&lt;p&gt;

&lt;li&gt;Could have used &lt;a href="http://www.texify.com/links.php"&gt;this site&lt;/a&gt; years ago. Or is there a way to put MathML on Blogger now?  If not, I guess I should learn LaTeX.&lt;p&gt;

&lt;img alt="x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}" src=http://www.texify.com/img/%5CLARGE%5C%21x%3D%5Cfrac%7B-b%5Cpm%5Csqrt%7Bb%5E2-4ac%7D%7D%7B2a%7D.gif align=center border=0&gt; &lt;/li&gt;&lt;p&gt;

&lt;li&gt;While looking forward to &lt;a href="http://www.amazon.com/gp/product/1596914521?ie=UTF8&amp;tag=projepotpo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0786180331"&gt;LogiComix&lt;/a&gt;, I came across &lt;a href="http://www.amazon.com/gp/product/1582341281?ie=UTF8&amp;tag=projepotpo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0786180331"&gt;Uncle Petros and the Goldbach Conjecture&lt;/a&gt;.  Fun, short read.  I already knew about the Goldbach Conjecture, but the book gave me an idea for a possible disproof that probably doesn't work.

First, the Conjecture: All even numbers &amp;gt; 2 can be expressed as the sum of two primes.

One way to disprove this would be to find a number n such that no numbers from n to 2n are prime.  There is already &lt;a href="http://en.wikipedia.org/wiki/Prime_gap"&gt;a theorem&lt;/a&gt; that proves that you can construct a "prime gap" of any size, so one of length n is no problem.  The reason this doesn't quite work is that you also have to specify that the gap starts at n.  

Oh wait, it's even worse than that.  &lt;a href="http://en.wikipedia.org/wiki/Bertrand%27s_postulate"&gt;There's a prime between n and 2n for all n.&lt;/a&gt;

Pffff.
&lt;/li&gt;&lt;p&gt;

&lt;li&gt;You know what would be a killer app?  Online WINE/Crossover.  I could upload a Windows/OSX app and install it on a virtual machine and then interact with it via a generated Flash interface.  I guess the only really hard part of this is the "generated Flash interface".  Kind of like those programs that let me display on another computer (like X-Windows, but for all OSes) where the "another computer" is "a Flash app".&lt;/li&gt;&lt;p&gt;

&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-4181271192161514438?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/4181271192161514438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/05/potpourri.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4181271192161514438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4181271192161514438'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/05/potpourri.html' title='Potpourri'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-6085201156241396003</id><published>2009-04-16T08:37:00.004-04:00</published><updated>2009-04-16T09:09:57.331-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='slide rules'/><category scheme='http://www.blogger.com/atom/ns#' term='computers math'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='blahblahblah'/><title type='text'>Two Unrelated Things</title><content type='html'>Just finished reading &lt;a href="http://www.amazon.com/gp/product/0786180331?ie=UTF8&amp;tag=projepotpo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0786180331"&gt;The Swiss Family Robinson&lt;/a&gt;.  Two main things jumped out at me.&lt;p&gt;

&lt;ol&gt;

&lt;li&gt;An incredible quantity of animals are killed.  It's seriously like every couple of pages they take down a kangaroo, shoot an agouti or chop a snake.  After the fact they talk a lot about the "magnificent creature" but beforehand they don't think twice.  They don't even know what most of the animals even are and they start shooting.  (They also have an unending supply of ammo.)  &lt;p&gt;

The irony of the family often being afraid of "savages" in this context is pretty thick.&lt;p&gt;

The variety of animals is also pretty astonishing (which is to say fictional).  On what island exactly do monkeys, wild hogs, buffalo, kangaroos, lions, boa constrictors and ostriches all coincide?&lt;p&gt;
&lt;/li&gt;

&lt;li&gt;There are many similarities to &lt;i&gt;Robinson Crusoe&lt;/i&gt;.  I noticed them at the time but can't think of any now, so I'm left with the obvious statement that they are both shipwrecked on an island.  &lt;p&gt;

Anyway, in the text they mention that they are Swiss (duh) and don't speak English (whoa!).  Looking it up afterwards, it turns out that "Swiss Family Robinson" is kind of a misnomer.  They aren't named Robinson.  In fact, their name is never given, only the 4 sons are addressed by names with the man being the narrator and the wife called "the wife" or "the mother".  The real translation of the original title is more like "The Swiss Robinsons" as in "a Swiss version of the Robinson Crusoe".&lt;p&gt;

Also, especially near the end, there were many similarities with some of the Heinlein juveniles.  I think RAH even said he'd "filed the serial numbers off" of SFR a couple times.  Knowing the actual plot of the original now, I should reread the juveniles.&lt;p&gt;
&lt;/li&gt;

&lt;/ol&gt;

The other thing is slide rules.  I asked &lt;a href="http://www.freecycle.org/"&gt;Freecycle&lt;/a&gt; for a slide rule and a kind soul gave me &lt;b&gt;3&lt;/b&gt;.  All 3 in leather cases, one of them bamboo and new in box.  Wow.  &lt;p&gt;

&lt;a href="http://sliderulemuseum.com/Pickett/P076_Pickett_N200-ES_Trig.jpg"&gt;One&lt;/a&gt;&lt;br&gt;

&lt;a href="http://sliderulemuseum.com/Pickett/S182_Pickett_N902-T_Trig.jpg"&gt;Two&lt;/a&gt;&lt;br&gt;

&lt;a href="http://sliderulemuseum.com/SIC/S510_SIC_1570_ElectroVectorLogLog_v2.jpg"&gt;Three&lt;/a&gt; (has 23 scales on it!)&lt;p&gt;

I feel like such a retro-nerd messing around with them, although I can barely do even simple problems.  You really get a sense of what a chore basic computation used to be if this slow, error-prone, laborious process was the &lt;i&gt;easy&lt;/i&gt; way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-6085201156241396003?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/6085201156241396003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/04/two-unrelated-things.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/6085201156241396003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/6085201156241396003'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/04/two-unrelated-things.html' title='Two Unrelated Things'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-2008379360450098146</id><published>2009-04-01T07:34:00.002-04:00</published><updated>2009-04-01T08:02:16.331-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='clock'/><category scheme='http://www.blogger.com/atom/ns#' term='computers math'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Modulo Operator Considered Harmful</title><content type='html'>The way I think of the modulo operator is as a remainder.  10 mod 3 = 1, because 3 * 3 = 9 and 10 - 9 = 1.  But what if one of the operands is negative?  What is -10 mod 3?&lt;p&gt;

My naive answer was that this is obvious.  -10/3 = -3.  -3 * 3 = -9.  To get from -9 to -10, you need to add -1.  Therefore the remainder is -1.  Let's see what C thinks of that:&lt;p&gt;

&lt;pre&gt;
#include &lt;stdio.h&gt;

int main(void) {
  printf(" 10 mod  3 = %d\n", 10%3);
  printf("-10 mod  3 = %d\n", -10%3);
  printf(" 10 mod -3 = %d\n", 10%-3);
  printf("-10 mod -3 = %d\n", -10%-3);

  return 0;
}

$ gcc -o mod mod.c
$ ./mod
 10 mod  3 = 1
-10 mod  3 = -1
 10 mod -3 = 1
-10 mod -3 = -1
&lt;/pre&gt;

C agrees!  And I'm sure Python must follow, right?

&lt;pre&gt;
#!/usr/bin/env python

print " 10 mod  3 = ", 10 % 3
print "-10 mod  3 = ", -10 % 3
print " 10 mod -3 = ", 10 % -3
print "-10 mod -3 = ", -10 % -3

$ ./mod.py
 10 mod  3 =  1
-10 mod  3 =  2
 10 mod -3 =  -2
-10 mod -3 =  -1
&lt;/pre&gt;

&lt;b&gt;2?!?!&lt;/b&gt;&lt;p&gt;

There's a couple ways to look at this.  First, what really is the answer of -10/3 in integer division?  The "real" answer (seewhatididthere) is -3.333....  When I round that to an integer, do I round "down" meaning "to the left on the number line" or "down" meaning "towards zero"?  If I mean the latter, -10/3 = -3.  But if I mean the first meaning, then -10/3 = -4.  Then 3*-4 = -12 and so the remainder is actually 2.  (If you ask Python what -10/3 is, you do in fact get -4, btw.)&lt;p&gt;

Alternatively, I could revert to doing modular arithmetic under it's old name of "clock arithmetic".  For 10 mod 3, the face has 3 numbers and I'm going to take 10 steps around it, starting at 0 and moving clockwise.  I end up on 1.  For -10 mod 3, I'm going to go counterclockwise.  I end up on 2.&lt;p&gt;

To me, this second interpretation is better.  For one thing, rounding leftwards seems to be as counterintuitive as the original problem.  For another, this clock method explains what a 10 % -3 should be.  The clock face contains the space of possible answers.  Doing mod 3, the answers can only be 0, 1 or 2.  Doing mod -3, the answers can only be 0, -1 and -2.  &lt;p&gt;

&lt;a href="http://en.wikipedia.org/wiki/Modular_arithmetic"&gt;Wikipedia agrees with Python&lt;/a&gt;, which seems to leave C out in the cold.  Its folk understanding of modulo as remainder is common sense but wrong.  &lt;a href="http://en.wikipedia.org/wiki/Modulo_operation"&gt;And it isn't alone&lt;/a&gt;.  (Some languages have mod vs rem, with the latter being a remainder.  That's a good idea.  Naturally FORTRAN has called the two operators mod and modulo.  Stay classy, FORTRAN.)&lt;p&gt;

However, it is still true that if you are working only with positive numbers, mod is a remainder.  Because of this intuitive understanding, and because of the obvious confusion among language designers, it seems a good idea to me to always frame mod operations in positive space.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-2008379360450098146?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/2008379360450098146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/04/modulo-operator-considered-harmful.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2008379360450098146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2008379360450098146'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/04/modulo-operator-considered-harmful.html' title='Modulo Operator Considered Harmful'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-5988905767015497922</id><published>2009-03-31T19:45:00.002-04:00</published><updated>2009-03-31T19:54:30.501-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vector graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='infocards'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='drawing'/><category scheme='http://www.blogger.com/atom/ns#' term='knots'/><title type='text'>Infocard: Useful Knots</title><content type='html'>I often need knots.  I have often learned the knots I need.  But these two things never happen close enough together to result in long term knowledge storage.  &lt;a href="http://blog.makezine.com/archive/2007/05/how_to_tie_the_10_most_us.html"&gt;This Make blog post&lt;/a&gt; gave me the idea of collecting a few useful ones and putting them on wallet card.&lt;p&gt;

Front:
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__HLRN4QOAxg/SdKtI54FiVI/AAAAAAAAAQM/zQhMxrTeDQ8/s1600-h/knotcard2-page1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 229px;" src="http://1.bp.blogspot.com/__HLRN4QOAxg/SdKtI54FiVI/AAAAAAAAAQM/zQhMxrTeDQ8/s400/knotcard2-page1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5319504478364600658" /&gt;&lt;/a&gt;&lt;p&gt;

Back:
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__HLRN4QOAxg/SdKs1ov98eI/AAAAAAAAAQE/Zc7ly4abcYI/s1600-h/knotback-page1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 229px;" src="http://4.bp.blogspot.com/__HLRN4QOAxg/SdKs1ov98eI/AAAAAAAAAQE/Zc7ly4abcYI/s400/knotback-page1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5319504147349631458" /&gt;&lt;/a&gt;&lt;p&gt;

Printed front and back on a business card and then laminated, it can nestle in my wallet until I need them.  Alternatively, for this particular application, I could secret cards in amongst any ropes I might use so they are johnny-on-the-spot at the right moment.&lt;p&gt;

And speaking of applications, I was also thinking this could be a neat idea for other things.  How to mix drinks, electronics cheatsheet, math formulae, What To Do If Arrested, etc.  In fact, it seems like such an obvious idea I spent some time googling to see if anyone had set up a Web 2.0 social networking site to do this.  Nothing.  So I hereafter document my process for my future self and anyone else who wants to make one:&lt;br&gt;

&lt;ol&gt;

&lt;li&gt;Design it up a bit.  In this case, I tried to pick some knots that were both unlike each other and also widely useful.  There's a loop, a general "tie to a post", a stopper that can also make a second type of loop and finally a bend, which is a knot that attaches two ropes.  I also wanted a "scenario" that would tie it all together (ha!).  And it all has to fit on a business card.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;Once the contents were identified, I drew all the images with pencil.  I actually first started with some &lt;a href="http://www.gutenberg.org/files/13510/13510-h/13510-h.htm"&gt;copyright-free knot images from a Project Gutenberg book&lt;/a&gt;, but there were a few problems with that.  The main one was that not all the knots I wanted had drawings.  Also, the images were too busy to be shrunk down that small.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;Trace with pen.  May not have been strictly necessary, but didn't take too much time anyway. Scan.  Load into &lt;a href="http://www.gimp.org/"&gt;Gimp&lt;/a&gt; and fix any boo-boos.  Smudges, pen dropouts, etc.  With a cheap graphics tablet, I could have skipped a lot of this.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;Bring into &lt;a href="http://inkscape.org/"&gt;Inkscape&lt;/a&gt; and auto-trace bitmap into a vector format.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;Use Scribus to &lt;a href="http://wiki.scribus.net/index.php/How_to_make_business_cards"&gt;lay out the page&lt;/a&gt;.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;Print onto business card template thingies.  Get laminated.&lt;/li&gt;

&lt;/ol&gt;

If this were an online service or community or whatevs, there would be PDFs and/or inkscape/scribus files.  However, I don't have a way to host anything but images here.  Suggestions?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-5988905767015497922?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/5988905767015497922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/03/infocard-useful-knots.html#comment-form' title='21 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5988905767015497922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5988905767015497922'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/03/infocard-useful-knots.html' title='Infocard: Useful Knots'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/__HLRN4QOAxg/SdKtI54FiVI/AAAAAAAAAQM/zQhMxrTeDQ8/s72-c/knotcard2-page1.png' height='72' width='72'/><thr:total>21</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-5819844194556422439</id><published>2009-03-05T08:43:00.005-05:00</published><updated>2009-03-05T08:54:41.247-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='art'/><category scheme='http://www.blogger.com/atom/ns#' term='diet'/><category scheme='http://www.blogger.com/atom/ns#' term='blahblahblah'/><title type='text'>Artistic Voice, And Poundage, Being Suppressed</title><content type='html'>You may remember my &lt;a href="http://projectpotpourri.blogspot.com/2007/11/tic-tac-lego.html"&gt;previous, paradigm-shifting, boundary-pushing art installation&lt;/a&gt;.  A chance remark from a coworker caused me to think of another.  No pictures, sadly, and it only lasted about an hour.&lt;p&gt;

The idea was: The cubbies kind of look like a vertical cross section of an apartment building.  So I filled them with doll furniture to simulate different apartments.  One had a bed, another a lamp and armchair, another a toilet and sink, etc.  There was room for the cellphones to perch on the "floor" but I really intended the phones to live in the apartments--sleep in the beds, sit in the chairs, etc.&lt;p&gt;

Sadly, some humorless nitwit removed it all because some VIPs are coming through.  And we all know VIPs will instantly be turned to powder if they crack a smile.  (The VIPs canceled a few minutes later, but now I shan't share.  Or maybe I will.)&lt;p&gt;

Unrelatedly, my birthday has come and gone and I didn't quite meet the goal of -60 lbs.  However, I'm exactly 3.5 lbs short of it and closing fast, so I'm not too disappointed.  What's weird is that the stupid Wii doesn't seem to notice.  I deliberately wear exactly the same clothes every time I weigh in and have lost at least 2 lbs since it started tracking me, but no.  Then again, it cares more about BMI which changes less rapidly than lbs (they are both linear, but I mean numerically).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-5819844194556422439?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/5819844194556422439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/03/artistic-voice-and-poundage-being.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5819844194556422439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5819844194556422439'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/03/artistic-voice-and-poundage-being.html' title='Artistic Voice, And Poundage, Being Suppressed'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-6862539514689100523</id><published>2009-03-04T07:27:00.004-05:00</published><updated>2009-03-04T08:58:34.041-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utopia'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='socialism'/><category scheme='http://www.blogger.com/atom/ns#' term='robots'/><category scheme='http://www.blogger.com/atom/ns#' term='invention'/><category scheme='http://www.blogger.com/atom/ns#' term='food'/><title type='text'>They'll Have Nothing To Lose But Their Chaindrives (Invention Idea #5)</title><content type='html'>Why do I have to have a job?  There are basically four reasons: Food, shelter, medical care and luxuries.  &lt;p&gt;

Those are listed in rough order of importance.  Theoretically an order-of-importance list is also an order-of-most-money-spent list but that's probably not literally true.  However, from the point of view of reducing costs, it kind of is.  $500 that I &lt;b&gt;must&lt;/b&gt; spend on food is a tougher nut to a short budget than $2000 that I throw away on bingo. Put another way: Say I wanted to stop working.  What's the first problem I absolutely must solve?  It isn't "where am I gonna get my $2000 of bingo money".  It's "how do I eat".   &lt;p&gt;

So how &lt;i&gt;would&lt;/i&gt; I eat?  One common solution is to start your own business.  But that's still a job, albeit one where you are the boss.  I'm imagining a socialist utopia where nobody would &lt;i&gt;have to&lt;/i&gt; do any work at all.  We'd just recline on chaise lounges all day. &lt;p&gt;

I could grow my own food in my yard.  That's still a lot of work, though.  Planting, weeding, chasing away predators, harvesting, processing, etc.  However, this is all repetitive, physical work, which is perfect for whom?  Robots! &lt;p&gt;

The first thing you need is a big field.  (You could do this in your yard, but for reasons of efficiency and scale, farm-like installations are probably better.).  Enclose the entire thing in glass (height determined by the crop) to make it a greenhouse.  This also excludes many, but not all, bugs, animals and weedseeds. &lt;p&gt;

Install some sprinklers.  You'll be using a lot less water than usual for two reasons.  One is that because the field is enclosed it will lose less to evaporation from the ground or respiration from the plants.  The other is that you can collect any runoff and reuse it.  (Why don't they already do this?  Maybe it seeps down to the groundwater first?  Perhaps my field should be enclosed on the bottom, too.)   &lt;p&gt;

Send in the seedbots to do the planting.  Seeds and the planting thereof are relatively uniform, so this is a general robot. We may need to bury guide cables underground that will indicate to the robot where the rows will be.  However, optical guides, GPS or other technologies could also be used.  &lt;p&gt;

All of this, btw, is controlled by computer.  It could either be a hulking 1950s-style centralized FARMIVAC thing or an ultra-modern distributed intelligence ant-model thing.  For instance the seedbots detect that it's planting time, the sprinklers detect moisture levels, etc and everything Just Works kind of like a natural ecosystem. &lt;p&gt;

Now is the somewhat harder, more nebulous part of my vision.  Each growing plant species needs different care.  Some might have to be checked for mold, some might need petting or to be sung to or whatever.  And they are all harvested differently. You can just cut down cornstalks but you have to pick apples.  All this variation means different robot types.  That said, this isn't an insoluble problem. &lt;p&gt;

Another option is trained monkeys.   &lt;p&gt;

(I googled around for a bit and found some talk about robot or automated farming, but there didn't seem to be any cohesive vision or big plans.  In all seriousness, it seems like this is a major lack.  Growing food is an absolutely necessary, but peasant-level job.  Until robots do it, peasants will remain.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-6862539514689100523?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/6862539514689100523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/03/theyll-have-nothing-to-lose-but-their.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/6862539514689100523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/6862539514689100523'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/03/theyll-have-nothing-to-lose-but-their.html' title='They&apos;ll Have Nothing To Lose But Their Chaindrives (Invention Idea #5)'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-6980292685434007103</id><published>2009-02-23T09:21:00.005-05:00</published><updated>2009-02-23T09:39:09.154-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wiimote'/><category scheme='http://www.blogger.com/atom/ns#' term='art'/><category scheme='http://www.blogger.com/atom/ns#' term='clay'/><title type='text'>WeeMote</title><content type='html'>This blog is supposedly about all the different stuff I do and yet never once, in my entire N years on the internet, have I ever posted a picture of the little clay things I sometimes make.&lt;p&gt;

&lt;a href="http://picasaweb.google.com/lh/photo/ELjYeZy-xfW-WOZxaXXL5w?authkey=O9doA5FU6ec&amp;feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/__HLRN4QOAxg/SaIAHxu8wxI/AAAAAAAAAPM/3FWyRhxoxrE/s800/100_3875.jpg" /&gt;&lt;/a&gt;&lt;p&gt;

&lt;a href="http://picasaweb.google.com/lh/photo/RpAJJSFhoWiyxSk347W35w?authkey=O9doA5FU6ec&amp;feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/__HLRN4QOAxg/SaH-1fr701I/AAAAAAAAAOo/7v7IiWppCHI/s800/100_3872.jpg" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-6980292685434007103?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/6980292685434007103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/02/weemote.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/6980292685434007103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/6980292685434007103'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/02/weemote.html' title='WeeMote'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/__HLRN4QOAxg/SaIAHxu8wxI/AAAAAAAAAPM/3FWyRhxoxrE/s72-c/100_3875.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-1831322006739698463</id><published>2009-02-18T09:18:00.003-05:00</published><updated>2009-02-18T09:27:43.017-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='drawing'/><category scheme='http://www.blogger.com/atom/ns#' term='blahblahblah'/><title type='text'>Meetings Are My Most Productive Time</title><content type='html'>The projects I'm involved in don't have many meetings.  In fact, we basically have zero.  But some related projects (and by "related" I mean "not at all related, but they share an uber-manager") have a ~45 minute meeting once every two weeks or so and for some reason I'm required to attend despite the fact that none of it ever affects me or needs any input from me. &lt;p&gt; 

Nonetheless, I love these meetings.  Several times over the past several months this has happened:&lt;p&gt;

&lt;ol&gt;
&lt;li&gt;I'm stuck on how to design or build something in the workshop at home.&lt;/li&gt;
&lt;li&gt;I think about it for days or weeks, making no real progress.&lt;/li&gt;
&lt;li&gt;Meeting time rolls around.&lt;/li&gt;
&lt;li&gt;I bring some paper and pencils with me and start drawing even dumb ideas for solving the problem.&lt;/li&gt;
&lt;li&gt;I exit the meeting with a solution on paper.&lt;/li&gt;
&lt;/ol&gt;

I'm not sure which is the more valuable aspect: The enforced "away from the computer" time or the "draw even dumb ideas".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-1831322006739698463?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/1831322006739698463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/02/meetings-are-my-most-productive-time.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1831322006739698463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1831322006739698463'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/02/meetings-are-my-most-productive-time.html' title='Meetings Are My Most Productive Time'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-3302836577051156250</id><published>2009-01-25T11:35:00.005-05:00</published><updated>2009-01-25T12:20:07.281-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='art'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='pencils'/><category scheme='http://www.blogger.com/atom/ns#' term='moleskine'/><category scheme='http://www.blogger.com/atom/ns#' term='drawing'/><category scheme='http://www.blogger.com/atom/ns#' term='christmas'/><title type='text'>I ♥ My Moleskine</title><content type='html'>I asked for &lt;a href="http://www.amazon.com/dp/8883701135/ref=nosim/?tag=112358132134-20"&gt;a "squared" Moleskine&lt;/a&gt; for Xmas because I'd heard such good things about them.  ("Square" means graph paper and "large" means "not pocket sized"--it's only about 8"x5".) I can confirm that it is awesome.   I'm not even sure why it's so awesome.  It's definitely well made--nice binding, good quality paper, pocket in the back, elastic strap and bookmark.  And it's not just that I'm having fun using it, because I was using a regular spiral notebook before and it wasn't this awesome.&lt;p&gt;

I found the perfect pencil case.  It's actually a case for a removable car stereo, but I don't have that car, let alone the stereo, anymore (if I ever did).&lt;p&gt;

&lt;a href="http://picasaweb.google.com/lh/photo/Iq2dKiTHRLRtCDPCuJivKA?authkey=O9doA5FU6ec&amp;feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/__HLRN4QOAxg/SXyYsb-LiHI/AAAAAAAAAM4/2FYvD8y64tw/s400/100_3866.jpg" /&gt;&lt;/a&gt;&lt;p&gt;

Inside are the &lt;a href="http://projectpotpourri.blogspot.com/2008/12/discoveries.html"&gt;pencils&lt;/a&gt; I mentioned once.  Notice that I've got them tagged with tape so I can tell what lead type is in each.  Also, extra lead and a kneaded eraser.&lt;p&gt;

&lt;a href="http://picasaweb.google.com/lh/photo/W5PGukBLZ4cQCvhnrqnXPg?authkey=O9doA5FU6ec&amp;feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/__HLRN4QOAxg/SXyYVdxVxqI/AAAAAAAAAM0/dj4sjgDtmJ8/s400/100_3869.jpg" /&gt;&lt;/a&gt;&lt;p&gt;

And now a couple pics of the Genius At Work.  The page sizes seem to be almost exactly how much room I need to explain an idea and draw an illustration of it.&lt;p&gt;

&lt;a href="http://picasaweb.google.com/lh/photo/3FnVXo_MZ7PTMZmKHw9HLQ?authkey=O9doA5FU6ec&amp;feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/__HLRN4QOAxg/SXyZDse5L6I/AAAAAAAAAM8/_DCmBf85kJI/s400/100_3857.jpg" /&gt;&lt;/a&gt;&lt;p&gt;

&lt;a href="http://picasaweb.google.com/lh/photo/-mRSElQVFGdnYejbqHnz0g?authkey=O9doA5FU6ec&amp;feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/__HLRN4QOAxg/SXyYDdNDr6I/AAAAAAAAAMw/RwvMBlDqVeE/s400/100_3870.jpg" /&gt;&lt;/a&gt;&lt;p&gt;

The only thing that could make this better would be if it were exactly the same as it is now, only it also uploaded an electronic version automatically.  In vector format.  Also, it would be made of ponies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-3302836577051156250?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/3302836577051156250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/01/i-my-moleskine.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/3302836577051156250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/3302836577051156250'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/01/i-my-moleskine.html' title='I &amp;hearts; My Moleskine'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/__HLRN4QOAxg/SXyYsb-LiHI/AAAAAAAAAM4/2FYvD8y64tw/s72-c/100_3866.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-1413097831211735132</id><published>2009-01-21T07:50:00.004-05:00</published><updated>2009-01-21T08:13:32.893-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computers'/><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='invention'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Invention Idea #4?</title><content type='html'>I tried to research whether this has already been invented, but I'm too lazy, too busy and too dumb to be complete.  The fact that I've never heard of this will have to be enough to show that it hasn't been invented &lt;i&gt;well enough&lt;/i&gt;.&lt;p&gt;

The basic idea came from the Wikipedia fundraiser.  Why does Wikipedia need to raise funds?  All the "real" work of creating and editing articles is done for free.  I don't know if their software costs are $0, but they should be.  It's possible they might need to pay for specialized knowledge to set up some configuration files and so forth, but that's about it.  Oh and &lt;b&gt;servers and bandwidth&lt;/b&gt;.&lt;p&gt;

Why are servers still trapped in the "single big centralized cost" world that software development and encyclopedia authorship used to be trapped in?  Why couldn't the articles on Wikipedia be distributed across the world?  It would be kind of like BitTorrent, but for small files and in real time.  Another example, which is perhaps close enough to not even be an analogy anymore, is &lt;a href="http://en.wikipedia.org/wiki/Freenet"&gt;FreeNet&lt;/a&gt;:&lt;p&gt;

&lt;blockquote&gt;Freenet works by pooling the contributed bandwidth and storage space of member computers to allow users to anonymously publish or retrieve various kinds of information. It can be thought of as a large storage device which uses key based routing similar to a distributed hash table to locate peers' data. When a file is stored in Freenet, a key which can be used to retrieve the file is generated. The storage space is distributed among all connected nodes on Freenet.&lt;/blockquote&gt;&lt;p&gt;

If Wikipedia were on FreeNet and my browser knew how to get there, wouldn't Wikipedia have zero server costs?  The problem of bandwidth still exists, though.  Most articles are rarely accessed, but some articles are accessed a lot even if for short periods of time.  For instance, I bet the Inauguration 2009 page was reloaded a few times yesterday.  Whoever's computer happens to have that article will get hammered.  (Also, traffic analysis would reveal that they were hosting that article, which would be a problem for free-speechy issues.  Probably FreeNet has already thought of this and has a solution?)&lt;p&gt;

However, I think even this problem could be overcome with some redundancy and distribution.  Put that page on multiple machines and everyone accesses different ones.  Of course you have editing race conditions that way, but I dismiss those with a wave of my hand (while not volunteering to solve them).&lt;p&gt;

(Reading farther down the FreeNet page I see there are IRC-like and forum "APIs" for using FreeNet as a network in this way, so I'm probably behind the times with my invention idea.  However, it looks like they are mainly using it as an anonymous way to share porn whereas I'm interested in saving money by distributing cost.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-1413097831211735132?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/1413097831211735132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/01/invention-idea-4.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1413097831211735132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1413097831211735132'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/01/invention-idea-4.html' title='Invention Idea #4?'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-5808653612349100459</id><published>2009-01-15T09:45:00.002-05:00</published><updated>2009-01-15T09:56:28.530-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='math'/><title type='text'>Quickie</title><content type='html'>I got a &lt;a href="http://www.amazon.com/dp/188455038X/ref=nosim/?tag=112358132134-20"&gt;Math-Problem-a-Day Calendar&lt;/a&gt; for Christmas.  It's kind of a disappointment because the answer to each problem is the number of that day and a lot of these are barely even math problems, such as 2&lt;sup&gt;0&lt;/sup&gt;+0*sqrt(9).  &lt;p&gt;

That said, it is definitely possible to have good math problems where you know the final answer but the puzzle is how to get there.  Yesterday's, which I just finally solved today, is a good example.&lt;p&gt;

2.8 + 2.24 + 1.792 + 1.4336 + 1.14688 + 0.917504 + ...&lt;p&gt;

The sum is yesterday's date, 14.  But I couldn't figure out what this series was until someone (who happens to have this same calendar, btw) stopped by my office and mentioned &lt;a href="http://en.wikipedia.org/wiki/Ramanujan"&gt;Ramanujan&lt;/a&gt;.  That got us talking about continued fractions (i.e. "I don't get continued fractions." "Me neither.").  Which is all the hint I'm going to give for now...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-5808653612349100459?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/5808653612349100459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/01/quickie.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5808653612349100459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5808653612349100459'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/01/quickie.html' title='Quickie'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-1505727767163127001</id><published>2009-01-06T09:00:00.006-05:00</published><updated>2009-01-06T09:44:11.184-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='lego'/><category scheme='http://www.blogger.com/atom/ns#' term='babbage'/><category scheme='http://www.blogger.com/atom/ns#' term='drawing'/><category scheme='http://www.blogger.com/atom/ns#' term='moleskine'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><category scheme='http://www.blogger.com/atom/ns#' term='construction'/><category scheme='http://www.blogger.com/atom/ns#' term='diet'/><category scheme='http://www.blogger.com/atom/ns#' term='stirling'/><category scheme='http://www.blogger.com/atom/ns#' term='binary'/><category scheme='http://www.blogger.com/atom/ns#' term='clock'/><category scheme='http://www.blogger.com/atom/ns#' term='linkage'/><category scheme='http://www.blogger.com/atom/ns#' term='parts'/><title type='text'>Incremental Backup</title><content type='html'>&lt;ul&gt;

&lt;li&gt;So far, I've lost about 55 lbs.  That's 4 or 5 pant sizes, I think, plus now my winter coat doesn't fit anymore.  Naturally my workplace has NOW decided to have a Biggest Loser contest.  I could have won one of these fabulous prizes!  I'm almost tempted to regain it all so I can lose it for the free iPhone.  (Actual prize may vary.)&lt;/li&gt;&lt;br&gt;

&lt;li&gt;The PVC piston idea doesn't work.  Or rather, it works really well, but not for high temperatures.  Maybe a water pumping thing might work, but otherwise it just gets gummed up with melty yuck.  Also using insulation for the displacer is contraindicated as a &lt;b&gt;fire hazard&lt;/b&gt;.  /turns off smoke alarm.  Needless to say, the engine was unsalvageable.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;Because of the above, I'm starting a new engine.  For various reasons, probably all stupid, I'm thinking of going &lt;a href="http://en.wikipedia.org/wiki/File:BetaStirlingTG4web.jpg"&gt;rhombic&lt;/a&gt;.  I sat down the other day to quickly figure out the stroke length given stuff like the gear diameter.  Just an easy little geometry problem &lt;a href="http://mac6.ma.psu.edu/stirling/drives/index.html"&gt;until my face imploded&lt;/a&gt;.  Also, finding cots (commercial/off-the-shelf) hardware that can be used for a medium-sized Stirling is non-trivial.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;&lt;a href="http://www.xtranormal.com"&gt;This cool thing&lt;/a&gt; is in free beta.  I hope that doesn't mean they are going to charge for it later, because then we won't have future classics like &lt;a href="http://www.xtranormal.com/watch?e=20090106085540859"&gt;Two Regular Guys&lt;/a&gt;.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;I got a Moleskine "square" (i.e. graph) paper notebook for Christmas.  Coupled with my mechanical drawing pencils, it is really awesome.  I should post some pics of what I've been doing with it.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;Read &lt;a href="http://www.amazon.com/dp/0465007805/ref=nosim/?tag=112358132134-20"&gt;Clock of the Long Now&lt;/a&gt;.  It was very interesting and enlightening and life-changing and so forth, but they left out sufficient detail for my geekiness: Details on the mechanism.  It's a single-function, mechanical, binary computer.  Like &lt;a href="http://projectpotpourri.blogspot.com/2007/08/difference-engineering.html"&gt;the Difference Engine&lt;/a&gt; only in binary.  Should be a snap to implement in Lego.  I even started designing it but I just don't have enough time to do more than that.&lt;/li&gt;

&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-1505727767163127001?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/1505727767163127001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2009/01/incremental-backup.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1505727767163127001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1505727767163127001'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2009/01/incremental-backup.html' title='Incremental Backup'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-1020971624159829347</id><published>2008-12-11T12:50:00.003-05:00</published><updated>2008-12-11T13:16:34.430-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mechanics'/><category scheme='http://www.blogger.com/atom/ns#' term='embryology'/><category scheme='http://www.blogger.com/atom/ns#' term='structure'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='evolution'/><category scheme='http://www.blogger.com/atom/ns#' term='genetic'/><category scheme='http://www.blogger.com/atom/ns#' term='construction'/><category scheme='http://www.blogger.com/atom/ns#' term='blahblahblah'/><title type='text'>How Do You SolveRepresent A Problem Like Mariaechanics?</title><content type='html'>First, &lt;a href="http://www.wreck.devisland.net/ga/"&gt;this&lt;/a&gt;.  (&lt;a href="http://www.reddit.com/r/programming/comments/7i22c/genetic_programming_evolution_of_mona_lisa/"&gt;Explanation&lt;/a&gt;)&lt;p&gt;

It would be cool to make something like that, but more general.  A wider scope of problems, more construction elements, more universal attachments, etc.&lt;p&gt;

The standard method of genetic programming is to represent your algorithm/whatever as a tree.  The leaves are data and the nodes are operations that the "universe" supports.  Then two parents producing a child via "sex" is just trading subbranches.  Mutation is random changes.  &lt;p&gt;

That works for a linear sequence of steps because there's a standard way to traverse a tree.  The question is, how do you represent a machine in a tree?  It's (usually) not a linear thing.  &lt;p&gt;

Take a wheel and a stick.  They are two leaves, I guess.  The node is the operator "attach"?  But where?  I need to know where on the stick AND where on the wheel.  And if the connection is rigid, floppy, powered or what.  Where is all that knowledge stored?  How can I "break out" each of those things to allow them to mutate separately?   Also, you can't have a whole-organism coordinate system, for instance, because a single mutation messes it all up.  &lt;p&gt;

Another idea is to use an algorithm to build the machine and represent the algorithm as a tree.  But what's the advantage of that?  I didn't realize until this morning: This is exactly what embryology is.  A machine isn't a linear object, but &lt;i&gt;constructing&lt;/i&gt; a machine is a linear &lt;i&gt;process&lt;/i&gt;.&lt;p&gt;

So to attach a wheel and a stick, I'd have an embryology something like this:&lt;p&gt;

1) Place stick&lt;br&gt;
2) Locate end of stick&lt;br&gt;
3) Locate center of wheel&lt;br&gt;
4) Attach&lt;p&gt;

Or maybe:&lt;p&gt;

1) Place stick&lt;br&gt;
2) Advertises marker at X&lt;br&gt;
3) Locate marker&lt;br&gt;
4) Locate center of wheel&lt;br&gt;
5) Attach&lt;p&gt;

The marker system would be key. If there's more than one stick in the structure, "locate end of stick" is ambiguous.  Whereas if the stick knows that it is, say, the left shin, it can hang out cards saying "I'M THE LEFT SHIN" and "HERE IS MY LOWER EXTREMITY" and the wheel can look for that.  &lt;p&gt;

Could one of my graduate students get on this and give me credit so I become rich and famous but don't have to stop the N projects I'm working on to get it done?  Kthx!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-1020971624159829347?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/1020971624159829347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/12/how-do-you-solve-represent-problem-like.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1020971624159829347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1020971624159829347'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/12/how-do-you-solve-represent-problem-like.html' title='How Do You &lt;strike&gt;Solve&lt;/strike&gt;Represent A Problem Like M&lt;strike&gt;aria&lt;/strike&gt;echanics?'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-4195708626822246146</id><published>2008-12-08T11:16:00.006-05:00</published><updated>2008-12-08T11:26:24.889-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computers'/><category scheme='http://www.blogger.com/atom/ns#' term='invention'/><category scheme='http://www.blogger.com/atom/ns#' term='story'/><category scheme='http://www.blogger.com/atom/ns#' term='simulation'/><category scheme='http://www.blogger.com/atom/ns#' term='evolution'/><category scheme='http://www.blogger.com/atom/ns#' term='genetic'/><title type='text'>Invention Idea #3/Story Idea #1</title><content type='html'>It's the future.  Computers are unimaginably fast.  Like, 8th generation Pentium fast!  We want to recreate an historical figure, let's say da Vinci.  All we have are the collected works.&lt;p&gt;

Step 1: Recreate da Vinci's environment as closely as possible as a computer simulation.&lt;br&gt;
Step 2: Assign a good guess as to what da Vinci's genes would have been.&lt;br&gt;
Step 3: Simulate his life.&lt;br&gt;
Step 4: Compare the output of his simulated life with his real output.&lt;br&gt;
Step 5: Mutate the DNA, keeping any improvements.&lt;br&gt;
Step 6: Until simulation is "close enough", goto 3.&lt;br&gt;
Step 7: Instantiate DNA as a real human.&lt;p&gt;

If the environment were perfect, we could get arbitrarily close to the real da Vinci.  And if we had even faster computers, we could get arbitrarily close to a perfect simulation of the environment (which I leave as an exercise for the reader).&lt;p&gt;

I'm going to waive the ethical considerations of steps 3 and 7 in favor of linking &lt;a href="http://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mona-lisa/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-4195708626822246146?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/4195708626822246146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/12/invention-idea-3story-idea-1.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4195708626822246146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4195708626822246146'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/12/invention-idea-3story-idea-1.html' title='Invention Idea #3/Story Idea #1'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-7607762418332331722</id><published>2008-12-03T11:00:00.001-05:00</published><updated>2008-12-03T11:04:45.100-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='art'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='piston'/><category scheme='http://www.blogger.com/atom/ns#' term='stirling'/><category scheme='http://www.blogger.com/atom/ns#' term='pencils'/><category scheme='http://www.blogger.com/atom/ns#' term='drawing'/><category scheme='http://www.blogger.com/atom/ns#' term='construction'/><category scheme='http://www.blogger.com/atom/ns#' term='blahblahblah'/><title type='text'>Discoveries</title><content type='html'>&lt;ul style="list-style-type: circle"&gt;

&lt;li&gt;The biggest difficulty in making something like a Stirling engine &lt;a href="http://projectpotpourri.blogspot.com/2008/10/school-tools-toolibrary.html"&gt;without access to a machine shop&lt;/a&gt; is how to make the power piston.  The piston has to be precisely sized to fit inside the cylinder.  However, via a YouTube video, I have discovered that it is possible to use a pair of PVC pipes to get the same effect.  I made one and under breath power it worked so well it nearly knocked my teeth out.  I haven't done any real testing yet, so I don't have all the construction details worked out, but basically you just get two sizes that differ by 1/4" and sand down the smaller until it fits in the larger.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;The way I'm going to test the piston is to build another Stirling.  Need a bigger displacement chamber for a piston this big.  Should be metal, not too thick-walled, largish, easy to make air-tight.  A paint can would be perfect, except you don't want to combined leftover fumes and high heat.  Turns out Lowe's sells empty paint cans!  Quart- and pint-sized.  That means you can even remove the lid to work on the innards and then reseal it.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;What with one thing and another, the flywheel on the new engine has to be mounted differently.  I need a whole crankshaft dealie (which is something else it would be easier to make with a machine shop).  Once I realized this, I realized I'd also need some kind of bearing.  Idly reading something completely unrelated, I came across a mention of "skate bearings".  I was thinking inline skates, but skateboards have the same thing.  They are only like $1 each!  And I even had an unused skateboard at home, from which I harvested &lt;b&gt;8&lt;/b&gt; of them.  ID ~8mm, OD ~22mm.  Cute as a bug's bearing.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;I've had these drawing pencils for a while now.  The leads are 2H, HB, 2B and then some high B one, I dunno what.  The problem is you have to keep sharpening them like every 15 minutes.  The other day I realized this is already a solved problem: mechanical pencils.  The only question was, do they sell mechanical pencil leads in hardnesses other than HB?  Answer: Yes.  So now I have 3 mechanical pencils, each with a different lead.  Makes drawing so much less of a hassle.  Can't shade with the side of the lead, of course, but I never did that anyway.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;I'm not going to meet my Xmas diet goal.  Scale is still going down, but too slowly to make it in time.  Maybe I should aim for the secondary goal (an additional 10 lbs) at the 2 year mark (March?).&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-7607762418332331722?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/7607762418332331722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/12/discoveries.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7607762418332331722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7607762418332331722'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/12/discoveries.html' title='Discoveries'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-4873301545131971246</id><published>2008-12-01T10:46:00.004-05:00</published><updated>2008-12-01T10:56:25.033-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='metabolism'/><category scheme='http://www.blogger.com/atom/ns#' term='diet'/><category scheme='http://www.blogger.com/atom/ns#' term='invention'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><category scheme='http://www.blogger.com/atom/ns#' term='light'/><category scheme='http://www.blogger.com/atom/ns#' term='food'/><title type='text'>Invention Idea #2</title><content type='html'>&lt;blockquote&gt;&lt;a href="http://www.psychologistworld.com/perception/color.php"&gt;Red increases the pulse and heart rate, and raises your blood pressure. It increases the appetite by increasing your metabolism, which is why red is such a popular color in restaurants.&lt;/a&gt;&lt;/blockquote&gt;

("&lt;a href="http://www.google.com/search?hl=en&amp;q=color+red+metabolism&amp;btnG=Google+Search&amp;aq=f&amp;oq="&gt;color red metabolism&lt;/a&gt;" gets hits mainly for &lt;i&gt;People Magazine&lt;/i&gt;-level science info, so I don't know how well-established or bunked this is.)&lt;p&gt;

The office across the hall from me just got "natural sunshine" fluorescent bulbs put in.  They are much whiter than the regular bulbs, which are reddish-orange.  It is causing me to wonder what effect constant immersion in red light is having on office workers.  Obesity?  Or is the above effect only a differential one?  Has this even been studied?&lt;p&gt;

Anyway, my invention: blue-tinted "diet" sunglasses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-4873301545131971246?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/4873301545131971246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/12/invention-idea-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4873301545131971246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4873301545131971246'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/12/invention-idea-2.html' title='Invention Idea #2'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-6854269531693217111</id><published>2008-11-20T08:18:00.003-05:00</published><updated>2008-11-20T08:38:10.924-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bacteria'/><category scheme='http://www.blogger.com/atom/ns#' term='germs'/><category scheme='http://www.blogger.com/atom/ns#' term='invention'/><category scheme='http://www.blogger.com/atom/ns#' term='ultrasound'/><category scheme='http://www.blogger.com/atom/ns#' term='hygiene'/><title type='text'>Invention Idea #1</title><content type='html'>My kids go to school and (probably) never wash their hands.  I imagine 90% of the colds I get started their path to my nose on some doorknob there.  How can we sterilize children more effectively?&lt;p&gt;

I thought about blasting them with ultraviolet, but that leaves them leathery and tough.  Good for character but hard to chew.  How about just blasting doorknobs (and the like) with UV?  How would you mount such a light to reach all the crevices?  Well, you could make the knob out of glass and mount the light inside.&lt;p&gt;

But it turns out you need a minutes-long exposure to kill bacteria with UV.  And glass blocks it anyway.  And even if it didn't, it would still be shining out into the room and eyes of students.  &lt;p&gt;

However, I just recently came up with another solution: Ultra&lt;i&gt;sound&lt;/i&gt;.  So a kid grabs a knob and leaves germs behind.  He lets go.  A sensor notes this and gives a brief blast of ultrasound, dismembering any organics.  The next kid grabs and she doesn't pick up the nasties.&lt;p&gt;

&lt;a href="http://www.phschool.com/science/science_news/articles/deadly_bubble_bath.html"&gt;Google says&lt;/a&gt; this works, but talks about being immersed in liquid.  Maybe that can be worked around.  Or a gel coating on the knob.  Or fill the school with water and equip the kids with scuba gear.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-6854269531693217111?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/6854269531693217111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/11/invention-idea-1.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/6854269531693217111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/6854269531693217111'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/11/invention-idea-1.html' title='Invention Idea #1'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-7680645737300755514</id><published>2008-11-17T20:00:00.001-05:00</published><updated>2008-11-17T20:06:39.526-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><category scheme='http://www.blogger.com/atom/ns#' term='magicsmoke'/><title type='text'>Magic Smoke and Mirrors</title><content type='html'>The task is very simple.  I have a solar tracker.  I have a microcontroller that knows what direction the tracker should be pointing.  I have a cordless drill that I've taken apart to do the actual work.  So why is it taking me WEEKS AND WEEKS to get this working?  I can't even turn the drill on yet, at least not without threat of releasing the &lt;a href="http://en.wikipedia.org/wiki/Magic_smoke"&gt;magic smoke&lt;/a&gt;.&lt;p&gt;

It should be extremely simple.  Here is how a drill works.&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__HLRN4QOAxg/SSISZkZE3vI/AAAAAAAAALE/SzpBv5QpV9g/s1600-h/drills_naive_small.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/__HLRN4QOAxg/SSISZkZE3vI/AAAAAAAAALE/SzpBv5QpV9g/s320/drills_naive_small.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5269794744451784434" /&gt;&lt;/a&gt;


OK, so it should be easy to just replace the human-operated switch with a microcontroller-operated one.&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__HLRN4QOAxg/SSISmtRDxNI/AAAAAAAAALM/HkEwxt3wHEY/s1600-h/drill_arduino_small.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/__HLRN4QOAxg/SSISmtRDxNI/AAAAAAAAALM/HkEwxt3wHEY/s320/drill_arduino_small.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5269794970172376274" /&gt;&lt;/a&gt;

The microcontroller replaces the human and relay replaces the switch.  It's a high-amp relay because on the very first magic smoke release test I found that the drill draws &lt;b&gt;20 amps&lt;/b&gt; (or more!).  It's also a 15V battery, so I managed to remember the resistance of the motor as being .7 ohms which makes the V=IR math work out.  &lt;p&gt;

However, when I almost melted my entire apparatus on the second test I realized that the motor is only about .1 ohms.  How on earth can I be feeding 15V to .1 ohms and only drawing 20 amps?  Including a current-limiting resistor doesn't improve things much, since it just wastes a bunch of power getting really, really hot.  After a little thought, I decided to actually look at the drill switch.  I can't get it open, but I was able to confirm this much:&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__HLRN4QOAxg/SSISzDfoyMI/AAAAAAAAALU/1UASzFnzqQo/s1600-h/drills_reality_small.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/__HLRN4QOAxg/SSISzDfoyMI/AAAAAAAAALU/1UASzFnzqQo/s320/drills_reality_small.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5269795182297532610" /&gt;&lt;/a&gt;

I don't know how, but that magic box is somehow limiting the current.  One thing I can see in there is a transistor, which could definitely do the job....except it would have to be awfully high power to handle 20 amps.  Or maybe it isn't?  Maybe the 20 was transient and it normally feeds more like 2-3 amps?  No idea.  Which leads me to think maybe I need to give up and do something like this:&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__HLRN4QOAxg/SSIS6Z4Fk4I/AAAAAAAAALc/aH7WOL861eY/s1600-h/drill_arduino2_small.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/__HLRN4QOAxg/SSIS6Z4Fk4I/AAAAAAAAALc/aH7WOL861eY/s320/drill_arduino2_small.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5269795308564747138" /&gt;&lt;/a&gt;


Which is stupid.  If I knew how it worked, I could probably hook the microcontroller directly to the magic box and forego all my rubegoldbergian relay stuff (which should be a post on it's own...).  It's also annoying that I know this can't be an unsolved problem.  But I must not be thinking of the right keywords to find the solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-7680645737300755514?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/7680645737300755514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/11/task-is-very-simple.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7680645737300755514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7680645737300755514'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/11/task-is-very-simple.html' title='Magic Smoke and Mirrors'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/__HLRN4QOAxg/SSISZkZE3vI/AAAAAAAAALE/SzpBv5QpV9g/s72-c/drills_naive_small.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-1613194629436065270</id><published>2008-10-17T08:00:00.004-04:00</published><updated>2008-10-17T08:03:54.478-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mit'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='techshop'/><category scheme='http://www.blogger.com/atom/ns#' term='school'/><category scheme='http://www.blogger.com/atom/ns#' term='hobbyshop'/><category scheme='http://www.blogger.com/atom/ns#' term='blahblahblah'/><title type='text'>"School Tools"?  "TooLibrary"?</title><content type='html'>&lt;b&gt;Statement of Problem&lt;/b&gt;&lt;p&gt;

I don't have the tools I want.  Nobody I know has the tools I want.  I don't have the money to buy the tools I want.  And even if I did have the money, I don't have space for the tools I want.  (The tools I'm thinking of are machine tools, such as a lathe, milling machine, etc.  But it could also apply to automotive, woodworking, electronics and other things.)&lt;p&gt;

&lt;b&gt;Proposed Solution&lt;/b&gt;&lt;p&gt;

I know I've seen at least a couple of businesses on this concept, but I can only find one now: &lt;a href="http://techshop.ws/"&gt;TechShop&lt;/a&gt;.  It's like an gym, but for tools.  You pay a membership fee and you can go use their space, stuff and expertise.  (For a more non-profitish take, there's also the &lt;a href="http://hobbyshop.mit.edu/"&gt;MIT Hobbyshop&lt;/a&gt;.)&lt;p&gt;

Of course, one could argue that if you are paying even as low as a mere $20/month (TechShop's actual lowest price is $100/month), you'd eventually be paying more than if you bought the equipment yourself.  However, you still gain these advantages:

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;lower startup cost&lt;/b&gt; - Instead of having to save up $N to buy the next tool, I immediately have access to all of them after the first membership fee.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;access to specialty tools&lt;/b&gt; - It would probably be pretty rare for me to need 5 axis CNC milling machine.  But when that's the only thing that will work, it would be nice to have it.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;access to experts/help&lt;/b&gt; - This is either someone that works at the shop and gives classes or just the other users.  Synergy, people.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;space&lt;/b&gt; - Unless I start throwing out family heirlooms, I'm not fitting more than one more power tool in the workshop.&lt;/li&gt;
&lt;/ul&gt;

However: &lt;b&gt;Statement of New Problem&lt;/b&gt;&lt;p&gt;

Places like TechShop tend to be in locations of high population concentration, particularly of a high-tech nature.  The Bay Area.  Research Triangle Park.  And even at that there still isn't (or going to be) one in Boston.  Plus $100/month is pretty expensive.  The MIT Hobbyshop is only available to MIT students, faculty and staff.  Other restrictions apply, void where prohibited.&lt;p&gt;

&lt;b&gt;Proposed New Solution&lt;/b&gt;&lt;p&gt;

Almost every town, no matter how tiny, already has a high school with a shop.  Some of them also have area vo-tech type schools.  This is space that is already set up to

&lt;ol&gt;
&lt;li&gt;teach&lt;/li&gt;
&lt;li&gt;a large group&lt;/li&gt;
&lt;li&gt;of complete n00bs&lt;/li&gt;
&lt;li&gt;to get immediate results&lt;/li&gt;
&lt;/ol&gt;

That's perfect, right?  &lt;p&gt;

Of course, you can't go during the school day.  But nights, weekends and summers are plenty.  This is especially true if you imagine where you might be storing your half-completed project.  If it's something big, you might store it at the shop and then you are locked out when they are closed.  But if it's small, you can work on it at home with what you have, then bring it to the shop during open hours.  (Other hours possibilities would be just weekends, twice a week, etc.)&lt;p&gt;

Another potential issue is whether insurance restrictions or byzantine school regulations would prohibit this.  Apparently not, at least in my state.  I thought of this idea when I saw the courses offered at my local high school.  No shop classes, but according to the coordinator they have done so in the past.  These are 8 one-evening-a-week sessions, generally.  So you'd really need to just need to extend the class "indefinitely" and done.  (I don't know how the instructors for these classes are chosen and/or paid.  Maybe they are volunteers?  Maybe they get some portion of the proceeds?)&lt;p&gt;

Then we come to the little matter of the bill.  How much would this cost?  Here's where I think this plan could really work.  The tools, space and (some of) the personnel are already paid for!  It's part of the school district funding.  The venture doesn't have to pay for the entire cost of everything, only for the marginal cost of expanding the hours.  That marginal cost isn't zero, but neither would the membership fee.  &lt;p&gt;

Just throwing random numbers around: Shop classrooms are typically set up for about 10 students at a time, so let's call that a max nightly number.  Let's also say the place is open twice a week and every member wants to attend on average twice a month.  That's 8-9 open nights per month or 80-90 person-nights.  So the entire membership could be 40-45.  That also seems like a reasonable number of interested people living within a radius of a given high school.  If each one is paying $20/month, that's around $10k/yr.  Not a huge amount of income for the school, but perhaps enough to pay for itself?  Some of the 8 week classes are listed at $100, so maybe $50/month is more reasonable.&lt;p&gt;

Of course, I would be remiss in mentioning only the financial side.  For instance, book libraries were not actually started purely as a cost-cutting measure, although they serve that function.  They were started as an educational measure.  Even if I'm well-educated myself, it makes sense for me (in terms of enlightened self-interest) to pay for the education of others.  That's because the society I'm in will be better overall, including near me, if everyone else is smarter. If you consider knowledge a mental tool, then my idea is simply an extension of this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-1613194629436065270?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/1613194629436065270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/10/school-tools-toolibrary.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1613194629436065270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1613194629436065270'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/10/school-tools-toolibrary.html' title='&quot;School Tools&quot;?  &quot;TooLibrary&quot;?'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-4320496604123154643</id><published>2008-10-10T09:10:00.002-04:00</published><updated>2008-10-10T09:13:40.162-04:00</updated><title type='text'>Go Is A Game Of One Network</title><content type='html'>&lt;a href="http://procrastineering.blogspot.com/2008/10/andy-wilson.html"&gt;Both videos are amazing&lt;/a&gt; but imagine a gaming server using the technology from the second one (chess is demo'd at the end).  Go stones would cast even less shadow than the chess pieces do.  The only problem is that projectors aren't household technology.  Although maybe you could use an LCD screen laid flat as your board?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-4320496604123154643?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/4320496604123154643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/10/go-is-game-of-one-network.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4320496604123154643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4320496604123154643'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/10/go-is-game-of-one-network.html' title='Go Is A Game Of One Network'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-7140736381481244517</id><published>2008-10-09T12:01:00.003-04:00</published><updated>2008-10-09T12:01:59.134-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='diet'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='youtube'/><category scheme='http://www.blogger.com/atom/ns#' term='blahblahblah'/><category scheme='http://www.blogger.com/atom/ns#' term='anathem'/><title type='text'>Apert</title><content type='html'>&lt;ul&gt;
&lt;li&gt;I've been working on various projects but none of them is to the point of being documentable.  But I feel like I should update my blog so it doesn't look like I'm dead.  So...here I am.  I'm a Montharian.  (For explanation of this and the post title, see next item)&lt;/li&gt;&lt;br&gt;

&lt;li&gt;I'm "reading" &lt;a href="http://www.amazon.com/dp/0061474096/ref=nosim/?tag=112358132134-20"&gt;&lt;i&gt;Anathem&lt;/i&gt;&lt;/a&gt; and it's really great so far.  I "read" &lt;i&gt;The Name of the Rose&lt;/i&gt; a few months ago and had the idea of scientific monastics then, so I'm a little cheesed off that Stephenson beat me to the punch (not that I was going to write a book, but now I can't talk about how cool it would be without sounding like a fanboi).  I've seen &lt;a href="http://xkcd.com/483/"&gt;some complaints&lt;/a&gt; about the made-up words, but I don't think that's really fair.  For one thing, a lot of the words like "&lt;a href="http://en.wikipedia.org/wiki/Fra"&gt;fraa&lt;/a&gt;" and "&lt;a href="http://en.wikipedia.org/wiki/Reticule"&gt;reticule&lt;/a&gt;" aren't made up, they are just less common.  For another, shut up.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;Is it just me, or is the YouTube subscription system completely broken?  My concept of that list on the front page is that they are supposed to be new, unwatched videos from my subscription list.  Instead, they seem to show a random selection of new videos from my subscription list, watched or unwatched, and only one from each subscription.  So if, say, New Scientist puts out 3 videos in between visits, I only see the latest one.  Why isn't it more like an RSS feed?  Or maybe I should use an RSS feed for it?&lt;/li&gt;&lt;br&gt;

&lt;li&gt;Weight loss is still on track to reach my goal by Christmas.  I'm such a dork I even wrote a program to calculate some stats, including what day my current trend will have me finishing at.  12/24/2008 so far.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;One of the projects I'm not ready to post about yet involves some electronics running outside.  I wasn't comfortable having it plugged in, so I went with a large, rechargeable battery.  After getting everything working, I realized
&lt;ol&gt;
&lt;li&gt;The motors weren't powerful enough&lt;/li&gt;
&lt;li&gt;but they were still drawing too much power to allow the battery to last very long&lt;/li&gt;
&lt;li&gt;and I bet the battery won't work well in the cold&lt;/li&gt;
&lt;/ol&gt;

Sooo....yeah.  Back to the drawing board for at least part of that.
&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-7140736381481244517?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/7140736381481244517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/10/apert.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7140736381481244517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7140736381481244517'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/10/apert.html' title='Apert'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-5761791954538185892</id><published>2008-09-16T07:33:00.004-04:00</published><updated>2008-09-16T07:56:10.901-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='diet'/><category scheme='http://www.blogger.com/atom/ns#' term='guacamole'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='children'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><category scheme='http://www.blogger.com/atom/ns#' term='blahblahblah'/><title type='text'>Wooo</title><content type='html'>&lt;ul&gt;

&lt;li&gt;I cracked 50 lb of weight loss today.  I'm still on track (&amp;plusmn;&amp;epsilon;) to reach my original goal by Christmas.  It also happens to be, as of yesterday, 10 lbs in 100 days, or almost exactly 350 calories/day.&lt;/li&gt;&lt;p&gt;

&lt;li&gt;Pursuant to that, I have made a breakthrough in food reduction technology.  One of my favorite meals is...undocumented on this site?!  WHAT.  Anyway, it involves guacamole.  The problem I've had is that I need to make enough to use up an entire avocado, which now that my metamabolism needs fewer calories is a little too much.  Avocado turns brown if you look at it funny, so I can't put the excess in the fridge.  I also can't throw it away because of the starving children in Africa.  However, it turns out to freeze just fine.  So now I can make M/Nths of a recipe which not only vastly reduces the hit points but also means I only use M avocados every N days.
&lt;/li&gt;&lt;p&gt;

&lt;li&gt;I'm trying to embed a microcontroller into a project that I'll describe more later.  All I know is Arduino, so I'm going with that.  (I guess I could just use the Atmega chip or however that works, but baby steps, people.)  The basic Arduino is a little unwieldy for this, but last night I finished soldering and testing the &lt;a href="http://moderndevice.com/RBBB_revB.shtml"&gt;Really Bare Bones Board&lt;/a&gt;.  And besides being much smaller and breadboard-compatible, it's also much cheaper because it pushes some of the cost of the unit into a one-time-purchase cable.&lt;/li&gt;&lt;p&gt;

&lt;li&gt;Number One Son, age 9, is trollering me.  He just found out about HTML and has made a couple of pages.  (With random size changes and font colors, naturally.)  He keeps calling the .html file a "program".  &lt;/li&gt;

&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-5761791954538185892?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/5761791954538185892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/09/wooo.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5761791954538185892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5761791954538185892'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/09/wooo.html' title='Wooo'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-1583924032289085747</id><published>2008-09-10T09:00:00.004-04:00</published><updated>2008-09-10T09:54:34.934-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computers'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='jokes'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><category scheme='http://www.blogger.com/atom/ns#' term='blahblahblah'/><title type='text'>New Control Structure Considered Useful</title><content type='html'>We have a large data processing problem at work.  Basically, we get thousands of items every day and have to figure out which ones go together.  The only way to know if they go together is to try them.  Some items may not go with anything, some may fit with a hundred or more other items.  The one nice thing is that once we've found 3-5 items that go together, we can zip through all the other members of the group.&lt;p&gt;

The problem is finding those 3-5 items.  Choosing every possible combination of 5 would take too long.  Choosing every combination of 3 is fast enough, but leaves a lot of extras.  The simple solution is to first try all the combos of 3, then try all the combos of 4 on the remainder, then try all the combos of 5 on the remainder of that.  The smaller and smaller pile makes the larger and larger choices feasible.&lt;p&gt;

My boss, who is a competent practical programmer, suggests we have 3 procedures: One that does a 3 nested loop, one that does a 4, and one that does a 5.  Like this (in Tcl):&lt;p&gt;

&lt;pre&gt;
set items {apple orange banana grape strawberry}
set count 5

for {set i 0} {$i &lt; $count} {incr i} {
    for {set j [expr $i + 1]} {$j &lt; $count} {incr j} {
       for {set k [expr $j + 1]} {$k &lt; $count} {incr k} {
         set string [lindex $items $i]
         lappend string [lindex $items $j]
         lappend string [lindex $items $k]
         puts $string
       }
    }
}
&lt;/pre&gt;&lt;p&gt;

That's just the 3 level loop because the other two look almost the same.  The 4 and 5 level loops are identical except for having additional levels.  As a programmer who values elegance over readability, the phrase "identical except for" is a red flag.  Why have 3 separate procedures when all you are adjusting is a single parameter?  What I need is a new control structure that is basically a &lt;tt&gt;for&lt;/tt&gt; loop but lets me control how many nested &lt;tt&gt;for&lt;/tt&gt;s there are.&lt;p&gt;

Tcl makes it easy to create new control structures.  Here's the control structure definition:&lt;p&gt;

&lt;pre&gt;
# Usage:
#  indexcount - how many items are being chosen
#  itemcount  - how many items are being chosen from
#  indexvar   - variable to hold current combination of indexes
#  body       - code to execute for each combination
proc chooseloop {indexcount itemcount indexvar body} {

    if {$indexcount &gt; $itemcount} { 
      error "More indexes than items"
    }

    if {$indexcount == 0} { return }

    set indexes {}
    for {set i 0} {$i &lt; $indexcount} {incr i} {
       lappend indexes $i
    }

    set maxindexval [expr $itemcount - 1]

    while {1} {
 
       # make new body that sets indexvar first
       set newbody "set $indexvar {$indexes}\n$body"

       # do this iteration
       uplevel 1 [list eval $newbody]

       # find incrementable index
       set found no
       for {set i 0} {$i &lt; $indexcount} {incr i} {
          set index [lindex $indexes end-$i]
          set thismax [expr $maxindexval - $i]
          if {$index &lt; $thismax} {
             set found yes
             break
          }
       }

       if {!$found} { break }

       # increment this index and set all following ones
       set incrindex [expr ($indexcount - 1) - $i]
       set precedingval [lindex $indexes $incrindex]
       for {set j $incrindex} {$j &lt; $indexcount} {incr j} {
          lset indexes $j [expr $precedingval + 1]
          set precedingval [lindex $indexes $j]
       }
    }
}
&lt;/pre&gt;&lt;p&gt;

Now to get my 3 level loop, I can call like this:&lt;p&gt;

&lt;pre&gt;
chooseloop 3 5 indexes {
    set str ""
    foreach index $indexes {
       append str "[lindex $items $index] "
    }
    puts $str
}&lt;/pre&gt;&lt;p&gt;

In order to do 3, then 4, then 5, I can call like this:&lt;p&gt;

&lt;pre&gt;
for {set i 3} {$i &lt; 6} {incr i} {
    chooseloop $i 5 indexes {
       set str ""
       foreach index $indexes {
          append str "[lindex $items $index] "
       }
       puts $str
    }
    puts "--"
}
&lt;/pre&gt;&lt;p&gt;

The output of that last one is:&lt;p&gt;

&lt;pre&gt;
apple orange banana 
apple orange grape 
apple orange strawberry 
apple banana grape 
apple banana strawberry 
apple grape strawberry 
orange banana grape 
orange banana strawberry 
orange grape strawberry 
banana grape strawberry 
--
apple orange banana grape 
apple orange banana strawberry 
apple orange grape strawberry 
apple banana grape strawberry 
orange banana grape strawberry 
--
apple orange banana grape strawberry 
--

&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-1583924032289085747?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/1583924032289085747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/09/new-control-structure-considered-useful.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1583924032289085747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1583924032289085747'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/09/new-control-structure-considered-useful.html' title='New Control Structure Considered Useful'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-5077603748625951859</id><published>2008-08-18T09:02:00.003-04:00</published><updated>2008-08-18T13:37:34.635-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mirror'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><category scheme='http://www.blogger.com/atom/ns#' term='acrylic'/><category scheme='http://www.blogger.com/atom/ns#' term='construction'/><category scheme='http://www.blogger.com/atom/ns#' term='blahblahblah'/><title type='text'>Forming Acrylic Mirror</title><content type='html'>I think all this information exists in previous entries, but it's nice to have all my knowledge, however little that is, dumped into one spot.&lt;p&gt;

Heat forming acrylic (aka plexiglass) is pretty simple.  Just get the temperature up around 220&amp;deg;F and it's pliable.  I put it into the kitchen oven.  Don't rely on the oven temperature, though, use something with a probe to tell if you've got the real temp.  For one thing, you can put the probe right down where the mirror is, not just floating around in the air inside the oven.  Also, when I was researching this I found some warnings about fumes.  I think that's only if you overheat because I never smelled or sensed anything.  Maybe I've silently shortened my life by 20 years.&lt;p&gt;

I tried a couple different methods of using a form.  The first couple tries were "open-faced," meaning I laid the acrylic on top of something and counted on the weight of the material itself to cause it to sag into the form.  It isn't really heavy enough for that, so I moved to a two-part form.  It takes longer to heat that way because of the mass of the form itself.  Another disadvantage of this method is that you have to be able to force the mirror into shape before you heat it, which means no 2D curves (like a bowl, if you see what I mean).  Actually, you probably could do that by putting the acrylic sheet between the halves of the form and then weighing the top part down.  Like the open-faced method, but with extra weight.  Drill a hole in the form so the temp probe can sit right on the acrylic.&lt;p&gt;

The above should give pretty nicely formed acrylic sheet even in complex shapes.  Unfortunately it's totally unworkable for acrylic &lt;b&gt;mirror&lt;/b&gt;.  I'm not sure if it's the acrylic or the mirror backing, but the heat stresses the material such that you don't get a smooth reflection anymore.  For a while I thought it was imperfections in the form, but various experiments ruled that out.  (You &lt;i&gt;can&lt;/i&gt; get bumps and ridges from a rough form, though, which can be eliminated by loosening the form a little or by lining the form with some kind of bumper material.  I used a sliced up silicone baking sheet.)&lt;p&gt;

Also: I never got far enough to have this problem, but eventually you'll run out of space in the oven.  Multi-part forms?  Some other heating method?&lt;p&gt;

The curve I wanted wasn't 2D, so how about cold forming (aka "bending")?  I have not yet determined the point at which the acrylic cracks or deforms.  I haven't even determined if there's some point short of complete destruction where the mirror breaks down, &lt;i&gt;a la&lt;/i&gt; the heat deformation.  It seems to be pretty sturdy and stable, but then I'm not making tiny radius curves.  If you imagine bending a yard stick, that's about what it seems like, or maybe a little stiffer.  Put another way: I have a square of acrylic mirror that's 2'x2' bent into a curve about the same as the side of a 55 gallon drum and I haven't see any problems with it.  (This is the 1/8" thick stuff.  There's also a 1/4" thick stuff that I've never tried.)&lt;p&gt;

The trick with cold forming is that you have to hold it in place somehow.  Even drilling a hole through the acrylic will deform it, although only in the immediate area surrounding the hole.  I started with a sandwich method--cutting two parts and then cramming the mirror between.  That works, but you have to have some method of securing the bread of the sandwich that doesn't involve drilling through the mirror.  Also, you cover up some portion of the mirror surface.&lt;p&gt;

Of course, you can drill through the mirror, but in that case why even have the top piece of bread?  That's what I switched to: Put the mirror on an open-faced form and drill a few well-placed holes to secure it down.  Don't overtighten, because the force isn't distributed over a wide area like with the sandwich, so the local area can get quite deformed.  Maybe a reason to have the top piece of bread after all.  Or maybe just some rubber washers or silicone baking sheet for padding.&lt;p&gt;

You can't get too fancy with this method, but for a single, relatively gentle curve it works great.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-5077603748625951859?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/5077603748625951859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/08/forming-acrylic-mirror.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5077603748625951859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5077603748625951859'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/08/forming-acrylic-mirror.html' title='Forming Acrylic Mirror'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-8227959524885236226</id><published>2008-08-13T11:00:00.000-04:00</published><updated>2008-08-13T11:16:37.046-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='diet'/><category scheme='http://www.blogger.com/atom/ns#' term='parts'/><category scheme='http://www.blogger.com/atom/ns#' term='construction'/><category scheme='http://www.blogger.com/atom/ns#' term='blahblahblah'/><title type='text'>Massively Unparalyzed</title><content type='html'>&lt;ul&gt;
&lt;li&gt;I think I'm out of the summer diet doldrums.  I suddenly realized that if I stayed focused, I could meet my original goal by Christmas.  I have to lose 1 lb every 10 days, which seems pretty reasonable.  That's just ~350 calories/day.  This is the same rate my overall history has been up til now, so as long as I keep, or *cough* &lt;b&gt;get back on&lt;/b&gt;, that average I should be good.  (I say "original goal" because after I meet that goal I think I'm going to go an additional 10 lbs.  But I'll have to see how things stand when I get there.)&lt;/li&gt;&lt;br&gt;

&lt;li&gt;I needed to sense sunlight vs shadow and I'd read somewhere you can do that using an LED somehow.  I got that working but they aren't made for that and so it didn't meet even the low standards of this application.  Some photoresistors, even at RadioShack's redonk prices, were only $3 and work so much better.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;Also needed, or at least wanted to evaluate, pulleys.  &lt;a href="http://mcmaster-carr.com/"&gt;McMaster-Carr's site&lt;/a&gt; is so awesome, why can't my local hardware store (or even Lowe's) have a website like that?  Or McMaster-Carr have an outlet near me.&lt;p&gt;

That said, my local hardware store fits an amazing depth and breadth of stuff into their store.  I don't think there's been a single thing I couldn't find there that I was able to find at Lowe's, in the fields the LHS covers.  (i.e. they don't sell appliances at all, so obviously they have a smaller selection of dishwashers.)  And the reverse is not true--I've found things at the LHS that Lowe's didn't have.  And they manage to fit all this stuff into an area that's probably literally no larger than the area devoted to just cash registers at Lowe's.  Like, how is it possible that my LHS has a 9 ft&lt;sup&gt;2&lt;/sup&gt; caribiners + pulleys display &lt;b&gt;right next to&lt;/b&gt; the pumps I need (though are still more than I want to pay)?&lt;p&gt;

Oh and the staff actually know where things are and how to use them, unlike at Lowe's.&lt;p&gt;

I guess what I'm saying is, local hardware store:Lowe's::small European country:US.  It may be a little more expensive, but the service and selection are great.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;How can I completely waterproof a wooden structure?  How about sunproofing?  Like, is it going to get baked and shrunken on one side?  Probably somebody already knows all this stuff.  No wonder people just build with metal.  Oh wait, how about PVC?  Does that degrade in the sun?  Oh and it's hollow, so you can put wires in there....HMMMMM&lt;/li&gt;&lt;br&gt;

&lt;li&gt;I was going to have an entry in here talking about all the things I suddenly (as of this morning!) have to do, but I can't even spend time enumerating them!  &lt;/li&gt;

&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-8227959524885236226?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/8227959524885236226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/08/massively-unparalyzed.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/8227959524885236226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/8227959524885236226'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/08/massively-unparalyzed.html' title='Massively Unparalyzed'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-5134241853622898200</id><published>2008-08-04T09:48:00.002-04:00</published><updated>2008-08-04T10:13:04.859-04:00</updated><title type='text'>Paralyzed by Obstacles (i.e. whining)</title><content type='html'>(throughout this entry substitute "can't find at a reasonable price" for "can't find" and "free or under $40" for "reasonable price")&lt;p&gt;

The next stage in the parabolic solar collector thing is to have the fluid circulating.  I want to have it run through the collector, then down a hose into a tub of water and then back.  Measuring the heating rate of the water will give me a better value for the power.  &lt;p&gt;

For this, I clearly need a pump.  And can I find a pump?  Clearly not.  For simplicity, I think I want one that has garden hose fittings on both ends.  Sump pumps usually have that on one end, but the other end doesn't have any fitting at all.  (Maybe I could disassemble one to find out, but I can't find any to do that with either.)  I bought a &lt;a href="http://www.doityourself.com/icat/drillpumps"&gt;drill pump&lt;/a&gt; for like $6 but it was too wimpy to be useful.  &lt;p&gt;

Not that it has to be that powerful.  According to the back of my envelope, I only need about 60 gph in the worst case.  Typical sump pump numbers are 10x that.  I could probably do it myself by putting a squeezable diaphragm inline and stomping on it.  What a lot of work, though.&lt;p&gt;

But I have feelers out on craigslist and freecycle, so in the meantime how about something else?  I know, I can try to make a much larger &lt;a href="http://projectpotpourri.blogspot.com/2008/07/stirling-walking-beam.html"&gt;stirling&lt;/a&gt;.  What'll I use for the piston?  Oooh, brill idea: a cut off bike pump!  &lt;p&gt;

Take 2: And can I find a pump?  Clearly not.&lt;p&gt;

Maybe I'm just too cheap.  Or maybe I haven't figured out the right workaround.  Or maybe I'm asking for too much. All of these questions (plus a couple other things I'm stopped on but aren't worth describing) has my brain in vapor lock.  I am unable to move on anything.&lt;p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-5134241853622898200?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/5134241853622898200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/08/paralyzed-by-obstacles-ie-whining.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5134241853622898200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5134241853622898200'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/08/paralyzed-by-obstacles-ie-whining.html' title='Paralyzed by Obstacles (i.e. whining)'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-2850419501634131970</id><published>2008-07-19T20:13:00.008-04:00</published><updated>2008-07-19T20:39:15.294-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='stirling'/><category scheme='http://www.blogger.com/atom/ns#' term='thermodynamics'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><category scheme='http://www.blogger.com/atom/ns#' term='linkage'/><category scheme='http://www.blogger.com/atom/ns#' term='experiments'/><title type='text'>Stirling Walking Beam</title><content type='html'>I made a Stirling engine &lt;a href="http://projectpotpourri.blogspot.com/2008/04/syringe-stirling.html"&gt;before&lt;/a&gt;, but it wasn't "real" in the sense of "having traditional engine parts, like a flywheel and crankshaft".  Also, it would be pretty difficult to scale that one up or extract power from it as is.  So this is my first regular ENGINE engine.  (This is called a "walking beam" engine--many other configurations are possible.)&lt;p&gt;

&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/46VSmwz0NRc&amp;hl=en"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/46VSmwz0NRc&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;

One reason I built this one was to prove to myself that I really understood how they worked.  For that reason, I designed this all myself.  Not that there's SO MUCH there.  Also, there are tons of videos on YouTube that are identical to mine.&lt;p&gt;

It's be really awesome to scale this up.  Like with an oil drum for the displacer cylinder.  I'd start that right away, except not only do I not have an oil drum, I'd need access to machine tools to make the power cylinder.&lt;p&gt;

Tips

&lt;ul&gt;
&lt;li&gt;With the power piston shaft and displacer piston shaft mounted on the same point, getting distances right is a little tricky.  It's a big parallelogram this way.  Make them separate next time.  Maybe even on a rotating collar so the phase angle between can be modified.&lt;/li&gt;
&lt;li&gt;If the shaft tiepoints have a lot of play in them, the engine works jerkily if at all (because all the motion is taken up in using the play).&lt;/li&gt;
&lt;li&gt;I think I overdid it on the height and underdid it on the width.  Could have used a little angle-reducing distance on the piston shaft.  Alternatively, shorten the stroke.&lt;/li&gt;
&lt;li&gt;The flywheel is a little heavy.  The momentum should carry it through the compression stroke, it shouldn't have to be barely sucked in.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-2850419501634131970?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/2850419501634131970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/07/stirling-walking-beam.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2850419501634131970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2850419501634131970'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/07/stirling-walking-beam.html' title='Stirling Walking Beam'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-9045962169329291841</id><published>2008-07-08T08:45:00.005-04:00</published><updated>2008-07-08T09:00:43.924-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data'/><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><category scheme='http://www.blogger.com/atom/ns#' term='logging'/><category scheme='http://www.blogger.com/atom/ns#' term='parabola'/><category scheme='http://www.blogger.com/atom/ns#' term='mirror'/><category scheme='http://www.blogger.com/atom/ns#' term='sensors'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><category scheme='http://www.blogger.com/atom/ns#' term='temperature'/><category scheme='http://www.blogger.com/atom/ns#' term='graphing'/><category scheme='http://www.blogger.com/atom/ns#' term='experiments'/><title type='text'>New Results</title><content type='html'>Latest solar trough configuration:&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/__HLRN4QOAxg/SHLIvbeCUFI/AAAAAAAAAIQ/2ZC4mq4Objk/s1600-h/suspended_a_frame.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/__HLRN4QOAxg/SHLIvbeCUFI/AAAAAAAAAIQ/2ZC4mq4Objk/s320/suspended_a_frame.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5220455635228971090" /&gt;&lt;/a&gt;&lt;p&gt;

A few details:&lt;p&gt;

&lt;ol&gt;
&lt;li&gt;Those are just simple, band-sawn parabolic arches.  The mirror is attached with velcro.  Works awesome.  Ly.&lt;/li&gt;
&lt;li&gt;I suspended the mirror from the pipe thinking that would keep the focal length constant while allowing simples changes of elevation.  Why do I always go straight for the complicatedest solution in the universe?&lt;/li&gt;
&lt;/ol&gt;

And data from same:&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/__HLRN4QOAxg/SHIQlK4IRfI/AAAAAAAAAII/Hu5Xvee8IyM/s1600-h/temps_parabola.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/__HLRN4QOAxg/SHIQlK4IRfI/AAAAAAAAAII/Hu5Xvee8IyM/s320/temps_parabola.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5220253148836808178" /&gt;&lt;/a&gt;&lt;p&gt;

The highest temp on there is almost 140&amp;deg;C.  That's over 280&amp;deg;F.  According to my rough calculations, the four steepest upward slopes indicate powers in the range of 20-25 watts.  (Some of those dropouts are me messing around with the setup, some are cloud cover.  Also, I later discovered that true solar south is like 15 or 20&amp;deg; east of where I've been pointing.)&lt;p&gt;

Two big changes from the last run, other than the already-mentioned one of shortening the excess pipe.&lt;p&gt;

&lt;ol&gt;
&lt;li&gt;Painted the pipe flat black.&lt;/li&gt;
&lt;li&gt;Used a laser pointer to adjust the focus.  I mounted a frosted glass square (I happen to have a bunch I bought for just such a use as this) at what I thought would be the focal length.  Then I stood back and aimed the laser pointer in a roughly perpendicular way and looked where the point fell.  This really needs a System to keep it perpendicular, but anyway I was able to determine that my focus was off by over an inch.&lt;/li&gt;
&lt;/ol&gt;

I'm thinking the Mark III will be the last iteration.  Pointing in the right direction, and simplifying the pointing a little, may let me add another 10-20 degrees to the peak but that will be about as far as I can go with these simple materials and using an open-air design.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-9045962169329291841?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/9045962169329291841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/07/new-results.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/9045962169329291841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/9045962169329291841'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/07/new-results.html' title='New Results'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/__HLRN4QOAxg/SHLIvbeCUFI/AAAAAAAAAIQ/2ZC4mq4Objk/s72-c/suspended_a_frame.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-4553174620705282074</id><published>2008-06-27T09:15:00.006-04:00</published><updated>2008-06-27T09:24:56.055-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data'/><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><category scheme='http://www.blogger.com/atom/ns#' term='parabola'/><category scheme='http://www.blogger.com/atom/ns#' term='mirror'/><category scheme='http://www.blogger.com/atom/ns#' term='sensors'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><category scheme='http://www.blogger.com/atom/ns#' term='temperature'/><category scheme='http://www.blogger.com/atom/ns#' term='graphing'/><category scheme='http://www.blogger.com/atom/ns#' term='experiments'/><title type='text'>Belated Mirror Squeezer Results</title><content type='html'>I did one "live" run of data collection from the parabolic mirror squeezer, but after I did it I realized there was a major problem.  The pipe was much longer than the mirror width, so it overhung.  Too late, I realized that this meant there was unheated oil in there, making the temperature measurement invalid.  And I don't even know what direction the error was worse in, since the overhang could also act as cooling fins.  Anyway, here's the graph of the results:&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/__HLRN4QOAxg/SGTomNdcm1I/AAAAAAAAAH4/Kbze09_sTtA/s1600-h/temps_parabola.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/__HLRN4QOAxg/SGTomNdcm1I/AAAAAAAAAH4/Kbze09_sTtA/s320/temps_parabola.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5216550011547720530" /&gt;&lt;/a&gt;&lt;p&gt;

It looks very similar to the original run in a hotbox:&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/__HLRN4QOAxg/SGTpULzQYFI/AAAAAAAAAIA/Zkh9iTz0Vh4/s1600-h/temps.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/__HLRN4QOAxg/SGTpULzQYFI/AAAAAAAAAIA/Zkh9iTz0Vh4/s320/temps.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5216550801376305234" /&gt;&lt;/a&gt;&lt;p&gt;

One major difference: Check the x-axis.  The parabola run is at least 4x steeper.&lt;p&gt;

Anyway, if I get some sun this weekend I should be able to re-run with more accurate results.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-4553174620705282074?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/4553174620705282074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/06/belated-mirror-squeezer-results.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4553174620705282074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4553174620705282074'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/06/belated-mirror-squeezer-results.html' title='Belated Mirror Squeezer Results'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/__HLRN4QOAxg/SGTomNdcm1I/AAAAAAAAAH4/Kbze09_sTtA/s72-c/temps_parabola.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-4016305950872376135</id><published>2008-06-17T12:17:00.011-04:00</published><updated>2008-06-17T13:53:56.792-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diet'/><category scheme='http://www.blogger.com/atom/ns#' term='parabola'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='mirror'/><category scheme='http://www.blogger.com/atom/ns#' term='hiphop'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><category scheme='http://www.blogger.com/atom/ns#' term='linkage'/><title type='text'>Potpourri</title><content type='html'>&lt;ul&gt;
&lt;li&gt;The diet hit a plateau.  I'm down by 43 lbs from when I started, but in the last 30 days it's only changed by .5 lb.  Looking at the chart from a year ago, I think I see a pattern.  It was going down very slowly in May/June 2007, too.  Looks like maybe 3 lbs in 60 days.  &lt;p&gt;

There's probably two things going on.  First, every year I imagine early summer weight loss should be easy.  "Winter hibernation pounds just melt away naturally!"  Second, a lot of good, fresh food shows up at the store.&lt;/li&gt;&lt;br&gt;

&lt;li&gt;I used to listen to &lt;a href="http://www.pandora.com"&gt;Pandora&lt;/a&gt; at work.  The advertised feature, discovery and laser(ish) targetting of your tastes, worked great.  The problem was that the selection wasn't so great.  I was down to about 30 songs that they just endlessly looped for me.  Then I switched to &lt;a href="http://last.fm"&gt;Last.fm&lt;/a&gt;.  The targetting isn't very good, but the selection is pretty huge.  &lt;a href="http://www.frontalot.com"&gt;Exhibit A&lt;/a&gt; probably says more about how out of the loop I am for just now finding this, but still: &lt;a href="http://www.last.fm/music/MC+Frontalot/_/Secrets+From+The+Future?autostart"&gt;Pretty hilarious&lt;/a&gt; (&lt;a href="http://frontalot.com/index.php/?page=lyrics&amp;lyricid=41"&gt;Lyrics&lt;/a&gt;)&lt;/li&gt;&lt;br&gt;

&lt;li&gt;And speaking of nerds: Do you like math?  Do you also like mechanical devices?  Then you will probably love &lt;a href="http://www.amazon.com/dp/069113118X/ref=nosim/?tag=112358132134-20"&gt;&lt;i&gt;How Round Is Your Circle&lt;/i&gt;&lt;/a&gt;.  It's filled with mechanical ways to make, or approximate, mathematical functions, such as for &lt;a href="http://projectpotpourri.blogspot.com/2007/08/locomotive-lego-linkage.html"&gt;linkages&lt;/a&gt;.  The main problem with the book is that it's too short.  It should really be a set of volumes so he can better explain each item.  (&lt;a href="http://youtube.com/user/sangwinc"&gt;Video teasers&lt;/a&gt;).
&lt;/li&gt;&lt;br&gt;

&lt;li&gt;I have dismantled and cannibalized &lt;a href="http://projectpotpourri.blogspot.com/2008/05/ta-da.html"&gt;the Squeezer&lt;/a&gt; for a much simpler version of a parabolic trough now in production.  Stay tuned!&lt;/li&gt;&lt;br&gt;

&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-4016305950872376135?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/4016305950872376135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/06/potpourri.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4016305950872376135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4016305950872376135'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/06/potpourri.html' title='Potpourri'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-1075679877017346120</id><published>2008-06-06T08:17:00.003-04:00</published><updated>2008-06-06T08:30:08.875-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computers'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='children'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='blahblahblah'/><title type='text'>Speaking Of Things That Don't Work</title><content type='html'>My house is crammed with computers, but only two of them (mine and Mrs Username's) are connected to the internet.  Which means the kids always want to use them to play games.&lt;p&gt;

The basement is wired, so last night I finally got around to hooking one up.  It's got some version of Windows on there and already has a network card, so it should be easy, right?  Drivers??  I don't even know what the card is!  Not to mention the fact that I'm not too comfortable putting a Windows machine on the internet.&lt;p&gt;

Then I get a crazy idea: I'll make it dual boot &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt;&lt;sup&gt;1&lt;/sup&gt;!  Takes me 45 minutes to download the latest disc, i.e. less time than it would have to identify, locate, download and install a NIC driver.  Completely easy to install: Other than the fact that I had to adjust a slider to say how much room to leave for the existing Windows partition, I didn't have to tell it anything at all.  It even got on the internet &lt;b&gt;all by itself&lt;/b&gt; to download updates.&lt;p&gt;

The question is: Is making my kids dual boot into Linux to play games child abuse or child undangerment?  Either way, it certainly builds character.&lt;p&gt;

&lt;small&gt;&lt;sup&gt;1&lt;/sup&gt;Actually, &lt;a href="http://www.xubuntu.org/"&gt;Xubuntu&lt;/a&gt;, because this is an older machine.  I considered &lt;a href="http://www.edubuntu.org/"&gt;Edubuntu&lt;/a&gt;, but I think I'll go with the small, fast one and then add kid-oriented packages.&lt;/small&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-1075679877017346120?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/1075679877017346120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/06/speaking-of-things-that-dont-work.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1075679877017346120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1075679877017346120'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/06/speaking-of-things-that-dont-work.html' title='Speaking Of Things That Don&apos;t Work'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-1886774964517361981</id><published>2008-06-02T07:29:00.006-04:00</published><updated>2008-06-02T08:20:06.974-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data'/><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='olpc'/><category scheme='http://www.blogger.com/atom/ns#' term='logging'/><category scheme='http://www.blogger.com/atom/ns#' term='laptop'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='led'/><category scheme='http://www.blogger.com/atom/ns#' term='sensors'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><category scheme='http://www.blogger.com/atom/ns#' term='temperature'/><category scheme='http://www.blogger.com/atom/ns#' term='experiments'/><category scheme='http://www.blogger.com/atom/ns#' term='graphing'/><title type='text'>Things That Don't Work vs Things That Do</title><content type='html'>I've never been completely happy with my &lt;a href="http://projectpotpourri.blogspot.com/2007/07/temperature-logging-part-iii-exciting.html"&gt;temperature logger&lt;/a&gt;.  It's a bit fragile in the sense that if anything at all goes wrong, and there's no way to tell that at the time, I lose the entire run.  I lost a run Memorial Day weekend.  &lt;p&gt;

Instead of storing the measurements on the Arduino, I'd like to instantly beam them onto my computer far inside the safety of the house.  That way I can track things realtime as well as be assured that I &lt;b&gt;have them&lt;/b&gt;.  Coincidentally, for my birthday, I got both &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=666"&gt;another Arduino&lt;/a&gt;&lt;sup&gt;1&lt;/sup&gt; and &lt;a href="http://www.amazon.com/dp/0596510519/ref=nosim/?tag=112358132134-20"&gt;Making Things Talk&lt;/a&gt;.  &lt;p&gt;

The book describes a great number of schemes to make microcontrollers talk to each other and to computers.  You can use wireless networking, bluetooth, XBee, etc (I have only the vaguest notion what some of these are).  Naturally the easiest protocols require the most expensive hardware.  I only need one way, slow communication, so I got a &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=7813"&gt;simple RF module&lt;/a&gt;. &lt;p&gt;

&lt;b&gt;Claim: &lt;/b&gt;&lt;p&gt;

It works just like a serial port!  Just connect the transmitter to the TX pin and the receiver to the RX pin!  It Just Works(tm)!&lt;p&gt;

&lt;b&gt;Reality:&lt;/b&gt;&lt;p&gt;

No.&lt;p&gt;

Perhaps my unit was faulty.  I found many tutorials and guides across the internets and while results varies, I can't ever really say it worked.  I did see data appear for a short time, but mainly what I saw was noise.  Or nothing at all, which is even less explicable.&lt;p&gt;

Last night I had a brainwave.  Or brainstorm.  Something happened to my brain and it resulted in an idea.  Why not use a wireless laptop as the go between?  The kids have these &lt;a href="http://laptop.org/"&gt;OLPC&lt;/a&gt; dealies.  The laptop has a USB port and does WiFi.  I have a WiFi router (specifically purchased, used, to work with these laptops).  About 30 minutes and 10 lines of Python later, I was reading values from /dev/ttyUSB0 and sending them out over a socket to my desktop to another 15 minutes and 20 lines of Python.&lt;p&gt;

The guts of the entire scheme are already there.  But with so much success so fast, I'd like to add features.  For instance, instant graphing of values on both ends.  A protocol so that the laptop knows if there's been an error and can tell me, out in the field.  When I have more than one sensor, I'll need a way to indicate which sensor had what value.  It'll be like a complete Science Sensing Station!&lt;p&gt;

&lt;sup&gt;1&lt;/sup&gt;If you are at all interested in robots, sensors, controlling stuff with computers, electronics or just plain messing around, I highly recommend the Arduino.  That SparkFun item is all you need, assuming you have a USB port (and possibly a cable).  Well....you may also need some external electronics, depending on what you want to do.  LEDs, resistors, motors, etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-1886774964517361981?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/1886774964517361981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/06/things-that-dont-work-vs-things-that-do.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1886774964517361981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1886774964517361981'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/06/things-that-dont-work-vs-things-that-do.html' title='Things That Don&apos;t Work vs Things That Do'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-4268308752614558750</id><published>2008-05-22T08:00:00.000-04:00</published><updated>2008-05-22T08:18:41.217-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><category scheme='http://www.blogger.com/atom/ns#' term='parabola'/><category scheme='http://www.blogger.com/atom/ns#' term='mirror'/><category scheme='http://www.blogger.com/atom/ns#' term='acrylic'/><category scheme='http://www.blogger.com/atom/ns#' term='experiments'/><category scheme='http://www.blogger.com/atom/ns#' term='compression'/><title type='text'>Ta-Da!</title><content type='html'>Once I abandoned the dead end of heat-formed acrylic, the ideas for cold-forming have been coming thick and fast.  Here's the result of the &lt;a href="http://projectpotpourri.blogspot.com/2008/05/duh.html"&gt;squeezer&lt;/a&gt; configuration.&lt;p&gt;

First, the squeezer itself:&lt;p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/__HLRN4QOAxg/SDTRtKn9T1I/AAAAAAAAAHo/stMD5mR411Y/s1600-h/parabolicsqueezer_small.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/__HLRN4QOAxg/SDTRtKn9T1I/AAAAAAAAAHo/stMD5mR411Y/s320/parabolicsqueezer_small.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5203014043396034386" /&gt;&lt;/a&gt;

Closeup of squeezing mechanism:&lt;p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/__HLRN4QOAxg/SDTRtan9T2I/AAAAAAAAAHw/wHZgHk_IVhA/s1600-h/squeezingmechanism_small.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/__HLRN4QOAxg/SDTRtan9T2I/AAAAAAAAAHw/wHZgHk_IVhA/s320/squeezingmechanism_small.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5203014047691001698" /&gt;&lt;/a&gt;

Result:&lt;p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/__HLRN4QOAxg/SDTRs6n9TzI/AAAAAAAAAHY/wDPkg3FzeH4/s1600-h/biggoodparabola_small.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/__HLRN4QOAxg/SDTRs6n9TzI/AAAAAAAAAHY/wDPkg3FzeH4/s320/biggoodparabola_small.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5203014039101067058" /&gt;&lt;/a&gt;

Closeup of accuracy:&lt;p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/__HLRN4QOAxg/SDTRtKn9T0I/AAAAAAAAAHg/1H5cmSTU_bk/s1600-h/focalperfection_small.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/__HLRN4QOAxg/SDTRtKn9T0I/AAAAAAAAAHg/1H5cmSTU_bk/s320/focalperfection_small.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5203014043396034370" /&gt;&lt;/a&gt;

Soo....yeah.  That works.  The squeezer is a bit overbuilt.  I could go with 2x2s or even smaller next time.  And one bolt every couple feet instead of every 6 inches.   Other minor improvements.  Those may never be made, though, since I had a real brainstorm on an extremely simple way to accomplish the same thing.  More on that another time, though.  I'm going to use this for my next &lt;a href="http://projectpotpourri.blogspot.com/2007/08/temperature-of-what.html"&gt;experiment&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-4268308752614558750?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/4268308752614558750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/05/ta-da.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4268308752614558750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4268308752614558750'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/05/ta-da.html' title='Ta-Da!'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/__HLRN4QOAxg/SDTRtKn9T1I/AAAAAAAAAHo/stMD5mR411Y/s72-c/parabolicsqueezer_small.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-2799057776046978188</id><published>2008-05-08T12:00:00.000-04:00</published><updated>2008-05-08T12:19:05.904-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tension'/><category scheme='http://www.blogger.com/atom/ns#' term='focus'/><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><category scheme='http://www.blogger.com/atom/ns#' term='parabola'/><category scheme='http://www.blogger.com/atom/ns#' term='mirror'/><category scheme='http://www.blogger.com/atom/ns#' term='acrylic'/><category scheme='http://www.blogger.com/atom/ns#' term='compression'/><title type='text'>Duh.</title><content type='html'>&lt;a href="http://projectpotpourri.blogspot.com/2008/03/parabola-update.html"&gt;Last you heard&lt;/a&gt; I'd come up with an incredibly complex system for getting a perfect parabolic wood form that still failed to make a good parabolic mirror.  I actually tried tweaking a couple variables after that.  The main thing I realized was that the mating surfaces of the form don't press perpendicularly, which means there's a shear force on the mirror between them.  As a padding and semi-lubrication, I put in some strips of silicone baking sheet but to no avail.&lt;p&gt;

So I decided to abandon the heat-forming idea altogether.  At this point, even if it worked I'd still have major problems implementing anything at a larger scale.  Instead, I'm going with a cold, mechanical system based on the &lt;a href="http://projectpotpourri.blogspot.com/2008/01/parable-of-parallel-parabola.html"&gt;working-extremely-well nail system&lt;/a&gt;.&lt;p&gt;

The first stab at a mechanical forming system looked like this:&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/__HLRN4QOAxg/SB-xNr-wsDI/AAAAAAAAAHA/kHRadjRNdq0/s1600-h/parabola_tension_system_small.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/__HLRN4QOAxg/SB-xNr-wsDI/AAAAAAAAAHA/kHRadjRNdq0/s320/parabola_tension_system_small.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5197067343711219762" /&gt;&lt;/a&gt;

The idea is that you just wind on some wingnuts to raise the tension and adjust the shape.  And that actually worked pretty well to get the shape, modulo this being a first stab prototype.  But the focus wasn't all that much better.&lt;p&gt;

Finally, one might even say AT LONG LAST, the light dawned.  I turned the mirror around and actually looked at it, searching for the distortions.  Huh, they are right around those big holes I drill...OMG.  The plexiglass just can't take the stress of the drill!  I'm distorting the area around the hole!  The oven is probably distorting the whole schmiel!  &lt;b&gt;That's&lt;/b&gt; why the nail version works so well.  I'm just bending, not drilling or melting.  What I need is some way of shaping into a parabola as non-destructively as possible.  (I realize how obvious this sounds, but I didn't hear any Internet Geniuses suggesting it to me at the time, so bite me.)&lt;p&gt;

Kind of fiddling around with it, I found that I didn't really need to shape the main body, so to speak, of the curve.  Just pressing on the ends gave me a pretty good parabola.  So, Mechanical Parabolic Mirror System Mark II:&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/__HLRN4QOAxg/SB-xOb-wsEI/AAAAAAAAAHI/Q3pUyI52MQI/s1600-h/parabola_compression_system_small.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/__HLRN4QOAxg/SB-xOb-wsEI/AAAAAAAAAHI/Q3pUyI52MQI/s320/parabola_compression_system_small.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5197067356596121666" /&gt;&lt;/a&gt;&lt;p&gt;

Now winding on the wingnuts transmits compression to make the shape you want.  I'm pretty sure that doesn't make a perfect parabola (I think it's actually a cubic curve, based on my skimming of some beam bending equations) but it's pretty damn close.  Maybe not so close at full size, we'll see.  If it needs more adjustment at larger sizes, I can add some tension non-destructively.&lt;p&gt;

And how does it work, doctor?&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/__HLRN4QOAxg/SCJGCjaU_6I/AAAAAAAAAHQ/T2RKv4ti8LI/s1600-h/two_more_good_parabolas_small.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/__HLRN4QOAxg/SCJGCjaU_6I/AAAAAAAAAHQ/T2RKv4ti8LI/s320/two_more_good_parabolas_small.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5197793929618325410" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-2799057776046978188?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/2799057776046978188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/05/duh.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2799057776046978188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2799057776046978188'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/05/duh.html' title='Duh.'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/__HLRN4QOAxg/SB-xNr-wsDI/AAAAAAAAAHA/kHRadjRNdq0/s72-c/parabola_tension_system_small.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-3689595007700965232</id><published>2008-04-18T23:30:00.000-04:00</published><updated>2008-04-18T20:40:04.744-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='stirling'/><category scheme='http://www.blogger.com/atom/ns#' term='thermodynamics'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><title type='text'>Syringe Stirling</title><content type='html'>I just realized I've never done a post on Stirling engines.  How can that be??  Stirling engines are so, so awesome.&lt;p&gt;

Stirlings are a member of the class called "hot air engines".  As a group, hot air engines work by exploiting the expansion and compression of a gas when it is alternately heated and cooled.  There's a good explanation/animation &lt;a href="http://www.keveney.com/Vstirling.html"&gt;here&lt;/a&gt;.&lt;p&gt;

(That particular engine is a "true" Stirling because of those green cross-hatches.  That's a "regenerator" that vastly improves efficiency.  However, most people call all generic hot air engines, regenerator or not, "Stirlings".)&lt;p&gt;

Stirling engines are awesome for a lot of reasons, but one of the best reasons is that you can use any source of heat.  This isn't an internal combustion engine that can use only one type of fuel that's later impossible to wean away from.  This is an &lt;i&gt;external&lt;/i&gt; combustion engine.  You could use natural gas or wood or ethanol or solar energy or geothermal energy.  In fact, some satellites/probes use Stirlings to convert nuclear energy to electricity.  That's right, Stirling engines in spaaaaace.&lt;p&gt;

Anyway, back to Earth and me.  Because Stirlings are so simple and efficient, you can make even a really crappy one run fairly well.  They are very common first projects in machine tool classes, for instance, whereas building an IC engine from scratch would be...challenging for a beginner.  However, I'm not even at the level of machine tool student, so even that option isn't open to me.  &lt;p&gt;

Fortunately, lots of people have been coming up with plans for engines that don't require machining.  A few years ago, I tried one that used water-based pistons but I couldn't get it to run.  I really have no idea what the problem was, probably multiple things.  More recently, I found some "plans" for a test tube Stirling.  It took me a while to actually get it going, because it turns out that glass syringes are incredibly finely made and also very rare nowadays.  I actually had to buy one on ebay as an antique!&lt;p&gt;

I think the functioning is clear enough to explain itself.  (Note: This is technically not a Stirling since I have no regenerator, although I could stuff a bit of steel wool in there to fix that.)&lt;p&gt;

&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ngO0APdvCqw"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ngO0APdvCqw" type="application/x-shockwave-flash" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;

After viewing the video again, actually that might not be so clear.  Here's what is happening:&lt;p&gt;
&lt;ol&gt;
&lt;li&gt;Candle heats air inside left end of test tube.&lt;/li&gt;
&lt;li&gt;Air expands, pushing "piston" up.&lt;/li&gt;
&lt;li&gt;Marbles roll to the left, displacing the air to the right.&lt;/li&gt;
&lt;li&gt;Air cools down, contracting.&lt;/li&gt;
&lt;li&gt;Pulling piston down and causing marbles to roll right.&lt;/li&gt;
&lt;LI&gt;Air displaces leftward.&lt;/LI&gt;
&lt;li&gt;GOTO 1&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-3689595007700965232?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/3689595007700965232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/04/syringe-stirling.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/3689595007700965232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/3689595007700965232'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/04/syringe-stirling.html' title='Syringe Stirling'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-2877832294263467606</id><published>2008-04-12T15:30:00.000-04:00</published><updated>2008-04-14T20:56:17.420-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='art'/><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='EAS'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='graphing'/><title type='text'>The Etching Calculator [EDIT]</title><content type='html'>&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/XXGTJsdhK0Q"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/XXGTJsdhK0Q" type="application/x-shockwave-flash" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;

A lot of things, many of them new to me, went into this project.  We have "regular" programming, "device" programming, a communication protocol, stepper motor control, motor mounting, power supply design and the mathematics of drawing an optimal line on a pixelated display.  Some comments on each.&lt;p&gt;

&lt;b&gt;Mounting&lt;/b&gt;&lt;p&gt;

I originally thought this was going to be the hardest part.  "The rest is just sitting at my computer desk and either typing or handling tiny pieces of electronics" was my opinion.  In fact, I just cut a couple spacers and then improvised mounting plates from....I don't know what that stuff is.  It's like countertop covering.  In any case, this part took maybe 45 minutes.  It helps that one vital component of the mount is masking tape.&lt;p&gt;

Connecting the steppers to the knobs went through some iterations.  The motors had gears on the ends, but of course the EAS isn't geared.  I tried various ways of coupling one to the other, but wasn't satisfied.  (This turned out to be a power supply problem, which I talk about below, but I didn't know that at the time.)  In the end I managed to remove the gears--they are just press fit, so you can knock them off with a &lt;a href="http://www.thisoldhouse.com/toh/article/0,,1139203,00.html"&gt;nailset&lt;/a&gt; and a hammer.  The shafts of both motors and the EAS were almost all the same size, which in turn was just a tiny bit bigger than the internal diameter of some plastic tubing.  I just cut a short length as a sleeve and &lt;i&gt;voila&lt;/i&gt;.&lt;p&gt;

&lt;b&gt;Stepper Motor Control&lt;/b&gt;&lt;p&gt;

&lt;a href="http://www.amazon.com/Physical-Computing-Sensing-Controlling-Computers/dp/159200346X/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1207743000&amp;sr=8-1"&gt;Physical Computing&lt;/a&gt; was invaluable.  In fact, reading about how to control a stepper was what gave me the original idea of controlling an EAS&lt;sup&gt;1&lt;/sup&gt;.  (The guts of that section &lt;a href="http://www.tigoe.net/pcomp/code/category/code/arduinowiring/51"&gt;are online&lt;/a&gt;.)  I originally tried to do the entire thing with totally generic components, i.e. plain transistors, but I soon gave that up.  I unbent enough to use 2 dual H-bridges.  Still generic, but you can't get them at Radio Shack (but what CAN you get at Radio Shack?).  This compacts the wiring and anyway the motors need more current than a regular transistor can switch.&lt;p&gt; 

If this were a real product, I would definitely build/buy a &lt;a href="http://www.reprap.org/bin/view/Main/DarwinStepperController_1_2"&gt;stepper control board&lt;/a&gt;.  Finer control isn't an issue, but sweet mother of crap this thing is loud.  I think a board can ramp the amperage up and down to give a smoother movement that won't shake the house down.&lt;p&gt;

&lt;b&gt;"Device" Programming&lt;/b&gt;&lt;p&gt;

The Arduino libraries include an &lt;a href="http://www.arduino.cc/en/Reference/Stepper?from=Tutorial.Stepper"&gt;object-oriented Stepper control library&lt;/a&gt;, but it wasn't really suited to what I was doing.  The most basic fact it cared about was the RPM.  The most basic fact I cared about was how many steps to take.  So I wrote my own SingleStepper library.  That makes me sound alphanerdy, but seriously, it was just a matter of copying and tweaking the existing library.&lt;p&gt;

Another reason for writing my own was that the Stepper lib left the current on even when the motor wasn't turning.  That's great if you need the torque to stay on, but non-great if you have a limited budget of amperage.  So my library also turns the power on only long enough to move the motor, then turns it back off.&lt;p&gt;

&lt;b&gt;Communication Protocol&lt;/b&gt;&lt;p&gt;

&lt;a href="http://www.arduino.cc/en/Serial/Read"&gt;The stock Arduino serial comm library only supports reading a byte at a time.&lt;/a&gt;  WTF ARDUINO ?  Naturally I need to send coordinates larger than 255.  The solution is conceptually not too difficult: Send a two-byte int a byte at a time and reassemble on the other end.  This actually took a couple days to implement, though, because Python (on the other end of the wire) isn't geared towards working with binary data and then there's the question of negative numbers, twos complement, endianness, etc.  &lt;p&gt;

Also, in the case where a lot of coordinates are being generated very quickly, the internal buffer can overflow and the EAS goes haywire.  So each coordinate has to be ACKed by the controller before the next is sent.&lt;p&gt;

&lt;b&gt;Line Drawing&lt;/b&gt;&lt;p&gt;

Here's another place where I didn't go 100% from my own bootstraps.  I actually did start deriving this myself, but soon realized that there were going to be special cases and stuff and I wasn't interested in debugging those.  Instead, I just adapted &lt;a href="http://cs.unc.edu/~mcmillan/comp136/Lecture6/Lines.html"&gt;a classic algorithm&lt;/a&gt;.  I didn't use any of the optimizations on that page, since they are more for a digital display than position control.  I did make one optimization of my own, though, which was to not move each motor a single step at a time if I could take 5 steps with one and then 1 with the other.&lt;p&gt;

Theoretically, one could turn both motors on at the same time but at different rates to draw diagonal lines.  But even if I had the electric power to do that it's just too hard to attempt.&lt;p&gt;

&lt;b&gt;"Regular" Programming&lt;/b&gt;&lt;p&gt;

This is so dead simple that it's really not that interesting, but just for completeness: Generate a series of coordinates (either by hand typing in your own or using some equation) and send them out the serial port. &lt;p&gt;

Actually, I should explain that a bit.  I chose to implement this as a display-like device.  You give it a coordinate pair X,Y and it moves there.  The Arduino handles everything after being handed the values.  So for instance the sine wave is being calculated as a series of points in Python on my computer and then sent over to the microcontroller for plotting.&lt;P&gt;

&lt;b&gt;Power Supply&lt;/b&gt;&lt;p&gt;

Of these all, the one that I figured out last was the power.  The EAS isn't really made with computer control in mind.  The controls are surprisingly sticky.  At first I thought the coupling between motor and EAS was slipping, but I eventually eliminated that.  The &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=114"&gt;power supply I bought&lt;/a&gt; is rated up to 1.5A, but only puts out 5V, so the motors only drew about 700mA.  Turns out that wasn't quite enough to consistently turn the knobs.  By bypassing the power supply, I was able to feed 1A directly to each motor (one at a time) and that was enough.&lt;p&gt;

It may still be a little short, though, because I still get the occasional glitch.  But I don't have a wall wart that puts out more than an amp at more than 8V.&lt;p&gt;

&lt;b&gt;Cost&lt;/b&gt;&lt;p&gt;

The steppers I got out of a broken inkjet printer.  (I really lucked out on that, I later realized.  Two other inkjets I disassembled had steppers but they were tiny.)  I already had the mounting stuff and the Arduino, as well as wires, resistors, etc.  I had to buy the H-bridges, the power supply, a heatsink and some power resistors.  That probably adds up to $20 or $25.  But I can and will reuse it all, especially the power supply, which was the most expensive single purchase.  &lt;p&gt;

Oh yeah, and I had to buy an EAS.  But one of my design goals (as well as an instruction from my seven year old) was to not alter it beyond being used by humans afterwards.  So I consider that a capital investment as well.&lt;p&gt;

&lt;sup&gt;1&lt;/sup&gt;Gave me the idea, but I wasn't actually spurred to do anything until I saw the &lt;a href="http://www.revver.com/video/719432/etch-a-sketch-clock/"&gt;EAS clock&lt;/a&gt;.  The auto-erase functionality of the clock would be really nice to have, but I'd like to point out that the ability to draw curves is even nicer.&lt;p&gt;

Per request, here's a closeup of a diagonal line.  You can't see the "pixels".&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/__HLRN4QOAxg/SAP80tVdwYI/AAAAAAAAAG4/1rVHfF1iqe4/s1600-h/diagonal_selection.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/__HLRN4QOAxg/SAP80tVdwYI/AAAAAAAAAG4/1rVHfF1iqe4/s400/diagonal_selection.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5189269178113966466" /&gt;&lt;/a&gt;&lt;p&gt;

That said, you actually can see the "pixels" in some curves.  I think that's because of the (mathemetical) stepping involved in going from floating math to integer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-2877832294263467606?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/2877832294263467606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/04/etching-calculator.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2877832294263467606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2877832294263467606'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/04/etching-calculator.html' title='The Etching Calculator [EDIT]'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/__HLRN4QOAxg/SAP80tVdwYI/AAAAAAAAAG4/1rVHfF1iqe4/s72-c/diagonal_selection.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-8024357645256249762</id><published>2008-04-01T00:15:00.000-04:00</published><updated>2008-03-31T21:14:19.973-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><title type='text'>The Future Was In 1956</title><content type='html'>&lt;a href="http://baseballn00b.blogspot.com/"&gt;tps12&lt;/a&gt; has been &lt;a href="http://baseballn00b.blogspot.com/search/label/3D"&gt;doing 3D photos recently&lt;/a&gt; and pointed me to a &lt;a href="http://video.aol.com/video-detail/photo-editing-10-create-3d-anaglyph-images-3d-glasses/1643313464"&gt;pretty simple tutorial&lt;/a&gt;.&lt;p&gt;

Where the magic happens (spoilers ahead):&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/__HLRN4QOAxg/R_GLYTkuNjI/AAAAAAAAAGw/EaDmXT_iSzE/s1600-h/desktop3d.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/__HLRN4QOAxg/R_GLYTkuNjI/AAAAAAAAAGw/EaDmXT_iSzE/s800/desktop3d.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5184077895767569970" /&gt;&lt;/a&gt;&lt;p&gt;

This looked really mind-blowing in Gimp, pretty great as a jpeg and not so awesome online.  Good ol' lossy compression!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-8024357645256249762?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/8024357645256249762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/03/future-was-in-1956.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/8024357645256249762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/8024357645256249762'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/03/future-was-in-1956.html' title='The Future Was In 1956'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/__HLRN4QOAxg/R_GLYTkuNjI/AAAAAAAAAGw/EaDmXT_iSzE/s72-c/desktop3d.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-4433663097756115969</id><published>2008-03-25T09:34:00.001-04:00</published><updated>2008-03-25T09:44:34.345-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diet'/><title type='text'>Boring Diet Update</title><content type='html'>I'll have something much more exciting in a few days, I think.  Well, exciting to a NERD.  It involves motors and integers and wires.&lt;p&gt;

&lt;a href="http://projectpotpourri.blogspot.com/2008/02/weight-loss-milestones-past-present-and.html"&gt;A month ago, I mentioned my upcoming dietversary.&lt;/a&gt;  Today is the last day of Year One.  My Official Tally of Weight Lost is 38 lbs.  That's an average of &lt;sup&gt;2&lt;/sup&gt;/&lt;sub&gt;3&lt;/sub&gt;-&lt;sup&gt;3&lt;/sup&gt;/&lt;sub&gt;4&lt;/sub&gt; of a lb per week.  &lt;p&gt;

I was half-heartedly shooting for 40 during the last few weeks, knowing I wouldn't make it.  But I came pretty close and in the final weeks I doubled my average rate.  Also, the Official Tally is based on a moving average, so my last actual weigh-ins have been at or close to exactly 40 lbs.  All in all, not at all disappointing.&lt;p&gt;

My original goal was 60 lbs, with a caveat that I may want to go 10 beyond that when I get there (I'm not sure I believe the BMI chart).  So I've still got 6 to 9 months ahead of me at this rate.  Perhaps by Christmas?  Then again, I'm actually chowing on Easter candy &lt;i&gt;as I type this&lt;/i&gt;...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-4433663097756115969?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/4433663097756115969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/03/boring-diet-update.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4433663097756115969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4433663097756115969'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/03/boring-diet-update.html' title='Boring Diet Update'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-2583465723449124718</id><published>2008-03-14T08:31:00.000-04:00</published><updated>2008-03-14T09:14:47.431-04:00</updated><title type='text'>Parabola Update</title><content type='html'>I didn't realize until just now how much as happened since &lt;a href="http://projectpotpourri.blogspot.com/2008/01/parable-of-parallel-parabola.html"&gt;the last update&lt;/a&gt;.&lt;p&gt;

The final picture in that post shows the problem.  Imperfect focus.  My theory was that the parallel parabola issue preventing full closing of the two halves of the form.  When I tried it, the halves definitely did fit better, but the resulting mirror acted the same.  The next possible culprit was Shaky Hands Syndrome.  You can't freehand a perfect cut on a bandsaw, even following a line.&lt;p&gt;

So I came up with an elaborate procedure that would let us use a router.&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/__HLRN4QOAxg/R9pyAGbSXCI/AAAAAAAAAGo/6y_KCEu-UOI/s1600-h/parabola_jig1_small.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/__HLRN4QOAxg/R9pyAGbSXCI/AAAAAAAAAGo/6y_KCEu-UOI/s320/parabola_jig1_small.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5177576067666435106" /&gt;&lt;/a&gt;&lt;p&gt;

I'm not going to describe every little nuance of this thing, because seriously, it is much more complicated than it looks.  I'm just going to point out the main idea.&lt;p&gt;

&lt;a href="http://bp3.blogger.com/__HLRN4QOAxg/R5apdDKbzrI/AAAAAAAAAF8/8TIgmjhxQ6k/s1600-h/twogoodparabolae.JPG"&gt;If you recall&lt;/a&gt;, when I hold the mirror in place with nails it works great.  So my theory was that constraining a springy object was making it closely approximate a parabola.  So I took another springy object (the tan stick thing on top of the paper) and bent it to fit a parabola printed on paper.  Then we used that as a guide for a router.&lt;p&gt;

When I clamped the mirror into the form, it looked really good.  There was not a single gap anywhere.  But the result is indistinguishable from the freehand versions.&lt;p&gt;

To my eye, &lt;a href="http://bp3.blogger.com/__HLRN4QOAxg/R5apuDKbzsI/AAAAAAAAAGE/Pvi7cBfi6pY/s1600-h/onebadparabolum.JPG"&gt;the star pattern of the imperfect version&lt;/a&gt; looks like it is coming from short sections that aren't agreeing with each other.  Like a faceted mirror.  That would be easy to explain from a freehand form, but this latest version destroys that theory, at least as far as the form is concerned.&lt;p&gt;

Yesterday I realized that uneven bending could be the result of uneven &lt;i&gt;heating&lt;/i&gt;.  Maybe some  areas of the mirror aren't quite getting up to temperature.  I was going to heat the entire thing up by another 10 degrees, but I accidentally broke the form.  (Uh oh...it could also be shrinkage or other heat-deformation.  I might be doomed.)&lt;p&gt;

Also, I just realized that bending acrylic must be a technique used in industry (and art?).  I should google around to see what I find.  (I did that before I started, but more from the point of view of parabolas and less from the point of view of general acrylic forming.)  (Update: Heh.  Sounds like &lt;a href="http://books.google.com/books?id=_-F9Ni7rg04C&amp;pg=PA71&amp;lpg=PA71&amp;dq=bending+curve+acrylic&amp;source=web&amp;ots=aQpLSoTNdO&amp;sig=Thaq1_KAsNwXTL-cZ9ZVUfFld9s&amp;hl=en"&gt;this guy&lt;/a&gt; had the exact same problem I'm having, 40 years ago. (picture caption, 2nd paragraph))&lt;p&gt;

It's also possible I'm being a perfectionist.  I'm going to have a 1/2" copper pipe running where the focus is.  As long as all the energy hits the pipe, it isn't vital that it be pinpoint focus.  Still, it's annoying that a thrown-together-in-5-minutes nail version performs so much better.  It seems like I must be missing some really simple thing.&lt;p&gt;

I actually do have an entirely different approach in the back of my mind.  No oven needed at all...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-2583465723449124718?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/2583465723449124718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/03/parabola-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2583465723449124718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2583465723449124718'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/03/parabola-update.html' title='Parabola Update'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/__HLRN4QOAxg/R9pyAGbSXCI/AAAAAAAAAGo/6y_KCEu-UOI/s72-c/parabola_jig1_small.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-9041120235229221884</id><published>2008-03-13T12:00:00.000-04:00</published><updated>2008-03-13T09:05:55.056-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='mouse'/><category scheme='http://www.blogger.com/atom/ns#' term='heater'/><category scheme='http://www.blogger.com/atom/ns#' term='temperature'/><title type='text'>The Heated Mouse</title><content type='html'>Not only do I work in the basement of my building and not only are there lots of computers (and thus lots of AC) but one of the AC vents is right above my desk.  Oh and of course I sit still all day.  So I get cold hands.  More specifically, I get a cold mouse hand.  &lt;p&gt;

The obvious&lt;sup&gt;1&lt;/sup&gt; solution to this problem is a heated mouse.  Google can tell you this isn't a new idea but google can't tell you where to actually buy one.  The only place that sold them is now dead and in any case seems to have been a scam.  People didn't get their shipments or they did but the contents either failed to work as heaters or failed to work as mice.&lt;p&gt;

But this can't be complicated.  USB is a powered connection, meaning that a mouse can get power from the computer.  If it can draw enough, it can run a tiny heater.  As a matter of fact, the USB spec says that a device can draw up to 500mA at 5V, which is 2.5 watts.  That's not a lot of heat, but if you were holding it literally in the palm of your hand I thought it might be enough to ward off pneumonia.&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/__HLRN4QOAxg/R9h7AWbSXBI/AAAAAAAAAGg/664QyFAUGIw/s1600-h/heatedmouseout_small.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/__HLRN4QOAxg/R9h7AWbSXBI/AAAAAAAAAGg/664QyFAUGIw/s320/heatedmouseout_small.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5177023017612631058" /&gt;&lt;/a&gt;&lt;p&gt;

&lt;center&gt;USB optical mouse and resistance wire from hair dryer.&lt;/center&gt;&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/__HLRN4QOAxg/R9h7AGbSXAI/AAAAAAAAAGY/9VSsiQIq0dE/s1600-h/heatedmousein_small.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/__HLRN4QOAxg/R9h7AGbSXAI/AAAAAAAAAGY/9VSsiQIq0dE/s320/heatedmousein_small.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5177023013317663746" /&gt;&lt;/a&gt;&lt;p&gt;

&lt;center&gt;Entire inside of optical mouse, USB cable unplugged from board.  Red/black are power, don't mess with the other wires (data).&lt;/center&gt;&lt;p&gt;

(I really should have photographed this entire build, but I was feeling my way through and didn't want to waste time with a bunch of dead ends.)&lt;p&gt;

The first thing was to get a USB optical mouse.  USB for the power, optical to have plenty of space inside.  I had one lying around.  Then I needed a way to turn electricity to heat.  Resistance wire out of a trashed hair dryer turned out to be perfect.  Around 3" of wire (coiled length), coated with liquid insulation, provides ~20 ohms of resistance.  That draws about 250mA, providing around 125mW of heat.  (I stayed well below the spec just in case, plus the mouse itself needs 100mA, according to the label.)&lt;p&gt;

The rest was just a bunch of boring details.  How to keep the heater wire inside the mouse.  How to attach the power to the coil.  How to get the mouse back together.  Thinking about safety.  Like, am I going to burn down the building?  I don't think so...&lt;p&gt;

Does it work?  I've got it plugged in right now and it's working great.  Works fine as a mouse (didn't even have to reboot, even though I switched from PS/2 to USB) and as a heater (I switched because my hand was cold and now I'm comfy).  &lt;p&gt;

I'd say the only problem is that the heat is applied more towards the palm when it needs to be more towards the fingers.  It works as-is, but maybe I could uncoil the resistance wire and spread it out a little more around the inside of the mouse to hit all the areas.&lt;p&gt;

&lt;sup&gt;1&lt;/sup&gt;To a dork.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-9041120235229221884?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/9041120235229221884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/03/heated-mouse.html#comment-form' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/9041120235229221884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/9041120235229221884'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/03/heated-mouse.html' title='The Heated Mouse'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/__HLRN4QOAxg/R9h7AWbSXBI/AAAAAAAAAGg/664QyFAUGIw/s72-c/heatedmouseout_small.jpg' height='72' width='72'/><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-4948739051788240853</id><published>2008-02-28T11:00:00.000-05:00</published><updated>2008-02-28T07:51:44.294-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diet'/><title type='text'>Weight Loss Milestones: Past, Present and Future</title><content type='html'>&lt;b&gt;Past&lt;/b&gt;&lt;p&gt;

My time-weighted, moving-average BMI dropped below 30 on the 7th.  Also, I had to buy a couple new pairs of pants several months ago.&lt;p&gt;

&lt;b&gt;Present&lt;/b&gt;&lt;p&gt;

The new pants are starting to feel a little loose too.  And just this morning, I put my belt down another notch.  To the &lt;b&gt;last&lt;/b&gt; notch.  It's a little bit too tight this way, but up a notch is way too loose.  "Pants feel a little tight" is a good way to keep from snacking at work.&lt;/p&gt;

&lt;b&gt;Future&lt;/b&gt;&lt;p&gt;

Looking at my log, I see that it will be a year on March 26.  I've dropped 33 lb in that time.  Since I need a short-term goal to really get me moving, I thought maybe I'd try to reach 40 lb (2/3 of my original long term goal) by the 25th, but I don't think that's really feasible.  &lt;/p&gt;

Up until now, I've been short an average of ~350 calories/day.  To lose 7 lb in 30 days I'd have to short myself ~800 calories/day.  That doesn't sound too healthy.  So I don't know what short term goal I can set myself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-4948739051788240853?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/4948739051788240853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/02/weight-loss-milestones-past-present-and.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4948739051788240853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4948739051788240853'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/02/weight-loss-milestones-past-present-and.html' title='Weight Loss Milestones: Past, Present and Future'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-7969532661545157495</id><published>2008-02-13T08:26:00.000-05:00</published><updated>2008-02-14T21:15:37.611-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='led'/><title type='text'>Charlieplexing</title><content type='html'>A few weeks ago I was really proud of myself for figuring out how to &lt;a href="http://projectpotpourri.blogspot.com/2008/01/your-favorite-geek-desk-toy-sucks.html"&gt;make a binary clock&lt;/a&gt; with multiplexed outputs to save pins.  Now I learn about &lt;a href="http://www.instructables.com/id/Charlieplexing-LEDs--The-theory/?ALLSTEPS"&gt;charlieplexing&lt;/a&gt; and I'm agog.  Simply agog.&lt;p&gt;

One project I've been kind of wanting to make is an &lt;a href="http://www.lomont.org/Projects/LEDCube/LEDCube.php"&gt;LED cube&lt;/a&gt;.  To illustrate just how awesome charlieplexing is, look at how many output pins you'd need to drive an LED cube of a given size compared to the simple multiplexing I "invented".&lt;p&gt;

&lt;table border=1&gt;
&lt;tr&gt;&lt;td&gt;Edge Length&lt;/td&gt;&lt;td&gt;# LEDs&lt;/td&gt;&lt;td&gt;Req. Multiplexed Outputs&lt;/td&gt;&lt;td&gt;Req. Charlieplexed Outputs&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;64&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;125&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;216&lt;/td&gt;&lt;td&gt;42&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;br&gt;

So on the Arduino, where I think I have 12 ports to work with, I could either do a 3x3x3 cube the old and busted way or do a 5x5x5 cube the new hotness way.  (Or maybe I have 18-19 ports, in which case it's still 3x3x3 the old way but now 6x6x6 the new way.)  But how can you possibly control that many LEDs with so few ports?  &lt;a href="http://www.instructables.com/id/Charlieplexing-LEDs--The-theory/?ALLSTEPS"&gt;Read the instructable&lt;/a&gt;!  &lt;p&gt;

Or read this simplified summary: Basically, you set things up so that every port can be either positive or negative.  Then attach your LEDs so that every possible combination of ports lights one up.  (Remember that LEDs are one-way valves, so port A being positive with B negative can light one LED while reversing polarity can light another one.  Just remember not to cross the streams.)  "Every possible combination" of N ports is N *(N - 1), so with, say, 9 ports you can control 9 * 8 = 72 LEDs.&lt;p&gt;

5x5x5 isn't enough to be a 3D display, though.  But a larger cube could be decomposed into smaller cubes each controlled by a separate microcontroller.  10x10x10 is probably large enough to show some cool animation, although coordinating 8 microcontrollers might be a pain.  Not to mention wiring up 1000 LEDs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-7969532661545157495?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/7969532661545157495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/02/charlieplexing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7969532661545157495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7969532661545157495'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/02/charlieplexing.html' title='Charlieplexing'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-1626371677529221815</id><published>2008-01-23T12:01:00.000-05:00</published><updated>2008-01-23T09:15:20.292-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='focus'/><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><category scheme='http://www.blogger.com/atom/ns#' term='experiments'/><title type='text'>The Parable of the Parallel Parabola</title><content type='html'>OK, so....man, I wish I'd been detailing every little step so I wouldn't have to regurgitate it all up in a huge mass.  I'll try to make this short.&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/__HLRN4QOAxg/R5apdDKbzrI/AAAAAAAAAF8/8TIgmjhxQ6k/s1600-h/twogoodparabolae.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/__HLRN4QOAxg/R5apdDKbzrI/AAAAAAAAAF8/8TIgmjhxQ6k/s320/twogoodparabolae.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5158496739729854130" /&gt;&lt;/a&gt;

First of all, I used &lt;a href="http://projectpotpourri.blogspot.com/2008/01/parabolae-foci.html"&gt;my calculation&lt;/a&gt; to make a simple parabolic reflector.  I just plotted it out on graph paper and then set a few nails as guides to hold the mirror in place.  This actually worked really well.  (Even more surprising in light of how poorly the (first!) oven-formed one came out.  More about which below.)  &lt;p&gt;

The one on the right has a black dot where I pre-calculated the focus to be, the one on the left is just a different focal length.&lt;p&gt;

Now then.  Having a single strip mounted with nails isn't that useful to me, so I want to mass produce these.  Can't use the nail thing as a form since it'll just bend unevenly.  I spent quite a few days trying to figure out how to make a jig that would cut a perfect parabola, but it was too hard (I still have some ideas on that, though, but that's another 2 or 3 posts).  (And before you tell me, I know all about the T-square and string method of &lt;i&gt;drawing&lt;/i&gt; one.)  I eventually decided to just freehand follow a line.&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/__HLRN4QOAxg/R5aqCzKbztI/AAAAAAAAAGM/PTjFOH-oVng/s1600-h/parabolic_oven.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/__HLRN4QOAxg/R5aqCzKbztI/AAAAAAAAAGM/PTjFOH-oVng/s320/parabolic_oven.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5158497388269915858" /&gt;&lt;/a&gt;

So I had my shop assistant cut a parabola for me and I sandwiched the mirror in there.  (My shop assistant is my father-in-law down the street who actually owns a bandsaw.)&lt;p&gt;

(Other item of note: I originally wanted to have the mirror soften and sink down into shape, but that creates alignment problems.  Instead I clamped the bendy strip cold.  But that means it's hard to tell when I've reached temperature.  So I put a probe down into the coldest part of the thing.  The tip of the temperature probe is resting right on the mirror, so when that gets up to ~210&amp;deg;F, I can stick a fork in it.  This takes like 2 hours--wood is a really great insulator, unfortunately.)&lt;p&gt;

(Oh also: You can't see it, but there's a little alignment peg sticking out of the convex part of the form.  There's a corresponding hole in the concave part so it can stick through.  There's also a hole in the middle of each mirror.  If I put each mirror on the peg, then after I'm done with all of them, I can line them up perfectly.  So clev.)&lt;p&gt;&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/__HLRN4QOAxg/R5apuDKbzsI/AAAAAAAAAGE/Pvi7cBfi6pY/s1600-h/onebadparabolum.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/__HLRN4QOAxg/R5apuDKbzsI/AAAAAAAAAGE/Pvi7cBfi6pY/s320/onebadparabolum.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5158497031787630274" /&gt;&lt;/a&gt;

The result:  Not so great.&lt;p&gt;

How could that possibly be?  How could a few nails hastily thrown together at a few points make a better parabola than a careful, full-contact form?
&lt;p&gt;

Then a phrase floated up out of the darkness&lt;sup&gt;1&lt;/sup&gt;.  &lt;i&gt;The curve parallel to a parabola is not another parabola.&lt;/i&gt;  Just think about that for a minute.  If you have a parabola and you want to make a curve parallel to it, you can't just take the same parabola and shift it up.  Nor can you use some other parabola.  (&lt;a href="http://www.jstor.org/view/00494925/di020693/02p0043j/0?frame=noframe&amp;userID=8137c814@mit.edu/01c0a8487400505d71b&amp;dpi=3&amp;config=jstor"&gt;Read the gories yourself&lt;/a&gt;, it's pretty cool.  If you like that sort of thing.)&lt;P&gt;

So if you cut a parabolic form and sandwich it around a mirror, FOR EXAMPLE, then you are probably going to get the wrong shape because the two halves want to be parallel (i.e. separated by the thickness of the mirror) but can't.  Wellity wellity wellity.&lt;p&gt;

I took the equations in that paper and made a little program&lt;sup&gt;2&lt;/sup&gt; that would generate an &lt;a href="http://en.wikipedia.org/wiki/Scalable_Vector_Graphics"&gt;SVG&lt;/a&gt; file of the shapes I wanted.  Now I can take those back to my shop assistant and have him cut it out again.&lt;p&gt; 

(Note to anyone who actually reads this far, runs the program, examines the output and starts wondering: The curves aren't really all that different.  I think the issue isn't so much that the curve is wrong, but that the poor alignment doesn't provide even pressure across the entire mirror.  So it ends up wibbly-wobbly rather than smooth.  Then again, the freehand wood parabola isn't all that smooth either, so maybe THAT'S the source of the error.  The nail method at least creates a smooth curve, even if it isn't mathematically perfect.)&lt;p&gt;

&lt;sup&gt;1&lt;/sup&gt;I think it came from &lt;a href="http://www.amazon.com/Practical-Conic-Sections-J-Downs/dp/086651628X/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1201095422&amp;sr=8-2"&gt;&lt;i&gt;Practical Conic Sections&lt;/i&gt;&lt;/a&gt;, a really rip-roaring tale that I've been reading to the kids at bedtime.  But seriously, it's very clear and pretty practical. &lt;p&gt;

&lt;sup&gt;2&lt;/sup&gt; &lt;pre&gt;
#!/usr/bin/python

# p1 and p2 are parallel to the parabola, i.e. a constant distance
# away *along the normal to the parabola*.

# For a curve C with generated by the function y = f(x), the parallel
# curve C' is given parametrically by:

#                 y'
# X = x - k -------------
#           sqrt(1+(y')^2)
#
#                 1
# Y = y + k -------------
#           sqrt(1+(y')^2)

# where k is the distance of the parallel from the curve.

# For derivation, see "The Curve Parallel to a Parabola is not a
# Parabola" by F. Max Stein.

import math

print '&amp;lt;?xml version="1.0" standalone="no"?&amp;gt;'
print '&amp;lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"'
print '"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&amp;gt;'
print '&amp;lt;svg xmlns="http://www.w3.org/2000/svg"'
print '    width="8.5in" height="14in"&amp;gt;'

focallength = 2.5
a = 1/(4.0 * focallength)
mirrorwidth = .125

vertoffset = 7
horizoffset = 2
phorizoffset = 2
prevx = 0
prevy = 0
pprevx = 0
pprevy = 0
first = True
x = -5.5
while x &amp;lt;= 5.5:
    y = a*x*x
    px = x - (mirrorwidth * 2 * a * x)/(math.sqrt(1 + (2*a*x)**2))
    py = y + (mirrorwidth * 1)/(math.sqrt(1 + (2*a*x)**2))
    if not first:
        print '&amp;lt;line x1="%.2fin" y1="%.2fin" x2="%.2fin" y2="%.2fin" style="stroke:black;stroke-width:2"/&amp;gt;' \
              % (prevy+horizoffset, prevx+vertoffset, y+horizoffset,x+vertoffset)
        print '&amp;lt;line x1="%.2fin" y1="%.2fin" x2="%.2fin" y2="%.2fin" style="stroke:red;stroke-width:2"/&amp;gt;' \
              % (pprevy+phorizoffset, pprevx+vertoffset, py+phorizoffset,px+vertoffset)
    prevx = x
    prevy = y
    pprevx = px
    pprevy = py
    x += .125
    first = False

print '&amp;lt;/svg&amp;gt;'
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-1626371677529221815?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/1626371677529221815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/01/parable-of-parallel-parabola.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1626371677529221815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1626371677529221815'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/01/parable-of-parallel-parabola.html' title='The Parable of the Parallel Parabola'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/__HLRN4QOAxg/R5apdDKbzrI/AAAAAAAAAF8/8TIgmjhxQ6k/s72-c/twogoodparabolae.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-3330302273204161235</id><published>2008-01-11T14:00:00.000-05:00</published><updated>2008-01-11T10:45:47.705-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='focus'/><category scheme='http://www.blogger.com/atom/ns#' term='mirror'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><title type='text'>Parabolae Foci</title><content type='html'>I keep having to solve this problem.  It's not hard, but to "save time" I usually google it and find too much information and not enough explanation.  Then I end up solving it myself.  And it's so easy that each time I figure it out I'm like "there's no need to write this down--it's obvious BY INSPECTION".  And then I forget it.  So here it is:&lt;p&gt;

Where is the focus of a parabola?  Alternatively, what formula should I use to create a parabola with a given focus?&lt;p&gt;

Take the equation &lt;tt&gt;y = ax&lt;sup&gt;2&lt;/sup&gt;&lt;/tt&gt;.  Obviously the focus will be on the y-axis, but how far up?  We know all the incoming rays will meet there, so let's choose a convenient one.  A great choice is a ray that is turned by 90&amp;deg;.  That is, it comes in vertically, hits the parabola, and heads towards the focus horizontally.&lt;p&gt;

Since the angle of incidence equals the angle of reflection, the slope of the parabola at the point the ray hits is going to be 45&amp;deg;. (I spent like 20 minutes using gnuplot and the gimp trying to illustrate this before giving up.  Just visualize it.)  Where on a parabola is the slope 45&amp;deg;?  Slope is also rise/run, so the the slope in the &lt;tt&gt;y = mx + b&lt;/tt&gt; sense is 1.  Where is the slope 1?&lt;p&gt;

The equation was &lt;tt&gt;y = ax&lt;sup&gt;2&lt;/sup&gt;&lt;/tt&gt;.  The instantaneous slope is the derivative, &lt;tt&gt;y' = 2ax&lt;/tt&gt;.  We want that to be 1.&lt;p&gt;

&lt;tt&gt;
2ax = 1&lt;br&gt;
x = 1/2a&lt;br&gt;
&lt;/tt&gt;&lt;br&gt;

Substitute in to find out where on the y-axis this is.&lt;p&gt;

&lt;tt&gt;
y = ax&lt;sup&gt;2&lt;/sup&gt;&lt;br&gt;
y = a(1/2a)&lt;sup&gt;2&lt;/sup&gt;&lt;br&gt;
y = 1/4a&lt;br&gt;
&lt;/tt&gt;&lt;br&gt;

Now let's say I want to make a parabola with a focus that is 6 inches from the bottom of the curve.  &lt;p&gt;

&lt;tt&gt;
1/4a = 6 inches&lt;br&gt;
a = 1/24 inches&lt;br&gt;
&lt;/tt&gt;&lt;br&gt;

Therefore my equation in inches should be: &lt;tt&gt;y = .0416x&lt;sup&gt;2&lt;/sup&gt;&lt;/tt&gt;.  (&lt;b&gt;I think.&lt;/b&gt;  Contradicting my claim about how easy this is is the fact that I actually got this wrong on paper, TWICE, before posting this.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-3330302273204161235?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/3330302273204161235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/01/parabolae-foci.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/3330302273204161235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/3330302273204161235'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/01/parabolae-foci.html' title='Parabolae Foci'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-6841051844784679047</id><published>2008-01-07T12:00:00.000-05:00</published><updated>2008-01-07T09:10:44.453-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='focus'/><category scheme='http://www.blogger.com/atom/ns#' term='mirror'/><category scheme='http://www.blogger.com/atom/ns#' term='experiments'/><title type='text'>SUCCESS!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/__HLRN4QOAxg/R4Gan3Jt0eI/AAAAAAAAAFE/rlhHoJq0Sh0/s1600-h/focus.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/__HLRN4QOAxg/R4Gan3Jt0eI/AAAAAAAAAFE/rlhHoJq0Sh0/s320/focus.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5152569458298835426" /&gt;&lt;/a&gt;&lt;p&gt;

A non-blurry, curved mirror.&lt;p&gt;

&lt;a href="http://projectpotpourri.blogspot.com/2007/12/acrylic-mirror-failures-learning.html"&gt;In my last post&lt;/a&gt;, I hypothesized the problem might be too much time spent in the oven, causing some kind of degradation.  That prompted &lt;a href="http://www.bigroom.org/wordpress"&gt;epicanis&lt;/a&gt; to wonder if the acrylic was oxidizing.  That in turn made me actually take a close look at the failed samples (why I didn't already do this is a mystery).  &lt;p&gt;

The acrylic is actually fine in those failures.  It's the mirror backing that cheesed out on me.  What is the backing made of?  Who knows!  What do I do about it?  I dunno!&lt;p&gt;

Then I was coincidentally reading a book about polymer clay and it had a tip for firing: Put it in at a sub-firing temperature to evenly heat the item, then turn it up to actually harden it.  And I was all: whoa.   I know that the softening point for acrylic is around 230&amp;deg;F, but I've had to turn the oven up to 250&amp;deg;F to get the samples to bend.  I've been chalking it up to oven imprecision and chemical composition variation.  But I think the real issue is that the core of the mirror doesn't get hot enough until the outside is too hot.&lt;p&gt;

So this time I put the whole apparatus (which I should have taken a pic of, sorry) inside the oven at 200&amp;deg;F until a probe told me it was more or less up to temp.  Then I just cranked it up to 215&amp;deg;F and &lt;i&gt;voila&lt;/i&gt;, it worked.&lt;p&gt;

Now I need to do a bunch of these at once (or one large sheet)...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-6841051844784679047?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/6841051844784679047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/01/success.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/6841051844784679047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/6841051844784679047'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/01/success.html' title='SUCCESS!'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/__HLRN4QOAxg/R4Gan3Jt0eI/AAAAAAAAAFE/rlhHoJq0Sh0/s72-c/focus.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-5130155742463916122</id><published>2008-01-02T01:00:00.000-05:00</published><updated>2008-01-01T22:08:40.502-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='clock'/><category scheme='http://www.blogger.com/atom/ns#' term='binary'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Your Favorite Geek Desk Toy Sucks</title><content type='html'>I've seen &lt;a href="http://www.thinkgeek.com/homeoffice/lights/59e0/"&gt;these binary clocks&lt;/a&gt; around the office.  They are fairly cool, but they fail to please in one important way: Each &lt;i&gt;decimal&lt;/i&gt; digit is represented separately. 14 seconds is represented as a binary 1 and a binary 4, rather than a binary 14.  Granted, reading 6 bits depicting 0-59 seconds is a little harder than the 4 bits required for 0-9.  But is ease of use really the primary concern of a binary clock?&lt;p&gt;

&lt;b&gt;MISSION:&lt;/b&gt; Build this clock the right way.  Namely, 6 bits for the seconds, 6 bits for the minutes and 5 bits for the hour (or maybe 4 bits for the hour with 1 bit for AM/PM).  (Another idea would be a straight-up 17 bits for the 86400 seconds in a day, but seriously.)&lt;p&gt;

Now then.  I know there are clock chips out there.  And it is probably possible to do this using hardware only, say with a 555.  But I'm a dumb programmer, so everything looks like a Turing-complete problem to me.  Plus I already have an &lt;a href="http://www.arduino.cc"&gt;Arduino&lt;/a&gt;.  So that's the medium of choice.  Using an Arduino, some LEDs and resistors and &lt;i&gt;pure force of will&lt;/i&gt;, I'm going to make this work.&lt;P&gt;

But there's a problem already.  My design calls for 17 LEDs.  The Arduino only has 14 output ports&lt;sup&gt;1&lt;/sup&gt;, 2 of which I can't use because they are special.  The solution to this problem is multiplexing.  The basic idea is that you use X/Y coordinates to address each LED, Battleship-style.  So for MxN LEDs, you only need M+N ports.&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/__HLRN4QOAxg/R3fSCHJt0bI/AAAAAAAAAEs/ZHIOklVErEg/s1600-h/multiplex_leds.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/__HLRN4QOAxg/R3fSCHJt0bI/AAAAAAAAAEs/ZHIOklVErEg/s320/multiplex_leds.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5149815632642822578" /&gt;&lt;/a&gt;

Let's say I want to light up the LED labeled 0,0.  I need to apply positive voltage to A (the left column) and negative to 1 (the bottom row). B and C should be low while 1 and 2 should be high to "push the wrong way" against the remaining diodes.&lt;p&gt;

But now there's another problem.  Let's say I want to light up both 0,0 and 2,2.  I apply positive to A and C and negative to 1 and 3...and I get all four corners lit up.  Long story short, it is also necessary to employ a spot of subterfuge.  If I want 0,0 and 2,2 lit up, I have to do them one at a time, but switch back and forth so fast nobody's the wiser.&lt;p&gt;

And finally, there's the little matter of the clock function itself.  There isn't an API call for that exactly, but the underlying chip supports interrupts.  I basically just copyandpasted the timer code from elsewhere and then added a long comment explaining it to myself, probably incorrectly.&lt;p&gt;

Grainy video (the ticking is an amazingly coincidental loud clock in the same room): &lt;p&gt;

&lt;object width="425" height="350"&gt; &lt;param name="movie" value="http://www.youtube.com/v/y3ElyQf1Fl0"&gt; &lt;/param&gt; &lt;embed src="http://www.youtube.com/v/y3ElyQf1Fl0" type="application/x-shockwave-flash" width="425" height="350"&gt; &lt;/embed&gt; &lt;/object&gt;&lt;p&gt;

Somewhat less grainy still shot:&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/__HLRN4QOAxg/R3r6_XJt0dI/AAAAAAAAAE8/b9jjVMmCmCQ/s1600-h/binaryclock.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/__HLRN4QOAxg/R3r6_XJt0dI/AAAAAAAAAE8/b9jjVMmCmCQ/s400/binaryclock.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5150705090305053138" /&gt;&lt;/a&gt;&lt;p&gt;

The code:&lt;p&gt;

&lt;pre&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;
#include &amp;lt;avr/io.h&amp;gt;

#define NUMPOS 6
#define NUMNEG 3

int pos[NUMPOS] = {9,8,7,6,5,4};
int neg[NUMNEG] = {12,11,10};

int i = 0;
int j = 0;
int k = 0;
int lastpos = 0;
int lastneg = 0;

int isr_counter = 0;
int oldsecond = 0;
volatile int second = 0;
int seconds = 0;
int minutes = 31;
int hours = 13;

/*  
   Here's how I think this works.  The Atmega168 clock runs at 16MHz.  
   The "prescaler" divides that down.  In this case, it clicks at 2MHz.  
   Each time it clicks, it increments at 8 bit register by 1.  The register
   overflows after 256 clicks.  That overflow is the interrupt we receive.

   2000000 clicks/second divided by 256 clicks/overflow = 7812.5 overflows/second.
   So if I could count 7812.5 overflows, I know a second has elapsed.  I can't
   find .5 of an overflow, so I should really use the /4 prescaler.  But 
   a) that uses more power and b) I can't figure out what bits to set to do that.  
*/

ISR(TIMER2_OVF_vect) {
  isr_counter++;
  if (isr_counter &amp;gt; 7811) {
    second++;
    isr_counter = 0;
  }
};  

void SetupTimer2(){
  //Timer2 Settings: Timer Prescaler /8, mode 0
  //Timer clock = 16MHz/8 = 2Mhz or 0.5us
  //The /8 prescale gives us a good range to work with
  //so we just hard code this for now.
  TCCR2A = 0;
  TCCR2B = 0&amp;lt;&amp;lt;CS22 | 1&amp;lt;&amp;lt;CS21 | 0&amp;lt;&amp;lt;CS20;

  //Timer2 Overflow Interrupt Enable
  TIMSK2 = 1&amp;lt;&amp;lt;TOIE2;

  //load the timer
  TCNT2=0;
}

void setup() {
  for(i = 0; i&amp;lt;NUMPOS; i++) {
    pinMode(pos[i], OUTPUT);
  }
  for(i = 0; i&amp;lt;NUMNEG; i++) {
    pinMode(neg[i], OUTPUT);
  }

  for(i = 0; i&amp;lt;NUMPOS; i++) {
    digitalWrite(pos[i],LOW);
  }
  for(i = 0; i&amp;lt;NUMNEG; i++) {
    digitalWrite(neg[i],HIGH);
  }
  
  Serial.begin(9600);
  SetupTimer2();
}

void showXY(int col, int row) {
  digitalWrite(pos[lastpos],LOW);
  digitalWrite(neg[lastneg],HIGH);

  digitalWrite(pos[row],HIGH);
  digitalWrite(neg[col],LOW);
  
  lastpos = row;
  lastneg = col;
}

void loop() {
  // time changed, so readjust all the details
  if (oldsecond != second) {
    if (second &amp;gt; 59) {
      second = 0;
      minutes++;
      if (minutes &amp;gt; 59) {
        minutes = 0;
        hours++;
        if (hours &amp;gt; 23) {
         hours = 0;
        }
      }
    }          
    seconds = second;
    oldsecond = second;
  }

  // seconds is column 2 and has 6 bits
  k = 2;
  for(j=0; j&amp;lt;6; j++) {
    if (seconds &amp;gt;&amp;gt; j &amp; 1) {
      showXY(k,j);
    }
  }

  // minutes is column 1 and has 6 bits
  k = 1;
  for(j=0; j&amp;lt;6; j++) {
    if (minutes &amp;gt;&amp;gt; j &amp; 1) {
      showXY(k,j);
    }
  }

  // hours is column 0 and has 5 bits
  k = 0;
  for(j=0; j&amp;lt;5; j++) {
    if (hours &amp;gt;&amp;gt; j &amp; 1) {
      showXY(k,j);
    }
  }

}
&lt;/pre&gt;

&lt;sup&gt;1&lt;/sup&gt;Possibly not true.  I found one post that said the 6 analog in ports could be used as digital out.  But even if multiplexing isn't strictly necessary for this project, it would be for a larger one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-5130155742463916122?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/5130155742463916122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2008/01/your-favorite-geek-desk-toy-sucks.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5130155742463916122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5130155742463916122'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2008/01/your-favorite-geek-desk-toy-sucks.html' title='Your Favorite Geek Desk Toy Sucks'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/__HLRN4QOAxg/R3fSCHJt0bI/AAAAAAAAAEs/ZHIOklVErEg/s72-c/multiplex_leds.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-1764441535165306621</id><published>2007-12-28T12:00:00.000-05:00</published><updated>2007-12-28T08:47:32.224-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='focus'/><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><category scheme='http://www.blogger.com/atom/ns#' term='mirror'/><category scheme='http://www.blogger.com/atom/ns#' term='temperature'/><category scheme='http://www.blogger.com/atom/ns#' term='experiments'/><title type='text'>Acrylic Mirror Failures Learning Opportunities</title><content type='html'>The &lt;a href="http://projectpotpourri.blogspot.com/2007/12/miscellaneous.html"&gt;acrylic mirror samples&lt;/a&gt; arrived.  I got 3 mirrors about the size of a credit card, but thicker, like a piece of glass.&lt;p&gt;

&lt;b&gt;OBJECTIVE:&lt;/b&gt; Create a "trough mirror" that focuses onto a line.&lt;p&gt;

&lt;b&gt;KEY FACT #1:&lt;/b&gt; Acrylic mirror softens and bends at around 230-250&amp;deg;F.&lt;p&gt;

&lt;b&gt;KEY FACT #2:&lt;/b&gt; A parabola is a mathematically perfect focusing shape, but (a small section of) a circle is plenty fine for my needs.&lt;p&gt;

&lt;b&gt;FIRST ATTEMPT:&lt;/b&gt;&lt;p&gt;

I got a big, glass jar with smooth sides.  I put it lying down inside the oven.  I balanced the mirror on top, shiny side pointing down (and with the protective plastic sheet still on it).  I had to tape the mirror in place.  &lt;p&gt;

Starting at around 215&amp;deg;F, I slowly heated the oven up until the mirror ends started drooping.    After probably an hour of watching it slooooooowly bend, I just reached in with an oven mitt and press-formed it to the glass.&lt;p&gt;

RESULT: Meh.  The shape is great and the focusing is accurate but the mirror got all foggy.  It looks more like polished metal now.  Also the spots where the tape was touching are distorted.&lt;p&gt;

&lt;b&gt;SECOND ATTEMPT:&lt;/b&gt;&lt;p&gt;

My theory was that I should have the mirror pointing up, which might make the cloudiness go away and would make using tape unnecessary.&lt;p&gt;

This time I used a regular soup pan tipped on its side.  I put the mirror inside so it could form to the inside curve of the pan.  Left the protective plastic on.  Set the oven to 250&amp;deg;F (that's what I had worked up to from the first attempt) and waited.  And waited.  And waited.&lt;p&gt;

Once again, I eventually just reached in and press formed it.  When I removed the sheet....still cloudy.  &lt;p&gt;

&lt;b&gt;THIRD ATTEMPT:&lt;/b&gt; &lt;p&gt;

I watched &lt;a href="http://youtube.com/watch?v=23kkZZN1ACs"&gt;the video&lt;/a&gt; again.  Oh, I'm supposed to remove the protective plastic.  Replay the second attempt, but this time remove the thing first.&lt;p&gt;

After waiting the requisite Long Time, I could see the mirror was already foggy even before I press forming it.  Aha!  Not the plastic or the form!&lt;p&gt;

&lt;b&gt;WHAT'S PROBABLY GOING ON:&lt;/b&gt;&lt;p&gt;

I have small samples, so gravity isn't enough to bend them until they are very soft from being in the oven for 45 minutes or more.  In that amount of time, some chemical degradation (or something) is causing the cloudiness.  If I rig up some way to put a weight on top of the sample, maybe I could speed that up.  Or I could just reach in there earlier and do it by hand.&lt;p&gt;

But now I'm out of samples.  I can bend and rebend the cloudy ones just to test out some weighting system and/or get my timing right.  But I'll only be able to check if the cloudiness disappears if I buy more mirror.  Which I can do, but I hate the shipping charges.  Ah well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-1764441535165306621?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/1764441535165306621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/12/acrylic-mirror-failures-learning.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1764441535165306621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1764441535165306621'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/12/acrylic-mirror-failures-learning.html' title='Acrylic Mirror &lt;strike&gt;Failures&lt;/strike&gt; Learning Opportunities'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-1468435962436009850</id><published>2007-12-18T12:00:00.000-05:00</published><updated>2007-12-18T08:50:45.838-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diet'/><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><category scheme='http://www.blogger.com/atom/ns#' term='mirror'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><category scheme='http://www.blogger.com/atom/ns#' term='experiments'/><title type='text'>Miscellaneous</title><content type='html'>&lt;ol&gt;

&lt;li&gt;I had a long, long thing here about how following &lt;a href="http://projectpotpourri.blogspot.com/2007/10/how-to-lose-weight-and-i-dont-even.html"&gt;my plan&lt;/a&gt; was so easy, but it kept reading like &lt;i&gt;Tighter Buns in 30 Days While Eating Pizza&lt;/i&gt;, so let's leave it at this: Down by almost 27 pounds.&lt;/li&gt;&lt;p&gt;

&lt;li&gt;Way back when, I did &lt;a href="http://projectpotpourri.blogspot.com/2007/08/temperature-of-what.html"&gt;some solar experiments&lt;/a&gt;.  I said I'd come back to that.  I'm still working on that.  The problem is, the design I came up with is kind of crappy.&lt;p&gt;

What I want is a parabolic trough mirror focused on a central pipe.  I've tried using mylar sheets on various surfaces before, but it didn't come out too well.  This time I tried strips of mirror laid in a wooden parabolic form.  I haven't tested it yet, but it doesn't look too convincing on the workbench.  Lots of gaps, not much total area, not well focused, etc. (No picture, because seriously.)&lt;p&gt;

While I was wondering what to do about all this, I came across &lt;a href="http://youtube.com/watch?v=23kkZZN1ACs"&gt;this video&lt;/a&gt;.  The guy comes across as a little infomercially, but his ideas look pretty good.  In particular, I didn't know you could "drape form" plexiglass (aka "acrylic") mirror.  That changes everything!  Almost zero work and much higher efficiency.&lt;/li&gt;&lt;p&gt;

&lt;li&gt;Which brings me to the third misc item.  WhereTF do you find acrylic mirror at a reasonable price?  I've found it as low as &lt;a href="http://www.interstateplastics.com/detail.aspx?ID=acrylicmirror-SCl013"&gt;$4.50/sqft&lt;/a&gt;, but you have to buy at least $50, not to mention shipping.  Plenty of ebayers, but the price with shipping never comes out lower than ~$12/sqft and you have to buy several sqft to get that.  Lowe's can special order it, but you have to buy &lt;b&gt;5 48"x96" sheets&lt;/b&gt; and it's still $8/sqft.  &lt;a href="http://www.mcmaster.com/"&gt;McMaster-Carr&lt;/a&gt;, despite their awesome website, doesn't reveal shipping information even if you ask a live human being, which, HELLO.&lt;p&gt;

This kind of mirror is used in a lot of children's products because it's shatterproof, so I've considered repurposing a baby mirror, but the cost is still pretty high there due to packaging, frames, etc.  I've even wandered around Home Depot and Lowe's to see if I could find a bathroom/decorative/whatever acrylic mirror on some other product.  The sole success was a really, really crappy medicine cabinet with attached acrylic mirror.  The whole unit was $12 and the mirror was 2 sqft.&lt;p&gt;

I would just go with that, but the fact that it's attached to something else only proves that I should be able to get the mirror alone for cheaper.  Also, I hate to buy something specifically so I can throw it away.  In the mean time, I ordered a set of &lt;a href="http://www.sciplus.com/singleItem.cfm/terms/11409"&gt;these&lt;/a&gt; to experiment with.  With the shipping, even amortized over several other items in my order, the price per sqft comes out at lalalaicanthearyou.
&lt;/li&gt;

&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-1468435962436009850?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/1468435962436009850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/12/miscellaneous.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1468435962436009850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1468435962436009850'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/12/miscellaneous.html' title='Miscellaneous'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-4856299151429148230</id><published>2007-11-27T13:00:00.000-05:00</published><updated>2007-11-28T12:22:08.229-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lego'/><category scheme='http://www.blogger.com/atom/ns#' term='art'/><title type='text'>Tic Tac Lego</title><content type='html'>The building where I work has several "closed areas" where cellphones aren't allowed in.  But of course people still bring their cells to work, plus there are visitors, random construction workers, etc and these people need a place to put their phones while they are inside.  So they recently installed a cellphone cubby outside the door to the closed area.  The cubby isn't just outside the door, it is also directly across from the main stairwell door that leads to it.  It has a very prominent placement, is what I'm saying.&lt;p&gt;

The cubby is a 3x3 array of squares.  Every single time I pass it I think of tic-tac-toe.  Surely I can't be the only one that thinks of this, so I thought it would be funny to put Xs and Os in there for everyone else to enjoy.  But how to make them?  Eventually my officemate thought of Lego.  Of course!&lt;p&gt;

We actually went through a few designs that were rejected because of strength issues or ugliness or size.  Finally I hit on a pretty strong design for both pieces that, if I do say so myself, looks very nice. &lt;P&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/__HLRN4QOAxg/R0jWlna7qxI/AAAAAAAAAEk/qD_yifL6kv4/s1600-h/tictaclego.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/__HLRN4QOAxg/R0jWlna7qxI/AAAAAAAAAEk/qD_yifL6kv4/s320/tictaclego.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5136591316741499666" /&gt;&lt;/a&gt;

Don't these look great?  They look like very font-like, I think.  Or maybe I'm overthinking it.  Anyway, they are exactly the same height and width, which is also exactly the right size to fit the cubbies.&lt;p&gt;

Unfortunately, cameras are even less allowed than cellphones, so I can't take a picture &lt;i&gt;in situ&lt;/i&gt;.  However, I'm posting this a while after putting it up, so here's a sample of coworker reactions:

&lt;ul&gt;
&lt;li&gt;&lt;i&gt;nothing&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;small, confused smile&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;swapping of X for O to change outcome of illustrated game&lt;/i&gt; (happened many times)&lt;/li&gt;
&lt;li&gt;"Niiiiiice" (in a Korean cleaning lady accent)&lt;/li&gt;
&lt;li&gt;"Are you the LegoMeister?  Nicely done."&lt;/li&gt;
&lt;li&gt;From my boss's boss: &lt;i&gt;something whispered about tic tac toe&lt;/i&gt;  I guess he was trying to keep my identity secret?&lt;/li&gt;
&lt;li&gt;I've noticed many games in progress, with one move played by each passer-by.  Also, I've heard reports of some people just standing in front of the cubbies to play a whole game.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-4856299151429148230?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/4856299151429148230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/11/tic-tac-lego.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4856299151429148230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4856299151429148230'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/11/tic-tac-lego.html' title='Tic Tac Lego'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/__HLRN4QOAxg/R0jWlna7qxI/AAAAAAAAAEk/qD_yifL6kv4/s72-c/tictaclego.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-1717107332689445182</id><published>2007-11-06T13:00:00.000-05:00</published><updated>2007-11-06T10:47:41.128-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tornado'/><category scheme='http://www.blogger.com/atom/ns#' term='cardboard'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><category scheme='http://www.blogger.com/atom/ns#' term='experiments'/><title type='text'>Tornado in a Box</title><content type='html'>1: Cut a hole in a box&lt;br&gt;
2: Put your.....no&lt;p&gt;

&lt;div&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/__HLRN4QOAxg/Ry_Vgfk5KzI/AAAAAAAAAD8/y5znYhi81PU/s1600-h/cardboard_tube.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/__HLRN4QOAxg/Ry_Vgfk5KzI/AAAAAAAAAD8/y5znYhi81PU/s320/cardboard_tube.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5129553254807055154" /&gt;&lt;/a&gt;

1: Make a large, square(ish), cardboard tube.  Mine is about a meter high and maybe .25 m x .25 m at the base.  This is actually two boxes taped together.  They aren't even the same size--I just blocked the holes with cardboard and duct tape.
&lt;/div&gt;&lt;p&gt;

&lt;div style="float:left;"&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/__HLRN4QOAxg/RzB_Mfk5K3I/AAAAAAAAAEc/E8gElv94jFY/s1600-h/slit2.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/__HLRN4QOAxg/RzB_Mfk5K3I/AAAAAAAAAEc/E8gElv94jFY/s320/slit2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5129739828186393458" /&gt;&lt;/a&gt;

2: On each side, make a slit near the right edge.  Or the left edge.  But the same for all 4 sides.  It doesn't matter which you pick, since you can reverse it by flipping the tube end for end.&lt;p&gt;

The exact width and distance from the edge don't matter too much and you can see I wandered all over the place.  Hey, cutting cardboard is kind of hard!&lt;p&gt;
&lt;/div&gt;&lt;p&gt;

&lt;div style="float:left;"&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/__HLRN4QOAxg/Ry_Xafk5K2I/AAAAAAAAAEU/CLkITHpkE-8/s1600-h/tornado2.JPG"&gt;&lt;img style="float:right; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/__HLRN4QOAxg/Ry_Xafk5K2I/AAAAAAAAAEU/CLkITHpkE-8/s320/tornado2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5129555350751095650" /&gt;&lt;/a&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/__HLRN4QOAxg/Ry_Wq_k5K1I/AAAAAAAAAEM/D9beeaXGsDg/s1600-h/tornado1.JPG"&gt;&lt;img style="float:right; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/__HLRN4QOAxg/Ry_Wq_k5K1I/AAAAAAAAAEM/D9beeaXGsDg/s320/tornado1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5129554534707309394" /&gt;&lt;/a&gt;

3: Boil some water inside.  I went to WalMart for a hotplate but the cheapest one was $20.  I tried it on the stove, but that's dangerous and it was hard to see.  Then I thought of the bottom of the rice steamer. &lt;p&gt; 

Position the tornado box under a light to maximize the reflection from the droplets.&lt;p&gt;

We found that when the steamer was going full....steam, there was too much steam in there swirling around (steam steam steam).  So if you turn it on and off every few minutes it might work better.  Also, we tried using a steam humidifier but we got nothing at all.  I think the steam jet might be coming out too fast and hot.  (An ultrasonic humidifier probably has better visibility, but since it isn't hot you'd be missing another vital ingredient.)&lt;p&gt;

The payoff at the end: I asked the Numbers, now that they'd seen a tornado being made, when and where would hurricanes be most likely?  In the winter at the North Pole or in the summer at the equator.  Ooooooooh, I get it! they said.  
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-1717107332689445182?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/1717107332689445182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/11/tornado-in-box.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1717107332689445182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1717107332689445182'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/11/tornado-in-box.html' title='Tornado in a Box'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/__HLRN4QOAxg/Ry_Vgfk5KzI/AAAAAAAAAD8/y5znYhi81PU/s72-c/cardboard_tube.JPG' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-5181431787311167858</id><published>2007-11-01T00:30:00.000-04:00</published><updated>2007-10-31T21:16:38.543-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='halloween'/><category scheme='http://www.blogger.com/atom/ns#' term='pumpkin'/><category scheme='http://www.blogger.com/atom/ns#' term='carving'/><title type='text'>Pumpkin</title><content type='html'>Every single year I think "I'd like to do something different than the usual triangle eyes and so forth" and every single year I fail to find a pumpkin carving kit.  This year, Number Two (6 years old) was pretty excited about the idea of weird designs and we escalated awesome ideas up and up to the point that I knew I had to do &lt;b&gt;something&lt;/b&gt;.&lt;p&gt;

I had some jigsaw blades lying around.  I cut the end off (diagonally, to leave a sharp point) with a wire cutter.  Then I sandwiched it between two sticks of wood to make a handle and wrapped it up with duct tape.  It works really well.  Surprisingly well, actually.  There's only two problems, one of which is fixable.&lt;p&gt;

&lt;ol&gt;
&lt;li&gt;The saw blade isn't long enough.  I was able to cut all the way through the pumpkins in most places, but some spots I had to go back over with a knife.  A longer blade shouldn't be too hard, though too much longer and it will have to be thicker, which makes fine cuts harder. &lt;/li&gt;
&lt;li&gt;Pumpkin shavings are emitted, which collect on the surface, obscuring (or even erasing) the lines drawn there.  That said, none of the three of us had any major problems with it.  In my case, I just worked in a consistent pattern so that I wasn't dropping goop on places I'd need to see later.&lt;/li&gt;
&lt;/ol&gt;

This year's pumpkins were tests of the method and of how well the pumpkin holds up with so much material removed.  Here's the result:&lt;p&gt;



&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/__HLRN4QOAxg/RycuOfk5KxI/AAAAAAAAADs/2uKdTRMpT5w/s1600-h/pumpkin.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/__HLRN4QOAxg/RycuOfk5KxI/AAAAAAAAADs/2uKdTRMpT5w/s320/pumpkin.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5127117527313885970" /&gt;&lt;/a&gt;&lt;p&gt;

OK, this isn't my personal pumpkin--it's a collaboration between Number Two and I.  But it shows we tried.&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/__HLRN4QOAxg/Rykn5fk5KyI/AAAAAAAAAD0/bKyZpWX96cU/s1600-h/pumpkinpi_cropped.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/__HLRN4QOAxg/Rykn5fk5KyI/AAAAAAAAAD0/bKyZpWX96cU/s320/pumpkinpi_cropped.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5127673519420287778" /&gt;&lt;/a&gt;&lt;p&gt;

Pumpkin &lt;b&gt;PI&lt;/b&gt;, get it?  PI (=PIE)??&lt;p&gt;

You don't get it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-5181431787311167858?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/5181431787311167858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/10/pumpkin.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5181431787311167858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5181431787311167858'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/10/pumpkin.html' title='Pumpkin'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/__HLRN4QOAxg/RycuOfk5KxI/AAAAAAAAADs/2uKdTRMpT5w/s72-c/pumpkin.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-2245372049629027184</id><published>2007-10-23T12:36:00.001-04:00</published><updated>2007-10-23T13:26:43.157-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stamps'/><category scheme='http://www.blogger.com/atom/ns#' term='data'/><category scheme='http://www.blogger.com/atom/ns#' term='experiments'/><title type='text'>What Price A Stamp?</title><content type='html'>So stamp prices are going up again.  And by "going" I mean "went, like 5 months ago".  The wheels of Project Potpourri grind slowly, but they grind exceedingly fine.&lt;p&gt;

Now they have a Forever Stamp.  You buy it today and it will be good until the end of time regardless of future price increases.  Sounds like a great way to save literally &lt;i&gt;hundreds&lt;/i&gt; of cents, right?  My wife (or maybe it was me--these human details are so much dross) posed this question: If I buy a 41 cent Forever Stamp in 2007, am I really saving money vs a 53 cent stamp in 2020 or does it come out in the inflationary wash?  &lt;p&gt;

IIRC, inflation is something like 3% per year, but of course we don't have the information on what future stamp prices are going to be.  What about history?  How closely have stamp prices tracked inflation in the past?  Using &lt;a href="http://www.akdart.com/postrate.html"&gt;a history of stamp prices&lt;/a&gt; and &lt;a href="ftp://ftp.bls.gov/pub/special.requests/cpi/cpiai.txt"&gt;relative dollar values since 1913&lt;/a&gt; I was able to answer this question.  (Notes: All this is based on the first ounce only.  I didn't try to go back farther than 1913.  For each year, I only use the average dollar value for the year, I didn't break it down by month.  For years with more than one price increase, I only report the last one.  Since 2007 isn't over yet, I used the last dollar value available, which is September.)&lt;p&gt;

&lt;table border=1&gt;
&lt;tr&gt;&lt;td&gt;Year&lt;/td&gt;&lt;td&gt;Apparent price that year&lt;/td&gt;&lt;td&gt;Stamp price in 2007 dollars&lt;/td&gt;&lt;td&gt;% diff relative to today&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1917&lt;/td&gt;&lt;td&gt;0.03&lt;/td&gt;&lt;td&gt;0.49&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1919&lt;/td&gt;&lt;td&gt;0.02&lt;/td&gt;&lt;td&gt;0.24&lt;/td&gt;&lt;td&gt;-70&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1932&lt;/td&gt;&lt;td&gt;0.03&lt;/td&gt;&lt;td&gt;0.46&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1958&lt;/td&gt;&lt;td&gt;0.04&lt;/td&gt;&lt;td&gt;0.29&lt;/td&gt;&lt;td&gt;-42&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1963&lt;/td&gt;&lt;td&gt;0.05&lt;/td&gt;&lt;td&gt;0.34&lt;/td&gt;&lt;td&gt;-20&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1968&lt;/td&gt;&lt;td&gt;0.06&lt;/td&gt;&lt;td&gt;0.36&lt;/td&gt;&lt;td&gt;-14&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1971&lt;/td&gt;&lt;td&gt;0.08&lt;/td&gt;&lt;td&gt;0.41&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1974&lt;/td&gt;&lt;td&gt;0.10&lt;/td&gt;&lt;td&gt;0.42&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1975&lt;/td&gt;&lt;td&gt;0.13&lt;/td&gt;&lt;td&gt;0.50&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1978&lt;/td&gt;&lt;td&gt;0.15&lt;/td&gt;&lt;td&gt;0.48&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1981&lt;/td&gt;&lt;td&gt;0.20&lt;/td&gt;&lt;td&gt;0.46&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1985&lt;/td&gt;&lt;td&gt;0.22&lt;/td&gt;&lt;td&gt;0.43&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1988&lt;/td&gt;&lt;td&gt;0.25&lt;/td&gt;&lt;td&gt;0.44&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1991&lt;/td&gt;&lt;td&gt;0.29&lt;/td&gt;&lt;td&gt;0.44&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1995&lt;/td&gt;&lt;td&gt;0.32&lt;/td&gt;&lt;td&gt;0.44&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1999&lt;/td&gt;&lt;td&gt;0.33&lt;/td&gt;&lt;td&gt;0.41&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2001&lt;/td&gt;&lt;td&gt;0.34&lt;/td&gt;&lt;td&gt;0.40&lt;/td&gt;&lt;td&gt;-2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2002&lt;/td&gt;&lt;td&gt;0.37&lt;/td&gt;&lt;td&gt;0.43&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2006&lt;/td&gt;&lt;td&gt;0.39&lt;/td&gt;&lt;td&gt;0.40&lt;/td&gt;&lt;td&gt;-1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2007&lt;/td&gt;&lt;td&gt;0.41&lt;/td&gt;&lt;td&gt;0.41&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;p&gt;

It used to fluctuate quite a bit, but for almost the last 30 years, they've been within a few percents of the same price.  And given that even a 10% difference is only $.04, I'd call it fairly constant over the last 100 years (except for a few years).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-2245372049629027184?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/2245372049629027184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/10/what-price-stamp.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2245372049629027184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2245372049629027184'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/10/what-price-stamp.html' title='What Price A Stamp?'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-2698957757657652404</id><published>2007-10-01T09:07:00.000-04:00</published><updated>2007-10-01T12:29:11.624-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diet'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><title type='text'>How To: Lose Weight (And I Don't Even Mention Lettuce!)</title><content type='html'>First of all, let's define our terms.  There's "losing weight" and there's "getting healthy".  For the latter, you need to eat carrots and exercise.  I'm not too interested in carrots and, while I don't mind incidental exercise, I don't have the time or inclination to run around for no direct reason.  This post is solely about making the number on the scale be smaller.  That in itself is a great step towards "getting healthy", though, as long as you aren't too stupid about it (i.e. no starvation).&lt;p&gt;

The mantra in diet books is "don't diet--change your lifestyle".  Partly this is just a good idea.  They don't want you going on a crash diet and then fattening back up.  But partly this is making a virtue of necessity.  The reason they want you to change your lifestyle is that a non-starvation diet doesn't change your weight fast enough to notice it unless you try it over the long term.  That is, if you only drop .4 lbs in a week, are you really going to notice it adding up even over the course of a month, if you last that long?  Who is going to remember, to the tenth of a pound, what they weighed 2 weeks ago?  &lt;b&gt;The first secret of losing weight:&lt;/b&gt; You need to keep a history of your progress to refer back to.&lt;p&gt;

But if you are only losing .4 lbs/week, there's another problem: Noise.  The key to controlling a variable to to be able to measure it accurately.  Otherwise how do you know if what you are trying is working?  But diet books also tell you not to weigh yourself very often.  The reason they give for this is that your weight can vary because of non-fat variables.  A large meal only partially digested, extra water, etc.  &lt;p&gt;

That's really terrible advice, though.  For instance, children's test scores vary a lot from child to child, so should you just choose one random child from each school to measure performance?  Of course not!  If anything, taking fewer measurements &lt;b&gt;increases&lt;/b&gt; the noise problem.  The way to fix noisy data is to &lt;i&gt;remove the noise&lt;/i&gt;.  &lt;b&gt;The second secret of losing weight:&lt;/b&gt; Noise reduction.&lt;p&gt;

One simple way to remove noise from data is via averaging.  Particularly, a "moving average".  Let's say I take the following daily measurements:&lt;p&gt;

&lt;pre&gt;Mon: 201
Tue: 201
Wed: 202
Thu: 201
Fri: 201
Sat: 202
Sun: 200
Mon: 201
Tue: 200
Wed: 200
Thu: 199
Fri: 200
Sat: 201&lt;/pre&gt;

Nothing is happening!  This diet sucks!!!&lt;p&gt;

But wait, let's try doing a moving average.  For each day, we'll average in with the previous two days (which means we have to skip the first two since there aren't two days before them).&lt;p&gt;

&lt;pre&gt;
Mon: 201 (no avg)
Tue: 201 (no avg)
Wed: 202 (201.3)
Thu: 201 (201.3)
Fri: 201 (201.3)
Sat: 202 (201.3)
Sun: 200 (201)
Mon: 201 (201)
Tue: 200 (200.3)
Wed: 200 (200.3)
Thu: 199 (199.6)
Fri: 200 (199.6)
Sat: 201 (200)&lt;/pre&gt;

In fact, I lost a pound to 1.3 pounds, depending on where you count from.  (There are many ways to doing a moving average, including ways to weight the average more heavily towards more recent measurements.  Don't worry about the specific method here.)&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/__HLRN4QOAxg/RwEWQSK65zI/AAAAAAAAADk/mZUbWvj9QzI/s1600-h/postchart.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/__HLRN4QOAxg/RwEWQSK65zI/AAAAAAAAADk/mZUbWvj9QzI/s320/postchart.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5116395120680953650" /&gt;&lt;/a&gt;

The difference between raw and averaged (aka "smoothed") data is even more dramatic if you look at a graph.  The circles are (fictitious-but-realistic) readings from the scale.  The line is the smoothed average.  Some of those weigh-ins differ by as much as 2 pounds in a single day.  If you wake up a day after "being good" on your diet and see you weigh 2 pounds more than yesterday, doesn't that make you want to give up?  But after you smooth the data, the problem may not be so bad.  &lt;p&gt;

In fact, it might not be a problem at all.  Say the 3 days you were averaging yesterday were 205,202,201 (202.6).  All you ate yesterday was carrots, but today you got 203.  The weighted average is still 202, which is &lt;b&gt;down&lt;/b&gt; from yesterday's average.  How awesome is that!&lt;p&gt;

Answer: Very awesome.  But not so awesome we need to make things harder for ourselves.  For instance, try to weigh yourself under the same circumstances every time: Same time of day, same state of undress, same fullness of stomach and bladder, etc.  Also, I have gotten into the habit of "unofficially" weighing myself at various times throughout the day and I've gotten to know exactly how much to subtract for my clothing, how much water I'll lose via respiration overnight, etc.  If I weigh X when I got to bed, I will weigh between X-3.5 and X-3 in the morning, rock-solid.  An unofficial weigh-in the evening before can help prevent sticker shock in the morning and will also tell you if you can afford a bowl of ice cream. (That might not work for you.)&lt;p&gt;

But who wants to juggle a bunch of numbers?!  That's worse than being fat!  Don't worry, you don't have to do a thing.  Just head on over to &lt;a href="http://www.physicsdiet.com/Default.aspx"&gt;PhysicsDiet&lt;/a&gt;.  Create a free account, give it some info like your starting weight (you can ignore all the stuff about percent bodyfat and exercise) and away you go.  The site handles the moving average and plots pretty charts and everything.  &lt;p&gt;

Since I started in late March I've only been losing an average of .44 lbs/wk.  That's slow enough that I would have given up after a couple weeks, especially since it's also far less than the noisiness of the data (particularly since my scale only weighs in .5 lb increments).  But with the two secrets of losing weight, &lt;b&gt;historical progress&lt;/b&gt; and &lt;b&gt;noise reduction&lt;/b&gt;, I've managed to lose over 15 lbs so far.  Also, there are 3500 calories to a pound of fat, so that's just an average of 220 calories per day, which I barely even notice missing from my plate, let alone do I have to eat carrots and rice cakes.  It's like I'm not even dieting (almost).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-2698957757657652404?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/2698957757657652404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/10/how-to-lose-weight-and-i-dont-even.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2698957757657652404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2698957757657652404'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/10/how-to-lose-weight-and-i-dont-even.html' title='How To: Lose Weight (And I Don&apos;t Even Mention Lettuce!)'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/__HLRN4QOAxg/RwEWQSK65zI/AAAAAAAAADk/mZUbWvj9QzI/s72-c/postchart.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-4694240353466666186</id><published>2007-09-18T09:57:00.000-04:00</published><updated>2007-09-18T11:57:14.090-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='christmas'/><title type='text'>Christmas Present Idea</title><content type='html'>Long have I pined for a mechanical watch where you could actually see the gears and springs and whatnot flying around.  I've seen things like this with the "Fossil" brand attached, but they are always less than what I really wanted.  I tried googling for "mechanical watch with visible gears" but that wasn't too helpful.&lt;p&gt;

Today I discovered the magic word: Skeleton. A "skeleton" watch is one where it is purposely made to be see-through.  "Full skeleton" means that even things that you'd kind of like to have on a watch, like numbers and hands, are as tiny and hard to use as possible so you can see the full glory of the gears.&lt;p&gt;

Feast your image display software on THIS:&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.abouttime.com/business/mnt1/abouttime/invt/mp7048-yg101-000/mp7048-yg101-000.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://www.abouttime.com/business/mnt1/abouttime/invt/mp7048-yg101-000/mp7048-yg101-000.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;p&gt;

I gather it is possible to spend up to and including ONE MILLION DOLLARS on a watch like this, but, I further gather, Chinese imports can be had for under $100.  Even well under $100.  &lt;a href="http://search.ebay.com/search/search.dll?sofocus=bs&amp;sbrftog=1&amp;from=R10&amp;_trksid=m37&amp;satitle=full+skeleton+watch&amp;sacat=-1%26catref%3DC6&amp;a60=-24&amp;a39=-24&amp;a10244=-24&amp;a44=-24&amp;alist=a60%2Ca39%2Ca10244%2Ca44%2Ca3801&amp;pfmode=1&amp;reqtype=1&amp;gcs=32&amp;pfid=33&amp;pf_query=full+skeleton+watch&amp;sargn=-1%26saslc%3D2&amp;sadis=200&amp;fpos=ZIP%2FPostal&amp;sabfmts=1&amp;saobfmts=insif&amp;ftrt=1&amp;ftrv=1&amp;saprclo=&amp;saprchi=&amp;fsop=1%26fsoo%3D1&amp;coaction=compare&amp;copagenum=1&amp;coentrypage=search&amp;fgtp="&gt;For instance.&lt;/a&gt;&lt;p&gt;

I wouldn't have many requirements on such a gift.  It should be as visible as possible and be actually mechanical, no hidden battery doing the work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-4694240353466666186?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/4694240353466666186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/09/christmas-present-idea.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4694240353466666186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/4694240353466666186'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/09/christmas-present-idea.html' title='Christmas Present Idea'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-1679291111699056598</id><published>2007-09-17T09:58:00.000-04:00</published><updated>2007-09-17T21:20:02.799-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pi'/><category scheme='http://www.blogger.com/atom/ns#' term='babbage'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><category scheme='http://www.blogger.com/atom/ns#' term='lego engineering'/><title type='text'>A New Recipe for π</title><content type='html'>I've been working on a Difference Engine in Lego.  A little &lt;a href="http://acarol.woz.org/"&gt;derivative&lt;/a&gt; perhaps, but still a big challenge.  For one thing, there's not that much construction detail at that site.  For another, what little there is I'm ignoring.  I want to try to solve this on my own.&lt;p&gt;

I've made some progress, but my (borrowed) video camera is being cranky so I've been unable to record and post it. &lt;small&gt;(Aside to person I borrowed it from: I'm just getting a black screen in record mode.  Also a little red flashing light that I think is the button battery so I thought that was it.  However recording suddenly started work despite that, but only for a few minutes.  ???)&lt;/small&gt; Thus this post isn't about that.&lt;p&gt;

When the Difference Engine actually is running, I thought it would be fun to have it calculate &amp;pi;.  NO WAIT, LET ME FINISH!!!  I know &amp;pi; is transcendental, meaning there is no polynomial for which &amp;pi; is the solution.&lt;p&gt;

The point of the Difference Engine is that as you crank the handle, you calculate the value of the polynomial for higher and higher values of x.  What I'd like is a polynomial such that for higher and higher x, the value is closer and closer to &amp;pi;.&lt;p&gt;

So I just google for a polynomial that does that, right?  I mean, there must be hundreds of them by now.  No.  There are none that I can find.&lt;p&gt;

There are plenty of &lt;i&gt;series&lt;/i&gt; approximations, however.  For instance:&lt;p&gt;

&lt;tt&gt;&amp;pi; = &lt;sup&gt;1&lt;/sup&gt;/&lt;sub&gt;1&lt;/sub&gt; - &lt;sup&gt;1&lt;/sup&gt;/&lt;sub&gt;3&lt;/sub&gt; + &lt;sup&gt;1&lt;/sup&gt;/&lt;sub&gt;5&lt;/sub&gt; - &lt;sup&gt;1&lt;/sup&gt;/&lt;sub&gt;7&lt;/sub&gt; + &lt;sup&gt;1&lt;/sup&gt;/&lt;sub&gt;9&lt;/sub&gt; - &lt;sup&gt;1&lt;/sup&gt;/&lt;sub&gt;11&lt;/sub&gt; +....&lt;/tt&gt;&lt;p&gt;

And with some series...es, it's possible to come up with an expression that the series sums to up to any given point.  For instance, the sum of the first n odd numbers:&lt;p&gt;

1 + 3 + 5 + 7 + .... 2n-1 = n&lt;sup&gt;2&lt;/sup&gt;&lt;p&gt;

So maybe one of the series approximations of &amp;pi; can be manipulated into a polynomial.  Then I can use the Lego Difference Engine on that polynomial and crank out 2 or 3 digits. &lt;p&gt;

However, I'm having a great deal of trouble with this (not that that indicates anything other than the fact that I'm really not that great at math).  For one thing, I've concentrated my efforts on the simple-to-remember 1/1 - 1/3 + 1/5 approach.  But I just realized this morning that this series alternately overshoots and undershoots the target, meaning it has an infinite number of humps and valleys.  A polynomial of degree n can have a maximum of n-1 humps and valleys, AFAIK, so that series is out.&lt;p&gt;

If I'm going to start from a series, I need one that's always more or less than &amp;pi; and never the other.  Or an entirely different idea.  I can think of plenty of &lt;i&gt;iterative&lt;/i&gt; methods, but that's basically just a series.  I need a single step where the accuracy is chosen by the value of x I input.  Since I haven't been able to find any reference to such a thing, I'm thinking it hasn't ever been done.  Is that because it's impossible?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-1679291111699056598?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/1679291111699056598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/09/new-recipe-for.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1679291111699056598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1679291111699056598'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/09/new-recipe-for.html' title='A New Recipe for &amp;pi;'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-2378500369122838590</id><published>2007-09-11T11:43:00.001-04:00</published><updated>2007-09-11T15:24:35.875-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scratch'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='children'/><title type='text'>You Program My Back, I'll Program Yours</title><content type='html'>If you are a math/science/computer nerd and you have a child, you have undoubtedly wondered how you can teach your child programming.  I googled for such a thing more than once and found the usual suspects: BASIC, LOGO, etc, etc.  The free ones were all half-finished or too hard, the good ones were all expensive or geared towards classrooms.&lt;p&gt;

I tried teaching Number One Son (8 years old) some pseudo-codey stuff to do simple math problems and learn about loops.  He enjoyed that, but we didn't get very far and I always had to be the virtual machine to check if his program ran.  &lt;p&gt;

However, MIT has recently come up with something that absolutely rules--&lt;a href="http://scratch.mit.edu/"&gt;Scratch&lt;/a&gt;.  And it's free!&lt;p&gt;

Scratch is graphical.  You drag the little components around to assemble a program.  For instance, to make a loop, you drag your components into a loop widget, which wraps around it like a vice.  If you want to construct a conditional, you get out the "if" widget and drag and drop logical/mathematical conditions in from the toolbox.  Just fill in the blanks and go.&lt;p&gt;

The GUI isn't just for show, either.  You don't feel like you are using the mouse to &lt;i&gt;write&lt;/i&gt; a program, you feel like you are literally assembling a physical object.  And it eliminates syntax errors, which is a major deal in the under-13 crowd.  Furthermore, the graphical programming language ties right in to the very graphics-oriented programs Scratch is targeted towards and children love.  Creating and animating sprites takes just a few clicks.  Object collision is just a matter of checking if two colors are touching.  And this is all clearly presented enough that an 8 year old can (and has) figured most of it out himself.&lt;p&gt;

I think he learned more about programming in 2 days with Scratch than he did in all the previous years of my bumbling explanations.  He goes off and works on a program for a while and then will come to me with a question about how to do something.  And they are pretty sophisticated problems (considering his age), such as how to cycle through sprite costumes and wraparound at the end or how to keep various sprites in sync.  With the concrete example of his non-working program providing the motivation, the explanations of modular arithmetic or semaphores stick much better.&lt;p&gt;

So far he's created programs that simulate a robot in a maze, animate a rocket flying to the moon, teach the alphabet to his two-year-old sibling and even one generic drawing program with adjustable pen size and color.  All 100% on his own.&lt;p&gt;

Windows and Mac only, but:
&lt;ol&gt;
&lt;li&gt;They claim they'll have a Linux version out "before the end of 2007".&lt;/li&gt;
&lt;li&gt;The usefulness, fun and polish of Scratch is more than worth setting up an old PC with Windows.&lt;/li&gt;
&lt;/ol&gt;

It's possible to upload your program to share with other kids, but we haven't tried that yet.  &lt;a href="http://scratch.mit.edu/videos"&gt;Videos of Scratch in action.&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-2378500369122838590?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/2378500369122838590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/09/you-program-my-back-ill-program-yours.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2378500369122838590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2378500369122838590'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/09/you-program-my-back-ill-program-yours.html' title='You Program My Back, I&apos;ll Program Yours'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-7499460129887641029</id><published>2007-09-04T09:05:00.000-04:00</published><updated>2007-09-07T07:44:26.982-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='marble'/><category scheme='http://www.blogger.com/atom/ns#' term='lego engineering'/><title type='text'>Lego Marble Pump II: Handcranked Bugaloo</title><content type='html'>The basic idea behind &lt;a href="http://projectpotpourri.blogspot.com/2007/08/lego-marble-pump.html"&gt;the Lego marble pump&lt;/a&gt; is working.  I cobbled it together well enough to demonstrate My Vision, but many kinks remain to be worked out.  For instance, the little levers need to be worked automatically.  But I'm not going to do that, I'm just going to post the video of it hobbling along.&lt;p&gt;

&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/S4Q1GrkpagE"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/S4Q1GrkpagE" type="application/x-shockwave-flash" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;

In case that isn't clear:

&lt;ol&gt;
&lt;li&gt;Marble goes in ramp at left&lt;/li&gt;
&lt;li&gt;Cam on central carriage hits lever to open gate, allowing marble into carriage (part of cam played by my finger)&lt;/li&gt;
&lt;li&gt;Central carriage lifts, eventually dumping marble into next higher ramp (another "cam" lifts lever there to make sure gate is closed)&lt;/li&gt;
&lt;li&gt;Central carriage lowers, goto 2&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-7499460129887641029?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/7499460129887641029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/09/lego-marble-pump-ii-handcranked-bugaloo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7499460129887641029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7499460129887641029'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/09/lego-marble-pump-ii-handcranked-bugaloo.html' title='Lego Marble Pump II: Handcranked Bugaloo'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-7497089120462985535</id><published>2007-08-27T10:07:00.000-04:00</published><updated>2007-08-27T21:27:12.406-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='babbage'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><title type='text'>Difference Engineering</title><content type='html'>I've known about Babbage's &lt;a href="http://en.wikipedia.org/wiki/Difference_engine"&gt;Difference&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Analytical_engine"&gt;Analytical&lt;/a&gt; Engines for a long time, but never known much about how they work.  Finally I actually read &lt;a href="http://acarol.woz.org/"&gt;a little information&lt;/a&gt; on the first one (in the context of Legos) and it's pretty interesting from both a mathematical and mechanical point of view.  Based on the information on that page, I worked out a tiny additional step of my own (though surely Babbage himself already knew this).&lt;p&gt;

First of all, the basic idea: The purpose of the Difference Engine was to pre-calculate tables of polynomials for books in the days before portable calculators.  So you'd want to known 3x&lt;sup&gt;3&lt;/sup&gt; + 14x&lt;sup&gt;2&lt;/sup&gt; + 5 for all values of x from 1 to, say, 1000.  As it happens, there's a clever little shortcut such that if you have a few values you can calculate the next one very simply using only addition from the previous answer (thus "Difference Engine").&lt;p&gt;

So let's say f(x) = x&lt;sup&gt;2&lt;/sup&gt; + 3x.

&lt;pre&gt;&lt;tt&gt;
x   f(x)   diff1  diff2 
1     4      -      -   
2    10      6      -   
3    18      8      2
4    28     10      2
5    40     12      2
&lt;/tt&gt;&lt;/pre&gt;

See that second difference column is a constant.  If we'd picked a polynomial of the 3rd degree, we'd have to work this out to the 3rd column.  Fourth degree, 4th column, etc.&lt;p&gt;

So to build a machine, all you need to do is set the value for x = 1 and set the Nth difference in the last column.  It automatically adds that difference to the previous difference, which is cascaded upwards until f(x + 1) is arrived at.  Then you go around again.  All that is required is simple addition.&lt;p&gt;

What isn't explained on that page (that I saw) was how to know ahead of time what that last difference is going to be.  Sure, you can work out N rows to get that Nth column, but it would be nice if you could set the inputs from direct inspection of the polynomial. As a matter of fact, this is easy.&lt;p&gt;

Say f(x) = ax&lt;sup&gt;2&lt;/sup&gt; + bx + c.  Then the difference between two successive answers (i.e. the value in the first difference column) is going to be:&lt;p&gt;

&lt;tt&gt;
a(x+1)&lt;sup&gt;2&lt;/sup&gt; + b(x+1) + c - ax&lt;sup&gt;2&lt;/sup&gt; - bx - c&lt;br&gt;
= ax&lt;sup&gt;2&lt;/sup&gt; + 2ax + a + bx + b + c - ax&lt;sup&gt;2&lt;/sup&gt; - bx - c&lt;br&gt;
= 2ax + a + b 
&lt;/tt&gt;&lt;p&gt;

The difference between successive entries in THAT column are going to be:&lt;p&gt;

&lt;tt&gt;
2a(x+1) + a + b - 2ax - a - b&lt;br&gt;
= 2ax + 2a + a + b - 2ax - a - b&lt;br&gt;
= 2a
&lt;/tt&gt;&lt;p&gt;

And if we look at our example, we did indeed get 2 * 1 as the constant in the last column.&lt;p&gt;

Working this out for a 3rd degree polynomial gives 6a (where a is the coefficient of x&lt;sup&gt;3&lt;/sup&gt;).  Based on these two examples and looking at &lt;a href="http://en.wikipedia.org/wiki/Pascals_Triangle"&gt;Pascal's Triangle&lt;/a&gt;, I predicted the value for a 4th degree would be 20.  But it was actually 24.&lt;p&gt;

In fact, if you work it out it should be clear that the constant difference will be a * n!, where a is the coefficient of the highest power of x and n is that power.  It should be simple to prove this using induction, since all other terms always drop out and you muliply the coefficient by the power at each step on the way down.&lt;p&gt;

So if I wanted to know what the constant difference was in the 5th column of differences for the polynomial 8x&lt;sup&gt;5&lt;/sup&gt; - 3x&lt;sup&gt;3&lt;/sup&gt; + 117, I just multiple 8 times 5! and get 960.  I cram that, plus the initial value for x = 1 onto the machine and get cranking.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-7497089120462985535?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/7497089120462985535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/08/difference-engineering.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7497089120462985535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7497089120462985535'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/08/difference-engineering.html' title='Difference Engineering'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-7442794895115441211</id><published>2007-08-24T11:00:00.000-04:00</published><updated>2007-09-07T07:44:53.758-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='marble'/><category scheme='http://www.blogger.com/atom/ns#' term='lego engineering'/><title type='text'>Lego Marble Pump</title><content type='html'>&lt;a href="http://www.sentex.net/~mwandel/marbles/lego-machine.html"&gt;This&lt;/a&gt; is a pretty neat machine.  The &lt;a href="http://www.sentex.net/~mwandel/marbles/pump.html"&gt;core of the pump mechanism&lt;/a&gt; is pretty genius and I built one myself based on that graphic.  The problem is that the tower can only be as high as the number of marbles you have and the number of marbles your motor can lift.  &lt;p&gt;

The most common way of lifting balls in a contraption is with a kind of one-way elevator.  But &lt;a href="http://youtube.com/watch?v=wyghcvljnRk"&gt;I've already built one of those&lt;/a&gt;.  &lt;a href="http://youtube.com/watch?v=7yMbyisUIB0"&gt;This guy&lt;/a&gt; has an interesting idea.  It's a little hard to see in the video, but he's got the marble going both ways through the pistons.  It lifts one "story" going from left to right, then another story from right to left.&lt;p&gt;

That gave me an idea.  First of all, why not any number of stories?  And second of all, why three pistons?  Probably the answer to both is: maximum height for the amount of Lego he had.&lt;p&gt;

I'm thinking you could put just one piston between two towers and with a certain amount of mechanical futzing pump the marbles up to any height.  &lt;p&gt;

*pause for 24 hours of trying to get some kind of Lego CAD software working on any computer in my house or office to illustrate this and &lt;b&gt;failing miserably&lt;/b&gt;*&lt;p&gt;

OK, here's the basic idea: The piston in the middle has ramps inside.  The marble starts off at the bottom of one of the side towers.  It rolls into the piston down one of the ramps and it stopped against the wall of the other tower.  The piston moves up and there's a little nook in the other tower that the marble falls into.  The piston lowers.  Now there's another internal ramp, this time pointed the other direction, aligned with the nook, so the marble re-enters the piston and is stopped against the wall of the first tower.  Repeat.&lt;p&gt;

It's a little tricky, though.  The nook is the problem.  The marble needs to roll out of a ramp into the nook but then roll out of the nook into a ramp.  The three piston video solved this by having good timing and long ramps.  I don't have long ramps or the patience to get the timing right.  What I'm trying right now is a kind of teeter-totter arrangement in the nook that tips up to receive the marble and then tips down to release it.&lt;p&gt;

Oh cripes.  I just re-read this entry and &lt;i&gt;even I&lt;/i&gt; was too bored by the last two paragraphs to pay attention to them.  I'll just have to make it work and post a video.  Or somehow get &lt;a href="http://www.ldraw.org/"&gt;LDraw&lt;/a&gt; working.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-7442794895115441211?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/7442794895115441211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/08/lego-marble-pump.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7442794895115441211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7442794895115441211'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/08/lego-marble-pump.html' title='Lego Marble Pump'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-7162980650141327128</id><published>2007-08-15T00:45:00.000-04:00</published><updated>2007-08-14T21:44:14.476-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='science'/><category scheme='http://www.blogger.com/atom/ns#' term='temperature'/><category scheme='http://www.blogger.com/atom/ns#' term='experiments'/><title type='text'>The Temperature of What?</title><content type='html'>So I had &lt;a href="http://projectpotpourri.blogspot.com/search/label/temperature"&gt;all these posts&lt;/a&gt; about temperature logging and one post &lt;a href="http://projectpotpourri.blogspot.com/2007/07/temperature-logging-part-iii-exciting.html"&gt;with the actual logged temperatures&lt;/a&gt;...but the temperature of what?&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/__HLRN4QOAxg/RsJX8JrgvII/AAAAAAAAADc/tBve005bnm8/s1600-h/solarhotbox.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/__HLRN4QOAxg/RsJX8JrgvII/AAAAAAAAADc/tBve005bnm8/s200/solarhotbox.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5098734419039009922" /&gt;&lt;/a&gt;

A solar hot box!&lt;p&gt;

You probably already know what this is, but just in case you don't: It's basically a tiny greenhouse.  Or like a car left in the sun at noon in August.  Only it's even hotter, since it is insulated, painted black and pointed right at the sun.&lt;p&gt;

Inside the box I put a jar with 250 ml of cooking oil and poked a hole in the lid for a temperature probe.  That's what these temps are.&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/__HLRN4QOAxg/RqP0a5wXiTI/AAAAAAAAAC8/sJuBrnxkuP4/s1600-h/temps.png"&gt;&lt;img style="float:right; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/__HLRN4QOAxg/RqP0a5wXiTI/AAAAAAAAAC8/sJuBrnxkuP4/s200/temps.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5090180746876258610" /&gt;&lt;/a&gt;

Why did I choose cooking oil?  Because I didn't want evaporation to be a problem.  For one thing, it would fog up the inside of the glass.  For another, it would cap my max temperature at 100&amp;deg;C (not that that turned out to be a problem in this case).  And lastly, it would change the amount of water in the bottle and I needed that to be a constant because I did some calculations with it.&lt;p&gt;

Knowing the amount of oil and the temperature change (plus &lt;a href="http://www.engineeringtoolbox.com/specific-heat-fluids-d_151.html"&gt;looking up the specific heat of vegetable oil&lt;/a&gt;), I can calculate the rate at which energy is entering the oil.  For the above graph, I got 2.5 watts for the steepest part of the curve.  However, I see that the site I just linked to has the specific heat of veg oil as 1.67 kJ/kg K and I was using 2.5.  So maybe the power is really more like 3.7 watts. &lt;p&gt;

Knowing the area of the collector I can also calculate the amount of power falling into the box.    That's about 75 watts.  So the end-to-end efficiency was only about 3-5%.  Not that great.  &lt;p&gt;

Imagine if you put a cup of water on the table and then turn the furnace thermostat up to 90&amp;deg;.  How much energy are you going to waste before the water gets hot?  This illustrates the 3 main problems:&lt;p&gt;

&lt;ol&gt;
&lt;li&gt;Air passively surrounding a container of liquid isn't going to heat it very fast.&lt;/li&gt;
&lt;li&gt;There's a lot of volume of air being heated uselessly.&lt;/li&gt;
&lt;li&gt;During all this time, heat is escaping the cracks, windows, chimney, etc.  In the case of the hot box, the glass front gets very hot and is radiating a lot of the energy right back out.&lt;/li&gt;
&lt;/ol&gt;

If a hot box is like an oven, the next version will be like a microwave.  Don't heat up the air, just beam energy right into the substance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-7162980650141327128?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/7162980650141327128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/08/temperature-of-what.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7162980650141327128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/7162980650141327128'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/08/temperature-of-what.html' title='The Temperature of What?'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/__HLRN4QOAxg/RsJX8JrgvII/AAAAAAAAADc/tBve005bnm8/s72-c/solarhotbox.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-6116939919481394530</id><published>2007-08-01T10:29:00.000-04:00</published><updated>2007-08-01T07:25:28.229-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lego engineering'/><title type='text'>Locomotive Lego Linkage</title><content type='html'>It seems like I keep having to reinvent this linkage.  The basic idea is that I want to turn a crank (i.e. rotary motion) which makes something move back and forth (i.e. linear motion).  You see this exact same linkage on classic train wheels, though in that case the linear motion is the primary mover and it is turning into rotary motion to move the train.&lt;p&gt;

In fact, almost all piston engines do this same thing.  What I keep not realizing is that you need to hold the straight part straight or it doesn't work.  Not "it doesn't go straight" but not work &lt;b&gt;at all&lt;/b&gt;.&lt;p&gt;

Let me show you what I mean&lt;p&gt;

&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/AX2Dm5UZyeE"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/AX2Dm5UZyeE" type="application/x-shockwave-flash" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;

I think the reason I keep forgetting this is that the movement looks so smooth.  It doesn't seem like there could be that much friction there, but there must be.  The piston is rubbing against the sides.  Not (just) because of a tight fit, but out of sheer necessity to make the piston run straight.&lt;p&gt;

There are linkages that have been invented that can convert rotary motion to linear without all the side friction.  For instance, &lt;a href="http://en.wikipedia.org/wiki/Peaucellier-Lipkin_linkage"&gt;here&lt;/a&gt;.  A &lt;a href="http://pergatory.mit.edu/2.007/contests/2000_sojourner/lectures/Lecture01/Image40.gif"&gt;3D version&lt;/a&gt; of that linkage is in the Boston Museum of Science.  Another picture of Peaucellier is &lt;a href="http://mathforum.org/sketchpad/mechlink.html"&gt;here&lt;/a&gt; and the page also calls my "locomotive linkage" a "sewing machine".&lt;p&gt;

Peaucellier isn't very practical because it requires so many parts, which take up space and can fail.  Or can it be made simply?  Can another practical, mathematically accurate, low-friction linkage be built?  In Lego?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-6116939919481394530?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/6116939919481394530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/08/locomotive-lego-linkage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/6116939919481394530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/6116939919481394530'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/08/locomotive-lego-linkage.html' title='Locomotive Lego Linkage'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-5676096632373788196</id><published>2007-07-24T12:00:00.000-04:00</published><updated>2007-07-24T21:05:55.641-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><title type='text'>Ambient Orb aka Rainbow Ball</title><content type='html'>For some reason &lt;a href="http://www.youtube.com/watch?v=GbzLSgWRKD4"&gt;this "ambient orb" Arduino project&lt;/a&gt; blew me away.  The basic setup is very easy: red, green and blue LEDs mixed in different amounts.  (Putting them inside a diffusing cover helps the mixing.)  There are only two catches:

&lt;ol&gt;
&lt;li&gt;LEDs aren't dimmable the way incandescents are, so how do you control mix?&lt;/li&gt;
&lt;li&gt;Finding LEDs of all three colors in the same output is nearly impossible.&lt;/li&gt;
&lt;/ol&gt;

The solution to the first catch is Pulse Width Modulation.  Basically, you send tiny bursts of current so it flickers on and off faster than you can see it.  The more time it spends on (the "duty cycle") the brighter it seems.  Doing this from the Arduino is simply a matter of adjusting a number to say what you want the duty cycle to be in the range 0-255.&lt;p&gt;

For the second catch, I pored over catalogs and websites trying to find matching LEDs.  I did find them more than once, but it was always coming out too expensive.  I mean, I was blown away by the idea, but not to the tune of $10!  (Maybe I should have called this blog "The Cheap Bastard".)  &lt;p&gt;

I actually do already have all three colors, but the single blue LED I have is a trillion times brighter than any of the others.  Really, it's blinding.  I could have just bought a new blue to match the low-level reds and greens I have, but what power are they?  Is there any way to figure that out, maybe from power consumption?&lt;p&gt;

Finally I realized I could just use a bunch of reds and greens and also cut the blue's power in half (i.e. never get the PWM duty cycle above 50%) and it comes out all right.  Mostly.  The blue is still too powerful and swamps the blue-green transition.&lt;p&gt;

&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/gl9m-bPEUyU"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/gl9m-bPEUyU" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;

Why is the green almost invisible in the video?  Is the CCD in the camera less sensitive to green?  Is the green really a lot less powerful and my eyes just adjust to it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-5676096632373788196?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/5676096632373788196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/ambient-orb-aka-rainbow-ball.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5676096632373788196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5676096632373788196'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/ambient-orb-aka-rainbow-ball.html' title='Ambient Orb aka Rainbow Ball'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-1059910351404666114</id><published>2007-07-24T08:20:00.000-04:00</published><updated>2007-07-24T10:19:26.986-04:00</updated><title type='text'>Light and Fluffy as a Kitten: For Real Now</title><content type='html'>That's because I gave up and washed my hair.  &lt;p&gt;

It was definitely true that my hair was less oily than I expected.  There were many days when each hair stood alone, unclumped from the others, and I thought I was near to fluffy kittenhood.  But then the next day I'd forget to rinse it or something and I'd be a greasemop.&lt;p&gt;

Also, and this may have been psychosomatic, I felt like the greasiness was starting to migrate down my head.  Like maybe the hair was leaving oily trails on my forehead, on the tops of my ears, etc.  &lt;p&gt;

Experiment terminated after two weeks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-1059910351404666114?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/1059910351404666114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/light-and-fluffy-as-kitten-for-real-now.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1059910351404666114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1059910351404666114'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/light-and-fluffy-as-kitten-for-real-now.html' title='Light and Fluffy as a Kitten: For Real Now'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-2999767153701964876</id><published>2007-07-23T10:02:00.000-04:00</published><updated>2007-07-23T14:57:06.919-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><title type='text'>Guide To LEDs</title><content type='html'>Until now, I've really only understood 3 things about LEDs:

&lt;ol&gt;
&lt;li&gt;They don't use much power&lt;/li&gt;
&lt;li&gt;You need to plug them in the right direction&lt;/li&gt;
&lt;li&gt;You can blow them if you apply too much voltage (or was it current?)&lt;/li&gt;
&lt;/ol&gt;

I think I've got it figured out now.  I haven't seen it explained this way anywhere else, which could mean I'm just wrong or it could be I'm about to be nominated for the Nobel Prize in Explaining LEDs on a Blog.&lt;p&gt;

Here's the deal: An LED requires a certain minimum voltage.  If it gets that voltage, it turns on, otherwise it doesn't (and it doesn't drop any more than that voltage).  The exact number varies by color (and other parameters?), but is in the region of 1.5-3.5V.  So if you had a 1.5V LED and a 1.5V battery, you could just hook them up, right?  No, because you'd get too much current.  The LED drops 1.5V but has practically no resistance.  (Ohm's Law is really more of a guideline.)  A reasonable number to use as a first guess for the amount of current an LED can take is 20mA.  &lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/__HLRN4QOAxg/RqTVXZwXiWI/AAAAAAAAADU/kvjVLmtiQa0/s1600-h/LED_schematic.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/__HLRN4QOAxg/RqTVXZwXiWI/AAAAAAAAADU/kvjVLmtiQa0/s200/LED_schematic.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5090428076862966114" /&gt;&lt;/a&gt;

So how do we put this all together?  Perhaps the clearest way is to do what I did: Figure out what voltage all the LEDs in my drawer took and label them.  First, I built the very simple circuit on the right.&lt;p&gt;

What value to use for R?  We don't want more than about 20 mA running through the LED and R = V/I, so 9V/.02A = 450&amp;Omega;.  A standard 470&amp;Omega; resistor should be fine.  So far, so obvious.  But how does this figure out the voltage the LED drops?&lt;p&gt;

I tricked you.  You actually build that circuit but put an ammeter in there too.  Measure the source voltage carefully (well, semi-carefully--I just mean don't assume a "9V" battery is really 9V).  Measure the actual resistance of R.  You are going to get some measured current I&lt;sub&gt;m&lt;/sub&gt;.  I&lt;sub&gt;m&lt;/sub&gt; will not be equal to V/R!  That's because the Ohm's Law is only applying to the resistor and the resistor isn't dropping the full 9V.  It is dropping only the remainder of the voltage that the LED didn't use.  The current is then that remainder voltage divided by the resistor value.  In equation form: I&lt;sub&gt;m&lt;/sub&gt; = (V - Voltage dropped by LED)/R. Rearranging, the voltage your LED is dropping = V - I&lt;sub&gt;m&lt;/sub&gt; * R.&lt;p&gt;

So for instance a typical red LED in my drawer is 2.1V.  So when I put it into the circuit, the voltage across the resistor is 9 - 2.1 = 6.9V.  6.9V/470&amp;Omega; ~= 15mA.  &lt;p&gt;

Is this just arcane nonsense?  Yes, for source voltages that are much higher than the LED voltage and when you are only putting one LED in the circuit.  But I went through and did that with all my LEDs.  Now I know how to put a bunch of LEDs together and can save power (and resistors, and circuit space) by putting them in series with the right size of resistor.  I could fit 4 2.1V LEDs in a 9V circuit because 4 * 2.1 = 8.4.  That leaves .6V.  In order to limit to 20mA exactly, I'd want a 30&amp;Omega (.6V/.02A); resistor in there.  &lt;p&gt;

One caveat: If the voltage varies you might blow something in such a tight margin.  I was running my circuit off a weak 9V that was down to about 8.5V.  If I really did build the circuit with 4 LEDs I'd have .1V left over, which would require a mere 5&amp;Omega; resistor.  But then say I put a fresh battery in and it's 9.3V now.  Now suddenly there's .8V across the same 5&amp;Omega; resistor which gives me 160mA.  Goodbye LEDs!  So it would be good to either work with a regulated voltage OR leave yourself enough extra voltage that normal variation isn't a huge change percentage-wise.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-2999767153701964876?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/2999767153701964876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/guide-to-leds.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2999767153701964876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2999767153701964876'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/guide-to-leds.html' title='Guide To LEDs'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/__HLRN4QOAxg/RqTVXZwXiWI/AAAAAAAAADU/kvjVLmtiQa0/s72-c/LED_schematic.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-5372132500712686091</id><published>2007-07-22T20:14:00.000-04:00</published><updated>2007-07-22T21:47:57.221-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='logging'/><category scheme='http://www.blogger.com/atom/ns#' term='sensors'/><category scheme='http://www.blogger.com/atom/ns#' term='temperature'/><category scheme='http://www.blogger.com/atom/ns#' term='experiments'/><title type='text'>Temperature Logging Part III: The Exciting Conclusion</title><content type='html'>Some pics of the final state:

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/__HLRN4QOAxg/RqQGCZwXiVI/AAAAAAAAADM/-jqGoK54rns/s1600-h/temploggerinside.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/__HLRN4QOAxg/RqQGCZwXiVI/AAAAAAAAADM/-jqGoK54rns/s320/temploggerinside.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5090200117178763602" /&gt;&lt;/a&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/__HLRN4QOAxg/RqQFNpwXiUI/AAAAAAAAADE/ivSK9Tm2TEc/s1600-h/temploggecover.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/__HLRN4QOAxg/RqQFNpwXiUI/AAAAAAAAADE/ivSK9Tm2TEc/s320/temploggecover.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5090199210940664130" /&gt;&lt;/a&gt;

You might notice an extra button.  I decided to write to EEPROM rather than an array after all.  The reason was an unreliable power situation.  A 9V battery lasts for a few hours and I didn't want to lose hours of data at the last second.  So we have a switch for power on/off, a button for "send data" and a button for "start collecting data".  The last one is I can control when the EEPROM starts getting overwritten the next time I turn it on.&lt;p&gt;

That relatively minor change forced a paradigm shift in what processing was done where.  Originally, I was just reading the voltage ratio from the pin and sending it to the PC that did the work to convert to degrees.  The pin reports a value in 10 bits (i.e. 0-1023) but the EEPROM stores only bytes (i.e. 0-255).  I could have renormalized to the smaller range, but only at the loss of a lot of precision.  Instead, I now calculate the temp right on the Arduino.  Surprisingly (to me, anyway), you can use the regular math library functions like &lt;tt&gt;log()&lt;/tt&gt;.  So then I end up with a temperature that practically speaking won't get above 255 or below 0, and even if it did I could add or subtract a constant to recenter it to my working range.

I will describe what temperature I was logging in another post, but for now here's the pretty graph.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/__HLRN4QOAxg/RqP0a5wXiTI/AAAAAAAAAC8/sJuBrnxkuP4/s1600-h/temps.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/__HLRN4QOAxg/RqP0a5wXiTI/AAAAAAAAAC8/sJuBrnxkuP4/s400/temps.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5090180746876258610" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-5372132500712686091?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/5372132500712686091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/temperature-logging-part-iii-exciting.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5372132500712686091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/5372132500712686091'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/temperature-logging-part-iii-exciting.html' title='Temperature Logging Part III: The Exciting Conclusion'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/__HLRN4QOAxg/RqQGCZwXiVI/AAAAAAAAADM/-jqGoK54rns/s72-c/temploggerinside.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-3929189824794276262</id><published>2007-07-19T00:30:00.000-04:00</published><updated>2007-07-19T07:43:41.057-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recipe'/><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><category scheme='http://www.blogger.com/atom/ns#' term='pizza'/><category scheme='http://www.blogger.com/atom/ns#' term='food'/><title type='text'>How To Make Awesome Pizza</title><content type='html'>Until recently, my idea of awesome pizza was "lots of cheese, almost burnt".  Also, there needed to be a way to hold the cheese without burning yourself, so I needed crust.  I wasn't sure what the sauce is for, but tradition demanded its inclusion.  Tradition definitely did not demand the inclusion of members of the plant kingdom.&lt;p&gt;

However, I have changed my boring pizza ways.  I now make gourmet pizza on a weekly basis.  The secret....REVEALED!&lt;p&gt;

Crust Ingredia
&lt;ul&gt;
&lt;li&gt;3 cups flour&lt;/li&gt;
&lt;li&gt;Between 1 cup and 1.25 cups water, depending on the weather&lt;/li&gt;
&lt;li&gt;A dash of olive oil&lt;/li&gt;
&lt;li&gt;Two pinches of basil&lt;/li&gt;
&lt;li&gt;A generous helping of yeast&lt;/li&gt;
&lt;li&gt;1 bread machine with a "dough" setting&lt;/li&gt;
&lt;li&gt;1.5 hours&lt;/li&gt;
&lt;/ul&gt;

Stir all these ingredia until you have a bunch of dough.  Meanwhile, dice a couple sausage patties
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/__HLRN4QOAxg/Rp7A90SCfWI/AAAAAAAAABk/RhfaZ35txek/s1600-h/sausage.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/__HLRN4QOAxg/Rp7A90SCfWI/AAAAAAAAABk/RhfaZ35txek/s320/sausage.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5088716797214096738" /&gt;&lt;/a&gt;
a 2.25 oz can of black olives (sliced)
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/__HLRN4QOAxg/Rp7BOkSCfXI/AAAAAAAAABs/hb30gWPKCKw/s1600-h/olives.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/__HLRN4QOAxg/Rp7BOkSCfXI/AAAAAAAAABs/hb30gWPKCKw/s320/olives.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5088717084976905586" /&gt;&lt;/a&gt;
a tomato
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/__HLRN4QOAxg/Rp7BbkSCfYI/AAAAAAAAAB0/Vq-RrQyWz4g/s1600-h/greenpeppers.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/__HLRN4QOAxg/Rp7BbkSCfYI/AAAAAAAAAB0/Vq-RrQyWz4g/s320/greenpeppers.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5088717308315204994" /&gt;&lt;/a&gt;
(The role of the tomato has been played by an understudy in tonight's performance due to a grocery malfunction.) And some pepperoncini:

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/__HLRN4QOAxg/Rp7Bw0SCfZI/AAAAAAAAAB8/7LzDyTPBdF8/s1600-h/pepperoncini.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/__HLRN4QOAxg/Rp7Bw0SCfZI/AAAAAAAAAB8/7LzDyTPBdF8/s320/pepperoncini.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5088717673387425170" /&gt;&lt;/a&gt;

I think the rest of this recipe speaks for itself.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/__HLRN4QOAxg/Rp7CE0SCfaI/AAAAAAAAACE/cwciU7qYekA/s1600-h/dough.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/__HLRN4QOAxg/Rp7CE0SCfaI/AAAAAAAAACE/cwciU7qYekA/s320/dough.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5088718016984808866" /&gt;&lt;/a&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/__HLRN4QOAxg/Rp7CRUSCfbI/AAAAAAAAACM/AtEinWWunkE/s1600-h/doughsauce.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/__HLRN4QOAxg/Rp7CRUSCfbI/AAAAAAAAACM/AtEinWWunkE/s320/doughsauce.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5088718231733173682" /&gt;&lt;/a&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/__HLRN4QOAxg/Rp7CdkSCfcI/AAAAAAAAACU/9AKr4i81PC8/s1600-h/doughpepperoni.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/__HLRN4QOAxg/Rp7CdkSCfcI/AAAAAAAAACU/9AKr4i81PC8/s320/doughpepperoni.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5088718442186571202" /&gt;&lt;/a&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/__HLRN4QOAxg/Rp7Cr0SCfdI/AAAAAAAAACc/A27__fxLtuU/s1600-h/doughtoppings.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/__HLRN4QOAxg/Rp7Cr0SCfdI/AAAAAAAAACc/A27__fxLtuU/s320/doughtoppings.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5088718686999707090" /&gt;&lt;/a&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/__HLRN4QOAxg/Rp7C30SCfeI/AAAAAAAAACk/1kLJEHI33JQ/s1600-h/doughgreenpeppers.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/__HLRN4QOAxg/Rp7C30SCfeI/AAAAAAAAACk/1kLJEHI33JQ/s320/doughgreenpeppers.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5088718893158137314" /&gt;&lt;/a&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/__HLRN4QOAxg/Rp7DEUSCffI/AAAAAAAAACs/97uOoqsMNoY/s1600-h/doughcheese.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/__HLRN4QOAxg/Rp7DEUSCffI/AAAAAAAAACs/97uOoqsMNoY/s320/doughcheese.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5088719107906502130" /&gt;&lt;/a&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/__HLRN4QOAxg/Rp7DR0SCfgI/AAAAAAAAAC0/5i0ytElgLYM/s1600-h/cookedpizza.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/__HLRN4QOAxg/Rp7DR0SCfgI/AAAAAAAAAC0/5i0ytElgLYM/s400/cookedpizza.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5088719339834736130" /&gt;&lt;/a&gt;

I'm still using boring old Sauce in a Can, though.  I need a good pizza sauce recipe.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-3929189824794276262?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/3929189824794276262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/how-to-make-awesome-pizza.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/3929189824794276262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/3929189824794276262'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/how-to-make-awesome-pizza.html' title='How To Make Awesome Pizza'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/__HLRN4QOAxg/Rp7A90SCfWI/AAAAAAAAABk/RhfaZ35txek/s72-c/sausage.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-2808150260793512634</id><published>2007-07-17T08:48:00.000-04:00</published><updated>2007-07-17T09:07:58.443-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shampoo'/><category scheme='http://www.blogger.com/atom/ns#' term='hair'/><category scheme='http://www.blogger.com/atom/ns#' term='hygiene'/><category scheme='http://www.blogger.com/atom/ns#' term='experiments'/><title type='text'>Light and Fluffy as a Kitten...Sprayed with Pam</title><content type='html'>I've heard this claim before: You don't really need to shampoo your hair.  Your head chemistry will adjust if you stop stripping the natural oils from it.  &lt;p&gt;

OK, sure.  However, in &lt;a href="http://www.timesonline.co.uk/tol/comment/columnists/matthew_parris/article670388.ece"&gt;this article&lt;/a&gt; the author not only claims that his hair is "as light and fluffy as a kitten's coat" but he also gives the basic idea on how go about the experiment.  So I decided to try it and compare my head to a hypothetical kitten.&lt;p&gt;

&lt;b&gt;Experimental Procedure&lt;/b&gt;&lt;br&gt;
&lt;ul&gt;

&lt;li&gt;The article author hedges about what exactly he's putting on his head.  "No de-greasant" means what exactly?  Are you still conditioning?  Since the only thing I use is regular shampoo (i.e. liquid soap), I decided to just use plain water.  Every morning I dunk my head in the shower and scrub it thoroughly with fingers and fingernails, but use "no de-greasant".&lt;/li&gt;

&lt;li&gt;I also vaguely remember some other claim about "redistributing oils", so I also combed.&lt;/li&gt;
&lt;/ul&gt;

&lt;b&gt;Results after one week&lt;/b&gt;&lt;br&gt;
My hair is definitely less greasy-seeming than I expected.  I normally shampoo every other day and when I skip a soaping I definitely notice it.  My hair feels clumpy and gross.  Rinsing and combing seems to fix that so I don't really notice.&lt;p&gt;

On the other hand, I wouldn't say my hair feels clean, either.  If I run my hands through it they start feeling like I've been eating potato chips.  OK, maybe not that bad, but I'm not squeaky clean.  In fact, when I rinse in the morning I have to wash my hands with soap after.  &lt;p&gt;

When I started this post I thought he said to try it for a week, but now I see it says a "few weeks".  OK, I can probably stick it out a little while longer.  No one has commented on it, so I guess I'm not too awful to behold.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-2808150260793512634?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/2808150260793512634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/light-and-fluffy-as-kittensprayed-with.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2808150260793512634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2808150260793512634'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/light-and-fluffy-as-kittensprayed-with.html' title='Light and Fluffy as a Kitten...Sprayed with Pam'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-2939812279148606826</id><published>2007-07-16T14:37:00.000-04:00</published><updated>2007-07-17T13:32:13.196-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='salsa'/><category scheme='http://www.blogger.com/atom/ns#' term='guacamole'/><category scheme='http://www.blogger.com/atom/ns#' term='recipe'/><category scheme='http://www.blogger.com/atom/ns#' term='cooking'/><category scheme='http://www.blogger.com/atom/ns#' term='food'/><title type='text'>Salsa &amp; Guacamole</title><content type='html'>This is a very basic, simple recipe.  It's 100x better than the canned stuff I used to eat (which I think is actually picante sauce, so I guess I'm comparing tomatoes to peppers there) but I'm sure there are homemade salsae out there that beat this to a pulp (GEDDIT??).  Nevertheless, if you've never made salsa before this is an OK place to start and a good base for experimentation.&lt;p&gt;

&lt;b&gt;Salsa&lt;/b&gt;&lt;br&gt;
2 green peppers&lt;br&gt;
2 red onions (I like the taste vs the yellow/white)&lt;br&gt;
some cilantro (you have to buy a whole bunch, but you only use a few chopped tablespoons)&lt;br&gt;
several jalapeños/habañeros, to taste&lt;p&gt;

Chop everything up and put it in sealable plastic bins.  On Taco Night, I dice a tomato and add a few scoops of this salsa mix.  The above lasts probably 3 months at the rate I use it.  However, the quality seriously degrades so if you have more free time (for some reason it takes me like 45 minutes to put this together) I'd recommend making smaller batches more often.  &lt;p&gt;

The guacamole recipe is even dead simpler (deader simple?).  The only reason I even mention it is that I never knew the awesomeness that is guacamole until recently.  Here's the recipe:&lt;p&gt;

&lt;b&gt;Guacamole&lt;/b&gt;&lt;br&gt;
An avocado&lt;br&gt;
1/3 of a packet of guacamole powder&lt;p&gt;

The only tricky part is choosing ripe, but not too ripe, avocados.  A perfect avocado is just a little firmer than a perfect peach.  If you squeeze it and it gives more than 1/16" clean off your hand and find another avocado.  However, it must give at least somewhat or it is underripe.  I've learned the hard way that an underripe avocado is a nightmare to get out of its skin.  If that's all the store has go ahead and buy them, but store them on the counter for a couple days before enfridgerizing.  &lt;p&gt;

(Another way to identify avocados is by color: Black is too far gone, bright green is not far gone enough.  You want a very dark green.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-2939812279148606826?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/2939812279148606826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/salsa-guacamole.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2939812279148606826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/2939812279148606826'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/salsa-guacamole.html' title='Salsa &amp; Guacamole'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-1036913109524755749</id><published>2007-07-14T17:03:00.000-04:00</published><updated>2007-07-14T21:36:25.888-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='logging'/><category scheme='http://www.blogger.com/atom/ns#' term='sensors'/><category scheme='http://www.blogger.com/atom/ns#' term='temperature'/><title type='text'>Temperature Logging Part II</title><content type='html'>OK, so I had the temperature (sorry if this reads like a novel--I'm writing this one after the fact), but I already had that with a kitchen thermometer.  The whole point of this is data &lt;i&gt;collection&lt;/i&gt;.  From the docs and examples, I think most people are using the &lt;a href="http://www.arduino.cc"&gt;Arduino&lt;/a&gt; attached to a computer, which makes logging a simple matter of reading the serial port and writing to the hard drive.  But the temperatures I'm going to be logging will be located far away from a USB port.&lt;p&gt;

My initial plan was to write the values to the "EEPROM" (no, me neither), but:
&lt;ul&gt;
&lt;li&gt;It only supports 512 bytes.  At one sample every two minutes, that's only 4 hours.&lt;/li&gt;
&lt;li&gt;It only supports a limited number of writes.  Large, but limited.&lt;/li&gt;
&lt;li&gt;I don't really need the ability to save the values through a power cycle.&lt;/li&gt;
&lt;/ul&gt;
Instead I went with an array in RAM.  I just have to be sure to get the data before I turn it off or the battery runs out.&lt;p&gt;

And how do I get the data off?  I have a button that tells the thing to dump the data to the serial port.  This is really a simple feature, but I learned a lot while doing it.  That's because, even as an electronics n00b, my analog electronics sk1llz leave my digital ones in the dust.&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/__HLRN4QOAxg/RplDaUSCfVI/AAAAAAAAABc/wZoRi04SFgY/s1600-h/digital_switch_schematic.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/__HLRN4QOAxg/RplDaUSCfVI/AAAAAAAAABc/wZoRi04SFgY/s320/digital_switch_schematic.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5087171373491715410" /&gt;&lt;/a&gt;

Here's the schematic for a digital switch.  Notice that it doesn't really work like an analog switch.  That's because you aren't sending electricity around a digital circuit like with a simple flashlight, you are sending &lt;b&gt;voltage&lt;/b&gt; around the circuit.  Or so this one experience indicated to me.  D2 is the digital port.  When S is open, as shown, D2 is HIGH (i.e. 5V) with respect to ground.  If I close S, current flows (which is why R exists--to limit the current, which means R should be as high as feasibly possible, at least so I infer), but more to the point D2 and ground are electrically connected, meaning it is now LOW (0V).&lt;p&gt;

Question: I think I could have had D2 at LOW by default and switched to HIGH.  Would that save power?  Ideally, a voltage doesn't have a current, but I don't know how the voltage comparison happens internally.&lt;p&gt;

Anyway, this circuit and the &lt;a href="http://projectpotpourri.blogspot.com/2007/07/temperature-logging-part-i.html"&gt;previous one&lt;/a&gt; can be put in parallel.  The thermistor one reads temps until the buffer array is full and the switch one waits for someone to press it and when someone does, it spews data.&lt;p&gt;

All that remained was to make it small and robust enough to survive an afternoon outside, with light breezes, sunshine, etc.  So I soldered the components onto &lt;a href="http://www.radioshack.com/product/index.jsp?productId=2102845&amp;cp=&amp;pg=2&amp;sr=1&amp;origkw=breadboard&amp;kw=breadboard&amp;parentPage=search"&gt;a board&lt;/a&gt; (seriosly, this project is like 1/4 of all the soldering I've ever done--I'm a total, total N))B) and slapped it into a tupperware container.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-1036913109524755749?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/1036913109524755749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/temperature-logging-part-ii.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1036913109524755749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1036913109524755749'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/temperature-logging-part-ii.html' title='Temperature Logging Part II'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/__HLRN4QOAxg/RplDaUSCfVI/AAAAAAAAABc/wZoRi04SFgY/s72-c/digital_switch_schematic.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-1067572808113811237</id><published>2007-07-13T13:30:00.000-04:00</published><updated>2007-07-14T21:19:37.280-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='logging'/><category scheme='http://www.blogger.com/atom/ns#' term='sensors'/><category scheme='http://www.blogger.com/atom/ns#' term='temperature'/><title type='text'>Temperature Logging Part I</title><content type='html'>There have been many times when I've wanted to log temperatures.  No useful reasons, I just like collecting data.  The problem is that temperature logging devices are like $50 and up and of course they only do that one thing.  After the orgy of temperature data collection is done, it just sits on the shelf.&lt;p&gt;

But I'd been hearing about this &lt;a href="http://www.arduino.cc/"&gt;Arduino&lt;/a&gt; dealie, which is an open-source microcontroller that only costs about $35.  I figured that I could put a thermistor on there and make my own logger, which would not only be cheaper but I'd also have a versatile device for other projects.  I've never used a microcontroller before, plus electronics above the level of a flashlight circuit confuses me, so it's been an adventure.  Fortunately the Arduino is supereasy.&lt;p&gt;

For that matter, the electronics of this were prettyeasy.  The hardest part was doing the math to convert a thermistor reading into a temperature one.  I harvested a thermistor from a broken (except for the thermistor) electronic thermometer.  (It was easy to identify, since it was sticking way up away from the rest of the circuit board and and had "therm" written next to it.)&lt;p&gt;

A thermistor varies its resistance based on temperature.  That means that if you apply a voltage, you'll get a varying amount of current out.  But the Arduino input port measures voltage level, which means you need to turn a varying resistance into a varying voltage instead.  That's easy with a voltage divider.&lt;p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/__HLRN4QOAxg/RpjSrkSCfUI/AAAAAAAAABU/MA5KCLsdUk0/s1600-h/thermistor_schematic.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/__HLRN4QOAxg/RpjSrkSCfUI/AAAAAAAAABU/MA5KCLsdUk0/s320/thermistor_schematic.png" alt="" id="BLOGGER_PHOTO_ID_5087047425030520130" border="0" /&gt;&lt;/a&gt;

"Th" is the thermistor, and A1 is the &lt;strike&gt;steak sauce&lt;/strike&gt; Arduino analog input port.  The total voltage drop across both resistors is a constant 5V, but how much drops across each resistor depends on the ratio of their values.  So when the thermistor changes, the voltage at A1 also changes.&lt;p&gt;

Now you just need a way to convert a voltage reading to a temperature reading.  I assumed it would be a linear relationship, but it isn't, it's exponential.  When you buy a thermistor, apparently they give you two numbers.  A baseline resistance (at 25°C,) and a number B.  Apparently you are supposed to know this equation:&lt;p&gt;

R&lt;sub&gt;T&lt;/sub&gt; = R&lt;sub&gt;Tz&lt;/sub&gt;e&lt;sup&gt;B(1/T - 1/Tz)&lt;/sup&gt;&lt;p&gt;

Oh sure, THAT equation!  R&lt;sub&gt;T&lt;/sub&gt; is the resistance of the thermistor, which you can figure out based on the read voltage and known values of the circuit.  R&lt;sub&gt;Tz&lt;/sub&gt; is the resistance at 25&amp;deg;C (or whatever baseline), which is Tz.  T is the temperature you want and B is the magic number.&lt;p&gt;

I didn't get my thermistor from any fancy-shmancy store so I didn't have the magic number.  Instead, I used the thermistor to measure hot and cold water (calibrated by a kitchen thermometer).  Plugging in those readings I was able to solve for B.  Just using math got me within 2 or 3 degrees (over the range 0-100&amp;deg;C--I haven't tested outside that range).  Then a little empirical fudging got me right on the money.&lt;p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-1067572808113811237?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/1067572808113811237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/temperature-logging-part-i.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1067572808113811237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/1067572808113811237'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/temperature-logging-part-i.html' title='Temperature Logging Part I'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/__HLRN4QOAxg/RpjSrkSCfUI/AAAAAAAAABU/MA5KCLsdUk0/s72-c/thermistor_schematic.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7294135473370786875.post-3909888288962808692</id><published>2007-07-13T10:05:00.000-04:00</published><updated>2007-07-14T21:20:59.352-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blahblahblah'/><title type='text'>Introduction</title><content type='html'>Or maybe "Statement of Purpose" would be better.  &lt;p&gt;

I just want a place I can keep track of the many projects I'm "working" on at any one moment.  My attention seems to cycle through a semi-fixed list of topics and when I come back to a topic I don't always know what's going on.  Plus even if I don't have any readers, I'd like to document the things I figure out so random googlers can get a leg up.&lt;p&gt;

Also, I need a place to articulate the solutions I find to problems.  No matter how blinding the insight or life-changing the epiphany, I usually forget how I solved a problem the first time around.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7294135473370786875-3909888288962808692?l=projectpotpourri.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://projectpotpourri.blogspot.com/feeds/3909888288962808692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/3909888288962808692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7294135473370786875/posts/default/3909888288962808692'/><link rel='alternate' type='text/html' href='http://projectpotpourri.blogspot.com/2007/07/introduction.html' title='Introduction'/><author><name>DU</name><uri>http://www.blogger.com/profile/15427884103652875815</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
