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

<channel>
	<title>Donnie's Blog</title>
	<atom:link href="http://www.donniepinkston.net/feed" rel="self" type="application/rss+xml" />
	<link>http://www.donniepinkston.net</link>
	<description>(there are many more like it, but this one is mine)</description>
	<pubDate>Fri, 07 May 2010 00:54:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Best Version Control for Pedagogy</title>
		<link>http://www.donniepinkston.net/2010-05-06/best-version-control-for-pedagogy.html</link>
		<comments>http://www.donniepinkston.net/2010-05-06/best-version-control-for-pedagogy.html#comments</comments>
		<pubDate>Fri, 07 May 2010 00:54:56 +0000</pubDate>
		<dc:creator>donnie</dc:creator>
		
		<category><![CDATA[Caltech]]></category>

		<category><![CDATA[Version Control]]></category>

		<guid isPermaLink="false">http://www.donniepinkston.net/?p=215</guid>
		<description><![CDATA[Normally I don&#8217;t like to write anything on my blog if I don&#8217;t really understand what I&#8217;m writing about, but I have an interesting problem to solve, and I figured that I might as well state the problem before diving in and trying to solve it.  That way, if any of my smart friends [...]]]></description>
			<content:encoded><![CDATA[<p>Normally I don&#8217;t like to write anything on my blog if I don&#8217;t really understand what I&#8217;m writing about, but I have an interesting problem to solve, and I figured that I might as well state the problem before diving in and trying to solve it.  That way, if any of my smart friends have any ideas then I can find out what they are, and if not, at least I will have clarified the requirements in my own mind.<br />
<span id="more-215"></span><br />
Teaching a large-scale programming project class presents all kinds of opportunities and challenges for managing the source code of all the students.  In past courses (compilers, particularly), Subversion was used to allow students to check in their submissions.  I don&#8217;t know all of the details here, but I believe that each student was given their own directory to submit into, and as they did their work through the term, they would not just have a single safe place to store their code to, but they would also learn some good things about version control.</p>
<p>Well, now we have a far more interesting landscape for version control, particularly with the increased popularity of distributed version control.  This is particularly appealing, because students can have a local repository that they work against, and when they are finished with an assignment then they can submit their work back to the course repository.  There&#8217;s no reason why a centralized repository can&#8217;t do the same thing, but it&#8217;s an interesting new alternative.</p>
<p>I should say up front that I think students should become as familiar with version-control systems as they possibly can.  That includes &#8220;fun&#8221; details like branching and merging.  Having seen (and fixed) too many catastrophes in source-code repositories caused by people not understanding version-control, I want to help solve that problem.  So, I am not afraid for students to have to dig into some of these details.  (Of course their hand would be held initially!)</p>
<p>The main requirements I can think of are as follows:</p>
<ul>
<li>Some kind of directory-level authorization mechanism.  Students shouldn&#8217;t be able to access each others&#8217; work.  Teachers should be able to access all students&#8217; work.</li>
<li>Ability to tag (or branch) a particular version.  This would be an effective means of &#8220;turning in&#8221; an assignment:  students just tag the version of their project that ought to be graded.</li>
<li>Ability to incrementally provide code to students, e.g. the supporting code needed for each assignment, or if a student massively fails on an assignment, providing the reference implementation they can use going forward.</li>
</ul>
<p>Right now I want to look at Subversion and Git; both are widely used, and both seem to offer many options in the above areas.  Perhaps one will jump out as a clear leader, and I can see about deploying it for students to use in a project-class.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donniepinkston.net/2010-05-06/best-version-control-for-pedagogy.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>And now the focaccia&#8230;</title>
		<link>http://www.donniepinkston.net/2010-03-24/and-now-the-focaccia.html</link>
		<comments>http://www.donniepinkston.net/2010-03-24/and-now-the-focaccia.html#comments</comments>
		<pubDate>Wed, 24 Mar 2010 18:43:31 +0000</pubDate>
		<dc:creator>donnie</dc:creator>
		
		<category><![CDATA[Food]]></category>

		<guid isPermaLink="false">http://www.donniepinkston.net/?p=214</guid>
		<description><![CDATA[I added another recipe to my cooking notes, the rosemary and garlic focaccia that I almost always serve with the racks of lamb I just posted.  It&#8217;s delicious, especially with a little olive oil and balsamic vinegar to dip the bread in.  Click here and enjoy!
]]></description>
			<content:encoded><![CDATA[<p>I added another recipe to my cooking notes, the rosemary and garlic focaccia that I almost always serve with the racks of lamb I just posted.  It&#8217;s delicious, especially with a little olive oil and balsamic vinegar to dip the bread in.  <a href="http://www.donniepinkston.net/pages/cooking-notes/rosemary-and-garlic-focaccia/">Click here and enjoy!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.donniepinkston.net/2010-03-24/and-now-the-focaccia.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>The Best Lamb</title>
		<link>http://www.donniepinkston.net/2010-03-19/the-best-lamb.html</link>
		<comments>http://www.donniepinkston.net/2010-03-19/the-best-lamb.html#comments</comments>
		<pubDate>Sat, 20 Mar 2010 00:08:58 +0000</pubDate>
		<dc:creator>donnie</dc:creator>
		
		<category><![CDATA[Food]]></category>

		<guid isPermaLink="false">http://www.donniepinkston.net/?p=212</guid>
		<description><![CDATA[After many years of making this recipe, and having many people ask me for it, at long last here is the recipe for my racks of lamb that everybody just LOVES.  Rosemary, thyme, garlic, pepper, olive oil, how could you go wrong?!  Just click here!
]]></description>
			<content:encoded><![CDATA[<p>After many years of making this recipe, and having many people ask me for it, at long last here is the recipe for my racks of lamb that everybody just LOVES.  Rosemary, thyme, garlic, pepper, olive oil, how could you go wrong?!  <a href="http://www.donniepinkston.net/pages/cooking-notes/the-best-lamb">Just click here!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.donniepinkston.net/2010-03-19/the-best-lamb.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Water Stones</title>
		<link>http://www.donniepinkston.net/2009-12-23/water-stones.html</link>
		<comments>http://www.donniepinkston.net/2009-12-23/water-stones.html#comments</comments>
		<pubDate>Thu, 24 Dec 2009 00:54:58 +0000</pubDate>
		<dc:creator>donnie</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.donniepinkston.net/?p=210</guid>
		<description><![CDATA[Over a year ago I got a really nice set of kitchen knives from the Misono UX10 line.  They are really nice; I really enjoy using them for cooking.  (I even take them on trips when I expect to be cooking!  I use this set of knife-safes to transport them safely.)  [...]]]></description>
			<content:encoded><![CDATA[<p>Over a year ago I got a really nice set of kitchen knives from the <a href="http://www.japanesechefsknife.com/UX10Series.html">Misono UX10 line</a>.  They are really nice; I <em>really</em> enjoy using them for cooking.  (I even take them on trips when I expect to be cooking!  I use <a href="http://www.chefknivestogo.com/knifesafeset.html">this set of knife-safes</a> to transport them safely.)  However, over time they have gotten noticeably duller, so it was about time to get them sharpened.  I could have taken them to someone to get them sharpened, but I decided it would be more fun to learn to sharpen them myself, so I went ahead and bought a couple of water stones.</p>
<p>There are a variety of different water stones available, and I really didn&#8217;t know what to pick.  <a href="http://www.chefknivestogo.com/sharpening-stones.html">Here is one website</a> that has a selection of water stones.  The Chosera stones looked really appealing, but the ones I wanted were out of stock, so I went ahead with the <a href="http://www.hmsenterprises.com/index.php?c=2">Shapton</a> professional line of water stones.  I chose a 1000-grit stone and a 5000-grit stone, which hopefully will be good to start with.</p>
<p>I also need to learn the proper technique for sharpening my knives, which is complicated slightly by the fact that Misono knives have more of a bevel on one side of the knife than on the other.  This aids in making very accurate cuts.  I enjoyed this feature of the knife, so I want to preserve that in my sharpening efforts; some people restore this to a 50/50 bevel, but that&#8217;s just not for me.  <a href="http://www.japanesechefsknife.com/HowToSharpen.html">Here is one website</a> that describes how to sharpen knives; I will have to look for more when I get my water stones.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donniepinkston.net/2009-12-23/water-stones.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Django + South = Goodness</title>
		<link>http://www.donniepinkston.net/2009-11-09/django-south-goodness.html</link>
		<comments>http://www.donniepinkston.net/2009-11-09/django-south-goodness.html#comments</comments>
		<pubDate>Tue, 10 Nov 2009 01:23:15 +0000</pubDate>
		<dc:creator>donnie</dc:creator>
		
		<category><![CDATA[Databases]]></category>

		<category><![CDATA[Hacking]]></category>

		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.donniepinkston.net/?p=209</guid>
		<description><![CDATA[I was pleased to note that South has recently been recommended as a good solution to the whole problem of database schema migration when using Django.  I have been using South in csman for over a month now, and it has just been great.  I still back up the database before applying a [...]]]></description>
			<content:encoded><![CDATA[<p>I was pleased to note that <a href="http://south.aeracode.org/">South</a> <a href="http://ericholscher.com/blog/2009/nov/6/large-problems-database-migrations/">has recently been recommended</a> as a good solution to the whole problem of database schema migration when using Django.  I have been using South in csman for over a month now, and it has just been great.  I still back up the database before applying a schema-migration to the production system (no sense in being a complete idiot), but so far every time I&#8217;ve had to make a schema change, the process has been completely flawless.</p>
<p>So, I can definitely recommend South too!</p>
<p>In general, it&#8217;s still very wise to try to change schemas as infrequently as possible, so I tend to batch up my changes, but South has almost completely removed my worries about making schema changes in my Django projects.  It&#8217;s a great tool.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donniepinkston.net/2009-11-09/django-south-goodness.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Django Page-Rendering Slowness</title>
		<link>http://www.donniepinkston.net/2009-11-09/django-page-rendering-slowness.html</link>
		<comments>http://www.donniepinkston.net/2009-11-09/django-page-rendering-slowness.html#comments</comments>
		<pubDate>Tue, 10 Nov 2009 01:16:15 +0000</pubDate>
		<dc:creator>donnie</dc:creator>
		
		<category><![CDATA[Caltech]]></category>

		<category><![CDATA[Hacking]]></category>

		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.donniepinkston.net/?p=208</guid>
		<description><![CDATA[Using Django for csman has mostly been a positive experience, although there have been a few wrinkles along the way.  I just ran into another one today, which is quite frustrating &#8212; one of my pages takes about ten seconds to render, and nobody wants to wait ten seconds!  Fortunately it&#8217;s for the [...]]]></description>
			<content:encoded><![CDATA[<p>Using Django for csman has mostly been a positive experience, although there have been a few wrinkles along the way.  I just ran into another one today, which is quite frustrating &#8212; one of my pages takes about ten seconds to render, and nobody wants to wait ten seconds!  Fortunately it&#8217;s for the teachers and not the students; if it were for the students, there would be no end of whining!  <img src='http://www.donniepinkston.net/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>This page includes a LOT of database queries, almost to the point where I should be embarrassed, except for the fact that I hacked this thing together as quickly as possible, so actually I&#8217;m proud that it has as many features as it has.  But for 130 students and around 15 assignments, the server-side code issues around 2000 queries, and you don&#8217;t need to be a genius to know that this just won&#8217;t be very fast.</p>
<p>But surprisingly enough, only about <em>half</em> the time is spent in database land; the rest of the time is spent rendering the Django template.  I was quite surprised by this!  I thought it would be much faster than that, but evidently not.  There are three nested loops in the template, iterating over a large amount of data, so in retrospect it&#8217;s no surprise, but an hour ago I was <em>sure</em> that I needed to optimize the database interactions, not the template rendering.  Now I see that the database code is only half of the problem.</p>
<p>All I did to find this was to add a couple of <tt>print</tt> statements around my view code to see how much time was actually spent in the database queries.  I&#8217;m glad I did; I would have been completely befuddled, otherwise.  It just goes to prove that old bit of software engineering wisdom, that if you try to optimize a system before you&#8217;ve actually profiled it, you probably won&#8217;t fix the real bottleneck.</p>
<p>I think I can fix this issue by creating a custom template-tag that will move some of the rendering into Python code, instead of being run in the template engine.  The more I can incorporate into Python, the better off I&#8217;ll probably be.  This may also help with the database side of things, because if I have clever template tags, then I can do less preparation with the data, and therefore fetch larger amounts of data from the back-end in one shot.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donniepinkston.net/2009-11-09/django-page-rendering-slowness.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Syntax-Highlighted Diffs!</title>
		<link>http://www.donniepinkston.net/2009-11-05/syntax-highlighted-diffs.html</link>
		<comments>http://www.donniepinkston.net/2009-11-05/syntax-highlighted-diffs.html#comments</comments>
		<pubDate>Fri, 06 Nov 2009 03:25:29 +0000</pubDate>
		<dc:creator>donnie</dc:creator>
		
		<category><![CDATA[Caltech]]></category>

		<category><![CDATA[Hacking]]></category>

		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.donniepinkston.net/?p=207</guid>
		<description><![CDATA[I just wrote up a new programming note about how to do syntax-highlighted diff output using Pygments and Python&#8217;s difflib library, in a Django website.  It&#8217;s available here.
I implemented this feature for csman, a homework submission and grading system I have been implementing for the last couple of months, to use with the CS1, [...]]]></description>
			<content:encoded><![CDATA[<p>I just wrote up a new programming note about how to do syntax-highlighted diff output using Pygments and Python&#8217;s <tt>difflib</tt> library, in a Django website.  It&#8217;s available <a href="http://www.donniepinkston.net/pages/programming-notes/syntax-highlighted-diffs-using-pygments-and-difflib">here</a>.</p>
<p>I implemented this feature for csman, a homework submission and grading system I have been implementing for the last couple of months, to use with the CS1, CS4, and CS11 classes that <a href="http://www.cs.caltech.edu/~mvanier/">Mike Vanier</a> and I teach.  All of these classes have a similar homework-submission model, much like the model in real software projects:  you write the code, and if it&#8217;s not good enough, you have to fix it.</p>
<p>Of course, grading redos is always a little annoying, so if you have a tool that lets you view a diff of the old submission and the new submission, it becomes very simple to see if the student actually fixed everything you told them to fix.  (Sometimes they don&#8217;t.  It&#8217;s very annoying when this happens.)</p>
<p>Anyway, it&#8217;s a cool little feature, to be able to see syntax-highlighted diff output on csman, but it definitely still needs a lot of work.  The main issue is that frequently the files are too wide to display side-by-side, unless you happen to have a nice large monitor like I do.  So, the problem really requires the effective use of scrollbars, both horizontal scrollbars to allow the diff-output to be visible in a smaller window, and also vertical scrollbars since otherwise those horizontal scrollbars are going to be waaayy at the bottom of your web page.</p>
<p>So, I have some work to do on that problem, but for now I&#8217;ll stick with what I have.  It does the job, and one day when I learn more client-side JavaScript, maybe I&#8217;ll fix that kind of stuff up to be more snazzy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donniepinkston.net/2009-11-05/syntax-highlighted-diffs.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Tongue-Tingling Tri-Tip</title>
		<link>http://www.donniepinkston.net/2009-03-12/tongue-tingling-tri-tip.html</link>
		<comments>http://www.donniepinkston.net/2009-03-12/tongue-tingling-tri-tip.html#comments</comments>
		<pubDate>Fri, 13 Mar 2009 05:13:12 +0000</pubDate>
		<dc:creator>donnie</dc:creator>
		
		<category><![CDATA[Food]]></category>

		<guid isPermaLink="false">http://www.donniepinkston.net/?p=204</guid>
		<description><![CDATA[Since I have a special guest coming into town tomorrow, I thought I should pull out all the stops and make some gourmet sandwich fodder, for a picnic on the beach.  I settled on tri-tip steak, mainly because I&#8217;ve never tried cooking it before, but also because I have some good friends who serve [...]]]></description>
			<content:encoded><![CDATA[<p>Since I have a special guest coming into town tomorrow, I thought I should pull out all the stops and make some gourmet sandwich fodder, for a picnic on the beach.  I settled on tri-tip steak, mainly because I&#8217;ve never tried cooking it before, but also because I have some good friends who serve tri-tip at their annual barbecue, and it always comes out good.</p>
<p><span id="more-204"></span></p>
<p>Tri-tip steak is just great for making into sandwiches, because the grain goes along the long dimension of the cut, so you can cut it into thin pieces and get a totally tender and awesome piece of meat.  The tri-tip is a triangle (surprise; equally surprising is that it&#8217;s also called a &#8220;triangle steak&#8221;) of meat at the base of the bottom sirloin primal, so it&#8217;s very flavorful but a little less tender than something higher up the cow.  A lot of times it is marinated, then cooked relatively quickly on the grill, either to medium rare or medium.  Then, slice it thin and serve it with baked beans, and that is a fantastic meal.</p>
<p>The sandwiches I wanted to create were going to go something like this:</p>
<ul>
<li>Ciabatta roll, preferably brushed with olive oil infused with garlic and rosemary then lightly toasted</li>
<li>A light covering of mayo, perhaps the tiniest amount of mustard, and a good smear of goat cheese</li>
<li>Some baby greens, probably arugula (a.k.a. &#8220;rocket&#8221;) for the peppery flavor</li>
<li>A nice helping of thinly cut tri-tip</li>
</ul>
<ul>
<p>Given this was the goal, I decided on this marinade for my tri-tip:</p>
</ul>
<ul>
<li>About a cup of red wine.  I chose Caberenet Sauvignon since it&#8217;s a little fruitier and more mellow, and I wanted something a little tamer with the goat cheese and the arugula.  (For a spicier result, Shiraz is the way to go!)</li>
<li>About 2 tbsp of olive oil</li>
<li>5-6 cloves of garlic, peeled.  Smash &#8216;em first, then chop them up.  If you just chop them up, you don&#8217;t get as much flavor.</li>
<li>1.5 to 2 tsp of coarsely-ground black pepper.  (I was more towards the 2tsp end&#8230;)</li>
<li>About 1 tbsp of kosher salt</li>
<li>The juice of about half a lemon</li>
</ul>
<p>(Sorry; I usually don&#8217;t measure anymore unless I am baking!)</p>
<p>I threw all of this into a nice-sized bowl then whisked it up to combine.</p>
<p>I think a little dijon mustard would be fun to add to the marinade in the future, but I didn&#8217;t want to overdo it the first time.</p>
<p>I got out the target tri-tip steak, and using a paring knife, I stabbed the steak about every 2-3 inches, cutting across the grain, all over the roast.  I wanted to make sure the marinade would penetrate the meat.</p>
<p>Then I threw the tri-tip into a zip-top bag, dumped in half the marinade on each side, then sealed it up.  Then I moved the steak around, flexing it and massaging it a bit, to make sure the marinade would make it into all the holes I stabbed into the steak.</p>
<p>Then it was into the refrigerator overnight!  In the morning I massaged the steak a bit more, then flipped it over and let it sit until tonight.  24 hours produced a good flavor, but 36 would probably be even better.  Beyond that, I could see the flavor getting a bit overwhelming.</p>
<p>Tonight I built up a good size fire on the grill (I normally use charcoal), and spread it around the edges of the grill so I wouldn&#8217;t have the heat <em>too</em> direct.  I also put some hickory chips on the fire to add a little smoky flavor to the steak as well.  Once the grill was nice and hot (around 425 degrees F, according to my thermometer), I seared each side for about 5-10 minutes, then moved the steak to be in more indirect heat.  (The thermometer started around 400 and dropped to about 365 by the end.)  Once the internal temperature hit about 130&deg;F (I was aiming for a result that was medium to medium-well, given the preferences of my guest; for medium-rare I would pull at 120), I pulled the tri-tip, covered it in foil, then let it rest for about 20 minutes.  The meat coasted to about 145&deg;F at the high point.  I didn&#8217;t really try cutting into it until it was back down to around 130.</p>
<p>I have to say, the flavor is just unbelievably good.  The wine and the garlic jump right out when you try a thin slice of the meat, and the pepper is a great underlying theme without being overwhelming.  I find that lemon juice in my marinades &#8220;brightens&#8221; them up a bit, but you don&#8217;t want to actually taste it prominently; that was about where this one was, so I was quite happy.</p>
<p>I can&#8217;t wait to eat these sandwiches; they are going to be awesome!  Maybe I will even share a bit of one with my guest&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donniepinkston.net/2009-03-12/tongue-tingling-tri-tip.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>In Tune</title>
		<link>http://www.donniepinkston.net/2009-03-11/in-tune.html</link>
		<comments>http://www.donniepinkston.net/2009-03-11/in-tune.html#comments</comments>
		<pubDate>Wed, 11 Mar 2009 18:44:11 +0000</pubDate>
		<dc:creator>donnie</dc:creator>
		
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://www.donniepinkston.net/?p=203</guid>
		<description><![CDATA[Since I finally started playing the piano again after nearly two decades of not touching the thing, I decided that it was high time to finally get the thing tuned.  (It was really out of tune&#8230;)  Fortunately, the guy who used to tune our piano is still in business, so we called him [...]]]></description>
			<content:encoded><![CDATA[<p>Since I finally started playing the piano again after nearly two decades of not touching the thing, I decided that it was high time to finally get the thing tuned.  (It was <em>really</em> out of tune&#8230;)  Fortunately, the guy who used to tune our piano is still in business, so we called him up and scheduled an appointment.  Tonight was the night, and right on time the doorbell rang.</p>
<p><span id="more-203"></span></p>
<p>The first surprise of the evening was that when the tuner sat down at the piano, the first thing he did was to pull out a little handheld PC, and start up a piece of software that he could use to help him to tune the piano.  He would sit there and hit a note, and the program would display a little frequency plot, showing how the note actually sounded, versus how it was supposed to sound.  I was blown away by this; the last time we had our piano tuned, such technology simply didn&#8217;t exist!  The tuner would use his tuning forks to tune the piano, and that was that!  But now there is a much easier way.</p>
<p>The guy had some great stories too.  When asked if he wanted anything to drink, he replied, &#8220;I&#8217;d like a strawberry milkshake.&#8221;  <em>What?!</em>  He went on to explain that he had been called to tune a piano in Wayne Gretzky&#8217;s house (<em>WAYNE GRETZKY</em>), and a lady had come in and asked him if he&#8217;d like anything to drink.  So he thought, why not?!  &#8220;I&#8217;d like a strawberry milkshake.&#8221;  And about ten minutes later, he had a strawberry milkshake.  So, he explained, he always gives this answer now, just in case he actually gets one!</p>
<p>He told another great story about another client who played ragtime and honky tonk music, and called him up to get his piano tuned.  A few days after he tuned the client&#8217;s piano, he got a phone call from the client:  &#8220;I just can&#8217;t stand the sound of this piano!&#8221;  So he went back out to the client, checked his work, and verified that everything was in fact properly tuned.  Having ruled out the piano as the source of the issue, he asked the client what was wrong with the sound, and the client said, &#8220;It just doesn&#8217;t have the same ring that it used to have!&#8221;  The tuner didn&#8217;t know exactly what the client meant, so the client finally pulled out an old vinyl record of some honky tonk music and played it for the tuner.  When he heard the record, he immediately recognized that the piano in the recording was simply out of tune!</p>
<p>So, the tuner had a simple solution:  he went through and knocked one wire of every note flat.  The client was <em>thrilled</em> with the result.  Of course, on the way out the door, the tuner told his client, &#8220;You probably shouldn&#8217;t waste your money on getting your piano accurately tuned anymore&#8230;</p>
<p>After these fantastic stories, I decided that the best thing to do was to get out of the tuner&#8217;s hair, and let him attend to his work.  He made quick work of the piano as well, and did quite a good job.  (He also recommended some good brands for when I finally upgrade to a grand or a baby-grand piano.)  Of course, on the way out the door, the piano tuner had one last gem to share:</p>
<blockquote><p>&#8220;Did you notice that the moon is full tonight?&#8221;<br />
&#8220;I knew it was close, but I didn&#8217;t know it was tonight.&#8221;<br />
&#8220;That explains your behavior.  [<em>pause</em>]  Good night!&#8221;</p></blockquote>
<p>I could barely restrain my laughter!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donniepinkston.net/2009-03-11/in-tune.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Blast From The Past</title>
		<link>http://www.donniepinkston.net/2009-01-23/blast-from-the-past.html</link>
		<comments>http://www.donniepinkston.net/2009-01-23/blast-from-the-past.html#comments</comments>
		<pubDate>Fri, 23 Jan 2009 22:33:51 +0000</pubDate>
		<dc:creator>donnie</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.donniepinkston.net/?p=202</guid>
		<description><![CDATA[Today the Caltech CS department is getting rid of some old (very old) computer and electrical equipment, and it&#8217;s always fun and entertaining to go over it and see if anything interesting is being tossed out.  Sometimes you find stuff that&#8217;s really useful for a personal project (say, a couple capacitors rated at 50KV [...]]]></description>
			<content:encoded><![CDATA[<p>Today the Caltech CS department is getting rid of some old (<em>very</em> old) computer and electrical equipment, and it&#8217;s always fun and entertaining to go over it and see if anything interesting is being tossed out.  Sometimes you find stuff that&#8217;s really useful for a personal project (say, a couple capacitors rated at 50KV for that Tesla Coil you are building), but sometimes you just find something awesome.  That happened for me today, because I found this:</p>
<p><a href="http://www.donniepinkston.net/wordpress/wp-content/mosaic.jpg"><img src='http://www.donniepinkston.net/wordpress/wp-content/thumb-mosaic.jpg' alt='MOSAIC board' class='aligncenter' /></a></p>
<p>This happens to be a 64-processor parallel computer, called the MOSAIC, that I programmed for CS20 during the third term of my sophomore year.  It was a crazy little computer.  The processors were connected up into a 2D mesh, and they could send messages left, right, up, or down.  They only had about 64KB of memory per node, if I remember correctly, so you had to be pretty careful with your programming.</p>
<p>Communication and parallel computation were even crazier, because the communication channels between the processors were slack 1.  That means you could send one message, and then the next send would block until the receiving processor actually read the message off of the channel.  And the processors weren&#8217;t very bright, so it was very easy to have your program lock up the entire MOSAIC if you didn&#8217;t route your messages properly.</p>
<p>In CS20, the project was to simulate all of the components of a processor on this parallel computer.  So, a few processors would be assigned to simulating ALUs, a few processors would handle stack operations, one would handle instruction decoding, a few would simulate heap memory, and so forth.  It was such a fun project to work on, unlike anything I had ever done before, and I still remember it with great fondness to this day.  Peter Hofstee was the teacher for CS20 that year, and I&#8217;m glad he came up with that crazy project.</p>
<p>I think I&#8217;m going to have to frame one of those boards and put it up on the wall!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donniepinkston.net/2009-01-23/blast-from-the-past.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
