Amusing 2003 Magazine Stories

From this story in the Washington Post on amusing, misleading and downright silly magazine articles from 2003, we find this:

… Playboy published an article titled “Superstars of Weird Sports,” which featured this helpful tip from James Pratt, three-time World Cow-Chip Throwing champion: “Here’s the secret to a good throw: Lick your fingers between the first and second throw. It’s good luck. A little doo on my tongue don’t bother me none. It’s just grass come around the long way.”

He must be married to the woman who worked at the Huddle House in Alpharetta, GA at 0300 one morning about 17 years ago who liked to lick her fingers between cutting slices of cake…

Second Piping Lesson

Well, my second (again) piping lesson came off pretty well tonight. I say ‘pretty well’ because it’s been one month since the last lesson and very little practice was had during the Christmas and New Year’s season. I spent about an hour Sunday evening practicing until my lips were so weak I couldn’t keep a seal on the chanter. It was horrible… I had spit running down the length of the chanter, making for a slippery playing experience. It was disgusting. Anyway, I practiced a bit tonight before heading out to John’s house, which was sort of dumb because I started having the same lip failure even before I left the house. As a contingency I took along my Shuttle Pipes in case I suffered catastrophic lip failure whilst at my lesson. I am happy to report that no such failure occurred.

What did occur was me getting my ass kicked by this passage:

Most of the lesson went fairly well, but we spent the last 15 minutes working on just that one damnable passage. My fingers just went all wonky when I came to those two measures and refused to play properly nine times out of eleven. The rest of the tune was very nearly perfect, but not those two spawn-of-Satan measures. O no. Very frustrating, indeed. Back when I was taking lessons five years ago I always had problems with this bit, so this really isn’t anything new. That doesn’t make it any less aggravating.

Ah well, I’ve got two whole weeks to work on it and get it polished up. Now I just need to practice during those two weeks, and not wait until the night before my lesson…

Lego Mindstorms Are Very Cool

I got some cash for Christmas, bought a Lego Mindstorms robotics kit and It arrived yesterday via UPS truck. Ooo boy, this thing is cool. So far I’ve built the starter robot (see the photos; click to get larger view) and gone through the tutorials. The RCX ‘language’ and the development environment is very well done, if a bit too 4GL for my tastes. I will say that this environment is going to be great for my wonderful Thomas, who is five years old, and terribly excited about the robot. To program the robot you drag program blocks around that look like Lego blocks and connect them together. You can do quite a bit without any reading, which is good for a youngster.

For me, though, I want more. So I’ve already installed a bunch of stuff that should give me more. I’ve installed and played a bit with NQC (Not Quite C) which is a C-like language. I’ve installed two IDEs for NQC; one called NQCEdit, and the other called Bricx Command Center. Both are fairly nice if a bit crude. And of course VIm groks NQC source code, so I can always use it and the command line compiler. I’ve installed a Java API called RCXJava and Shashank Date’s API written in Ruby. (His powerpoint slides from RubyConf2003 are available here.) Needless to say, I’m set for a while now with stuff to do…

SSH Util Ruby Script

OpenSSH, that ships with Cygwin has a nice utility called ssh-agent. This program is a daemon that will hold on to your keys so that hosts you are authorized to log on to will not continually ask for your password. This is especially useful when working with CVS repositories over SSH. When you run ssh-agent, it spits out text that should be evaluated to set two environment variables that you will need in order to run ssh-add, to actually add your keys to it. That output looks like this:

  
SSH_AUTH_SOCK=/tmp/ssh-mjKjm512/agent.512; 
export SSH_AUTH_SOCK;  
SSH_AGENT_PID=1600; 
export SSH_AGENT_PID;  
echo Agent pid 1600;

On a Unix system, it’s easy to capture the output of ssh-agent and evaluate it, but under the ‘command shell’ that ships with Windows systems, which is so pathetically crippled that my old Commodore 64’s BASIC-based shell is looking pretty good, you can’t do that.

So what are those poor saps, myself included, who are using Windows systems to do? Ruby to the rescue. I wrote a simple script that executes ssh-agent, capturing the output, massaging it a little, and then creating a batch file that I can run to set the necessary variables. Simply redirecting the output to a batch file won’t work because there are some Unix-isms, such as exporting the variables, that don’t work on Windows. So, here’s the script:

#!ruby   
lines = %x{ssh-agent}   
File.open("c:/tmp/sde.bat", "w") do |file|   
  lines.each do |line|   
    chunks = line.chomp.split ';'   
    if chunks[0] =~ /^SSH/  
      file.puts "SET #{chunks[0]}"  
    end  
  end  
end  

You can see that the script sends the captured and massaged output to a batch file called “sde.bat” located in C:/tmp. You can change both of these to suit your preference. Once the script runs, I simply execute the generated batch file and then run ssh-add. The nice thing about the generated batch file is that it lingers until the next time I run the Ruby script. Thus as I open new console Windows I can re-run it to get the environment variables set properly in each one.