<?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-814220487592672205</id><updated>2012-01-04T21:05:15.167-05:00</updated><category term='trebuchet'/><category term='bikes'/><title type='text'>Turing Complete Waste of Time</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-5518403729768208466</id><published>2010-01-11T10:57:00.004-05:00</published><updated>2010-01-11T11:29:44.310-05:00</updated><title type='text'>Ocean Voices</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tdi5U8dJ2Sk/S0tRY0czq6I/AAAAAAAAArA/UHm9rF049ug/s1600-h/ov.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 107px;" src="http://4.bp.blogspot.com/_tdi5U8dJ2Sk/S0tRY0czq6I/AAAAAAAAArA/UHm9rF049ug/s400/ov.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5425519662936075170" /&gt;&lt;/a&gt;&lt;br /&gt;Halsey and I have been hard at work on &lt;a href="http://www.roundware.org/"&gt;Roundware&lt;/a&gt; this past year. A new version of the server was rolled out, clients for the iPhone and Android are in the works, and a new web-based client was written for our newest project with &lt;a href="http://www.calacademy.org/"&gt;The California Academy of Sciences&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Today &lt;abbr title="The California Academy of Sciences"&gt;CAS&lt;/abbr&gt; officially &lt;a href="http://www.calacademy.org/events/oceanvoices/"&gt;announced&lt;/a&gt; the launch of&lt;br /&gt;&lt;a href="http://www.oceanvoices.org/"&gt;Ocean Voices&lt;/a&gt;, an ocean environmental awareness website. Ocean Voices is a collaboration between sound artist &lt;a href="http://halseyburgund.com/"&gt;Halsey Burgund&lt;/a&gt; and marine biologist &lt;a href="http://www.wallacejnichols.org/wallacejnichols/Blog/Blog.html"&gt;Wallace J. Nichols&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The idea is to solicit voices from around the world to contribute to an ever-building composition about the ocean and what it means to all of us. You can go to &lt;a href="http://www.oceanvoices.org/"&gt;http://www.oceanvoices.org/&lt;/a&gt; now and start telling us what the ocean means to you. Tell us a story of the last time you were in the ocean or perhaps take a shot at explaining where the ocean comes from.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-5518403729768208466?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/5518403729768208466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=5518403729768208466' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/5518403729768208466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/5518403729768208466'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2010/01/ocean-voices.html' title='Ocean Voices'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/S0tRY0czq6I/AAAAAAAAArA/UHm9rF049ug/s72-c/ov.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-4533510924490276121</id><published>2009-03-02T16:53:00.000-05:00</published><updated>2009-03-02T16:53:28.511-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trebuchet'/><title type='text'>I know it sounds like a ridiculous idea, and before you say anything, it wasn't mine.</title><content type='html'>How far will a snowball go when thrown from a trebuchet? In all likely hood, you, dear read, have neither the answer to this question, nor any particular interest in knowing it. But if you can believe it, the desire to know the answer to said question drove seven of my friends and I out to the park on a cold winter's day. Armored with coats and sleds we dredged out to the far reaches of Cambridge's own Danehy Park, ready to brave the elements for the promise scientific enlightenment and certain victory.&lt;br /&gt;&lt;br /&gt;What force would drive a man to leave the comfort of his home on a mild winter's day merely for such trivia? Madness you may say. Sadly no. As is the case with everything else on my blog, a friend of mine made an off-handed suggestion and I'm impulsive and easily excited. That friend, Dr. Lisa Flanagan, founder of Flanagan Laboratories (LLC) developed and patented a revolutionary new technology for tracking snowballs in the snow.&lt;br /&gt;&lt;br /&gt;Finding a snowball in the snow, since it is itself snow, seems an intractable problem at first blush. The impossibility, though never formally proven with any satisfying rigor, was the dominant opinion in the field until Flanagan's work. The details of the method remain a trade secret, and many skeptics have accused Flanagan of fudging her numbers, but as time goes on, the possibility of accurate snowball tracking increases in popular acceptance.&lt;br /&gt;&lt;br /&gt;I submit to you the results from the first field test in video form for easy consumption. The video is provided with subtitles for Haze, who is deaf. In fact, you know what? This video is dedicated to Haze, who took a snowball to the head so that we could all laugh just a little bit harder.&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/4rjS1B-OG0k&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/4rjS1B-OG0k&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-4533510924490276121?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/4533510924490276121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=4533510924490276121' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/4533510924490276121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/4533510924490276121'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2009/03/i-know-it-sounds-like-ridiculous-idea.html' title='I know it sounds like a ridiculous idea, and before you say anything, it wasn&apos;t mine.'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-1932340402664973981</id><published>2009-02-14T17:48:00.004-05:00</published><updated>2009-02-14T18:34:42.910-05:00</updated><title type='text'>Transitive Relation Limerick</title><content type='html'>A couple of days ago &lt;a href="http://www.xkcd.com/"&gt;Randy&lt;/a&gt; posted to his blog about going to Limerick, Ireland and also about his &lt;a href="http://www.limerickdb.com/"&gt;Limerick Database project&lt;/a&gt;, a great source for some really nerdy limericks. Then last night, Sarah, while cleaning her room, found a really nerdy limerick I wrote about &lt;a href="http://en.wikipedia.org/wiki/Transitive_relation"&gt;transitive relations&lt;/a&gt;. All this, mind you, happening a day after I told &lt;a href="http://www.didyounoticethatcvssellscockringsnow.com/"&gt;Colin&lt;/a&gt; that I would make it a point to post to my blog more often.&lt;br /&gt;&lt;br /&gt;My blog has regrettably been grossly neglected these past few months. I promise you (and I mean that in the singular sense since I'm fairly certain there is probably only one reader left out there) that this will change very soon. So with out any further, unnecessary back story, here is a limerick to tide you over until I create my next, more substantial post.&lt;br /&gt;&lt;br /&gt;If A=B is true&lt;br /&gt;And B=C is too&lt;br /&gt;Transitivity will say&lt;br /&gt;That any which way&lt;br /&gt;If you ever need A, C will do&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-1932340402664973981?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/1932340402664973981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=1932340402664973981' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/1932340402664973981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/1932340402664973981'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2009/02/transitive-relation-limerick.html' title='Transitive Relation Limerick'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-5224919230243322243</id><published>2008-11-04T11:21:00.011-05:00</published><updated>2009-02-18T14:33:48.214-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bikes'/><title type='text'>What has 6 wheels, 4 feet, 1 motor, and lots of free time?</title><content type='html'>It's election day, and one topic that is on a lot of people's minds is energy, oil, and clean transportation. What's the solution? Electric vehicles? Car pooling? Bicycles? Skateboards? &lt;a href="http://xkcd.com"&gt;Randall Munroe&lt;/a&gt; and I decided to try all four at once. Here's a quick video of Randy on &lt;a href="http://blag.xkcd.com/2008/03/14/new-electric-skateboard/"&gt;his electric skateboard&lt;/a&gt; holding onto a nylon strap tied to my bike carrying me holding a camera.&lt;br /&gt;&lt;br /&gt;This turns out to be an extremely fun, albeit a little bit scary, method of travel. We all have to do our part to conserve energy. If commuting to work this way is what I have to do, well, I'm comfortable with that.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/qJYZUHGei5c&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/qJYZUHGei5c&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-5224919230243322243?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/5224919230243322243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=5224919230243322243' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/5224919230243322243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/5224919230243322243'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2008/11/what-has-6-wheels-4-feet-1-motor-and.html' title='What has 6 wheels, 4 feet, 1 motor, and lots of free time?'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-4361357498330816925</id><published>2008-08-20T10:54:00.029-04:00</published><updated>2008-08-20T16:35:23.692-04:00</updated><title type='text'>Google Maps developers enjoy extremely long walks through several beaches</title><content type='html'>It's quite possible that not a lot people reading this post have ever heard of MacDiarmid, Ontario, considering it's so small that I can't even find a population for it. I did find the population of &lt;a href="http://en.wikipedia.org/wiki/Greenstone,_Ontario"&gt;Greenstone, Ontario&lt;/a&gt;, the township which encompasses MacDairmid and seven other communities. Greenstone's population is a solid 4,906 people. MacDiarmid is probably among the smaller half being one of four that don't have their own Wikipedia entry. I imagine that this puts their population right around the readership of my blog.&lt;br /&gt;&lt;br /&gt;That being said, it's not entirely out of the question that there are MacDiarmid residents reading my blog. Actually it's entirely possible that as soon as this post goes up I will be the first Google search result for MacDiarmid. Especially if I say MacDiarmid enough. Now that I've convinced myself that I'm not totally wasting my time, I'd like to give some navigational advice, if I may, to the people of MacDiarmid.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tdi5U8dJ2Sk/SKxf7arU3BI/AAAAAAAAAeU/Yj87TKxyaFM/s1600-h/driving.PNG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_tdi5U8dJ2Sk/SKxf7arU3BI/AAAAAAAAAeU/Yj87TKxyaFM/s400/driving.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5236665941103008786" /&gt;&lt;/a&gt;If you're planning on taking a trip &lt;a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=MacDiarmid,+ON,+Canada+to+Shebandowan,+ON,+Canada&amp;sll=42.402041,-71.122436&amp;sspn=0.010299,0.019484&amp;ie=UTF8&amp;z=9"&gt;from MacDiarmid to Shebandowan, Ontario&lt;/a&gt;, it's a nice, three-hour drive down the Trans Canadian Highway, hugging the shore of scenic Lake Superior. A quick Google Maps look up  will provide you with a handy, eight-turn route, and if you leave right after work, you'll be there in time for super.&lt;br /&gt;&lt;br /&gt;MacDiarmid has a reputation for being a vacation destination for lovers of the great outdoors. It's likely you may be interesting in planning your Shebandowan trip as a hike or a bike ride. If so it'll probably be pretty tempting to click that new, convenient, little drop down to use Google Map's new &lt;a href="http://google-latlong.blogspot.com/2008/07/pound-pavement.html"&gt;walking directions&lt;/a&gt; feature. But if you live in MacDiarmid I highly recommend you get a second opinion first. Unless of course you're interested in heading down through the U.S. to circumnavigate the Great Lakes.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tdi5U8dJ2Sk/SKxgIGJCkbI/AAAAAAAAAec/0qYQ-uPUcSI/s1600-h/walking.PNG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_tdi5U8dJ2Sk/SKxgIGJCkbI/AAAAAAAAAec/0qYQ-uPUcSI/s400/walking.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5236666158928794034" /&gt;&lt;/a&gt;The entire walking trip from MacDiarmid to Shebandowan takes a brisk 25 days and 16 hours assuming you don't take any naps or stop for food. It covers 3,203km which is almost 14 times the distance that you'd travel in a car. On your way, you will pass though three U.S. states, take two ferry rides, and visit such major cities as Detroit and Milwaukee. Not to mention two border crossings. Don't forget to bring your passport!&lt;br /&gt;&lt;br /&gt;Naively, one would guess that the walking directions from one place to another would be at most as long as the driving directions due to one-way streets and highways that wind around dense areas; this is a bit of city bias speaking. In some cases like these, however, there are un-walkable highways that are the only remotely direct route between two places. Though if you ask me, I'd prefer a little more rough hike through the woods to a 25 day hike with no rest. Maybe Google Maps developers are more adventurous than I am. Maybe they just get more vacation time.&lt;br /&gt;&lt;br /&gt;There are definitely pairs of locations that Google considers unable to be connected via walking. I wonder what other kinds trips are possible to walk but have a similarly dramatic factor increase in walking distance. Can anyone find any that are bigger?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-4361357498330816925?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/4361357498330816925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=4361357498330816925' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/4361357498330816925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/4361357498330816925'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2008/08/google-maps-developers-enjoy-extremely.html' title='Google Maps developers enjoy extremely long walks through several beaches'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/SKxf7arU3BI/AAAAAAAAAeU/Yj87TKxyaFM/s72-c/driving.PNG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-7064076139327382084</id><published>2008-07-16T21:23:00.008-04:00</published><updated>2008-07-16T21:49:45.067-04:00</updated><title type='text'>Catty Scrap Cannon</title><content type='html'>A couple of weeks ago I was in Pennsylvania with Jeff and Sean, and you know what that means. Destroying things in order to building things which will eventually be used destroy things. A few months ago Sean got a long and very thick steel pipe in at the scrap yard. He saved it aside until Jeff and my next visit with the plans of turning it into a cannon. This sounded pretty dangerous to me so I, as always, was prepared with my camera, just in case anyone got hurt. Have you ever had the experience of hearing such a loud sound that it actually made you temporarily deaf? I think two weeks ago was my first actual experience with this.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/wiKc12DofjM&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/wiKc12DofjM&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-7064076139327382084?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/7064076139327382084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=7064076139327382084' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/7064076139327382084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/7064076139327382084'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2008/07/catty-scrap-cannon.html' title='Catty Scrap Cannon'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-325314381691259465</id><published>2008-06-09T14:10:00.003-04:00</published><updated>2008-07-11T06:58:47.830-04:00</updated><title type='text'>Round written up in the NY Times.</title><content type='html'>I just wanted to post a quick note that Round has been written up by the NY Times. Here's &lt;a href="http://www.nytimes.com/2008/06/08/nyregion/nyregionspecial2/08artswe.html?ex=1370577600&amp;en=51d78e69a7cb21f0&amp;ei=5124&amp;partner=permalink&amp;exprod=permalink"&gt;the article&lt;/a&gt; on their website.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-325314381691259465?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/325314381691259465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=325314381691259465' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/325314381691259465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/325314381691259465'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2008/06/round-written-up-in-ny-times.html' title='Round written up in the NY Times.'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-2214644369174263797</id><published>2008-05-26T18:37:00.003-04:00</published><updated>2009-02-18T14:34:05.530-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bikes'/><title type='text'>Province Town Century</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_tdi5U8dJ2Sk/SDTyOduofuI/AAAAAAAAAbQ/eyY9tjEYrPI/s1600-h/00007.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_tdi5U8dJ2Sk/SDTyOduofuI/AAAAAAAAAbQ/eyY9tjEYrPI/s200/00007.jpg" alt="" id="BLOGGER_PHOTO_ID_5203049799832076002" border="0" /&gt;&lt;/a&gt;If you're not a avid cyclist, a computer programmer, a Free-Software enthusiast, and from around the Boston area, then you've probably never even heard of the Tour De Nat. The Tour De Nat is a one-day, 120 mile bike ride from Boston's South station to Province Town, MA followed by a ride on the day's final ferry back to South Station just in time to go out drinking.&lt;br /&gt;&lt;br /&gt;Last summer Owen and I took this ride ourselves with a few adjustments. For starters we didn't plan to take the final ferry back the day we arrived. We planned a camping trip around our ride with several other friends. Secondly, we started from Braintree T station, the end of the Red Line, to cut out the cross-city ride and then took a less-direct, more scenic route across the South Shore.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-3552ff620a8a59c8" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v2.nonxt6.googlevideo.com/videoplayback?id%3D3552ff620a8a59c8%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329852642%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4F3C2D30E912BF3643D09536D7EF2B5A264DADC6.83F229F4B8FFDED0B9476A1EAA3CC0FB6A1C8609%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D3552ff620a8a59c8%26offsetms%3D5000%26itag%3Dw160%26sigh%3DWuTCPNUvxeLlwuxbv2etKhFfqxE&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v2.nonxt6.googlevideo.com/videoplayback?id%3D3552ff620a8a59c8%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329852642%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4F3C2D30E912BF3643D09536D7EF2B5A264DADC6.83F229F4B8FFDED0B9476A1EAA3CC0FB6A1C8609%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D3552ff620a8a59c8%26offsetms%3D5000%26itag%3Dw160%26sigh%3DWuTCPNUvxeLlwuxbv2etKhFfqxE&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;When we began planning the camping trip, we realized we didn't have many friends who drove, so space in cars was at a premium. We ask the rest of them what was more important to ensure made it to the camp ground safely, the tents or Owen and I. The group unanimously voted on the tents so Owen and I had to find another way to get to the Cape. We spent the next couple of months trying to figure out what to do but with Owen's time warp portal only in pre-Alpha stage and the trebuchet being as weak as it is, we figured the only other option we had was to bike it. At least we wouldn't have to bike with tents.&lt;br /&gt;&lt;br /&gt;We spent the summer training. Owen and I went on a 40-mile ride right at the beginning of the summer for a quick warm up. I continued this regiment by spending the summer programming and building things out of PVC while Owen chose to focus more on the riding aspect of the ride for his training. He took several more lengthy, one-day rides over the course of the summer but made to sure to keep me updated so that I wouldn't miss out on that part of the training.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_tdi5U8dJ2Sk/SDTyqtuofvI/AAAAAAAAAbY/WUJ-zLmqCWk/s1600-h/00004.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer;" src="http://bp0.blogger.com/_tdi5U8dJ2Sk/SDTyqtuofvI/AAAAAAAAAbY/WUJ-zLmqCWk/s200/00004.jpg" alt="" id="BLOGGER_PHOTO_ID_5203050285163380466" border="0" /&gt;&lt;/a&gt;The day of the trip approached and we were ready. We got up at about 5:00am to take the Red Line down to Braintree. We weaved across the South Shore on our circuitous path, hoping to, at some point make it to the Sagamore Bridge. With nothing to guide us but our wits, sense of direction, street signs, highway markers, a map, and a Garmin etrex GPS device, we set off into the great known, bound for adventure or at least a few cramps. We occasionally stopped off along the side of the road to get pictures, take some video.&lt;br /&gt;&lt;br /&gt;Let me give you some advice if you're driving a car on route 6A down the Cape. If you see a cyclist riding in front of you, don't assume he's going to turn off any minute now; just pass him. I realize you're old and the road is narrow but seriously, you're holding up a line of ten cars.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_tdi5U8dJ2Sk/SDTzbduofwI/AAAAAAAAAbg/ThkhAa8MdmM/s1600-h/00011.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_tdi5U8dJ2Sk/SDTzbduofwI/AAAAAAAAAbg/ThkhAa8MdmM/s200/00011.jpg" alt="" id="BLOGGER_PHOTO_ID_5203051122682003202" border="0" /&gt;&lt;/a&gt;Camping in Province Town was a blast. The town has a great strip with lots of nice places to eat and more than its fair share of celebrity look-a-like cross dressers. The beaches were beautiful and if you get to the park services office at 9:00am you can get in line to get a fire permit for the beach of your choice which they will happily give you when they open at 4:00pm.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_tdi5U8dJ2Sk/SDTz79uofxI/AAAAAAAAAbo/yqluR7XFQjE/s1600-h/00017.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer;" src="http://bp1.blogger.com/_tdi5U8dJ2Sk/SDTz79uofxI/AAAAAAAAAbo/yqluR7XFQjE/s200/00017.jpg" alt="" id="BLOGGER_PHOTO_ID_5203051681027751698" border="0" /&gt;&lt;/a&gt;The ferry ride home was rather expensive but well worth it. For starters, it's a lot quicker than driving or riding a bicycle. Secondly, you can bring your bike on the ferry. One of the things about a century ride is that unless you're lucky, the second half of the ride is pretty much just the first half in reverse. It's nice to be able to take a long ride straight away from your origin and then magically (ferries count as magic) appear back where you started after you're done. The view on the bay was nice and I got a couple nice shots of the Boston skyline as we strolled into the harbor.&lt;br /&gt;&lt;br /&gt;That's my report. Owen grabbed our statistics from his GPS device:&lt;br /&gt;&lt;p&gt;Total distance:  108.23&lt;br /&gt;Time moving: 7:44:57&lt;br /&gt;Time elapsed (includes train ride from Davis to Braintree and lunch): 12:30&lt;br /&gt;Average speed: 14.0&lt;br /&gt;Max speed: 31.0&lt;/p&gt; Not bad. We plan to do it again this summer. If you're interested in joining us, let me know.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;div style=""&gt;&lt;iframe marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=d&amp;amp;hl=en&amp;amp;geocode=&amp;amp;saddr=braintree+station&amp;amp;daddr=N+Quincy+St+%4042.120180,+-71.000720+to:Massasoit+Blvd+%4042.073400,+-70.992660+to:Central+St+%4042.030010,+-70.956080+to:Washington+St+%4042.037310,+-70.921190+to:Old+Plymouth+St+%4042.004380,+-70.917330+to:Franklin+St+%4041.968350,+-70.849360+to:41.947362,-70.692387+to:Summer+St+%4041.954690,+-70.664240+to:Long+Pond+Rd+%4041.885060,+-70.625460+to:sagamore+bridge+to:RT-6A+%4041.756210,+-70.490020+to:Main+St%2FRT-6A+%4041.700920,+-70.292300+to:Main+St%2FRT-6A+%4041.754770,+-70.093920+to:Cranberry+Hwy%2FRT-6A+%4041.789450,+-69.990050+to:State+Hwy%2FUS-6+%4042.020770,+-70.072640&amp;amp;mrcr=6,7&amp;amp;mrsp=7&amp;amp;sz=13&amp;amp;mra=dpe&amp;amp;dirflg=h&amp;amp;sll=41.957575,-70.729465&amp;amp;sspn=0.08655,0.163078&amp;amp;ie=UTF8&amp;amp;om=1&amp;amp;ll=41.909942,-70.699768&amp;amp;spn=0.346457,0.652313&amp;amp;output=embed&amp;amp;s=AARTsJo0ApmjotuEFb5N1OZ7a0EYSTEGHQ" frameborder="0" height="350" scrolling="no" width="425"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;&lt;small&gt;&lt;a href="http://maps.google.com/maps?f=d&amp;amp;hl=en&amp;amp;geocode=&amp;amp;saddr=braintree+station&amp;amp;daddr=N+Quincy+St+%4042.120180,+-71.000720+to:Massasoit+Blvd+%4042.073400,+-70.992660+to:Central+St+%4042.030010,+-70.956080+to:Washington+St+%4042.037310,+-70.921190+to:Old+Plymouth+St+%4042.004380,+-70.917330+to:Franklin+St+%4041.968350,+-70.849360+to:41.947362,-70.692387+to:Summer+St+%4041.954690,+-70.664240+to:Long+Pond+Rd+%4041.885060,+-70.625460+to:sagamore+bridge+to:RT-6A+%4041.756210,+-70.490020+to:Main+St%2FRT-6A+%4041.700920,+-70.292300+to:Main+St%2FRT-6A+%4041.754770,+-70.093920+to:Cranberry+Hwy%2FRT-6A+%4041.789450,+-69.990050+to:State+Hwy%2FUS-6+%4042.020770,+-70.072640&amp;amp;mrcr=6,7&amp;amp;mrsp=7&amp;amp;sz=13&amp;amp;mra=dpe&amp;amp;dirflg=h&amp;amp;sll=41.957575,-70.729465&amp;amp;sspn=0.08655,0.163078&amp;amp;ie=UTF8&amp;amp;om=1&amp;amp;ll=41.909942,-70.699768&amp;amp;spn=0.346457,0.652313&amp;amp;source=embed" style="color: rgb(0, 0, 255); text-align: left;"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-2214644369174263797?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=3552ff620a8a59c8&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/2214644369174263797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=2214644369174263797' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/2214644369174263797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/2214644369174263797'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2008/05/province-town-century.html' title='Province Town Century'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_tdi5U8dJ2Sk/SDTyOduofuI/AAAAAAAAAbQ/eyY9tjEYrPI/s72-c/00007.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-2319788863411052671</id><published>2008-04-21T17:29:00.001-04:00</published><updated>2008-04-22T11:40:29.455-04:00</updated><title type='text'>What a lot of people don't know about what makes software interesting.</title><content type='html'>I had a quick conversation with a grocery-store cashier yesterday that stuck with me for a while. He overheard Sarah and I talking about some technical stuff that piqued his interest and it came out that I was a software developer. He seemed pretty interested in that and asked me what kinds of projects I write. I mentioned that most recently I had written software for a museum installation and that for my full time job I work at a software company where I write software for doctor's offices.&lt;br /&gt;&lt;br /&gt;His response was what stuck with me. He mentioned how it was nice for me to have some interesting side-projects to fill in the gaps I that must have from my boring day job. I didn't get into this with him due to the brevity of our conversation but I think his response is indicative of a very commonly held misconception about software development.&lt;br /&gt;&lt;br /&gt;The irony of it is that if we're just considering the amount of rewarding technical challenges and interesting design decisions, his notions about the two projects are pretty much the exact opposite of reality. As fun an interesting as the museum installation, &lt;a href="http://turingcompletewasteoftime.blogspot.com/2008/03/hearing-voices.html"&gt;Round&lt;/a&gt;, has been for me, it's really not all that technically interesting. I'm not going to say it was easy for me but most of the reason that it was challenging was for two major issues. The first being that I had to learn a lot of new things as a result of being the only technical person on the project. Secondly I had relatively very little time to cram in all the work since I have another job.&lt;br /&gt;&lt;br /&gt;On the other hand when it came to system design decisions, algorithms, abstraction decisions, code organization, or any of the important things we learn in a computer science degree, the decisions on Round were pretty straight forward. This comes in direct contrast to my day job, which I am very happy to say, provides very challenging and interesting problems.&lt;br /&gt;&lt;br /&gt;Currently I work on a contract modeling system that enables doctors to analyze the contracts that they have with health-care insurance companies, cross reference them with their billing history, and figure out if they are being underpaid. I'm sure for anyone that is not a computer scientist this sounds incredibly boring. It's actually very fitting that it would considering the nature of the computing world. We invented computers specifically to do our boring work for us. It seems obvious that the work they do would sound boring. It's rare for a computer to get to spend it's CPU cycles on something fun an exciting like playing Chess. Such computers should consider themselves very lucky.&lt;br /&gt;&lt;br /&gt;The challenges involved with the contract modeling project range from designing fast algorithms for cross referencing with billing history, creative mechanisms for caching previously computed values when the user will not be slowed down by the computation, and most importantly, the design of a sufficiently expressive language and interface for modeling the contracts that will not destroy the performance of the aforementioned algorithms. The work involves a lot of engineering and creativity as well as a lot of collaboration with other developers and non-developers alike.&lt;br /&gt;&lt;br /&gt;Now don't get me wrong, writing Round was very interesting for me. I had total design control over the project, which is always nice and I had some creative input on the user interface and audio. I also learned new technologies which were really fun to use but really the allure to this project was that the result was fun. I was making art and helping my friend see his own art career come to fruition. It was (in direct contrast to my day job) something that my friends could go see and say "Wow, Mike, this project is really cool." It's a project that I personally enjoy using a lot.&lt;br /&gt;&lt;br /&gt;Since none of my friends, save Todd, are doctors I don't really get that from my work. Actually I myself have no use for the software that I write at work, but that's not important. It's fascinating and it's solving a real-world problem. The state of health care in the United States, in my opinion, is on the verge of a logistical crisis, and has been for years. The company that I work for, &lt;a href="http://www.athenahealth.com/"&gt;AthenaHealth&lt;/a&gt;, is working to fix what it can with really good technology.&lt;br /&gt;&lt;br /&gt;It does feel good to be working to solve a problem that effects us all on a political level and it's true that if a company's goals were too far off or even opposed to my own, I would not do the work. But I honestly, feeling good about the cause is mostly an ancillary benefit. For me, it's all about the technical challenge, not the result. I think most programmers would agree with me here. It just goes to show that you really can't conflate how interesting a software project is with how exciting the result is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-2319788863411052671?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/2319788863411052671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=2319788863411052671' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/2319788863411052671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/2319788863411052671'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2008/04/what-lot-of-people-dont-know-about-what.html' title='What a lot of people don&apos;t know about what makes software interesting.'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-3384828195470494167</id><published>2008-03-21T18:39:00.001-04:00</published><updated>2008-03-21T19:12:57.140-04:00</updated><title type='text'>Hearing Voices</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_tdi5U8dJ2Sk/R-QrvcsUs-I/AAAAAAAAAXk/3NjEimVOcm8/s1600-h/hb.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_tdi5U8dJ2Sk/R-QrvcsUs-I/AAAAAAAAAXk/3NjEimVOcm8/s200/hb.gif" alt="" id="BLOGGER_PHOTO_ID_5180313565538857954" border="0" /&gt;&lt;/a&gt;It's been a long while since my last post. Most of the reason for this is that for the last three months I've spent all of my free time working on a project called &lt;a href="http://aldrichart.org/exhibitions/burgund.php"&gt;Round&lt;/a&gt;, which is now on exhibit at the &lt;a href="http://aldrichart.org/"&gt;Aldrich Contemporary Art Museum&lt;/a&gt; in Ridgefield, CT. Round&lt;a href="http://halseyburgund.com/"&gt;&lt;/a&gt; is an audio installation, by &lt;a href="http://halseyburgund.com/"&gt;Halsey Burgund&lt;/a&gt;, which solicits spoken voice contributions from visitors and uses them as part of a musical composition intended to be listened to while viewing the other exhibitions.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_tdi5U8dJ2Sk/R-QsKssUs_I/AAAAAAAAAXs/rEci8silZW0/s1600-h/round_splash.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_tdi5U8dJ2Sk/R-QsKssUs_I/AAAAAAAAAXs/rEci8silZW0/s200/round_splash.png" alt="" id="BLOGGER_PHOTO_ID_5180314033690293234" border="0" /&gt;&lt;/a&gt;Visitors to the museum can pick up a wireless tablet and a pair of headphones from the front desk. The guard enters in their gender, approximate age, and the fact that they are a visitor into the device before handing it off. The device guides the user through a simple touchscreen interface asking them which exhibit and artwork they are looking at. The device then plays a music piece, composed by Halsey, along with voice comments about the chosen work of art. Users are able to limit the voices by age range, gender, and whether the comments are from the artist, curator, or another visitor.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_tdi5U8dJ2Sk/R-QtossUtBI/AAAAAAAAAX8/iMmx3icOet8/s1600-h/00005.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_tdi5U8dJ2Sk/R-QtossUtBI/AAAAAAAAAX8/iMmx3icOet8/s200/00005.jpg" alt="" id="BLOGGER_PHOTO_ID_5180315648597996562" border="0" /&gt;&lt;/a&gt;The mechanism for playing the voice samples is perhaps the most interesting part of Round. Comments are not played in any particular order; they're not even played in their entirety but rather randomly sampled. Come to think of it there's not a whole lot about Round that isn't random. The voice clips are played for a random amount of time, starting from a random point in the clip, with a random amount of dead air between each one. The clips fade in for a random amount of time to a random volume level and then back back out for a random amount of time. There are two separate streams of voices so it's possible to hear more than one voice at a time and each stream randomly pans from left to right as the piece plays.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tdi5U8dJ2Sk/R-QuRMsUtCI/AAAAAAAAAYE/aicgg8VfQpw/s1600-h/00014.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_tdi5U8dJ2Sk/R-QuRMsUtCI/AAAAAAAAAYE/aicgg8VfQpw/s200/00014.jpg" alt="" id="BLOGGER_PHOTO_ID_5180316344382698530" border="0" /&gt;&lt;/a&gt;Round puts the museum visitor into an audio space that transcends time. When you listen to the piece you are hearing everyone who has ever been to the museum and talked about the art that you're looking at. The fading in and out and stereo panning gives the feeling that you're hearing bits of conversations as all the past visitors pass by you.&lt;br /&gt;&lt;br /&gt;The exhibit opened this past Sunday so I took the trip down to Connecticut with Halsey, his girlfriend Laura, and an entourage of my nine most supporting friends to go to the reception. Brian's parents happen to live near the museum so Sarah, Emma, Trevor, Owen and I stayed over night. Nicolle, Jeff, Bob, and Chessie all showed up the day of.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_tdi5U8dJ2Sk/R-QwassUtFI/AAAAAAAAAYc/nN2bQmCIs2A/s1600-h/00016.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_tdi5U8dJ2Sk/R-QwassUtFI/AAAAAAAAAYc/nN2bQmCIs2A/s200/00016.jpg" alt="" id="BLOGGER_PHOTO_ID_5180318706614711378" border="0" /&gt;&lt;/a&gt;Development for Round really came down to the wire. It wasn't until the morning before the opening that I rewrote the entire server to use Icecast rather raw TCP streams in order to make the kiosk version work. During the previous week we discovered that Halsey's commercial audio composition software was crashing if run for more than a few days. And at with just one hour to go before the opening, we discovered that inserting headphones into the device caused the mic to stop working. Now this is something we had tested throughly ahead of time and seemed to be pretty random as to whether or not it happened at all. Dealing with enumerable unforeseeable issues like these is enough to make anyone start hearing voice. Luckily for us that was our goal to begin with.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_tdi5U8dJ2Sk/R-QvzcsUtEI/AAAAAAAAAYU/D6z8e6lOjis/s1600-h/00003.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_tdi5U8dJ2Sk/R-QvzcsUtEI/AAAAAAAAAYU/D6z8e6lOjis/s200/00003.jpg" alt="" id="BLOGGER_PHOTO_ID_5180318032304845890" border="0" /&gt;&lt;/a&gt;Despite our nerves, last minute hacks, and never ending surprises, the exhibit actually went really well. The visitors seemed to enjoy it and there were no major technical failures that the users knew about. I can remember my first sigh of relief coming when I saw an early group of visitors walking around the museum listening to the piece. The were listening, smiling, and looking at the art, rather than starring in frustration at a broken device. It felt really good.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_tdi5U8dJ2Sk/R-QvAssUtDI/AAAAAAAAAYM/lbuAyedoOvA/s1600-h/00001.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_tdi5U8dJ2Sk/R-QvAssUtDI/AAAAAAAAAYM/lbuAyedoOvA/s200/00001.jpg" alt="" id="BLOGGER_PHOTO_ID_5180317160426484786" border="0" /&gt;&lt;/a&gt;After the reception Halsey and I spoke to Lisa Delgado, a reporter from Rhizome, which is an art and technology blog. She wrote an article about the piece called &lt;a href="http://rhizome.org/editorial/fp/blog.php/519"&gt;Guided by Voices&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As far as technical details go, Round is developed entirely in &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; using &lt;a href="http://gstreamer.freedesktop.org/"&gt;GStreamer&lt;/a&gt;. The device we're using is &lt;a href="http://www.nseries.com/products/n800/"&gt;Nokia N800&lt;/a&gt;, which I chose primarily for the fact that it runs entirely free and open source software. Having a device where one can really open up and hack the internals is pretty critical for any project that's as specialized as Round. &lt;a href="http://sourceforge.net/projects/roundware"&gt;Roundware&lt;/a&gt;, the software use to run the project, has been released under the &lt;a href="http://www.gnu.org/copyleft/gpl.html"&gt;GPL&lt;/a&gt; at &lt;a href="http://sourceforge.net/"&gt;sourceforge.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After deciding on the device Halsey ventured to send some emails around and see if &lt;a href="http://www.nokia.com/"&gt;Nokia&lt;/a&gt; might be interested in donating the devices for use at the museum. As it turns out, they did, so Halsey and I would like to extend a big thank you to Nokia for that. I'd also like to thank &lt;a href="http://ywwg.com/"&gt;Owen Williams&lt;/a&gt;, a good friend of mine, whose knowledge of Python and GStreamer really helped me expedite my development process. To that end I'd also like to thank the good people of the GStreamer IRC channel and mailing list for their endless patients and key insights.&lt;br /&gt;&lt;br /&gt;Finally I'd like to thank my nine awesome friends who took the time to come all the way down to the other side of Connecticut just to see our project and be supportive and Brian's parents for housing all of us for the night.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-3384828195470494167?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/3384828195470494167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=3384828195470494167' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/3384828195470494167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/3384828195470494167'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2008/03/hearing-voices.html' title='Hearing Voices'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_tdi5U8dJ2Sk/R-QrvcsUs-I/AAAAAAAAAXk/3NjEimVOcm8/s72-c/hb.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-6774234001267810933</id><published>2008-01-14T23:51:00.001-05:00</published><updated>2009-02-18T14:33:27.791-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bikes'/><title type='text'>Catty Scrap Tall Bike</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_tdi5U8dJ2Sk/R4-3aYFL3YI/AAAAAAAAAWc/bS3QTPw52gE/s1600-h/00107.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp1.blogger.com/_tdi5U8dJ2Sk/R4-3aYFL3YI/AAAAAAAAAWc/bS3QTPw52gE/s200/00107.jpg" alt="" id="BLOGGER_PHOTO_ID_5156541762131189122" border="0" /&gt;&lt;/a&gt;Several weeks ago I was in Pennsylvania visiting my friends Sean and Nicolle again. This time I went down there with a great idea, which, like all of my other great ideas, was actually just a really bad idea backed up with a whole lot of zeal.&lt;br /&gt;&lt;br /&gt;The idea was to rummage around in Sean's scrap metal yard for discarded bicycles and weld them together into one giant bicycle. Building a tall bike is a pretty straight-forward process if one has access to just a couple of suitable bike frames and knows how to weld. If one has access and endless supply of unsuitable bike frames and knows someone who has seen someone else weld, the process is significantly less straight forward.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_tdi5U8dJ2Sk/R4-1QIFL3XI/AAAAAAAAAWU/UNfMGqJL_Ig/s1600-h/00112.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer;" src="http://bp0.blogger.com/_tdi5U8dJ2Sk/R4-1QIFL3XI/AAAAAAAAAWU/UNfMGqJL_Ig/s200/00112.jpg" alt="" id="BLOGGER_PHOTO_ID_5156539387014274418" border="0" /&gt;&lt;/a&gt;We spent the first day piling up bikes that we found in the yard and discussing plans at the Allentown Brew Works, which was hosting their annual Brew Fest while I was in town. Keep in mind, inspiration comes faster when you're drunk and in Pennsylvania. I had found a couple of similar size BMX bikes and noticed that they both had those distinctive four-bolt handle-bar clamps and the handle bars with a cross bar on top. Sean and I decided it would be cool to take one BMX bike and flip it up-side down on top of another BMX bike. We'd take the handle bars off of the top one and use its clamp to hold onto the cross bar of the bottom bike's handle bars.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_tdi5U8dJ2Sk/R4-6GIFL3aI/AAAAAAAAAWs/rxgGWprcr10/s1600-h/00104.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_tdi5U8dJ2Sk/R4-6GIFL3aI/AAAAAAAAAWs/rxgGWprcr10/s200/00104.jpg" alt="" id="BLOGGER_PHOTO_ID_5156544712773721506" border="0" /&gt;&lt;/a&gt;I thought that if we did this, the two seat tubes would line up and I'd be able to put a seat post through both to connect them, but I was wrong. So we took the plastic off of one seat and arc welded the remaining metal wire to the up-side-down bike. This allowed us to connect a regular seat tube to the top bike and slide it into the seat post of the bottom bike. I like to think of it as a bike that has a bike for a seat.&lt;br /&gt;&lt;br /&gt;We then had a bike with pedals three feet off the ground, a fork for handle bars, and no place to sit. We solved the handle-bar problem no sweat. We just took another fork and connected it right-side up to the up-side down one. The existing wheel and axle made a perfect connector for the two forks so that's why there's a decorative, fourth wheel on top of the bike.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_tdi5U8dJ2Sk/R4-0mIFL3WI/AAAAAAAAAWM/5f28kJw3NaU/s1600-h/00115.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer;" src="http://bp0.blogger.com/_tdi5U8dJ2Sk/R4-0mIFL3WI/AAAAAAAAAWM/5f28kJw3NaU/s200/00115.jpg" alt="" id="BLOGGER_PHOTO_ID_5156538665459768674" border="0" /&gt;&lt;/a&gt;Now for the real challenge, where do you sit? We both agreed that putting my weight on that little seat-wire-welding number we whipped up  earlier would probably cause my death, so we decided to cut the seat tube off of another bike and weld it up right coming out of the bottom bike. To brace it we drilled a huge hole through the bottom bracket of that same bike  to put the seat tube  through and welded the chain stays to the bottom bike for support. We found an extra long seat post in the yard to toss in there and presto! A very high seat.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_tdi5U8dJ2Sk/R4-7UIFL3bI/AAAAAAAAAW0/mQ40eBGI7k0/s1600-h/00113.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_tdi5U8dJ2Sk/R4-7UIFL3bI/AAAAAAAAAW0/mQ40eBGI7k0/s200/00113.jpg" alt="" id="BLOGGER_PHOTO_ID_5156546052803517874" border="0" /&gt;&lt;/a&gt;Then we realized the major problem. The frame was in the way of running a chain from the crank to the rear hub because it was designed to have the chain go out the back. Now anyone reading this is probably thinking to themselves "Oh that's easy. Put the top bike's chain stays in a vice over night and force them apart. Then stick a five-speed mountain bike wheel with a cassette in the newly widened frame, run a chain from the crank back to the cassette, and finally run a second chain from the cassette down to the rear hub." Now, I admit that, in retrospect, we should have thought of that sooner but it was late and we weren't really thinking all that clearly (which we probably can't blame on the late hour.)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_tdi5U8dJ2Sk/R4-954FL3cI/AAAAAAAAAW8/dWbVaWsheKA/s1600-h/falling.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer;" src="http://bp3.blogger.com/_tdi5U8dJ2Sk/R4-954FL3cI/AAAAAAAAAW8/dWbVaWsheKA/s200/falling.jpeg" alt="" id="BLOGGER_PHOTO_ID_5156548900366835138" border="0" /&gt;&lt;/a&gt;The bike was complete and there was only one thing left to do. I put on some thick gloves in case I had to brace myself during a fall and Nicolle got ready with the video camera in case anything more dangerous happened. As soon as I got on for the first time it was obvious that the bike would immediately do a wheely if I put any weight on the seat. It was so high up that it was behind the rear wheel, causing the seat post to act like a big lever. So we figured what, the heck? Toss a couple 20 lbs. weights on the front handle bars. It's not like we're going to being winning the Tour de France on this thing.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_tdi5U8dJ2Sk/R4--FYFL3dI/AAAAAAAAAXE/uu7J8s-qHTA/s1600-h/riding.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp1.blogger.com/_tdi5U8dJ2Sk/R4--FYFL3dI/AAAAAAAAAXE/uu7J8s-qHTA/s200/riding.jpeg" alt="" id="BLOGGER_PHOTO_ID_5156549097935330770" border="0" /&gt;&lt;/a&gt;The first few trial rides revealed a flaw in the vertical chain. There was no way to tension the chain so it kept falling off. We added a derailer to try to pull up the slack. This fixed the problem enough to ride but it was still error prone and fell off fairly often causing the bike to lose speed, stall, and ditch its pilot.&lt;br /&gt;&lt;br /&gt;We ended up using parts from six different bikes, two whole frames, one extra fork, one set of hacked up frame parts, an extra five-speed hub, a derailer, a seat, and a bunch of spare chains. I admit it wasn't pretty but it was so beautiful. Next time I visit we'll try to fix the chain situation.&lt;br /&gt;&lt;br /&gt;&lt;object height="350" width="425"&gt; &lt;param name="movie" value="http://www.youtube.com/v/g_zUEO2bbb8"&gt;  &lt;embed src="http://www.youtube.com/v/g_zUEO2bbb8" type="application/x-shockwave-flash" height="350" width="425"&gt;&lt;/embed&gt;  &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-6774234001267810933?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/6774234001267810933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=6774234001267810933' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/6774234001267810933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/6774234001267810933'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2008/01/catty-scrap-tall-bike.html' title='Catty Scrap Tall Bike'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_tdi5U8dJ2Sk/R4-3aYFL3YI/AAAAAAAAAWc/bS3QTPw52gE/s72-c/00107.jpg' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-1038844476776164350</id><published>2007-12-27T14:51:00.000-05:00</published><updated>2007-12-27T16:49:00.239-05:00</updated><title type='text'>The absolute crux of AJAX. A short, short tutorial.</title><content type='html'>I've been unbelievably busy this past month so I haven't had much time to post any of the things I've been doing. I did, however, have to learn a little AJAX in order to complete a side project of mine. Since I found it a little difficult to find exactly what I needed easily on the web I wanted to share what I learned with anyone who might be Google-searching for how to write AJAX web pages.&lt;br /&gt;&lt;br /&gt;First, a quick motivation for the problem. I want to give my user an entry form to tell me which country they are from. Once filled in, I want to populate a selection box for the region they are from, which of course depends on which country they select. After that I wanted them to chose the city. One really simple way to accomplish this is just to write out a list of all the countries, regions, and cities into a Javascript data structure. The problem is that there are more that 36,000 cities in the database I was using. Writing this all out to the user at once would make their browser time out.&lt;br /&gt;&lt;br /&gt;What I really want to do is give the user just the countries to chose from first. Once they have chosen a country, I get the regions for just that country out of the database. Javascript doesn't have any database bindings and I don't want to have the user submit the page and have a new one come up for UI reasons.&lt;br /&gt;&lt;br /&gt;What I want is for Javascript to go and ask the server itself. This is what AJAX is for. After reading a tutorial or two and picking out the pieces I needed, I found that this little snippet of code is all I need to do:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;var req = new XMLHttpRequest();&lt;br /&gt;req.open("GET", "getregions?countryid=" + countryid, true);&lt;br /&gt;req.onreadystatechange = function () {&lt;br /&gt;  if (req.readyState == 4 /*complete*/) {&lt;br /&gt;  var data = eval('(' + req.responseText + ')');&lt;br /&gt;  &lt;em&gt;... do something with data ...&lt;/em&gt;&lt;br /&gt;}&lt;br /&gt;req.send(/*no params*/null);&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I simply create an XMLHttpRequest object. XMLHttpRequest is the Firefox version of the object. Different browsers require different objects, sadly. You can find out more about how to handle this problem &lt;a href="http://www.w3schools.com/ajax/ajax_browsers.asp"&gt;here&lt;/a&gt;. Next I call the open method to connect to a script that I wrote to get a list of regions given a countryid. This program can be written in any language you want and acts just like any other CGI program. Instead of printing out HTML it prints out &lt;abbr title="Javascript Object Notation"&gt;JSON&lt;/abbr&gt;. Most modern languages have a library for printing JSON or you can simply print it out using your own string building. You can learn more about what JSON looks like at &lt;a href="http://www.json.org/"&gt;json.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;On the third line I set up an anonymous function to handle the network connection. It  is called whenever the state is updated, waits until it's done, and then evaluates the JSON text into internal Javascript data. The function is then ultimately responsible for actually doing something with the data.&lt;br /&gt;&lt;br /&gt;The readyState of the XMLHttpRequest object of course has more possible states than just 'complete'. If you'd like to learn how to deal with other states for make a progress bar or handling errors, then you can read more about &lt;a href="http://www.w3schools.com/xml/xml_http.asp"&gt;the XMLHttpRequest object at w3schools&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The last line uses the send method to set the whole process in motion.&lt;br /&gt;&lt;br /&gt;That's it. That's how AJAX and JSON work. Hopefully this tutorial will act as a decent spring board for anyone who wants to learn AJAX. There's a lot more out there of course and I've only really glazed over it. But if you need to get something up and running quickly this should do just fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-1038844476776164350?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/1038844476776164350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=1038844476776164350' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/1038844476776164350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/1038844476776164350'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2007/12/absolute-crux-of-ajax-short-short.html' title='The absolute crux of AJAX. A short, short tutorial.'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-7083736467116210956</id><published>2007-11-22T20:48:00.000-05:00</published><updated>2007-11-26T17:09:58.064-05:00</updated><title type='text'>I have ended world hunger</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tdi5U8dJ2Sk/R0Yw43w3QhI/AAAAAAAAAUk/AkLmVPpHkww/s1600-h/125_125_banner_a.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_tdi5U8dJ2Sk/R0Yw43w3QhI/AAAAAAAAAUk/AkLmVPpHkww/s200/125_125_banner_a.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5135846178662334994" /&gt;&lt;/a&gt;I'm a computer programmer by trade and more importantly I'm a problem solver by nature. When I am presented with a problem, however minor, I can't help but try to think of ways to solve it.&lt;br /&gt;&lt;br /&gt;Two weeks ago I posted an entry called &lt;a href="http://turingcompletewasteoftime.blogspot.com/2007/11/you-are-paramount-computer-technician.html"&gt;"You are the paramount computer technician without letup!"&lt;/a&gt;, wherein I wrote a program, called PamFRI, to solve a problem that my friend, Pam, was having with her keyboard. I got a lot of comments from people claiming that the program was "useless". The program solved a problem that only one person had and she wouldn't even have the problem the on following day. Furthermore, it didn't even actually solve the problem since it's impossible to &lt;span style="font-style:italic;"&gt;use&lt;/span&gt; the program if you &lt;span style="font-style:italic;"&gt;have&lt;/span&gt; the problem. Alright, to be fair it was me that said all those things but I just can't handle criticism, regardless of how self-inflicted it may be.&lt;br /&gt;&lt;br /&gt;Feeling like my reputation as a computer programmer was on the line I knew I had to rewrite the program. This time I decided to be a little more ambitious and end world hunger.&lt;br /&gt;&lt;br /&gt;&lt;div class="scheme"&gt;&lt;pre&gt;(&lt;span class="keyword"&gt;require&lt;/span&gt;&lt;br /&gt; (&lt;span class="variable"&gt;planet&lt;/span&gt; &lt;span class="selfeval"&gt;"csv.ss"&lt;/span&gt; (&lt;span class="selfeval"&gt;"neil"&lt;/span&gt; &lt;span class="selfeval"&gt;"csv.plt"&lt;/span&gt; &lt;span class="selfeval"&gt;1&lt;/span&gt; &lt;span class="selfeval"&gt;1&lt;/span&gt;))&lt;br /&gt; (&lt;span class="variable"&gt;planet&lt;/span&gt; &lt;span class="selfeval"&gt;"sxml.ss"&lt;/span&gt; (&lt;span class="selfeval"&gt;"lizorkin"&lt;/span&gt; &lt;span class="selfeval"&gt;"sxml.plt"&lt;/span&gt; &lt;span class="selfeval"&gt;1&lt;/span&gt; &lt;span class="selfeval"&gt;4&lt;/span&gt;))&lt;br /&gt; (&lt;span class="variable"&gt;planet&lt;/span&gt; &lt;span class="selfeval"&gt;"htmlprag.ss"&lt;/span&gt; (&lt;span class="selfeval"&gt;"neil"&lt;/span&gt; &lt;span class="selfeval"&gt;"htmlprag.plt"&lt;/span&gt; &lt;span class="selfeval"&gt;1&lt;/span&gt; &lt;span class="selfeval"&gt;3&lt;/span&gt;))&lt;br /&gt; (&lt;span class="variable"&gt;planet&lt;/span&gt; &lt;span class="selfeval"&gt;"aif.ss"&lt;/span&gt; (&lt;span class="selfeval"&gt;"schematics"&lt;/span&gt; &lt;span class="selfeval"&gt;"macro.plt"&lt;/span&gt; &lt;span class="selfeval"&gt;1&lt;/span&gt; &lt;span class="selfeval"&gt;0&lt;/span&gt;))&lt;br /&gt; (&lt;span class="variable"&gt;only&lt;/span&gt; (&lt;span class="variable"&gt;lib&lt;/span&gt; &lt;span class="selfeval"&gt;"1.ss"&lt;/span&gt; &lt;span class="selfeval"&gt;"srfi"&lt;/span&gt;) &lt;span class="variable"&gt;list-index&lt;/span&gt;)&lt;br /&gt; (&lt;span class="variable"&gt;lib&lt;/span&gt; &lt;span class="selfeval"&gt;"uri-codec.ss"&lt;/span&gt; &lt;span class="selfeval"&gt;"net"&lt;/span&gt;)&lt;br /&gt; (&lt;span class="variable"&gt;lib&lt;/span&gt; &lt;span class="selfeval"&gt;"url.ss"&lt;/span&gt; &lt;span class="selfeval"&gt;"net"&lt;/span&gt;)&lt;br /&gt; (&lt;span class="variable"&gt;lib&lt;/span&gt; &lt;span class="selfeval"&gt;"etc.ss"&lt;/span&gt;)&lt;br /&gt; (&lt;span class="variable"&gt;lib&lt;/span&gt; &lt;span class="selfeval"&gt;"list.ss"&lt;/span&gt;)&lt;br /&gt; (&lt;span class="variable"&gt;lib&lt;/span&gt; &lt;span class="selfeval"&gt;"string.ss"&lt;/span&gt;))&lt;br /&gt;&lt;br /&gt;(&lt;span class="keyword"&gt;define&lt;/span&gt; &lt;span class="variable"&gt;thesaurus&lt;/span&gt;&lt;br /&gt;  (&lt;span class="keyword"&gt;let&lt;/span&gt; ([&lt;span class="variable"&gt;table&lt;/span&gt; (&lt;span class="builtin"&gt;make-hash-table&lt;/span&gt; &lt;span class="keyword"&gt;'&lt;/span&gt;&lt;span class="variable"&gt;equal&lt;/span&gt;)]&lt;br /&gt;        [&lt;span class="variable"&gt;get-line&lt;/span&gt;&lt;br /&gt;         (&lt;span class="variable"&gt;make-csv-reader&lt;/span&gt;&lt;br /&gt;          (&lt;span class="builtin"&gt;open-input-file&lt;/span&gt; &lt;span class="selfeval"&gt;"mobythes.aur"&lt;/span&gt;)&lt;br /&gt;          &lt;span class="keyword"&gt;'&lt;/span&gt;((&lt;span class="variable"&gt;separator-chars&lt;/span&gt;            . (&lt;span class="selfeval"&gt;#\,&lt;/span&gt;))&lt;br /&gt;            (&lt;span class="variable"&gt;strip-leading-whitespace?&lt;/span&gt;  . &lt;span class="selfeval"&gt;#t&lt;/span&gt;)&lt;br /&gt;            (&lt;span class="variable"&gt;strip-trailing-whitespace?&lt;/span&gt; . &lt;span class="selfeval"&gt;#t&lt;/span&gt;)))])&lt;br /&gt;    (&lt;span class="keyword"&gt;let&lt;/span&gt; &lt;span class="variable"&gt;loop&lt;/span&gt; ([&lt;span class="variable"&gt;line&lt;/span&gt; (&lt;span class="variable"&gt;get-line&lt;/span&gt;)])&lt;br /&gt;      (&lt;span class="keyword"&gt;unless&lt;/span&gt; (&lt;span class="variable"&gt;empty?&lt;/span&gt; &lt;span class="variable"&gt;line&lt;/span&gt;)&lt;br /&gt;        (&lt;span class="keyword"&gt;let&lt;/span&gt; ([&lt;span class="variable"&gt;word&lt;/span&gt; (&lt;span class="variable"&gt;first&lt;/span&gt; &lt;span class="variable"&gt;line&lt;/span&gt;)])&lt;br /&gt;          (&lt;span class="variable"&gt;string-lowercase!&lt;/span&gt; &lt;span class="variable"&gt;word&lt;/span&gt;)&lt;br /&gt;          (&lt;span class="builtin"&gt;hash-table-put!&lt;/span&gt; &lt;span class="variable"&gt;table&lt;/span&gt; &lt;span class="variable"&gt;word&lt;/span&gt; (&lt;span class="variable"&gt;rest&lt;/span&gt; &lt;span class="variable"&gt;line&lt;/span&gt;))&lt;br /&gt;          (&lt;span class="variable"&gt;loop&lt;/span&gt; (&lt;span class="variable"&gt;get-line&lt;/span&gt;)))))&lt;br /&gt;    &lt;span class="variable"&gt;table&lt;/span&gt;))&lt;br /&gt;&lt;br /&gt;(&lt;span class="keyword"&gt;define&lt;/span&gt; (&lt;span class="variable"&gt;post&lt;/span&gt; &lt;span class="variable"&gt;url&lt;/span&gt; &lt;span class="variable"&gt;data&lt;/span&gt;)&lt;br /&gt;  (&lt;span class="variable"&gt;html-&amp;gt;sxml&lt;/span&gt;&lt;br /&gt;   (&lt;span class="variable"&gt;post-pure-port&lt;/span&gt;&lt;br /&gt;    (&lt;span class="variable"&gt;string-&amp;gt;url&lt;/span&gt; &lt;span class="variable"&gt;url&lt;/span&gt;)&lt;br /&gt;    (&lt;span class="builtin"&gt;string-&amp;gt;bytes/utf-8&lt;/span&gt; (&lt;span class="variable"&gt;alist-&amp;gt;form-urlencoded&lt;/span&gt; &lt;span class="variable"&gt;data&lt;/span&gt;)))))&lt;br /&gt;&lt;br /&gt;(&lt;span class="keyword"&gt;define&lt;/span&gt; (&lt;span class="variable"&gt;check&lt;/span&gt; &lt;span class="variable"&gt;word&lt;/span&gt; &lt;span class="variable"&gt;options&lt;/span&gt;)&lt;br /&gt;  (&lt;span class="variable"&gt;foldl&lt;/span&gt;&lt;br /&gt;   (&lt;span class="keyword"&gt;lambda&lt;/span&gt; (&lt;span class="variable"&gt;synonym&lt;/span&gt; &lt;span class="variable"&gt;ans&lt;/span&gt;)&lt;br /&gt;     (&lt;span class="keyword"&gt;if&lt;/span&gt; (&lt;span class="builtin"&gt;member&lt;/span&gt; &lt;span class="variable"&gt;synonym&lt;/span&gt; &lt;span class="variable"&gt;options&lt;/span&gt;) &lt;span class="variable"&gt;synonym&lt;/span&gt; &lt;span class="variable"&gt;ans&lt;/span&gt;))&lt;br /&gt;   &lt;span class="variable"&gt;false&lt;/span&gt;&lt;br /&gt;   (&lt;span class="builtin"&gt;hash-table-get&lt;/span&gt; &lt;span class="variable"&gt;thesaurus&lt;/span&gt; &lt;span class="variable"&gt;word&lt;/span&gt; (&lt;span class="keyword"&gt;lambda&lt;/span&gt; () &lt;span class="variable"&gt;empty&lt;/span&gt;))))&lt;br /&gt;&lt;br /&gt;(&lt;span class="keyword"&gt;define&lt;/span&gt; ((&lt;span class="variable"&gt;sxpath/f&lt;/span&gt; &lt;span class="variable"&gt;path&lt;/span&gt;) &lt;span class="variable"&gt;sxml&lt;/span&gt;)&lt;br /&gt;  (&lt;span class="variable"&gt;first&lt;/span&gt; ((&lt;span class="variable"&gt;sxpath&lt;/span&gt; &lt;span class="variable"&gt;path&lt;/span&gt;) &lt;span class="variable"&gt;sxml&lt;/span&gt;)))&lt;br /&gt;&lt;br /&gt;(&lt;span class="keyword"&gt;define&lt;/span&gt; (&lt;span class="variable"&gt;answer&lt;/span&gt; &lt;span class="variable"&gt;page&lt;/span&gt;)&lt;br /&gt;  (&lt;span class="keyword"&gt;let*&lt;/span&gt; ([&lt;span class="variable"&gt;words&lt;/span&gt; ((&lt;span class="variable"&gt;sxpath&lt;/span&gt; &lt;span class="selfeval"&gt;"//div/div/ol/li"&lt;/span&gt;) &lt;span class="variable"&gt;page&lt;/span&gt;)]&lt;br /&gt;         [&lt;span class="variable"&gt;word&lt;/span&gt; ((&lt;span class="variable"&gt;sxpath/f&lt;/span&gt; &lt;span class="selfeval"&gt;"strong/text()"&lt;/span&gt;) (&lt;span class="variable"&gt;first&lt;/span&gt; &lt;span class="variable"&gt;words&lt;/span&gt;))]&lt;br /&gt;         [&lt;span class="variable"&gt;choices&lt;/span&gt; (&lt;span class="builtin"&gt;map&lt;/span&gt; (&lt;span class="variable"&gt;sxpath/f&lt;/span&gt; &lt;span class="selfeval"&gt;"a/text()"&lt;/span&gt;) (&lt;span class="variable"&gt;rest&lt;/span&gt; &lt;span class="variable"&gt;words&lt;/span&gt;))]&lt;br /&gt;         [&lt;span class="variable"&gt;answer&lt;/span&gt;&lt;br /&gt;          (&lt;span class="builtin"&gt;number-&amp;gt;string&lt;/span&gt;&lt;br /&gt;           (&lt;span class="builtin"&gt;add1&lt;/span&gt;&lt;br /&gt;            (&lt;span class="variable"&gt;aif&lt;/span&gt; &lt;span class="variable"&gt;ans&lt;/span&gt; &lt;span class="variable"&gt;identity&lt;/span&gt; (&lt;span class="variable"&gt;check&lt;/span&gt; &lt;span class="variable"&gt;word&lt;/span&gt; &lt;span class="variable"&gt;choices&lt;/span&gt;)&lt;br /&gt;                 (&lt;span class="variable"&gt;list-index&lt;/span&gt; (&lt;span class="keyword"&gt;lambda&lt;/span&gt; (&lt;span class="variable"&gt;e&lt;/span&gt;) (&lt;span class="builtin"&gt;string=?&lt;/span&gt; &lt;span class="variable"&gt;e&lt;/span&gt; &lt;span class="variable"&gt;ans&lt;/span&gt;))&lt;br /&gt;                             &lt;span class="variable"&gt;choices&lt;/span&gt;)&lt;br /&gt;                 (&lt;span class="builtin"&gt;random&lt;/span&gt; &lt;span class="selfeval"&gt;4&lt;/span&gt;))))])&lt;br /&gt;    (&lt;span class="builtin"&gt;cons&lt;/span&gt;&lt;br /&gt;     (&lt;span class="builtin"&gt;cons&lt;/span&gt; &lt;span class="keyword"&gt;'&lt;/span&gt;&lt;span class="variable"&gt;SELECTED&lt;/span&gt; &lt;span class="variable"&gt;answer&lt;/span&gt;)&lt;br /&gt;     (&lt;span class="builtin"&gt;map&lt;/span&gt; (&lt;span class="keyword"&gt;lambda&lt;/span&gt; (&lt;span class="variable"&gt;tag&lt;/span&gt;)&lt;br /&gt;            (&lt;span class="builtin"&gt;cons&lt;/span&gt; (&lt;span class="builtin"&gt;string-&amp;gt;symbol&lt;/span&gt;&lt;br /&gt;                   ((&lt;span class="variable"&gt;sxpath/f&lt;/span&gt; &lt;span class="selfeval"&gt;"@name/text()"&lt;/span&gt;) &lt;span class="variable"&gt;tag&lt;/span&gt;))&lt;br /&gt;                  ((&lt;span class="variable"&gt;sxpath/f&lt;/span&gt; &lt;span class="selfeval"&gt;"@value/text()"&lt;/span&gt;) &lt;span class="variable"&gt;tag&lt;/span&gt;)))&lt;br /&gt;          ((&lt;span class="variable"&gt;sxpath&lt;/span&gt;&lt;br /&gt;            &lt;span class="selfeval"&gt;"//input[@type='hidden' and @name!='SELECTED']"&lt;/span&gt;)&lt;br /&gt;           &lt;span class="variable"&gt;page&lt;/span&gt;)))))&lt;br /&gt;&lt;br /&gt;(&lt;span class="keyword"&gt;let&lt;/span&gt; &lt;span class="variable"&gt;loop&lt;/span&gt; ([&lt;span class="variable"&gt;data&lt;/span&gt; &lt;span class="variable"&gt;empty&lt;/span&gt;])&lt;br /&gt;  (&lt;span class="keyword"&gt;let&lt;/span&gt; ([&lt;span class="variable"&gt;p&lt;/span&gt; (&lt;span class="variable"&gt;post&lt;/span&gt; &lt;span class="selfeval"&gt;"http://freerice.com/index.php"&lt;/span&gt; &lt;span class="variable"&gt;data&lt;/span&gt;)])&lt;br /&gt;    (&lt;span class="builtin"&gt;write&lt;/span&gt; ((&lt;span class="variable"&gt;sxpath&lt;/span&gt; &lt;span class="selfeval"&gt;"//p[@class='vocabLevel']/text()"&lt;/span&gt;) &lt;span class="variable"&gt;p&lt;/span&gt;))&lt;br /&gt;    (&lt;span class="builtin"&gt;newline&lt;/span&gt;)&lt;br /&gt;    (&lt;span class="builtin"&gt;sleep&lt;/span&gt; &lt;span class="selfeval"&gt;10&lt;/span&gt;)&lt;br /&gt;    (&lt;span class="variable"&gt;loop&lt;/span&gt; (&lt;span class="variable"&gt;answer&lt;/span&gt; &lt;span class="variable"&gt;p&lt;/span&gt;))))&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Inspiration for this program came last week, right after I wrote PamFRI. One of my coworkers, Fred Henle, sent out a nice, little time waster know as &lt;a href="http://freerice.com/"&gt;Free Rice&lt;/a&gt; to the developers' mailing list. Free Rice is a non-profit web site where users are given a vocabulary quiz. For every answer the user gets right, the organization donates ten grains of rice to third-world countries through the &lt;abbr title="United Nations"&gt;UN&lt;/abbr&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_tdi5U8dJ2Sk/R0YtTXw3QgI/AAAAAAAAAUc/rWM1zYeeAW4/s1600-h/grains+falling+on+a+pile+of+uncooked+white+rice_1.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer;" src="http://bp0.blogger.com/_tdi5U8dJ2Sk/R0YtTXw3QgI/AAAAAAAAAUc/rWM1zYeeAW4/s200/grains+falling+on+a+pile+of+uncooked+white+rice_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5135842235882357250" border="0" /&gt;&lt;/a&gt;Moments after Fred's email, Ben Mathes responded with his solution to end world hunger: a link to &lt;a href="http://dictionary.reference.com/"&gt;dictionary.com&lt;/a&gt;. As soon as I got Ben's mail it was pretty obvious to me what I had to do.  "I can automate that!" I thought to myself. I had just written PamFRI, which uses a machine-readable thesaurus and &lt;a href="http://plt-scheme.org/"&gt;PLT Scheme&lt;/a&gt; has a really nice web-scraping module on &lt;a href="http://planet.plt-scheme.org/"&gt;Planet&lt;/a&gt;. With only a few more lines of code I could modify my original program to grab the web page, read and answer the question, and then post it back. Calling such a program in a loop ought donate &lt;span style="font-style: italic;"&gt;a lot&lt;/span&gt; of rice and would, at least in theory, end world hunger.&lt;br /&gt;&lt;br /&gt;It's probably not advisable for me to encourage my readers to run this program since it generates a page hit to Free Rice once every ten seconds. If everyone one of my readers ran this program at the same time it could generate up to five page hits to Free Rice every ten seconds. On second thought, maybe that's not so bad. My friend, Trevor, points out that the real danger is when the &lt;a href="http://laptop.org/"&gt;&lt;abbr title="One Laptop Per Child"&gt;OLPC&lt;/abbr&gt;&lt;/a&gt; project really takes off. We'll have ourselves a veritable &lt;abbr title="Distributed Denial of Service"&gt;DDoS&lt;/abbr&gt; attack if this program were to get into the hands of the kids who actually benefit from the rice donations.&lt;br /&gt;&lt;br /&gt;On a serious note, the real reason I wrote this entry is to let people know about Free Rice and encourage them to play for real. I also wanted to show how darn cool the webscrape functionality is in PLT Scheme in case anyone has any need for it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-7083736467116210956?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/7083736467116210956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=7083736467116210956' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/7083736467116210956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/7083736467116210956'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2007/11/i-have-ended-world-hunger.html' title='I have ended world hunger'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_tdi5U8dJ2Sk/R0Yw43w3QhI/AAAAAAAAAUk/AkLmVPpHkww/s72-c/125_125_banner_a.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-245958948608581722</id><published>2007-11-19T15:17:00.000-05:00</published><updated>2007-11-26T12:00:00.876-05:00</updated><title type='text'>Six Degrees of Wikipedia is On Line</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_tdi5U8dJ2Sk/R0H0k3w3QfI/AAAAAAAAAUU/9fGuiDY8Peg/s1600-h/Nohat-logo-nowords-bgwhite-200px.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_tdi5U8dJ2Sk/R0H0k3w3QfI/AAAAAAAAAUU/9fGuiDY8Peg/s200/Nohat-logo-nowords-bgwhite-200px.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5134653964460442098" /&gt;&lt;/a&gt;Last month I posted an entry called &lt;a href="http://turingcompletewasteoftime.blogspot.com/2007/10/six-degrees-of-wikipedia.html"&gt;Six Degrees of Wikipedia&lt;/a&gt;, where in I started playing a game in which people try to find the shortest path between two given &lt;a href="http://www.wikipedia.org/"&gt;Wikipedia&lt;/a&gt; pages. My friend &lt;a href="http://lackita.blogspot.com/"&gt;Colin&lt;/a&gt; made a &lt;a href="http://lackita.blogspot.com/2007/11/six-degrees-of-wikipedia-game-generator.html"&gt;random node generation script&lt;/a&gt; and yesterday we created &lt;a href="http://sixdegreesofwikipedia.blogspot.com/"&gt;a new web site&lt;/a&gt; where we will administer the game. Periodically a new challenge to connect two Wikipedia pages (by Wikipedia-internal links) will be issued. The first one is already up, so get cracking. The winners will be announced when the next challenge is release. Enjoy! Oh and hey, no editing the pages so that your path works.&lt;br /&gt;&lt;br /&gt;Extra credit for people who write solvers or know how to use Google to find such things. :) I mean the Kevin Bacon game is still fun despite the existence of solvers, right?&lt;br /&gt;&lt;br /&gt;Go to: &lt;a href="http://sixdegreesofwikipedia.blogspot.com/"&gt;http://sixdegreesofwikipedia.blogspot.com/&lt;/a&gt; to play.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-245958948608581722?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/245958948608581722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=245958948608581722' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/245958948608581722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/245958948608581722'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2007/11/six-degrees-of-wikipedia-is-on-line.html' title='Six Degrees of Wikipedia is On Line'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_tdi5U8dJ2Sk/R0H0k3w3QfI/AAAAAAAAAUU/9fGuiDY8Peg/s72-c/Nohat-logo-nowords-bgwhite-200px.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-3268403705224355567</id><published>2007-11-09T16:50:00.000-05:00</published><updated>2007-11-12T00:34:36.831-05:00</updated><title type='text'>"You are the paramount computer technician without letup!"</title><content type='html'>Have you ever you spilled water on your keyboard? Have you ever shorted out the F, R, and I keys on your iBook all at once? Have you ever had to chat under such circumstances because you couldn't get an appointment at the Apple Store until tomorrow? Is your name Pamela Worth? Are you chatting with me right now on instant messenger? Maybe it's time you tried the latest in useless technology. That's right, maybe PamFRI is perfect for you!&lt;br /&gt;&lt;br /&gt;Earlier today I was talking to my friend, Pam, on line and she seemed to be speaking rather funny.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;me: How are you?&lt;br /&gt;Pamela: well, apart from not hav1ng some very important letters not working...&lt;br /&gt;me: You're 'i' key is broken?&lt;br /&gt;Pamela: 3 keys&lt;br /&gt;f, r, i&lt;br /&gt;Pam has app't 2moro to see Mac "gen1uses"&lt;br /&gt;me: How did it break? Mysteriously?&lt;br /&gt;Pamela: not so Mysteriously.&lt;br /&gt;1 sp1lled a small amount of H20&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Intermittently a few of her keys would not work so she was resorting to l33t speak, cutting and pasting my own words back to me, using chemical formula abbreviations, or simply referring to herself in the third person. So I did what any good, overly nerdy friend would do in that situation.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;grep -vi "[fri]" /usr/dict/words | mutt -s "Here's a list of words that don't use F, R, or I" [Pam's email address]&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;But as you can probably imagine, a list of all of the words in the English language that don't use the letters F, R, or I isn't all that useful. For starters one would have to search the entire list of words and the definitions aren't even there.&lt;br /&gt;&lt;br /&gt;I simply had to do more to help the poor girl, so I helped how any good, super geeky friend would help. I made a small program that uses a machine readable thesaurus from the &lt;a href="http://www.dcs.shef.ac.uk/research/ilash/Moby/"&gt;Moby project&lt;/a&gt; to accept a sentence that you want to type, as well as a list of keys that are broken. The program searches the sentence for any uses of the broken keys and swaps them out for suitable synonyms that don't also use the broken keys. In the event there are no suitable synonmys, the word gets printed out with square brackets. I call it PamFRI.&lt;br /&gt;&lt;br /&gt;If you're wondering what the above paragraph looks like without the letter's F, R, or I:&lt;br /&gt;&lt;br /&gt;Ego absolutely had to do on and on to help the debased dame, so psyche helped how any good, hot geeky bosom buddy would help. Monad made a small agenda that uses a jalopy plumbable cache ex the &lt;a href="http://www.dcs.shef.ac.uk/research/ilash/Moby/"&gt;Moby lay plans&lt;/a&gt; to accept a sentence that you want to type, as well as a levy about jolty keys. The keynote speech looks down the sentence so as to any uses about the wobbly keys and swaps them out because plenty good enough synonyms that don't also use the quelled keys. Gangplank the event no seasonable synonmys can be etch, the vow gets typeset out amongst yes-man [brackets]. One and only call the goods [PamFRI].&lt;br /&gt;&lt;br /&gt;&lt;div class="scheme"&gt;&lt;pre&gt;(&lt;span class="keyword"&gt;require&lt;/span&gt;&lt;br /&gt; (&lt;span class="variable"&gt;planet&lt;/span&gt; &lt;span class="selfeval"&gt;"csv.ss"&lt;/span&gt; (&lt;span class="selfeval"&gt;"neil"&lt;/span&gt; &lt;span class="selfeval"&gt;"csv.plt"&lt;/span&gt; &lt;span class="selfeval"&gt;1&lt;/span&gt; &lt;span class="selfeval"&gt;1&lt;/span&gt;))&lt;br /&gt; (&lt;span class="variable"&gt;lib&lt;/span&gt; &lt;span class="selfeval"&gt;"list.ss"&lt;/span&gt;)&lt;br /&gt; (&lt;span class="variable"&gt;lib&lt;/span&gt; &lt;span class="selfeval"&gt;"string.ss"&lt;/span&gt;))&lt;br /&gt;&lt;br /&gt;(&lt;span class="keyword"&gt;define&lt;/span&gt; &lt;span class="variable"&gt;thesaurus&lt;/span&gt;&lt;br /&gt;  (&lt;span class="keyword"&gt;let&lt;/span&gt; ([&lt;span class="variable"&gt;table&lt;/span&gt; (&lt;span class="builtin"&gt;make-hash-table&lt;/span&gt; &lt;span class="keyword"&gt;'&lt;/span&gt;&lt;span class="variable"&gt;equal&lt;/span&gt;)]&lt;br /&gt;        [&lt;span class="variable"&gt;get-line&lt;/span&gt;&lt;br /&gt;         (&lt;span class="variable"&gt;make-csv-reader&lt;/span&gt;&lt;br /&gt;          (&lt;span class="builtin"&gt;open-input-file&lt;/span&gt; &lt;span class="selfeval"&gt;"mobythes.aur"&lt;/span&gt;)&lt;br /&gt;          &lt;span class="keyword"&gt;'&lt;/span&gt;((&lt;span class="variable"&gt;separator-chars&lt;/span&gt;            . (&lt;span class="selfeval"&gt;#\,&lt;/span&gt;))&lt;br /&gt;            (&lt;span class="variable"&gt;strip-leading-whitespace?&lt;/span&gt;  . &lt;span class="selfeval"&gt;#t&lt;/span&gt;)&lt;br /&gt;            (&lt;span class="variable"&gt;strip-trailing-whitespace?&lt;/span&gt; . &lt;span class="selfeval"&gt;#t&lt;/span&gt;)))])&lt;br /&gt;    (&lt;span class="keyword"&gt;let&lt;/span&gt; &lt;span class="variable"&gt;loop&lt;/span&gt; ([&lt;span class="variable"&gt;line&lt;/span&gt; (&lt;span class="variable"&gt;get-line&lt;/span&gt;)])&lt;br /&gt;      (&lt;span class="keyword"&gt;unless&lt;/span&gt; (&lt;span class="variable"&gt;empty?&lt;/span&gt; &lt;span class="variable"&gt;line&lt;/span&gt;)&lt;br /&gt;        (&lt;span class="keyword"&gt;let&lt;/span&gt; ([&lt;span class="variable"&gt;word&lt;/span&gt; (&lt;span class="variable"&gt;first&lt;/span&gt; &lt;span class="variable"&gt;line&lt;/span&gt;)])&lt;br /&gt;          (&lt;span class="variable"&gt;string-lowercase!&lt;/span&gt; &lt;span class="variable"&gt;word&lt;/span&gt;)&lt;br /&gt;          (&lt;span class="builtin"&gt;hash-table-put!&lt;/span&gt; &lt;span class="variable"&gt;table&lt;/span&gt; &lt;span class="variable"&gt;word&lt;/span&gt; (&lt;span class="variable"&gt;rest&lt;/span&gt; &lt;span class="variable"&gt;line&lt;/span&gt;))&lt;br /&gt;          (&lt;span class="variable"&gt;loop&lt;/span&gt; (&lt;span class="variable"&gt;get-line&lt;/span&gt;)))))&lt;br /&gt;    &lt;span class="variable"&gt;table&lt;/span&gt;))&lt;br /&gt;&lt;br /&gt;(&lt;span class="keyword"&gt;define&lt;/span&gt; (&lt;span class="variable"&gt;suggest&lt;/span&gt; &lt;span class="variable"&gt;badchars&lt;/span&gt; &lt;span class="variable"&gt;sentence&lt;/span&gt;)&lt;br /&gt;  (&lt;span class="builtin"&gt;regexp-replace*&lt;/span&gt;&lt;br /&gt;   &lt;span class="selfeval"&gt;"[a-zA-Z'\\-]+"&lt;/span&gt;&lt;br /&gt;   &lt;span class="variable"&gt;sentence&lt;/span&gt;&lt;br /&gt;   (&lt;span class="keyword"&gt;lambda&lt;/span&gt; (&lt;span class="variable"&gt;aword&lt;/span&gt;)&lt;br /&gt;     (&lt;span class="variable"&gt;string-lowercase!&lt;/span&gt; &lt;span class="variable"&gt;aword&lt;/span&gt;)&lt;br /&gt;     (&lt;span class="keyword"&gt;if&lt;/span&gt; ((&lt;span class="variable"&gt;typeable?&lt;/span&gt; &lt;span class="variable"&gt;badchars&lt;/span&gt;) &lt;span class="variable"&gt;aword&lt;/span&gt;)&lt;br /&gt;         &lt;span class="variable"&gt;aword&lt;/span&gt;&lt;br /&gt;         (&lt;span class="variable"&gt;replacement&lt;/span&gt; &lt;span class="variable"&gt;badchars&lt;/span&gt; &lt;span class="variable"&gt;aword&lt;/span&gt;)))))&lt;br /&gt;&lt;br /&gt;(&lt;span class="keyword"&gt;define&lt;/span&gt; ((&lt;span class="variable"&gt;typeable?&lt;/span&gt; &lt;span class="variable"&gt;badchars&lt;/span&gt;) &lt;span class="variable"&gt;aword&lt;/span&gt;)&lt;br /&gt;  (&lt;span class="builtin"&gt;not&lt;/span&gt; (&lt;span class="builtin"&gt;regexp-match&lt;/span&gt;&lt;br /&gt;        (&lt;span class="builtin"&gt;regexp&lt;/span&gt;&lt;br /&gt;         (&lt;span class="builtin"&gt;string-append&lt;/span&gt;&lt;br /&gt;          &lt;span class="selfeval"&gt;"(?i:["&lt;/span&gt; (&lt;span class="builtin"&gt;list-&amp;gt;string&lt;/span&gt; &lt;span class="variable"&gt;badchars&lt;/span&gt;) &lt;span class="selfeval"&gt;"])"&lt;/span&gt;))&lt;br /&gt;        &lt;span class="variable"&gt;aword&lt;/span&gt;)))&lt;br /&gt;&lt;br /&gt;(&lt;span class="keyword"&gt;define&lt;/span&gt; (&lt;span class="variable"&gt;replacement&lt;/span&gt; &lt;span class="variable"&gt;badchars&lt;/span&gt; &lt;span class="variable"&gt;aword&lt;/span&gt;)&lt;br /&gt;  (&lt;span class="keyword"&gt;let*&lt;/span&gt; ([&lt;span class="variable"&gt;synonyms&lt;/span&gt;&lt;br /&gt;          (&lt;span class="builtin"&gt;hash-table-get&lt;/span&gt;&lt;br /&gt;           &lt;span class="variable"&gt;thesaurus&lt;/span&gt; &lt;span class="variable"&gt;aword&lt;/span&gt; (&lt;span class="keyword"&gt;lambda&lt;/span&gt; () &lt;span class="variable"&gt;empty&lt;/span&gt;))]&lt;br /&gt;         [&lt;span class="variable"&gt;replacements&lt;/span&gt;&lt;br /&gt;          (&lt;span class="variable"&gt;filter&lt;/span&gt; (&lt;span class="variable"&gt;typeable?&lt;/span&gt; &lt;span class="variable"&gt;badchars&lt;/span&gt;) &lt;span class="variable"&gt;synonyms&lt;/span&gt;)])&lt;br /&gt;    (&lt;span class="keyword"&gt;if&lt;/span&gt; (&lt;span class="variable"&gt;empty?&lt;/span&gt; &lt;span class="variable"&gt;replacements&lt;/span&gt;)&lt;br /&gt;        (&lt;span class="builtin"&gt;string-append&lt;/span&gt; &lt;span class="selfeval"&gt;"["&lt;/span&gt; &lt;span class="variable"&gt;aword&lt;/span&gt; &lt;span class="selfeval"&gt;"]"&lt;/span&gt;)&lt;br /&gt;        (&lt;span class="builtin"&gt;list-ref&lt;/span&gt; &lt;span class="variable"&gt;replacements&lt;/span&gt;&lt;br /&gt;                  (&lt;span class="builtin"&gt;random&lt;/span&gt; (&lt;span class="builtin"&gt;length&lt;/span&gt; &lt;span class="variable"&gt;replacements&lt;/span&gt;))))))&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;You call the program like this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&gt; (suggest '(#\h) "hello my name is")&lt;br /&gt;"salutation my name is"&lt;br /&gt;&gt; (suggest '(#\h #\n) "hello my name is")&lt;br /&gt;"kiss my itemize is"&lt;br /&gt;&gt; (suggest '(#\i) "I like the program very much")&lt;br /&gt;"superego respect the program very much"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So if you're a clumsy, water drinking, Apple computing, debased dame, fear not. Help is on the way. You can download the program &lt;a href="http://www.ccs.neu.edu/home/dskippy/pamfri.zip"&gt;here&lt;/a&gt; in a zip format complete with the thesaurus. The program requires &lt;a href="http://download.plt-scheme.org/drscheme/"&gt;Dr. Scheme&lt;/a&gt; to be opened which is availible for Linux, Mac, and Windows.&lt;br /&gt;&lt;br /&gt;By the way, I fully intend to continue calling them 'yes-man brackets'.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-3268403705224355567?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/3268403705224355567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=3268403705224355567' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/3268403705224355567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/3268403705224355567'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2007/11/you-are-paramount-computer-technician.html' title='&quot;You are the paramount computer technician without letup!&quot;'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-4485480210722558642</id><published>2007-11-08T12:43:00.000-05:00</published><updated>2008-01-09T17:38:00.228-05:00</updated><title type='text'>I'm a grown-up now</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_tdi5U8dJ2Sk/RzIED0ZIP1I/AAAAAAAAAUM/tNsuaB9a-N8/s1600-h/grownups.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: right; cursor: pointer;" src="http://bp3.blogger.com/_tdi5U8dJ2Sk/RzIED0ZIP1I/AAAAAAAAAUM/tNsuaB9a-N8/s200/grownups.png" alt="" id="BLOGGER_PHOTO_ID_5130167389178576722" border="0" /&gt;&lt;/a&gt;A little more than a year ago &lt;a href="http://blag.xkcd.com/"&gt;Randall Munroe&lt;/a&gt;, author of &lt;a href="http://xkcd.com/"&gt;XKCD&lt;/a&gt;, posted a comic, called &lt;a href="http://xkcd.com/150/"&gt;Grownups&lt;/a&gt;, about a girl filling her apartment with playpen balls. The girl in the comic offers no explanation as to why she's done this, other than the fact that she's a grow-up now and it's her turn to decide what being a grown-up means. The whimsical web comic has often portrayed a state of mind that hits very close to home for me and this strip wasn't an exception.&lt;br /&gt;&lt;br /&gt;I'm impulsive so I started looking on line for playpen balls the following weekend and quickly learned the same thing Randall did. Filling one's apartment with playpen balls, for any reasonably sized apartment, or even a tiny dorm room, would cost well over a few thousand dollars. Determined to have a ball pit, I decided I would cordon off the bottom of my lofted bed and make a ball-pit underneath. The lofted bed is a nice big queen-sized bed so the pit would be about 5'x7' with about 5' head clearance.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_tdi5U8dJ2Sk/Ry_zJEZIPzI/AAAAAAAAAT8/JSAD_nRQR8Y/s1600-h/Screenshot1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_tdi5U8dJ2Sk/Ry_zJEZIPzI/AAAAAAAAAT8/JSAD_nRQR8Y/s200/Screenshot1.png" alt="" id="BLOGGER_PHOTO_ID_5129585837721796402" border="0" /&gt;&lt;/a&gt;Using an &lt;a href="http://www.chiliahedron.com/ballroom/"&gt;on-line playpen ball volume calculator&lt;/a&gt; (inspired by the XKCD comic itself) I found that making a 5'x7' ball pit 2' deep was a pretty tractable goal. With a little help from my friend Sue I was able to find two ebay auctions for 700 and 800 balls from the same seller. The orders totaled about $160 counting shipping, which by the way made up more than 40% of the cost.&lt;br /&gt;&lt;br /&gt;I placed a bid and week or so later I received the largest delivery I'd ever received as well as an endearingly spastic but uninformative voice from my roommate attempting to describe exactly what had happened to our front porch while I was gone. "Hey! Mike! Oh my god there's, like... the porch is totally gone. They're huge. These all have your name... I can't... do want me to... Holy crap." Remembering my order from a week ago I figured that was probably what she was talking about so I went home to bring them in.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tdi5U8dJ2Sk/Ry_zAUZIPyI/AAAAAAAAAT0/nSFR0glYVqw/s1600-h/Screenshot0.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_tdi5U8dJ2Sk/Ry_zAUZIPyI/AAAAAAAAAT0/nSFR0glYVqw/s200/Screenshot0.png" alt="" id="BLOGGER_PHOTO_ID_5129585687397941026" border="0" /&gt;&lt;/a&gt;On the Saturday after the delivery arrived, Sue and I went to Home Depot, the toy store for grown-ups who think the word grown-up has been ill defined. After some careful consideration we decided to pick up a reel of plastic garden fencing, zip ties, and you guessed it, some PVC pipe.&lt;br /&gt;&lt;br /&gt;The lofted bed was already up against two walls so I just needed to gate off the other two. One wall, the short one, I decided to completely cover with the garden fence. The long wall I made the entry way, so it has a short wall made of a PVC frame and garden fence which is easy to step over.&lt;br /&gt;&lt;br /&gt;That Saturday night Sarah came over and Sue, Sarah, and I sat in the ball pit for nearly five hours talking and laughing uncontrollably while throwing balls at each others faces. It really is quite amazing how long throwing balls at your friends' faces can last without getting boring. When it did we just lounged around and chatted until someone decided it was again time to throw balls at each other's faces. As the night winded down Sarah took great joy in completely burying herself and Sue made sure that both of us had heard every possibly innuendo involving the word balls.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_tdi5U8dJ2Sk/RzICwEZIP0I/AAAAAAAAAUE/LxEkguHTHBE/s1600-h/HOTside.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_tdi5U8dJ2Sk/RzICwEZIP0I/AAAAAAAAAUE/LxEkguHTHBE/s200/HOTside.jpg" alt="" id="BLOGGER_PHOTO_ID_5130165950364532546" border="0" /&gt;&lt;/a&gt;Later in the week my improv troupe came over to practice and we ended the night with a really loud and rowdy ball pit fight where in most people just threw balls at Tony while Tony scrambled to bury his face and anything else fragile under a thick enough covering of playpen balls. My more obsessive compulsive friends came over the following weekend and we shorted the ball pit in spectrum order. To be fair this project also started with throwing balls at each others faces when I decided that Mike could only throw blue balls and Trevor could only throw red. This created a really nice visual effect so we ran with it and Lisa took some pictures.&lt;br /&gt;&lt;br /&gt;I guess what I've learned from all this is simply that if you are going to go through the trouble of making a ball pit in your apartment just realize that all your friends are going to want to do is throw plastic balls at your face. Recently I moved and decided to make a video of the reconstruction of the ball pit.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-776efc8dc6f19b60" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v2.nonxt1.googlevideo.com/videoplayback?id%3D776efc8dc6f19b60%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329852642%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D1EAE28918606B6F6101645C98F770C7CE3C11E46.4E4AF61099225A0C871D000027960A80163BEE4C%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D776efc8dc6f19b60%26offsetms%3D5000%26itag%3Dw160%26sigh%3DFVFjReWQRGuAVFKIBTWFUM6jSA4&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v2.nonxt1.googlevideo.com/videoplayback?id%3D776efc8dc6f19b60%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329852642%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D1EAE28918606B6F6101645C98F770C7CE3C11E46.4E4AF61099225A0C871D000027960A80163BEE4C%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D776efc8dc6f19b60%26offsetms%3D5000%26itag%3Dw160%26sigh%3DFVFjReWQRGuAVFKIBTWFUM6jSA4&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-4485480210722558642?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=776efc8dc6f19b60&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/4485480210722558642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=4485480210722558642' title='57 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/4485480210722558642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/4485480210722558642'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2007/11/im-grown-up-now.html' title='I&apos;m a grown-up now'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_tdi5U8dJ2Sk/RzIED0ZIP1I/AAAAAAAAAUM/tNsuaB9a-N8/s72-c/grownups.png' height='72' width='72'/><thr:total>57</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-8637995363398314595</id><published>2007-10-10T10:17:00.000-04:00</published><updated>2007-10-10T10:58:45.799-04:00</updated><title type='text'>Six Degrees of Wikipedia</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_tdi5U8dJ2Sk/RwzonNdFpPI/AAAAAAAAANE/HlSH1fKUWFk/s1600-h/minicommdoor.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_tdi5U8dJ2Sk/RwzonNdFpPI/AAAAAAAAANE/HlSH1fKUWFk/s200/minicommdoor.jpg" alt="" id="BLOGGER_PHOTO_ID_5119722636737619186" border="0" /&gt;&lt;/a&gt;Last night, Sarah and I were watching an episode of Northern Exposure when I noticed that the door to the local radio station displayed "KBHR 57 AM". From what I knew of AM radio, the range used by commercial stations in the US was in the upper hundreds to thousands, nothing near 57. So I looked up &lt;a href="http://en.wikipedia.org/wiki/Amplitude_modulation"&gt;Amplitude Modulation&lt;/a&gt;, AM, on &lt;a href="http://www.wikipedia.com/"&gt;Wikipedia&lt;/a&gt; and soon found I had to click on &lt;a href="http://en.wikipedia.org/wiki/AM_radio"&gt;AM Radio&lt;/a&gt; to get the answer that I wanted.&lt;br /&gt;&lt;br /&gt;I started thinking about all the long link chains I've followed in the pursuit of useless knowledge and about that &lt;a href="http://xkcd.com/214/"&gt;XKCD comic about wikipedia surfing&lt;/a&gt;. So naturally my next inclination was "I wonder how many clicks it will take me to get to &lt;a href="http://en.wikipedia.org/wiki/Kevin_Bacon"&gt;Kevin Bacon's wikipedia page&lt;/a&gt;. Honestly, I thought it would take longer than it did. Little did I know there was a link to the movie Titanic on the page for the United States. I never would have guessed. This is what we did:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/url?sa=t&amp;amp;ct=res&amp;amp;cd=2&amp;amp;url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FAmplitude_modulation&amp;amp;ei=ZOMMR6ONFY7-gwK45MiXAg&amp;amp;usg=AFQjCNHmmrVZpZs6ekbpA8XpSpplCOlOzQ&amp;amp;sig2=UapvnmpD89pHwEaHq_nUSw"&gt;Amplitude Modulation&lt;/a&gt; to &lt;a href="http://en.wikipedia.org/wiki/AM_radio"&gt;AM broadcasting&lt;/a&gt; to &lt;a href="http://en.wikipedia.org/wiki/United_States"&gt;United States&lt;/a&gt; to &lt;a href="http://en.wikipedia.org/wiki/Titanic_%281997_film%29"&gt;Titanic&lt;/a&gt; to &lt;a href="http://en.wikipedia.org/wiki/Leonardo_DiCaprio"&gt;Leonardo DiCaprio&lt;/a&gt; to &lt;a href="http://en.wikipedia.org/wiki/Catch_Me_If_You_Can"&gt;Catch Me If You Can&lt;/a&gt; to &lt;a href="http://en.wikipedia.org/wiki/Tom_Hanks"&gt;Tom Hanks&lt;/a&gt; to &lt;a href="http://en.wikipedia.org/wiki/Apollo_13_%28film%29"&gt;Apollo 13&lt;/a&gt; to &lt;a href="http://en.wikipedia.org/wiki/Kevin_Bacon"&gt;Kevin Bacon&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;Can anyone do it in fewer moves? I bet there's a shorter route if you don't take the easy way out and go straight for the nearest link to a Hollywood movie. I think this game has some potential as a non-movie-centric version of it's namesake. Okay what you lazy readers need now is a challenge. Hang on.&lt;br /&gt;&lt;br /&gt;Me: "Trevor, Brian, think of a topic that you could look up on Wikipeida, but don't say it."&lt;br /&gt;Trevor: "Got one."&lt;br /&gt;Brain: "Alright."&lt;br /&gt;Me: "Okay, what are they?"&lt;br /&gt;Brain: "&lt;a href="http://en.wikipedia.org/wiki/King_arthur"&gt;King Arthur&lt;/a&gt;"&lt;br /&gt;Trevor: "&lt;a href="http://en.wikipedia.org/wiki/Sickle_cell_anemia"&gt;Sickle Cell Anemia&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;King Arthur will be the starting point since this game isn't commutative like the Bacon game. Post your best answers to the comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-8637995363398314595?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/8637995363398314595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=8637995363398314595' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/8637995363398314595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/8637995363398314595'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2007/10/six-degrees-of-wikipedia.html' title='Six Degrees of Wikipedia'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_tdi5U8dJ2Sk/RwzonNdFpPI/AAAAAAAAANE/HlSH1fKUWFk/s72-c/minicommdoor.jpg' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-3273304386353543053</id><published>2007-09-26T01:03:00.001-04:00</published><updated>2009-02-18T14:34:58.177-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bikes'/><title type='text'>How I Accidentally Joined a Bike Gang</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://scul.org/pm/images_root/90/a5/90a520847a31e0a62e429a30e468e6f1.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px;" src="http://scul.org/pm/images_root/90/a5/90a520847a31e0a62e429a30e468e6f1.jpg" alt="" border="0" /&gt;&lt;/a&gt;Late last Saturday night &lt;a href="http://turingcompletewasteoftime.blogspot.com/2007/09/how-to-make-friends.html"&gt;Pascal&lt;/a&gt; and I were riding through Davis Square, heading to a party, when a fleet of intergalactic transport ships flanked us at a traffic light.&lt;br /&gt;"Hey, nice bike!" said a &lt;a href="http://scul.org/pm/index.php?action=view_pilot&amp;amp;entity_id=812"&gt;Skunk&lt;/a&gt;, four feet above me.&lt;br /&gt;"Thanks. You too!" I said as I looked up to admire his &lt;a href="http://scul.org/pm/index.php?action=view_ship&amp;amp;entity_id=1370"&gt;Cloudbuster&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;"Now &lt;em&gt;these&lt;/em&gt; are my people." I thought to myself as the light turned green and we all rode down Elm Street. We got to talking about bicycles, art, how to make PVC hinges, and the finer points of welding a disco ball to ones handlebars. They had plenty of questions for me and I for them.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://scul.org/pm/images_root/d7/5a/d75aace55d12bacbbd4a8b2c24e8bb17.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://scul.org/pm/images_root/d7/5a/d75aace55d12bacbbd4a8b2c24e8bb17.jpg" alt="" border="0" /&gt;&lt;/a&gt;I dropped back a little and met up with the fleet's tailgunner, &lt;a href="http://scul.org/pm/index.php?action=view_pilot&amp;amp;entity_id=515"&gt;Dozer&lt;/a&gt;, who explained to me a little bit about how the organization works. A lot of people know about or at least have seen &lt;a href="http://scul.org/"&gt;&lt;abbr title="Subversive Choppers Urban Legion"&gt;SCUL&lt;/abbr&gt;&lt;/a&gt; around Somerville and Cambridge. They're a non-profit, artistic, bicycling, nerd gang based in Somerville, MA. They have missions once a week on Saturday nights which launch from a secret base and head off into the galaxy, blasting dance music from the fleets flag ship.&lt;br /&gt;&lt;br /&gt;"The way it works is that you get invited to join by a member who's willing to sponsor you." Dozer explained while Pascal took notes. "You become their maggot for your first ride and your sponsor shows you the ropes dur... hang on." She banked quickly off to the right to pick up a set of brief, metacrapal connections at a high-five refueling station that materialized on the sidewalk near Porter Square's White Hen Pantry.&lt;br /&gt;&lt;br /&gt;As we road on through Harvard Square collecting more high fives, cheers, and car horn blasts I learned about &lt;a href="http://scul.org/pm/index.php?action=view_mission&amp;amp;entity_id=19821"&gt;Operation Back in the Saddle Again&lt;/a&gt; and their objective for the night. The fleet was destined for Riverside subway station, the end of the Green Line's D branch, out in Newton, MA. The objective was to catch a glimpse of the stations planet Pluto model installed by the museum of science.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://scul.org/pm/images_root/ec/bf/ecbf33d4cc2091d81476e49a519c2a04.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px;" src="http://scul.org/pm/images_root/ec/bf/ecbf33d4cc2091d81476e49a519c2a04.jpg" alt="" border="0" /&gt;&lt;/a&gt;We road on through the night, out to Watertown, MA to a 7/11 to collect juice and candy bar rations for the mid-flight pit stop. We also had to make a few repairs. One of the maggots, &lt;a href="http://scul.org/pm/index.php?action=view_pilot&amp;entity_id=19838"&gt;Dishpan&lt;/a&gt;, altered the crew that her ship, &lt;a href="http://scul.org/pm/index.php?action=view_ship&amp;entity_id=1583"&gt;War,&lt;/a&gt; had a wobbly wheel. Now, a little wobble never hurt anyone, but with a name like 'War' and three-foot ramrod mounted to your front, a wobbly back wheel can totally destroy your street cred. &lt;a href="http://scul.org/pm/index.php?action=view_pilot&amp;amp;entity_id=887"&gt;Threespeed&lt;/a&gt;, the fleet's resident mechanic aboard &lt;a href="http://scul.org/pm/index.php?action=view_ship&amp;amp;entity_id=1542"&gt;Starhustler&lt;/a&gt;, got out his tools and gave War a little once over. Dishpan then road three-quarter speed into a chain link fence head on with the ramrod repeatedly until she was satisfied that War had regained his original gusto. I went to talk to Skunk.&lt;br /&gt;&lt;br /&gt;Skunk and I discussed hacking and the &lt;abbr title="Do It Yourself"&gt;DIY&lt;/abbr&gt; community for a while and I was invited to next week's mission to a non-disclosed location which will be of particular interest to a hacker electronics geek like myself.&lt;br /&gt;&lt;br /&gt;Now if you have good reading comprehension you've probably been think to yourself this whole time "Didn't he say he was headed to a party? How much time has passed since the beginning of this story?" Well yes, I was headed to a party, a party back in Davis Square no less. About an hour or two had gone by during our ride and pit stop and I was expected hours ago. So I bid my new friends good bye and wished them much luck on the remainder of their journey.&lt;br /&gt;&lt;br /&gt;I've been instructed to send Skunk and email for more information and Dozer said she'd be happy to sponsor me on my first ride. I'm pretty excited and looking forward to exploring the galaxy in style next week; we'll see how it goes. The import thing to take away from this story is that I will soon be in a bike gang. One with secret meeting spots and all sorts of midnight shadiness. Needless to say I am certainly no longer someone to be trifled with.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-3273304386353543053?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/3273304386353543053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=3273304386353543053' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/3273304386353543053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/3273304386353543053'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2007/09/how-i-accidentally-joined-bike-gang.html' title='How I Accidentally Joined a Bike Gang'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-3806768131905844185</id><published>2007-09-12T17:17:00.000-04:00</published><updated>2007-09-12T17:18:49.521-04:00</updated><title type='text'>Dr. Scheme, you complete me</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_gJUvnpacURg/RuSWwE8Za5I/AAAAAAAAAA8/KMW42c1uU2g/s400/Picture+2.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px;" src="http://bp3.blogger.com/_gJUvnpacURg/RuSWwE8Za5I/AAAAAAAAAA8/KMW42c1uU2g/s400/Picture+2.png" border="0" alt="" /&gt;&lt;/a&gt;My roommate, Amy, has been doing an indexing project for a company as a private contractor. The job involves a lot of data entry so I ask, as I always do, if there are applications for custom software in the project. Nothing bothers me more than seeing people doing work that a computer could be doing.&lt;br /&gt;&lt;br /&gt;I wrote a program to aid in her data entry which included a quick, hundred-line hack to do auto-completion. I sent it to my friend &lt;a href="http://people.cs.uchicago.edu/~jacobm/"&gt;Jacob&lt;/a&gt; for comments who sent it to his adviser &lt;a href="http://people.cs.uchicago.edu/~robby/"&gt;Robby&lt;/a&gt;, who was my adviser when I worked full time as a research assistant for the &lt;a href="http://www.plt-scheme.org/"&gt;PLT&lt;/a&gt;. Robby had a lot of suggestions to make it a lot prettier and lot more user-friendly, all of which Jacob has since implement.&lt;br /&gt;&lt;br /&gt;After Jacob's handy work the code went into the core &lt;a href="http://www.drscheme.org"&gt;DrScheme&lt;/a&gt; framework. Auto-completion was one of the most requested features for Dr. Scheme so we're all pretty excited that it's finally in there. Robby posted &lt;a href="http://blog.plt-scheme.org/2007/09/completions-in-drscheme-finally.html"&gt;a blog entry&lt;/a&gt; to the &lt;a href="http://blog.plt-scheme.org/"&gt;PLT Scheme Blog&lt;/a&gt; announcing the features and there was much rejoicing. A party was thrown, prizes have been awarded, two volcanoes erupted, and parade is planned for next Sunday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-3806768131905844185?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/3806768131905844185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=3806768131905844185' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/3806768131905844185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/3806768131905844185'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2007/09/dr-scheme-you-complete-me.html' title='Dr. Scheme, you complete me'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_gJUvnpacURg/RuSWwE8Za5I/AAAAAAAAAA8/KMW42c1uU2g/s72-c/Picture+2.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-7392846754079834990</id><published>2007-09-10T00:01:00.001-04:00</published><updated>2009-02-18T14:35:53.966-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bikes'/><title type='text'>How to Make Friends</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_tdi5U8dJ2Sk/RuVmV4RDFrI/AAAAAAAAAKc/hzY4H59HB-s/s1600-h/fullyassembled.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp1.blogger.com/_tdi5U8dJ2Sk/RuVmV4RDFrI/AAAAAAAAAKc/hzY4H59HB-s/s200/fullyassembled.jpeg" alt="" id="BLOGGER_PHOTO_ID_5108601878388872882" border="0" /&gt;&lt;/a&gt;This past weekend I went to Home Depot with a tape measure, some written measurements, and the intention of getting shelves for my closet. But as usual, I ended up wasting a lot more time than I should in the plumbing section. Literally four hours went by as I played with various PVC connectors like five-year-old at Toys R Us. I decided to take a break from setting up my new room and what better way to do this than to build a life-size stick figure out of PVC pipe to ride on the back of my tandem bicycle?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_tdi5U8dJ2Sk/RuVmfYRDFsI/AAAAAAAAAKk/K3mUJOKxh-c/s1600-h/underbike.jpeg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_tdi5U8dJ2Sk/RuVmfYRDFsI/AAAAAAAAAKk/K3mUJOKxh-c/s200/underbike.jpeg" alt="" id="BLOGGER_PHOTO_ID_5108602041597630146" border="0" /&gt;&lt;/a&gt;I walked around the aisle, measuring my arms, legs, and torso, drawing pictures, and laying pipes out on the floor in a roughly humanoid form.&lt;br /&gt;"Do you need help?" one employee asked, choosing his words diplomatically.&lt;br /&gt;"Yes", I said. "Do you have cross-joint for one-inch by half-inch by one-inch by two-inch PVC?"&lt;br /&gt;"I doubt it, considering the way water flows. We don't carry every piece so it's hard to find things that aren't used for typical plumbing setups." He looked down at my head on a stick "And &lt;em&gt;that&lt;/em&gt; is clearly not plumbing related."&lt;br /&gt;&lt;br /&gt;I adjusted my plans accordingly, swapping out pieces in my drawings for the ones they actually carried in the store. Since I didn't know how big he'd need to be to fit properly on the bike I just modeled his sizes after my own. This is why his biceps are a half of an inch in diameter.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tdi5U8dJ2Sk/RuVmoIRDFtI/AAAAAAAAAKs/Z9QISo_eYg0/s1600-h/riding.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_tdi5U8dJ2Sk/RuVmoIRDFtI/AAAAAAAAAKs/Z9QISo_eYg0/s200/riding.jpeg" alt="" id="BLOGGER_PHOTO_ID_5108602191921485522" border="0" /&gt;&lt;/a&gt;Later I went home to saw and cement together my new friend. After much deliberation with my roommate, Amy, we decided to call him Pascal Vanderbilt Chesterfield. I think it's a pretty fitting and dignified name.&lt;br /&gt;&lt;br /&gt;Having a tandem copilot automaton around has a lot of benefits that you might not realize. I can finally ride in the carpool lane when I'm biking to work on i93. If none of my friends are around to go for a ride on the weekends I can still go without looking completely ridiculous. It's a lot less awkward if I meet a girl at a bar and she has a friend made of PVC. And best of all, he can wear the backpack instead of me. Now I just need to teach him how to signal.&lt;br /&gt;&lt;br /&gt;&lt;div style="clear:both;text-align:center"&gt;&lt;object width="320" height="280" class="BLOG_video_class" id="BLOG_video-a4c79468ddf07e6d" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v14.nonxt5.googlevideo.com/videoplayback?id%3Da4c79468ddf07e6d%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329852642%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D76A22CF81FBBB72215C0252082F988F61F6E28F8.29EB435A1206B250C04070BAB0BAD6A8ACB21936%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Da4c79468ddf07e6d%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dd8LCE57ktHb2fMiA9Cr-QMaBYjI&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="280" bgcolor="#FFFFFF"flashvars="flvurl=http://v14.nonxt5.googlevideo.com/videoplayback?id%3Da4c79468ddf07e6d%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329852642%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D76A22CF81FBBB72215C0252082F988F61F6E28F8.29EB435A1206B250C04070BAB0BAD6A8ACB21936%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Da4c79468ddf07e6d%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dd8LCE57ktHb2fMiA9Cr-QMaBYjI&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-7392846754079834990?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=a4c79468ddf07e6d&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/7392846754079834990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=7392846754079834990' title='24 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/7392846754079834990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/7392846754079834990'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2007/09/how-to-make-friends.html' title='How to Make Friends'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_tdi5U8dJ2Sk/RuVmV4RDFrI/AAAAAAAAAKc/hzY4H59HB-s/s72-c/fullyassembled.jpeg' height='72' width='72'/><thr:total>24</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-2710803125713979908</id><published>2007-09-05T14:46:00.000-04:00</published><updated>2007-09-05T15:38:52.956-04:00</updated><title type='text'>I am the sixteenth silliest thing on the Internet</title><content type='html'>We've all heard the old saying in it's many variations. "That guy is so silly that if you looked up the word 'silly' in the dictionary you'd find his picture." Now I'm a pretty silly guy so people have certainly said such things about me, but if you look today in the &lt;abbr title="Oxford English Dictionary"&gt;OED&lt;/abbr&gt; you're still not very likely to find any reference to me. However, if you do a &lt;a href="http://images.google.com/images?q=silly"&gt;Google Image search for the world 'silly'&lt;/a&gt;, you will, in fact, find my picture on the front page at number sixteen*.&lt;br /&gt;&lt;br /&gt;My friend, Adam, recently had need for some silly images and stumbled upon a picture of our friend Char and I, picture number one on page two of the search results. After he sent us an email with this announcement of our new-found fame we moved five places onto the prestigious first page.&lt;br /&gt;&lt;br /&gt;This &lt;a href="http://ywwg.com/images/photos/050626-1/p6251056%20mike%20and%20char%20silly.336x252-border.jpg"&gt; silly&lt;/a&gt; picture was taken by Char's boyfriend, Owen, at a pool party I had and subsequently &lt;a href="http://ywwg.com/wordpress/?p=292"&gt;posted it&lt;/a&gt; to his apparently well-indexed, highly-linked &lt;a href="http://ywwg.com/wordpress/"&gt;photo blog&lt;/a&gt;. Google's page ranking being the infallible, acid test for Internet poplar opinion that it is, I think I can safely declare that Char and I are the number sixteen most silly thing on the Internet.&lt;br /&gt;&lt;br /&gt;* Google page rankings being as fickle as they are, this number is likely to be changed both by the time this is posted and also as a result of it being posted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-2710803125713979908?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/2710803125713979908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=2710803125713979908' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/2710803125713979908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/2710803125713979908'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2007/09/i-am-sixteenth-silliest-thing-on.html' title='I am the sixteenth silliest thing on the Internet'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-6053803063704049922</id><published>2007-09-05T14:26:00.000-04:00</published><updated>2007-09-14T16:42:12.076-04:00</updated><title type='text'>Partial Evaluation</title><content type='html'>My friends &lt;a href="http://keepworkingworkerbee.blogspot.com/"&gt;Jacob Matthews&lt;/a&gt; and &lt;a href="http://calculist.blogspot.com/"&gt;Dave Herman&lt;/a&gt; are working on a paper about a technique for compiler optimization. The following technique for partial evaluation came up last night while I was talking about it with our friend &lt;a href="http://macrologist.blogspot.com/"&gt;Ryan Culpepper&lt;/a&gt;. Ryan seems to think this wouldn't get excepted to &lt;abbr title="Principles of Programming Languages"&gt;POPL&lt;/abbr&gt; for some reason. Some silliness about needing to get a value back.&lt;br /&gt;&lt;div class="scheme"&gt;&lt;pre&gt;(&lt;span class="keyword"&gt;define&lt;/span&gt; (&lt;span class="variable"&gt;partial-evaluator&lt;/span&gt; &lt;span class="variable"&gt;program&lt;/span&gt;)&lt;br /&gt;  (&lt;span class="keyword"&gt;let&lt;/span&gt; ([&lt;span class="variable"&gt;t&lt;/span&gt; (&lt;span class="builtin"&gt;thread&lt;/span&gt; (&lt;span class="keyword"&gt;lambda&lt;/span&gt; () (&lt;span class="builtin"&gt;eval&lt;/span&gt; &lt;span class="variable"&gt;program&lt;/span&gt;)))])&lt;br /&gt;    (&lt;span class="builtin"&gt;sleep&lt;/span&gt; &lt;span class="selfeval"&gt;1&lt;/span&gt;)&lt;br /&gt;    (&lt;span class="builtin"&gt;kill-thread&lt;/span&gt; &lt;span class="variable"&gt;t&lt;/span&gt;)))&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-6053803063704049922?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/6053803063704049922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=6053803063704049922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/6053803063704049922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/6053803063704049922'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2007/09/partial-evaluation.html' title='Partial Evaluation'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-350787062364840932</id><published>2007-08-29T18:00:00.000-04:00</published><updated>2007-09-05T23:51:55.711-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trebuchet'/><title type='text'>Trebuchet Part IV: Next Saturday in the Park</title><content type='html'>We've been flinging a lot of baseballs over the last couple of weeks so everyone is now well practiced in the art of catching baseballs. Coupling that with an abundant access to baseballs gloves, it's become pretty obvious that flinging baseballs no longer has the high probability of injury that it once did. To fix this we decided to fling some different things from the trebuchet this week. Brett was kind enough to donate some things from around the house: a tennis ball, a street-hockey ball, a golf ball, and a can of tuna fish. As it turns out, cans of tuna fish are nearly indestructible.&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="280" class="BLOG_video_class" id="BLOG_video-1fb8cb63ad7481c1" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v18.nonxt3.googlevideo.com/videoplayback?id%3D1fb8cb63ad7481c1%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329852642%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D771C25BF2FCF9BFA26516614FC8785B546EFCB4B.499D40C2B230AFDAB43E67F8A94190BC8C1BE6C2%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1fb8cb63ad7481c1%26offsetms%3D5000%26itag%3Dw160%26sigh%3DAB-q34ZeRf3BV2Fb1BD0QPD6wds&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="280" bgcolor="#FFFFFF"flashvars="flvurl=http://v18.nonxt3.googlevideo.com/videoplayback?id%3D1fb8cb63ad7481c1%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329852642%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D771C25BF2FCF9BFA26516614FC8785B546EFCB4B.499D40C2B230AFDAB43E67F8A94190BC8C1BE6C2%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1fb8cb63ad7481c1%26offsetms%3D5000%26itag%3Dw160%26sigh%3DAB-q34ZeRf3BV2Fb1BD0QPD6wds&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Later in the day a man walking through the park with his dog decided to stop off in our little corner of the park to outsource his dog-toy-throwing responsibilities. We placed Trevor next to the trebuchet to making a throwing motion with his arm. After the dog learned to follow Trevor's lead, and not run straight into the trebuchet after it was released, we played fetch for a little while. I'm not sure if the dog realized where the ball was coming from but I think the dog must have had some vague notion of "Gees, these guys throw much further than my master." Nothing tires a dog out like 300-foot fetch. We gave her some of the water that we had left and she and her master headed on their way.&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="280" class="BLOG_video_class" id="BLOG_video-2d32eb75a6c00c82" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v3.nonxt5.googlevideo.com/videoplayback?id%3D2d32eb75a6c00c82%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329852642%26sparams%3Did,itag,ip,ipbits,expire%26signature%3DF4E43AFE0784D80975B58C05F5245F627FA4ACC.A7497AF86D2AAFF63C968224940C88A1F8B6493%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D2d32eb75a6c00c82%26offsetms%3D5000%26itag%3Dw160%26sigh%3DmTbgmkNrlsyZwg8G-UEKyoMfOM8&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="280" bgcolor="#FFFFFF"flashvars="flvurl=http://v3.nonxt5.googlevideo.com/videoplayback?id%3D2d32eb75a6c00c82%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329852642%26sparams%3Did,itag,ip,ipbits,expire%26signature%3DF4E43AFE0784D80975B58C05F5245F627FA4ACC.A7497AF86D2AAFF63C968224940C88A1F8B6493%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D2d32eb75a6c00c82%26offsetms%3D5000%26itag%3Dw160%26sigh%3DmTbgmkNrlsyZwg8G-UEKyoMfOM8&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Later on, we sent a bunch of people to the store to get Diet Coke and Mentos because we thought that would be a fun thing to fling up into the air. The idea was to put a ton of Mentos in the bottle, but seal it off before they touched the Coke. As it turns out, cans of tuna are not the only thing on the indestructible list.&lt;br /&gt;&lt;br /&gt;You see all those videos on the Interwebs of Diet Coke and Mentos have a little hole cut in the top for the soda to shoot out. The amount of gas produced turns out not to be enough to actually rupture the bottle. Which is probably a good thing since we didn't realize that putting something as heavy as a Coke bottle in the trebuchet requires recalibration of the release nail if you don't want it to fly straight up and come right back down on you.&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="280" class="BLOG_video_class" id="BLOG_video-3474d256828f7a96" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v24.nonxt4.googlevideo.com/videoplayback?id%3D3474d256828f7a96%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329852642%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D3BC2DEBE2D392006D0535EEF5A2443E8D3A92594.6173B348129562E40DF1060539DDA65F4363CB3C%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D3474d256828f7a96%26offsetms%3D5000%26itag%3Dw160%26sigh%3DXlJ0TNjJOBvdqBsDXaYEoaVi2zI&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="280" bgcolor="#FFFFFF"flashvars="flvurl=http://v24.nonxt4.googlevideo.com/videoplayback?id%3D3474d256828f7a96%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329852642%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D3BC2DEBE2D392006D0535EEF5A2443E8D3A92594.6173B348129562E40DF1060539DDA65F4363CB3C%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D3474d256828f7a96%26offsetms%3D5000%26itag%3Dw160%26sigh%3DXlJ0TNjJOBvdqBsDXaYEoaVi2zI&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Discounting all of the failures I feel the day was a pretty big success. You're never a failure if you define success late enough.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-350787062364840932?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=1fb8cb63ad7481c1&amp;type=video%2Fmp4' length='0'/><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=2d32eb75a6c00c82&amp;type=video%2Fmp4' length='0'/><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=3474d256828f7a96&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/350787062364840932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=350787062364840932' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/350787062364840932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/350787062364840932'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2007/08/trebuchet-part-iv-next-saturday-in-park.html' title='Trebuchet Part IV: Next Saturday in the Park'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-4707696628503785086</id><published>2007-08-26T01:49:00.000-04:00</published><updated>2007-09-05T23:51:34.334-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trebuchet'/><title type='text'>Trebuchet Part III: Saturday in the Park</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_tdi5U8dJ2Sk/RtDm_4RDFnI/AAAAAAAAAJk/ucLGzFKXAM0/s1600-h/frame1.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_tdi5U8dJ2Sk/RtDm_4RDFnI/AAAAAAAAAJk/ucLGzFKXAM0/s200/frame1.jpeg" alt="" id="BLOGGER_PHOTO_ID_5102832362920810098" border="0"&gt;&lt;/a&gt;On Saturday some friends and I went to the park for the first full day of trebuchet baseball flinging. For most of the morning it was Brain, Jackie, Jackie's dog, and I working out the kinks. Trevor, Sarah, Colin, Adriana, Lisa, and Brett all showed up at some point during the day too.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tdi5U8dJ2Sk/RtDnOYRDFpI/AAAAAAAAAJ0/hCXb79h2Auo/s1600-h/frame3.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer;" src="http://bp2.blogger.com/_tdi5U8dJ2Sk/RtDnOYRDFpI/AAAAAAAAAJ0/hCXb79h2Auo/s200/frame3.jpeg" alt="" id="BLOGGER_PHOTO_ID_5102832612028913298" border="0"&gt;&lt;/a&gt;A good deal of the morning was spent taking video of the trebuchet from the side as it was firing and playing it back in slow motion to see exactly what was going on. When we started, the balls were mostly going line drive, 75 feet out. After watching some slow-motion video it was pretty apparent that the sling was releasing way to late. So we bent the nail way back until we got it just right. This actually accounted for about a 100-foot increase in distance.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_tdi5U8dJ2Sk/RtDnGIRDFoI/AAAAAAAAAJs/9JE7xHdcKIw/s1600-h/frame2.jpeg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: right; cursor: pointer;" src="http://bp1.blogger.com/_tdi5U8dJ2Sk/RtDnGIRDFoI/AAAAAAAAAJs/9JE7xHdcKIw/s200/frame2.jpeg" alt="" id="BLOGGER_PHOTO_ID_5102832470294992514" border="0"&gt;&lt;/a&gt;Another really nice improvement we made was make a new sling. We cut a big square out of some stiff denim pants, also bound for Good Will. We attached the sling at four points to the rope, rather than just two. This turned out to be a lot more consistent than the design we found on the original trebuchet plans.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_tdi5U8dJ2Sk/RtDnXIRDFqI/AAAAAAAAAJ8/N-J7P9x3gK8/s1600-h/frame4.jpeg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_tdi5U8dJ2Sk/RtDnXIRDFqI/AAAAAAAAAJ8/N-J7P9x3gK8/s200/frame4.jpeg" alt="" id="BLOGGER_PHOTO_ID_5102832762352768674" border="0"&gt;&lt;/a&gt;After all the mechanics where tweaked we added a giant rock that Brian went hunting for around the park. The rock added quite a bit of weight to the bucket. So much so that the bucket started scraping the ground whenever it came down, and eventually bent the rod so much that it broke off. Next time we'll have to reinforce the hanger better.&lt;br /&gt;&lt;br /&gt;&lt;div style="clear:both;text-align:center"&gt;&lt;object width="320" height="280" class="BLOG_video_class" id="BLOG_video-fabb9145e669df0f" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v6.nonxt7.googlevideo.com/videoplayback?id%3Dfabb9145e669df0f%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329852642%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D21FEFF8AF1B5A6CE4FCA51434CC7F691FAB90EA2.87465DBA81221AE8F5D3F544A5504A684ED40D4%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dfabb9145e669df0f%26offsetms%3D5000%26itag%3Dw160%26sigh%3D7oWg3Pe_T4VMfHYIiWrxGpW-SIk&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="280" bgcolor="#FFFFFF"flashvars="flvurl=http://v6.nonxt7.googlevideo.com/videoplayback?id%3Dfabb9145e669df0f%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329852642%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D21FEFF8AF1B5A6CE4FCA51434CC7F691FAB90EA2.87465DBA81221AE8F5D3F544A5504A684ED40D4%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dfabb9145e669df0f%26offsetms%3D5000%26itag%3Dw160%26sigh%3D7oWg3Pe_T4VMfHYIiWrxGpW-SIk&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-4707696628503785086?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/4707696628503785086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=4707696628503785086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/4707696628503785086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/4707696628503785086'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2007/08/trebuchet-part-iii-saturday-in-park.html' title='Trebuchet Part III: Saturday in the Park'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_tdi5U8dJ2Sk/RtDm_4RDFnI/AAAAAAAAAJk/ucLGzFKXAM0/s72-c/frame1.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-8458345115191491976</id><published>2007-08-26T01:19:00.000-04:00</published><updated>2007-09-05T23:51:11.059-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trebuchet'/><title type='text'>Trebuchet Part II: The Thursday Test Run</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tdi5U8dJ2Sk/RtDZnYRDFjI/AAAAAAAAAJE/Qzp4rY9xHdQ/s1600-h/frame1.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_tdi5U8dJ2Sk/RtDZnYRDFjI/AAAAAAAAAJE/Qzp4rY9xHdQ/s200/frame1.jpeg" alt="" id="BLOGGER_PHOTO_ID_5102817648362853938" border="0" /&gt;&lt;/a&gt;Thursday night I packed up my car full of trebuchet parts and projectiles only to find that the two A-frames are too big to fit in my little VW Golf. So I did what any reasonable person would do in that situation; I gave one to Colin, one to Trevor, and explained to them, in less detail than they would have liked, how to get to the park.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_tdi5U8dJ2Sk/RtDZwIRDFkI/AAAAAAAAAJM/19QwwS6BkvA/s1600-h/frame2.jpeg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_tdi5U8dJ2Sk/RtDZwIRDFkI/AAAAAAAAAJM/19QwwS6BkvA/s200/frame2.jpeg" alt="" id="BLOGGER_PHOTO_ID_5102817798686709314" border="0" /&gt;&lt;/a&gt;The rest of us got to the park early and scouted out a spot to test our brand-new, medieval siege toy. We decide on a quiet little spot next to a volleyball game at the corner of the park. We figured here we would be out of the way of the big soccer crowds who might get a little suspicious and call the park authorities. As it turns out, we were being a little more paranoid than was necessary. The volleyball crowd showed a lot of interest in our test runs and later, the park ranger walked right by us as we were setting up our ten-foot, projectile weapon of plasticness.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_tdi5U8dJ2Sk/RtDZ44RDFlI/AAAAAAAAAJU/dgFpgPNGuUA/s1600-h/frame3.jpeg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_tdi5U8dJ2Sk/RtDZ44RDFlI/AAAAAAAAAJU/dgFpgPNGuUA/s200/frame3.jpeg" alt="" id="BLOGGER_PHOTO_ID_5102817949010564690" border="0" /&gt;&lt;/a&gt;After the first few throws went backwards, sideways, straight into the ground, and nowhere at all we finally got the hang of it. We adjusted the string lengths, made a new sling, and added weight. We got the baseballs going 75 feet or so--a far cry from our goal yet enough to get us all really excited about the following Saturday. We'll spend next Saturday in the same place, tweaking, test, and seeing just how far we can get this thing to go.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_tdi5U8dJ2Sk/RtDaCoRDFmI/AAAAAAAAAJc/lJOA4NmR0dY/s1600-h/frame4.jpeg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_tdi5U8dJ2Sk/RtDaCoRDFmI/AAAAAAAAAJc/lJOA4NmR0dY/s200/frame4.jpeg" alt="" id="BLOGGER_PHOTO_ID_5102818116514289250" border="0" /&gt;&lt;/a&gt;After it got dark we all went out for dinner at Jose's. This was pretty lucky because just as it was getting dark, it began to rain pretty hard. We walked over to Jose's, parked our giant A-frames just outside the restaurant, and went in to wait out the pouring and thundering. As luck would have it, it ended just before our dinner, making for a much more comfortable trip home for Colin and Trevor.&lt;br /&gt;&lt;br /&gt;&lt;div style="clear:both;text-align:center"&gt;&lt;object width="320" height="280" class="BLOG_video_class" id="BLOG_video-db9525390d57be0e" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v3.nonxt7.googlevideo.com/videoplayback?id%3Ddb9525390d57be0e%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329852642%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D39554C6AC32511C9E8C9F07697E15A101902631C.8A2627A3D502A62B7200BAE9493A7B9317336BE%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Ddb9525390d57be0e%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dl94IusmRjSRm1Zm-7dxggYEWY_w&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="280" bgcolor="#FFFFFF"flashvars="flvurl=http://v3.nonxt7.googlevideo.com/videoplayback?id%3Ddb9525390d57be0e%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329852642%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D39554C6AC32511C9E8C9F07697E15A101902631C.8A2627A3D502A62B7200BAE9493A7B9317336BE%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Ddb9525390d57be0e%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dl94IusmRjSRm1Zm-7dxggYEWY_w&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-8458345115191491976?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/8458345115191491976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=8458345115191491976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/8458345115191491976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/8458345115191491976'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2007/08/trebuchet-part-ii-thursday-test-run.html' title='Trebuchet Part II: The Thursday Test Run'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_tdi5U8dJ2Sk/RtDZnYRDFjI/AAAAAAAAAJE/Qzp4rY9xHdQ/s72-c/frame1.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-814220487592672205.post-6798703461622159034</id><published>2007-08-20T23:08:00.000-04:00</published><updated>2007-09-05T23:50:46.420-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trebuchet'/><title type='text'>Trebuchet Part I: Buying and Building</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_tdi5U8dJ2Sk/Rsoc6IRDFbI/AAAAAAAAAHs/I_auFc7a4GA/s1600-h/00005.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_tdi5U8dJ2Sk/Rsoc6IRDFbI/AAAAAAAAAHs/I_auFc7a4GA/s200/00005.jpg" alt="" id="BLOGGER_PHOTO_ID_5100921312927487410" border="0" /&gt;&lt;/a&gt;A month ago I was down in Pennsylvania with Jeff at our friend Sean's house. The combination of the wide-open corn fields and the access to a scrap metal yard always makes me want to build stuff and launch projectiles. So we were at a BBQ, a little drunk, and I stood up and announce "Let's build something."&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tdi5U8dJ2Sk/RspIk4RDFcI/AAAAAAAAAH0/X0JqXMyiN_g/s1600-h/00007.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_tdi5U8dJ2Sk/RspIk4RDFcI/AAAAAAAAAH0/X0JqXMyiN_g/s200/00007.jpg" alt="" id="BLOGGER_PHOTO_ID_5100969326366889410" border="0" /&gt;&lt;/a&gt; It wasn't long before the words 'trebuchet' and '16-foot-tall-I-beams' also came out of my mouth. We left the BBQ all excited and scrounged around the metal yard until we found all the perfect parts. It's amazing what you can find in a scrap-metal yard. One-ton counter weights for fork lift, a ten-foot-tall metal platform, and, indeed, 16-foot I-Beams.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_tdi5U8dJ2Sk/RspLSYRDFdI/AAAAAAAAAH8/zk1OnxUC9wQ/s1600-h/00082.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_tdi5U8dJ2Sk/RspLSYRDFdI/AAAAAAAAAH8/zk1OnxUC9wQ/s200/00082.jpg" alt="" id="BLOGGER_PHOTO_ID_5100972307074192850" border="0" /&gt;&lt;/a&gt;Now I know what you're thinking: that introductory paragraph has all the makings of a post that will eventually describe my death. But fear not, dear reader, for there is a twist in this plot. In short time, Sean, Jeff, and I realized that a weekend isn't very much time to put together three tons of metal, assembled twenty feet high, and not one of us knew how to weld.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_tdi5U8dJ2Sk/RspMxoRDFeI/AAAAAAAAAIE/-Sf2DQ-WxgU/s1600-h/00093.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_tdi5U8dJ2Sk/RspMxoRDFeI/AAAAAAAAAIE/-Sf2DQ-WxgU/s200/00093.jpg" alt="" id="BLOGGER_PHOTO_ID_5100973943456732642" border="0" /&gt;&lt;/a&gt; This came as a bit of a downer, but Jeff and I decided that once I got back from my &lt;a href="http://jacobandtheamazingtechnicolorskippy.blogspot.com/"&gt;road trip&lt;/a&gt; we would we would build a small, PVC-pipe trebuchet up in Boston, modest in size but big enough to fling baseballs hundreds of feet.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_tdi5U8dJ2Sk/RspPBIRDFfI/AAAAAAAAAIM/1eebkKZXR_g/s1600-h/00077.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_tdi5U8dJ2Sk/RspPBIRDFfI/AAAAAAAAAIM/1eebkKZXR_g/s200/00077.jpg" alt="" id="BLOGGER_PHOTO_ID_5100976408767960562" border="0" /&gt;&lt;/a&gt;&lt;p style="clear:left"&gt;A few weekends later Jeff and I went to Home Depot to get all the parts. We stacked up a wheely cart with four ten-foot PVC pipes, about twenty connectors, a PVC saw, a couple of eight-foot 2x2's, a few thick metal bolts, a whole ton of nuts and washers, and one big, orange bucket. We were set, we were psyched, and we rush home to do some math.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tdi5U8dJ2Sk/RspPo4RDFgI/AAAAAAAAAIU/I-9LGcepafc/s1600-h/00097.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_tdi5U8dJ2Sk/RspPo4RDFgI/AAAAAAAAAIU/I-9LGcepafc/s200/00097.jpg" alt="" id="BLOGGER_PHOTO_ID_5100977091667760642" border="0" /&gt;&lt;/a&gt;We loosely followed a&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt; &lt;a href="http://www.ripcord.ws/plans/plans.html"&gt;set of plans&lt;/a&gt; we found on line for a smaller, wooden, tennis-ball trebuchet. We were able to use the ratio of the axle height to arm length and the counter weight to projectile weight ration as well. We also took inspiration from the base design but needed to make a lot of adjustments. Firstly we were making a much bigger trebuchet and secondly, you can only buy 45° and 90° PVC-pipe joints and Home Depot.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_tdi5U8dJ2Sk/RspQMIRDFhI/AAAAAAAAAIc/kS7TA93VuWg/s1600-h/00111.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_tdi5U8dJ2Sk/RspQMIRDFhI/AAAAAAAAAIc/kS7TA93VuWg/s200/00111.jpg" alt="" id="BLOGGER_PHOTO_ID_5100977697258149394" border="0" /&gt;&lt;/a&gt;We spent Saturday and Sunday morning measuring, sawing, drilling, putting things together, and solving all the little unforeseen problems. Plenty of people showed up over the course of the two days to help out so I was never lonely or in lack of people to do the drilling.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tdi5U8dJ2Sk/RspQt4RDFiI/AAAAAAAAAIk/N_KcA29AnHE/s1600-h/00116.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_tdi5U8dJ2Sk/RspQt4RDFiI/AAAAAAAAAIk/N_KcA29AnHE/s200/00116.jpg" alt="" id="BLOGGER_PHOTO_ID_5100978277078734370" border="0" /&gt;&lt;/a&gt;When all was said and done, we tossed all the tools into the bucket for a counter weight and tossed a roll of tape over my car, just to make sure everything looked good. It was late by this point and everyone had Sunday night plans so we agreed to meet on Thursday out in the park to give the trebuchet its first real test run. Stay tuned for Trebuchet Part II: The Thursday Test Run.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/814220487592672205-6798703461622159034?l=turingcompletewasteoftime.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://turingcompletewasteoftime.blogspot.com/feeds/6798703461622159034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=814220487592672205&amp;postID=6798703461622159034' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/6798703461622159034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/814220487592672205/posts/default/6798703461622159034'/><link rel='alternate' type='text/html' href='http://turingcompletewasteoftime.blogspot.com/2007/08/trebuchet-part-i-buying-and-building.html' title='Trebuchet Part I: Buying and Building'/><author><name>Mike Machenry</name><uri>http://www.blogger.com/profile/17140920605069407368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_tdi5U8dJ2Sk/Sa6nxW1iBuI/AAAAAAAAAo4/peIE0o6bNNA/S220/3286648466_27c0dbdf4f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_tdi5U8dJ2Sk/Rsoc6IRDFbI/AAAAAAAAAHs/I_auFc7a4GA/s72-c/00005.jpg' height='72' width='72'/><thr:total>5</thr:total></entry></feed>
