<?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-6230347</id><updated>2012-01-28T19:04:02.592-05:00</updated><category term='BASH'/><category term='Fedora'/><category term='icons'/><category term='Just Weird'/><category term='Rrrunny'/><category term='Annoyances'/><category term='Parody'/><category term='Bibles'/><category term='Life in the Outer &apos;Burbs'/><category term='Grub'/><category term='wildcat envy'/><category term='Gateway'/><category term='Flash'/><category term='RSS'/><category term='Travel'/><category term='Networking'/><category term='email'/><category term='History'/><category term='science fiction'/><category term='Blogs'/><category term='Fiction'/><category term='Video'/><category term='Photographs'/><category term='Doctor Who'/><category term='Scambusters'/><category term='mySQL'/><category term='Everything Changes'/><category term='Astronomy'/><category term='Ripping'/><category term='Blogger'/><category term='Gnome'/><category term='USB'/><category term='Humor?'/><category term='Basketball'/><category term='Fortran'/><category term='Firefox'/><category term='Genealogy'/><category term='Baseball'/><category term='tutorials'/><category term='Bugs'/><category term='Snow'/><category term='Sound'/><category term='Scams'/><category term='Macs'/><category term='Suburbia'/><category term='Movies'/><category term='Intel'/><category term='web page design'/><category term='Gambling'/><category term='Printing'/><category term='Backups'/><category term='Space'/><category term='Kansas'/><category term='Holyrood'/><category term='Remote Access'/><category term='Security'/><category term='Politics'/><category term='Chromium'/><category term='Sabbatical'/><category term='Wikipedia'/><category term='Audio'/><category term='internet'/><category term='The End of All Things'/><category term='File Compression'/><category term='Software'/><category term='windows'/><category term='Discworld'/><category term='Miscellaneous'/><category term='Virtualization'/><category term='Spam'/><category term='Religion'/><category term='Sigh'/><category term='linux advocacy'/><category term='Things that should probably be twittered'/><category term='telephone'/><category term='Web Surfing'/><category term='FVWM'/><category term='CLI'/><category term='Package Management'/><category term='vi'/><category term='Pets'/><category term='time wasters'/><category term='Music'/><category term='Physics'/><category term='SoX'/><category term='Fonts'/><category term='MP3'/><category term='Duke'/><category term='verizon'/><category term='Science'/><category term='EMACS'/><category term='Google'/><category term='X'/><category term='television'/><category term='You Really Need to Read This'/><category term='Open Source'/><category term='Web Hosting'/><category term='shells'/><category term='Fantasy'/><category term='Maryland'/><category term='Database'/><category term='Linux'/><category term='Hardware'/><category term='Ubuntu'/><category term='Sports'/><category term='LaTeX'/><category term='Football'/><category term='Life&apos;s Mysteries'/><category term='If I Labeled This the Way I&apos;d Want I&apos;d Get Hate Mail'/><category term='Books'/><title type='text'>Linux &amp; Things</title><subtitle type='html'>Rock.  Chalk.  Jayhawk.

With Linux.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default?start-index=101&amp;max-results=100'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>843</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6230347.post-5979631307272681595</id><published>2012-01-28T18:59:00.001-05:00</published><updated>2012-01-28T19:04:02.600-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Macs'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Resize a Lot of Pictures</title><content type='html'>&lt;p&gt;The &lt;a href="http://www.unitedparishbowie.org"&gt;church web site&lt;/a&gt; I run has a box the displays &lt;a href="http://hawknotes.blogspot.com/2009/09/designing-random-photo-album.html"&gt;random pictures from our photo album&lt;/a&gt;.  The formatting of the page is easiest if these pictures are no wider than 530 pixels and no higher than 340 pixels.  Of course most pictures are taken with a camera these days are a couple of thousand pixels wide, so each picture needs to be resized.  You can do that by hand, of course, but I found it easiest to write a script.  If you're running Linux, this uses the &lt;a href="http://www.imagemagick.org/script/index.php"&gt;ImageMagick&lt;/a&gt; package, particularly the &lt;tt&gt;identify&lt;/tt&gt; and &lt;tt&gt;convert&lt;/tt&gt; programs.  On a Mac, it uses &lt;tt&gt;sips&lt;/tt&gt;, which has been available at least since 10.3.  I suppose it could be modified for Windows or run under Cygwin, but I don't use Windows enough to make it worth my time.&lt;/p&gt;

&lt;p&gt;Save the file as &lt;tt&gt;websize&lt;/tt&gt;, make it executable, and save it to a directory in your path.  Then run it with the command&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;websize&lt;/tt&gt; [list of image files]&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;This will take a file named, say, &lt;tt&gt;picture1.jpg&lt;/tt&gt;, and create a new file named &lt;tt&gt;picture1_web.jpg&lt;/tt&gt; that fits into the box defined by &lt;tt&gt;MAXWIDTH&lt;/tt&gt; and &lt;tt&gt;MAXHEIGHT&lt;/tt&gt;.  If the picture already fits into the box it will duplicate the file.&lt;/p&gt;

&lt;pre style="background-color:#DDDDDD"&gt;
#! /bin/bash

# Resizes a picture or pictures to make sure it fits into the UPB
# frontpage box of MAXWIDTH pixels wide by MAXHEIGHT pixels tall,
# keeping the same format (PNG, JPEG, BMP, etc.)

# usage

# websize [pictures]

# If a picture is named "picturename.ext", the shrunken picture
#  will be named "picturename_web.ext".

# If a picture already fits into the website, it will simply be
#  copied with its new name.  This makes it easier to find the
#  pictures that should be posted on the web.

# Define the maximum dimensions of the picture

let MAXWIDTH=530
let MAXHEIGHT=340

# For Linux machines we need "convert" from the ImageMagick package.
#  We'll assume it's in the standard location:

# For Macs the standard program is sips, at least since 10.3

if [ -f /usr/bin/sips ]
then
    OS="Mac"
elif [ -f /usr/bin/convert ]
then
    OS="Linux"
else
    echo "Cannot find a program to do the file conversion"
    exit 1
fi

for PICTURE
do

if [ "$OS" = "Linux" ]
then

#   identify is also part of the ImageMagick package

    let WIDTH=`identify $PICTURE | sed "s/x/ /" | awk '{print $3}'`
else
    let WIDTH=`sips -g pixelWidth $PICTURE | tail -1 | awk '{print $2}'`
fi

# Need new picture name:

HEADER=${PICTURE%.*}
EXT=${PICTURE##*.}
NEWPICT=${HEADER}_web.$EXT

echo Converting $PICTURE to $NEWPICT

# Is the picture too wide?

if (( $WIDTH &gt; $MAXWIDTH ))
then
    if [ "$OS" = "Linux" ]
    then
 convert -resize ${MAXWIDTH}x $PICTURE $NEWPICT
    else
 sips --resampleWidth $MAXWIDTH $PICTURE --out $NEWPICT
    fi
else
    cp $PICTURE $NEWPICT
fi

# Note that the new picture may still be too large:

if [ "$OS" = "Linux" ]
then
    let HEIGHT=`identify $NEWPICT | sed "s/x/ /" | awk '{print $4}'`
else
    let HEIGHT=`sips -g pixelHeight $NEWPICT | tail -1 | awk '{print $2}'`
fi

if (( $HEIGHT &gt; $MAXHEIGHT ))
then
#   echo Resizing height of $PICTURE

    if [ "$OS" = "Linux" ]
    then
 convert -resize x$MAXHEIGHT $NEWPICT 1_${NEWPICT}
    else
 sips --resampleHeight $MAXHEIGHT $NEWPICT --out 1_$NEWPICT
    fi

    mv 1_${NEWPICT} $NEWPICT

fi

done
&lt;/pre&gt;

&lt;p&gt;
The obvious modification is to allow MAXWIDTH and MAXHEIGHT to be read from the command line, maybe using &lt;tt&gt;-w&lt;/tt&gt; and &lt;tt&gt;-h&lt;/tt&gt; flags.  That's for another day.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-5979631307272681595?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/5979631307272681595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=5979631307272681595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/5979631307272681595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/5979631307272681595'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2012/01/resize-lot-of-pictures.html' title='Resize a Lot of Pictures'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-6595408360990789766</id><published>2012-01-07T15:54:00.000-05:00</published><updated>2012-01-07T15:54:55.532-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Annoyances'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Joining a Group</title><content type='html'>&lt;p&gt;In an effort to make Ubuntu less scary to users (&lt;i&gt;i.e.&lt;/i&gt;, more Mac/Windows like), Ubuntu 11.10 removed some graphical system administration utilities that were previously available.  One of those was a called &lt;q&gt;Users and Groups,&lt;/q&gt; which let you see &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Group_(computing)"&gt;groups&lt;/a&gt; and make changes to group memberships.
&lt;/p&gt;

&lt;p&gt;
The new Ubuntu would rather you just forget groups, so it includes no graphical tools for handling them.  Fortunately it's still Linux, so you can fix it up yourself.  &lt;a target="_blank" href="
"&gt;Liberian Geek&lt;/a&gt; has details, but the first hint (using groupmod) didn't work for me, so here's my modified version.  In this example, I want to add myself to the group &lt;tt&gt;vboxusers&lt;/tt&gt;, which should allow me to get USB access for my Virtualbox installation.  More on that some other time.  For now, return with us to those thrilling days of yesteryear, before the GUI:
&lt;/p&gt;

&lt;ol&gt;

&lt;li&gt;Look at the file &lt;tt&gt;/etc/group&lt;/tt&gt;. Specifically, we want to see who belongs to the group &lt;tt&gt;vboxusers&lt;/tt&gt;:
&lt;pre&gt;
$ grep vboxusers /etc/group
vboxusers:x:125:
&lt;/pre&gt;
Nobody, as we expected.
&lt;/li&gt;

&lt;li&gt;
Now to follow the Geek and add myself:
&lt;pre&gt;
sudo usermod -a -G vboxusers rchawk
&lt;/pre&gt;
&lt;/li&gt;

&lt;li&gt;Finally, confirm the addition
&lt;pre&gt;
$ grep vboxusers /etc/group
vboxusers:x:125:rcjhawk
&lt;/pre&gt;
&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;
You'll need to log out and log back in before the system will recognize the new group setting.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-6595408360990789766?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/6595408360990789766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=6595408360990789766' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6595408360990789766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6595408360990789766'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2012/01/joining-group.html' title='Joining a Group'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-8484322678607877368</id><published>2011-12-29T18:05:00.008-05:00</published><updated>2011-12-30T14:30:53.016-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shells'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Everything Changes'/><title type='text'>Installation Notes and Rants for Ubuntu 11.10</title><content type='html'>&lt;p&gt;
  A few weeks ago I &lt;a target="_blank" href="http://hawknotes.blogspot.com/2011/11/i-for-one-welcome-our-new-canonical.html"&gt;updated Hal to Ubuntu 11.10 (Oneiric Ocelot)&lt;/a&gt;.  This was relatively easy because Hal was already at 11.04, allowing me to do a distribution update from the update manager.  Our other Linux box, &lt;tt&gt;harlie&lt;/tt&gt;, was running Ubuntu 10.10, so that option wasn't available unless I updated first to 11.04 and then to 11.10.  Instead, I downloaded 11.10 to a CD, and did an install more or less for scratch.
&lt;/p&gt;

&lt;p&gt;
  Now, mind you, the Ocelot has what are supposedly a lot of nifty features, including the not-quite-Mac-like-enough-to-be-sued (you might want to ask Google about that) Unity desktop interface.  And, if you don't like Unity, you can get Gnome 3!  I didn't really want any of that.  What I wanted was a machine that had all the modern software but &lt;em&gt;looked and acted exactly like the old Ubuntu&lt;/em&gt;.   I didn't quite get that, but I came pretty close.
&lt;/p&gt;

&lt;p&gt;
  &lt;strong&gt;&lt;em&gt;BUT&lt;/em&gt;&lt;/strong&gt;:  This release of Ubuntu sets computing back at least 10 years.  In the effort to make everything super friendly, they have dumbed down the user interface so much that you &lt;em&gt;MUST&lt;/em&gt; use the command line to make even the simplest changes:  For example, up through 11.04 you could easily change theme colors through a GUI widget.  This is an appropriate use of the GUI, you can see what the current colors are, select the colors you want, and if they aren't right you can fix them right then and there.  But now, guess what? &lt;a target="_blank" href="http://askubuntu.com/questions/63837/how-to-change-the-color-themes-in-gnome-3"&gt;THE ONLY WAY TO CHANGE THEME COLORS IS TO EDIT A FRAKIN' TEXT FILE.  &lt;strong&gt;AS THE SUPERUSER!&lt;/strong&gt;&lt;/a&gt; (I only shout because I'm mad.)  This is (pick one):
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dumb&lt;/li&gt;
&lt;li&gt;Dumber&lt;/li&gt;
&lt;li&gt;So stupidly idiotic that one expects that there must be a malevolent being doing this, someone who wants everyone to throw up their hands in exasperation and switch to OS X. Or worse, Windows 8.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
And this kind of idiocy exists all over the place:  Things that were easy to do before are now hidden.  Usually you have to edit a text file that hasn't appreciably changed since 1999.  OK, I can do that, but until last month &lt;em&gt;I didn't have to.&lt;/em&gt;  Hence my frustration.
&lt;/p&gt;

&lt;p&gt;
  The worst of it is, this isn't just Ubuntu, a lot of the changes are driven by Gnome 3.  It's enough to drive one back to the ugliness that is FVWM, where at least you know you have to edit menus going in.
&lt;/p&gt;

&lt;p&gt;
  But not just yet.  Click below to see how I overcame the obstacles, at least so far.
&lt;/p&gt;


&lt;a name='more'&gt;&lt;/a&gt;

&lt;hr /&gt;

&lt;p&gt;
I didn't do this all alone, there is a world of information out there on web.  I've linked to specific bits of information as they occur, but you might also want to take a look at some of the big overviews:
&lt;/p&gt;

&lt;ul&gt;

  &lt;li&gt;
    &lt;a target="_blank" href="http://ubuntuguide.org/wiki/Ubuntu:Oneiric"&gt;Ubuntu:Oneiric Guide&lt;/a&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;a target="_blank" href="http://www.addictivetips.com/ubuntu-linux-tips/the-complete-guide-to-ubuntu-11-10-oneiric-ocelot-review/"&gt;The Complete Guide to Ubuntu 11.10 Oneiric Ocelot&lt;/a&gt;
  &lt;/li&gt;

&lt;/ul&gt;

&lt;ol&gt;

  &lt;li&gt;
    &lt;strong&gt;BACK UP EVERYTHING IN /home, AT LEAST&lt;/strong&gt;
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li id="passwd"&gt;
    Run $ cat /etc/passwd &lt;br /&gt;
    Note the output associated with individual user names, particularly the user number.  You'll need this later.&lt;br /&gt; Especially note who is user 1000, as that should be the initial user for this system.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;


  &lt;li&gt;
    &lt;a target="_blank" href="http://www.ubuntu.com/download/ubuntu/download"&gt;Get the Ubuntu CD&lt;/a&gt; We're using the 32-bit version for &lt;a target="_blank" href="http://en.wikipedia.org/wiki/When_HARLIE_Was_One"&gt;Harlie&lt;/a&gt;, as he's a little older than Hal. Burn CD.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Boot up with your CD.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Try out the Live CD first.  This is a good time to see if your wireless connection will work out of the box.  I found that my Broadcom wireless card wouldn't &amp;mdash; not surprising, it never had before.  So I pulled out an old USB wireless dongle, which worked perfectly, again as before.  We'll get the Broadcom working later.  You'll have to log into your wireless network, of course, click on the standard fan-shaped icon at the top right of your screen to set it up.  If you don't have a working wireless connection, you'll have to dig out an Ethernet cable.  Hope it's long enough.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Select &lt;q&gt;Start Installation&lt;/q&gt;.  It will ask if you want to download updates during the install, and if you want the Fluendo MP3 plugin.  Say yes to the first, your choice on the second.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Under Installation Type:  Harlie was running 10.10, with separate partitions for the system (&lt;tt&gt;/&lt;/tt&gt;) and our data (&lt;tt&gt;/home&lt;/tt&gt;).  Ubuntu was smart enough to figure this out and offered to install 11.10 in the place of 10.10, and not to touch /home. This is the one major advance, IMHO, over previous installations.  The alternative way to do this at this point is to choose the &lt;q&gt;Something else&lt;/q&gt; option and map the appropriate partitions yourself.  In either case, remember to &lt;em&gt;back up any files you want to keep&lt;/em&gt; before proceeding.  If this is the first time you are installing Ubuntu on this machine, you can let Ubuntu install everything in one big partition, or select &lt;q&gt;Something else&lt;/q&gt; and set up the partitions the way you want them.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Worrisome:  the install didn't recognize my swap partition, which was already set up.  It did let me go fix the partition table to tell it where the swap partition was. Looking at the partition table it seems it has mapped everything else correctly, we'll see.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Set time zone appropriately.  Choices seem to be New York; New York, New York; NY,NY; and NYC.  I can only assume you get a different choice if you live in, say, Seattle.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    English (US) keyboard.  That's QWERTY, of course.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Set machine name, initial account.  Use the account name associated with "1000" if you want to set the machine up like it was before.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    The &lt;q&gt;everybody here is converting from Windows&lt;/q&gt; fallacy is revealed.  The install program asks it you want to import all the accounts from the Windows installation on this computer.  It cares not about the already set up &lt;em&gt;Linux&lt;/em&gt; accounts, which I will apparently have to rescue myself.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Installation commences.  Wait until it finishes.  Have a coffee, read a blog.  You do have another computer handy, right?
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Reboot.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Select Ubuntu 2D as window manager and log in.  If you try straight Ubuntu, indicating 3D, you may get a &lt;q&gt;your graphics card isn't up to snuff&lt;/q&gt; error.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Pause to admire the wonderfulness of the Unity interface.  Try not to barf.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Something will start to wiggle on the Dock.  It's called the update manager.  Click it and do it.  Restart if (when) required.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Click the top box on the &lt;q&gt;Dash&lt;/q&gt;, and type &lt;q&gt;terminal&lt;/q&gt; into the search-bar.  Drag the terminal icon onto the dock.  You'll thank yourself later.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Open a terminal.  Type &lt;br /&gt;
    $ sudo apt-get install synaptic &lt;br /&gt;
    (If you prefer Ubuntu Software Center, ignore this step.  But you don't, right?)
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    From the same terminal, run &lt;br /&gt;
    $ sudo synaptic
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Install a bunch of stuff.  You can do this from the command line, or with synaptic.  In order of importance (to me):
    &lt;ul&gt;

      &lt;li&gt;
 gnome &amp;mdash; an almost reasonable window manager
      &lt;/li&gt;

      &lt;li&gt;
 gnome-tweak-tool &amp;mdash; Because it isn't all &lt;em&gt;that&lt;/em&gt; reasonable
      &lt;/li&gt;

      &lt;li&gt;
 tcsh &amp;mdash; My favorite shell.  I use bash is for scripts, but I learned Unix with csh.
      &lt;/li&gt;

      &lt;li&gt;
 build-essential &amp;mdash; because you want to be able to install your own programs
      &lt;/li&gt;

      &lt;li&gt;
 emacs and emacs-goodies-el &amp;mdash; because you want to use the One True Editor to write your programs
      &lt;/li&gt;

      &lt;li&gt;
 gfortran &amp;mdash; You mean there's &lt;em&gt;another&lt;/em&gt; programming language?
      &lt;/li&gt;

      &lt;li&gt;
 chromium-browser &amp;mdash; if you prefer Chrome as your browser.
      &lt;/li&gt;

      &lt;li&gt;
 ubuntu-restricted-extras &amp;mdash; because a computer isn't just for programming
      &lt;/li&gt;

      &lt;li&gt;
        vlc &amp;mdash; Watch just about anything, in any format.
      &lt;/li&gt;

      &lt;li&gt;
 texlive and texlive-bibtex-extra &amp;mdash; Make your musings look professional.
      &lt;/li&gt;

      &lt;li&gt;
 backintime-gnome (or backintime-kde, if that's how you roll) &amp;mdash; because at some time you will delete a file you really wanted to save
      &lt;/li&gt;

      &lt;li&gt;
 k3b &amp;mdash; You're going to want to burn CDs and DVDs.  This program I understand.
      &lt;/li&gt;

    &lt;/ul&gt; 
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Click Apply.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    At some point a box may open up saying &lt;q&gt;Configuring gdm&lt;/q&gt;.  Set the default display manager to gdm or lightdm, your choice.  Wanting to keep everything the same as before, I chose gdm.  You'll also have to accept the MS-Fonts license, if you want the Fonts.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Wait until Synaptic (or apt-get, if you're on the the command line) is done, then close synaptic (if open).
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Set up backups for your machine.  I use a permanently mounted USB disk and the aforementioned backintime software.  I also have &lt;a target="_blank" href="http://hawknotes.blogspot.com/2010/05/return-with-us-now-to-thrilling-days-of.html"&gt;extensive setup notes&lt;/a&gt;.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    If you want this machine to talk to other boxes on your network, install &lt;tt&gt;openssh-client&lt;/tt&gt; and &lt;tt&gt;openssh-server&lt;/tt&gt;.  You will also have to set up &lt;tt&gt;/etc/hosts.allow&lt;/tt&gt; and &lt;tt&gt;/etc/hosts.deny&lt;/tt&gt; to secure your connection.  &lt;a target="_blank" href="http://hawknotes.blogspot.com/2010/06/smart-ssh-tricks.html"&gt;I wrote up some notes about that.&lt;/a&gt;  You can also &lt;a target="_blank" href="http://hawknotes.blogspot.com/2010/11/mounting-remote-computer-files-with.html"&gt;install &lt;tt&gt;sshfs&lt;/tt&gt;&lt;/a&gt; for a quick-and-dirty, but secure, way of mounting a remote computer's disk on your machine.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    If you want to watch DVDs, head over to &lt;a target="_blank" href="http://www.techdrivein.com/2011/10/15-things-i-did-after-installing-new.html"&gt;15 Things I Did After Installing New Ubuntu 11.10 Oneiric Ocelot&lt;/a&gt; and look for Enable Full DVD Playback(Dual Layer DVD Support).  Remember, you didn't hear it here.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Click on &lt;q&gt;System Settings&lt;/q&gt; in the Dock, then click on &lt;q&gt;User Accounts&lt;/q&gt;.  Set up other accounts now.  If you mounted your old &lt;tt&gt;/home&lt;/tt&gt;, you can match users to the appropriate home directories.  You used to be able to do this right from this menu.  Now you can't.  Ubuntu will now cheerfully assign the first user account number 1000, the second 1001, etc.  The only way to get around this is to give yourself superuser privileges and edit the &lt;tt&gt;/etc/passwd&lt;/tt&gt; file.  If you don't know how to do this, your probably don't want to do it.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Log out, or restart if you're told it's necessary.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Log back in, but before you do, click on the box that says &lt;q&gt;Ubuntu 2D&lt;/q&gt; and change it to &lt;q&gt;GNOME Classic (No effects).&lt;/q&gt;  Note that &lt;q&gt;Classic&lt;/q&gt; is something of a misnomer.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    You'll now have something that approximates the Gnome 2 desktop. In order to make it more like Gnome, under Applications, click on Other, and then Advanced Settings.  (I have another rant ready about the moronic organization of the menus.  Maybe later.)  This is the gnome-tweak-tool by another name.  Under the Desktop listing in the tool, I set &lt;q&gt;Have file manager handle the desktop&lt;/q&gt; and &lt;q&gt;Show mounted volumes on the desktop&lt;/q&gt; to On, and everything else Off.  YMMV.  Under &lt;q&gt;Theme&lt;/q&gt;, see if you can find something you can live with.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Gnome &lt;q&gt;Classic&lt;/q&gt; still comes with a top and bottom panel.  In Real Gnome 2 you could manipulate the panel by right-clicking on it.  In Faux 2 you have to press Alt while you right click.  I mean, what would happen if a naive Windows user accidentally right clicked on the top panel and had to make (gasp) &lt;em&gt;a choice?&lt;/em&gt; And, yes, you really do have to reconstruct your panels.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Now let's get the real wireless card working.  This computer has a Broadcom BCM4318 wireless card dating from about 2009.  You can read more about installing Broadcom drivers at &lt;a target="_blank" href="https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx"&gt;WifiDocsDriverbcm43xx&lt;/a&gt;.  For me, it was easy.  All I had to do was run
&lt;pre&gt;
$ sudo apt-get install b43-fwcutter firmware-b43-installer
&lt;/pre&gt;
and the card automagically connected.  At this point I disconnected the USB wireless dongle and everything works file.  (This is another substantial improvement over 10.10, the last time I had to figure out how to get the wireless card to connect.)
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Set up the printer.  We have a Canon printer connected to a USB port on Harlie.  When I turned on the printer Ubuntu started the setup, identified the printer as an iP4000, and then refused to work.  I had to go to &lt;tt&gt;Applications/System Settings/Printers&lt;/tt&gt;, uninstall the printer, and then add it back.  Why?  Who knows. No, he probably doesn't either.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Now to set up the printer to be shared on the network.  Easy?  It used to be, but it's not anymore.  See &lt;a target="_blank" href="http://housegeekatheart.blogspot.com/2011/11/ubuntu-1110-oneiric-shared-network.html"&gt;Ubuntu 11.10 Shared Network.&lt;/a&gt;  It wasn't obvious even then, but here's what you do:
    &lt;ul&gt;
      &lt;li&gt;
 Open a browser and go to &lt;a target="_blank" href="http://localhost:631"&gt;&lt;tt&gt;http://localhost:631&lt;/tt&gt;&lt;/a&gt;
      &lt;/li&gt;

      &lt;li&gt;
 Click the Administration tab.
      &lt;/li&gt;

      &lt;li&gt;
 Click &lt;q&gt;Share printers connected to this system&lt;/q&gt;
      &lt;/li&gt;

      &lt;li&gt;
 Click &lt;q&gt;Change Settings&lt;/q&gt;xc
      &lt;/li&gt;
    &lt;/ul&gt;
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Now go back to the remote computer.  Again browse to &lt;a target="_blank" href="http://localhost:631"&gt;&lt;tt&gt;http://localhost:631&lt;/tt&gt;&lt;/a&gt;.  Click on &lt;tt&gt;Administration&lt;/tt&gt;, then on &lt;tt&gt;Add Printer&lt;/tt&gt;.  Your network printer should show up under &lt;tt&gt;Discovered Network Printers&lt;/tt&gt;.  Click &lt;tt&gt;Continue&lt;/tt&gt; and proceed with the install like it's 1999.
    &lt;br /&gt;&lt;br /&gt;
  &lt;/li&gt;

  &lt;li&gt;
    Add in the other users to the computer, if any, remembering to give them the IDs found in step 2.  As noted, this is difficult to do. If you previously had users Alice (1000), Bob (1001), and Clarence (1002) as users, then you'll have to reinstall them &lt;em&gt;in that order&lt;/em&gt; or you may find Bob has access to Clarence's files and &lt;em&gt;vice versa&lt;/em&gt;.  See the above entry about editing &lt;tt&gt;/etc/passwd&lt;/tt&gt;.  You may also want to set up &lt;tt&gt;backintime&lt;/tt&gt; for each of these accounts.
  &lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;
  That's it for now.  You'll note we have nearly 40 bullets to go through, many with sub-bullets to go along.  This, my friends, is the state of Ubuntu today.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-8484322678607877368?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/8484322678607877368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=8484322678607877368' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/8484322678607877368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/8484322678607877368'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/12/installation-notes-and-rants-for-ubuntu.html' title='Installation Notes and Rants for Ubuntu 11.10'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-9195456907560642321</id><published>2011-12-03T22:54:00.001-05:00</published><updated>2011-12-28T10:39:37.715-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Random Wallpaper Switcher for GNOME 3</title><content type='html'>&lt;p&gt;
  Some things bore me &amp;mdash; KU losing in March every year, the Yankees winning more than one pennant a decade, Republican Presidential Debates, &lt;em&gt;etc.&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;
  One of my major points of boredom is a static background on my   computer screen.  Having the same picture up constantly just irks.
&lt;/p&gt;

&lt;p&gt;
  Apple solved this long ago, with Mac OS X you can pick a directory and have the pictures selected randomly from that directory.  Linux has been a little slow to pick this up.  A random wallpaper selector has never shipped with any window manager I'm aware of, leaving the field to third-parties and home-grown hacking.
&lt;/p&gt;

&lt;p&gt;
  Way back in the day I wrote &lt;a target="_blank" href="http://rcjhawk.us/software/index.html#setbg"&gt;&lt;tt&gt;setbg&lt;/tt&gt;&lt;/a&gt;, a clunky Perl script which randomly changed the X11 background.  That worked for window mangers such as FVWM, but it failed for GNOME, which has its own wallpaper protocol.
&lt;/p&gt;

&lt;p&gt;
  For GNOME 2 I used Scott Balneaves's &lt;a target="_blank" href="http://mail.python.org/pipermail/winnipeg/2006-June/000119.html"&gt;Gnome background switcher, &lt;em&gt;aka&lt;/em&gt; &lt;tt&gt;background.py&lt;/tt&gt;&lt;/a&gt;, a Python script which let you specify a directory and a switching time.  Every X seconds you got a new picture for wallpaper.
&lt;/p&gt;

&lt;p&gt;
  GNOME 3 does wallpaper a different way (Surprise!).  Fortunately I stumbled on &lt;a target="_blank" href="http://www.commandlinefu.com/commands/view/9539/change-random-wallpaper-on-gnome-3"&gt;a one-liner which changes the background to a random picture&lt;/a&gt;.  If you want to do it that way, you just enter
&lt;/p&gt;

&lt;p&gt;
  &lt;tt&gt;
    gsettings set org.gnome.desktop.background picture-uri file://$(find DIR -type f | shuf -n1`)
  &lt;/tt&gt;
&lt;/p&gt;

&lt;p&gt;
  where DIR is the path to your picture directory.
&lt;/p&gt;

&lt;p&gt;
  OK, I can work with that.  I decided to write a script, based on the one-liner, which combined the best features of &lt;tt&gt;setbg&lt;/tt&gt; and &lt;tt&gt;background.py&lt;/tt&gt;.  What I want is a script that:
&lt;/p&gt;

&lt;ol&gt;

  &lt;li&gt;Displays a random picture as wallpaper (see the gsettings one-liner, above).&lt;/li&gt;

  &lt;li&gt;Changes pictures at random times.  Say someplace between every 10 minutes and every 20 minutes, but not always every 10 minutes and not always every 20 minutes.  &lt;tt&gt;setbg&lt;/tt&gt; did this, but &lt;tt&gt;background.py&lt;/tt&gt; did not.  If I knew more Python I would have fixed that, but I never had time.&lt;/li&gt;

  &lt;li&gt;Can be loaded as a Startup Application (now conveniently located in &lt;tt&gt;Applications/Other&lt;/tt&gt; on your Ubuntu menu).&lt;/li&gt;

  &lt;li&gt;Works on any Linux computer running GNOME 3.  Basically requires a common scripting language.  &lt;tt&gt;setbg&lt;/tt&gt; used Perl, &lt;tt&gt;background.py&lt;/tt&gt; Python.  For kicks, I decided to do this one in &lt;tt&gt;bash&lt;/tt&gt;.&lt;/li&gt;

  &lt;li&gt;Only selects pictures to display.  This was a little tricky.  I don't know of a native GNOME command that says &lt;q&gt;this is a picture&lt;/q&gt; or &lt;q&gt;that is not a picture&lt;/q&gt;.  I cheated on the previous requirement a bit and used the &lt;tt&gt;identify&lt;/tt&gt; command from the &lt;a target="_blank" href="http://www.imagemagick.org/script/index.php"&gt;ImageMagick&lt;/a&gt; package.  No defense, except that it's available in every Linux distribution I know of.&lt;/li&gt;

  &lt;li&gt;Shuts off when you log off, so that there aren't multiple copies running if you log back in.  &lt;tt&gt;background.py&lt;/tt&gt; did this.  &lt;tt&gt;setbg&lt;/tt&gt; relied on an FVWM command to explicitly kill it.  I fudge this one a bit.  Basically, my script checks every minute or so to see if its parent (usually &lt;tt&gt;gnome-session&lt;/tt&gt;) is still running.  If it's not, the script dies.&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;
  As I said, I wrote the script in &lt;tt&gt;bash&lt;/tt&gt;.  It's not really a long script, but it comes in at 173 lines because I commented everything.  You can download my &lt;a target="_blank" href="http://rcjhawk.us/software/index.html#gnome3back"&gt;Gnome 3 Random Wallpaper Switcher script&lt;/a&gt; from my &lt;a target="_blank" href="http://rcjhawk.us/software/"&gt;software page&lt;/a&gt;.  It's not licensed, since it's all based on &lt;a target="_blank" href="http://www.commandlinefu.com/commands/view/9539/change-random-wallpaper-on-gnome-3"&gt;someone else's one-liner&lt;/a&gt;.  But if you make changes to the script, or find a bug, please let me know about it.
&lt;/p&gt;

&lt;p&gt;
To run the script, put it in your path and type
&lt;/p&gt;

&lt;p&gt;
&lt;tt&gt;
gnome3_random_wallpaper T1 T2 DIR
&lt;/tt&gt;
&lt;/p&gt;

&lt;p&gt;
Where T1 and T2 are times in seconds, and you want the wallpaper to change at some time T where T1 &amp;lt; T &amp;lt; T2.  DIR is the full path to a directory that contains pictures.  If it contains some other files, that's OK, the script will skip over them.  You and put the command in your startup applications.
&lt;/p&gt;

&lt;p&gt;
I've only tried this with Ubuntu 11.10, as that's the only GNOME 3 desktop I have at the moment, but I don't see why it wouldn't work elsewhere.
&lt;/p&gt;

&lt;p&gt;
  &lt;a target="_blank" href="http://rcjhawk.us/software/index.html#gnome3back"&gt;Download the official RCJHawk Gnome 3 Random Wallpaper Switcher&lt;/a&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-9195456907560642321?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/9195456907560642321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=9195456907560642321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/9195456907560642321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/9195456907560642321'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/12/random-wallpaper-switcher-for-gnome-3.html' title='Random Wallpaper Switcher for GNOME 3'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-4433339597281321976</id><published>2011-11-25T19:07:00.001-05:00</published><updated>2011-11-26T19:18:02.973-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Annoyances'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>I For One, Welcome Our New Canonical Overlords</title><content type='html'>&lt;p&gt;I've just updated Hal to Ubuntu 11.10, &lt;q&gt;Oneiric Ocelot&lt;/q&gt;.&lt;/p&gt;

&lt;p&gt;I don't regret it &amp;mdash; quite.  It is however, going to take a long time to get it to where I want it to be, &lt;em&gt;e.g.&lt;/em&gt;, something that looks like my old Gnome 2 desktop.&lt;/p&gt;

&lt;p&gt;Why not just change to a distribution that still uses Gnome 2?  Because Gnome 2 is going away.  openSUSE 12.1 is out now, and it uses Gnome 3.  Fedora uses Gnome 3.  You see where this is going.&lt;/p&gt;

&lt;p&gt;So this post, and probably many more, will be rough notes on how to make Hal's desktop look like it did before.  I'm not going to go cursing Mark Shuttleworth. (I've learned from the last ten years of cursing Dan Snyder &amp;mdash; it just doesn't work.)  Ubuntu is, for now, a useable distribution, and I can, eventually, tweak everything to get to where I want to go.  That's the beauty of Linux.&lt;/p&gt;

&lt;p&gt;Besides, it makes for a lot more blog posts.&lt;/p&gt;

&lt;p&gt;Hal, I should point out, is just fine.  He can still do fancy LAPW electronic structure calculations faster than the Cray XMP of my youth, and he still reads my email and browses the web with aplomb.  He can still develop code with Emacs.  He just doesn't look very good right now, but we're dealing with that.&lt;/p&gt;

&lt;p&gt;Eventually I'm going to update the spouse's computer, Harlie.  When I do that I hope to do one of those step-by-step guides, which will be more coherent.  But for now, think of this as a set of Google Notebook entries.  Oh, wait, Google pulled the plug on that and is now moving all my files to Google Docs.&lt;/p&gt;

&lt;p&gt;Oh, well, let's just get on with it.&lt;/p&gt;

&lt;p&gt;Oneiric comes with the brand-spanking new &lt;q&gt;Unity&lt;/q&gt; desktop, which, as I said once before, is so like Mac OS X that it comes with a lawyer to deflect lawsuits from Cupertino.&lt;/p&gt;

&lt;p&gt;I was wrong &amp;mdash; it's worse than Mac OS.&lt;/p&gt;

&lt;p&gt;Like OS X, Oneiric comes with a dock, or maybe it's called a Launcher.  On the Mac the dock can be moved, it can change size, it can automatically hide if you don't want it on the screen, and it's quite easy to drag applications over to it.  In Oneiric the dock is fixed on the left, you can't change its size, it only hides itself when a window pushes it away.  You can drag applications onto the dock, but it seems harder, somehow, than on the Mac &amp;mdash; that's my subjective point of view, of course.&lt;/p&gt;

&lt;p&gt;So I quickly changed over to Gnome 3.2.  Well, not quickly, because Gnome isn't installed in Oneiric.  And since my 11.04 distribution used Gnome 2, the upgrade process ripped out all of that software as well.  So one must install all things Gnome.  I used to do this with Synaptic, but, guess what, Synaptic isn't installed either.&lt;/p&gt;

&lt;p&gt;So first open up a terminal window.  Can't find a terminal?  Click on the &lt;q&gt;Dash Home&lt;/q&gt; icon at the top of the dock, click &lt;q&gt;More Apps&lt;/q&gt;, click to show all of the installed apps, scroll down and find the terminal, and click it.  (First you might want to drag the icon over to the dock, for later use.)&lt;/p&gt;

&lt;p&gt;With the terminal finally open, you can install Synaptic by typing&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;sudo apt-get install synaptic&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;You could then find synaptic in the Dash Home menu, but it's easier to just say:&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;sudo /usr/sbin/synaptic&lt;/tt&gt;&lt;/p&gt;
&lt;p&gt;and go from there.&lt;/p&gt;

&lt;p&gt;Once in synaptic, search for &lt;q&gt;Gnome&lt;/q&gt; and install it.  You'll probably want to install some Gnome themes, etc.  While you're there, also install the &lt;q&gt;Gnome Tweak Tool&lt;/q&gt; as well.&lt;/p&gt;

&lt;p&gt;Then log out.  When the login screen appears, click on the little gear by your name and select &lt;q&gt;Gnome Classic (no effects)&lt;/q&gt; or whatever other version of Gnome you desire.&lt;/p&gt;

&lt;p&gt;It's OK to throw up your hands and go off to figure out Unity at this point.  Really.&lt;/p&gt;

&lt;p&gt;Because when you log in, you'll see something that looks only vaguely like your old Gnome desktop, sort of like the difference between Darrel Hammond and Bill Clinton.  There's a menu on the top, but it only says &lt;tt&gt;Applications&lt;/tt&gt; and &lt;tt&gt;Places&lt;/tt&gt;.  And the clock seems to be stuck to the middle of the upper panel, neither movable nor removable.  Also the Theme will be hideous.  You can fix that, sort of.  Click &lt;tt&gt;Applications/Other/Advanced Settings&lt;/tt&gt;, (that's the Gnome Tweak Tool), click Theme in the box that pops up, and play with the Window Theme and the GTK+ Theme until you get something you like.  One of my missions is to figure out how to edit the theme colors, to create what used to be called a Custom Theme.  No luck, so far, but if I find it I'll let you know.&lt;/p&gt;

&lt;p&gt;You should have two toolbars, one at the top and one at the bottom of your window.  You add things to these bars, change their properties, etc., as before, but instead of just right-clicking on the bar, you have to hold down the Alt key and right-click. That's easy enough.&lt;/p&gt;

&lt;p&gt;You'll also have to search for some of your options.  The old Gnome menu used to have a Preference section and an Administrative section.  Those functions are now hidden in the Applications menu, under &lt;tt&gt;Other&lt;/tt&gt; and &lt;tt&gt;System Settings&lt;/tt&gt;, apparently with neither rhyme nor reason.  Play around with that until you're comfortable in finding things.&lt;/p&gt;

&lt;p&gt;Finally, for now, go to &lt;a href="http://www.webupd8.org/2011/10/things-to-tweak-after-installing-ubuntu.html" target="_blank"&gt;Things to Tweak After Installing Oneiric Ocelot 11.10&lt;/a&gt;, and see what's useful there.  And don't forget &lt;a target="_blank" href="http://blog.sudobits.com/2011/09/08/10-things-to-do-after-installing-ubuntu-11-10/"&gt;10 things to do after installing Ubuntu 11.10&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;More as I find more stuff.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-4433339597281321976?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/4433339597281321976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=4433339597281321976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4433339597281321976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4433339597281321976'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/11/i-for-one-welcome-our-new-canonical.html' title='I For One, Welcome Our New Canonical Overlords'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-1280078668241399462</id><published>2011-09-10T11:47:00.000-04:00</published><updated>2011-09-10T11:47:46.661-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Audio'/><category scheme='http://www.blogger.com/atom/ns#' term='MP3'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Sound'/><title type='text'>Recording with PulseAudio</title><content type='html'>&lt;p&gt;
Sometimes I find that I want to record the sound coming out of Hal's speakers.  Say that my &lt;a target="_blank" href="http://hawknotes.blogspot.com/2008/03/programable-audio-recorder.html"&gt;automatic recording of &lt;em&gt;Prairie Home Companion&lt;/em&gt;&lt;/a&gt; goes south because an earthquake/hurricane/remnants of a tropical storm knocked out my power.  It would be nice to be able to go the Prairie Home web site, click on &lt;a target="_blank" href="http://prairiehome.publicradio.org/programs/2011/08/27/"&gt;the archive for the show&lt;/a&gt;, play the streaming download and record it.
&lt;/p&gt;

&lt;p&gt;
I've done this kind of thing for years, mostly without the earthquakes. Occasionally there have been problems, but it's always possible to find a solution.  After which I &lt;a target="_blank" href="http://hawknotes.blogspot.com/2008/01/capturing-sound-or-case-of-daemonic.html"&gt;write it down so that I'll remember how to fix things&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
Except sometimes my notes aren't helpful, because somebody decided it was a good idea to change things.  Take a look at the above link.  To be able to record sound, I'm suppose to open Gnome's Sound preferences, click on &lt;q&gt;Recording&lt;/q&gt;, and click on &lt;q&gt;Capture&lt;/q&gt;.  Let's look at gnome-volume-control as it's shipped with Ubuntu 11.04:
&lt;/p&gt;

&lt;img src="https://lh3.googleusercontent.com/-_i85k04wopg/Tmt-Xo3VE1I/AAAAAAAABVo/T4eT-kUp8qo/gvolume1.jpg" alt="Gnome Sound Preferences" width="450" style="display:block;margin-left:auto;margin-right:auto" /&gt;

&lt;p&gt;
Looks nothing like what was described above, does it?
&lt;/p&gt;

&lt;p&gt;
So what happened?  Beats me.  All I know is that someone changed things, and that the changes have something to do with &lt;a target="_blank" href="http://www.pulseaudio.org/"&gt;PulseAudio&lt;/a&gt;, Ubuntu's choice for sound.
&lt;/p&gt;

&lt;p&gt;
Fortunately, there is a &lt;a target="_blank" href="https://wiki.ubuntu.com/PulseAudio"&gt;Ubuntu Wiki article&lt;/a&gt; that solved things for me.  Of course, the information you want is buried way down at the bottom of the article, so let me summarize it here, down at the bottom of this article. (Yes, I admit to being long-winded.)
&lt;/p&gt;

&lt;p&gt;
First, you need to set up the PulseAudio volume control.  For reasons known only to Mark Shuttleworth, this isn't installed by default in 11.04, and goes by the perfectly obvious name of pavucontrol.  So install it first,
&lt;/p&gt;

&lt;pre&gt;sudo apt-get install pavucontrol&lt;/pre&gt;

&lt;p&gt;and open it, either by typing pavucontrol from the command line or clicking "PulseAudio Volume Control" under Applications=&amp;gt;Sound &amp;amp; Video.  You'll get something like this:&lt;/p&gt;

&lt;img src="https://lh3.googleusercontent.com/-qnl_o4XGxk4/Tmt6ubnybAI/AAAAAAAABU4/hZrCl8skGFQ/volume_control_0.jpg" alt="PulseAudio Volume Control (pavucontrol)" width="450" style="display:block;margin-left:auto;margin-right:auto" /&gt;

&lt;p&gt;
Not very helpful, is it?  The problem is that there is no application open trying to record sound.  So let's open up Gnome Sound Recorder:
&lt;/p&gt;

&lt;img src="https://lh3.googleusercontent.com/-jfZQGwcMHEo/Tmt6uUSaDSI/AAAAAAAABU0/Q5D0JxXA55M/sound_recorder_0.jpg" alt="Gnome Sound Recorder (with nothing recording)" width="450" style="display:block;margin-left:auto;margin-right:auto" /&gt;

&lt;p&gt;Start something playing, and press Record.  PulseAudio will now look something like this:&lt;/p&gt;

&lt;img src="https://lh6.googleusercontent.com/-iWoZjQYlY5M/Tmt6upKEBCI/AAAAAAAABVA/sr5DLGLqsjc/volume_control_1.jpg" alt="Pulse Audio Volume Control with Gnome Sound Recorder Operating" width="450" style="display:block;margin-left:auto;margin-right:auto" /&gt;

&lt;p&gt;
The key to making things work is the line that says:
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Sound Recorder:&lt;/strong&gt; Record Stream from: &amp;hellip;
&lt;/p&gt;

&lt;p&gt;
You may have several options, but what you want is &lt;em&gt;Monitor of Internal Audio Analog Stereo&lt;/em&gt;.  When this is selected Gnome Sound Recorder will record what's coming out of the speakers, and will look something like this:
&lt;/p&gt;

&lt;img src="https://lh3.googleusercontent.com/-w55GiBJ5b1I/Tmt6uT5-3qI/AAAAAAAABU8/sYGvWwn907E/sound_recorder_1.jpg" alt="Gnome Sound Recorder recording" width="450" style="display:block;margin-left:auto;margin-right:auto" /&gt;

&lt;p&gt;
You can see it is recording as the brown (surprise!) bar at the bottom moves in time with the music's volume.
&lt;/p&gt;

&lt;p&gt;
We'll leave the rest of this, &lt;em&gt;e.g.&lt;/em&gt;, recording directly to .ogg or .mp3, converting from .flac to .ogg, using Audacity instead of Sound Recorder, etc., as an exercise for the reader.  Just remember, to record sound with Ubuntu 11.04, you need to use Pulse Audio Volume Control to tell whichever application you are using to record to monitor the internal audio.
&lt;/p&gt;

&lt;p&gt;
Until someone decides it's time for a change.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-1280078668241399462?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/1280078668241399462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=1280078668241399462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1280078668241399462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1280078668241399462'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/09/recording-with-pulseaudio.html' title='Recording with PulseAudio'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh3.googleusercontent.com/-_i85k04wopg/Tmt-Xo3VE1I/AAAAAAAABVo/T4eT-kUp8qo/s72-c/gvolume1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-7917078454197579886</id><published>2011-08-14T14:55:00.000-04:00</published><updated>2011-08-14T14:55:18.904-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Transparent PNG (or GIF)  From the Command Line</title><content type='html'>&lt;p&gt;
Given the popularity of my post about &lt;a href="http://hawknotes.blogspot.com/2005/07/making-transparent-png-images.html"&gt;making transparent PNG images with the Gimp&lt;/a&gt;, I should share a recent discovery:  If you know the exact color you want to make transparent, you can do it from the command line.
&lt;/p&gt;

&lt;p&gt;
What you need is the &lt;a href="http://www.imagemagick.org/script/index.php"&gt;ImageMagick package&lt;/a&gt;, picture manipulation software that's available for all major Linux distributions, Windows, and Mac OS X (through &lt;a href="http://www.macports.org/"&gt;MacPorts&lt;/a&gt;).  If none of those work for you, you can also compile the source code.
&lt;/p&gt;

&lt;p&gt;
Specifically, you need the &lt;a href="http://www.imagemagick.org/script/convert.php"&gt;&lt;tt&gt;convert&lt;/tt&gt; command line tool.&lt;/a&gt;  The syntax is:
&lt;br /&gt;
&lt;tt&gt;convert -transparent color original_picture.png picture_with_transparent_background.png&lt;/tt&gt;
&lt;br /&gt;
and you can covert from png to gif, or &lt;em&gt;visa versa&lt;/em&gt;, with the same command.
&lt;/p&gt;

&lt;p&gt;
An example:  here's the good ol' pengjay, with a horrid green (#00FF00) background:
&lt;/p&gt;

&lt;img src="https://lh3.googleusercontent.com/-7hDW9X2qrJk/TkgYw9mbDpI/AAAAAAAABUY/ethBwz4xADs/" alt="Pengjay with green background" /&gt;

&lt;p&gt;Since we know the background color is #00FF00, we can pipe it through convert:&lt;/p&gt;

&lt;pre&gt;convert -transparent #00FF00 pengjay_green.png pengjay_transparent.png&lt;/pre&gt;

&lt;p&gt;and we get this:&lt;/p&gt;
&lt;img src="https://lh4.googleusercontent.com/-DGlyEfRABcY/TkgYw2PMSoI/AAAAAAAABUc/-_kr0gpdGC8/" alt="Pengjay with transparent background" /&gt;

&lt;p&gt;Note that if you don't know the color, you're better off &lt;a href="http://hawknotes.blogspot.com/2005/07/making-transparent-png-images.html"&gt;using the GIMP&lt;/a&gt;.&lt;/p&gt;

&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-7917078454197579886?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/7917078454197579886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=7917078454197579886' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7917078454197579886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7917078454197579886'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/08/transparent-png-or-gif-from-command.html' title='Transparent PNG (or GIF)  From the Command Line'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-7111391565537814860</id><published>2011-08-06T15:33:00.000-04:00</published><updated>2011-08-06T15:33:50.902-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Baseball'/><title type='text'>Can I Go Home Now?</title><content type='html'>&lt;p&gt;
We've all been there.  The home team drops seven runs in an early inning. By the seventh inning stretch they've shown no sign of an offense, and are still six runs down.  It's hot, muggy, Washington night, there are thunderstorms brewing over the horizon, and your wife just phoned that she heard on WTOP that Rt. 50 to Annapolis was closing for repair work at 10 p.m.
&lt;/p&gt;

&lt;p&gt;
Question:  If I go home now, am I likely to miss anything?  Aside from heat stroke and road rage?
&lt;/p&gt;

&lt;p&gt;
Answer:  Probably not.  If the visiting team is ahead by six runs after the top of the seventh, historically the chance that the home team will pull out a victory is 1.6%, or about 60 to 1 against.  Unless you're of the extreme optimist persuasion I'd suggest going home.
&lt;/p&gt;

&lt;p&gt;
I got to thinking about this a few years ago, when &lt;a target="_blank"
href="http://en.wikipedia.org/wiki/Bill_James"&gt;Bill
James&lt;/a&gt; published an article in &lt;a target="_blank" href="http://www.slate.com"&gt;Slate&lt;/a&gt; on
&lt;a target="_blank"
href="http://www.slate.com/id/2185975/"&gt;when a college basketball
game is really over.&lt;/a&gt;  Based on his observations, he was
able to come up with an algorithm which predicts when a team has a
safe lead, based on the lead, time left in the game, and who has the ball.
&lt;/p&gt;

&lt;p&gt;
In baseball we can do the same kind of thing, except that there are only a finite number of logical stopping points (the end of a half-inning) and leads (the largest of which was less than 30 runs).  Plus, we have a line score for just about every major league baseball game played since 1900, so we have a lot of data.  This means that we don't need no stinkin' algorithm, we can give you the history probability that any given lead was overcome.
&lt;/p&gt;

&lt;p&gt;
I didn't go all the way back to 1900. I stopped at 1948, because that was the data that was available using &lt;a target="_blank" href="http://www.retrosheet.org"&gt;Retrosheet's&lt;/a&gt; &lt;a target="_blank" href="http://www.retrosheet.org/game.htm"&gt;Play-by-Play Files&lt;/a&gt;.  With the &lt;a target="_blank" href="http://chadwick.sourceforge.net/doc/"&gt;Chadwick Software Tools&lt;/a&gt; we can go through all the games in the database and see how many times that, say, the visiting team was ahead by five runs after then end of the first, and how often the home won in that situation.  Do that for all possible combinations of leads and innings and we get the table below.  (You may have to widen your browser window to see everything.)
&lt;/p&gt;

&lt;table summary="Probability Home Team wins game given score differential at end of half-inning" border="2" id="wintable"&gt;
&lt;tr align="center"&gt;&lt;th&gt;&lt;/th&gt;&lt;th colspan="10"&gt;Visitors Lead&lt;/th&gt; &lt;th&gt;Tie&lt;/th&gt; &lt;th colspan="10"&gt;Home Lead&lt;/th&gt;&lt;/tr&gt;
&lt;tr align="center"&gt;&lt;th&gt;Inn.&lt;/th&gt;
&lt;th&gt;10+&lt;/th&gt;
&lt;th&gt; 9&lt;/th&gt;
&lt;th&gt; 8&lt;/th&gt;
&lt;th&gt; 7&lt;/th&gt;
&lt;th&gt; 6&lt;/th&gt;
&lt;th&gt; 5&lt;/th&gt;
&lt;th&gt; 4&lt;/th&gt;
&lt;th&gt; 3&lt;/th&gt;
&lt;th&gt; 2&lt;/th&gt;
&lt;th&gt; 1&lt;/th&gt;
&lt;th&gt;0&lt;/th&gt;
&lt;th&gt; 1&lt;/th&gt;
&lt;th&gt; 2&lt;/th&gt;
&lt;th&gt; 3&lt;/th&gt;
&lt;th&gt; 4&lt;/th&gt;
&lt;th&gt; 5&lt;/th&gt;
&lt;th&gt; 6&lt;/th&gt;
&lt;th&gt; 7&lt;/th&gt;
&lt;th&gt; 8&lt;/th&gt;
&lt;th&gt; 9&lt;/th&gt;
&lt;th&gt;10+&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;T  1&lt;/th&gt;
&lt;td&gt;.077&lt;/td&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.040&lt;/td&gt;
&lt;td&gt;.041&lt;/td&gt;
&lt;td&gt;.083&lt;/td&gt;
&lt;td&gt;.157&lt;/td&gt;
&lt;td&gt;.187&lt;/td&gt;
&lt;td&gt;.304&lt;/td&gt;
&lt;td&gt;.378&lt;/td&gt;
&lt;td&gt;.486&lt;/td&gt;
&lt;td&gt;.591&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;tr&gt;&lt;th&gt;B  1&lt;/th&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.063&lt;/td&gt;
&lt;td&gt;.056&lt;/td&gt;
&lt;td&gt;.055&lt;/td&gt;
&lt;td&gt;.132&lt;/td&gt;
&lt;td&gt;.148&lt;/td&gt;
&lt;td&gt;.236&lt;/td&gt;
&lt;td&gt;.313&lt;/td&gt;
&lt;td&gt;.416&lt;/td&gt;
&lt;td&gt;.533&lt;/td&gt;
&lt;td&gt;.643&lt;/td&gt;
&lt;td&gt;.740&lt;/td&gt;
&lt;td&gt;.819&lt;/td&gt;
&lt;td&gt;.893&lt;/td&gt;
&lt;td&gt;.912&lt;/td&gt;
&lt;td&gt;.933&lt;/td&gt;
&lt;td&gt;.960&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;.944&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;tr&gt;&lt;th&gt;T  2&lt;/th&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.027&lt;/td&gt;
&lt;td&gt;.067&lt;/td&gt;
&lt;td&gt;.057&lt;/td&gt;
&lt;td&gt;.080&lt;/td&gt;
&lt;td&gt;.169&lt;/td&gt;
&lt;td&gt;.180&lt;/td&gt;
&lt;td&gt;.262&lt;/td&gt;
&lt;td&gt;.345&lt;/td&gt;
&lt;td&gt;.452&lt;/td&gt;
&lt;td&gt;.580&lt;/td&gt;
&lt;td&gt;.692&lt;/td&gt;
&lt;td&gt;.781&lt;/td&gt;
&lt;td&gt;.846&lt;/td&gt;
&lt;td&gt;.925&lt;/td&gt;
&lt;td&gt;.929&lt;/td&gt;
&lt;td&gt;.969&lt;/td&gt;
&lt;td&gt;.974&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;.941&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;tr&gt;&lt;th&gt;B  2&lt;/th&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.016&lt;/td&gt;
&lt;td&gt;.043&lt;/td&gt;
&lt;td&gt;.032&lt;/td&gt;
&lt;td&gt;.055&lt;/td&gt;
&lt;td&gt;.134&lt;/td&gt;
&lt;td&gt;.127&lt;/td&gt;
&lt;td&gt;.218&lt;/td&gt;
&lt;td&gt;.295&lt;/td&gt;
&lt;td&gt;.397&lt;/td&gt;
&lt;td&gt;.532&lt;/td&gt;
&lt;td&gt;.656&lt;/td&gt;
&lt;td&gt;.756&lt;/td&gt;
&lt;td&gt;.829&lt;/td&gt;
&lt;td&gt;.895&lt;/td&gt;
&lt;td&gt;.920&lt;/td&gt;
&lt;td&gt;.956&lt;/td&gt;
&lt;td&gt;.966&lt;/td&gt;
&lt;td&gt;.957&lt;/td&gt;
&lt;td&gt;.976&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;tr&gt;&lt;th&gt;T  3&lt;/th&gt;
&lt;td&gt;.034&lt;/td&gt;
&lt;td&gt;.032&lt;/td&gt;
&lt;td&gt;.019&lt;/td&gt;
&lt;td&gt;.043&lt;/td&gt;
&lt;td&gt;.075&lt;/td&gt;
&lt;td&gt;.133&lt;/td&gt;
&lt;td&gt;.166&lt;/td&gt;
&lt;td&gt;.250&lt;/td&gt;
&lt;td&gt;.339&lt;/td&gt;
&lt;td&gt;.456&lt;/td&gt;
&lt;td&gt;.582&lt;/td&gt;
&lt;td&gt;.705&lt;/td&gt;
&lt;td&gt;.801&lt;/td&gt;
&lt;td&gt;.863&lt;/td&gt;
&lt;td&gt;.927&lt;/td&gt;
&lt;td&gt;.939&lt;/td&gt;
&lt;td&gt;.972&lt;/td&gt;
&lt;td&gt;.984&lt;/td&gt;
&lt;td&gt;.980&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;tr&gt;&lt;th&gt;B  3&lt;/th&gt;
&lt;td&gt;.015&lt;/td&gt;
&lt;td&gt;.024&lt;/td&gt;
&lt;td&gt;.016&lt;/td&gt;
&lt;td&gt;.031&lt;/td&gt;
&lt;td&gt;.047&lt;/td&gt;
&lt;td&gt;.095&lt;/td&gt;
&lt;td&gt;.122&lt;/td&gt;
&lt;td&gt;.200&lt;/td&gt;
&lt;td&gt;.278&lt;/td&gt;
&lt;td&gt;.394&lt;/td&gt;
&lt;td&gt;.526&lt;/td&gt;
&lt;td&gt;.655&lt;/td&gt;
&lt;td&gt;.766&lt;/td&gt;
&lt;td&gt;.840&lt;/td&gt;
&lt;td&gt;.909&lt;/td&gt;
&lt;td&gt;.930&lt;/td&gt;
&lt;td&gt;.958&lt;/td&gt;
&lt;td&gt;.977&lt;/td&gt;
&lt;td&gt;.986&lt;/td&gt;
&lt;td&gt;.989&lt;/td&gt;
&lt;td&gt;.990&lt;/td&gt;
&lt;tr&gt;&lt;th&gt;T  4&lt;/th&gt;
&lt;td&gt;.012&lt;/td&gt;
&lt;td&gt;.021&lt;/td&gt;
&lt;td&gt;.028&lt;/td&gt;
&lt;td&gt;.033&lt;/td&gt;
&lt;td&gt;.071&lt;/td&gt;
&lt;td&gt;.096&lt;/td&gt;
&lt;td&gt;.145&lt;/td&gt;
&lt;td&gt;.225&lt;/td&gt;
&lt;td&gt;.314&lt;/td&gt;
&lt;td&gt;.446&lt;/td&gt;
&lt;td&gt;.589&lt;/td&gt;
&lt;td&gt;.719&lt;/td&gt;
&lt;td&gt;.820&lt;/td&gt;
&lt;td&gt;.886&lt;/td&gt;
&lt;td&gt;.933&lt;/td&gt;
&lt;td&gt;.963&lt;/td&gt;
&lt;td&gt;.971&lt;/td&gt;
&lt;td&gt;.988&lt;/td&gt;
&lt;td&gt;.990&lt;/td&gt;
&lt;td&gt;.994&lt;/td&gt;
&lt;td&gt;.988&lt;/td&gt;
&lt;tr&gt;&lt;th&gt;B  4&lt;/th&gt;
&lt;td&gt;.004&lt;/td&gt;
&lt;td&gt;.011&lt;/td&gt;
&lt;td&gt;.022&lt;/td&gt;
&lt;td&gt;.028&lt;/td&gt;
&lt;td&gt;.039&lt;/td&gt;
&lt;td&gt;.062&lt;/td&gt;
&lt;td&gt;.094&lt;/td&gt;
&lt;td&gt;.164&lt;/td&gt;
&lt;td&gt;.252&lt;/td&gt;
&lt;td&gt;.369&lt;/td&gt;
&lt;td&gt;.526&lt;/td&gt;
&lt;td&gt;.677&lt;/td&gt;
&lt;td&gt;.788&lt;/td&gt;
&lt;td&gt;.866&lt;/td&gt;
&lt;td&gt;.917&lt;/td&gt;
&lt;td&gt;.949&lt;/td&gt;
&lt;td&gt;.969&lt;/td&gt;
&lt;td&gt;.986&lt;/td&gt;
&lt;td&gt;.990&lt;/td&gt;
&lt;td&gt;.992&lt;/td&gt;
&lt;td&gt;.996&lt;/td&gt;
&lt;tr&gt;&lt;th&gt;T  5&lt;/th&gt;
&lt;td&gt;.004&lt;/td&gt;
&lt;td&gt;.009&lt;/td&gt;
&lt;td&gt;.020&lt;/td&gt;
&lt;td&gt;.031&lt;/td&gt;
&lt;td&gt;.045&lt;/td&gt;
&lt;td&gt;.078&lt;/td&gt;
&lt;td&gt;.114&lt;/td&gt;
&lt;td&gt;.199&lt;/td&gt;
&lt;td&gt;.290&lt;/td&gt;
&lt;td&gt;.422&lt;/td&gt;
&lt;td&gt;.591&lt;/td&gt;
&lt;td&gt;.741&lt;/td&gt;
&lt;td&gt;.843&lt;/td&gt;
&lt;td&gt;.904&lt;/td&gt;
&lt;td&gt;.945&lt;/td&gt;
&lt;td&gt;.967&lt;/td&gt;
&lt;td&gt;.982&lt;/td&gt;
&lt;td&gt;.995&lt;/td&gt;
&lt;td&gt;.995&lt;/td&gt;
&lt;td&gt;.991&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;tr&gt;&lt;th&gt;B  5&lt;/th&gt;
&lt;td&gt;.002&lt;/td&gt;
&lt;td&gt;.005&lt;/td&gt;
&lt;td&gt;.009&lt;/td&gt;
&lt;td&gt;.019&lt;/td&gt;
&lt;td&gt;.026&lt;/td&gt;
&lt;td&gt;.049&lt;/td&gt;
&lt;td&gt;.077&lt;/td&gt;
&lt;td&gt;.139&lt;/td&gt;
&lt;td&gt;.224&lt;/td&gt;
&lt;td&gt;.344&lt;/td&gt;
&lt;td&gt;.523&lt;/td&gt;
&lt;td&gt;.692&lt;/td&gt;
&lt;td&gt;.808&lt;/td&gt;
&lt;td&gt;.887&lt;/td&gt;
&lt;td&gt;.936&lt;/td&gt;
&lt;td&gt;.962&lt;/td&gt;
&lt;td&gt;.981&lt;/td&gt;
&lt;td&gt;.989&lt;/td&gt;
&lt;td&gt;.995&lt;/td&gt;
&lt;td&gt;.993&lt;/td&gt;
&lt;td&gt;.999&lt;/td&gt;
&lt;tr&gt;&lt;th&gt;T  6&lt;/th&gt;
&lt;td&gt;.001&lt;/td&gt;
&lt;td&gt;.005&lt;/td&gt;
&lt;td&gt;.011&lt;/td&gt;
&lt;td&gt;.019&lt;/td&gt;
&lt;td&gt;.031&lt;/td&gt;
&lt;td&gt;.055&lt;/td&gt;
&lt;td&gt;.091&lt;/td&gt;
&lt;td&gt;.161&lt;/td&gt;
&lt;td&gt;.268&lt;/td&gt;
&lt;td&gt;.406&lt;/td&gt;
&lt;td&gt;.600&lt;/td&gt;
&lt;td&gt;.771&lt;/td&gt;
&lt;td&gt;.873&lt;/td&gt;
&lt;td&gt;.931&lt;/td&gt;
&lt;td&gt;.964&lt;/td&gt;
&lt;td&gt;.975&lt;/td&gt;
&lt;td&gt;.994&lt;/td&gt;
&lt;td&gt;.995&lt;/td&gt;
&lt;td&gt;.999&lt;/td&gt;
&lt;td&gt;.998&lt;/td&gt;
&lt;td&gt;.998&lt;/td&gt;
&lt;tr&gt;&lt;th&gt;B  6&lt;/th&gt;
&lt;td&gt;.001&lt;/td&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.005&lt;/td&gt;
&lt;td&gt;.009&lt;/td&gt;
&lt;td&gt;.014&lt;/td&gt;
&lt;td&gt;.030&lt;/td&gt;
&lt;td&gt;.049&lt;/td&gt;
&lt;td&gt;.097&lt;/td&gt;
&lt;td&gt;.185&lt;/td&gt;
&lt;td&gt;.305&lt;/td&gt;
&lt;td&gt;.520&lt;/td&gt;
&lt;td&gt;.725&lt;/td&gt;
&lt;td&gt;.848&lt;/td&gt;
&lt;td&gt;.917&lt;/td&gt;
&lt;td&gt;.956&lt;/td&gt;
&lt;td&gt;.972&lt;/td&gt;
&lt;td&gt;.989&lt;/td&gt;
&lt;td&gt;.994&lt;/td&gt;
&lt;td&gt;.998&lt;/td&gt;
&lt;td&gt;.999&lt;/td&gt;
&lt;td&gt;.998&lt;/td&gt;
&lt;tr&gt;&lt;th&gt;T  7&lt;/th&gt;
&lt;td&gt;.001&lt;/td&gt;
&lt;td&gt;.001&lt;/td&gt;
&lt;td&gt;.004&lt;/td&gt;
&lt;td&gt;.010&lt;/td&gt;
&lt;td&gt;.016&lt;/td&gt;
&lt;td&gt;.038&lt;/td&gt;
&lt;td&gt;.061&lt;/td&gt;
&lt;td&gt;.118&lt;/td&gt;
&lt;td&gt;.217&lt;/td&gt;
&lt;td&gt;.357&lt;/td&gt;
&lt;td&gt;.610&lt;/td&gt;
&lt;td&gt;.819&lt;/td&gt;
&lt;td&gt;.912&lt;/td&gt;
&lt;td&gt;.958&lt;/td&gt;
&lt;td&gt;.977&lt;/td&gt;
&lt;td&gt;.991&lt;/td&gt;
&lt;td&gt;.995&lt;/td&gt;
&lt;td&gt;.998&lt;/td&gt;
&lt;td&gt;.999&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;.999&lt;/td&gt;
&lt;tr&gt;&lt;th&gt;B  7&lt;/th&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.002&lt;/td&gt;
&lt;td&gt;.002&lt;/td&gt;
&lt;td&gt;.002&lt;/td&gt;
&lt;td&gt;.007&lt;/td&gt;
&lt;td&gt;.015&lt;/td&gt;
&lt;td&gt;.033&lt;/td&gt;
&lt;td&gt;.059&lt;/td&gt;
&lt;td&gt;.130&lt;/td&gt;
&lt;td&gt;.245&lt;/td&gt;
&lt;td&gt;.523&lt;/td&gt;
&lt;td&gt;.772&lt;/td&gt;
&lt;td&gt;.894&lt;/td&gt;
&lt;td&gt;.949&lt;/td&gt;
&lt;td&gt;.973&lt;/td&gt;
&lt;td&gt;.990&lt;/td&gt;
&lt;td&gt;.995&lt;/td&gt;
&lt;td&gt;.998&lt;/td&gt;
&lt;td&gt;.999&lt;/td&gt;
&lt;td&gt;.999&lt;/td&gt;
&lt;td&gt;.999&lt;/td&gt;
&lt;tr&gt;&lt;th&gt;T  8&lt;/th&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.001&lt;/td&gt;
&lt;td&gt;.003&lt;/td&gt;
&lt;td&gt;.004&lt;/td&gt;
&lt;td&gt;.007&lt;/td&gt;
&lt;td&gt;.017&lt;/td&gt;
&lt;td&gt;.041&lt;/td&gt;
&lt;td&gt;.074&lt;/td&gt;
&lt;td&gt;.153&lt;/td&gt;
&lt;td&gt;.296&lt;/td&gt;
&lt;td&gt;.634&lt;/td&gt;
&lt;td&gt;.890&lt;/td&gt;
&lt;td&gt;.956&lt;/td&gt;
&lt;td&gt;.985&lt;/td&gt;
&lt;td&gt;.992&lt;/td&gt;
&lt;td&gt;.997&lt;/td&gt;
&lt;td&gt;.999&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;.999&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;tr&gt;&lt;th&gt;B  8&lt;/th&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.001&lt;/td&gt;
&lt;td&gt;.002&lt;/td&gt;
&lt;td&gt;.006&lt;/td&gt;
&lt;td&gt;.013&lt;/td&gt;
&lt;td&gt;.027&lt;/td&gt;
&lt;td&gt;.067&lt;/td&gt;
&lt;td&gt;.150&lt;/td&gt;
&lt;td&gt;.519&lt;/td&gt;
&lt;td&gt;.865&lt;/td&gt;
&lt;td&gt;.944&lt;/td&gt;
&lt;td&gt;.981&lt;/td&gt;
&lt;td&gt;.990&lt;/td&gt;
&lt;td&gt;.997&lt;/td&gt;
&lt;td&gt;.999&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;.999&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;tr&gt;&lt;th&gt;T  9+&lt;/th&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.002&lt;/td&gt;
&lt;td&gt;.003&lt;/td&gt;
&lt;td&gt;.007&lt;/td&gt;
&lt;td&gt;.014&lt;/td&gt;
&lt;td&gt;.033&lt;/td&gt;
&lt;td&gt;.071&lt;/td&gt;
&lt;td&gt;.157&lt;/td&gt;
&lt;td&gt;.615&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;tr&gt;&lt;th&gt;B  9+&lt;/th&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.000&lt;/td&gt;
&lt;td&gt;.524&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;1.00&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/table&gt;

&lt;p&gt;
So what is all of this?
&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;
The left hand column represents the situation at the end of either the top (visitor's) half of an inning, or the bottom (home team's) half, so &lt;strong&gt;T 7&lt;/strong&gt; describes the situation just before the Cubs let that day's designated karaoke singer ruin &lt;em&gt;Take Me Out to the Ballgame&lt;/em&gt;.  Since all innings after the ninth are played under the same conditions &amp;mdash; the team ahead after the bottom of the inning wins, and if it's tied we try, try again &amp;mdash; I combined all the data from those games into the labels &lt;strong&gt;T 9+&lt;/strong&gt; and &lt;strong&gt;B 9+&lt;/strong&gt;.
&lt;/li&gt;

&lt;li&gt;
The other columns represent the lead by either the home team (on the right) or the visiting team (left) at the end of the half-inning.  Ties are right in the middle.
&lt;/li&gt;

&lt;li&gt;
The decimal fraction in each block indicates the home team's chance of winning in that situation.  So, for example, if you've just sat through an agonizing top of the third, when Yankees have scored a bunch of runs and lead by 7, we look at row &lt;strong&gt;T 3&lt;/strong&gt;, column &lt;strong&gt;Visitors 7&lt;/strong&gt;, and see that the Orioles have a 0.043 (4.3%) chance of winning the game &amp;mdash; no, that's not true.  Over the course of the last 60 years, 4.3% of all major league home teams down by 7 going in to the bottom of the third have come back to win.  These are the Orioles, however, so they have about a 0.001% chance of coming back.
&lt;/li&gt;

&lt;li&gt;
I put all leads of ten or more runs in the &lt;strong&gt;10 +&lt;/strong&gt; categories.  The software I wrote to write the table is easy to modify to list bigger leads, if you like..  I stopped at 10 because that will more or less fit on a standard blog page.
&lt;/li&gt;

&lt;li&gt;
The blank spaces are impossible situations.  The home team can't score before it gets up to bat, so the right-hand side of the &lt;strong&gt;T 1&lt;/strong&gt; row can never be reached.  And the home team doesn't need the bottom of the ninth or later inning unless it was tied or behind after the top of the inning.  In that case they can never win the game by more than four runs.
&lt;/li&gt;

&lt;li&gt;
Indeed, I debated about putting in the &lt;strong&gt;B 9+&lt;/strong&gt; column, since it's a trivial case, but I wanted to highlight the fact that the home team still has a big advantage if the score is tied in late or extra innings. &lt;a target="_blank" href="http://hawknotes.blogspot.com/2011/07/home-team-wins-most-ties-in-baseball.html"&gt;I've discussed this elsewhere&lt;/a&gt;.
&lt;/li&gt;

&lt;li&gt;
Finally, I haven't told you about the statistical significance of these results, &lt;em&gt;i.e&lt;/em&gt;, the standard deviation or the sample size.  Suffice it to say that there are more than enough events here for leads of nine runs or less.  When we get to the 10+ category, especially in the early innings, there just aren't that many games.  If you want to see the raw numbers (home wins/visitor wins/total games) drop me a line and I'll send them to you.
&lt;/li&gt;

&lt;li&gt;
Really last finally:  I made a slight modification to the Chadwick source code to make it easier to parse the runs scored per inning.  I also wrote a Perl script and some Fortran code to parse the output from Chadwick and write the HTML for the table above.  If you're interested in the codes, drop me a line.  If there's enough interest I'll make all the code available on my website.
&lt;/li&gt;

&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-7111391565537814860?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/7111391565537814860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=7111391565537814860' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7111391565537814860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7111391565537814860'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/08/can-i-go-home-now.html' title='Can I Go Home Now?'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-6085535333044129235</id><published>2011-07-31T13:19:00.000-04:00</published><updated>2011-07-31T13:19:24.231-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><title type='text'>Almost Spot On</title><content type='html'>&lt;p&gt;
I'm currently listening to &lt;em&gt;&lt;a target="_blank" href="http://www.amazon.com/Essential-Kansas/dp/B0042OZDQ6"&gt;The Essential Kansas&lt;/a&gt;&lt;/em&gt;, the &lt;a target="_blank" href="http://www.kansasband.com/2010/index.php"&gt;70's boy band &lt;em&gt;(I jest)&lt;/em&gt; from Topeka.&lt;/a&gt;  For some reason, I've never bought a &lt;em&gt;Kansas&lt;/em&gt; album, and I don't plan to in the near future.  Yet I'm listening completely legally, and not paying a dime.
&lt;/p&gt;

&lt;p&gt;
That's because &lt;a target="_blank" href="http://www.spotify.com"&gt;Spotify&lt;/a&gt; has finally made it from Europe to the U.S.  I read about it in a &lt;a target="_blank" href="http://www.nytimes.com/2011/07/28/technology/personaltech/spotify-unshackles-online-music-david-pogue.html"&gt;New York Times article&lt;/a&gt; &lt;a target="_blank" href="http://www.csmonitor.com/Innovation/Horizons/2011/0328/New-York-Times-paywall-How-it-works-and-what-it-means"&gt;(I just access the free stuff there, too)&lt;/a&gt; the other day and decided to try it out.  As far as I can tell, the deal is:
&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;
With a &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Gratis_versus_libre"&gt;free-as-in-beer&lt;/a&gt; account, you can stream any song in Spotify's vast library (and it's vast, if somewhat uneven).
&lt;/li&gt;

&lt;li&gt;
For now, you can listen to an unlimited amount of music, only interrupted by two minutes of commercials any hour.
&lt;/li&gt;

&lt;li&gt;
After six months, your free account is limited to ten hours of music per month.  I read that in the NYT article, good luck in finding it in &lt;a target="_blank" href="http://www.spotify.com/us/get-spotify/free/"&gt;Spotify's account description.&lt;/a&gt;
&lt;/li&gt;

&lt;li&gt;
Of course, &lt;a target="_blank" href="http://www.spotify.com/us/get-spotify/overview/"&gt;there are other plans&lt;/a&gt; that let you stream unlimited amounts of music, without ads, for a price.
&lt;/li&gt;

&lt;li&gt;
You have to use &lt;a target="_blank" href="http://www.spotify.com/us/download/other/"&gt;Spotify's music player.&lt;/a&gt;
&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;
That last part was almost a deal breaker.  (Can you break a free deal?) There is no generally available Linux client.  There is &lt;a target="_blank" href="http://www.spotify.com/us/download/previews/"&gt;an alpha version of a Linux player&lt;/a&gt;, but it doesn't seem to have been worked on for a year or so, and it can only be used with the paid accounts, because &lt;q&gt;we haven't found a reliable way to display ads yet.&lt;/q&gt;
&lt;/p&gt;

&lt;p&gt;
However, the Windows client runs under Wine, and &lt;a target="_blank" href="http://www.spotify.com/us/help/faq/wine/"&gt;Spotify gives detailed instructions on how to get it started.&lt;/a&gt;  You can't play your local MP3 files through Spotify (not sure I'd want to), but the stuff that comes over the web sounds good &amp;mdash; according to the NYT article, it's in 160-kbps Ogg Vorbis format.
&lt;/p&gt;

&lt;p&gt;All right, how is it?  Funny you should ask.&lt;/p&gt;

&lt;p&gt;
The sound quality is good enough for my speakers-in-the-monitor setup.  Beyond that I couldn't say.  Audio purists will probably find some fault, but the real purists are listening to vinyl anyway. The playlist is extensive, but not complete.  OK, I didn't expect the Beatles here, but &lt;em&gt;the Eagles&lt;/em&gt; are mostly missing.  You do get what seems to be complete coverage of the Rolling Stones, Simon &amp;amp; Garfunkel, Creedence Clearwater Revival, Bob Marley, Peter, Paul &amp;amp; Mary, the Mommas and the Papas, the aforementioned Kansas, Roger Miller, Glen Campbell, Johnny Cash, a limited amount of Dylan, and even &lt;a target="_blank" href="http://www.youtube.com/watch?v=DVHUA4dZI0o"&gt;Hugh Laurie reading &lt;em&gt;Three Men in a Boat&lt;/em&gt;&lt;/a&gt;.  They have what seems to be the complete &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Jimmie_Rodgers_(country_singer)"&gt;Jimmie Rodgers the Elder&lt;/a&gt;, but I can't find anybody's version of &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Jimmie_Rodgers_(pop_singer)"&gt;Jimmie Rodgers the Younger's&lt;/a&gt; classic ballad &lt;a target="_blank" href="http://www.youtube.com/watch?v=vCqi6D-KgME"&gt;&lt;em&gt;It's Over&lt;/em&gt;&lt;/a&gt;.  This would frustrate me if I was actually paying for this stuff, but since it's all free I really can't complain.  It seems as though &lt;a target="_blank" href="https://www.spotify.com/us/about/music-catalogue-info/"&gt;they're working on it.&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Oh yes, one more thing:  if you want to sign up for the free account, you need an invite.  Apparently paid-for account holders can give you an invite, or you can go to &lt;a target="_blank" href="http://www.spotify.com"&gt;Spotify.com&lt;/a&gt; and ask for one.  It took about thirty seconds for me to get an email after I asked, but YMMV.
&lt;/p&gt;

&lt;p&gt;
All in all, it seems to be a pretty good service, at least for now.  If you put a map of the continental U.S. on a dartboard so that Kansas is the bull's eye, Spotify's dart hits at about Oklahoma City.  Add the Eagles, more Dylan, and the Beatles (&lt;em&gt;Ha!&lt;/em&gt;), and they can hit &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Holyrood,_Kansas"&gt;Holyrood&lt;/a&gt;.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-6085535333044129235?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/6085535333044129235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=6085535333044129235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6085535333044129235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6085535333044129235'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/07/almost-spot-on.html' title='Almost Spot On'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-2828578612122434785</id><published>2011-07-17T19:00:00.000-04:00</published><updated>2011-07-17T19:00:15.661-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='You Really Need to Read This'/><title type='text'>When He's Right, He's Right</title><content type='html'>&lt;p&gt;Penguin Pete.  Opinionated and passionate about it.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://penguinpetes.com/b2evo/index.php?title=hey_where_are_all_the_clueless_newbs_who"&gt;&lt;em&gt;And boy, when he's right, he's right.&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-2828578612122434785?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/2828578612122434785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=2828578612122434785' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2828578612122434785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2828578612122434785'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/07/when-hes-right-hes-right.html' title='When He&apos;s Right, He&apos;s Right'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-2084053702984629303</id><published>2011-07-11T22:05:00.000-04:00</published><updated>2011-07-11T22:05:14.454-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Baseball'/><title type='text'>Baseball After the All Star Break</title><content type='html'>&lt;p&gt;
Some years ago, I did a predictive study on &lt;a target="_blank" href="http://hawknotes.blogspot.com/2005/07/yankees-lose-the-theyankees-lose.html"&gt;how Major League Baseball teams would rank at the end of the season&lt;/a&gt;, based on their records at the All Star Break and the &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Pythagorean_expectation"&gt;Pythagorean projection&lt;/a&gt; of future wins, based on the runs scored and allowed by each team.
&lt;/p&gt;

&lt;p&gt;
It didn't work all that well.  In particular, I predicted that Boston would win the AL East pennant, and Washington would be the NL Wild Card.  &lt;a target="_blank" href="http://mlb.mlb.com/mlb/standings/?ymd=20051002&amp;amp;tcid=mm_mlb_standings#20051002"&gt;That sorta didn't happen.&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Nevertheless, I'll try again.  Here's the table, based on the  &lt;a target="_blank" href="http://mlb.mlb.com/mlb/standings/index.jsp?tcid=mm_mlb_standings#20110710"&gt;MLB standings at the All Star Break&lt;/a&gt;.  The method is the same as last time, &lt;a target="_blank" href="http://hawknotes.blogspot.com/2005/07/yankees-lose-the-theyankees-lose.html"&gt;so you can read all about it there.&lt;/a&gt;
&lt;/p&gt;

&lt;table border="2" summary="Pythagorian Projections of final MLB standings based on records and runs scored for/against at the All Star Break, July 12, 2011"&gt;
&lt;tr&gt;
&lt;td colspan="16" valign="bottom"  align="left"&gt;&lt;strong&gt;American League&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;&lt;strong&gt;East&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;W&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;L&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PCT&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;Place&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GB&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;RS&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;RA&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;Pyth&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PW&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;TW&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;TL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PCT&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="background:yellow"&gt;
&lt;td align="left"&gt;New York Yankees&lt;/td&gt;
&lt;td align="right"&gt;53&lt;/td&gt;
&lt;td align="right"&gt;35&lt;/td&gt;
&lt;td align="right"&gt;0.602&lt;/td&gt;
&lt;td align="center"&gt;2&lt;/td&gt;
&lt;td align="right"&gt;1&lt;/td&gt;
&lt;td align="right"&gt;455&lt;/td&gt;
&lt;td align="right"&gt;334&lt;/td&gt;
&lt;td align="right"&gt;0.637&lt;/td&gt;
&lt;td align="right"&gt;74&lt;/td&gt;
&lt;td align="right"&gt;47.14&lt;/td&gt;
&lt;td align="right"&gt;26.86&lt;/td&gt;
&lt;td align="right"&gt;100.14&lt;/td&gt;
&lt;td align="right"&gt;61.86&lt;/td&gt;
&lt;td align="right"&gt;0.618&lt;/td&gt;
&lt;td align="right"&gt;0.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="background:yellow"&gt;
&lt;td align="left"&gt;Boston&lt;/td&gt;
&lt;td align="right"&gt;55&lt;/td&gt;
&lt;td align="right"&gt;35&lt;/td&gt;
&lt;td align="right"&gt;0.611&lt;/td&gt;
&lt;td align="center"&gt;1&lt;/td&gt;
&lt;td align="right"&gt;0&lt;/td&gt;
&lt;td align="right"&gt;482&lt;/td&gt;
&lt;td align="right"&gt;371&lt;/td&gt;
&lt;td align="right"&gt;0.617&lt;/td&gt;
&lt;td align="right"&gt;72&lt;/td&gt;
&lt;td align="right"&gt;44.42&lt;/td&gt;
&lt;td align="right"&gt;27.58&lt;/td&gt;
&lt;td align="right"&gt;99.42&lt;/td&gt;
&lt;td align="right"&gt;62.58&lt;/td&gt;
&lt;td align="right"&gt;0.614&lt;/td&gt;
&lt;td align="right"&gt;0.73&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Tampa Bay&lt;/td&gt;
&lt;td align="right"&gt;49&lt;/td&gt;
&lt;td align="right"&gt;41&lt;/td&gt;
&lt;td align="right"&gt;0.544&lt;/td&gt;
&lt;td align="center"&gt;3&lt;/td&gt;
&lt;td align="right"&gt;6&lt;/td&gt;
&lt;td align="right"&gt;380&lt;/td&gt;
&lt;td align="right"&gt;343&lt;/td&gt;
&lt;td align="right"&gt;0.546&lt;/td&gt;
&lt;td align="right"&gt;72&lt;/td&gt;
&lt;td align="right"&gt;39.35&lt;/td&gt;
&lt;td align="right"&gt;32.65&lt;/td&gt;
&lt;td align="right"&gt;88.35&lt;/td&gt;
&lt;td align="right"&gt;73.65&lt;/td&gt;
&lt;td align="right"&gt;0.545&lt;/td&gt;
&lt;td align="right"&gt;11.80&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Toronto&lt;/td&gt;
&lt;td align="right"&gt;45&lt;/td&gt;
&lt;td align="right"&gt;47&lt;/td&gt;
&lt;td align="right"&gt;0.489&lt;/td&gt;
&lt;td align="center"&gt;4&lt;/td&gt;
&lt;td align="right"&gt;11&lt;/td&gt;
&lt;td align="right"&gt;426&lt;/td&gt;
&lt;td align="right"&gt;416&lt;/td&gt;
&lt;td align="right"&gt;0.511&lt;/td&gt;
&lt;td align="right"&gt;70&lt;/td&gt;
&lt;td align="right"&gt;35.76&lt;/td&gt;
&lt;td align="right"&gt;34.24&lt;/td&gt;
&lt;td align="right"&gt;80.76&lt;/td&gt;
&lt;td align="right"&gt;81.24&lt;/td&gt;
&lt;td align="right"&gt;0.498&lt;/td&gt;
&lt;td align="right"&gt;19.39&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Baltimore&lt;/td&gt;
&lt;td align="right"&gt;36&lt;/td&gt;
&lt;td align="right"&gt;52&lt;/td&gt;
&lt;td align="right"&gt;0.409&lt;/td&gt;
&lt;td align="center"&gt;5&lt;/td&gt;
&lt;td align="right"&gt;18&lt;/td&gt;
&lt;td align="right"&gt;355&lt;/td&gt;
&lt;td align="right"&gt;454&lt;/td&gt;
&lt;td align="right"&gt;0.390&lt;/td&gt;
&lt;td align="right"&gt;74&lt;/td&gt;
&lt;td align="right"&gt;28.85&lt;/td&gt;
&lt;td align="right"&gt;45.15&lt;/td&gt;
&lt;td align="right"&gt;64.85&lt;/td&gt;
&lt;td align="right"&gt;97.15&lt;/td&gt;
&lt;td align="right"&gt;0.400&lt;/td&gt;
&lt;td align="right"&gt;35.29&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;&lt;strong&gt;Central&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;W&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;L&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PCT&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;Place&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GB&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;RS&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;RA&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;Pyth&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PW&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;TW&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;TL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PCT&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="background:yellow"&gt;
&lt;td align="left"&gt;Cleveland&lt;/td&gt;
&lt;td align="right"&gt;47&lt;/td&gt;
&lt;td align="right"&gt;42&lt;/td&gt;
&lt;td align="right"&gt;0.528&lt;/td&gt;
&lt;td align="center"&gt;2&lt;/td&gt;
&lt;td align="right"&gt;0.5&lt;/td&gt;
&lt;td align="right"&gt;386&lt;/td&gt;
&lt;td align="right"&gt;382&lt;/td&gt;
&lt;td align="right"&gt;0.505&lt;/td&gt;
&lt;td align="right"&gt;73&lt;/td&gt;
&lt;td align="right"&gt;36.85&lt;/td&gt;
&lt;td align="right"&gt;36.15&lt;/td&gt;
&lt;td align="right"&gt;83.85&lt;/td&gt;
&lt;td align="right"&gt;78.15&lt;/td&gt;
&lt;td align="right"&gt;0.518&lt;/td&gt;
&lt;td align="right"&gt;0.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="background:yellow"&gt;
&lt;td align="left"&gt;Detroit&lt;/td&gt;
&lt;td align="right"&gt;49&lt;/td&gt;
&lt;td align="right"&gt;43&lt;/td&gt;
&lt;td align="right"&gt;0.533&lt;/td&gt;
&lt;td align="center"&gt;1&lt;/td&gt;
&lt;td align="right"&gt;0&lt;/td&gt;
&lt;td align="right"&gt;413&lt;/td&gt;
&lt;td align="right"&gt;421&lt;/td&gt;
&lt;td align="right"&gt;0.491&lt;/td&gt;
&lt;td align="right"&gt;70&lt;/td&gt;
&lt;td align="right"&gt;34.39&lt;/td&gt;
&lt;td align="right"&gt;35.61&lt;/td&gt;
&lt;td align="right"&gt;83.39&lt;/td&gt;
&lt;td align="right"&gt;78.61&lt;/td&gt;
&lt;td align="right"&gt;0.515&lt;/td&gt;
&lt;td align="right"&gt;0.46&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Chicago White Sox&lt;/td&gt;
&lt;td align="right"&gt;44&lt;/td&gt;
&lt;td align="right"&gt;48&lt;/td&gt;
&lt;td align="right"&gt;0.478&lt;/td&gt;
&lt;td align="center"&gt;3&lt;/td&gt;
&lt;td align="right"&gt;5&lt;/td&gt;
&lt;td align="right"&gt;366&lt;/td&gt;
&lt;td align="right"&gt;383&lt;/td&gt;
&lt;td align="right"&gt;0.479&lt;/td&gt;
&lt;td align="right"&gt;70&lt;/td&gt;
&lt;td align="right"&gt;33.55&lt;/td&gt;
&lt;td align="right"&gt;36.45&lt;/td&gt;
&lt;td align="right"&gt;77.55&lt;/td&gt;
&lt;td align="right"&gt;84.45&lt;/td&gt;
&lt;td align="right"&gt;0.479&lt;/td&gt;
&lt;td align="right"&gt;6.29&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Minnesota&lt;/td&gt;
&lt;td align="right"&gt;41&lt;/td&gt;
&lt;td align="right"&gt;48&lt;/td&gt;
&lt;td align="right"&gt;0.461&lt;/td&gt;
&lt;td align="center"&gt;4&lt;/td&gt;
&lt;td align="right"&gt;6.5&lt;/td&gt;
&lt;td align="right"&gt;347&lt;/td&gt;
&lt;td align="right"&gt;414&lt;/td&gt;
&lt;td align="right"&gt;0.420&lt;/td&gt;
&lt;td align="right"&gt;73&lt;/td&gt;
&lt;td align="right"&gt;30.69&lt;/td&gt;
&lt;td align="right"&gt;42.31&lt;/td&gt;
&lt;td align="right"&gt;71.69&lt;/td&gt;
&lt;td align="right"&gt;90.31&lt;/td&gt;
&lt;td align="right"&gt;0.443&lt;/td&gt;
&lt;td align="right"&gt;12.16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Kansas City&lt;/td&gt;
&lt;td align="right"&gt;37&lt;/td&gt;
&lt;td align="right"&gt;54&lt;/td&gt;
&lt;td align="right"&gt;0.407&lt;/td&gt;
&lt;td align="center"&gt;5&lt;/td&gt;
&lt;td align="right"&gt;11.5&lt;/td&gt;
&lt;td align="right"&gt;402&lt;/td&gt;
&lt;td align="right"&gt;449&lt;/td&gt;
&lt;td align="right"&gt;0.450&lt;/td&gt;
&lt;td align="right"&gt;71&lt;/td&gt;
&lt;td align="right"&gt;31.94&lt;/td&gt;
&lt;td align="right"&gt;39.06&lt;/td&gt;
&lt;td align="right"&gt;68.94&lt;/td&gt;
&lt;td align="right"&gt;93.06&lt;/td&gt;
&lt;td align="right"&gt;0.426&lt;/td&gt;
&lt;td align="right"&gt;14.91&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;&lt;strong&gt;West&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;W&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;L&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PCT&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;Place&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GB&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;RS&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;RA&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;Pyth&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PW&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;TW&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;TL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PCT&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Texas&lt;/td&gt;
&lt;td align="right"&gt;51&lt;/td&gt;
&lt;td align="right"&gt;41&lt;/td&gt;
&lt;td align="right"&gt;0.554&lt;/td&gt;
&lt;td align="center"&gt;1&lt;/td&gt;
&lt;td align="right"&gt;0&lt;/td&gt;
&lt;td align="right"&gt;457&lt;/td&gt;
&lt;td align="right"&gt;404&lt;/td&gt;
&lt;td align="right"&gt;0.556&lt;/td&gt;
&lt;td align="right"&gt;70&lt;/td&gt;
&lt;td align="right"&gt;38.91&lt;/td&gt;
&lt;td align="right"&gt;31.09&lt;/td&gt;
&lt;td align="right"&gt;89.91&lt;/td&gt;
&lt;td align="right"&gt;72.09&lt;/td&gt;
&lt;td align="right"&gt;0.555&lt;/td&gt;
&lt;td align="right"&gt;0.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Los Angeles Angels&lt;/td&gt;
&lt;td align="right"&gt;50&lt;/td&gt;
&lt;td align="right"&gt;42&lt;/td&gt;
&lt;td align="right"&gt;0.543&lt;/td&gt;
&lt;td align="center"&gt;2&lt;/td&gt;
&lt;td align="right"&gt;1&lt;/td&gt;
&lt;td align="right"&gt;355&lt;/td&gt;
&lt;td align="right"&gt;330&lt;/td&gt;
&lt;td align="right"&gt;0.533&lt;/td&gt;
&lt;td align="right"&gt;70&lt;/td&gt;
&lt;td align="right"&gt;37.32&lt;/td&gt;
&lt;td align="right"&gt;32.68&lt;/td&gt;
&lt;td align="right"&gt;87.32&lt;/td&gt;
&lt;td align="right"&gt;74.68&lt;/td&gt;
&lt;td align="right"&gt;0.539&lt;/td&gt;
&lt;td align="right"&gt;2.59&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Seattle&lt;/td&gt;
&lt;td align="right"&gt;43&lt;/td&gt;
&lt;td align="right"&gt;48&lt;/td&gt;
&lt;td align="right"&gt;0.473&lt;/td&gt;
&lt;td align="center"&gt;3&lt;/td&gt;
&lt;td align="right"&gt;7.5&lt;/td&gt;
&lt;td align="right"&gt;301&lt;/td&gt;
&lt;td align="right"&gt;319&lt;/td&gt;
&lt;td align="right"&gt;0.474&lt;/td&gt;
&lt;td align="right"&gt;71&lt;/td&gt;
&lt;td align="right"&gt;33.63&lt;/td&gt;
&lt;td align="right"&gt;37.37&lt;/td&gt;
&lt;td align="right"&gt;76.63&lt;/td&gt;
&lt;td align="right"&gt;85.37&lt;/td&gt;
&lt;td align="right"&gt;0.473&lt;/td&gt;
&lt;td align="right"&gt;13.28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Oakland&lt;/td&gt;
&lt;td align="right"&gt;39&lt;/td&gt;
&lt;td align="right"&gt;53&lt;/td&gt;
&lt;td align="right"&gt;0.424&lt;/td&gt;
&lt;td align="center"&gt;4&lt;/td&gt;
&lt;td align="right"&gt;12&lt;/td&gt;
&lt;td align="right"&gt;315&lt;/td&gt;
&lt;td align="right"&gt;339&lt;/td&gt;
&lt;td align="right"&gt;0.467&lt;/td&gt;
&lt;td align="right"&gt;70&lt;/td&gt;
&lt;td align="right"&gt;32.66&lt;/td&gt;
&lt;td align="right"&gt;37.34&lt;/td&gt;
&lt;td align="right"&gt;71.66&lt;/td&gt;
&lt;td align="right"&gt;90.34&lt;/td&gt;
&lt;td align="right"&gt;0.442&lt;/td&gt;
&lt;td align="right"&gt;18.24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left" colspan="16"&gt;&lt;strong&gt;National League&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;&lt;strong&gt;East&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;W&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;L&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PCT&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;Place&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GB&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;RS&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;RA&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;Pyth&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PW&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;TW&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;TL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PCT&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Philadelphia&lt;/td&gt;
&lt;td align="right"&gt;57&lt;/td&gt;
&lt;td align="right"&gt;34&lt;/td&gt;
&lt;td align="right"&gt;0.626&lt;/td&gt;
&lt;td align="center"&gt;1&lt;/td&gt;
&lt;td align="right"&gt;0&lt;/td&gt;
&lt;td align="right"&gt;384&lt;/td&gt;
&lt;td align="right"&gt;295&lt;/td&gt;
&lt;td align="right"&gt;0.618&lt;/td&gt;
&lt;td align="right"&gt;71&lt;/td&gt;
&lt;td align="right"&gt;43.86&lt;/td&gt;
&lt;td align="right"&gt;27.14&lt;/td&gt;
&lt;td align="right"&gt;100.86&lt;/td&gt;
&lt;td align="right"&gt;61.14&lt;/td&gt;
&lt;td align="right"&gt;0.623&lt;/td&gt;
&lt;td align="right"&gt;0.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Atlanta&lt;/td&gt;
&lt;td align="right"&gt;54&lt;/td&gt;
&lt;td align="right"&gt;38&lt;/td&gt;
&lt;td align="right"&gt;0.587&lt;/td&gt;
&lt;td align="center"&gt;2&lt;/td&gt;
&lt;td align="right"&gt;3.5&lt;/td&gt;
&lt;td align="right"&gt;365&lt;/td&gt;
&lt;td align="right"&gt;312&lt;/td&gt;
&lt;td align="right"&gt;0.571&lt;/td&gt;
&lt;td align="right"&gt;70&lt;/td&gt;
&lt;td align="right"&gt;39.96&lt;/td&gt;
&lt;td align="right"&gt;30.04&lt;/td&gt;
&lt;td align="right"&gt;93.96&lt;/td&gt;
&lt;td align="right"&gt;68.04&lt;/td&gt;
&lt;td align="right"&gt;0.580&lt;/td&gt;
&lt;td align="right"&gt;6.89&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;New York Mets&lt;/td&gt;
&lt;td align="right"&gt;46&lt;/td&gt;
&lt;td align="right"&gt;45&lt;/td&gt;
&lt;td align="right"&gt;0.505&lt;/td&gt;
&lt;td align="center"&gt;3&lt;/td&gt;
&lt;td align="right"&gt;11&lt;/td&gt;
&lt;td align="right"&gt;399&lt;/td&gt;
&lt;td align="right"&gt;388&lt;/td&gt;
&lt;td align="right"&gt;0.513&lt;/td&gt;
&lt;td align="right"&gt;71&lt;/td&gt;
&lt;td align="right"&gt;36.40&lt;/td&gt;
&lt;td align="right"&gt;34.60&lt;/td&gt;
&lt;td align="right"&gt;82.40&lt;/td&gt;
&lt;td align="right"&gt;79.60&lt;/td&gt;
&lt;td align="right"&gt;0.509&lt;/td&gt;
&lt;td align="right"&gt;18.46&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Washington&lt;/td&gt;
&lt;td align="right"&gt;46&lt;/td&gt;
&lt;td align="right"&gt;46&lt;/td&gt;
&lt;td align="right"&gt;0.500&lt;/td&gt;
&lt;td align="center"&gt;4&lt;/td&gt;
&lt;td align="right"&gt;11.5&lt;/td&gt;
&lt;td align="right"&gt;352&lt;/td&gt;
&lt;td align="right"&gt;354&lt;/td&gt;
&lt;td align="right"&gt;0.497&lt;/td&gt;
&lt;td align="right"&gt;70&lt;/td&gt;
&lt;td align="right"&gt;34.82&lt;/td&gt;
&lt;td align="right"&gt;35.18&lt;/td&gt;
&lt;td align="right"&gt;80.82&lt;/td&gt;
&lt;td align="right"&gt;81.18&lt;/td&gt;
&lt;td align="right"&gt;0.499&lt;/td&gt;
&lt;td align="right"&gt;20.04&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Florida&lt;/td&gt;
&lt;td align="right"&gt;43&lt;/td&gt;
&lt;td align="right"&gt;48&lt;/td&gt;
&lt;td align="right"&gt;0.473&lt;/td&gt;
&lt;td align="center"&gt;5&lt;/td&gt;
&lt;td align="right"&gt;14&lt;/td&gt;
&lt;td align="right"&gt;352&lt;/td&gt;
&lt;td align="right"&gt;396&lt;/td&gt;
&lt;td align="right"&gt;0.447&lt;/td&gt;
&lt;td align="right"&gt;71&lt;/td&gt;
&lt;td align="right"&gt;31.71&lt;/td&gt;
&lt;td align="right"&gt;39.29&lt;/td&gt;
&lt;td align="right"&gt;74.71&lt;/td&gt;
&lt;td align="right"&gt;87.29&lt;/td&gt;
&lt;td align="right"&gt;0.461&lt;/td&gt;
&lt;td align="right"&gt;26.15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;&lt;strong&gt;Central&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;W&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;L&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PCT&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;Place&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GB&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;RS&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;RA&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;Pyth&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PW&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;TW&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;TL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PCT&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="background:yellow"&gt;
&lt;td align="left"&gt;St. Louis&lt;/td&gt;
&lt;td align="right"&gt;49&lt;/td&gt;
&lt;td align="right"&gt;43&lt;/td&gt;
&lt;td align="right"&gt;0.533&lt;/td&gt;
&lt;td align="center"&gt;2&lt;/td&gt;
&lt;td align="right"&gt;0&lt;/td&gt;
&lt;td align="right"&gt;433&lt;/td&gt;
&lt;td align="right"&gt;407&lt;/td&gt;
&lt;td align="right"&gt;0.528&lt;/td&gt;
&lt;td align="right"&gt;70&lt;/td&gt;
&lt;td align="right"&gt;36.97&lt;/td&gt;
&lt;td align="right"&gt;33.03&lt;/td&gt;
&lt;td align="right"&gt;85.97&lt;/td&gt;
&lt;td align="right"&gt;76.03&lt;/td&gt;
&lt;td align="right"&gt;0.531&lt;/td&gt;
&lt;td align="right"&gt;0.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="background:yellow"&gt;
&lt;td align="left"&gt;Milwaukee&lt;/td&gt;
&lt;td align="right"&gt;49&lt;/td&gt;
&lt;td align="right"&gt;43&lt;/td&gt;
&lt;td align="right"&gt;0.533&lt;/td&gt;
&lt;td align="center"&gt;1&lt;/td&gt;
&lt;td align="right"&gt;0&lt;/td&gt;
&lt;td align="right"&gt;405&lt;/td&gt;
&lt;td align="right"&gt;406&lt;/td&gt;
&lt;td align="right"&gt;0.499&lt;/td&gt;
&lt;td align="right"&gt;70&lt;/td&gt;
&lt;td align="right"&gt;34.92&lt;/td&gt;
&lt;td align="right"&gt;35.08&lt;/td&gt;
&lt;td align="right"&gt;83.92&lt;/td&gt;
&lt;td align="right"&gt;78.08&lt;/td&gt;
&lt;td align="right"&gt;0.518&lt;/td&gt;
&lt;td align="right"&gt;2.05&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Pittsburgh&lt;/td&gt;
&lt;td align="right"&gt;47&lt;/td&gt;
&lt;td align="right"&gt;43&lt;/td&gt;
&lt;td align="right"&gt;0.522&lt;/td&gt;
&lt;td align="center"&gt;3&lt;/td&gt;
&lt;td align="right"&gt;1&lt;/td&gt;
&lt;td align="right"&gt;354&lt;/td&gt;
&lt;td align="right"&gt;346&lt;/td&gt;
&lt;td align="right"&gt;0.510&lt;/td&gt;
&lt;td align="right"&gt;72&lt;/td&gt;
&lt;td align="right"&gt;36.75&lt;/td&gt;
&lt;td align="right"&gt;35.25&lt;/td&gt;
&lt;td align="right"&gt;83.75&lt;/td&gt;
&lt;td align="right"&gt;78.25&lt;/td&gt;
&lt;td align="right"&gt;0.517&lt;/td&gt;
&lt;td align="right"&gt;2.22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Cincinnati&lt;/td&gt;
&lt;td align="right"&gt;45&lt;/td&gt;
&lt;td align="right"&gt;47&lt;/td&gt;
&lt;td align="right"&gt;0.489&lt;/td&gt;
&lt;td align="center"&gt;4&lt;/td&gt;
&lt;td align="right"&gt;4&lt;/td&gt;
&lt;td align="right"&gt;437&lt;/td&gt;
&lt;td align="right"&gt;408&lt;/td&gt;
&lt;td align="right"&gt;0.531&lt;/td&gt;
&lt;td align="right"&gt;70&lt;/td&gt;
&lt;td align="right"&gt;37.18&lt;/td&gt;
&lt;td align="right"&gt;32.82&lt;/td&gt;
&lt;td align="right"&gt;82.18&lt;/td&gt;
&lt;td align="right"&gt;79.82&lt;/td&gt;
&lt;td align="right"&gt;0.507&lt;/td&gt;
&lt;td align="right"&gt;3.79&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Chicago Cubs&lt;/td&gt;
&lt;td align="right"&gt;37&lt;/td&gt;
&lt;td align="right"&gt;55&lt;/td&gt;
&lt;td align="right"&gt;0.402&lt;/td&gt;
&lt;td align="center"&gt;5&lt;/td&gt;
&lt;td align="right"&gt;12&lt;/td&gt;
&lt;td align="right"&gt;375&lt;/td&gt;
&lt;td align="right"&gt;459&lt;/td&gt;
&lt;td align="right"&gt;0.409&lt;/td&gt;
&lt;td align="right"&gt;70&lt;/td&gt;
&lt;td align="right"&gt;28.63&lt;/td&gt;
&lt;td align="right"&gt;41.37&lt;/td&gt;
&lt;td align="right"&gt;65.63&lt;/td&gt;
&lt;td align="right"&gt;96.37&lt;/td&gt;
&lt;td align="right"&gt;0.405&lt;/td&gt;
&lt;td align="right"&gt;20.34&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Houston&lt;/td&gt;
&lt;td align="right"&gt;30&lt;/td&gt;
&lt;td align="right"&gt;62&lt;/td&gt;
&lt;td align="right"&gt;0.326&lt;/td&gt;
&lt;td align="center"&gt;6&lt;/td&gt;
&lt;td align="right"&gt;19&lt;/td&gt;
&lt;td align="right"&gt;358&lt;/td&gt;
&lt;td align="right"&gt;464&lt;/td&gt;
&lt;td align="right"&gt;0.384&lt;/td&gt;
&lt;td align="right"&gt;70&lt;/td&gt;
&lt;td align="right"&gt;26.89&lt;/td&gt;
&lt;td align="right"&gt;43.11&lt;/td&gt;
&lt;td align="right"&gt;56.89&lt;/td&gt;
&lt;td align="right"&gt;105.11&lt;/td&gt;
&lt;td align="right"&gt;0.351&lt;/td&gt;
&lt;td align="right"&gt;29.08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;&lt;strong&gt;West&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;W&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;L&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PCT&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;Place&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GB&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;RS&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;&amp;nbsp;RA&amp;nbsp;&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;Pyth&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PW&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;TW&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;TL&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;PCT&lt;/strong&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;strong&gt;GB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;San Francisco&lt;/td&gt;
&lt;td align="right"&gt;52&lt;/td&gt;
&lt;td align="right"&gt;40&lt;/td&gt;
&lt;td align="right"&gt;0.565&lt;/td&gt;
&lt;td align="center"&gt;1&lt;/td&gt;
&lt;td align="right"&gt;0&lt;/td&gt;
&lt;td align="right"&gt;332&lt;/td&gt;
&lt;td align="right"&gt;322&lt;/td&gt;
&lt;td align="right"&gt;0.514&lt;/td&gt;
&lt;td align="right"&gt;70&lt;/td&gt;
&lt;td align="right"&gt;35.97&lt;/td&gt;
&lt;td align="right"&gt;34.03&lt;/td&gt;
&lt;td align="right"&gt;87.97&lt;/td&gt;
&lt;td align="right"&gt;74.03&lt;/td&gt;
&lt;td align="right"&gt;0.543&lt;/td&gt;
&lt;td align="right"&gt;0.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Arizona&lt;/td&gt;
&lt;td align="right"&gt;49&lt;/td&gt;
&lt;td align="right"&gt;43&lt;/td&gt;
&lt;td align="right"&gt;0.533&lt;/td&gt;
&lt;td align="center"&gt;2&lt;/td&gt;
&lt;td align="right"&gt;3&lt;/td&gt;
&lt;td align="right"&gt;416&lt;/td&gt;
&lt;td align="right"&gt;407&lt;/td&gt;
&lt;td align="right"&gt;0.510&lt;/td&gt;
&lt;td align="right"&gt;70&lt;/td&gt;
&lt;td align="right"&gt;35.70&lt;/td&gt;
&lt;td align="right"&gt;34.30&lt;/td&gt;
&lt;td align="right"&gt;84.70&lt;/td&gt;
&lt;td align="right"&gt;77.30&lt;/td&gt;
&lt;td align="right"&gt;0.523&lt;/td&gt;
&lt;td align="right"&gt;3.28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Colorado&lt;/td&gt;
&lt;td align="right"&gt;43&lt;/td&gt;
&lt;td align="right"&gt;48&lt;/td&gt;
&lt;td align="right"&gt;0.473&lt;/td&gt;
&lt;td align="center"&gt;3&lt;/td&gt;
&lt;td align="right"&gt;8.5&lt;/td&gt;
&lt;td align="right"&gt;395&lt;/td&gt;
&lt;td align="right"&gt;407&lt;/td&gt;
&lt;td align="right"&gt;0.486&lt;/td&gt;
&lt;td align="right"&gt;71&lt;/td&gt;
&lt;td align="right"&gt;34.53&lt;/td&gt;
&lt;td align="right"&gt;36.47&lt;/td&gt;
&lt;td align="right"&gt;77.53&lt;/td&gt;
&lt;td align="right"&gt;84.47&lt;/td&gt;
&lt;td align="right"&gt;0.479&lt;/td&gt;
&lt;td align="right"&gt;10.44&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Los Angeles Dodgers&lt;/td&gt;
&lt;td align="right"&gt;41&lt;/td&gt;
&lt;td align="right"&gt;51&lt;/td&gt;
&lt;td align="right"&gt;0.446&lt;/td&gt;
&lt;td align="center"&gt;4&lt;/td&gt;
&lt;td align="right"&gt;11&lt;/td&gt;
&lt;td align="right"&gt;340&lt;/td&gt;
&lt;td align="right"&gt;373&lt;/td&gt;
&lt;td align="right"&gt;0.458&lt;/td&gt;
&lt;td align="right"&gt;70&lt;/td&gt;
&lt;td align="right"&gt;32.06&lt;/td&gt;
&lt;td align="right"&gt;37.94&lt;/td&gt;
&lt;td align="right"&gt;73.06&lt;/td&gt;
&lt;td align="right"&gt;88.94&lt;/td&gt;
&lt;td align="right"&gt;0.451&lt;/td&gt;
&lt;td align="right"&gt;14.92&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;San Diego&lt;/td&gt;
&lt;td align="right"&gt;40&lt;/td&gt;
&lt;td align="right"&gt;52&lt;/td&gt;
&lt;td align="right"&gt;0.435&lt;/td&gt;
&lt;td align="center"&gt;5&lt;/td&gt;
&lt;td align="right"&gt;12&lt;/td&gt;
&lt;td align="right"&gt;304&lt;/td&gt;
&lt;td align="right"&gt;338&lt;/td&gt;
&lt;td align="right"&gt;0.452&lt;/td&gt;
&lt;td align="right"&gt;70&lt;/td&gt;
&lt;td align="right"&gt;31.63&lt;/td&gt;
&lt;td align="right"&gt;38.37&lt;/td&gt;
&lt;td align="right"&gt;71.63&lt;/td&gt;
&lt;td align="right"&gt;90.37&lt;/td&gt;
&lt;td align="right"&gt;0.442&lt;/td&gt;
&lt;td align="right"&gt;16.34&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
&lt;em&gt;Abbreviations:&lt;/em&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;W:&lt;/strong&gt; Current team wins&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;L:&lt;/strong&gt; Current team loses&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PCT:&lt;/strong&gt; Winning rate&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Place:&lt;/strong&gt; Current place in standings&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GB:&lt;/strong&gt; &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Games_behind"&gt;Games Behind&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RS:&lt;/strong&gt; Total Runs scored by team&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RA:&lt;/strong&gt; Total Runs allowed by team&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pyth:&lt;/strong&gt; &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Pythagorean_expectation"&gt;Pythagorean expected&lt;/a&gt; win rate.  Following MLB, I used an exponent of 1.82 rather than the original James value of 2.  It doesn't make a lot of difference, and didn't change the order.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GL:&lt;/strong&gt; Games left in season for the team&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PW:&lt;/strong&gt; Projected wins in remainder of season, assuming they win at the Pythagorean rate&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PL:&lt;/strong&gt; Projected Pythagorean loses&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TW:&lt;/strong&gt; Total wins, current + projected Pythagorean&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TL:&lt;/strong&gt; Total loses&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PCT:&lt;/strong&gt; Projected final winning ratio&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GB:&lt;/strong&gt; Projected final games behind&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
OK, not a lot of changes going on.  Despite an anemic offense, San Francisco's fantastic pitching will keep them in first in the NL West.  Philadelphia will win the NL East going away, even though Atlanta wins the NL Wild Card.  Texas will hang on in the AL West.  
&lt;/p&gt;

&lt;p&gt;
There are a few predicted swaps, highlighted in yellow:  St. Louis will pull ahead of Milwaukee.  And Cleveland will (&lt;em&gt;yawn&lt;/em&gt;) edge out Detroit.  Surprisingly, the only changes occur at the top, which probably says something about competitive balance in MLB.
&lt;/p&gt;

&lt;p&gt;
And, finally, Red Sox will be the AL Wild Card.  Which means &amp;hellip;
&lt;/p&gt;

&lt;p&gt;Frak&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-2084053702984629303?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/2084053702984629303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=2084053702984629303' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2084053702984629303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2084053702984629303'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/07/baseball-after-all-star-break.html' title='Baseball After the All Star Break'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-6170042521852850325</id><published>2011-07-02T21:37:00.000-04:00</published><updated>2011-07-02T21:37:33.835-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Baseball'/><title type='text'>The Home Team Wins Most Ties (In Baseball, Anyway)</title><content type='html'>&lt;p&gt;
I've been playing around with &lt;a target="_blank" href="http://www.retrosheet.org"&gt;Retrosheet&lt;/a&gt; to see how often a baseball team wins a game if it's, say, five runs ahead at the end of the fourth inning.  I plan to get that up sometime during this long weekend, but while doing the study I found another interesting result.
&lt;/p&gt;

&lt;p&gt;
Retrosheet's &lt;a target="_blank" href="http://www.retrosheet.org/game.htm"&gt;Play-by-Play files&lt;/a&gt;, along with the &lt;tt&gt;cwevent&lt;/tt&gt; program from  &lt;a target="_blank" href="http://chadwick.sourceforge.net/doc/index.html"&gt;Chadwick&lt;/a&gt;, let you extract all sorts of information from almost every MLB game played between 1950-2010.  From that data I extracted every game that was tied at the end of a half-inning, and figured out who eventually won.  Then I counted up the number of times the home team won for each half-inning.  The results are shown below:
&lt;/p&gt;

&lt;p align="center"&gt;
&lt;a target="_blank" href="https://lh5.googleusercontent.com/-tYBFELsD9aU/Tg-jXcCMUeI/AAAAAAAABSM/9c1lwrSqkLM/"&gt;
&lt;img src="https://lh5.googleusercontent.com/-tYBFELsD9aU/Tg-jXcCMUeI/AAAAAAAABSM/9c1lwrSqkLM/s720/tie_games.png" width="500" alt="Probability Home Team wins baseball game if it is tied at the end of a half-inning" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;&lt;em&gt;Click on graph to see a larger figure&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The black diamond represents the situation at the start of the game, the red diamonds the situation where the game is tied in the middle of the inning, and the blue diamonds when it's tied at the end of an inning.  We'll get to the error bars in a minute.&lt;/p&gt;

&lt;p&gt;
So what is all of this?  Well, at the beginning of a game the score is obviously tied, so that should be part of the study.  So if we look at all 115,748 games in the database, we find:
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Home Team won 62,418 games,&lt;/li&gt;
&lt;li&gt;the Visiting Team won 53,192 games, and &lt;/li&gt;
&lt;li&gt;there were 138 games that were tied when the game was called.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
If we throw out the ties, then the Home Team won 53.990% of the games that went to a decision.  That's the black diamond at the far left of the graph.  The 54% win rate is baseball's version of &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Home_advantage"&gt;Home Field Advantage&lt;/a&gt;, and it has been very constant:
&lt;/p&gt;

&lt;p align="center"&gt;
&lt;a target="_blank" href="https://lh3.googleusercontent.com/-Tgn1egU5Q5Q/Tg-vvrBxSZI/AAAAAAAABSQ/ysyADUMnsgY/"&gt;
&lt;img src="https://lh3.googleusercontent.com/-Tgn1egU5Q5Q/Tg-vvrBxSZI/AAAAAAAABSQ/ysyADUMnsgY/s512/advantage.png" width="500" alt="Probability Home Team wins baseball game in a given year" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p align="center"&gt;&lt;em&gt;Click on graph to see a larger figure&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
I performed the same calculation for all the games which were tied at the end of a half inning.  For example, if the game is tied at the end of the fifth, the home team has a 52.0% chance of eventually winning the game.  Tied after the top of the sixth?  It's up to 60%. &lt;/p&gt;

&lt;p&gt;So what do the error bars represent?  Basically they give you an idea of the number of games in the sample.  Suppose that in a given game the home team wins with probability &lt;tt&gt;p&lt;/tt&gt;.  Then in an &lt;tt&gt;N&lt;/tt&gt; game sample the probability that the home team wins &lt;tt&gt;n&lt;/tt&gt; games follows the &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Binomial_distribution"&gt;binomial distribution&lt;/a&gt;, &lt;em&gt;e.g.&lt;/em&gt;
&lt;/p&gt;

&lt;pre&gt;
             N!        n      N-n
P(N,n) = -----------  p  (1-p)
          n! (N-n)!
&lt;/pre&gt;

&lt;p&gt;
If we look at a large number of &lt;tt&gt;N&lt;/tt&gt;-game samples, then we'll find that on average the home team will win &lt;tt&gt;N p&lt;/tt&gt; games, which makes sense.  The standard deviation will be &lt;tt&gt;[N p (1-p)]&lt;sup&gt;&amp;frac12;&lt;/sup&gt;&lt;/tt&gt;.  Since the graph normalized everything by the number of games played, the error bars are the standard deviation divided by &lt;tt&gt;N&lt;/tt&gt;, or &lt;tt&gt;[p (1-p)/N]&lt;sup&gt;&amp;frac12;&lt;/sup&gt;&lt;/tt&gt;.  Since most values of &lt;tt&gt;p&lt;/tt&gt; are between 0.5 and 0.7, wider error bars basically tell you that fewer games have gotten to that point.  And when the error bars get really wide, as they do after the fourteenth inning or so, it says there aren't enough statistics available to give you meaningful information.
&lt;/p&gt;

&lt;p&gt;
What does it all mean, you ask?  Well, first it says that the home team advantage is real.  Why there is a home field advantage is another question, and there is not enough information here to answer that question.
&lt;/p&gt;

&lt;p&gt;
Then there's the observation that the home team has a larger advantage if the game is tied in the middle of the inning than it does if the game is tied at the end of an inning.  That's just common sense.  In the middle of the fourth inning, the visiting team has five more innings at the plate.  The home team has six &amp;mdash; five for sure, and one more if they need it.  This isn't the &lt;q&gt;home team bats last&lt;/q&gt; advantage, it's the &lt;q&gt;home team gets one more at-bat than the visitors&lt;/q&gt; advantage, not the same thing.
&lt;/p&gt;

&lt;p&gt;
Next, we see that if the game is tied at the end of an inning, the home team's advantage decreases slightly, so that at the end of eight innings it's only 51.94%.  Presumably that's because the home team does have some advantage in being at home, but as the game progresses they have less and less chance to use that advantage.  After the fifth inning the home team's advantage oscillates around 52%, down from the 54% advantage they had at the start of the game.
&lt;/p&gt;

&lt;p&gt;
Indeed, the fact that the blue dots go down from innings 1-4 suggests that the &lt;q&gt;home team bats last&lt;/q&gt; advantage isn't worth a whole lot.  If it was, you'd expect the advantage to be greater in tie-game situations as the game wears on, because that &lt;q&gt;last at-bat&lt;/q&gt; becomes a larger and larger proportion of what's left of the game.
&lt;/p&gt;

&lt;p&gt;
Finally, there is that dip in the red diamonds between the first and second inning.  If the game is tied going into the bottom of the first, meaning that the visiting team didn't score, then the home team will win 59.15% of the time, with a standard deviation of 0.17%.  If the game is tied going into the bottom of the second, however, then the home team only has a 58.01% chance of winning, with &amp;sigma; = 0.22%.  That's a five-&amp;sigma; change in the probability, which I would think is statistically significant.  The win rate is pretty much constant in the third inning ( 58.16% &amp;plusmn; 0.27%) and then starts going up, as you'd expect, since the home team has proportionately more at-bats than the visitors at the middle of an inning.
&lt;/p&gt;

&lt;p&gt;
Why is this so?  I have no idea.  All I can say is that if your a visiting baseball team, it's better to be tied with the home team in the middle of the second inning than it is to be tied before the home team comes to bat.  And you better be ahead by the middle of the third.
&lt;/p&gt;

&lt;p&gt;&lt;em&gt;
The information used here was obtained free of charge from and is copyrighted by Retrosheet.  Interested parties may contact Retrosheet at &lt;a target="_blank" href="http://www.retrosheet.org"&gt;&lt;tt&gt;www.retrosheet.org&lt;/tt&gt;&lt;/a&gt;.
&lt;/em&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-6170042521852850325?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/6170042521852850325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=6170042521852850325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6170042521852850325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6170042521852850325'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/07/home-team-wins-most-ties-in-baseball.html' title='The Home Team Wins Most Ties (In Baseball, Anyway)'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh5.googleusercontent.com/-tYBFELsD9aU/Tg-jXcCMUeI/AAAAAAAABSM/9c1lwrSqkLM/s72-c/tie_games.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-2923895709744824228</id><published>2011-06-25T12:34:00.000-04:00</published><updated>2011-06-25T12:34:11.404-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Science'/><category scheme='http://www.blogger.com/atom/ns#' term='Space'/><category scheme='http://www.blogger.com/atom/ns#' term='The End of All Things'/><title type='text'>Near Miss</title><content type='html'>&lt;p&gt;You may have heard that &lt;a target="_blank" href="http://www.huffingtonpost.com/2011/06/24/asteroid-2011-md-to-zip-p_n_884223.html"&gt;Asteroid 2011 MD&lt;/a&gt; will pass by Monday morning.  And by &lt;q&gt;pass by&lt;/q&gt;, we mean &lt;q&gt;within 8,000 miles.&lt;/q&gt;&lt;/p&gt;

&lt;p&gt;That's pretty close.  How close?  Well, have a look at these animations:&lt;/p&gt;

&lt;p&gt;&lt;a target="_blank" href="http://news.discovery.com/space/visualizing-asteroid-2011-md-zip-past-earth-animation-110624.html"&gt;Asteroid 2011 MD Flyby&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-2923895709744824228?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/2923895709744824228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=2923895709744824228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2923895709744824228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2923895709744824228'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/06/near-miss.html' title='Near Miss'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-7638012915183459670</id><published>2011-06-12T22:26:00.001-04:00</published><updated>2011-06-12T22:26:52.949-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Baseball'/><category scheme='http://www.blogger.com/atom/ns#' term='mySQL'/><title type='text'>An Update on the Average Major League Hitter</title><content type='html'>&lt;p&gt;
This is the &lt;a href="http://hawknotes.blogspot.com/2011/06/take-me-out-to-squall-game.html"&gt;promised update&lt;/a&gt; to my table of &lt;a href="http://hawknotes.blogspot.com/2009/10/pretty-good-average.html"&gt;pretty good averages&lt;/a&gt; for &lt;q&gt;everyday&lt;/q&gt; baseball players at the major league level.  As before, I consider an everyday ball player to be one who was eligible for a league batting title in a given year, which from 1996-2010 means that he made at least 502 plate appearances in a given year.
&lt;/p&gt;

&lt;p&gt;
The raw data for this study was taken from the mySQL database thoughtfully provided by the folks at &lt;a target="_blank" href="http://www.baseball-databank.org/"&gt;Baseball-DataBank.org&lt;/a&gt;.  As outlined in &lt;a href="http://hawknotes.blogspot.com/2011/06/take-me-out-to-squall-game.html"&gt;yesterday's post&lt;/a&gt;, I used &lt;tt&gt;mySQL&lt;/tt&gt; to pull out the appropriate data, this time using the command:
&lt;/p&gt;

&lt;pre&gt;
select b.yearID as Year, m.nameLast as Last, m.nameFirst as First,
b.teamID as TEAM, b.G, b.AB+b.BB+b.HBP+b.SH+b.SF as PA, b.AB, b.R, b.H, b.2B,
b.3B, b.HR, b.RBI, b.SB, b.CS, b.BB, b.SO, b.IBB, b.HBP, b.SH, b.SF, b.GIDP
from Batting b inner join Master m
where b.playerID=m.playerID and b.yearID&gt;1995 and
b.AB+b.BB+b.HBP+b.SH+b.SF &gt; 502
order by b.yearID ASC, m.nameLast, m.nameFirst;
&lt;/pre&gt;

&lt;p&gt;
to get a list of all players from 1996 on who were eligible for a batting title.  I then used &lt;tt&gt;mysql-query-browser&lt;/tt&gt; to export all of the data into a spreadsheet, and there computed all of the averages and standard deviations.  All the calculations are the same as in my &lt;a href="http://hawknotes.blogspot.com/2009/10/pretty-good-average.html"&gt;original post&lt;/a&gt;, except:
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I added the batting data for the 2009 and 2010 seasons.&lt;/li&gt;
&lt;li&gt;My original post fraked up David Smyth's &lt;a target="_blank" href="http://www.tangotiger.net/wiki/index.php?title=Base_Runs"&gt;&lt;em&gt;Base Runs&lt;/em&gt; statistic&lt;/a&gt;.  I used the right formula (the second one on the page), but miscalculated total bases by forgetting that doubles, triples, and home runs are already counted as hits.  So the numbers found in my earlier study are too high.
&lt;/li&gt;
&lt;li&gt;
I dropped &lt;a target="_blank" href="http://en.wikipedia.org/wiki/1995_Major_League_Baseball_season"&gt;1995&lt;/a&gt; from the study this time because only 144 games were scheduled for each team, so the batting eligibility criterion was &lt;tt&gt;144 &amp;times; 3.1 = 447&lt;/tt&gt; plate appearances.  Just lazy.
&lt;/li&gt;
&lt;/ul&gt;

&lt;a name='more'&gt;&lt;/a&gt;

&lt;p&gt;
Here's how it works.  For, say, Batting Average in 1996, I computed the batting average for each of the 137 players eligible for batting awards that year.  I then computed the average of that average, which is the entry in the &lt;strong&gt;BA&lt;/strong&gt; column for 1996.  I also computed the standard deviation of those averages for the year, and put that number in the &lt;tt&gt;&amp;sigma;&lt;/tt&gt; column.  I did this for each year and each statistic listed.  Finally, I found the average of all the batting averages over the 2168 player-years, and put that under &lt;strong&gt;All Years&lt;/strong&gt;, along with its standard deviation.  So, to use another example, we can see that from 1996-2010 the average everyday major league batter hit someplace between 11 and 31 home runs in a year.  Obviously there were some notable (and ignoble) players who hit more than that, and many who hit less.  But in general, if you can hit 20 home runs in a year off big-league pitching, this table tells you that you've probably got a job.  I hear it pays pretty well.
&lt;/p&gt;

&lt;p&gt;
The first table lists the &lt;q&gt;traditional&lt;/q&gt; stats:  &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Batting_average"&gt;Batting Average&lt;/a&gt;, &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Home_run"&gt;Home Runs&lt;/a&gt;, and &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Run_batted_in"&gt;Runs Batted In (RBI)&lt;/a&gt;.
&lt;/p&gt;

&lt;table summary="MLB Batting Statistics 1996-2010, averaged over all players eligible for the batting title" align="center" border="2"&gt;
&lt;tr align="center"&gt;
&lt;td&gt;&lt;strong&gt;Year&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Players &lt;br /&gt; Eligible&lt;/strong&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;strong&gt;Games&lt;/strong&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;strong&gt;Batting Average&lt;/strong&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;strong&gt;Home Runs&lt;/strong&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;strong&gt;Runs Batted In&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="center"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Avg.&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&amp;sigma;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;BA&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&amp;sigma;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;HR&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&amp;sigma;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;RBI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&amp;sigma;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;1996&lt;/td&gt;
&lt;td&gt;137&lt;/td&gt;
&lt;td&gt;147.336&lt;/td&gt;
&lt;td&gt;10.285&lt;/td&gt;
&lt;td&gt;0.288&lt;/td&gt;
&lt;td&gt;0.027&lt;/td&gt;
&lt;td&gt;21.358&lt;/td&gt;
&lt;td&gt;12.814&lt;/td&gt;
&lt;td&gt;84.993&lt;/td&gt;
&lt;td&gt;29.394&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;1997&lt;/td&gt;
&lt;td&gt;133&lt;/td&gt;
&lt;td&gt;147.286&lt;/td&gt;
&lt;td&gt;9.864&lt;/td&gt;
&lt;td&gt;0.283&lt;/td&gt;
&lt;td&gt;0.029&lt;/td&gt;
&lt;td&gt;19.970&lt;/td&gt;
&lt;td&gt;11.331&lt;/td&gt;
&lt;td&gt;80.962&lt;/td&gt;
&lt;td&gt;26.357&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;1998&lt;/td&gt;
&lt;td&gt;148&lt;/td&gt;
&lt;td&gt;148.574&lt;/td&gt;
&lt;td&gt;10.217&lt;/td&gt;
&lt;td&gt;0.287&lt;/td&gt;
&lt;td&gt;0.026&lt;/td&gt;
&lt;td&gt;20.926&lt;/td&gt;
&lt;td&gt;13.012&lt;/td&gt;
&lt;td&gt;82.500&lt;/td&gt;
&lt;td&gt;28.442&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;1999&lt;/td&gt;
&lt;td&gt;152&lt;/td&gt;
&lt;td&gt;145.875&lt;/td&gt;
&lt;td&gt;11.647&lt;/td&gt;
&lt;td&gt;0.290&lt;/td&gt;
&lt;td&gt;0.026&lt;/td&gt;
&lt;td&gt;22.020&lt;/td&gt;
&lt;td&gt;12.613&lt;/td&gt;
&lt;td&gt;85.401&lt;/td&gt;
&lt;td&gt;28.495&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2000&lt;/td&gt;
&lt;td&gt;150&lt;/td&gt;
&lt;td&gt;146.553&lt;/td&gt;
&lt;td&gt;10.817&lt;/td&gt;
&lt;td&gt;0.288&lt;/td&gt;
&lt;td&gt;0.030&lt;/td&gt;
&lt;td&gt;22.007&lt;/td&gt;
&lt;td&gt;11.733&lt;/td&gt;
&lt;td&gt;85.700&lt;/td&gt;
&lt;td&gt;27.728&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2001&lt;/td&gt;
&lt;td&gt;146&lt;/td&gt;
&lt;td&gt;147.034&lt;/td&gt;
&lt;td&gt;10.800&lt;/td&gt;
&lt;td&gt;0.282&lt;/td&gt;
&lt;td&gt;0.028&lt;/td&gt;
&lt;td&gt;21.623&lt;/td&gt;
&lt;td&gt;13.400&lt;/td&gt;
&lt;td&gt;81.890&lt;/td&gt;
&lt;td&gt;29.106&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2002&lt;/td&gt;
&lt;td&gt;144&lt;/td&gt;
&lt;td&gt;147.417&lt;/td&gt;
&lt;td&gt;9.630&lt;/td&gt;
&lt;td&gt;0.278&lt;/td&gt;
&lt;td&gt;0.027&lt;/td&gt;
&lt;td&gt;20.750&lt;/td&gt;
&lt;td&gt;11.188&lt;/td&gt;
&lt;td&gt;78.819&lt;/td&gt;
&lt;td&gt;24.090&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2003&lt;/td&gt;
&lt;td&gt;146&lt;/td&gt;
&lt;td&gt;146.610&lt;/td&gt;
&lt;td&gt;11.739&lt;/td&gt;
&lt;td&gt;0.281&lt;/td&gt;
&lt;td&gt;0.027&lt;/td&gt;
&lt;td&gt;19.863&lt;/td&gt;
&lt;td&gt;11.056&lt;/td&gt;
&lt;td&gt;78.863&lt;/td&gt;
&lt;td&gt;24.173&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2004&lt;/td&gt;
&lt;td&gt;154&lt;/td&gt;
&lt;td&gt;145.877&lt;/td&gt;
&lt;td&gt;10.302&lt;/td&gt;
&lt;td&gt;0.284&lt;/td&gt;
&lt;td&gt;0.026&lt;/td&gt;
&lt;td&gt;20.786&lt;/td&gt;
&lt;td&gt;11.012&lt;/td&gt;
&lt;td&gt;79.117&lt;/td&gt;
&lt;td&gt;23.576&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2005&lt;/td&gt;
&lt;td&gt;143&lt;/td&gt;
&lt;td&gt;147.441&lt;/td&gt;
&lt;td&gt;10.615&lt;/td&gt;
&lt;td&gt;0.280&lt;/td&gt;
&lt;td&gt;0.022&lt;/td&gt;
&lt;td&gt;19.965&lt;/td&gt;
&lt;td&gt;10.937&lt;/td&gt;
&lt;td&gt;78.042&lt;/td&gt;
&lt;td&gt;23.308&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2006&lt;/td&gt;
&lt;td&gt;146&lt;/td&gt;
&lt;td&gt;147.116&lt;/td&gt;
&lt;td&gt;10.302&lt;/td&gt;
&lt;td&gt;0.286&lt;/td&gt;
&lt;td&gt;0.024&lt;/td&gt;
&lt;td&gt;20.459&lt;/td&gt;
&lt;td&gt;12.181&lt;/td&gt;
&lt;td&gt;80.952&lt;/td&gt;
&lt;td&gt;25.700&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2007&lt;/td&gt;
&lt;td&gt;156&lt;/td&gt;
&lt;td&gt;146.686&lt;/td&gt;
&lt;td&gt;10.568&lt;/td&gt;
&lt;td&gt;0.283&lt;/td&gt;
&lt;td&gt;0.028&lt;/td&gt;
&lt;td&gt;19.128&lt;/td&gt;
&lt;td&gt;9.921&lt;/td&gt;
&lt;td&gt;79.763&lt;/td&gt;
&lt;td&gt;23.370&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2008&lt;/td&gt;
&lt;td&gt;137&lt;/td&gt;
&lt;td&gt;146.657&lt;/td&gt;
&lt;td&gt;10.834&lt;/td&gt;
&lt;td&gt;0.280&lt;/td&gt;
&lt;td&gt;0.025&lt;/td&gt;
&lt;td&gt;19.620&lt;/td&gt;
&lt;td&gt;9.758&lt;/td&gt;
&lt;td&gt;78.029&lt;/td&gt;
&lt;td&gt;22.900&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2009&lt;/td&gt;
&lt;td&gt;140&lt;/td&gt;
&lt;td&gt;145.821&lt;/td&gt;
&lt;td&gt;11.482&lt;/td&gt;
&lt;td&gt;0.282&lt;/td&gt;
&lt;td&gt;0.026&lt;/td&gt;
&lt;td&gt;19.929&lt;/td&gt;
&lt;td&gt;10.809&lt;/td&gt;
&lt;td&gt;78.129&lt;/td&gt;
&lt;td&gt;22.584&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;td&gt;136&lt;/td&gt;
&lt;td&gt;147.213&lt;/td&gt;
&lt;td&gt;10.235&lt;/td&gt;
&lt;td&gt;0.274&lt;/td&gt;
&lt;td&gt;0.027&lt;/td&gt;
&lt;td&gt;18.728&lt;/td&gt;
&lt;td&gt;10.276&lt;/td&gt;
&lt;td&gt;75.125&lt;/td&gt;
&lt;td&gt;22.502&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;&lt;strong&gt;All &lt;br /&gt; Years&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2168&lt;/td&gt;
&lt;td&gt;146.890&lt;/td&gt;
&lt;td&gt;10.635&lt;/td&gt;
&lt;td&gt;0.283&lt;/td&gt;
&lt;td&gt;0.027&lt;/td&gt;
&lt;td&gt;20.491&lt;/td&gt;
&lt;td&gt;11.531&lt;/td&gt;
&lt;td&gt;80.595&lt;/td&gt;
&lt;td&gt;25.671&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
The next table has the &lt;q&gt;modern&lt;/q&gt; statistics:  &lt;a target="_blank" href="http://en.wikipedia.org/wiki/On-base_percentage"&gt;On Base Percentage (OBP)&lt;/a&gt;, &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Slugging_average"&gt;Slugging &lt;q&gt;Average&lt;/q&gt; (SLG)&lt;/a&gt;, and what's now a standard statistic for overall batting prowess, &lt;a target="_blank" href="http://en.wikipedia.org/wiki/On-base_plus_slugging"&gt;On Base Plus Slugging (OPS = OBP + SLG)&lt;/a&gt;.  Looks like if you can keep your OPS above about 0.750 won't have to worry about the kid's college tuition:
&lt;/p&gt;

&lt;table summary="MLB Batting Statistics 1996-2010, averaged over all players eligible for the batting title" align="center" border="2"&gt;
&lt;tr align="center"&gt;
&lt;td&gt;&lt;strong&gt;Year&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Players &lt;br /&gt;Eligible&lt;/strong&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;strong&gt;On Base %&lt;/strong&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;strong&gt;Slugging&lt;/strong&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;strong&gt;OPB + SLG&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="center"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;OBP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&amp;sigma;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;SLG&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&amp;sigma;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;OPS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&amp;sigma;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;1996&lt;/td&gt;
&lt;td&gt;137&lt;/td&gt;
&lt;td&gt;0.361&lt;/td&gt;
&lt;td&gt;0.041&lt;/td&gt;
&lt;td&gt;0.472&lt;/td&gt;
&lt;td&gt;0.085&lt;/td&gt;
&lt;td&gt;0.833&lt;/td&gt;
&lt;td&gt;0.117&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;1997&lt;/td&gt;
&lt;td&gt;133&lt;/td&gt;
&lt;td&gt;0.354&lt;/td&gt;
&lt;td&gt;0.041&lt;/td&gt;
&lt;td&gt;0.460&lt;/td&gt;
&lt;td&gt;0.075&lt;/td&gt;
&lt;td&gt;0.815&lt;/td&gt;
&lt;td&gt;0.108&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;1998&lt;/td&gt;
&lt;td&gt;148&lt;/td&gt;
&lt;td&gt;0.355&lt;/td&gt;
&lt;td&gt;0.036&lt;/td&gt;
&lt;td&gt;0.467&lt;/td&gt;
&lt;td&gt;0.081&lt;/td&gt;
&lt;td&gt;0.822&lt;/td&gt;
&lt;td&gt;0.108&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;1999&lt;/td&gt;
&lt;td&gt;152&lt;/td&gt;
&lt;td&gt;0.364&lt;/td&gt;
&lt;td&gt;0.039&lt;/td&gt;
&lt;td&gt;0.479&lt;/td&gt;
&lt;td&gt;0.077&lt;/td&gt;
&lt;td&gt;0.843&lt;/td&gt;
&lt;td&gt;0.107&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2000&lt;/td&gt;
&lt;td&gt;150&lt;/td&gt;
&lt;td&gt;0.362&lt;/td&gt;
&lt;td&gt;0.041&lt;/td&gt;
&lt;td&gt;0.479&lt;/td&gt;
&lt;td&gt;0.085&lt;/td&gt;
&lt;td&gt;0.841&lt;/td&gt;
&lt;td&gt;0.119&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2001&lt;/td&gt;
&lt;td&gt;146&lt;/td&gt;
&lt;td&gt;0.353&lt;/td&gt;
&lt;td&gt;0.040&lt;/td&gt;
&lt;td&gt;0.470&lt;/td&gt;
&lt;td&gt;0.092&lt;/td&gt;
&lt;td&gt;0.823&lt;/td&gt;
&lt;td&gt;0.127&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2002&lt;/td&gt;
&lt;td&gt;144&lt;/td&gt;
&lt;td&gt;0.351&lt;/td&gt;
&lt;td&gt;0.044&lt;/td&gt;
&lt;td&gt;0.461&lt;/td&gt;
&lt;td&gt;0.080&lt;/td&gt;
&lt;td&gt;0.812&lt;/td&gt;
&lt;td&gt;0.118&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2003&lt;/td&gt;
&lt;td&gt;146&lt;/td&gt;
&lt;td&gt;0.351&lt;/td&gt;
&lt;td&gt;0.039&lt;/td&gt;
&lt;td&gt;0.461&lt;/td&gt;
&lt;td&gt;0.075&lt;/td&gt;
&lt;td&gt;0.812&lt;/td&gt;
&lt;td&gt;0.108&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2004&lt;/td&gt;
&lt;td&gt;154&lt;/td&gt;
&lt;td&gt;0.355&lt;/td&gt;
&lt;td&gt;0.039&lt;/td&gt;
&lt;td&gt;0.468&lt;/td&gt;
&lt;td&gt;0.073&lt;/td&gt;
&lt;td&gt;0.822&lt;/td&gt;
&lt;td&gt;0.104&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2005&lt;/td&gt;
&lt;td&gt;143&lt;/td&gt;
&lt;td&gt;0.348&lt;/td&gt;
&lt;td&gt;0.034&lt;/td&gt;
&lt;td&gt;0.458&lt;/td&gt;
&lt;td&gt;0.069&lt;/td&gt;
&lt;td&gt;0.806&lt;/td&gt;
&lt;td&gt;0.095&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2006&lt;/td&gt;
&lt;td&gt;146&lt;/td&gt;
&lt;td&gt;0.355&lt;/td&gt;
&lt;td&gt;0.035&lt;/td&gt;
&lt;td&gt;0.469&lt;/td&gt;
&lt;td&gt;0.073&lt;/td&gt;
&lt;td&gt;0.824&lt;/td&gt;
&lt;td&gt;0.100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2007&lt;/td&gt;
&lt;td&gt;156&lt;/td&gt;
&lt;td&gt;0.354&lt;/td&gt;
&lt;td&gt;0.036&lt;/td&gt;
&lt;td&gt;0.458&lt;/td&gt;
&lt;td&gt;0.066&lt;/td&gt;
&lt;td&gt;0.812&lt;/td&gt;
&lt;td&gt;0.095&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2008&lt;/td&gt;
&lt;td&gt;137&lt;/td&gt;
&lt;td&gt;0.350&lt;/td&gt;
&lt;td&gt;0.033&lt;/td&gt;
&lt;td&gt;0.457&lt;/td&gt;
&lt;td&gt;0.065&lt;/td&gt;
&lt;td&gt;0.807&lt;/td&gt;
&lt;td&gt;0.089&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2009&lt;/td&gt;
&lt;td&gt;140&lt;/td&gt;
&lt;td&gt;0.353&lt;/td&gt;
&lt;td&gt;0.032&lt;/td&gt;
&lt;td&gt;0.461&lt;/td&gt;
&lt;td&gt;0.066&lt;/td&gt;
&lt;td&gt;0.814&lt;/td&gt;
&lt;td&gt;0.090&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;td&gt;136&lt;/td&gt;
&lt;td&gt;0.343&lt;/td&gt;
&lt;td&gt;0.032&lt;/td&gt;
&lt;td&gt;0.444&lt;/td&gt;
&lt;td&gt;0.070&lt;/td&gt;
&lt;td&gt;0.787&lt;/td&gt;
&lt;td&gt;0.095&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;&lt;strong&gt;All &lt;br /&gt; Years&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2168&lt;/td&gt;
&lt;td&gt;0.354&lt;/td&gt;
&lt;td&gt;0.038&lt;/td&gt;
&lt;td&gt;0.464&lt;/td&gt;
&lt;td&gt;0.076&lt;/td&gt;
&lt;td&gt;0.819&lt;/td&gt;
&lt;td&gt;0.106&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
And finally, this table has two other batting ability figures of merit.  &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Bill_James"&gt;Bill Jame's&lt;/a&gt; &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Runs_created"&gt;Runs Created&lt;/a&gt;, using the &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Runs_created#.22Technical.22_version_of_runs_created"&gt;&lt;q&gt;technical version&lt;/q&gt;&lt;/a&gt; and David Smyth's &lt;a target="_blank" href="http://www.tangotiger.net/wiki/index.php?title=Base_Runs"&gt;Base Runs&lt;/a&gt;, using the version that includes stolen base and grounded into double play data.  For each of these I also included a &lt;em&gt;per Game&lt;/em&gt; category, where a batter is considered to have played a game every time he makes twenty-four (24) outs.  Outs are defined as
&lt;/p&gt;

&lt;p&gt;
&lt;tt&gt;
Outs = At Bats - Hits + Caught Stealing + Sacrifice Hits + Sacrifice Flies + Times Grounded into Double Plays
&lt;/tt&gt;
&lt;/p&gt;

&lt;p&gt;
even though Smyth's formula does not include Sacrifice data.
&lt;/p&gt;

&lt;table summary="MLB Batting Statistics 1996-2010, averaged over all players eligible for the batting title" align="center" border="2"&gt;
&lt;tr align="center"&gt;
&lt;td&gt;&lt;strong&gt;Year&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Players &lt;br /&gt; Eligible&lt;/strong&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;strong&gt;Runs Created&lt;/strong&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;strong&gt;Runs Created/Game&lt;/strong&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;strong&gt;Base Runs&lt;/strong&gt;&lt;/td&gt;
&lt;td colspan="2"&gt;&lt;strong&gt;Base Runs/Game&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="center"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;RC&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&amp;sigma;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;RC/G&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&amp;sigma;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;BsR&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&amp;sigma;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;BsR/G&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&amp;sigma;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;1996&lt;/td&gt;
&lt;td&gt;137&lt;/td&gt;
&lt;td&gt;96.600&lt;/td&gt;
&lt;td&gt;28.370&lt;/td&gt;
&lt;td&gt;5.617&lt;/td&gt;
&lt;td&gt;1.738&lt;/td&gt;
&lt;td&gt;89.402&lt;/td&gt;
&lt;td&gt;24.627&lt;/td&gt;
&lt;td&gt;5.195&lt;/td&gt;
&lt;td&gt;1.494&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;1997&lt;/td&gt;
&lt;td&gt;133&lt;/td&gt;
&lt;td&gt;91.108&lt;/td&gt;
&lt;td&gt;26.341&lt;/td&gt;
&lt;td&gt;5.330&lt;/td&gt;
&lt;td&gt;1.624&lt;/td&gt;
&lt;td&gt;84.905&lt;/td&gt;
&lt;td&gt;22.644&lt;/td&gt;
&lt;td&gt;4.962&lt;/td&gt;
&lt;td&gt;1.385&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;1998&lt;/td&gt;
&lt;td&gt;148&lt;/td&gt;
&lt;td&gt;94.738&lt;/td&gt;
&lt;td&gt;26.595&lt;/td&gt;
&lt;td&gt;5.431&lt;/td&gt;
&lt;td&gt;1.576&lt;/td&gt;
&lt;td&gt;88.110&lt;/td&gt;
&lt;td&gt;23.177&lt;/td&gt;
&lt;td&gt;5.048&lt;/td&gt;
&lt;td&gt;1.354&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;1999&lt;/td&gt;
&lt;td&gt;152&lt;/td&gt;
&lt;td&gt;97.993&lt;/td&gt;
&lt;td&gt;26.840&lt;/td&gt;
&lt;td&gt;5.749&lt;/td&gt;
&lt;td&gt;1.619&lt;/td&gt;
&lt;td&gt;91.017&lt;/td&gt;
&lt;td&gt;23.332&lt;/td&gt;
&lt;td&gt;5.337&lt;/td&gt;
&lt;td&gt;1.389&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2000&lt;/td&gt;
&lt;td&gt;150&lt;/td&gt;
&lt;td&gt;97.624&lt;/td&gt;
&lt;td&gt;30.106&lt;/td&gt;
&lt;td&gt;5.740&lt;/td&gt;
&lt;td&gt;1.905&lt;/td&gt;
&lt;td&gt;90.290&lt;/td&gt;
&lt;td&gt;25.426&lt;/td&gt;
&lt;td&gt;5.302&lt;/td&gt;
&lt;td&gt;1.596&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2001&lt;/td&gt;
&lt;td&gt;146&lt;/td&gt;
&lt;td&gt;93.714&lt;/td&gt;
&lt;td&gt;32.514&lt;/td&gt;
&lt;td&gt;5.468&lt;/td&gt;
&lt;td&gt;2.006&lt;/td&gt;
&lt;td&gt;86.611&lt;/td&gt;
&lt;td&gt;27.214&lt;/td&gt;
&lt;td&gt;5.048&lt;/td&gt;
&lt;td&gt;1.656&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2002&lt;/td&gt;
&lt;td&gt;144&lt;/td&gt;
&lt;td&gt;90.261&lt;/td&gt;
&lt;td&gt;27.370&lt;/td&gt;
&lt;td&gt;5.294&lt;/td&gt;
&lt;td&gt;1.970&lt;/td&gt;
&lt;td&gt;84.007&lt;/td&gt;
&lt;td&gt;23.490&lt;/td&gt;
&lt;td&gt;4.920&lt;/td&gt;
&lt;td&gt;1.672&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2003&lt;/td&gt;
&lt;td&gt;146&lt;/td&gt;
&lt;td&gt;90.263&lt;/td&gt;
&lt;td&gt;26.200&lt;/td&gt;
&lt;td&gt;5.291&lt;/td&gt;
&lt;td&gt;1.663&lt;/td&gt;
&lt;td&gt;83.832&lt;/td&gt;
&lt;td&gt;22.653&lt;/td&gt;
&lt;td&gt;4.908&lt;/td&gt;
&lt;td&gt;1.406&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2004&lt;/td&gt;
&lt;td&gt;154&lt;/td&gt;
&lt;td&gt;92.899&lt;/td&gt;
&lt;td&gt;25.243&lt;/td&gt;
&lt;td&gt;5.440&lt;/td&gt;
&lt;td&gt;1.805&lt;/td&gt;
&lt;td&gt;86.339&lt;/td&gt;
&lt;td&gt;21.569&lt;/td&gt;
&lt;td&gt;5.050&lt;/td&gt;
&lt;td&gt;1.521&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2005&lt;/td&gt;
&lt;td&gt;143&lt;/td&gt;
&lt;td&gt;89.551&lt;/td&gt;
&lt;td&gt;23.903&lt;/td&gt;
&lt;td&gt;5.160&lt;/td&gt;
&lt;td&gt;1.389&lt;/td&gt;
&lt;td&gt;83.377&lt;/td&gt;
&lt;td&gt;20.729&lt;/td&gt;
&lt;td&gt;4.803&lt;/td&gt;
&lt;td&gt;1.198&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2006&lt;/td&gt;
&lt;td&gt;146&lt;/td&gt;
&lt;td&gt;93.534&lt;/td&gt;
&lt;td&gt;24.146&lt;/td&gt;
&lt;td&gt;5.420&lt;/td&gt;
&lt;td&gt;1.446&lt;/td&gt;
&lt;td&gt;86.664&lt;/td&gt;
&lt;td&gt;20.849&lt;/td&gt;
&lt;td&gt;5.018&lt;/td&gt;
&lt;td&gt;1.231&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2007&lt;/td&gt;
&lt;td&gt;156&lt;/td&gt;
&lt;td&gt;91.098&lt;/td&gt;
&lt;td&gt;24.147&lt;/td&gt;
&lt;td&gt;5.292&lt;/td&gt;
&lt;td&gt;1.387&lt;/td&gt;
&lt;td&gt;84.725&lt;/td&gt;
&lt;td&gt;20.931&lt;/td&gt;
&lt;td&gt;4.920&lt;/td&gt;
&lt;td&gt;1.191&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2008&lt;/td&gt;
&lt;td&gt;137&lt;/td&gt;
&lt;td&gt;89.927&lt;/td&gt;
&lt;td&gt;21.584&lt;/td&gt;
&lt;td&gt;5.197&lt;/td&gt;
&lt;td&gt;1.315&lt;/td&gt;
&lt;td&gt;83.891&lt;/td&gt;
&lt;td&gt;18.794&lt;/td&gt;
&lt;td&gt;4.846&lt;/td&gt;
&lt;td&gt;1.133&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2009&lt;/td&gt;
&lt;td&gt;140&lt;/td&gt;
&lt;td&gt;90.753&lt;/td&gt;
&lt;td&gt;22.379&lt;/td&gt;
&lt;td&gt;5.299&lt;/td&gt;
&lt;td&gt;1.308&lt;/td&gt;
&lt;td&gt;84.578&lt;/td&gt;
&lt;td&gt;19.630&lt;/td&gt;
&lt;td&gt;4.935&lt;/td&gt;
&lt;td&gt;1.131&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;td&gt;136&lt;/td&gt;
&lt;td&gt;85.296&lt;/td&gt;
&lt;td&gt;21.911&lt;/td&gt;
&lt;td&gt;4.894&lt;/td&gt;
&lt;td&gt;1.296&lt;/td&gt;
&lt;td&gt;79.946&lt;/td&gt;
&lt;td&gt;19.000&lt;/td&gt;
&lt;td&gt;4.584&lt;/td&gt;
&lt;td&gt;1.114&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align="right"&gt;
&lt;td&gt;&lt;strong&gt;All &lt;br /&gt; Years&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2168&lt;/td&gt;
&lt;td&gt;92.424&lt;/td&gt;
&lt;td&gt;26.167&lt;/td&gt;
&lt;td&gt;5.379&lt;/td&gt;
&lt;td&gt;1.632&lt;/td&gt;
&lt;td&gt;85.902&lt;/td&gt;
&lt;td&gt;22.523&lt;/td&gt;
&lt;td&gt;4.996&lt;/td&gt;
&lt;td&gt;1.387&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
So there you have it.  From now on, if someone says that a player has an &lt;tt&gt;OBP/SLG/OPS&lt;/tt&gt; of &lt;tt&gt;0.350/0.425/0.775&lt;/tt&gt;, or some other string of statistics, you can use these tables to see how that fits in with the average (&lt;em&gt;i.e.&lt;/em&gt; really, really good, compared to you or me) every-day Major League batter.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-7638012915183459670?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/7638012915183459670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=7638012915183459670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7638012915183459670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7638012915183459670'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/06/update-on-average-major-league-hitter.html' title='An Update on the Average Major League Hitter'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-3382486583372608117</id><published>2011-06-11T19:06:00.003-04:00</published><updated>2011-06-12T22:29:34.284-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Baseball'/><category scheme='http://www.blogger.com/atom/ns#' term='mySQL'/><title type='text'>Take Me Out to the SQualL Game</title><content type='html'>&lt;p&gt;
As some of you know, I have a moderate interest in &lt;a href="http://hawknotes.blogspot.com/search/label/Baseball"&gt;Baseball and Baseball statistics&lt;/a&gt;.  However, I'm not a database programmer, and the little bit of DB manipulation I've looked at has left me hopelessly confused.
&lt;/p&gt;

&lt;p&gt;
Several years ago I did buy a copy of &lt;a target="_blank" href="http://oreilly.com/catalog/9780596009427"&gt;&lt;em&gt;Baseball Hacks&lt;/em&gt;&lt;/a&gt;, but I never really got started with it. Last weekend I had some time on my hands and started playing around with it.  Turns out you actually have to try to do something with a program in order to learn it (who'da thunk?).  And it also turns out the &lt;em&gt;Baseball Hacks&lt;/em&gt;, even though it's an O'Reilly book, is pretty oriented to Windows/Microsoft Access, although it does have substantial hints for Linux and Mac users, not to mention an &lt;a href="http://examples.oreilly.com/9780596009427/baseball_hacks_code.zip"&gt;online collection of scripts from the book (ZIP file)&lt;/a&gt;, along with &lt;a target="_blank" href="http://examples.oreilly.com/9780596009427/"&gt;some other stuff&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
So what should we do?  As a first shot, how about updating &lt;a href="http://hawknotes.blogspot.com/2009/10/pretty-good-average.html"&gt;my table of averages for several modern baseball statistics&lt;/a&gt; to include 2009 and 2010?  I did the previous tables by doing some judicious editing of the &lt;tt&gt;Batting.csv&lt;/tt&gt; file in &lt;a target="_blank" href="http://baseball1.com/2011/01/baseball-database-updated-2010/"&gt;Sean Lahman's baseball database&lt;/a&gt;, but the folks at &lt;a target="_blank" href="http://www.baseball-databank.org/"&gt;Baseball-Databank.org&lt;/a&gt; have all of the data packaged neatly into a &lt;a href="http://www.baseball-databank.org/files/BDB-sql-2011-03-28.sql.zip"&gt;mySQL database (ZIP file)&lt;/a&gt;, so we'll use that.
&lt;/p&gt;

&lt;p&gt;
So as a start, we're going to
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Install appropriate parts of the &lt;a target="_blank" href="http://dev.mysql.com/"&gt;mySQL database program&lt;/a&gt; in Ubuntu,
&lt;/li&gt;

&lt;li&gt;
Set it up to read the database file,
&lt;/li&gt;

&lt;li&gt;
Find the eligible batters for 2009 and 2010,
&lt;/li&gt;

&lt;li&gt;
Get their batting data into a spreadsheet,
&lt;/li&gt;

&lt;li&gt;
Find the appropriate averages, runs created, &lt;em&gt;etc.&lt;/em&gt;, and
&lt;/li&gt;

&lt;li&gt;
add the results to the appropriate tables.
&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;
That should be enough for one day.  It's going to be a long journey, though, so when you've got some time join us after the break.
&lt;/p&gt;

&lt;a name='more'&gt;&lt;/a&gt;

&lt;hr /&gt;

&lt;p&gt;Ready?  OK, let's go.&lt;/p&gt;

&lt;h4&gt;Installing mySQL under Ubuntu&lt;/h4&gt;

&lt;p&gt;
and, probably, any Linux system, with the usual modifications for different distributions.  For what it's worth, I set up a virtual machine which didn't previously have mySQL installed so that we can see how everything works on a clean system.
&lt;/p&gt;

&lt;p&gt;
This will install everything we're going to use today, and then some:
&lt;/p&gt;

&lt;p&gt;
&lt;tt&gt;$ sudo apt-get install mysql-server mysql-query-browser&lt;/tt&gt;
&lt;/p&gt;

&lt;p&gt;
During the installation process you'll see a screen pop up that looks like this:
&lt;/p&gt;

&lt;img src="https://lh3.googleusercontent.com/-Dn7J4U61Wv0/TfPzEeDqXpI/AAAAAAAABRE/BKbb8_jU4DQ/mysqlpasswd.jpg" alt="mySQL server password screen" width="450" style="display:block;margin-left:auto;margin-right:auto" /&gt;

&lt;p&gt;
This is the password to the mySQL server.  As it says, you may be able to get away with no password, but it's probably a good idea to have one, especially if you share your machine with others.  Given this password, you can change content and access to any database that's installed on you system.  We'll make the password here &lt;tt&gt;gBrett&lt;/tt&gt;.
&lt;/p&gt;

&lt;p&gt;
After installation, the &lt;tt&gt;mysqld&lt;/tt&gt; daemon will always be running on your system, though it may spend a lot of time sleeping:
&lt;/p&gt;

&lt;pre&gt;
$ ps xa | grep mysqld
25154 ? Ssl 0:00 /usr/sbin/mysqld
&lt;/pre&gt;

&lt;p&gt;
Probably better check to see if it works:
&lt;/p&gt;

&lt;pre&gt;
$ mysql -u root -p
Enter password: gBrett
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 123
Server version: 5.1.54-1ubuntu4 (Ubuntu)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql&gt; quit
&lt;/pre&gt;

&lt;h4&gt;Set up the Database&lt;/h4&gt;

&lt;p&gt;
Now download the &lt;a href="http://www.baseball-databank.org/files/BDB-sql-2011-03-28.sql.zip"&gt;Baseball-Databank mySQL database (ZIP file)&lt;/a&gt; and unzip into a convenient directory:
&lt;/p&gt;

&lt;pre&gt;
$ mkdir Documents/baseballDB
$ cd Documents/baseballDB
$ wget http://www.baseball-databank.org/files/BDB-sql-2011-03-28.sql.zip
$ unzip BDB-sql-2011-03-28.sql.zip
&lt;/pre&gt;

&lt;p&gt;
Now we want to set up access to the database for a user.  You can use your current username for this, but you could create another user name if you wished.  Here, we'll use our own user name, and we'll follow &lt;em&gt;Baseball Hacks&lt;/em&gt; and call the database &lt;tt&gt;bbdatabank&lt;/tt&gt;:
&lt;/p&gt;

&lt;pre&gt;
$ mysql -p -u root
Enter password: gBrett
mysql&gt; GRANT ALL ON bbdatabank.* TO 'dave'@'localhost' IDENTIFIED BY 'cRojas';
Query OK, 0 rows affected (0.00 sec)

mysql&gt; CREATE DATABASE bbdatabank;
Query OK, 1 row affected (0.00 sec)

mysql&gt; quit
Bye
&lt;/pre&gt;

&lt;p&gt;
(Note the semicolons at the end of the line, which tells mySQL you're finished with the command.  If you don't enter a semicolon, nothing much will happen until you do.)
&lt;/p&gt;

&lt;p&gt;
This command allows &lt;tt&gt;dave&lt;/tt&gt; to log into mySQL and play with the database called bbdatabank.  Of course, there's nothing in bbdatabank as yet, but now &lt;tt&gt;dave&lt;/tt&gt; can fix that:
&lt;/p&gt;

&lt;pre&gt;
$ mysql -u dave -p -s bbdatabank &lt; BDB-sql-2011-03-28.sql
Enter password: cRojas
&lt;/pre&gt;

&lt;p&gt;
This will take a bit of time, but eventually the DB will load.  To see if it's correct, do something like this:
&lt;/p&gt;

&lt;pre&gt;
$ mysql -u dave -p -s bbdatabank
Enter password: cRojas
mysql&gt; show tables;
Tables_in_bbdatabank
AllstarFull
Appearances
AwardsManagers
AwardsPlayers
AwardsShareManagers
AwardsSharePlayers
Batting
BattingPost
Fielding
FieldingOF
FieldingPost
HallOfFame
Managers
ManagersHalf
Master
Pitching
PitchingPost
Salaries
Schools
SchoolsPlayers
SeriesPost
Teams
TeamsFranchises
TeamsHalf
xref_stats
mysql&gt; quit
&lt;/pre&gt;

&lt;p&gt;
That lists all of the various tables in the database.  One's really important, that's the one called &lt;tt&gt;Master&lt;/tt&gt;, and if you look into the &lt;tt&gt;BDB-sql-2011-03-28.sql&lt;/tt&gt; near the top you'll find something like this:
&lt;/p&gt;

&lt;p&gt;
&lt;tt&gt;
LOCK TABLES `Master` WRITE;&lt;br /&gt;
/*!40000 ALTER TABLE `Master` DISABLE KEYS */;&lt;br /&gt;
INSERT INTO `Master` VALUES (1,'aaronha01','','aaronha01h',1934,2,5,'USA','AL','Mobile',NULL,NULL,NULL,NULL,NULL,NULL,'Hank','Aaron',NULL,'Henry Louis','Hammer,Hammerin\' Hank,Bad Henry',180,72.0,'R','R','1954-04-13','1976-10-03','','aaronha01','aaronha01','aaroh101','aaronha01','aaronha01')
&lt;/tt&gt;
&lt;/p&gt;

&lt;p&gt;
which tells you that somebody named Hank Aaron, born in 1934 in Mobile, Alabama, will be referred to as &lt;tt&gt;aaronha01&lt;/tt&gt; in other parts of the database.  You can probably figure out most of the rest of the things here.  This is the key to the entire database.  In the &lt;tt&gt;Batting&lt;/tt&gt; table, for example, there will be twenty-two references to &lt;tt&gt;aaronha01&lt;/tt&gt;, one for each year he played in the majors.
&lt;/p&gt;

&lt;p&gt;
OK, we've got all of that.  What do we do with it?  First, as a warm-up, let's identify the players in MLB since 2000 who came to the plate more than 740 times (just to fit the list onto one screen) in a year, and see which one of them had the best batting average.  This is a modification of &lt;em&gt;Baseball Hacks&lt;/em&gt; Hack 18, at the bottom of page 95.
&lt;/p&gt;

&lt;pre&gt;
$ mysql -u dave -p -s bbdatabank
Enter password: cRojas
mysql&gt; select b.H/b.AB as AVG,
    -&gt; b.AB+b.BB+b.HBP+b.SH+b.SF as PA,
    -&gt; m.nameLast, m.nameFirst, b.teamID, b.yearID 
    -&gt; from Batting b inner join Master m
    -&gt; where b.playerID=m.playerID
    -&gt; and
    -&gt; b.yearID&gt;1999
    -&gt; and b.AB+b.BB+b.HBP+b.SH+b.SF &gt; 735
    -&gt; order by AVG DESC;
AVG PA nameLast nameFirst teamID yearID
0.3722 762 Suzuki Ichiro SEA 2004
0.3510 736 Suzuki Ichiro SEA 2007
0.3497 738 Suzuki Ichiro SEA 2001
0.3260 748 Pierre Juan FLO 2004
0.3223 752 Suzuki Ichiro SEA 2006
0.3140 748 Young Michael TEX 2006
0.3130 739 Young Michael TEX 2004
0.3105 749 Suzuki Ichiro SEA 2008
0.3089 752 Jeter Derek NYA 2005
0.3085 739 Utley Chase PHI 2006
0.3054 746 Pierre Juan FLO 2003
0.3034 739 Suzuki Ichiro SEA 2005
0.3003 741 Soriano Alfonso NYA 2002
0.2997 736 Furcal Rafael LAN 2006
0.2965 763 Reyes Jose NYN 2008
0.2961 778 Rollins Jimmy PHI 2007
0.2918 750 Pierre Juan CHN 2006
0.2901 751 Sizemore Grady CLE 2006
0.2805 765 Reyes Jose NYN 2007
0.2772 758 Rollins Jimmy PHI 2006
0.2771 748 Sizemore Grady CLE 2007
0.2700 739 Jeter Derek NYA 2010
0.2688 754 Weeks Rickie MIL 2010
0.2681 745 Sizemore Grady CLE 2008
&lt;/pre&gt;

&lt;p&gt;
(Note that I added a lot of carriage returns to input, just to make it visible.  I could have run it all together: &lt;br /&gt;&lt;br /&gt;&lt;tt&gt;
select b.H/b.AB as AVG, b.AB+b.BB+b.HBP+b.SH+b.SF as PA, m.nameLast, m.nameFirst, b.teamID, b.yearID  from Batting b inner join Master m where b.playerID=m.playerID and b.yearID&gt;1999 and b.AB+b.BB+b.HBP+b.SH+b.SF &gt; 735 order by AVG DESC;
&lt;/tt&gt; &lt;br /&gt;&lt;br /&gt;
I'd recommend keeping the commands you're trying in a text file, and then cutting and pasting into the database program.)
&lt;/p&gt;

&lt;p&gt;
Let's analyze that command line by line and see what it does:
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;
# Set up a variable called AVG, which measures hits (H) divided by At Bats (AB), and print it out:
&lt;/em &gt;&lt;br /&gt;&lt;tt&gt;
select b.H/b.AB as AVG,
&lt;/tt&gt;&lt;br /&gt;&lt;em&gt;
# Set up another variable called PA, for plate appearances (every time the player came to the plate) and print it out:
&lt;/em &gt;&lt;br /&gt;&lt;tt&gt;
    -&gt; b.AB+b.BB+b.HBP+b.SH+b.SF as PA,
&lt;/tt&gt;&lt;br /&gt;&lt;em&gt;
# This line print the Players name (Last name first), the team he played for, and the year:
&lt;/em &gt;&lt;br /&gt;&lt;tt&gt;
    -&gt; m.nameLast, m.nameFirst, b.teamID, b.yearID 
&lt;/tt&gt;&lt;br /&gt;&lt;em&gt;
# This identifies the tables.  A prefix of "b." means the data comes from the Batting table, while "m." comes from the Master table:
&lt;/em &gt;&lt;br /&gt;&lt;tt&gt;
    -&gt; from Batting b inner join Master m
&lt;/tt&gt;&lt;br /&gt;&lt;em&gt;
# This makes sure that we're looking at the same player in the Master table as in the Batting table:
&lt;/em &gt;&lt;br /&gt;&lt;tt&gt;
    -&gt; where b.playerID=m.playerID
&lt;/tt&gt;&lt;br /&gt;&lt;em&gt;
# But wait, there's more:
&lt;/em &gt;&lt;br /&gt;&lt;tt&gt;
    -&gt; and
&lt;/tt&gt;&lt;br /&gt;&lt;em&gt;
# We only want to look at years after 1999:
&lt;/em &gt;&lt;br /&gt;&lt;tt&gt;
    -&gt; b.yearID&gt;1999
&lt;/tt&gt;&lt;br /&gt;&lt;em&gt;
# and we only want to see batters who came to the plate a large number of times:
&lt;/em &gt;&lt;br /&gt;&lt;tt&gt;
    -&gt; and b.AB+b.BB+b.HBP+b.SH+b.SF &gt; 735
&lt;/tt&gt;&lt;br /&gt;&lt;em&gt;
# Finally, we want this ordered by average, starting from the top and going down:
&lt;/em &gt;&lt;br /&gt;&lt;tt&gt;
    -&gt; order by AVG DESC;
&lt;/tt&gt;
&lt;/p&gt;

&lt;h4&gt;Find Eligible Batters for 2009 and 2010&lt;/h4&gt;

&lt;p&gt;
This is pretty easy, right?  To be eligible for a batting title, &lt;a target="_blank" href="http://mlb.mlb.com/mlb/official_info/official_rules/official_scorer_10.jsp"&gt;Rule 10.22(a)&lt;/a&gt; says that you must come to the plate at least 3.1 times for every scheduled game your team plays.  Since every team is scheduled for 162 games per year, that works out to 502.2 plate appearances.  So let's work it out for 2009:
&lt;/p&gt;

&lt;pre&gt;
$ mysql -u dave -p -s bbdatabank
Enter password: gBrett
mysql&gt; select b.AB+b.BB+b.HBP+b.SH+b.SF as PA,
    -&gt; m.nameLast, m.nameFirst, b.teamID, b.yearID
    -&gt; from Batting b inner join Master m
    -&gt; where b.playerID=m.playerID and b.yearID=2009
    -&gt; and b.AB+b.BB+b.HBP+b.SH+b.SF&gt;502
    -&gt; order by PA DESC;
&lt;/pre&gt;

&lt;p&gt;
Whoa!  That will list 140 names, headed by Jimmy Rollins with 734 PA and ending with Grady Sizemore and Martin Prado, who came up 503 times each.  Unless you have a really big monitor, or you like to cut and paste from your terminal buffer, you'll need a better interface.
&lt;/p&gt;

&lt;p&gt;
&lt;tt&gt;OpenOffice.org&lt;/tt&gt; and &lt;tt&gt;LibreOffice&lt;/tt&gt; have &lt;q&gt;Base&lt;/q&gt; components, and with sufficient work I'm told you can get them to interact with mySQL.  Unfortunately, despite pursuing various tutorials I couldn't get that to work.  Fortunately, mySQL has its own graphical interface, &lt;tt&gt;mysql-query-browser&lt;/tt&gt;.  Basically it the mySQL commands above and puts them in table form on your screen.  We downloaded it as part of the mySQL installation process, so let's try it on this problem:
&lt;/p&gt;

&lt;pre&gt;
mysql-query-browser &amp;amp;
&lt;/pre&gt;

&lt;p&gt;
This launches a graphical interface.  The first time through you'll have to fill in the boxes, after that it will remember everything except the password (which is &lt;tt&gt;cRojas&lt;/tt&gt;):
&lt;/p&gt;

&lt;img src="https://lh5.googleusercontent.com/-geUHtQWkw0c/TfPzES2oJ0I/AAAAAAAABRI/qHRwanE3abQ/mysqlquery.jpg" alt="mysql-query-browser password screen" style="display:block;margin-left:auto;margin-right:auto" /&gt;

&lt;p&gt;
Once you're logged in, click the tab that says &lt;tt&gt;Result Set 1&lt;/tt&gt; or something like that.  You'll get a screen that looks like this:
&lt;/p&gt;

&lt;img src="https://lh4.googleusercontent.com/-IHSLu149nEU/TfPzEp2iFmI/AAAAAAAABRU/hiOnOX9AmNA/s640/querystart.jpg" alt="Startup mysql-query-browser" width="450" style="display:block;margin-left:auto;margin-right:auto" /&gt;

&lt;p&gt;
The top box on the left gives you the details of the database.  For example, if you click on &lt;tt&gt;Batting&lt;/tt&gt;, you'll see categories such as &lt;tt&gt;playerID&lt;/tt&gt;, &lt;tt&gt;teamID&lt;/tt&gt;, &lt;tt&gt;H&lt;/tt&gt;, etc.  These are categories you can search or print out with the database commands.  Of course, if you don't know that GIDP means &lt;q&gt;Grounded Into Double Play&lt;/q&gt; then you are going to be mystified, but presumably the database creator (which may be you) will have all of these things identified somewhere. 
&lt;/p&gt;

&lt;p&gt;
The top box is the query box.  Enter the entire command as we did before, including the &lt;q&gt;;&lt;/q&gt;, then click the Execute icon to the right:
&lt;/p&gt;

&lt;pre&gt;
select b.AB+b.BB+b.HBP+b.SH+b.SF as PA,
m.nameLast, m.nameFirst, b.teamID, b.yearID
from Batting b inner join Master m
where b.playerID=m.playerID and b.yearID=2009
and b.AB+b.BB+b.HBP+b.SH+b.SF&gt;502
order by PA DESC;
&lt;/pre&gt;

&lt;p&gt;
This gives you a spreadsheet like format
&lt;/p&gt;

&lt;img src="https://lh4.googleusercontent.com/-DxUrX-9Ydu0/TfPzEqlGOsI/AAAAAAAABRM/lOjLY5veL8k/s640/pa2009.jpg" alt="Players eligible for batting title in 2009" width="450" style="display:block;margin-left:auto;margin-right:auto" /&gt;

&lt;p&gt;
which is scrollable and much easier to use.  You can also export it into a spreadsheet or table.  Click on &lt;tt&gt;File =&amp;gt; Export Resultsheet&lt;/tt&gt; and you can save this table as a set of Comma Separated Values, or into HTML, XML, or Excel.  Why Excel?  Beats me.  I'd hope for something open source, but I guess &lt;tt&gt;.xls&lt;/tt&gt; is the default spreadsheet these days.  Fortunately all of the graphical open source spreadsheets I know can work with these spreadsheets.
&lt;/p&gt;

&lt;h4&gt;Enter Eligible Players batting data into the spreadsheet:&lt;/h4&gt;

&lt;p&gt;
Simple enough right?  We just need to dump everything for both years into a spreadsheet.  Try this in the query box:
&lt;/p&gt;

&lt;pre&gt;
select b.yearID, m.nameLast, m.nameFirst,
b.teamID, b.G, b.AB+b.BB+b.HBP+b.SH+b.SF as PA, b.AB, b.R, b.H, b.2B,
b.3B, b.HR, b.RBI, b.SB, b.CS, b.BB, b.IBB, b.HBP, b.SH, b.SF, b.GIDP
from Batting b inner join Master m
where b.playerID=m.playerID and b.yearID&gt;2008 and
b.AB+b.BB+b.HBP+b.SH+b.SF &gt; 502
order by b.yearID ASC, m.nameLast, m.nameFirst;
&lt;/pre&gt;

&lt;p&gt;
Note that the sort is on year, last name, and first name.  We want 2009 first in the sort, so we go in ascending order (ASC) rather than descending (DESC).  However, ASC is the default, so we don't really need it, and I left it off the first and last name search.
&lt;/p&gt;

&lt;p&gt;
Export this to a spreadsheet I'll call &lt;tt&gt;batting0910.xls&lt;/tt&gt; and open it up with your favorite spreadsheet program.  You should get something that looks like the picture below, except that I did a bit of editing to make it look cleaner.  It's rather small here, so right-click and chose &lt;tt&gt;view image in another tab&lt;/tt&gt; so see it more clearly.
&lt;/p&gt;

&lt;img src="https://lh5.googleusercontent.com/-PBcDiR2zYr8/TfPzETzsTlI/AAAAAAAABRQ/1cIZUS9PkUU/s640/battingsc.jpg" alt="Batting spreadsheet for title-qualified batters in 2009 and 2010" width="450" style="display:block;margin-left:auto;margin-right:auto" /&gt;

&lt;p&gt;
We'll be using &lt;a target="_blank" href="http://www.ehow.com/how_9728_calculate-total-bases.html"&gt;total bases&lt;/a&gt; at least twice, so let's make a column for it.
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;In cell &lt;tt&gt;V1&lt;/tt&gt; add the label &lt;strong&gt;TB&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;In cell &lt;tt&gt;V2&lt;/tt&gt; enter the string &lt;tt&gt;=I2+J2+2*K2+3*L2&lt;/tt&gt; (remember that hits (H) includes doubles, triples and home runs)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Your spreadsheet should look something like this:
&lt;/p&gt;

&lt;img src="https://lh6.googleusercontent.com/-n9d9S1Q7zGU/TfPzEUadXSI/AAAAAAAABRA/R66Xb8EfcFs/s640/addtb.jpg" alt="Spreadsheet after adding Total Bases column" width="450" style="display:block;margin-left:auto;margin-right:auto" /&gt;

&lt;p&gt;
Now let's fill in some other columns.  Most of these will be fractions, so format them for as many decimal places as you like.  Following long-time baseball convention I'm going to print out everything to three places.
&lt;/p&gt;

&lt;table summary="Additional Statistical Categories" border="2" align="center"&gt;

&lt;tr&gt;
  &lt;th&gt;Column&lt;/th&gt;
  &lt;th&gt;Category&lt;/th&gt;
  &lt;th&gt;Symbol&lt;/th&gt;
  &lt;th&gt;Row 2 Formula&lt;/th&gt;
&lt;/tr&gt;

&lt;tr&gt;
  &lt;td align="center"&gt;&lt;tt&gt;W&lt;/tt&gt;&lt;/td&gt;
  &lt;td&gt;&lt;q&gt;Outs&lt;/q&gt;&lt;/td&gt;
  &lt;td align="center"&gt;&lt;strong&gt;OUTS&lt;/strong&gt;&lt;/td&gt;
  &lt;td&gt;=G2-H2+O2+S2+T2+U2&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
  &lt;td align="center"&gt;&lt;tt&gt;X&lt;/tt&gt;&lt;/td&gt;
  &lt;td&gt;Batting Average&lt;/td&gt;
  &lt;td align="center"&gt;&lt;strong&gt;BA&lt;/strong&gt;&lt;/td&gt;
  &lt;td&gt;=I2/G2&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
  &lt;td align="center"&gt;&lt;tt&gt;Y&lt;/tt&gt;&lt;/td&gt;
  &lt;td&gt;On-Base Pct.&lt;/td&gt;
  &lt;td align="center"&gt;&lt;strong&gt;OBP&lt;/strong&gt;&lt;/td&gt;
  &lt;td&gt;=(I2+P2+R2)/F2&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
  &lt;td align="center"&gt;&lt;tt&gt;Z&lt;/tt&gt;&lt;/td&gt;
  &lt;td&gt;Slugging Pct.&lt;/td&gt;
  &lt;td align="center"&gt;&lt;strong&gt;SLG&lt;/strong&gt;&lt;/td&gt;
  &lt;td&gt;=V2/G2&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
  &lt;td align="center"&gt;&lt;tt&gt;AA&lt;/tt&gt;&lt;/td&gt;
  &lt;td&gt;On-Base + Slugging&lt;/td&gt;
  &lt;td align="center"&gt;&lt;strong&gt;OPS&lt;/strong&gt;&lt;/td&gt;
  &lt;td&gt;=X2+Y2&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
  &lt;td align="center"&gt;&lt;tt&gt;AB&lt;/tt&gt;&lt;/td&gt;
  &lt;td&gt;Runs Created&lt;/td&gt;
  &lt;td align="center"&gt;&lt;strong&gt;RC&lt;/strong&gt;&lt;/td&gt;
  &lt;td&gt;=(I2+P2-O2+R2-U2)*(V2+0.26*(P2-Q2+R2)+0.52*(S2+T2+N2))/F2&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
  &lt;td align="center"&gt;&lt;tt&gt;AB&lt;/tt&gt;&lt;/td&gt;
  &lt;td&gt;Runs Created / Game&lt;/td&gt;
  &lt;td align="center"&gt;&lt;strong&gt;RC/G&lt;/strong&gt;&lt;/td&gt;
  &lt;td&gt;=24*AB2/W2&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
  &lt;td align="center"&gt;&lt;tt&gt;AC&lt;/tt&gt;&lt;/td&gt;
  &lt;td&gt;Base Runs&lt;/td&gt;
  &lt;td align="center"&gt;&lt;strong&gt;BsR&lt;/strong&gt;&lt;/td&gt;
  &lt;td&gt;=(I2+P2-L2)*(1.02*(1.4*V2-0.6*I2-3*L2+0.1*P2))/(1.02*(1.4*V2-0.6*I2-3*L2+0.1*P2)+G2-H2+L2)&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
  &lt;td align="center"&gt;&lt;tt&gt;AD&lt;/tt&gt;&lt;/td&gt;
  &lt;td&gt;Base Runs/Game&lt;/td&gt;
  &lt;td align="center"&gt;&lt;strong&gt;BsR/G&lt;/strong&gt;&lt;/td&gt;
  &lt;td&gt;=24*AC2/W2&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;

&lt;p&gt;
I'm not really sure about the last one:  the original &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Base_Runs"&gt;Wikipedia article for Baseruns&lt;/a&gt; has lost its formulas, I can't find other web page that mentions 1.02 or 1.4, and in my original calculations I seem to have miscalculated total bases.  So take that with a grain of salt.
&lt;/p&gt;

&lt;p&gt;
Once you have all of that, you can find average and standard deviations of any category you like, by year or over the range of years you selected.  I'm going to recreate the entire table sometime this week, but for now, here are the results for 2006-10, including results from &lt;a href="http://hawknotes.blogspot.com/2009/10/pretty-good-average.html"&gt; my original tables&lt;/a&gt;.  For now I'll leave out the standard deviations.
&lt;/p&gt;

&lt;table summary="Interesting Baseball Batting Statistics" border="2" align="center"&gt;

&lt;tr&gt;
  &lt;th&gt;Year&lt;/th&gt;
  &lt;th&gt;# Players&lt;/th&gt;
  &lt;th&gt;AVG&lt;/th&gt;
  &lt;th&gt;HR&lt;/th&gt;
  &lt;th&gt;RBI&lt;/th&gt;
  &lt;th&gt;OBP&lt;/th&gt;
  &lt;th&gt;SLG&lt;/th&gt;
  &lt;th&gt;OPS&lt;/th&gt;
  &lt;th&gt;RC&lt;/th&gt;
  &lt;th&gt;BsR&lt;/th&gt;
&lt;/tr&gt;

&lt;tr&gt;
  &lt;td&gt;2006&lt;/td&gt;
  &lt;td&gt;146&lt;/td&gt;
  &lt;td&gt;0.286&lt;/td&gt;
  &lt;td&gt;20.46&lt;/td&gt;
  &lt;td&gt;80.95&lt;/td&gt;
  &lt;td&gt;0.355&lt;/td&gt;
  &lt;td&gt;0.469&lt;/td&gt;
  &lt;td&gt;0.824&lt;/td&gt;
  &lt;td&gt;113.09&lt;/td&gt;
  &lt;td&gt;96.13&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
  &lt;td&gt;2007&lt;/td&gt;
  &lt;td&gt;156&lt;/td&gt;
  &lt;td&gt;0.283&lt;/td&gt;
  &lt;td&gt;19.13&lt;/td&gt;
  &lt;td&gt;79.76&lt;/td&gt;
  &lt;td&gt;0.354&lt;/td&gt;
  &lt;td&gt;0.458&lt;/td&gt;
  &lt;td&gt;0.812&lt;/td&gt;
  &lt;td&gt;110.98&lt;/td&gt;
  &lt;td&gt;93.58&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
  &lt;td&gt;2008&lt;/td&gt;
  &lt;td&gt;137&lt;/td&gt;
  &lt;td&gt;0.280&lt;/td&gt;
  &lt;td&gt;19.62&lt;/td&gt;
  &lt;td&gt;78.03&lt;/td&gt;
  &lt;td&gt;0.350&lt;/td&gt;
  &lt;td&gt;0.457&lt;/td&gt;
  &lt;td&gt;0.807&lt;/td&gt;
  &lt;td&gt;108.99&lt;/td&gt;
  &lt;td&gt;92.95&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
  &lt;td&gt;2009&lt;/td&gt;
  &lt;td&gt;140&lt;/td&gt;
  &lt;td&gt;0.282&lt;/td&gt;
  &lt;td&gt;19.93&lt;/td&gt;
  &lt;td&gt;78.13&lt;/td&gt;
  &lt;td&gt;0.353&lt;/td&gt;
  &lt;td&gt;0.461&lt;/td&gt;
  &lt;td&gt;0.814&lt;/td&gt;
  &lt;td&gt;90.75&lt;/td&gt;
  &lt;td&gt;58.35&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
  &lt;td&gt;2010&lt;/td&gt;
  &lt;td&gt;136&lt;/td&gt;
  &lt;td&gt;0.273&lt;/td&gt;
  &lt;td&gt;18.73&lt;/td&gt;
  &lt;td&gt;75.12&lt;/td&gt;
  &lt;td&gt;0.343&lt;/td&gt;
  &lt;td&gt;0.444&lt;/td&gt;
  &lt;td&gt;0.787&lt;/td&gt;
  &lt;td&gt;85.30&lt;/td&gt;
  &lt;td&gt;55.42&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;

&lt;p&gt;
OK, problems:  I'm not sure if the falloff in Runs Created is really that dramatic, or if I just made a mistake in the previous calculations.  The falloff is certainly consistent with, if more dramatic than, the falloff in the other categories, and fits with the &lt;em&gt;cough&lt;/em&gt; &lt;q&gt;end of the steroid era.&lt;/q&gt;  The falloff in Base Runs is undoubtedly due to errors in my previous calculations.  So for now we'll stop here, and I'll give you a fully redone table in a week or so.
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Sunday, June 12, 2011:  I updated all of the tables mentioned here, including corrected Base Runs and the years 2009 and 2010.  &lt;a href="http://hawknotes.blogspot.com/2011/06/update-on-average-major-league-hitter.html"&gt;All of that data is available here.&lt;/a&gt;&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
At least we've covered the basics of running mySQL and doing some analysis.  I'll try to cover some more of this, along with other tricks and tips from &lt;em&gt;Baseball Hacks&lt;/em&gt; in the near future.  If you've got anything you'd like to look at, leave a comment.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-3382486583372608117?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/3382486583372608117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=3382486583372608117' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/3382486583372608117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/3382486583372608117'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/06/take-me-out-to-squall-game.html' title='Take Me Out to the SQualL Game'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh3.googleusercontent.com/-Dn7J4U61Wv0/TfPzEeDqXpI/AAAAAAAABRE/BKbb8_jU4DQ/s72-c/mysqlpasswd.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-215307354837940206</id><published>2011-05-30T11:12:00.001-04:00</published><updated>2011-12-29T14:53:45.667-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>The Natty Narwhal Upgrade</title><content type='html'>&lt;p&gt;
Like &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Travis_McGee"&gt;Travis McGee&lt;/a&gt;, this week I'm taking an installment of my retirement.  Unlike McGee, my retirement seems to consist of fixing up computers.
&lt;/p&gt;

&lt;p&gt;
So today, Ladies and Gentlemen, Boys and Girls, Desktops and Netbooks, we're going to talk about upgrading Hal here to &lt;a target="_blank" href="http://www.ubuntu.com/"&gt;Ubuntu 11.04&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Yawn.&lt;/em&gt;  This shouldn't really be that big a deal, should it?  You just hit the update button, or type &lt;tt&gt;do-release-upgrade&lt;/tt&gt; at the command line, right?
&lt;/p&gt;

&lt;p&gt;
Well, it's not always that simple.  A friend of mine did that, and he seemed to have a lot of problems.  I'm not sure why, as I never got to examine his system before he reinstalled 10.10.  Maybe it was the change from the Xorg window system and Gnome desktop to &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Wayland_(display_server_protocol)"&gt;Wayland&lt;/a&gt; and the &lt;a target="_blank" href="http://unity.ubuntu.com/about/"&gt;Unity desktop&lt;/a&gt;.  Or not.  Maybe it was just the way the wind was blowing that day.  But I decided not to take the chance on the upgrade, but rather install 11.04 from the ground up.
&lt;/p&gt;

&lt;p&gt;
I didn't have to be pushed hard, because I was leaning toward a clean install anyway.  When I &lt;a target="_blank" href="http://hawknotes.blogspot.com/2010/05/its-here.html"&gt;bought this version of Hal&lt;/a&gt; I was in a hurry to get Linux set up, but wanted to keep Windows 7 around.  As a result, I let Ubuntu do the repartitioning of the disk, and ended up with the entire Linux system in one giant partition.
&lt;/p&gt;

&lt;p&gt;
This is less than optimal.  (&lt;tt&gt;Thanks, Dave.&lt;/tt&gt; &lt;em&gt;Don't mention it, Hal.&lt;/em&gt;) Ideally one wants &lt;tt&gt;/home&lt;/tt&gt; and possibly &lt;tt&gt;/usr/local&lt;/tt&gt; and &lt;tt&gt;/opt&lt;/tt&gt; in partitions separate from the root operating system.  That way when you upgrade the OS, you don't lose your previous data.  (That doesn't mean you shouldn't back up that data before upgrading.  There's a word for people who don't.  The polite form of it is &lt;em&gt;idiot&lt;/em&gt;)
&lt;/p&gt;

&lt;p&gt;
But this requires repartitioning Hal's disk.  Fortunately, all of Hal's memories reside in the &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Disk_partitioning#Extended_partition"&gt;extended partition&lt;/a&gt;, so I don't have to fiddle with the Windows partition.  After about 30 secons of thought, I decided to repartition Hal's big Linux partition into 15GB for &lt;tt&gt;/&lt;/tt&gt;, the root system, another 15GB for &lt;tt&gt;/usr/local&lt;/tt&gt;, &lt;tt&gt;/opt&lt;/tt&gt;, and &lt;tt&gt;/scratch&lt;/tt&gt; (more on how to do this later), and leave the rest for &lt;tt&gt;/home&lt;/tt&gt;. That's probably too much for &lt;tt&gt;/&lt;/tt&gt;, and maybe not enough for &lt;tt&gt;/scratch&lt;/tt&gt;, depending on what I right there, but that's how I'm going to do it this go-round. Ideally gparted would leave the data on &lt;tt&gt;/home&lt;/tt&gt; as is, but that takes forever because of all the data that needs to be moved around, so we're just going to repartition everything and hope the backup holds.
&lt;/p&gt;

&lt;h3&gt;Preparation&lt;/h3&gt;

&lt;p&gt;
First, get the software we'll need.  I downloaded and burned CDs for the 64-bit versions of:
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;a target="_blank" href="http://www.ubuntu.com/"&gt;
      Ubuntu 11.04
    &lt;/a&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;a target="_blank" href="http://www.opensuse.org/en/"&gt;
      openSUSE 11.4
    &lt;/a&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;a target="_blank" href="http://fedoraproject.org/"&gt;
      Fedora 15
    &lt;/a&gt;
    &lt;br /&gt;
    and, last but probably most importantly,
  &lt;/li&gt;
  &lt;li&gt;
    &lt;a target="_blank" href="http://gparted.sourceforge.net/"&gt;
      Gparted Live CD version
    &lt;/a&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
OK, Gparted is obvious:  that's what's going to do the disk repartitioning.  But why the alternative distributions?
&lt;/p&gt;

&lt;p&gt;
Because you never know.  The largely hypothetical long-time reader will remember that &lt;a target="_blank" href="http://www.rcjhawk.us/FC/"&gt;I used to use Fedora&lt;/a&gt;, but that I switched to Ubuntu when the installation of &lt;a target="_blank" href="http://hawknotes.blogspot.com/2006/04/fedora-core-maybe-later.html"&gt;Fedora 5 failed miserably&lt;/a&gt;, and Ubuntu was there, ready and waiting.  So having alternative Linux CDs on hand seems to be a really good idea.  Besides, we bought 100 CDs maybe five years ago and still have a bunch left.  They just aren't used much anymore.  (That's right, rcjhawk is still a trailing indicator for device popularity.)
&lt;/p&gt;

&lt;p&gt;
OK, we've got hopefully every bit of software that we need, so let's go.
&lt;/p&gt;

&lt;h3&gt;Find out what's on your machine&lt;/h3&gt;

&lt;p&gt;
I never remember which packages are installed from one upgrade to the next.  So let's make a list:
&lt;/p&gt;

&lt;pre&gt;
dpkg --get-selections &gt; installed.txt
&lt;/pre&gt;

&lt;p&gt;
Edit installed.txt, leaving out any packages you think will be installed by the system (e.g., kernel, window manager, etc.).  If you can't remember what a package does, delete it too.  If you need it, it will eventually show up as a dependency to a package you want, or you can reinstall with &lt;tt&gt;apt-get&lt;/tt&gt; or &lt;tt&gt;synaptic&lt;/tt&gt;.  The important thing to do here is to remove cruft from the system.  For example, I have the bsd-games package on here.  I never play those games, so why leave them in place?
&lt;/p&gt;

&lt;p&gt;
It would have been nice to make a copy of &lt;tt&gt;/etc/fstab&lt;/tt&gt;, but
some dingbat forgot to do that (more on this later).
&lt;/p&gt;

&lt;h3&gt;Back it all up&lt;/h3&gt;

&lt;p&gt;
Well, not everything.  No need to back up the kernel, or Emacs, or latex, or any of that.  The distribution will provide.  No, I want to back up my data (basically &lt;tt&gt;$HOME&lt;/tt&gt;), the &lt;a target="_blank" href="http://hawknotes.blogspot.com/2010/05/ubuntu-1004-installing-64-bit-intel.html"&gt;Intel Fortran compiler&lt;/a&gt;, a royal pain to install, and my &lt;a target="_blank" href="http://hawknotes.blogspot.com/2010/05/fixing-sox-again.html"&gt;renegade version of SoX&lt;/a&gt;.  So do the following (&lt;tt&gt;/backup&lt;/tt&gt; is my &lt;tt&gt;ext4&lt;/tt&gt; formatted USB disk):
&lt;/p&gt;

&lt;pre&gt;
$ cd
# -rpv == recurse directories,
#  preserve permissions and timestamps,
#  and speak up about it verbosely.
$ cp -rpv dave /backup
# Assuming you're named dave, of course
$ cd /usr
$ cp -rpv local /backup
$ cd /
$ cp -rpv opt /backup
&lt;/pre&gt;

&lt;p&gt;
To be safe, I also had &lt;a target="_blank" href="http://hawknotes.blogspot.com/2010/05/return-with-us-now-to-thrilling-days-of.html"&gt;&lt;tt&gt;backintime&lt;/tt&gt;, my backup manager&lt;/a&gt;, do an additional labeled backup, which should keep it on the disk forever and a day, or at least until &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Maya_calendar"&gt;the end of 2012&lt;/a&gt;.
&lt;/p&gt;

&lt;h3&gt;Repartition&lt;/h3&gt;

&lt;p&gt;
The next step is the scariest one.  I've taken what was an 800+GB partition and broken it up into three parts:  15GB for &lt;tt&gt;/&lt;/tt&gt;, 15GB for what will be &lt;tt&gt;/usr/local&lt;/tt&gt;, &lt;tt&gt;/opt&lt;/tt&gt; and &lt;tt&gt;/scratch&lt;/tt&gt;, and the remainder for &lt;tt&gt;/home&lt;/tt&gt;. It's scary because this wipes out the primary data, so you are now relying on the kindness of backups.  It's theoretically possible to gave &lt;tt&gt;gparted&lt;/tt&gt; to keep all the data in what's going to be the &lt;tt&gt;/home&lt;/tt&gt; partition, but that requires moving a lot of stuff around, at least the way I tried it, and an estimated 18 hours to get it done.  So I just said a prayer, bit my lip, and reformatted.  Fortunately it all went well.
&lt;/p&gt;

&lt;h3&gt;Installation&lt;/h3&gt;

&lt;p&gt;
Not much to say here.  I told Ubuntu that I wanted to do an install with a custom installation, had it mount everything where I wanted it, and let it go.  The usual waiting around occurred.
&lt;/p&gt;

&lt;h3&gt;Copying Files&lt;/h3&gt;

&lt;p&gt;
This was rather easy:  turn on the backup USB disk drive, and copy the files back.  I copied back configuration files I knew I wanted to keep, &lt;em&gt;e.g.&lt;/em&gt; things like &lt;tt&gt;.emacs&lt;/tt&gt; and the &lt;a target="_blank" href="http://burtonini.com/blog/computers/devilspie/"&gt;&lt;tt&gt;.devilspie&lt;/tt&gt; directory&lt;/a&gt;, but I'm letting Ubuntu set up the desktop.  This means I'll have to play with preferences later, but it should get eliminate any conflicts between old and new configuration parameters.
&lt;/p&gt;

&lt;h3&gt;Mounting the Backup Drive&lt;/h3&gt;

&lt;p&gt;
I could just plug the backup drive in and access it at &lt;tt&gt;/media/really_long_hexadecimal_string&lt;/tt&gt;, but what I really want to do is have the backup drive mounted to &lt;tt&gt;/backup&lt;/tt&gt;.  &lt;a target="_blank" href="http://hawknotes.blogspot.com/2010/05/return-with-us-now-to-thrilling-days-of.html"&gt;I've covered this before&lt;/a&gt;, but as I mentioned above, I forgot the UUID of the drive.  You get that with the command:
&lt;/p&gt;

&lt;pre&gt;
blkid
&lt;/pre&gt;

&lt;p&gt;
which gives you all the UUID of all connected disks.
&lt;/p&gt;

&lt;h3&gt;
Restoring &lt;tt&gt;/usr/local&lt;/tt&gt; and &lt;tt&gt;/opt&lt;/tt&gt;
&lt;/h3&gt;

&lt;p&gt;
This is awkward.  Add-on programs that you compile yourself generally go into &lt;tt&gt;/usr/local&lt;/tt&gt;.  Other programs, such as the Intel Fortran compiler and Google's Picasa, end up in &lt;tt&gt;/opt&lt;/tt&gt;.  I want both to stick around between upgrades, so they need to be out of the &lt;tt&gt;/&lt;/tt&gt; partition.  But I don't want &lt;em&gt;two&lt;/em&gt; extra partitions.  So here's what I did:
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a partition &lt;tt&gt;/usr/local&lt;/tt&gt;&lt;/li&gt;

&lt;li&gt;Create a directory &lt;tt&gt;/usr/local/opt&lt;/tt&gt;&lt;/li&gt;

&lt;li&gt;Copy all of the &lt;tt&gt;/usr/local&lt;/tt&gt; files where they belong.&lt;/li&gt;

&lt;li&gt;Copy all of the &lt;tt&gt;/opt&lt;/tt&gt; files to &lt;tt&gt;/usr/local/opt&lt;/tt&gt;&lt;/li&gt;

&lt;li&gt;Then, as root, run the command &lt;br /&gt;
&lt;tt&gt;ln -s /usr/local/opt /opt&lt;/tt&gt;&lt;/li&gt;

&lt;li&gt;
If you want a &lt;tt&gt;/scratch&lt;/tt&gt; directory, do the same thing, but don't forget to make the original world writable:
&lt;pre&gt;
# mkdir /usr/local/scratch
# chmod 777 /usr/local/scratch
# ln -s /usr/local/scratch /scratch
&lt;/pre&gt;
&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;Restoring your add-on packages.&lt;/h3&gt;

&lt;p&gt;
Now we want to get back all of our old packages, the ones that aren't installed by default, at least so far as Ubuntu will let us.  Remember that file &lt;tt&gt;installed.txt&lt;/tt&gt; I mentioned you should create and edit?  Here's how we'll use it:
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;tt&gt;System =&amp;gt; Administration =&amp;gt; Update Manager&lt;/tt&gt;&lt;/li&gt;

&lt;li&gt;Click on &lt;tt&gt;Settings&lt;/tt&gt; in the lower left corner&lt;/li&gt;

&lt;li&gt;Under &lt;tt&gt;Ubuntu Software&lt;/tt&gt; make sure all of the sources you want enabled are.  If you don't want proprietary drives, &lt;em&gt;etc.&lt;/em&gt;, turn them off.  Do the same under &lt;tt&gt;Other Software&lt;/tt&gt;&lt;/li&gt;

&lt;li&gt;Open a terminal window and go the the directory where you have that &lt;tt&gt;installed.txt&lt;/tt&gt;&lt;/li&gt;

&lt;li&gt;Run the following commands:
&lt;pre&gt;
sudo apt-get update
sudo apt-get install `awk '{print $1}' installed.txt | xargs`
&lt;/pre&gt;
&lt;/li&gt;

&lt;li&gt;You'll probably get some error messages, but they're pretty clear about what you need to fix.  Edit the &lt;tt&gt;installed.txt&lt;/tt&gt; file to match.&lt;/li&gt;

&lt;li&gt;This will take a while, as all the packages have to be downloaded from the net.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;What Works&lt;/h3&gt;

&lt;p&gt;
Pretty much everything.  I selected &lt;tt&gt;Gnome-classic&lt;/tt&gt; for my desktop, and after a little fiddling to with &lt;tt&gt;System =&amp;gt; Preferences =&amp;gt; Startup Applications&lt;/tt&gt; got the system to look pretty much as it did before.
&lt;/p&gt;

&lt;p&gt;
As for third party software, the Intel Fortran compiler still works fine.  I was able to reinstall &lt;a target="_blank" href="http://picasa.google.com/linux/download.html#picasa30"&gt;Picasa&lt;/a&gt; from Google's supplied 64-bit &lt;tt&gt;.deb&lt;/tt&gt;.
&lt;/p&gt;

&lt;p&gt;
Wayland seems to work just like Xorg, at least from my point of view.  It pops up windows in the same way as before, and I can run, say
&lt;br /&gt;
&lt;tt&gt;ssh -X majel&lt;/tt&gt;
&lt;br /&gt;
to get me to another machine, and then run
&lt;br /&gt;
&lt;tt&gt;firefox&lt;/tt&gt;
&lt;br /&gt;
on majel, and the window pops up here on Hal.  So no major problems for me there.
&lt;/p&gt;

&lt;h3&gt;What doesn't work&lt;/h3&gt;

&lt;p&gt;
&lt;a target="_blank" href="http://www.google.com/earth/index.html"&gt;Google Earth&lt;/a&gt;.  Maybe this is a 64-bit problem, I don't know.  I tried using Google's &lt;tt&gt;.deb&lt;/tt&gt; file, and &lt;a target="_blank" href="http://www.liberiangeek.net/2011/03/install-google-earth-ubuntu-11-04-natty-narwhal/"&gt;the official Ubuntu method&lt;/a&gt;.  Neither worked.
&lt;/p&gt;

&lt;p&gt;
By default Ubuntu installs the 3-D version of Unity, which requires a pretty good graphics accelerator.  Hal lives in 2-d, so that wouldn't run.  (Funny, the Unity desktop shows up when you run the live CD.)  I installed the 2-D version and that works.  Which brings me to
&lt;/p&gt;

&lt;h3&gt;What Sucks&lt;/h3&gt;

&lt;p&gt;
Unity.  From my limited experience (about two minutes, after which I ran away screaming), it's an overblown and somewhat hideous version and of the Mac desktop.  But don't mind me, I was the last person on Earth to use &lt;a target="_blank" href="http://www.fvwm.org/"&gt;&lt;tt&gt;fvwm&lt;/tt&gt;&lt;/a&gt;.  I suppose if I played around awhile I could make Unity behave the way I wanted it to, but why bother, since Ubuntu still supplies the classic Gnome desktop.  Mind you, I've seen &lt;a target="_blank" href="http://gnome3.org/"&gt;Gnome 3&lt;/a&gt;, and I don't like that, either.  (The word you're looking for is &lt;em&gt;Luddite&lt;/em&gt;.)
&lt;/p&gt;

&lt;h3&gt;Summary&lt;/h3&gt;

&lt;p&gt;
All in all, a successful update, as long as I stay way from Unity.  I have one more computer that needs updating to 11.4, I think I'll just try that as a distribution update.  If it doesn't work, I can always do a full install.
&lt;/p&gt;

&lt;h3&gt;More Later&lt;/h3&gt;

&lt;p&gt;
Troubles will surface, they always do.  When they do, I'll write about them here.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-215307354837940206?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/215307354837940206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=215307354837940206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/215307354837940206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/215307354837940206'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/05/natty-narwhal-upgrade.html' title='The Natty Narwhal Upgrade'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-2477875875481347683</id><published>2011-05-21T17:37:00.000-04:00</published><updated>2011-05-21T17:37:00.020-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='File Compression'/><title type='text'>Compression</title><content type='html'>&lt;p&gt;
The other day an email arrived from   &lt;a target="_blank" href="http://sourceforge.net/"&gt;sourceforge&lt;/a&gt; which mentioned that they were hosting the file compression program &lt;a target="_blank" href="http://www.7-zip.org/"&gt;7-zip&lt;/a&gt;.  Now I had used 7-zip under windows, as an all purpose archiving tool, mostly for reading zip files.  I'd never thought of it in a Linux context.  But both openSuSE and Ubuntu have the command-line version available, &lt;a target="_blank" href="http://penguinpetes.com/b2evo/index.php?title=10_reasons_why_the_command_line_is_more"&gt;and what more do you need&lt;/a&gt;?
&lt;/p&gt;

&lt;p&gt;
In OpenSuSE, the RPM is called, simply enough, &lt;tt&gt;7z&lt;/tt&gt;.  In Ubuntu it's a bit more complicated.  There's &lt;tt&gt;p7zip&lt;/tt&gt;, which provides the bare-bones standalone version of the compression program, &lt;tt&gt;7zr&lt;/tt&gt;, and a wrapper &lt;tt&gt;p7zip&lt;/tt&gt;, which makes &lt;tt&gt;7zr&lt;/tt&gt; work like &lt;a target="_blank" href="http://www.gzip.org/"&gt;&lt;tt&gt;gzip&lt;/tt&gt;&lt;/a&gt;.  For the full-blown &lt;tt&gt;7z&lt;/tt&gt; program, you want the package &lt;tt&gt;p7zip-full&lt;/tt&gt;, which includes &lt;tt&gt;7z&lt;/tt&gt;.  While you're at it you might want to get the &lt;tt&gt;p7zip-rar&lt;/tt&gt; package, which lets you decompress RAR files.
&lt;/p&gt;

&lt;p&gt;
The reason you want &lt;tt&gt;7z&lt;/tt&gt; and not just &lt;tt&gt;7zr&lt;/tt&gt; is that the smaller program only compresses to the &lt;a target="_blank" href="http://www.7-zip.org/7z.html"&gt;7z format&lt;/a&gt;, but, as it says in the blurb,
&lt;/p&gt;

&lt;blockquote&gt;
not only does [7z] handle 7z but also ZIP, Zip64, CAB, RAR, ARJ,    GZIP, BZIP2, TAR, CPIO, RPM, ISO and DEB archives.
&lt;/blockquote&gt;

&lt;p&gt;
And by handle, they mean &lt;q&gt;read &lt;em&gt;and write&lt;/em&gt; to these formats&lt;/q&gt; (except RAR).  So I could create a zip archive with &lt;tt&gt;7z&lt;/tt&gt;, or a &lt;tt&gt;gzip/bzip2&lt;/tt&gt; compressed tarball.  And guess what?
&lt;/p&gt;

&lt;blockquote&gt;
7z compression is 30-50% better than ZIP compression.
&lt;/blockquote&gt;

&lt;p&gt;
Is it?  Well, let's find out.
&lt;/p&gt;

&lt;h3&gt;Test 1&lt;/h3&gt;

&lt;p&gt;
Presented for your consideration: an uncompressed tarball:
&lt;/p&gt;

&lt;pre&gt;
$ ls -l Ru.tar
-rw-r--r-- 1 dave dave 26716160 2011-05-21 15:41 Ru.tar
&lt;/pre&gt;

&lt;p&gt;
This is IO from the &lt;a target="_blank" href="http://elk.sourceforge.net/"&gt;elk FP-LAPW code&lt;/a&gt;, so it has a lot of repetition of text, and what for our purposes are a bunch of random numbers.  First we'll try compressing it with programs using their native formats.  I'll try for maximum compression in all cases.  Note that zip and &lt;tt&gt;7z&lt;/tt&gt; will create separate archives, while &lt;tt&gt;gzip&lt;/tt&gt; and &lt;tt&gt;bzip2&lt;/tt&gt; compress the file in place.
&lt;/p&gt;

&lt;table summary="Compression of Ru.tar by various programs in the native format" border="2"&gt;
&lt;tr&gt;&lt;th&gt;Program&lt;/th&gt; &lt;th&gt;Command&lt;/th&gt; &lt;th&gt;File Size&lt;/th&gt; &lt;th&gt;Ratio&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;zip&lt;/td&gt; &lt;td&gt;zip -9 Ru Ru.tar&lt;/td&gt; &lt;td&gt;3899523&lt;/td&gt; &lt;td&gt;0.146&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;gzip&lt;/td&gt; &lt;td&gt;gzip -9 Ru.tar&lt;/td&gt; &lt;td&gt;3899386&lt;/td&gt; &lt;td&gt;0.146&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;bzip2&lt;/td&gt; &lt;td&gt;bzip2 -9 Ru.tar&lt;/td&gt; &lt;td&gt;2992422&lt;/td&gt; &lt;td&gt;0.112&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;7z&lt;/td&gt; &lt;td&gt;7zr a -mx=9 Ru.7z Ru.tar&lt;/td&gt; &lt;td&gt;2242708&lt;/td&gt; &lt;td&gt;0.084&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
Pretty good, huh?  As advertised, &lt;tt&gt;7z&lt;/tt&gt; is about 40% better than &lt;tt&gt;zip/gzip&lt;/tt&gt;, and 25% better than &lt;tt&gt;bzip2&lt;/tt&gt;. But wait, there's more.  Not every computer is going to have &lt;tt&gt;7z&lt;/tt&gt; available, so you may want to compress files using a more established protocol.  &lt;tt&gt;7z&lt;/tt&gt; can do that, too, which is why we wanted it, not just &lt;tt&gt;7zr&lt;/tt&gt;:
&lt;/p&gt;

&lt;table summary="Compression of Ru.tar using 7z to other formats" border="2"&gt;
&lt;tr&gt;&lt;th&gt;Format&lt;/th&gt; &lt;th&gt;Command&lt;/th&gt; &lt;th&gt;File Size&lt;/th&gt; &lt;th&gt;Ratio&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;zip&lt;/td&gt; &lt;td&gt;7z a -mx=9 -tzip Ru.zip Ru.tar&lt;/td&gt; &lt;td&gt;3287420&lt;/td&gt; &lt;td&gt;0.123&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;gzip&lt;/td&gt; &lt;td&gt;7z a -mx=9 -tgzip Ru.tar.gz Ru.tar&lt;/td&gt;
&lt;td&gt;3287335&lt;/td&gt; &lt;td&gt;0.123&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;bzip2&lt;/td&gt; &lt;td&gt;7z a -mx=9 -tbzip2 Ru.tar.bz2 Ru.tar&lt;/td&gt;
&lt;td&gt;2989193&lt;/td&gt; &lt;td&gt;0.112&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
So &lt;tt&gt;7z&lt;/tt&gt; compresses to &lt;tt&gt;zip/gzip&lt;/tt&gt; better than the native programs do it themselves.  It doesn't really outperform &lt;tt&gt;bzip2&lt;/tt&gt; here, though.  The only disadvantage compared to &lt;tt&gt;gzip&lt;/tt&gt; or &lt;tt&gt;bzip2&lt;/tt&gt; is that it doesn't compress the files in place, unless you go through a script such as the one in &lt;tt&gt;/usr/bin/p7zip&lt;/tt&gt;.
&lt;/p&gt;

&lt;h3&gt;Test 2&lt;/h3&gt;

&lt;p&gt;
&lt;a target="_blank" href="http://zenwerx.com/piorig/"&gt;Pi to 4 million Decimals&lt;/a&gt; has, duh, &amp;pi; to, actually, 4,194,034 places.  The file &lt;a href="http://zenwerx.com/pi.tar.gz"&gt;&lt;tt&gt;pi.tar.gz&lt;/tt&gt;&lt;/a&gt; has it in ascii, with a bit of header information.  If we uncompress that file, it comes in at 4362370 bytes.  Since the digits of &amp;pi; don't repeat, it's hard for a compression program to find blocks of bytes to compress. The following table lists the compressions achieved by our test programs, in whatever formats they can use. (See the above tables for the appropriate commands.)  Let's see how everybody does:
&lt;/p&gt;

&lt;table summary="Comparison of compression programs and protocals using 4,000,000 digits of pi" border="2"&gt;
&lt;tr&gt;&lt;th&gt;Program&lt;/th&gt; &lt;th&gt;Protocol&lt;/th&gt; &lt;th&gt;File Size&lt;/th&gt; &lt;th&gt;Ratio&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;None&lt;/td&gt; &lt;td&gt;None&lt;/td&gt; &lt;td&gt;4362370&lt;/td&gt; &lt;td&gt;1.000&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;zip&lt;/td&gt; &lt;td&gt;zip&lt;/td&gt; &lt;td&gt;2041130&lt;/td&gt; &lt;td&gt;0.468&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;gzip&lt;/td&gt; &lt;td&gt;gzip&lt;/td&gt; &lt;td&gt;2040997&lt;/td&gt; &lt;td&gt;0.468&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;bzip2&lt;/td&gt; &lt;td&gt;bzip2&lt;/td&gt; &lt;td&gt;1863892&lt;/td&gt; &lt;td&gt;0.427&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;7z&lt;/td&gt; &lt;td&gt;zip&lt;/td&gt; &lt;td&gt;1983378&lt;/td&gt; &lt;td&gt;0.455&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;7z&lt;/td&gt; &lt;td&gt;gzip&lt;/td&gt; &lt;td&gt;1983297&lt;/td&gt; &lt;td&gt;0.455&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;7z&lt;/td&gt; &lt;td&gt;bzip2&lt;/td&gt; &lt;td&gt;1860047&lt;/td&gt; &lt;td&gt;0.426&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;7z&lt;/td&gt; &lt;td&gt;7z&lt;/td&gt; &lt;td&gt;1884999&lt;/td&gt; &lt;td&gt;0.432&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
Here, &lt;tt&gt;bzip2&lt;/tt&gt; is competitive with &lt;tt&gt;7z&lt;/tt&gt;.  Oddly, though, you should use &lt;tt&gt;7z&lt;/tt&gt; to do the &lt;tt&gt;bzip2&lt;/tt&gt; compression.  Weird, huh?  But still, &lt;tt&gt;7z&lt;/tt&gt; is pretty good.
&lt;/p&gt;

&lt;h3&gt;Wrapping Up&lt;/h3&gt;

&lt;p&gt;
So what's not to like?
&lt;/p&gt;

&lt;p&gt;
For one thing, &lt;tt&gt;7z&lt;/tt&gt; is slow.  If you just want to quickly compress a file, go ahead and use &lt;tt&gt;gzip&lt;/tt&gt;, or &lt;tt&gt;bzip2&lt;/tt&gt;.  There is a price to pay for better compression.
&lt;/p&gt;

&lt;p&gt;
Then, too, there's a warning on the &lt;tt&gt;7z&lt;/tt&gt; man page:
&lt;/p&gt;

&lt;blockquote&gt;
DO NOT USE the 7-zip format for backup purpose on Linux/Unix because 7-zip does not store the owner/group of the file.
&lt;/blockquote&gt;

&lt;p&gt;
you can get around this by piping tar into &lt;tt&gt;7z&lt;/tt&gt;:
&lt;/p&gt;

&lt;blockquote&gt;
tar cf - directory_to_be_archived | 7z a -si directory.tar.7z
&lt;/blockquote&gt;

&lt;p&gt;
which creates the analog of a &lt;tt&gt;gzip/bzip2&lt;/tt&gt; tarball.
&lt;/p&gt;


&lt;p&gt;
And finally, the native &lt;tt&gt;7z&lt;/tt&gt; format isn't standard, yet, so it's not going to be available everywhere, and might even vanish.  But &lt;tt&gt;7z&lt;/tt&gt; and its compression algorithm LZMA are open source, so they are likely to stay around for awhile.  A few years ago &lt;tt&gt;bzip2&lt;/tt&gt; wasn't standard, and once upon a time neither was &lt;tt&gt;gzip&lt;/tt&gt;.  It's probably safe to compress your files to &lt;tt&gt;7z&lt;/tt&gt; format, but if you want to be safe, use &lt;tt&gt;7z&lt;/tt&gt; to compress to &lt;tt&gt;gzip&lt;/tt&gt; or &lt;tt&gt;bzip2&lt;/tt&gt; format.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-2477875875481347683?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/2477875875481347683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=2477875875481347683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2477875875481347683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2477875875481347683'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/05/compression.html' title='Compression'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-5631750558370561050</id><published>2011-03-18T22:06:00.002-04:00</published><updated>2011-03-18T22:09:36.494-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Basketball'/><category scheme='http://www.blogger.com/atom/ns#' term='Kansas'/><title type='text'>Why I Hate March</title><content type='html'>&lt;p&gt;I just spent the last three hours not watching the &lt;a href="http://www.kansascity.com/2011/03/18/2736513/ku-vs-boston-u.html"&gt;Kansas-Boston University&lt;/a&gt; first round NCAA game.  In case you didn't join me in not watching, KU spent the first 25 or so minutes wondering why the BU players weren't genuflecting.  Then they concentrated for a few minutes, and the game was over.  Because of course, you know, when #1 meets #16, #16 has never won, right?  &lt;/p&gt;

&lt;p&gt;Trust me.  Some day it will happen.  And which team will that be?  We'll, let's look at the past for some clues, &lt;a href="http://projects.washingtonpost.com/ncaa/mens-basketball/search/?pri_school_id=17&amp;pri_conference=&amp;pri_coach=&amp;pri_seed_from=1&amp;pri_seed_to=16&amp;pri_power_conf=&amp;pri_bid_type=&amp;opp_school_id=&amp;opp_conference=&amp;opp_coach=&amp;opp_seed_from=1&amp;opp_seed_to=16&amp;opp_power_conf=&amp;opp_bid_type=&amp;round=7&amp;from=1985&amp;to=2011&amp;submit="&gt;starting here&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;2010: #1 Seed, lost in second round&lt;/li&gt;
&lt;li&gt;2007: #1 Seed, lost in Sweet 16&lt;/li&gt;
&lt;li&gt;1998: #1 Seed, lost in second round&lt;/li&gt;
&lt;li&gt;1997: #1 Seed, lost in Sweet 16&lt;/li&gt;
&lt;li&gt;1995: #1 Seed, lost in Sweet 16&lt;/li&gt;
&lt;li&gt;1992: #1 Seed, lost in second round&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not to mention Bradley, or Bucknell, or the suffering I did during the Ted Owens years.&lt;/p&gt;

&lt;p&gt;It's enough to make one start &lt;a href="http://firebillself.com/"&gt;a website&lt;/a&gt;, except a) someone beat me too it, and b) Roy was as bad, or worse, because he didn't win a Championship until he clicked his heels three times and went home.&lt;/p&gt;

&lt;p&gt;But mark my words, the #1 Seed in NCAA history to lose in the first round will have a six-letter name on the front of the jersey, and have two Crimson and Blue mascots that look &lt;a href="http://big12football.net/kansasjayhawksmascot.html"&gt;something like this&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-5631750558370561050?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/5631750558370561050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=5631750558370561050' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/5631750558370561050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/5631750558370561050'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/03/why-i-hate-march.html' title='Why I Hate March'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-2595541941584815646</id><published>2011-02-20T19:05:00.000-05:00</published><updated>2011-02-20T19:05:32.608-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humor?'/><category scheme='http://www.blogger.com/atom/ns#' term='television'/><title type='text'>Superbowl Commercials</title><content type='html'>&lt;p&gt;There weren't many that were any good this year.  I'll show you my favorite, below, but I found that a lot of people didn't get the reference.  So let's go back to September, 1979, when this famous commercial aired, starting Pittsburgh's Mean Joe Green:&lt;/p&gt;

&lt;iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/xffOCZYX6F8" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;

&lt;p&gt;And now that we've set the stage, here's my favorite commercial from this year's Superbowl:&lt;/p&gt;

&lt;iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/cH3vCSAAA8A" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;

&lt;p&gt;And one more reference to TV gone by:&lt;/p&gt;

&lt;iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/UwgJzNHvJ-c" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-2595541941584815646?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/2595541941584815646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=2595541941584815646' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2595541941584815646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2595541941584815646'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/02/superbowl-commercials.html' title='Superbowl Commercials'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/xffOCZYX6F8/default.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-3212098169572080128</id><published>2011-01-26T19:30:00.000-05:00</published><updated>2011-01-26T19:30:47.814-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Macs'/><title type='text'>FUSE on the Mac</title><content type='html'>&lt;p&gt;Awhile ago I wrote about how one can &lt;a href="http://hawknotes.blogspot.com/2010/11/mounting-remote-computer-files-with.html"&gt;mount remote computer filesystems using ssh.&lt;/a&gt;  That was for Linux.  You can do it with Mac OS X as well, but &lt;a href="http://en.wikipedia.org/wiki/Filesystem_in_Userspace"&gt;FUSE (File System in UserSpace)&lt;/a&gt; isn't installed by default, as it is in modern Linux systems.&lt;/p&gt;

&lt;p&gt;So first you need to get FUSE installed.  The package I use is called, duh, &lt;a href="http://code.google.com/p/macfuse/"&gt;MacFUSE&lt;/a&gt;.  It installs like a standard Mac package:  &lt;a href="http://code.google.com/p/macfuse/downloads/detail?name=MacFUSE-2.0.3,2.dmg"&gt;Download the disk image&lt;/a&gt;, click on it, and go.&lt;/p&gt;

&lt;p&gt;Next is sshfs itself.  There seem to be many versions, but &lt;a href="http://code.google.com/p/macfuse/source/browse/#svn%2Ftrunk%2Ffilesystems%2Fsshfs%2Fbinary%253Fstate%253Dclosed"&gt;Google's seems to work well.&lt;/a&gt;  Download the appropriate version for your OS (the Leopard version works on Snow Leopard), rename it &lt;tt&gt;sshfs&lt;/tt&gt;, make it executable, and put it in your path.  From then on it works pretty much like in Linux, with minor differences.  Assuming you have a directory ~/hal on your Mac, you can look at the files on your Linux machine hal with the command&lt;/p&gt;

&lt;pre&gt;sshfs rchawk@hal:/home/rcjhawk ~/hal&lt;/pre&gt;

&lt;p&gt;So a file named &lt;tt&gt;/home/rcjhawk/Documents/testthis.doc&lt;/tt&gt; on hal will appear as
&lt;tt&gt;~/hal/Documents/testthis.doc&lt;/tt&gt; on your Mac.&lt;/p&gt;

&lt;p&gt;And it's simple to unmount it:&lt;/p&gt;

&lt;pre&gt;umount ~/hal&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-3212098169572080128?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/3212098169572080128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=3212098169572080128' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/3212098169572080128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/3212098169572080128'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/01/fuse-on-mac.html' title='FUSE on the Mac'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-3579578094732892965</id><published>2011-01-05T13:02:00.002-05:00</published><updated>2011-01-05T13:05:34.212-05:00</updated><title type='text'>A More Perfect World</title><content type='html'>&lt;a href="http://xkcd.com/843/"&gt;&lt;img src="http://imgs.xkcd.com/comics/misconceptions.png" alt="http://xkcd.com/843 I wish I lived in this universe." /&gt;&lt;/a&gt;

&lt;p&gt;Me, to.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/List_of_common_misconceptions"&gt;Wikipedia's List of Common Misconceptions.&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-3579578094732892965?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/3579578094732892965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=3579578094732892965' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/3579578094732892965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/3579578094732892965'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2011/01/more-perfect-world.html' title='A More Perfect World'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-5310885092784777416</id><published>2010-12-30T20:19:00.000-05:00</published><updated>2010-12-30T20:19:19.792-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogs'/><title type='text'>Happy New Year</title><content type='html'>&lt;p&gt;This blog started &lt;a href="http://hawknotes.blogspot.com/2003/12/i-came-i-saw-i-blogged.html"&gt;just over seven years ago&lt;/a&gt;, and sometime tonight or tomorrow it will get its forty thousandth recorded hit.  Thanks to all of you for listening.&lt;/p&gt;

&lt;p&gt;Thanks to a &lt;a target="_blank" href="http://penguinpetes.com/b2evo/index.php?title=tech_pet_peeves_for_2010&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1"&gt;Penguin Pete rant&lt;/a&gt; (see &lt;q&gt;Sitemaps&lt;/q&gt;). I've discovered Google's &lt;a target="_blank" href="https://www.google.com/webmasters/tools/"&gt;webmaster tools&lt;/a&gt; and &lt;a target="_blank" href="http://www.google.com/analytics/index.html"&gt;Analytics&lt;/a&gt;.  My New Year's Blogging Resolution is to learn how to use these next year.&lt;sup&gt;&amp;dagger;&lt;/sup&gt;  If I come up with any neat tricks I'll let you know.&lt;/p&gt;

&lt;p&gt;In the meantime, Happy New Year, everyone.&lt;/p&gt;

&lt;p&gt;&lt;sup&gt;&amp;dagger;&lt;/sup&gt; My primary resolution is to still have a job next year.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-5310885092784777416?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/5310885092784777416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=5310885092784777416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/5310885092784777416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/5310885092784777416'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/12/happy-new-year.html' title='Happy New Year'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-3320942277027761138</id><published>2010-12-27T17:13:00.000-05:00</published><updated>2010-12-27T17:13:22.349-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humor?'/><title type='text'>Should We Call It gnarcissism?</title><content type='html'>&lt;p&gt;Linux Journal, or, more properly, the janitor at Linux Journal since everyone else is off this week, is running a pole asking &lt;a target="_blank" href="http://www.linuxjournal.com/content/do-you-google-yourself"&gt;if you &lt;q&gt;Google&amp;reg;&lt;/q&gt; yourself&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The answer I'd choose isn't there:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;No, because there are at least &lt;a target="_blank" href="http://www.google.com/search?&amp;q=michael+mehl"&gt;a half-dozen people&lt;/a&gt;&lt;sup&gt;*&lt;/sup&gt; with the same name who are at least as famous as I am, and that doesn't count the 1,300 or so in China.&lt;sup&gt;&amp;dagger;&lt;/sup&gt;&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;&lt;sup&gt;*&lt;/sup&gt; Yes, I know, but only for the purpose of this post.&lt;sup&gt;&amp;sect;&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;&lt;sup&gt;&amp;dagger;&lt;/sup&gt;Working from the old &lt;a target="_blank" href="http://www.ifood.tv/blog/if_youre_one_in_a_million_youre_not_as_special_as_you_think_you_are"&gt;if you're one in a million&lt;/a&gt; line.&lt;/p&gt;

&lt;p&gt;&lt;sup&gt;&amp;sect;&lt;/sup&gt;That's my story, and I'm sticking to it.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-3320942277027761138?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/3320942277027761138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=3320942277027761138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/3320942277027761138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/3320942277027761138'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/12/should-we-call-it-gnarcissism.html' title='Should We Call It gnarcissism?'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-1319249576377824498</id><published>2010-12-25T21:20:00.000-05:00</published><updated>2010-12-25T21:20:23.423-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='television'/><title type='text'>The Christmas Toy</title><content type='html'>&lt;p&gt;So here I am, Christmas Evening, waiting for &lt;a target="_blank" href="http://bbcamerica.com/shows/doctor-who/episodes/2010-special-a-christmas-carol.jsp"&gt;BBC America to broadcast the Dr. Who Christmas special&lt;/a&gt; and playing with my new toy:  &lt;a target="_blank" href="http://www.logitech.com/en-za/remotes/universal-remotes/devices/6621"&gt;a Logitech Harmony 650 &lt;q&gt;Universal&lt;/q&gt; remote.&lt;/a&gt;  I bought the thing at Radio Shack because: a) It was cheap ($69.95), and b) I'm sick and tired of having to manipulate three remotes to change from FIOS to BluRay to USB/Harddisk when watching shows on the bigscreen TV.&lt;/p&gt;

&lt;p&gt;The neat thing about the Harmony series of remotes is that you program it on-line.  The bad part is that there isn't a native Linux program to do it.  There is something called &lt;a target="_blank" href="http://www.phildev.net/concordance/"&gt;Concordance&lt;/a&gt; which is supposed to work, but I'll try that out when I'm prepared to trash the remote if the software fraks out, OK?  It's not worth the struggle (forgive me, Saint Richard).&lt;/p&gt;

&lt;p&gt;So we boot Hal up in Windows 7 mode, and I'm blogging what's going on using a laptop.&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;First:  gather up the model numbers of the gadgets to be used.  That's fairly easy.  I've got a Samsung LCD 46 inch TV, and the model numbers on the side.  A Samsung BluRay BD-P360.  The hardest part is the FIOS DVR.  It's by Motorola, and looking at the pictures on the FIOS site it appears to be a 6416.  We'll see.&lt;/li&gt;

&lt;li&gt;Launch IE8 on Hal (&lt;em&gt;&lt;q&gt;NNNNOOOOO!!!!!!!&lt;/q&gt;&lt;/em&gt;).  Go to http:www.logitech.com/myharmony and create an account.  Click on &lt;q&gt;My Account.&lt;/q&gt;  No registration box.  Click on the safest looking link, &lt;q&gt;Go to My Stuff&lt;/q&gt;  There's a login screen and a registration option there.  For some idiot reason they want a daytime phone number.  Tempted to give them the one for our security, but refrain.&lt;/li&gt;

&lt;li&gt;Click on Product Support.  Says it will detect USB corded product.  The unit comes with a USB 2 cable, but of course the connector on the remote side isn't standard USB2.  Annoying, especially if I loose the cord, but I sort of forfeited the moral outrage option when I booted into Windows.  So plug it in, let Windows find the driver software, and click the &lt;q&gt;Detect your devices&lt;/q&gt; button.  Of course Logitech has an IE add-on that has to be installed.  It seems to work.  It says I've got something called an N/N: N-10003 Harmony 650 remote.  Well, I know the Harmony and 650 part are right.
&lt;/li&gt;

&lt;li&gt;
It's not particularly obvious what to do next.  Click &lt;q&gt;Download Software&lt;/q&gt; and get version 7.7.0-WIN-x86 version of LogitechHarmonyRemote, I guess.  Install that.  You know, I'm kind of glad I'm doing all of this on the Windows side.  Installation involves the usual number of clicks to accept the license.  Eventually an Icon shows up on my desktop and the thing launches.  First thing it wants to know is if it should check for updates.  Surprisingly, there are none.
&lt;/li&gt;

&lt;li&gt;
Log in.  You'd think the account I just set up with Harmony would work, but no.  So set up another account here.  It's another complete registration, folks.
&lt;/li&gt;

&lt;li&gt;
Now things start.  It finds my remote (again).  Keep hitting Next until we get to the Add Device page. Adding devices seems straightforward, so long as you have the right device numbers.  Fortunately they give you examples of how they want the information entered in.  
&lt;/li&gt;

&lt;li&gt;Once I finally got the right models in, the software found my devices.  The only question I had to ask is if I wanted to turn the cable box off when it wasn't in use.  I said yes.  We'll see if that's a good idea or not. (I worry what's going to happen when I switch devices.  Is the TV going to be out of sync with the cable box?)&lt;/li&gt;

&lt;li&gt;Specify that FIOS uses HDMI1 on the TV, and the BluRay uses HDMI2.&lt;/li&gt;

&lt;li&gt;And somehow we lost the signal, so I HAVE TO LOG IN AGAIN????  And it lost the connection to the remote.  But now it has, indeed, started downloading the settings to the remote.&lt;/li&gt;

&lt;li&gt;Looks done.  I'm told to disconnect the remote and go try it out.&lt;/li&gt;

&lt;li&gt;Preliminary tests done.  It mostly works.   There are several glitches, though:

&lt;ol&gt;
&lt;li&gt;Both the TV remote and the FIOS remote have options for resizing the picture on the screen.  It's especially handy when you are watching a standard definition channel, but they're broadcasting something in letterbox format (as in the above-mentioned Dr. Who special).  Resize the picture, and it fits the whole screen.  Not high-def, but in this case bigger is better.  The 650 doesn't have such a button.
&lt;/li&gt;

&lt;li&gt;
The FIOS remote has a standalone DVR button, which bypasses the main menu and takes you to the stuff you use most.  The 650 doesn't, you have to go through the main Menu (though the Menu, Info, and Guide buttons work exactly the way they should, as does the Favorites option on the 650's screen).
&lt;/li&gt;

&lt;li&gt;
The worst problem:  If I want to stream Netflix using the BluRay, I press a button labeled &lt;q&gt;B&lt;/q&gt; on the BluRay remote.  One of four buttons, Red/A, Green/B, Yellow/C, Green/D.  The 650 has unlabeled Red/Blue/Yellow/Green buttons, but they don't do anything to the BluRay.  Since I stream Netflix as much as watch DVDs, if not more, this is a serious difficulty, and a deal-breaker.
&lt;/li&gt;
&lt;/ol&gt;

&lt;/li&gt;

&lt;li&gt;
Back to Win-Hal.  Click the &lt;q&gt;I need to make some adjustments&lt;/q&gt; box.  Log in again.  At least this time it remembered my password.
&lt;/li&gt;

&lt;li&gt;
There's a &lt;q&gt;Customize Buttons&lt;/q&gt; section for the remotes.  For the BluRay, set up &lt;q&gt;Blue&lt;/q&gt; to be Netflix, &lt;q&gt;Yellow&lt;/q&gt; Pandora, and &lt;q&gt;Green&lt;/q&gt; for YouTube.  &lt;q&gt;A/Red&lt;/q&gt; on the BluRay is Blockbuster, which we don't use.  For the FIOS box, set &lt;q&gt;A&lt;/q&gt; on the screen (not to be confused with &lt;q&gt;A/Red&lt;/q&gt; below) to &lt;q&gt;Aspect,&lt;/q&gt; which should set the screen size properly.  While we're at it, set &lt;q&gt;B&lt;/q&gt; up there to &lt;q&gt;Close Caption,&lt;/q&gt; something we use a lot since we're old.  Do that for the BluRay as well.  I may have to tweak that later.  Can't find a DVR button option, but I may have a way around that. Let me test out the new setup and get back to you in a minute.
&lt;/li&gt;

&lt;li&gt;
OK, those changes work.  Nice touch:  the buttons attached to the screen are labeled &lt;q&gt;A/B/C...,&lt;/q&gt; but you can change those to &lt;q&gt;Aspect/Closed Caption/On Demand,&lt;/q&gt; etc.
&lt;/li&gt;

&lt;li&gt;
Now let's tackle that DVR button problem.  On the setup screen for the FIOS remote (labeled PVR in 650's language) there is a button labeled &lt;q&gt;Learn Command.&lt;/q&gt;  Click that, and go down until you find &lt;q&gt;Learn a New Command.&lt;/q&gt;  Type &lt;q&gt;DVR Menu&lt;/q&gt; in the box and click the &lt;q&gt;Learn a New Command&lt;/q&gt; button.  Put the front of the FIOS remote to the back of the 650, press the DVR button on the FIOS remote.  Wait.  Go back to the &lt;q&gt;Additional Buttons&lt;/q&gt; setup screen, and assign the button you want the new &lt;q&gt;DVR Menu&lt;/q&gt; command.
&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;
And, for now, that's enough.  If I encounter more difficulties I'll let you know.  In particular, we'll see if the family can use it easily or not.
&lt;/p&gt;

&lt;p&gt;
Preliminary bottom line:  This isn't all that easy to program, especially if you have an exotic system.  But it does seem to be straightforward to program, and you can add special keys as needed.  We'll see how it all works in practice.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-1319249576377824498?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/1319249576377824498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=1319249576377824498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1319249576377824498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1319249576377824498'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/12/christmas-toy.html' title='The Christmas Toy'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-9105124273756555479</id><published>2010-11-28T22:06:00.000-05:00</published><updated>2010-11-28T22:06:22.775-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Mounting Remote Computer Files with FUSE</title><content type='html'>&lt;p&gt;
I'm sitting here, upstairs, typing on my laptop.  There's a file I want on my office machine downstairs.  So I should go downstairs and look for the file, right?
&lt;/p&gt;

&lt;p&gt;
Wrong.  The TV up here is on NFL Red Zone (&lt;em&gt; (sigh) Red Zone&lt;/em&gt;).  I'm addicted, OK?  It's hard enough to break away for a bathroom trip.
&lt;/p&gt;

&lt;p&gt;
Several options exist, of course.  I could &lt;a href="http://hawknotes.blogspot.com/2010/06/smart-ssh-tricks.html"&gt;ssh to the downstairs machine&lt;/a&gt;, search for the file, and use &lt;tt&gt;scp&lt;/tt&gt; to copy it upstairs.  But the file is a picture, and I while I remember what it looks like, I don't remember what name I used for it.  So ideally I'd like to use an image viewer, say &lt;tt&gt;gthumb&lt;/tt&gt; or &lt;tt&gt;F-Spot&lt;/tt&gt; to look through the directory and find the file.  But I can't, because this computer doesn't mount the downstairs computer's disk.
&lt;/p&gt;

&lt;p&gt;
Ah, but it can.  The classic way to do this is to use the &lt;a href="http://en.wikipedia.org/wiki/Network_File_System_(protocol)"&gt;Network File System protocol&lt;/a&gt;, &lt;em&gt;aka&lt;/em&gt; &lt;tt&gt;NFS&lt;/tt&gt;.  But that requires work to set up.  Besides, some days I might want to search my computer from work, or from a hotel.  It's tricky to get NFS to work that way.
&lt;/p&gt;

&lt;p&gt;
Fear not, there is a solution.  It uses &lt;a href="http://en.wikipedia.org/wiki/Filesystem_in_Userspace"&gt;File System in Userspace (FUSE)&lt;/a&gt;, a complicated name for using &lt;tt&gt;ssh&lt;/tt&gt; and &lt;tt&gt;scp&lt;/tt&gt; to fool my laptop into thinking that the downstairs computer's files are on the laptop's local drive.
&lt;/p&gt;

&lt;p&gt;
In Ubuntu the way to do this is to install a package called &lt;a href="https://help.ubuntu.com/community/SSHFS"&gt;&lt;tt&gt;sshfs&lt;/tt&gt;&lt;/a&gt;.  Then you just follow the directions on the linked page.  Let's say I want to be able to access all the files in &lt;tt&gt;/home/rcjhawk&lt;/tt&gt; on hal, my downstairs computer, from my laptop, majel:
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First make sure I have both hal and majel set up to use &lt;a href="http://hawknotes.blogspot.com/2010/06/smart-ssh-tricks.html"&gt;ssh communications&lt;/a&gt;.  If I'm away from home, I'll also need to know &lt;a href="http://hawknotes.blogspot.com/2010/06/finding-your-external-ip-address.html"&gt;hal's ip address&lt;/a&gt;, and make sure I can &lt;a href="http://hawknotes.blogspot.com/2010/10/remote-login-to-command-line.html"&gt;ssh to hal from outside my router&lt;/a&gt;.
&lt;/li&gt;

&lt;li&gt;Next, install &lt;tt&gt;sshfs&lt;/tt&gt; on majel.  Just use
&lt;br /&gt;&lt;tt&gt;$ sudo apt-get install sshfs&lt;/tt&gt;&lt;br /&gt; from a terminal window on majel.  This doesn't need to be done on hal.  Hal's just going to see a series of ssh requests.
&lt;/li&gt;

&lt;li&gt;
Add myself to the FUSE group on majel:
&lt;br /&gt;&lt;tt&gt;$ sudo gpasswd -a $USER fuse&lt;/tt&gt;&lt;br /&gt; from the same command window.
&lt;/li&gt;

&lt;li&gt;
Log off my account on majel, log back on.  Yes, it's annoying, but you're not officially added to the FUSE group until you do.
&lt;/li&gt;

&lt;li&gt;
Make a directory on majel.  Doesn't matter what the name is:
&lt;br /&gt;&lt;tt&gt;$ mkdir ~/hal&lt;/tt&gt;
&lt;/li&gt;

&lt;li&gt;
Now we're going to mount all of hal's directory tree starting from &lt;tt&gt;/home/rcjhawk&lt;/tt&gt; in majel's &lt;tt&gt;~/hal&lt;/tt&gt; directory:
&lt;br /&gt;&lt;tt&gt;$ sshfs -o idmap=user rcjhawk@hal:/home/rcjhawk ~/hal&lt;/tt&gt;
&lt;/li&gt;

&lt;li&gt;
If this works, then running the command &lt;br /&gt;
&lt;tt&gt;$ ls ~/hal&lt;/tt&gt;
&lt;br /&gt;
from a terminal window on majel lists hal's directory tree.
&lt;/li&gt;

&lt;li&gt;
To unmount hal, just run:
&lt;br /&gt;&lt;tt&gt;$ fusermount -u ~/hal&lt;/tt&gt;
&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;To make things easier on myself, I created two files.  The first, &lt;tt&gt;mthal&lt;/tt&gt;, contains the mounting command, and the second, &lt;tt&gt;umthal&lt;/tt&gt;, the unmount command.  Make these executable, put them in your path, and it's easy to mount and unmount.
&lt;/p&gt;

&lt;p&gt;
A caveat:  I was getting an error &lt;q&gt;remote host has disconnected&lt;/q&gt;.  That occurred because my &lt;tt&gt;.cshrc&lt;/tt&gt; file, which used a variable that's undefined when you are running ssh commands.  You can &lt;a href="http://openssh.org/faq.html#2.9"&gt;find out how to diagnose that here&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
Does it work?  We'll, I started typing this on the laptop, and finished it up on the big machine downstairs.  So, yes, it does work.
&lt;/p&gt;

&lt;p&gt;
There are also versions of FUSE for BSD, OpenSolaris, and Mac OS X.  In fact, I first learned about this trick using my Mac at work.  With FUSE you can mount just about anything anywhere.  There's even &lt;a href="http://en.wikipedia.org/wiki/GmailFS"&gt;GmailFS&lt;/a&gt;, which transforms your Gmail account into backup storage.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-9105124273756555479?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/9105124273756555479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=9105124273756555479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/9105124273756555479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/9105124273756555479'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/11/mounting-remote-computer-files-with.html' title='Mounting Remote Computer Files with FUSE'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-5702731106766799108</id><published>2010-11-27T10:25:00.001-05:00</published><updated>2010-12-04T15:37:27.429-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Surfing'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Finding Your Header Files — A Better Way</title><content type='html'>&lt;p&gt;I should really &lt;a href="http://hawknotes.blogspot.com/2006/04/deconstructing-debian-packages.html"&gt;read my own posts&lt;/a&gt;.  Especially since that's the original purpose of this blog.&lt;/p&gt;

&lt;p&gt;The other day I was looking through old posts with the Ubuntu label, and found this &lt;a href="http://hawknotes.blogspot.com/2006/04/deconstructing-debian-packages.html"&gt;comparison of dpkg/apt-get and rpm/yum commands.&lt;/a&gt;  The relevant one is&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;dpkg -l '*'&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;which lists all of the packages available in your repository, installed or not.&lt;/p&gt;

&lt;p&gt;Duh&lt;/p&gt;

&lt;p&gt;This makes my &lt;a href="http://hawknotes.blogspot.com/2010/11/find-every-header-file-in-your-ubuntu.html"&gt;header file lister&lt;/a&gt; a lot simpler to write, towit:&lt;/p&gt;

&lt;pre&gt;
#! /bin/bash

# First make sure you've got all your repositories updated:
sudo apt-get update

# Now search through every repository database, looking for lines that
#  start with "Package", and end with "-dev".
# Pull out the package name, look through each package, and print out
#  the header files:  those that end in "-h"

# No matter how it wraps on your screen, this next line starts with
# "for" and ends with "awk '{print $2}'`"

for hfile in `dpkg -l '*' | grep dev | awk '{print $2}'`
do
# echo $hfile
apt-file list $hfile | grep "\.h$"
done
&lt;/pre&gt;

&lt;p&gt;It's still going to take a long time to go through every package, but it's a lot neater now.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-5702731106766799108?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/5702731106766799108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=5702731106766799108' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/5702731106766799108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/5702731106766799108'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/11/finding-your-header-files-better-way.html' title='Finding Your Header Files &amp;mdash; A Better Way'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-2676850715075014493</id><published>2010-11-25T13:20:00.000-05:00</published><updated>2010-11-25T13:20:31.499-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Doctor Who'/><category scheme='http://www.blogger.com/atom/ns#' term='Movies'/><category scheme='http://www.blogger.com/atom/ns#' term='science fiction'/><title type='text'>Look Familiar?</title><content type='html'>&lt;p&gt;I saw this watching the &lt;a href="http://www.startrek.com/page/star-trek-2009"&gt;&lt;em&gt;Star Trek&lt;/em&gt; reboot&lt;/a&gt; on the bigscreen with our &lt;a href="http://hawknotes.blogspot.com/2010/10/epix-decision.html"&gt;Epix OnDemand&lt;/a&gt; account.  It's during the Old Spock/New Kirk mind-meld, at the part of the story where Spock is transported back in time.  The blue box is suggestive, don't you think?&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/_WZHLzoZCfRI/TO6m1A4yapI/AAAAAAAAAyg/lvxnq0uSnVU/s1600/sttd.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="185" src="http://2.bp.blogspot.com/_WZHLzoZCfRI/TO6m1A4yapI/AAAAAAAAAyg/lvxnq0uSnVU/s320/sttd.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Since Epix lets you stream its movies to a Linux box, unlike Netflix, it was relatively easy to find the shot and save it.  No, the resolution's not that great, but, frankly, this movie suffers even on a 48" high-def screen.  To do it justice you really need to watch it in a theater.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-2676850715075014493?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/2676850715075014493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=2676850715075014493' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2676850715075014493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2676850715075014493'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/11/look-familiar.html' title='Look Familiar?'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_WZHLzoZCfRI/TO6m1A4yapI/AAAAAAAAAyg/lvxnq0uSnVU/s72-c/sttd.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-7210971353121048797</id><published>2010-11-20T18:19:00.000-05:00</published><updated>2010-11-20T18:19:32.518-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Life&apos;s Mysteries'/><title type='text'>Undercutting Yourself</title><content type='html'>&lt;p&gt;
Maybe I just don't understand&amp;hellip;
&lt;/p&gt;

&lt;p&gt;
The other day Borders sent me an email which gave me ten dollars in &lt;q&gt;Borders' Bucks.&lt;/q&gt;  A great promotion, to be sure.  And I had a book in mind I wanted to buy, but not spend a lot of money on:  &lt;a target="_blank" href="http://www.jim-butcher.com/"&gt;Jim Butcher's&lt;/a&gt; collection of &lt;a target="_blank" href="http://www.jim-butcher.com/books/dresden/"&gt;Harry Dresden&lt;/a&gt; short stories, &lt;a target="_blank" href="http://www.jim-butcher.com/books/dresden/12.5/"&gt;&lt;em&gt;Side Jobs&lt;/em&gt;&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
First check it out &lt;a target="_blank" href="http://www.borders.com/online/store/TitleDetail?sku=045146365X"&gt;online&lt;/a&gt;.  We have:
&lt;/p&gt;

&lt;table summary="Online Cost"&gt;
&lt;tr&gt;&lt;td&gt;List Price&lt;/td&gt; &lt;td align="right"&gt;$25.95&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Online Discount&lt;/td&gt; &lt;td align="right"&gt;-$11.22&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Borders' Bucks&lt;/td&gt; &lt;td align="right"&gt;-$10.00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Shipping&lt;/td&gt; &lt;td align="right"&gt;$3.98&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;MD Tax&lt;/td&gt; &lt;td align="right"&gt;$0.29&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan="2"&gt;&lt;hr /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Total&lt;/td&gt; &lt;td align="right"&gt;$9.00&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
Not bad, but the shipping price sucks, it will take days to get here, and anyway I want to get out of the house for awhile, so let's go to a nearby Borders and buy it there.
&lt;/p&gt;

&lt;p&gt;
I get to the Borders, and find &lt;em&gt;Side Jobs&lt;/em&gt;.  The sticker on it says &lt;q&gt;20% off.&lt;/q&gt;  Do a little bit of math: 80% of $25.95 = $20.76 - $10 Borders' Bucks = $10.76, + 6% tax ( $0.65) = $11.41.  A bit of a rip, compared to online, but I'm here, I've already spent a buck in gas, and I'll walk out with the book.
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Except&lt;/em&gt;: I then notice that the sticker also says &lt;q&gt;Borders Rewards Plus Members.&lt;/q&gt;  I'm just an ordinary &lt;q&gt;Borders Rewards&lt;/q&gt; member.  I checked with one of the sales people, and no, I'm not entitled to the discount.  That makes the cost $16.91, Borders' Bucks and tax included.  I made a point of telling the guy his store's website was undercutting the store by selling the book for $5 less, including shipping, put the book down, and walked out.
&lt;/p&gt;

&lt;p&gt;
I suspect some marketing guru has it all figured out, but to me this just seems plain old-fashioned stupid.  If Borders gave me the online price at the store, or even got close to it, I would have gotten the book then and there.  Since I was in the store, I probably would have had a coffee as well.  Maybe a cookie.  I would have looked at a Linux magazine while I was sipping my coffee, and possibly would have purchase that, too.  I would most likely have spent the $5 in the store, maybe more, and I wouldn't have been pissed.
&lt;/p&gt;

&lt;p&gt;
Instead, I went home and ordered the Dresden book online.  Even with the $2 gas&lt;a href="#note"&gt;&lt;sup&gt;&amp;dagger;&lt;/sup&gt;&lt;/a&gt; I just wasted I still saved $3 over buying it in the store.  And, instead of waiting for more coupons/bucks to come my way, I went over to Amazon and ordered two books I would have otherwise eventually gotten at Borders (along with more coffee, cookies, magazines, &lt;em&gt;etc.&lt;/em&gt;): &lt;a target="_blank" href="http://www.dendarii.com/"&gt;Lois McMaster Bujold's&lt;/a&gt; newest &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Vorkosigan_Saga"&gt;Vorkosigan&lt;/a&gt; novel, &lt;a target="_blank" href="http://www.webscription.net/chapters/1439133948/1439133948.htm?blurb"&gt;&lt;em&gt;Cryoburn&lt;/em&gt;&lt;/a&gt;, and &lt;a target="_blank" href="http://www.terrypratchettbooks.com/"&gt;Terry Pratchett's&lt;/a&gt; new &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Tiffany_Aching"&gt;Tiffany Aching/Discworld&lt;/a&gt; novel, &lt;a target="_blank" href="http://www.harpercollins.com/features/pratchettbooks/description.aspx?isbn=9780061433047"&gt;&lt;em&gt;I Shall Wear Midnight&lt;/em&gt;&lt;/a&gt;.  Add in a book Child&lt;sub&gt;II&lt;/sub&gt; wanted, we made the supersaver price, and got free shipping.
&lt;/p&gt;

&lt;p&gt;
In summary:  by charging full price for a book in the store, and a deep discount online, Borders lost the sale of at least two books, two-three cups of coffee, a couple of cookies, and maybe a magazine.
&lt;/p&gt;

&lt;p&gt;
It looks like Borders would rather you didn't come to their store.  OK, stores cost money to keep up.  Employees have to be paid, not to mention heating, lights, insurance, and all of that.  But if I come into the store, I'm going to browse.  I'll look around, and might well find something else I'd like to buy.  Online, I'm going to get the books I want, hit the send button, and go on with my life.
&lt;/p&gt;

&lt;p&gt;
Like I said, some genius with an MBA probably has figured out that this approach makes more sense for Borders, but how that could be is a mystery to me.
&lt;/p&gt;

&lt;p id="note"&gt;&lt;sup&gt;&amp;dagger;&lt;/sup&gt; The trip wasn't wasted, I drove a mile to the &lt;a target="_blank" href="http://www.ripscountryvillage.com/wineandspirits.html"&gt;local wine emporium&lt;/a&gt;, tasted a couple of wines, and bought a bottle.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-7210971353121048797?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/7210971353121048797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=7210971353121048797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7210971353121048797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7210971353121048797'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/11/undercutting-yourself.html' title='Undercutting Yourself'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-6993575067378227394</id><published>2010-11-11T19:19:00.000-05:00</published><updated>2010-11-11T19:19:57.423-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Politics'/><title type='text'>Unintended Consequences</title><content type='html'>&lt;p&gt;
&lt;a target="_blank" href="http://www.usconstitution.net/const.html#A1Sec2"&gt;Article 1, Section 2, of the United States Constitution&lt;/a&gt; says, in part, &lt;q&gt;The Number of Representatives shall not exceed one for every thirty Thousand, but each State shall have at Least one Representative.&lt;/q&gt;  The very first amendment proposed (&lt;a target="_blank" href="http://en.wikipedia.org/wiki/Article_The_First"&gt;you can look it up&lt;/a&gt;) tried to change this:
&lt;/p&gt;

&lt;p&gt;&lt;em&gt;
After the first enumeration required by the first article of the Constitution, there shall be one Representative for every thirty thousand, until the number shall amount to one hundred, after which the proportion shall be so regulated by Congress, that there shall be not less than one hundred Representatives, nor less than one Representative for every forty thousand persons, until the number of Representatives shall amount to two hundred; after which the proportion shall be so regulated by Congress, that there shall not be less than two hundred Representatives, nor more than one Representative for every fifty thousand persons.
&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;but this was never ratified.  So we can be pretty sure that the Founders of this Republic wanted us to have one Representative for every 30,000 Americans.&lt;/p&gt;

&lt;p&gt;
Currently, however, we have 435 Congressmen, thanks to something called &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Public_law_62-5"&gt;Public Law 62-5&lt;/a&gt;.  I guess this was supposed to keep the number of Congressmen down to a reasonable number.  Otherwise, with the current U.S. population around 300,000,000, we'd have 10,000 Congressmen running around.  Think of it!  &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Mark_Russell"&gt;Mark Russell&lt;/a&gt; once said something on like &lt;q&gt;every night 500,000 people in the District of Columbia go to bed without a Congressman.&lt;/q&gt;  But if we had 10,000 Congressmen, you give yours (DC residents excepted) a booty call just about every night.
&lt;/p&gt;

&lt;p&gt;
The current limit of 435 Congressmen also gives rise to some startling inequities.  For example, according to the &lt;a target="_blank" href="http://www.census.gov/population/www/cen2000/maps/files/tab02.pdf"&gt;2000 Census&lt;/a&gt;, the total population of the United States was 281,421,906.  If we exclude the District of Columbia (population 572,059) since it has no Congressional representation, then there are 280,849,847 Americans and 435 representatives, so each member of Congress should represent 645,632 people.  However, Wyoming (493,782) and Montana (902,195) each have only one representative.  To put it another way, &lt;a target="_blank" href="http://lummis.house.gov/"&gt;Cynthia Lummis&lt;/a&gt; only needs to attract half as many votes as &lt;a target="_blank" href="http://rehberg.house.gov/index.html"&gt;Denny Rehberg&lt;/a&gt; to get elected, but each gets one vote in the House.  So by moving from Wyola, Montana to Parkman, Wyoming (&lt;a target="_blank" href="http://maps.google.com/maps?f=d&amp;amp;source=s_d&amp;amp;saddr=wyola+mt&amp;amp;daddr=parkman+wy&amp;amp;hl=en&amp;amp;geocode=FfWSsAIdy06Z-SkXgS4-EcBJUzGModk6yPfK4w%3B&amp;amp;gl=us&amp;amp;mra=ls&amp;amp;sll=45.033585,-107.34366&amp;amp;sspn=0.308616,0.593948&amp;amp;ie=UTF8&amp;amp;z=11"&gt;16 miles&lt;/a&gt;) you can effectively double the strength of your vote for Congress.
&lt;/p&gt;

&lt;p&gt;
There is a lot more information about the inequities of the current system, and the sorry history of &lt;q&gt;Amendment the First&lt;/q&gt;, at &lt;a target="_blank" href="http://www.thirty-thousand.org/index.htm"&gt;thirty-thousand.org&lt;/a&gt;.  I'd recommend downloading their pamphlet,  &lt;a target="_blank" href="http://www.thirty-thousand.org/documents/TTO_Pamphlet.pdf"&gt;&lt;em&gt;Taking Back Our Republic&lt;/em&gt;&lt;/a&gt;, for more information.
&lt;/p&gt;

&lt;p&gt;
One thing they didn't cover, though: the effect of all of these changes on the &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Electoral_College_(United_States)"&gt;Electoral College.&lt;/a&gt;  Each state gets N+2 electoral votes, where N is the number of representatives, plus the two members of the Senate allowed each state.  That &lt;q&gt;+2&lt;/q&gt;, along with Public Law 62-5, weights the Electoral College heavily toward the smaller states. Since D.C. does have 3 votes in the Electoral College, each elector theoretically represents 281,421,906/538 = 523,098 voters. &lt;em&gt;However&lt;/em&gt;, each state has a minimum of three electoral votes. So in Wyoming each elector represents 164,594 people.  In Montana, it's 300,732 people, still substantially below the national average. It's likely (I haven't checked in detail) that the state with the most people/elector is California, where there are 33,871,648 people and 55 electors, or 615,848 people/elector.  Put it this way:  an elector in California represents four times as many people as one in Wyoming, but each has the same say in who's elected President.
&lt;/p&gt;

&lt;p&gt;
Now, as anyone can tell you, most of the smaller states, population-wise, are in the west, and most of those states vote Republican, while many of the larger states tend to vote Democratic.  Another wrinkle in the system is that most states (&lt;a target="_blank" href="http://archive.fairvote.org/e_college/me_ne.htm"&gt;Maine and Nebraska excepted&lt;/a&gt;) cast their electoral votes in a block.
&lt;/p&gt;

&lt;p&gt;
Couple these two facts with the 30,000 people/representative rule and you get some interesting results.  &lt;em&gt;Very interesting,&lt;/em&gt; in some cases.
&lt;/p&gt;

&lt;p&gt;
In particular, let's consider the &lt;a target="_blank" href="http://en.wikipedia.org/wiki/United_States_presidential_election,_2000"&gt;2000 Presidential Election&lt;/a&gt;.  Very close, as we all recall.  Al Gore got 50,999,897 votes, while George Bush got 50,456,002, but because most states cast their electoral votes as a block, Bush won in the Electoral College, where it counts, 271-266.
&lt;/p&gt;

&lt;p&gt;
What if we'd apportioned Congress the way the Founders intended?  And kept the current winner-take-all (mostly) electoral system? The table below shows the results.  I constructed it using the following rules:
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Winner take all in each state, as now.  Maine (42 votes under these rules) went to Gore, and Nebraska (54) went to Bush.  Changing all of Maine's votes to Bush or all of Nebraska's to Gore isn't going to change the final result, so it doesn't matter if several congressional districts shifted from Red to Blue or &lt;em&gt;vice versa&lt;/em&gt;.&lt;/li&gt;

&lt;li&gt;
To get the number of representatives, I took the states' populations from the &lt;a target="_blank" href="http://lwd.dol.state.nj.us/labor/lpa/census/1990/poptrd1.htm"&gt;1990 census&lt;/a&gt;, which governed apportionment at the time, divided by 30,000, and rounded down.  Rounding to the nearest integer, or rounding up, can't change the electoral vote by more than 51, and so won't affect the result, either.
&lt;/li&gt;

&lt;li&gt;
If the District of Columbia was a state, it would have 22 electoral votes in this scheme.  However, by the &lt;a target="_blank" href="http://www.usconstitution.net/xconst_Am23.html"&gt;Twenty-Third Amendment&lt;/a&gt;, D.C. gets 17 electoral votes, equal to the state with the fewest, Wyoming.  In the real 2000 election &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Barbara_Lett-Simmons"&gt;one D.C. elector abstained&lt;/a&gt;.  Even assuming all 17 of the new electors abstained it wouldn't change the bottom line here, so I assume that they all voted &amp;mdash; for Gore, naturally.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
The result:  Since each state has more or less the same representation &lt;em&gt;per capita&lt;/em&gt; in the electoral college, and since most of the larger states went for Gore, he wins the election, 4,314&amp;ndash;4,047.
&lt;/p&gt;

&lt;p&gt;
Think about it.  Al Gore, Forty-Third President of the United States.  Somehow, I don't think that's what those currently saying we should go back to the Principles of the Founders had in mind.
&lt;/p&gt;

&lt;table summary="Election Results for 2000 with Constitutional Electoral Votes" border="2"&gt;
&lt;tr align="right"&gt;&lt;th align="left"&gt;State&lt;/th&gt; &lt;th&gt;Population&lt;/th&gt; &lt;th&gt;Congress&lt;/th&gt; &lt;th&gt;Electors&lt;/th&gt; &lt;th&gt;Bush&lt;/th&gt; &lt;th&gt;Gore&lt;/th&gt; &lt;th&gt;Bush&lt;/th&gt; &lt;th&gt;Gore&lt;/th&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;th&gt;&lt;/th&gt; &lt;th&gt;&lt;/th&gt; &lt;th&gt;&lt;/th&gt; &lt;th&gt;&lt;/th&gt; &lt;th&gt;Popular&lt;/th&gt; &lt;th&gt;Popular&lt;/th&gt; &lt;th&gt;Electoral&lt;/th&gt; &lt;th&gt;Electoral&lt;/th&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Alabama&lt;/td&gt; &lt;td&gt;4040587&lt;/td&gt; &lt;td&gt;134&lt;/td&gt; &lt;td&gt;136&lt;/td&gt; &lt;td&gt;941173&lt;/td&gt; &lt;td&gt;692611&lt;/td&gt; &lt;td&gt;136&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Alaska&lt;/td&gt; &lt;td&gt;550043&lt;/td&gt; &lt;td&gt;18&lt;/td&gt; &lt;td&gt;20&lt;/td&gt; &lt;td&gt;167398&lt;/td&gt; &lt;td&gt;79004&lt;/td&gt; &lt;td&gt;20&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Arizona&lt;/td&gt; &lt;td&gt;3665228&lt;/td&gt; &lt;td&gt;122&lt;/td&gt; &lt;td&gt;124&lt;/td&gt; &lt;td&gt;781652&lt;/td&gt; &lt;td&gt;685341&lt;/td&gt; &lt;td&gt;124&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Arkansas&lt;/td&gt; &lt;td&gt;2350725&lt;/td&gt; &lt;td&gt;78&lt;/td&gt; &lt;td&gt;80&lt;/td&gt; &lt;td&gt;472940&lt;/td&gt; &lt;td&gt;422768&lt;/td&gt; &lt;td&gt;80&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;California&lt;/td&gt; &lt;td&gt;29760021&lt;/td&gt; &lt;td&gt;992&lt;/td&gt; &lt;td&gt;994&lt;/td&gt; &lt;td&gt;4567429&lt;/td&gt; &lt;td&gt;5861203&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;994&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Colorado&lt;/td&gt; &lt;td&gt;3294394&lt;/td&gt; &lt;td&gt;109&lt;/td&gt; &lt;td&gt;111&lt;/td&gt; &lt;td&gt;883748&lt;/td&gt; &lt;td&gt;738227&lt;/td&gt; &lt;td&gt;111&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Connecticut&lt;/td&gt; &lt;td&gt;3287116&lt;/td&gt; &lt;td&gt;109&lt;/td&gt; &lt;td&gt;111&lt;/td&gt; &lt;td&gt;561094&lt;/td&gt; &lt;td&gt;816015&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;111&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Delaware&lt;/td&gt; &lt;td&gt;666168&lt;/td&gt; &lt;td&gt;22&lt;/td&gt; &lt;td&gt;24&lt;/td&gt; &lt;td&gt;137288&lt;/td&gt; &lt;td&gt;180068&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;24&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;DC&lt;/td&gt; &lt;td&gt;606900&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;17&lt;/td&gt; &lt;td&gt;18073&lt;/td&gt; &lt;td&gt;171923&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;17&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Florida&lt;/td&gt; &lt;td&gt;12937926&lt;/td&gt; &lt;td&gt;431&lt;/td&gt; &lt;td&gt;433&lt;/td&gt; &lt;td&gt;2912790&lt;/td&gt; &lt;td&gt;2912253&lt;/td&gt; &lt;td&gt;433&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Georgia&lt;/td&gt; &lt;td&gt;6478216&lt;/td&gt; &lt;td&gt;215&lt;/td&gt; &lt;td&gt;217&lt;/td&gt; &lt;td&gt;1419720&lt;/td&gt; &lt;td&gt;1116230&lt;/td&gt; &lt;td&gt;217&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Hawaii&lt;/td&gt; &lt;td&gt;1108229&lt;/td&gt; &lt;td&gt;36&lt;/td&gt; &lt;td&gt;38&lt;/td&gt; &lt;td&gt;137845&lt;/td&gt; &lt;td&gt;205286&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;38&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Idaho&lt;/td&gt; &lt;td&gt;1006749&lt;/td&gt; &lt;td&gt;33&lt;/td&gt; &lt;td&gt;35&lt;/td&gt; &lt;td&gt;336937&lt;/td&gt; &lt;td&gt;138637&lt;/td&gt; &lt;td&gt;35&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Illinois&lt;/td&gt; &lt;td&gt;11430602&lt;/td&gt; &lt;td&gt;381&lt;/td&gt; &lt;td&gt;383&lt;/td&gt; &lt;td&gt;2019421&lt;/td&gt; &lt;td&gt;2589026&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;383&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Indiana&lt;/td&gt; &lt;td&gt;5544159&lt;/td&gt; &lt;td&gt;184&lt;/td&gt; &lt;td&gt;186&lt;/td&gt; &lt;td&gt;1245836&lt;/td&gt; &lt;td&gt;901980&lt;/td&gt; &lt;td&gt;186&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Iowa&lt;/td&gt; &lt;td&gt;2776755&lt;/td&gt; &lt;td&gt;92&lt;/td&gt; &lt;td&gt;94&lt;/td&gt; &lt;td&gt;634373&lt;/td&gt; &lt;td&gt;638517&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;94&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Kansas&lt;/td&gt; &lt;td&gt;2477574&lt;/td&gt; &lt;td&gt;82&lt;/td&gt; &lt;td&gt;84&lt;/td&gt; &lt;td&gt;622332&lt;/td&gt; &lt;td&gt;399276&lt;/td&gt; &lt;td&gt;84&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Kentucky&lt;/td&gt; &lt;td&gt;3685296&lt;/td&gt; &lt;td&gt;122&lt;/td&gt; &lt;td&gt;124&lt;/td&gt; &lt;td&gt;872492&lt;/td&gt; &lt;td&gt;638898&lt;/td&gt; &lt;td&gt;124&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Louisiana&lt;/td&gt; &lt;td&gt;4219973&lt;/td&gt; &lt;td&gt;140&lt;/td&gt; &lt;td&gt;142&lt;/td&gt; &lt;td&gt;927871&lt;/td&gt; &lt;td&gt;792344&lt;/td&gt; &lt;td&gt;142&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Maine&lt;/td&gt; &lt;td&gt;1227928&lt;/td&gt; &lt;td&gt;40&lt;/td&gt; &lt;td&gt;42&lt;/td&gt; &lt;td&gt;286616&lt;/td&gt; &lt;td&gt;319951&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;42&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Maryland&lt;/td&gt; &lt;td&gt;4781468&lt;/td&gt; &lt;td&gt;159&lt;/td&gt; &lt;td&gt;161&lt;/td&gt; &lt;td&gt;813797&lt;/td&gt; &lt;td&gt;1140782&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;161&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Massachusetts&lt;/td&gt; &lt;td&gt;6016425&lt;/td&gt; &lt;td&gt;200&lt;/td&gt; &lt;td&gt;202&lt;/td&gt; &lt;td&gt;878502&lt;/td&gt; &lt;td&gt;1616487&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;202&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Michigan&lt;/td&gt; &lt;td&gt;9295297&lt;/td&gt; &lt;td&gt;309&lt;/td&gt; &lt;td&gt;311&lt;/td&gt; &lt;td&gt;1953139&lt;/td&gt; &lt;td&gt;2170418&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;311&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Minnesota&lt;/td&gt; &lt;td&gt;4375099&lt;/td&gt; &lt;td&gt;145&lt;/td&gt; &lt;td&gt;147&lt;/td&gt; &lt;td&gt;1109659&lt;/td&gt; &lt;td&gt;1168266&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;147&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Mississippi&lt;/td&gt; &lt;td&gt;2573216&lt;/td&gt; &lt;td&gt;85&lt;/td&gt; &lt;td&gt;87&lt;/td&gt; &lt;td&gt;572844&lt;/td&gt; &lt;td&gt;404614&lt;/td&gt; &lt;td&gt;87&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Missouri&lt;/td&gt; &lt;td&gt;5117073&lt;/td&gt; &lt;td&gt;170&lt;/td&gt; &lt;td&gt;172&lt;/td&gt; &lt;td&gt;1189924&lt;/td&gt; &lt;td&gt;1111138&lt;/td&gt; &lt;td&gt;172&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Montana&lt;/td&gt; &lt;td&gt;799065&lt;/td&gt; &lt;td&gt;26&lt;/td&gt; &lt;td&gt;28&lt;/td&gt; &lt;td&gt;240178&lt;/td&gt; &lt;td&gt;137126&lt;/td&gt; &lt;td&gt;28&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Nebraska&lt;/td&gt; &lt;td&gt;1578385&lt;/td&gt; &lt;td&gt;52&lt;/td&gt; &lt;td&gt;54&lt;/td&gt; &lt;td&gt;433862&lt;/td&gt; &lt;td&gt;231780&lt;/td&gt; &lt;td&gt;54&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Nevada&lt;/td&gt; &lt;td&gt;1201833&lt;/td&gt; &lt;td&gt;40&lt;/td&gt; &lt;td&gt;42&lt;/td&gt; &lt;td&gt;301575&lt;/td&gt; &lt;td&gt;279978&lt;/td&gt; &lt;td&gt;42&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;New Hampshire&lt;/td&gt; &lt;td&gt;1109252&lt;/td&gt; &lt;td&gt;36&lt;/td&gt; &lt;td&gt;38&lt;/td&gt; &lt;td&gt;273559&lt;/td&gt; &lt;td&gt;266348&lt;/td&gt; &lt;td&gt;38&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;New Jersey&lt;/td&gt; &lt;td&gt;7730188&lt;/td&gt; &lt;td&gt;257&lt;/td&gt; &lt;td&gt;259&lt;/td&gt; &lt;td&gt;1284173&lt;/td&gt; &lt;td&gt;1788850&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;259&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;New Mexico&lt;/td&gt; &lt;td&gt;1515069&lt;/td&gt; &lt;td&gt;50&lt;/td&gt; &lt;td&gt;52&lt;/td&gt; &lt;td&gt;286417&lt;/td&gt; &lt;td&gt;286783&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;52&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;New York&lt;/td&gt; &lt;td&gt;17990455&lt;/td&gt; &lt;td&gt;599&lt;/td&gt; &lt;td&gt;601&lt;/td&gt; &lt;td&gt;2403374&lt;/td&gt; &lt;td&gt;4107697&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;601&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;North Carolina&lt;/td&gt; &lt;td&gt;6628637&lt;/td&gt; &lt;td&gt;220&lt;/td&gt; &lt;td&gt;222&lt;/td&gt; &lt;td&gt;1631163&lt;/td&gt; &lt;td&gt;1257692&lt;/td&gt; &lt;td&gt;222&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;North Dakota&lt;/td&gt; &lt;td&gt;638800&lt;/td&gt; &lt;td&gt;21&lt;/td&gt; &lt;td&gt;23&lt;/td&gt; &lt;td&gt;174852&lt;/td&gt; &lt;td&gt;95284&lt;/td&gt; &lt;td&gt;23&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Ohio&lt;/td&gt; &lt;td&gt;10847115&lt;/td&gt; &lt;td&gt;361&lt;/td&gt; &lt;td&gt;363&lt;/td&gt; &lt;td&gt;2350363&lt;/td&gt; &lt;td&gt;2183628&lt;/td&gt; &lt;td&gt;363&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Oklahoma&lt;/td&gt; &lt;td&gt;3145585&lt;/td&gt; &lt;td&gt;104&lt;/td&gt; &lt;td&gt;106&lt;/td&gt; &lt;td&gt;744337&lt;/td&gt; &lt;td&gt;474276&lt;/td&gt; &lt;td&gt;106&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Oregon&lt;/td&gt; &lt;td&gt;2842321&lt;/td&gt; &lt;td&gt;94&lt;/td&gt; &lt;td&gt;96&lt;/td&gt; &lt;td&gt;713577&lt;/td&gt; &lt;td&gt;720342&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;96&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Pennsylvania&lt;/td&gt; &lt;td&gt;11881643&lt;/td&gt; &lt;td&gt;396&lt;/td&gt; &lt;td&gt;398&lt;/td&gt; &lt;td&gt;2281127&lt;/td&gt; &lt;td&gt;2485967&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;398&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Rhode Island&lt;/td&gt; &lt;td&gt;1003464&lt;/td&gt; &lt;td&gt;33&lt;/td&gt; &lt;td&gt;35&lt;/td&gt; &lt;td&gt;130555&lt;/td&gt; &lt;td&gt;249508&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;35&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;South Carolina&lt;/td&gt; &lt;td&gt;3486703&lt;/td&gt; &lt;td&gt;116&lt;/td&gt; &lt;td&gt;118&lt;/td&gt; &lt;td&gt;785937&lt;/td&gt; &lt;td&gt;565561&lt;/td&gt; &lt;td&gt;118&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;South Dakota&lt;/td&gt; &lt;td&gt;696004&lt;/td&gt; &lt;td&gt;23&lt;/td&gt; &lt;td&gt;25&lt;/td&gt; &lt;td&gt;190700&lt;/td&gt; &lt;td&gt;118804&lt;/td&gt; &lt;td&gt;25&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Tennessee&lt;/td&gt; &lt;td&gt;4877185&lt;/td&gt; &lt;td&gt;162&lt;/td&gt; &lt;td&gt;164&lt;/td&gt; &lt;td&gt;1061949&lt;/td&gt; &lt;td&gt;981720&lt;/td&gt; &lt;td&gt;164&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Texas&lt;/td&gt; &lt;td&gt;16986510&lt;/td&gt; &lt;td&gt;566&lt;/td&gt; &lt;td&gt;568&lt;/td&gt; &lt;td&gt;3799639&lt;/td&gt; &lt;td&gt;2433746&lt;/td&gt; &lt;td&gt;568&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Utah&lt;/td&gt; &lt;td&gt;1722850&lt;/td&gt; &lt;td&gt;57&lt;/td&gt; &lt;td&gt;59&lt;/td&gt; &lt;td&gt;515096&lt;/td&gt; &lt;td&gt;203053&lt;/td&gt; &lt;td&gt;59&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Vermont&lt;/td&gt; &lt;td&gt;562758&lt;/td&gt; &lt;td&gt;18&lt;/td&gt; &lt;td&gt;20&lt;/td&gt; &lt;td&gt;119775&lt;/td&gt; &lt;td&gt;149022&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;20&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Virginia&lt;/td&gt; &lt;td&gt;6187358&lt;/td&gt; &lt;td&gt;206&lt;/td&gt; &lt;td&gt;208&lt;/td&gt; &lt;td&gt;1437490&lt;/td&gt; &lt;td&gt;1217290&lt;/td&gt; &lt;td&gt;208&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Washington&lt;/td&gt; &lt;td&gt;4866692&lt;/td&gt; &lt;td&gt;162&lt;/td&gt; &lt;td&gt;164&lt;/td&gt; &lt;td&gt;1108864&lt;/td&gt; &lt;td&gt;1247652&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;164&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;West Virginia&lt;/td&gt; &lt;td&gt;1793477&lt;/td&gt; &lt;td&gt;59&lt;/td&gt; &lt;td&gt;61&lt;/td&gt; &lt;td&gt;336475&lt;/td&gt; &lt;td&gt;295497&lt;/td&gt; &lt;td&gt;61&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Wisconsin&lt;/td&gt; &lt;td&gt;4891769&lt;/td&gt; &lt;td&gt;163&lt;/td&gt; &lt;td&gt;165&lt;/td&gt; &lt;td&gt;1237279&lt;/td&gt; &lt;td&gt;1242987&lt;/td&gt; &lt;td&gt;0&lt;/td&gt; &lt;td&gt;165&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;td align="left"&gt;Wyoming&lt;/td&gt; &lt;td&gt;453588&lt;/td&gt; &lt;td&gt;15&lt;/td&gt; &lt;td&gt;17&lt;/td&gt; &lt;td&gt;147947&lt;/td&gt; &lt;td&gt;60481&lt;/td&gt; &lt;td&gt;17&lt;/td&gt; &lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="right"&gt;&lt;th align="left"&gt;Totals&lt;/th&gt; &lt;th&gt;&amp;nbsp;&lt;/th&gt; &lt;th&gt;&amp;nbsp;&lt;/th&gt; &lt;th&gt;8361&lt;/th&gt; &lt;th&gt;50455156&lt;/th&gt; &lt;th&gt;50992335&lt;/th&gt; &lt;th&gt;4047&lt;/th&gt; &lt;th&gt;4314&lt;/th&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
Sorry about the lack of commas in the table above.  I used a very primitive spreadsheet to generate the data.
&lt;/p&gt;

&lt;p&gt;1990 Census data is from &lt;a target="_blank" href="http://lwd.dol.state.nj.us/labor/lpa/census/1990/poptrd1.htm"&gt;http://lwd.dol.state.nj.us/labor/lpa/census/1990/poptrd1.htm&lt;/a&gt;.  Presidential vote totals are from &lt;a target="_blank" href="http://www.presidency.ucsb.edu/showelection.php?year=2000"&gt;http://www.presidency.ucsb.edu/showelection.php?year=2000&lt;/a&gt;.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-6993575067378227394?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/6993575067378227394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=6993575067378227394' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6993575067378227394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6993575067378227394'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/11/unintended-consequences.html' title='Unintended Consequences'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-7628337117287752912</id><published>2010-11-08T20:33:00.000-05:00</published><updated>2010-11-08T20:33:41.689-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Surfing'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Find Every Header File in Your Ubuntu Repositories</title><content type='html'>&lt;p&gt;
Last night I was following &lt;a href="http://penguinpetes.com/b2evo/index.php?blog=1&amp;amp;c=1&amp;amp;page=1&amp;amp;more=1&amp;amp;title=why_would_you_want_to_do_that&amp;amp;tb=1&amp;amp;pb=1&amp;amp;disp=single"&gt;a thread on Penguin Pete's blog&lt;/a&gt; where Pete uses Ubuntu's dropping &lt;a href="http://www.dillo.org/"&gt;the Dillo browser&lt;/a&gt; from the distribution as a launching pad for a discussion about &amp;mdash;  heck, I can't describe what it's about, read it yourself.
&lt;/p&gt;

&lt;p&gt;
Anyway, in the course of reading the discussion &amp;mdash; if that's the word, Pete gets worked up about certain things &amp;mdash; I was possessed by the moral imperative to install Dillo from source.
&lt;/p&gt;

&lt;p&gt;
This would seem to be straightforward.  You go to the &lt;a href="http://www.dillo.org/"&gt;Dillo home page&lt;/a&gt;, click &lt;a href="http://www.dillo.org/download.html"&gt;Download&lt;/a&gt;, and follow the instructions.
&lt;/p&gt;

&lt;p&gt;
Except (there's always an except) &amp;mdash; the first install you have to make is the &lt;a href="http://www.dillo.org/source.html"&gt;FLTK2 (Fast Light Toolkit)&lt;/a&gt; library.
&lt;/p&gt;

&lt;p&gt;
Now Ubuntu offers FLTK1.1, which might well work, but hey, we need the latest and the greatest, right?  So I downloaded the tarball, followed the instructions, and the make command crashed and burned with:
&lt;/p&gt;

&lt;p&gt;
&lt;tt&gt;fatal error: X11/extensions/XInput.h&lt;/tt&gt;
&lt;/p&gt;

&lt;p&gt;
I looked on the web, found that XInput.h is in the package &lt;tt&gt;libxi-dev&lt;/tt&gt;, installed that, reran make,
&lt;/p&gt;

&lt;p&gt;
&lt;tt&gt;fatal error: GL/glu.h&lt;/tt&gt;
&lt;/p&gt;

&lt;p&gt;
and so on.  It took about an hour to find every single header file needed.  And that was just to install FLTK2, after which I still had to install Dillo.
&lt;/p&gt;

&lt;p&gt;
So what's going on here?  Well, first we have to know what a header file is.  Basically, it's a file that defines a bunch of variables and statements that can be used by multiple routines.  &lt;a href="http://en.wikipedia.org/wiki/Header_file"&gt;See Wikipedia for a better explanation.&lt;/a&gt;  In particular, header files tell a program's source code what variables are used in a particular library.  Thus the header &lt;tt&gt;XInput.h&lt;/tt&gt; defines variables available in some X11 libraries.
&lt;/p&gt;

&lt;p&gt;
OK, suppose I'm compiling a program and I find that I need a header file &lt;tt&gt;GrantsTomb/Buried.h&lt;/tt&gt;.  All I have to do is find the package that has that header, install it with apt-get, and I'm good to go.  Right?
&lt;/p&gt;

&lt;p&gt;
Well, without prior knowledge you're pretty much doomed here.  I was able to find XInput.h and glu.h by web search, but who's going to tell you where is &lt;q&gt;Buried.h&lt;/q&gt; in GrantsTomb?
&lt;/p&gt;

&lt;p&gt;
Yet there has to be a solution, because:
&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;
I know that when I use synaptic or aptitude to install packages I can see every package that is, or can be, installed on my system from my selected repositories.
&lt;/li&gt;

&lt;li&gt;
After searching around a bit, I find that &lt;tt&gt;apt&lt;/tt&gt; and its children list the available files in &lt;tt&gt;/var/lib/apt/lists&lt;/tt&gt;, each repository has its own file, and each file name is on a line starting with &lt;tt&gt;Package&lt;/tt&gt;.
&lt;/li&gt;

&lt;li&gt;
I know about the program &lt;a href="http://en.wikipedia.org/wiki/Apt-file"&gt;&lt;tt&gt;apt-file&lt;/tt&gt;&lt;/a&gt;, in particular that the command
&lt;br /&gt;
&lt;tt&gt;
apt-file list foobar
&lt;/tt&gt;
&lt;br /&gt;
will give me a list of all of the files in the foobar package.
&lt;/li&gt;

&lt;li&gt;
Header files are traditionally located in packages ending with the string &lt;tt&gt;-dev&lt;/tt&gt;.
&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;
Given all of that, I should be able to write a script which will list every header file available in every Repository I've accessed.  I can then save it in a file, and the next time a program says I need &lt;tt&gt;bojangles/tambourine.h&lt;/tt&gt; I can just search the list, find that the header file is in the &lt;tt&gt;NittyGritty-dev&lt;/tt&gt; package, load that up, and I'm ready to compile:
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
First, install apt-file, if you don't have it already: &lt;br /&gt;
&lt;tt&gt;sudo apt-get install apt-file&lt;/tt&gt;
&lt;/li&gt;

&lt;li&gt;
Then run this script:
&lt;br /&gt;
&lt;pre&gt;
#! /bin/bash

# First make sure you've got all your repositories updated:
sudo apt-get update

# Next sync apt-file's database.  Note that if you do this without
#  the sudo you'll write the data into your home directory, which is
#  probably OK

sudo apt-file update

# Now search through every repository database, looking for lines that
#  start with "Package", and end with "-dev".
# Pull out the package name, look through each package, and print out
#  the header files:  those that end in "-h"

#! /bin/bash

# No matter how it wraps on your screen, this next line starts with
# "for" and ends with "xargs`"

for hfile in `find /var/lib/apt/lists -type f -exec grep '^Package: ' {} ';' | awk '{print $2}' | grep -e '-dev' | xargs`
do
apt-file list $hfile | grep "\.h$"
done
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Be warned, this takes a &lt;em&gt;long&lt;/em&gt; time, since every call to apt-file goes out over the network.  On my system, with FIOS broadband, it took over an hour.  So you'll only want to run this file once in a while, probably only when you update your repository list.
You may also get an error message like
&lt;br /&gt;&lt;tt&gt;grep: /var/lib/apt/lists/lock: Permission denied&lt;/tt&gt;&lt;br /&gt;
Don't worry about that.
&lt;/p&gt;

&lt;p&gt;
This script should work pretty well for Debian.  There are also equivalent commands for RPM-based distributions.  And, of course, you can modify it to list any subset of files in any subset of repositories you want.  I'll leave all of that as an exercise for the reader.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-7628337117287752912?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/7628337117287752912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=7628337117287752912' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7628337117287752912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7628337117287752912'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/11/find-every-header-file-in-your-ubuntu.html' title='Find Every Header File in Your Ubuntu Repositories'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-4217209877505033350</id><published>2010-10-28T20:10:00.000-04:00</published><updated>2010-10-28T20:10:28.669-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='science fiction'/><title type='text'>Nature Publishes Science Fiction</title><content type='html'>&lt;p&gt;As in &lt;a href="http://www.nature.com/nature/journal/v467/n7319/full/4671146a.html"&gt;&lt;em&gt;The Greatest Science Fiction Story Ever Told&lt;/em&gt;&lt;/a&gt;, by Eric James Stone.&lt;/p&gt;

&lt;p&gt;Nature &lt;strong&gt;467&lt;/strong&gt; , 1146 (28 October 2010) doi:10.1038/4671146a&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-4217209877505033350?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/4217209877505033350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=4217209877505033350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4217209877505033350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4217209877505033350'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/10/nature-publishes-science-fiction.html' title='Nature Publishes Science Fiction'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-4261677750778009385</id><published>2010-10-23T15:13:00.000-04:00</published><updated>2010-10-23T15:13:30.073-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='verizon'/><category scheme='http://www.blogger.com/atom/ns#' term='television'/><title type='text'>An Epix Decision</title><content type='html'>&lt;p&gt;We've had &lt;a href="http://www22.verizon.com/Residential/FiOSTV/Overview.htm"&gt;Verizon FIOS&lt;/a&gt; for &lt;a href="http://hawknotes.blogspot.com/2007/12/well-its-done.html"&gt;nearly three years&lt;/a&gt; and have been &lt;a href="http://hawknotes.blogspot.com/2008/12/year-of-fios.html"&gt;pretty happy with it&lt;/a&gt;.  So last week we finally decided to drop our final link to twentieth-century audio-visual technology, the copper-wire phone line, and rely on the FIOS line and cell phones.&lt;/p&gt;

&lt;p&gt;
Since this meant we were going to be using FIOS for a while, I decided to call up Verizon and see what kind of a deal they could give me if we locked in for a couple of more years.  Primarily, I was looking to save money and add Showtime, so that we could watch &lt;a href="http://www.sho.com/site/dexter/home.do"&gt;&lt;em&gt;Dexter&lt;/em&gt;&lt;/a&gt;, &lt;a href="http://www.sho.com/site/weeds/home.do"&gt;&lt;em&gt;Weeds&lt;/em&gt;&lt;/a&gt;, and &lt;a href="http://www.sho.com/site/nursejackie/home.do"&gt;&lt;em&gt;Nurse Jackie&lt;/em&gt;&lt;/a&gt; without waiting for the DVDs to get to Netflix. (Yes, these are all shows about, shall we say, socially challenged individuals.  Deal with it.)
&lt;/p&gt;

&lt;p&gt;
Well, I didn't save any money &amp;mdash; well, I will if we drop HBO, but otherwise not.  But &lt;em&gt;such a deal!&lt;/em&gt;.  In addition to Showtime, we get all of the HD sports channels turned on, the regional Fox sports channels, and some other HD movie channels.
&lt;/p&gt;

&lt;p&gt;
In particular, we now have something called &lt;a href="http://epixhd.com"&gt;EpixHD&lt;/a&gt;.  This is a joint venture by Paramount, MGM, and Lionsgate to make a few more dollars off of their movies before Netflix buys about a million DVDs and starts sending them out essentially for free.
&lt;/p&gt;

&lt;p&gt;
So here's the deal.  Epix streams movies such as &lt;em&gt;Star Trek&lt;/em&gt;, &lt;em&gt;Iron Man&lt;/em&gt;, etc., starting about 90 days before Netflix gets streaming rights.  In addition, Epix streams to a Linux computer, unlike Netflix.
&lt;/p&gt;

&lt;p&gt;
Furthermore, after a little bit of searching I found that &lt;a href="http://www.hbogo.com"&gt;HBO also streams its shows&lt;/a&gt;, even to a Linux box, although I had to do the sign-up from Windows.
&lt;/p&gt;

&lt;p&gt;
And, finally, even Showtime is coming around to streaming its shows, although right now it's apparently only available to Comcast customers through something called &lt;a href="http://www.fancast.com/tv-networks"&gt;Fancast&lt;/a&gt;. 
&lt;/p&gt;

&lt;p&gt;
So here's the dilemma:  I can watch movies and shows from HBO, Showtime, and Epix using Verizon's OnDemand service.  I can also stream HBO and Epix to my Linux, Mac, or Windows boxes.  So do I really need to keep Netflix?
&lt;/p&gt;

&lt;p&gt;
Look, I love the fact that Netflix lets me watch ancient episodes of &lt;em&gt;Dr. Who&lt;/em&gt; and things like &lt;em&gt;Doctor Horrible's Sing-Along Blog&lt;/em&gt;, but I really don't watch it all that much.  It's useful that I can get a copy of KU's 1988 NCAA championship DVD when I want it, but, really, how often is that?  Is it worth another $10/month?
&lt;/p&gt;

&lt;p&gt;
And, really, I'm upset with Netflix, which &lt;a href="http://blogs.techrepublic.com.com/opensource/?p=1745"&gt;won't consider streaming to Linux&lt;/a&gt;.  They say it's a DRM issue, but if the studios that make up Epix can solve that to their satisfaction, why can't Netflix?
&lt;/p&gt;

&lt;p&gt;
For now, I guess, we'll keep Netflix, but we'll see for how long.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-4261677750778009385?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/4261677750778009385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=4261677750778009385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4261677750778009385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4261677750778009385'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/10/epix-decision.html' title='An Epix Decision'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-3036160149201858966</id><published>2010-10-02T13:51:00.000-04:00</published><updated>2010-10-02T13:51:40.869-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Remote Access'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>Remote Login to the Command Line</title><content type='html'>&lt;p&gt;
The other day I was away from home when my wife called up and asked me where I'd put the papers I'd promised to print out.
&lt;/p&gt;

&lt;p&gt;
I let out a very soft &lt;q&gt;damn&lt;/q&gt;, because of course I'd forgotten to print out anything.
&lt;/p&gt;

&lt;p&gt;
But all was not lost.  I simply logged onto my home computer, found the appropriate file, and printed it, on my home printer.  She was suitably impressed.
&lt;/p&gt;

&lt;p&gt;
This, of course, is the whole point of &lt;a href="http://hawknotes.blogspot.com/2010/06/finding-your-external-ip-address.html"&gt;a long-ago post&lt;/a&gt;, where we figured out how to determine a router's external IP address.  What we want to do today is to use that information to log onto one of your home computers from afar.  We'll assume you have figured out your current dynamic IP address, perhaps by looking at the bottom of your gmail page, or using the software I assembled in the previous post.
&lt;/p&gt;

&lt;p&gt;
So let's say that you've found that your router currently has the dynamic IP address aaa.bbb.ccc.ddd .  Then, in principle, all you have to do to log onto your account at home would be to open up a terminal and type
&lt;/p&gt;

&lt;pre&gt;ssh rcjhawk@aaa.bbb.ccc.ddd&lt;/pre&gt;

&lt;p&gt;
where you'd replace &lt;tt&gt;rcjhawk&lt;/tt&gt; by your own account, of course.  Then, if you have &lt;a href="http://hawknotes.blogspot.com/2010/06/smart-ssh-tricks.html"&gt;ssh set up properly&lt;/a&gt;, you'll be logged to a &lt;a href="http://en.wikipedia.org/wiki/Command-line_interface"&gt;CLI&lt;/a&gt; on your home machine.
&lt;/p&gt;

&lt;p&gt;
In the usual home setup, with many computers connected to a router with only one external IP address, this will never work out of the box.  First, the router doesn't (usually) do ssh on its own, and if it did there wouldn't be any useful information for you there, unless you wanted to &lt;del&gt;trash&lt;/del&gt; fix your own network.  Second, the router doesn't know which machine you want to talk to.  And third, even if it did, that machine might not be accepting ssh requests (and won't, if you've &lt;a href="http://hawknotes.blogspot.com/2010/05/hostsdeny.html"&gt;followed my previous recommendation&lt;/a&gt;).
&lt;/p&gt;

&lt;p&gt;
So what do we need to do?  Let's see:  First, we need to tell the router which computer gets the ssh session.  Then, we need to set that computer up to receive ssh commands.  Finally, if we want to be able to contact multiple computers, all behind the same router, we have to figure out how to do that, as well.
&lt;/p&gt;

&lt;h4&gt;Setting up the router&lt;/h4&gt;

&lt;p&gt;
First things first: how does the router pick a computer for ssh? Well, though &lt;a href="http://en.wikipedia.org/wiki/TCP_and_UDP_port"&gt;Wikipedia tries to explain it in technical detail&lt;/a&gt;, basically your computer connections to the outside world are controlled by a set of 65536 (or 2&lt;sup&gt;16&lt;/sup&gt;) &lt;em&gt;ports&lt;/em&gt;.  If you like, you can consider each port as a connection in &lt;a href="http://www4.nau.edu/its/tel/switchboard/images/old%20switchboard%201927.jpg"&gt;an old-style telephone switchboard&lt;/a&gt;.  When you call up a specific service on a computer, you ask to be hooked up to a specific phone number.
&lt;/p&gt;

&lt;p&gt;
Some of these phone numbers, or ports, are &lt;a href="http://www.iana.org/assignments/port-numbers"&gt;customarily assigned to specific services&lt;/a&gt;. For example, port 80 is usually reserved for a web server.  It doesn't have to be that way, though, you could start your web server running on port 31526, if you liked.  The problem is that everyone's browser would be looking for your server on port 80 of your computer, and you wouldn't get many hits.  (If that's what you desire, go for it.)
&lt;/p&gt;

&lt;p&gt;
&lt;tt&gt;ssh&lt;/tt&gt;, it turns out, is typically assigned port 22.  So when I run
&lt;/p&gt;

&lt;pre&gt;ssh rcjhawk@aaa.bbb.ccc.ddd&lt;/pre&gt;

&lt;p&gt;
the computer I'm on asks the operator (my home router), to connect it to port 22 so that it can talk to whoever is there.  If that contact speaks ssh, then we can communicate.  If, however, the contact is speaking telnet, or ftp, we're going to have problems.
&lt;/p&gt;

&lt;p&gt;
The router, as we said above, knows nothing about ssh, or at least doesn't want to talk to the unwashed masses of the Internet.  It has to pass the call on to a computer that I've designated to receive ssh requests.  This works by what is known as &lt;a href="http://en.wikipedia.org/wiki/Port_forwarding"&gt;Port Forwarding&lt;/a&gt;.  This tells that router that whenever someone comes calling at port 22 it is to pass that signal along to a specific computer.
&lt;/p&gt;

&lt;p&gt;
How do you do port forwarding?  Well, that depends on your router, your firewall, if any, and maybe on your modem.  I can't give general directions, though &lt;a href="http://portforward.com/"&gt;PortForward.com might be able to help.&lt;/a&gt;  There is also a &lt;a href="http://www.youtube.com/watch?v=Kp-R-eHiQco"&gt;YouTube instructional video&lt;/a&gt;, and you ought to be able to find specific instructions for your own router/firewall.
&lt;/p&gt;

&lt;p&gt;
Since I'm on Verizon FIOS here at the house, I have a &lt;strong&gt;Verizon MI424WR modem/router&lt;/strong&gt;. There is an &lt;a href="http://www.ehow.com/how_4663412_enable-miwr-verizon-fios-router.html"&gt;old set of instructions for port forwarding online,&lt;/a&gt; but the software seems to have changed.  That did provide a starting point, however, and I've figured how how to set up forwarding on my current setup:
&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Point your Browser at &lt;a href="http://192.168.1.1/"&gt;http://192.168.1.1/&lt;/a&gt;
&lt;/li&gt;

&lt;li&gt;
Click &lt;tt&gt;Firewall&lt;/tt&gt; at the top of the page.
&lt;/li&gt;

&lt;li&gt;
Click &lt;tt&gt;Port Forwarding&lt;/tt&gt; on the left.
&lt;/li&gt;

&lt;li&gt;
You see a line that says &lt;strong&gt;Create new port forwarding rule:&lt;/strong&gt; and below that a box that says &lt;tt&gt;IP Address forward to or select from menu&lt;/tt&gt;.  Click on that, and then click on the machine you want to pipe your ssh requests to.
&lt;/li&gt;

&lt;li&gt;
Click on the box labeled &lt;tt&gt;Application to forward &amp;hellip;&lt;/tt&gt; and select &lt;tt&gt;SSH&lt;/tt&gt;.  When things settle down, click apply.
&lt;/li&gt;

&lt;/ol&gt;

&lt;h4&gt;Setting up your home machine&lt;/h4&gt;

&lt;p&gt;
This is fairly straightforward.  Let's assume that we've instructed the router to forward port 22 to hal, here.  On hal, we've followed all the instructions to &lt;a href="http://hawknotes.blogspot.com/2010/06/smart-ssh-tricks.html"&gt;get the ssh daemon running&lt;/a&gt;, so that we know what to do with incoming ssh requests.
&lt;/p&gt;

&lt;p&gt;
Currently, however, we have the line
&lt;br /&gt;
ALL: ALL
&lt;br /&gt;
in our &lt;tt&gt;/etc/hosts.deny&lt;/tt&gt; file, and
&lt;br /&gt;
ALL: 192.168.1.0/255.255.255.0
&lt;br /&gt;
in &lt;tt&gt;/etc/hosts.allow&lt;/tt&gt;, which means that only computers on the local network can ssh to hal.  One way to fix this would be to add
&lt;br /&gt;
sshd: ALL
&lt;br /&gt;
to &lt;tt&gt;/etc/hosts.allow&lt;/tt&gt;.  This allows hal to receive ssh requests from any machine, anywhere.  Another way to do it would be to specify those external machines that can access hal by host.  For example, if I worked for Google, the line might read:
&lt;br /&gt;
sshd: 72.14.0.0/255.255.0.0
&lt;br /&gt;
or some-such, letting me log in from any computer with an ip number 72.14.xxx.yyy.
&lt;/p&gt;

&lt;p&gt;
Once we have your home computer's &lt;tt&gt;/etc/hosts.allow&lt;/tt&gt; file properly set up, then running&lt;br /&gt;
&lt;tt&gt;ssh youraccount@aaa.bbb.ccc.ddd&lt;/tt&gt;
&lt;br /&gt;
from an allowed machine, where youraccount is the account name on your home machine, and aaa.bbb.ccc.ddd is &lt;a href="http://hawknotes.blogspot.com/2010/06/finding-your-external-ip-address.html"&gt;your router's current IP address&lt;/a&gt;, should get you in, at least after you enter the appropriate password.
&lt;/p&gt;

&lt;h4&gt;Other machines on your network&lt;/h4&gt;

&lt;p&gt;
The problem with all of that is that I can only access &lt;tt&gt;hal&lt;/tt&gt; by this method.  Suppose I want to access another computer, &lt;tt&gt;fred&lt;/tt&gt;, instead.  I could, of course, get into my router and change port 22 forwarding from &lt;tt&gt;hal&lt;/tt&gt; to &lt;tt&gt;fred&lt;/tt&gt;, but that's difficult to do from the road, unless I allowed my router to be administered remotely.
&lt;/p&gt;

&lt;p&gt;
However, the port/service assignment is more of what you'd call a guideline.  We can, in fact, use any port in a storm for ssh services.  In the example above the Verizon router had presets for ssh using port 22, but we could have used any other port instead.
&lt;/p&gt;

&lt;p&gt;
Again, the exact way of doing this will vary from router to router, but to set up forwarding of an arbitrary port to a machine with the Verizon router,
&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Point your Browser at &lt;a href="http://192.168.1.1/"&gt;http://192.168.1.1/&lt;/a&gt;
&lt;/li&gt;

&lt;li&gt;
Click &lt;tt&gt;Firewall&lt;/tt&gt; at the top of the page.
&lt;/li&gt;

&lt;li&gt;
Click &lt;tt&gt;Port Forwarding&lt;/tt&gt; on the left.
&lt;/li&gt;

&lt;li&gt;
Under &lt;tt&gt;IP Address &amp;hellip;&lt;/tt&gt; click on your target machine.
&lt;/li&gt;

&lt;li&gt;
Under &lt;tt&gt;Application&lt;/tt&gt; click &lt;tt&gt;Custom&lt;/tt&gt; Ports. When things settle down you'll have a bunch of boxes to click.
&lt;/li&gt;

&lt;li&gt;
Under &lt;strong&gt;Protocol&lt;/strong&gt; select &lt;tt&gt;TCP&lt;/tt&gt;.
&lt;/li&gt;

&lt;li&gt;
Under &lt;strong&gt;Source Ports&lt;/strong&gt; select &lt;tt&gt;Any&lt;/tt&gt;.
&lt;/li&gt;

&lt;li&gt;
Under &lt;strong&gt;Destination Ports&lt;/strong&gt; select &lt;tt&gt;Specify&lt;/tt&gt;, and then put in your selected port.  In this case we'll use 1022.  We don't have to use 1022, but it's simple to remember, once we know that ssh ordinarily uses port 22.
&lt;/li&gt;

&lt;li&gt;
Click on &lt;strong&gt;Apply&lt;/strong&gt; and you're done here.
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Now go back to your target machine.  Open up a terminal window. Then,
&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
Run &lt;br /&gt;
&lt;tt&gt;sudo vi /etc/hosts.allow&lt;/tt&gt;
&lt;br /&gt;
and edit the file to allow sshd access from your favorite machines, just as you did with the first machine.
&lt;/li&gt;

&lt;li&gt;
Run &lt;br /&gt;
&lt;tt&gt;sudo vi /etc/ssh/sshd_config&lt;/tt&gt;
&lt;br /&gt;
Look for a line that says &lt;tt&gt;Port 22&lt;/tt&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;em&gt;Below&lt;/em&gt; that line add the line &lt;br /&gt;
&lt;tt&gt;Port 1022&lt;/tt&gt;
&lt;br /&gt;or whatever other number you've chosen.
&lt;/li&gt;

&lt;li&gt;
Stop and restart the ssh daemon by running the command:&lt;br /&gt;
&lt;tt&gt;sudo /etc/init.d/ssh restart&lt;/tt&gt;
&lt;/li&gt;

&lt;li&gt;
Now go over to your remote machine.  Run &lt;br /&gt;
&lt;tt&gt;ssh youraccount@aaa.bbb.ccc.ddd -p 1022&lt;/tt&gt;
&lt;br /&gt; if 1022 is the port you've chosen.  You should be logged on to the second machine in your network.
&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;
That concludes the tutorial on accessing your home machines' command lines.  Ubuntu also has a remote desktop feature, which I've yet to use.  When I get around to trying it out we'll put that online here as well.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-3036160149201858966?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/3036160149201858966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=3036160149201858966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/3036160149201858966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/3036160149201858966'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/10/remote-login-to-command-line.html' title='Remote Login to the Command Line'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-7836004175661628850</id><published>2010-09-25T15:52:00.002-04:00</published><updated>2010-09-25T15:52:24.723-04:00</updated><title type='text'>Bum-Bum-Bum-Bum-BUM-Bum</title><content type='html'>&lt;p&gt;I liked &lt;a href="http://en.wikipedia.org/wiki/Number_Eight_(Battlestar_Galactica)"&gt;Boomer&lt;/a&gt; better than I like &lt;a href="http://www.vancouversun.com/entertainment/Grace+Park+brings+female+touch+Hawaii+Five/3550093/story.html"&gt;Kona&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Which is a short way of saying that if you're watching the re-make &lt;a href="http://en.wikipedia.org/wiki/Hawaii_Five-0"&gt;&lt;em&gt;Hawaii Five-0&lt;/em&gt;&lt;/a&gt; in order to see more of &lt;a href="http://en.wikipedia.org/wiki/Grace_Park_(actress)"&gt;Grace Park&lt;/a&gt;, you're better off getting all the &lt;a href="http://en.wikipedia.org/wiki/Battlestar_Galactica_(re-imagining)"&gt;&lt;em&gt;Battlestar Galactica&lt;/em&gt;&lt;/a&gt; disks from Netflix and watching them.  Boomer/Sharon/Athena/Eight was interesting and sexy.  Kona looks like a school girl.  A painfully thin school girl. &lt;/p&gt;

&lt;p&gt;To put it mildly, I'm unimpressed by the whole &lt;em&gt;Five-0&lt;/em&gt; experience.  At the start, they do keep the same theme song, how could they not, but they make the images flash &lt;em&gt;way&lt;/em&gt; too fast, and cut it short as well.&lt;/p&gt;

&lt;p&gt;Then there's McGarrett.  Not my idea of a NCIS/Seal/Cop.  Well, maybe a Don Johnson-style cop, since he always needs a shave.  But Alex O'Loughlin is no Jack Lord.  Or Mark Harmon, for that matter.&lt;/p&gt;

&lt;p&gt;I did like Danno.  The first thing I thought was &lt;q&gt;He reminds me of James Caan.&lt;/q&gt;  Then I look up &lt;a href="http://en.wikipedia.org/wiki/Scott_Caan"&gt;Scott Cann&lt;/a&gt;, and find that he's James Caan's son.  This is one improvement over the old show, the old Danno was a wimp.&lt;/p&gt;

&lt;p&gt;And I love the makeup work they did on &lt;a href="http://en.wikipedia.org/wiki/Jean_Smart"&gt;Jean Smart&lt;/a&gt;, who plays the governor.  She's my age, but they managed to make her look old.&lt;/p&gt;

&lt;p&gt;OK, this is a meander, and not a review, but lets see &amp;mdash; what was good and bad about the episode itself:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Good:&lt;/em&gt; There's an underlying mystery here, something only hinted at in the first episode.  Sort of like in last year's &lt;em&gt;The Good Wife&lt;/em&gt;, where we learn that there's some deep dark secret in Chicago politics (who knew?)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Bad:&lt;/em&gt; Jean Smart's roll is apparently going to be along the lines of:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;McGarrett:&lt;/strong&gt; &lt;q&gt;You gave me unlimited authority!&lt;/q&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Governor:&lt;/strong&gt; &lt;q&gt;And you exceeded it!&lt;/q&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Implausible:&lt;/em&gt; McGarrett and Danno attack what is identified as a Chinese cargo ship.  While there, they are attacked by a variety of bad guys, including the episode's main villain.  They win easily, of course.  In the entire scene we see not one person of Asian extraction.&lt;/p&gt;

&lt;p&gt;I'll probably watch a few more episodes, as time permits, either on Hulu or with FIOS On Demand, but this isn't going to be one of those shows that's automatically DVR'd.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-7836004175661628850?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/7836004175661628850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=7836004175661628850' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7836004175661628850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7836004175661628850'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/09/bum-bum-bum-bum-bum-bum_25.html' title='Bum-Bum-Bum-Bum-BUM-Bum'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-5533551733522226896</id><published>2010-09-24T23:44:00.009-04:00</published><updated>2010-09-24T23:54:08.707-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><category scheme='http://www.blogger.com/atom/ns#' term='Chromium'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu and Flash</title><content type='html'>&lt;p&gt;
I've been running the 64-bit version of Ubuntu 10.04 for about five months, and have had few problems.  Most of them you've heard about.  Lately, though, I've had a major problem — Ubuntu's unbranded version of Google Chrome, aka &lt;tt&gt;chromium-browser&lt;/tt&gt;, wouldn't run Flash.&lt;/p&gt;

&lt;p&gt;If I tried to visit a flash site, I'd get something like this:&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/_WZHLzoZCfRI/TJ1qTowpUDI/AAAAAAAAAyE/n7emxSr5J4I/s1600/cbsflash9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="136" src="http://3.bp.blogspot.com/_WZHLzoZCfRI/TJ1qTowpUDI/AAAAAAAAAyE/n7emxSr5J4I/s320/cbsflash9.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p align="center"&gt;Annoying.&lt;/p&gt;

&lt;p&gt;The apparent cause is a corrupted profile.  Exactly what's corrupted, I couldn't say.  Basically, to get Flash running again you need to wipe out all traces of chromium and start over.  I did this, but I wanted to at least save my bookmarks.  Here's how.  Open a terminal and type in everything to the left of the &lt;q&gt;#&lt;/q&gt; signs:&lt;/p&gt;

&lt;pre&gt;
cd # Go to your home directory
mv .config/chromium chromium_old # save your old configuration, at least for now
chromium-browser # start the browser up.  Exit immediately.
cp chromium_old/Default/Bookmarks* .config/chromium/Default # restore you old bookmarks
chromium-browser # surf normally.
&lt;/pre&gt;

&lt;p&gt;Of course, you've lost all your saved passwords, surfing history, etc.  Think of it as a way of weeding out the chaff.  A project, for someone who has the interest and time, would be to go through each file in the old profile and determine which one got corrupted.  If you do that, feel free to let us know what you find.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-5533551733522226896?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/5533551733522226896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=5533551733522226896' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/5533551733522226896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/5533551733522226896'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/09/ubuntu-and-flash_24.html' title='Ubuntu and Flash'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_WZHLzoZCfRI/TJ1qTowpUDI/AAAAAAAAAyE/n7emxSr5J4I/s72-c/cbsflash9.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-6815590789459252320</id><published>2010-09-18T12:12:00.000-04:00</published><updated>2010-09-18T12:12:54.853-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>Back to Blogging</title><content type='html'>&lt;p&gt;Well, not really, just another placeholder/bookmark entry.  It was a busy summer, and now I'm coming up on Fiscal New Year's Day.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;From our Department of Procrastination:&lt;/em&gt; I owe y'all a follow-up to &lt;a href="http://hawknotes.blogspot.com/2010/06/finding-your-external-ip-address.html"&gt;Finding Your External IP Address&lt;/a&gt;, where I show you how to use the thing, &lt;em&gt;i.e.&lt;/em&gt;, log onto any computer in your house from anyplace else in the Universe.  This is half-written, so maybe in a week or two it will actually get posted.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Book Reviews:&lt;/em&gt;  I really want to mention the greatest history book ever written, &lt;a href="http://sundown.afro.illinois.edu/liesmyteachertoldme.php"&gt;&lt;em&gt;Lies My Teacher Told Me&lt;/em&gt;&lt;/a&gt; by James Loewen.  I lost the first edition long ago, but a second, substantially rewritten, edition is now out.  Find it, buy it, read it.  You won't agree with everything, but you'll agree that it's relevant.&lt;p&gt;

&lt;p&gt;&lt;em&gt;Another one:&lt;/em&gt;  &lt;a href="http://www.nytimes.com/2008/03/23/books/review/Toibin-t.html"&gt;&lt;em&gt;Human Smoke&lt;/em&gt;&lt;/a&gt;, by Nicholson Baker.  It's &lt;q&gt;just&lt;/q&gt; a collection of quotations and stories from the end of World War I to the end of 1941.  No one, and I mean no one, comes off well here.  None of your heroes, and certainly none of your villains.  You'll have to read it slowly, because it's just too damn depressing to read all at once.  But read it.  It covers that part of history that Loewen complains is left out of history books.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tips and tricks:&lt;/em&gt;  A recent update to my &lt;a href="http://www.chromium.org/Home"&gt;Chromium browser&lt;/a&gt; (&lt;a href="http://www.google.com/chrome"&gt;Google Chrome&lt;/a&gt;, if you're using a branded version) left me without a bookmark toolbar.  Annoying.  Reading through &lt;a href="http://code.google.com/p/chromium/issues/detail?id=30262"&gt;this entire comment&lt;/a&gt;, and noting that I &lt;em&gt;don't&lt;/em&gt; seem to have an option for this under the wrench, I found that Ctrl-Shift-B toggles the toolbar.&lt;/p&gt;

&lt;p&gt;We'll get back to real live articles Real Soon Now.  I hope.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-6815590789459252320?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/6815590789459252320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=6815590789459252320' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6815590789459252320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6815590789459252320'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/09/back-to-blogging.html' title='Back to Blogging'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-2981296200094327183</id><published>2010-09-05T19:09:00.000-04:00</published><updated>2010-09-05T19:09:37.611-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Virtual Windows</title><content type='html'>&lt;p&gt;Or virtual anything else:  I've been playing around with the open source edition of &lt;a href="http://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt;, a utility from Oracle (boo!) that lets you run another operating system in a Window in your current operating system.&lt;/p&gt;

&lt;p&gt;Any host operating system: Linux, Windows, OS X.  Any target OS: Linux, Windows, OS X &amp;mdash; well, maybe you'd better ask Steve about that.  Tell him I said it was OK.&lt;/p&gt;

&lt;p&gt;The open source version of VirtualBox is included in the Ubuntu repositories, so install it with:&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;sudo apt-get install virtualbox-ose&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;On your Gnome menu you'll find and entry for &lt;tt&gt;VirtualBox OSE&lt;/tt&gt; under &lt;tt&gt;Applications =&amp;gt; Accessories&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;Click &lt;tt&gt;New&lt;/tt&gt; and follow the directions.  I was able to install Windows XP &lt;a href="http://hawknotes.blogspot.com/2007/10/how-i-spent-columbus-day-observed.html"&gt;without the usual hassles.&lt;/a&gt;  VB provided all the needed drivers.&lt;/p&gt;

&lt;p&gt;OK, one problem.  The virtual machine wouldn't boot.  The problem turned out to be that VB was looking for a floppy disk drive, which Hal doesn't have.  I had to click &lt;tt&gt;Settings =&amp;gt; System&lt;/tt&gt;, and then unclick the &lt;tt&gt;Floppy Drive&lt;/tt&gt; label under &lt;tt&gt;Boot Order&lt;/tt&gt;.  After that, everything worked fine.&lt;/p&gt;

&lt;p&gt;I was even able to stream Netflix movies in a browser under Windows, once I installed Silverlight.&lt;/p&gt;

&lt;p&gt;Useful for the very few times I need Windows.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-2981296200094327183?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/2981296200094327183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=2981296200094327183' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2981296200094327183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2981296200094327183'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/09/virtual-windows.html' title='Virtual Windows'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-1393763858750203217</id><published>2010-07-29T18:31:00.000-04:00</published><updated>2010-07-29T18:31:31.133-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Updating the un-updatable</title><content type='html'>&lt;p&gt;In my post &lt;a href="http://hawknotes.blogspot.com/2010/07/update-log.html"&gt;on the relative easy of updating Linux&lt;/a&gt; I used Ubuntu's graphical Update Manager to do the work.&lt;/p&gt;

&lt;p&gt;Of course, in Linux/Unix you can always do this from the command line.  In Debian based systems the relative commands are:&lt;/p&gt;

&lt;pre&gt;
sudo apt-get update
sudo apt-get upgrade
&lt;/pre&gt;

&lt;p&gt;The first line compares the packages available online with those installed on your machine, and the second line upgrades the packages that aren't current.  Easy, huh?&lt;/p&gt;

&lt;p&gt;Except that sometimes you get messages like this:&lt;/p&gt;

&lt;pre&gt;The following packages have been kept back:
  linux-generic linux-headers-generic linux-image-generic
&lt;/pre&gt;

&lt;p&gt;This is more or less a &lt;q&gt;are you sure you want to do this now?&lt;/q&gt; message.  You'll note that the kernel is involved here, so you're going to have to reboot the machine once the packages are installed.&lt;/p&gt;

&lt;p&gt;All right, I'll reboot, so what do I have to do?  Well, it turns out the the packages can be explicitly installed:&lt;/p&gt;

&lt;pre&gt;sudo apt-get install linux-generic linux-headers-generic linux-image-generic&lt;/pre&gt;

&lt;p&gt;This will take care of everything.  Just remember to reboot the computer to get the new kernel up and running.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-1393763858750203217?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/1393763858750203217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=1393763858750203217' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1393763858750203217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1393763858750203217'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/07/updating-un-updatable.html' title='Updating the un-updatable'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-7556911985185982462</id><published>2010-07-26T19:51:00.000-04:00</published><updated>2010-07-26T19:51:09.901-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sigh'/><title type='text'>This Week's Sign of the Apocalypse</title><content type='html'>&lt;p&gt;Since time began, classes at the &lt;a href="http://www.ku.edu/"&gt;University of Kansas&lt;/a&gt; have ended with the sound of a steam whistle which tooted for five seconds at 50 minutes past the hour.&lt;/p&gt;

&lt;p&gt;As a budget cutting measure, the steam whistle, &lt;q&gt;Tootie-Toot&lt;/q&gt; (never heard that name when I was there), now only &lt;a href="http://www.kansan.com/news/2010/apr/15/budget/?print"&gt;sounds for 2.5 seconds&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The 2.5 second version is at the end of this clip:&lt;/p&gt;

&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/9o7PgwVy_h8&amp;amp;hl=en_US&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/9o7PgwVy_h8&amp;amp;hl=en_US&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&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/6230347-7556911985185982462?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/7556911985185982462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=7556911985185982462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7556911985185982462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7556911985185982462'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/07/this-weeks-sign-of-apocalypse.html' title='This Week&apos;s Sign of the Apocalypse'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-1505459674109921927</id><published>2010-07-24T14:48:00.000-04:00</published><updated>2010-07-24T14:48:46.613-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux advocacy'/><category scheme='http://www.blogger.com/atom/ns#' term='Macs'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Annoyances'/><title type='text'>The Update Log</title><content type='html'>&lt;p&gt;I've spent most of July out of town/state/country, so I haven't been very diligent about updating all the computers.  Today, though, I took a stab at it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I.  Windows Vista&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We have a Windows Vista desktop.  It's slated to be upgraded to Linux after Child&lt;sub&gt;2&lt;/sub&gt; moves files off of it to the new Macbook.  For now, though, it runs several programs that said child uses, &lt;em&gt;e.g. Photoshop&lt;/em&gt;, and has a full set of browsers (IE, Firefox, Chrome, Safari) that I use to judge how new web pages look to the masses.&lt;/p&gt;

&lt;p&gt;OK, here's everything I needed to do to update that machine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Update Virus Definitions&lt;/em&gt;:  We have McAfee installed, primarily because we bought this machine before I knew about &lt;a href="http://www.microsoft.com/security_essentials/"&gt;Microsoft's Windows Security Essentials&lt;/a&gt;.  It's not smart enough to know that it should autoupdate virus definitions if the computer's been off a long time, it just gives you a Dire Warning of Impending Doom.&lt;/li&gt;

&lt;li&gt;
&lt;em&gt;Update Firefox&lt;/em&gt;
&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Update Thunderbird&lt;/em&gt;&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Update Google Chrome&lt;/em&gt;&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Update Safari&lt;/em&gt;:  This one popped up on its own, offering updates to both Safari and iTunes.&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Check Flash Version&lt;/em&gt;:  Up to date&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Perform Microsoft Updates&lt;/em&gt;:  At least these were done in the background, all I had to do was reboot.&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Reboot&lt;/em&gt;:  Note that three (3) programs asked for permission to reboot:  Windows itself, Apple's Safari/iTunes, and McAfee&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Run Virus Scan&lt;/em&gt;: otherwise it wouldn't do it until late tonight.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;II.  Mac OS X&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is my work laptop.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Run Software Update&lt;/em&gt;&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Run Microsoft Autoupdate&lt;/em&gt;: to check if any Office components needed to be updated.&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Update Firefox&lt;/em&gt;&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Update Thunderbird&lt;/em&gt;&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Update Google Chrome&lt;/em&gt;&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Check Flash Version&lt;/em&gt;&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Check for updates to Aqua Emacs&lt;/em&gt;&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Run&lt;/em&gt; &lt;tt&gt;sudo port upgrade&lt;/tt&gt;: to check for updates to &lt;a href="http://www.macports.org/"&gt;Macports&lt;/a&gt; programs.&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Virus check&lt;/em&gt;: I'm required to run a virus checker by the powers that be, never mind that the next Mac virus in the wild will be the first I'm aware of.  Fortunately, on the Mac McAfee is smart enough to do all its work in the background, without the warnings.&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Reboot&lt;/em&gt; to take care of the system updates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;III. Linux machines&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;&lt;em&gt;System &amp;gt; Administration &amp;gt; Update Manager &amp;gt; Check &amp;gt; Install Updates&lt;/em&gt;: then wait a bit&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Reboot&lt;/em&gt;: to activate the new kernel&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Now.  Will some one please remind me how much easier it is to run Windows or Mac OS X as opposed to Linux?  Because sometimes I forget.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-1505459674109921927?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/1505459674109921927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=1505459674109921927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1505459674109921927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1505459674109921927'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/07/update-log.html' title='The Update Log'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-6234084442705403026</id><published>2010-07-21T18:55:00.000-04:00</published><updated>2010-07-21T18:55:43.327-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humor?'/><category scheme='http://www.blogger.com/atom/ns#' term='History'/><title type='text'>Why People Don't Read History</title><content type='html'>&lt;p&gt;&lt;a href="http://squid314.livejournal.com/275614.html"&gt;It's just not believable.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Stolen from a comment in &lt;a href="http://davidbrin.blogspot.com/2010/07/if-corporations-are-persons.html?showComment=1279051163582#c361751923125749869"&gt;Contrary Brin&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I've been on vacation.  More actual Linux stuff this weekend, I hope.&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-6234084442705403026?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/6234084442705403026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=6234084442705403026' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6234084442705403026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6234084442705403026'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/07/why-people-dont-read-history.html' title='Why People Don&apos;t Read History'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-2142545865459166290</id><published>2010-06-26T13:05:00.005-04:00</published><updated>2010-07-29T18:42:37.347-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Remote Access'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>Finding Your External IP Address</title><content type='html'>&lt;p&gt;
For various reasons you might want to find your &lt;a target="_blank" href="http://en.wikipedia.org/wiki/IP_address"&gt;public IP address&lt;/a&gt;, that is, the 32-bit number, expressed in pseudo-decimal form as something like 72.14.204.99, that tells the world how to reach your computer.
&lt;/p&gt;

&lt;p&gt;
For most businesses and government offices this is trivial:  your computer is assigned a static IP address, one that never changes with time.  For home users, though, it's a little more complex.
&lt;/p&gt;

&lt;p&gt;
Start with the IP address itself.  The largest possible IP address is 255.255.255.255.  That means that you can have no more than 4,294,967,296 unique IP addresses, and some of those are &lt;a target="_blank" href="http://www.nthelp.com/40/ip.htm"&gt;reserved for local use&lt;/a&gt;, as we'll see.  We're coming up on 7 billion people in the world.  Not everyone has a computer (yet, and remember iPhones, iPads, Kindle, and all 'Droids count), but many people have more than one (see iPhones, iPads, &amp;hellip;).  So there aren't enough IP addresses to go around.  Eventually, everyone will switch over to the &lt;a target="_blank" href="http://en.wikipedia.org/wiki/IPv6"&gt;IPv6&lt;/a&gt; address scheme, which will give us 340,282,366,920,938,463,463,374,607,431,768,211,456 (2&lt;sup&gt;128&lt;/sup&gt;, or 3.4&amp;times;10&lt;sup&gt;38&lt;/sup&gt;) possible addresses, which is probably enough for every non-hydrogen nucleus in the observable universe to have its own address.
&lt;/p&gt;

&lt;p&gt;
But we're not there yet, so something has to be done to shrink the address space.  Your local &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Internet_service_provider"&gt;ISP&lt;/a&gt; solves this problem by 1) charging you extra to get a static IP address; 2) giving you only one IP address per gateway (your cable, FIOS, DSL, or dial-up modem, or some other router or hub that connects you to the internet); and 3) taking your IP address away from you when you're not using it.
&lt;/p&gt;

&lt;p&gt;
That last one is called &lt;em&gt;dynamic IP addressing&lt;/em&gt;, and it's part of what we're going to talk about today.  If you have a dynamic IP address, then when you turn your gateway connection (usually some type of modem or router) on, your ISP assigns you an IP address from its bank of addresses.  As long as your connection is turned on, you'll have an IP address, but your ISP can change it at any time.  It will almost certainly change it if you turn off your connection and turn it on again.  So if you know your IP address right now, there's no reason to expect it will be the same tomorrow, or even five minutes from now &amp;mdash; though to be fair, Verizon FIOS has kept our house on the same IP address for weeks.
&lt;/p&gt;

&lt;p&gt;
And there is worse to come:  Suppose your ISP has given you the address 244.117.16.25.  The computer you're reading this on doesn't have a clue as to what that address is.  Go back to 2), above.  Your house has only one IP address, and it belongs to your gateway.  Every other computer in the house belongs to your home network.  When you want to download your email, your computer politely requests the gateway to go fetch it:
&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;q&gt;Please, sir, may I have my email?&lt;/q&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;q&gt;Oh, all right.  Just this once.  But don't tell any of the other computers what we're doing.&lt;/q&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;q&gt;Thank you, sir!  I'll be eternally grateful&lt;/q&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;q&gt;You'd better be, or no Internet for you.&lt;/q&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
Let's see how this works.  &lt;tt&gt;ping&lt;/tt&gt; is a command that will poke a stick at a computer and get information about it.  Let's try it with a well known site:
&lt;/p&gt;

&lt;pre&gt;
ping google.com
PING google.com (72.14.204.99) 56(84) bytes of data.
64 bytes from iad04s01-in-f99.1e100.net (72.14.204.99): icmp_seq=1 ttl=53 time=21.8 ms
64 bytes from iad04s01-in-f99.1e100.net (72.14.204.99): icmp_seq=2 ttl=53 time=20.2 ms
64 bytes from iad04s01-in-f99.1e100.net (72.14.204.99): icmp_seq=3 ttl=53 time=23.4 ms
^C
&lt;/pre&gt;

&lt;p&gt;(you'll need to hit ctrl-C to stop this)&lt;/p&gt;

&lt;p&gt;
So we see that google.com has an IP address of 72.14.204.99 &amp;mdash; that's actually one of many, but don't worry about that.  Now let's try it with a local machine:
&lt;/p&gt;

&lt;pre&gt;
ping george
PING george.home (192.168.1.2) 56(84) bytes of data.
64 bytes from george.home (192.168.1.2): icmp_seq=1 ttl=64 time=9.77 ms
64 bytes from george.home (192.168.1.2): icmp_seq=2 ttl=64 time=2.70 ms
64 bytes from george.home (192.168.1.2): icmp_seq=3 ttl=64 time=0.961 ms
^C
&lt;/pre&gt;

&lt;p&gt;
So far has the home network is concerned, george lives at 192.168.1.2, which is one of those &lt;a target="_blank" href="http://www.nthelp.com/40/ip.htm"&gt;reserved addresses&lt;/a&gt; we mentioned above.  The range 192.168.0.0 to 192.168.255.255 is reserved for internal networks.  As we read this, there are no doubt hundreds of thousands of computers with the local IP address of 192.168.1.2.  Every one of them, however, has a different public IP address.
&lt;/p&gt;

&lt;p&gt;
Great.  But sometimes I need to know my external IP address, and it's apparent that Hal, here, hasn't got a clue as to what it is.  How can I find it?
&lt;/p&gt;

&lt;p&gt;
The easiest way is to go to another website.  Every website you connect with gets your public IP address automatically, unless you use some kind of anonymous service.  Some websites are set up to tell you what your IP address is.  One example is &lt;a target="_blank" href="http://www.whatismyip.com/"&gt;What Is My IP?&lt;/a&gt;.  They even provide a way to get your IP address with a simple one-line terminal command:
&lt;/p&gt;

&lt;pre&gt;
wget www.whatismyip.com/automation/n09230945.asp -O - -q ; echo
&lt;/pre&gt;

&lt;p&gt;
If you read your Gmail via Thunderbird, Evolution, Outlook, etc., and keep your web client on all day, gmail will tell you the address of your computer.  Just log on to &lt;a target="_blank" href="https://mail.google.com/mail/"&gt;your gmail account&lt;/a&gt; and look for the line that says &lt;q&gt;Last account activity: &amp;hellip;&lt;/q&gt;.  The IP address there is the last computer to download email.  If you're using more than one computer from different locations, say you left your office machine on over the weekend and now you're using a home computer, click on the &lt;tt&gt;Details&lt;/tt&gt; link and you'll find all of the activity for this account.
&lt;/p&gt;

&lt;p&gt;
There's a company &lt;a target="_blank" href="http://www.dyndns.com/"&gt;DynDNS&lt;/a&gt;, which will not only find your IP address, but give you a domain name that constantly updates to your current numerical address.  Of course, they do this by having your computer constantly tell them the public IP address.
&lt;/p&gt;

&lt;p&gt;
And, of course, your gateway knows its public IP address.  Just log onto it through your browser (something like &lt;a target="_blank" href="http://192.168.0.1"&gt;http://192.168.0.1&lt;/a&gt;, &lt;a target="_blank" href="http://192.168.1.1"&gt;http://192.168.1.1&lt;/a&gt;, or &lt;a target="_blank" href="http://192.168.100.1"&gt;http://192.168.100.1&lt;/a&gt;, depending on your system), and your IP address will be up there someplace.
&lt;/p&gt;

&lt;p&gt;
But all of these systems have flaws:  Say you need your IP address in a script.  You can get it via your browser from your gmail or your gateway machine, but it's hard to parse a browser page inside a script.  The &lt;q&gt;What's My IP?&lt;/q&gt; one-liner works in a script, but what if their site goes down, or, worse, they go out of business?  Same for DynDNS.  We want a solution that works any time your gateway is on and your computer has an internet connect, and we want to get it from the command line. 
&lt;/p&gt;

&lt;p&gt;Any other way just ain't elegant.&lt;/p&gt;

&lt;p&gt;
If you search the Internet you find surprisingly few ways (i.e., none) to do this.  Partly I think it's because there isn't a consistent way to find your gateway from your current machine.  For example, in the days when we used Comcast, we had a cable modem as the gateway.  On the house side of the modem we connected a Linksys router, which was the hub of our home network.  All the computers in the house were connected through the router to the modem &amp;mdash; a two step-process.  Now we have Verizon FIOS, with a Actiontec MI424WR router that serves as gateway/modem and router &amp;mdash; a one-step process.
&lt;/p&gt;

&lt;p&gt;
By stumbling around, and with a little help from &lt;a target="_blank" href="http://www.cyberciti.biz/faq/how-to-find-gateway-ip-address/"&gt;nixCraft&lt;/a&gt;, I was able to come up with a solution that works for me.  It's a bash script.  Let me put it here (finally, I hear you say), and we'll dissect it below:
&lt;/p&gt;

&lt;pre id="script" style="background-color:#bbbbbb;"&gt;
#! /bin/bash

# Determine the public IP address for your DHCP system by bootstrapping

#  calls to your gateway/router

# Requires "route," available in Ubuntu package net-tools, and
# nslookup, available in Ubuntu package dnstools

# Disclaimers:
# 1) This works with Verizon FIOS using the Actiontec MI424WR Router
#    If you have another system YMMV.
#
# 2) And, as you'll no doubt note, this is set up for a Debian system,
#    specifically Ubuntu 10.04 .  Package names and installation
#    procedures for other systems WILL vary.
#

###
# Start Here:
###

#
# Get Router internal Gateway IP
# Information found on
# http://www.cyberciti.biz/faq/how-to-find-gateway-ip-address/
# If route is not installed, run
# sudo apt-get install net-tools
# and make sure /sbin is in your $PATH
# Note "U" = up, and "G" = gateway

internalip=`route -n | grep UG | awk '{print $2}'`

echo Your Gateway\'s Internal IP Address is: $internalip

# Now we need to get the name of the router.  If you don't
#  have nslookup installed, run
# sudo apt-get install dnsutils

echo -n "Your Gateways's name is: "

routername=`nslookup $internalip | grep "name =" | awk '{print $4}'`

# On the Actiontec, at least, the name has an annoying "." at the end.
# Remove it:

routername=${routername%\.}

echo $routername

echo -n "Your Public IP Address is: "

nslookup $routername | grep Address | tail -1 | awk '{print $2}'
&lt;/pre&gt;

&lt;p&gt;
OK, what's going on?  First of all script only works if you have the &lt;tt&gt;route&lt;/tt&gt; and &lt;tt&gt;nslookup&lt;/tt&gt; commands installed on your system.  If they aren't there, in Ubuntu, and presumably and Debian system, you can install them using
&lt;/p&gt;

&lt;pre&gt;sudo apt-get install net-tools dnsutils&lt;/pre&gt;

&lt;p&gt;
The first call, &lt;tt&gt;route -n&lt;/tt&gt;, will look at the Kernel's IP routing table:
&lt;/p&gt;

&lt;pre style="background-color:#bbbbbb;"&gt;
$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
&lt;/pre&gt;

&lt;p&gt;
which on this machine tells us that we have several local connections. The &lt;q&gt;U&lt;/q&gt; under &lt;q&gt;Flags&lt;/q&gt; means that the connection is up, and &lt;q&gt;G&lt;/q&gt; means it's the gateway.  From this we see that the numerical address of the gateway is 192.168.1.1.  Let's see what nslookup can tell us about that.  Note that the script has to parse all of the output to get this far.
&lt;/p&gt;

&lt;pre style="background-color:#bbbbbb;"&gt;
$ nslookup 192.168.1.1
Server:  192.168.1.1
Address: 192.168.1.1#53

1.1.168.192.in-addr.arpa name = Wireless_Broadband_Router.home.
&lt;/pre&gt;

&lt;p&gt;
Here's something new, our gateway's got a name.  Wireless_Broadband_Router.home.  Again, the script has to do a little work to tease that name out of nslookup's output, but we'll just do it by hand here:
&lt;/p&gt;

&lt;pre style="background-color:#bbbbbb;"&gt;
$ nslookup Wireless_Broadband_Router.home
Server:  192.168.1.1
Address: 192.168.1.1#53

Name: Wireless_Broadband_Router.home
Address: 192.168.1.1
Name: Wireless_Broadband_Router.home
Address: xxx.yyy.zzz.aaa
&lt;/pre&gt;

&lt;p&gt;
The first address, 192.168.1.1, is just the router's internal IP address.  The last address (Of course I'm not giving you my IP address.  I'm not daft, you know.) is the one we want.  xxx.yyy.zzz.aaa is the external address of this machine.
&lt;/p&gt;

&lt;p&gt;
Of course there are many, many, problems with this script.
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
So far it only works with the Verzion/Actiontec setup.  A friend, running Ubuntu, wasn't able to pick out his gateway machine with the route -n command.
&lt;/li&gt;

&lt;li&gt;
Some machines can have multiple gateways.
&lt;/li&gt;

&lt;li&gt;
The Mac's &lt;tt&gt;route&lt;/tt&gt; command doesn't work in the same way as under Linux, so you can't parse out the gateway, even if you have none.
&lt;/li&gt;

&lt;li&gt;
You &lt;em&gt;might&lt;/em&gt; be able to tease the gateway IP address out of the &lt;tt&gt;/etc/resolv.conf&lt;/tt&gt; file.  I don't know what happens if you have multiple gateways here.  Under Ubuntu, the one numerical gateway is 192.168.1.1, on the Apple it gives me 192.168.1.1 &lt;em&gt;and&lt;/em&gt; xxx.yyy.zzz.aaa, my public IP address.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
If you try the script, leave a comment below.  Let me know your internet setup (gateway/router), if it works, and any tweaks you did to make it work.  Maybe we can come up with a universal script.
&lt;/p&gt;

&lt;p&gt;
Now, by all that's geekly, why did we do all of this?  That's the subject of an upcoming post, boys and girls &amp;hellip;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-2142545865459166290?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/2142545865459166290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=2142545865459166290' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2142545865459166290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2142545865459166290'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/06/finding-your-external-ip-address.html' title='Finding Your External IP Address'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-8431954101332523916</id><published>2010-06-19T13:36:00.001-04:00</published><updated>2010-06-26T13:09:33.387-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Remote Access'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>Smart ssh tricks</title><content type='html'>&lt;p&gt;
I want my computers to talk to one another.
&lt;/p&gt;

&lt;p&gt;
More specifically, I want to be able to remotely log in to one of my computers from another one, and I want to be able to easily copy files from one computer to another.  The easiest, most secure, way to do that these days is to use the &lt;a href="http://en.wikipedia.org/wiki/Secure_Shell"&gt;Secure Shell protocol&lt;/a&gt;, &lt;em&gt;aka&lt;/em&gt; &lt;tt&gt;ssh&lt;/tt&gt;.
&lt;/p&gt;

&lt;p&gt;
Examples:  I have an account on a computer called &lt;tt&gt;grumpy&lt;/tt&gt; (&lt;tt&gt;sleepy&lt;/tt&gt; and &lt;tt&gt;doc&lt;/tt&gt; were already taken).  To log onto &lt;tt&gt;grumpy&lt;/tt&gt; from &lt;tt&gt;hal&lt;/tt&gt;, I open up a terminal window and type:
&lt;/p&gt;

&lt;pre&gt;$ ssh rcjhawk@grumpy&lt;/pre&gt;

&lt;p&gt;
The program then logs me onto grumpy, where I can access the system just as I can for any desktop machine.
&lt;/p&gt;

&lt;p&gt;
Or, say, I have a file at &lt;tt&gt;/home/rcjhawk/Documents/strasburg_pictures.ppt&lt;/tt&gt; on grumpy.  To copy it over to Hal, I use the &lt;em&gt;secure copy&lt;/em&gt; program, &lt;tt&gt;scp&lt;/tt&gt;:
&lt;/p&gt;

&lt;pre&gt;$ scp rcjhawk@grumpy:Documents/strasburg_pictures.ppt .&lt;/pre&gt;

&lt;p&gt;which, obviously, works pretty much like the regular copy program except that I have to specify the machine and account name right up front.&lt;/p&gt;

&lt;p&gt;And, finally, I can send files the other way:&lt;/p&gt;

&lt;pre&gt;$ scp The_Hard_Times_of_Zach_Greinke.txt rcjhawk@grumpy:Documents&lt;/pre&gt;

&lt;p&gt;which sends that regrettable file into the &lt;tt&gt;Documents&lt;/tt&gt; folder on grumpy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Except:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You will probably find that this doesn't work out of the box in your Ubuntu setup.  You'll get a message that looks something like this:&lt;/p&gt;

&lt;pre&gt;ssh: connect to host grumpy port 22: Connection refused&lt;/pre&gt;

&lt;p&gt;That's because Ubuntu ships ssh in two parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;tt&gt;openssh-client&lt;/tt&gt;:  this lets you use ssh and scp from your machine to log onto another machine.  This is installed with the standard Ubuntu installation, and is all you need if, for example, you want to log onto your work computer from home.&lt;/li&gt;

&lt;li&gt;&lt;tt&gt;openssh-server&lt;/tt&gt;, on the other hand, allows &lt;em&gt;other&lt;/em&gt; machines to log onto your personal desktop machine.  This is not installed by default in Ubuntu because it's an obvious security hole unless you know what you're doing.  If you do know, or assume that you will learn, install the package with &lt;br /&gt;&lt;br /&gt;
&lt;tt&gt;$ sudo apt-get install openssh-client&lt;/tt&gt;
&lt;br /&gt;&lt;br /&gt;
Once you do that, &lt;tt&gt;sshd&lt;/tt&gt;, the daemon that controls remote access, will automatically start up, and will start up every time you reboot the machine.  Then you're good to go.
&lt;/ul&gt;

&lt;p&gt;In the example above, &lt;tt&gt;grumpy&lt;/tt&gt; needs to have &lt;tt&gt;openssh-server&lt;/tt&gt; installed and running, but &lt;tt&gt;hal&lt;/tt&gt; does not.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note for Mac Users: You get the equivalent of &lt;tt&gt;openssh-server&lt;/tt&gt; by going to &lt;tt&gt;System Preferences =&amp;gt; Sharing&lt;/tt&gt; and clicking &lt;tt&gt;Remote Login&lt;/tt&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;ssh&lt;/tt&gt; encrypts the transmissions between machines, but it also has other security features.  The first time you try to log onto a machine, for example, you'll get a message that looks something like this:&lt;/p&gt;

&lt;pre&gt;
$ ssh rcjhawk@grumpy
The authenticity of host 'grumpy (192.168.54.42)' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)?
&lt;/pre&gt;

&lt;p&gt;If you answer &lt;tt&gt;yes&lt;/tt&gt;, then you'll get the message:&lt;/p&gt;

&lt;pre&gt;
Warning: Permanently added 'grumpy,192.168.54.42' (RSA) to the list of known hosts.
&lt;/pre&gt;

&lt;p&gt;After that you'll be able to log onto &lt;tt&gt;grumpy&lt;/tt&gt; without the warning message.  If you want to start over, &lt;em&gt;i.e.&lt;/em&gt; not recognize any computer as being previously visited, erase the file &lt;tt&gt;$HOME/.ssh/known_hosts&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;You can also limit access to the machine by editing your &lt;tt&gt;/etc/hosts.deny&lt;/tt&gt; and &lt;tt&gt;/etc/hosts.allow&lt;/tt&gt; files. &lt;a href="http://hawknotes.blogspot.com/2010/05/hostsdeny.html"&gt;As I've noted before&lt;/a&gt;, if you don't want ever Tom, Dick, and Susie to have a chance to access your machine, your &lt;tt&gt;/etc/hosts.deny&lt;/tt&gt; file should read:
&lt;br /&gt;&lt;br /&gt;
&lt;tt&gt;ALL: ALL&lt;/tt&gt;
&lt;br /&gt;&lt;br /&gt;
after which only addresses listed in your &lt;tt&gt;/etc/hosts.allow&lt;/tt&gt; file will have access to the machine.  In my &lt;tt&gt;/etc/hosts.allow&lt;/tt&gt; file I currently have
&lt;br /&gt;&lt;br /&gt;
&lt;tt&gt;ALL: 192.168.1.0/255.255.255.0&lt;/tt&gt; ,
&lt;br /&gt;&lt;br /&gt;
which allows all machines on our local network to access &lt;tt&gt;grumpy&lt;/tt&gt;.
&lt;/p&gt;

&lt;p&gt;
OK, everything is good, right?  Well, not quite.  As things are set up right now, every time you ssh or scp to grumpy you must enter a password.  This isn't a big annoyance with &lt;tt&gt;ssh&lt;/tt&gt;, because presumably you will keep the remote login running for a relatively long time.  However, it is an annoyance with &lt;tt&gt;scp&lt;/tt&gt;, if you want to copy a large number of files from different places, requiring a large number of &lt;tt&gt;scp&lt;/tt&gt; commands.
&lt;/p&gt;

&lt;p&gt;
The solution is to use &lt;a href="http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html"&gt;&lt;tt&gt;ssh-keygen&lt;/tt&gt;&lt;/a&gt; to generate a a key.  Here's how it works:
&lt;/p&gt;

&lt;p&gt;
Start the program:
&lt;br /&gt;&lt;br /&gt;
&lt;tt&gt;$ssh-keygen -t dsa
Generating public/private dsa key pair.&lt;br /&gt;
Enter file in which to save the key (/home/rcjhawk/.ssh/id_dsa):&lt;/tt&gt;
&lt;br /&gt;&lt;br /&gt;
We'll use the default directory location, so just hit return here.
&lt;br /&gt;&lt;br /&gt;
&lt;tt&gt;Enter passphrase (empty for no passphrase):&lt;/tt&gt;
&lt;br /&gt;&lt;br /&gt;
Frankly, I don't know anyone who does use a passphrase.  It does protect your key against someone who's gotten access to your account, but at that point you're probably hosed anyway.  So for now we'll just hit return.
&lt;br /&gt;&lt;br /&gt;
&lt;tt&gt;Enter same passphrase again: &lt;br /&gt;
Your identification has been saved in /home/rcjhawk/.ssh/id_dsa.&lt;br /&gt;
Your public key has been saved in /home/rcjhawk/.ssh/id_dsa.pub.&lt;/tt&gt;
&lt;/p&gt;

&lt;p&gt;Now let's take a look at the &lt;tt&gt;.ssh&lt;/tt&gt; directory:&lt;/p&gt;

&lt;pre&gt;
$ ls -la $HOME.ssh
total 16
drwx------  2 rcjhawk rcjhawk  4096 2010-06-19 13:04 .
drwxr-xr-x 34 rcjhawk rcjhawk  4096 2010-06-19 13:01 ..
-rw-------  1 rcjhawk rcjhawk   672 2010-06-19 13:04 id_dsa
-rw-r--r--  1 rcjhawk rcjhawk   599 2010-06-19 13:04 id_dsa.pub
&lt;/pre&gt;

&lt;p&gt;
Here you'll notice two files.  One, &lt;tt&gt;id_dsa&lt;/tt&gt;, is your &lt;em&gt;private&lt;/em&gt; key.  The second, &lt;tt&gt;id_dsa.pub&lt;/tt&gt;, is your &lt;em&gt;public&lt;/em&gt; key.  Key the private key &lt;strong&gt;private&lt;/strong&gt;.  Don't let anyone have access to it.  Don't copy it over into the &lt;tt&gt;.ssh&lt;/tt&gt; folder of another account, or to another computer.  You'll note that both the &lt;tt&gt;.ssh&lt;/tt&gt; directory and &lt;tt&gt;id_dsa&lt;/tt&gt; are set so you are the only person who can read those files.  Keep it that way.
&lt;/p&gt;

&lt;p&gt;
The public key, now, that's another matter.  If you place &lt;tt&gt;id_dsa.pub&lt;/tt&gt; into the file &lt;tt&gt;$HOME/.ssh/authorized_keys&lt;/tt&gt; on another computer, you'll be able to access that computer from your home computer.  Here's one way to to it (I'm leaving out all the password prompts):
&lt;/p&gt;

&lt;pre&gt;
$ ssh rcjhawk@grumpy
Welcome to grumpy!
rcjhawk:~ $ cd .ssh
rcjhawk:~/.ssh $ scp rcjhawk@hal:.ssh/id_dsa.pub tempid
rcjhawk:~/.ssh $ cat tempid &gt;&gt; authorized_keys
rcjhawk:~/.ssh $ rm tempid
rcjhawk:~/.ssh $ exit
&lt;/pre&gt;

&lt;p&gt;What did we do?  We logged into grumpy, copied hal's public key over to grumpy's .ssh directory, and added it to the end of the &lt;tt&gt;authorized_keys&lt;/tt&gt; file.  I renamed the file during the copy so as not to write over grumpy's own &lt;tt&gt;id_dsa.pub&lt;/tt&gt; file, if one was there.  Notice that scp was able to get that file even though Hal's .ssh directory is copy protected, because you gave the system the right password.&lt;/p&gt;

&lt;p&gt;The next time you try to ssh or scp from hal to grumpy, ssh will find the public key on grumpy, compare it to the private key on hal, and conclude that you are, indeed, allowed to log in or transfer files.&lt;/p&gt;

&lt;p&gt;The discerning reader will note that I'm only applying this to my local network, which all sits behind a router and firewall.  How, you may ask, can I use ssh to log onto my local machine from outside my home?&lt;/p&gt;

&lt;p&gt;Well, I wish I could tell you, but at the moment I can't.  It's something to be researched in the future.  If you're reading this, and you know how to do it, post a link to the procedure in the comments.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-8431954101332523916?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/8431954101332523916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=8431954101332523916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/8431954101332523916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/8431954101332523916'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/06/smart-ssh-tricks.html' title='Smart ssh tricks'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-8481166347628007976</id><published>2010-06-11T20:33:00.000-04:00</published><updated>2010-06-11T20:33:15.561-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='If I Labeled This the Way I&apos;d Want I&apos;d Get Hate Mail'/><title type='text'>A Sign From Above</title><content type='html'>&lt;p&gt;Tonight coming home from work I learned that there was a backup on US-50 East between &lt;a href="http://maps.google.com/maps?f=d&amp;amp;source=s_d&amp;amp;saddr=US-301+N%2FUS-50+E&amp;amp;daddr=39.004778,-76.503296&amp;amp;hl=en&amp;amp;geocode=FSDbUgIdFItv-w%3B&amp;amp;mra=dme&amp;amp;mrcr=0&amp;amp;mrsp=1&amp;amp;sz=12&amp;amp;sll=38.979428,-76.521492&amp;amp;sspn=0.168941,0.234833&amp;amp;ie=UTF8&amp;amp;z=12"&gt;I-97 and the Severn River Bridge in Annapolis.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I knew this, because I was given a Sign.  &lt;a href="http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=cheverly+md&amp;amp;sll=37.0625,-95.677068&amp;amp;sspn=43.848534,60.117188&amp;amp;ie=UTF8&amp;amp;hq=&amp;amp;hnear=Cheverly,+Prince+George's,+Maryland&amp;amp;ll=38.956873,-76.905756&amp;amp;spn=0,0.09141&amp;amp;z=14&amp;amp;layer=c&amp;amp;cbll=38.935398,-76.889852&amp;amp;panoid=ETmCZx1AZODIPW67tFvLHQ&amp;amp;cbp=12,48.76,,1,4.92"&gt;This sign, as a matter of fact,&lt;/a&gt; which today had an actual message.&lt;br /&gt;
The sign in question is about 15 miles from the start of the backup.  Not to worry, I had plenty of time to read it because I was in a five-mile backup caused by people slowing down to read the sign.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Obscene comments about Maryland drivers omitted.&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-8481166347628007976?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/8481166347628007976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=8481166347628007976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/8481166347628007976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/8481166347628007976'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/06/sign-from-above.html' title='A Sign From Above'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-4348290562724992461</id><published>2010-06-04T21:27:00.000-04:00</published><updated>2010-06-04T21:27:31.949-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shells'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='BASH'/><title type='text'>Stupid Bash Tricks</title><content type='html'>&lt;p&gt;I grew up scripting with the &lt;a href="http://en.wikipedia.org/wiki/C_shell"&gt;C shell (&lt;tt&gt;csh&lt;/tt&gt;)&lt;/a&gt;, and I'm still more comfortable with it than any other shells.  However, for really complicated scripts I find that &lt;a href="http://en.wikipedia.org/wiki/Bash_(Unix_shell)"&gt;BASH (the Bourne-again shell)&lt;/a&gt; is more flexible.  The problem is that I don't really know how to use it all that well.&lt;/p&gt;

&lt;p&gt;I could buy a book, I suppose, but that costs money.  And anyway, much of what I want is already on the web.  For example, we have&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.gnu.org/software/bash/manual/bashref.html"&gt;The BASH Reference Manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html"&gt;The BASH Guide for Beginners&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tldp.org/LDP/abs/html/"&gt;The Advanced BASH Scripting Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.shelldorado.com/goodcoding/cmdargs.html"&gt;Handling Command Line Arguments&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've used all of these, but the only way to really remember something is to build an example, and refer back to it as needed.  So here, presented for your consideration, are a couple of examples.&lt;/p&gt;

&lt;p&gt;The first one just counts.  It's basically here to show how to do math with variables in BASH:&lt;/p&gt;

&lt;pre&gt;
#! /bin/bash

typeset -i count

count=$1
echo $count

while (( $count &lt; $2 ))
do
 count=$count+1
 echo $count
done
&lt;/pre&gt;

&lt;p&gt;Actually, that one is adapted from the &lt;a href="http://en.wikipedia.org/wiki/Korn_shell"&gt;Korn shell (ksh)&lt;/a&gt;, but it works in bash.  A purer bash form would be&lt;/p&gt;

&lt;pre&gt;
#! /bin/bash

let count=$1
echo $count

while (( $count &lt; $2 ))
do
 let count=$count+1
 echo $count
done
&lt;/pre&gt;

&lt;p&gt;Either way, if we call the file &lt;tt&gt;count&lt;/tt&gt;, then it counts from the first argument up to the second:&lt;/p&gt;

&lt;pre&gt;
./count 5 10
5
6
7
8
9
10
&lt;/pre&gt;

&lt;p&gt;On to another program.  I often have programs that recompute a certain quantity repeatedly, say the total energy in a Density Functional Theory run.  For example,
&lt;/p&gt;

&lt;pre&gt;
$ grep "TOTAL ENERGY=" INFO
                          TOTAL ENERGY=      -551.5802151120
                          TOTAL ENERGY=      -551.5798689965
                          TOTAL ENERGY=      -551.5810124810
                          TOTAL ENERGY=      -551.5809217653
                          TOTAL ENERGY=      -551.5796453493
                          TOTAL ENERGY=      -551.5797608209
                          TOTAL ENERGY=      -551.5806860076
                          TOTAL ENERGY=      -551.5804690663
                          TOTAL ENERGY=      -551.5793575483
                          TOTAL ENERGY=      -551.5794583810
&lt;/pre&gt;

&lt;p&gt;where I only want the last line.  For a single file, I could get that with&lt;/p&gt;
&lt;pre&gt;
$ grep "TOTAL ENERGY=" INFO | tail -1
                          TOTAL ENERGY=      -551.5794583810
&lt;/pre&gt;

&lt;p&gt;but I want to look at multiple files, make a note of the file I'm looking at, and extract the last entry.  So I wrote this little script, which I call &lt;tt&gt;lastgrep&lt;/tt&gt;.  Among other things, it shows you how to use the &lt;tt&gt;shift&lt;/tt&gt; command to delete elements from the calling string.&lt;/p&gt;

&lt;pre&gt;
#! /bin/bash

# usage

# lastgrep string  file1 file2 file3 file4

# finds the last occurrence of string in each of the files
#  listed in the argument list.  If string contains white space
#  it should be quoted

string=$1

# Pop the first argument (string) off the stack.  The
#  remaining arguments should be files

shift

for file in $@
do
    echo -n $file

#    Put quotes around $string to keep white space in place

    grep "$string" $file | tail -1
done 
&lt;/pre&gt;

&lt;p&gt;So if I have a set of files INFO in directories a100, a200, a300, I might do something like this:&lt;/p&gt;

&lt;pre&gt;
$ lastgrep "TOTAL ENERGY=" a*/INFO
a100/INFO  TOTAL ENERGY=      -551.7810244761
a200/INFO  TOTAL ENERGY=      -551.6774784178
a300/INFO  TOTAL ENERGY=      -551.6192819148
&lt;/pre&gt;

&lt;p&gt;What this &lt;em&gt;doesn't&lt;/em&gt; have is a way of passing arguments to &lt;tt&gt;grep&lt;/tt&gt;.  That's for another time.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-4348290562724992461?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/4348290562724992461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=4348290562724992461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4348290562724992461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4348290562724992461'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/06/stupid-bash-tricks.html' title='Stupid Bash Tricks'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-1122533775385124188</id><published>2010-06-01T22:55:00.000-04:00</published><updated>2010-06-01T22:55:25.857-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Printing'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>CUPS and a Wireless Printer</title><content type='html'>&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Eric_S._Raymond"&gt;Eric Raymond&lt;/a&gt; once wrote a famous essay about &lt;a href="http://catb.org/~esr/writings/cups-horror.html"&gt;the difficulty of using Linux's Common UNIX Printing System (CUPS)&lt;/a&gt; to set up a printer over a network.  Thus, when we got Child&lt;sub&gt;II&lt;/sub&gt;'s new &lt;a href="http://www.shopping.hp.com/product/printer/Photosmart/1/storefronts/Q8380A%2523ABA"&gt;HP C4780 Wireless Printer/Scanner&lt;/a&gt; I was less than optimistic about getting it Hal to access it.  I mean, we're talking about a wireless printer which is talking to a Verizon FIOS wireless router, and through that to a Linux computer?  No way.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I should note that I wouldn't go out and buy an inkjet printer on its own, anymore, particularly an HP.  But we just got Child&lt;sub&gt;II&lt;/sub&gt; a MacBook Pro (new college uses Macs, and Mac Photoshop, for art projects), and they threw in an iPod Touch (which I get to glance at longingly) and the HP (which it's my duty to set up, operate, and maintain).  So we got the thing, we might as well use it.  Anyway, having a wireless or networked printer for a MacBook is an essential, given that the thing only has two USB and one Firewire port.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Setting up the HP required that I use the Mac or a PC, connected by USB to the printer, to enter the network login information.  Given the connection between &lt;a href="http://oreilly.com/openbook/freedom/ch01.html"&gt;open source software and printers&lt;/a&gt; this left me a little chagrined, but I'm not &lt;a href="http://en.wikipedia.org/wiki/Richard_Stallman"&gt;RMS&lt;/a&gt; so I let it slide.  Anyway, I didn't expect the thing to work with Linux, remember?&lt;/p&gt;

&lt;p&gt;It took about a half-hour to install the software and drivers onto a Mac, and set up the printer.  We tested the printer and scanner via wireless, and it all worked fine, though the scanner was pretty slow, much slower than my &lt;a href="http://hawknotes.blogspot.com/2008/10/installing-scanner.html"&gt;USB Canon&lt;/a&gt;.  It all worked, though.&lt;/p&gt;

&lt;p&gt;Then it took another half hour or so to install everything on a Windows PC.  Again, it all worked flawlessly.&lt;/p&gt;

&lt;p&gt;OK, let's try our luck.  I left the printer on, went downstairs to Hal, clicked on &lt;tt&gt;System =&amp;gt; Administration =&amp;gt; Printing&lt;/tt&gt; and watched the CUPS interface come up.  Hit &lt;tt&gt;Add&lt;/tt&gt;, &lt;tt&gt;Printer&lt;/tt&gt;, &lt;tt&gt;Find Network Printer&lt;/tt&gt;.  &lt;a href="http://en.wikipedia.org/wiki/Blink_(Doctor_Who)"&gt;Blinked.&lt;/a&gt;  There it was, an HP C4700 type printer.  Unlike the Canon, all the drivers were already available, I didn't have to play guess-the-correct-version.  Within five minutes of clicking that &lt;tt&gt;Printing&lt;/tt&gt; button I was printing a test page from Hal back to the printer.&lt;/p&gt;

&lt;p&gt;Now all is not sweetness and light.  While CUPS had no problem finding the printer, &lt;a href="http://www.sane-project.org/"&gt;SANE&lt;/a&gt;, the corresponding program for scanners, couldn't find the HP.  Not surprising, I guess, but it would have been nice if everything worked out.  Of course I'm not particularly sure what good a remote scanner does anyone, especially if, like, me, they use it primarily to scan old pictures onto a disk.&lt;/p&gt;

&lt;p&gt;But to summarize, things have much improved since the days of ESR's essay.&lt;/p&gt;

&lt;p&gt;And I've got to look into getting a networked color Laser printer.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-1122533775385124188?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/1122533775385124188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=1122533775385124188' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1122533775385124188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1122533775385124188'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/06/cups-and-wireless-printer.html' title='CUPS and a Wireless Printer'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-2203692274803373566</id><published>2010-05-31T10:26:00.001-04:00</published><updated>2010-05-31T10:35:50.872-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogs'/><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><title type='text'>Backing Up Your Blog</title><content type='html'>&lt;p&gt;After the discussion about &lt;a href="http://hawknotes.blogspot.com/2010/05/return-with-us-now-to-thrilling-days-of.html"&gt;creating disk backups&lt;/a&gt; I realized that I haven't been terribly diligent about backing up this blog.  After all, what if Google should fail?  Thousands of words of my deathless prose might be lost.  (I know I've written some unforgettable things.  Just last week I got three emails telling me how my posts had affected them.  Only two mentioned nightmares.)&lt;/p&gt;

&lt;p&gt;So how do you back up a Blogger blog?&lt;/p&gt;

&lt;p&gt;One way to do it is to download the monthly archive HTML.  The advantage to this is that everything in in HTML, and easy to read.  But you have to remember to do it.  I did, for a while, but haven't done it for some years.  Sloth, I know.&lt;/p&gt;

&lt;p&gt;But there is a way to &lt;a href="http://www.google.com/support/blogger/bin/answer.py?hl=en&amp;answer=97416"&gt;download the whole blog&lt;/a&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Log onto your Blogger account.&lt;/li&gt;
&lt;li&gt;Go to the Dashboard, if you're not there already.&lt;/li&gt;
&lt;li&gt;Click &lt;tt&gt;Settings&lt;/tt&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;tt&gt;Export Blog&lt;/tt&gt;.&lt;/li&gt;
&lt;li&gt;Click the &lt;strong style="color:orange;"&gt;orange button&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;A big file, ending in &lt;tt&gt;.xml&lt;/tt&gt;, will appear in your download folder.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Note that the xml file is hard to read, but if you're moving your blog from one account to another it's the easy way to go.  Also note that this &lt;em&gt;does not&lt;/em&gt; save pictures or comments, those linked (the HTML archives don't save the pictures, either).  So you'll have to find that stuff yourself.&lt;/p&gt;

&lt;p&gt;This doesn't save your blogger template, either.  To do that, go back to the dashboard, click &lt;tt&gt;Layout&lt;/tt&gt;, then &lt;tt&gt;Edit HTML&lt;/tt&gt;, and &lt;tt&gt;Download Full Template&lt;/tt&gt;.  Important if you have witty sayings embedded in you blog header.&lt;/p&gt;

&lt;p&gt;Also note that either the HTML or XML backups are useful for searching your blog, because that Google search box in the upper left doesn't always find everything you've written.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-2203692274803373566?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/2203692274803373566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=2203692274803373566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2203692274803373566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2203692274803373566'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/backing-up-your-blog.html' title='Backing Up Your Blog'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-55503882334306306</id><published>2010-05-30T16:06:00.001-04:00</published><updated>2010-06-06T16:17:09.962-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Backups'/><title type='text'>Return With Us Now to the Thrilling Days of Yesteryear</title><content type='html'>&lt;p&gt;I'm not very good at doing disk backups.&lt;/p&gt;

&lt;p&gt;OK, let's be honest:  I'm &lt;em&gt;terrible&lt;/em&gt; at doing disk backups.  Oh, back in the day, every once in a while I'd copy as much of the disk as I could onto CDs or DVDs.  But that takes a lot of time, and, as disks become larger while DVDs don't, requires a lot of picking and choosing to figure out what goes where.&lt;/p&gt;

&lt;p&gt;To be fair, I haven't needed to.  In all the years I've run computers here at home, I've never had a disk crash that lost data, &lt;a href="http://hawknotes.blogspot.com/2007/03/broken-windows-xp.html"&gt;even after our most serious disk mishap.&lt;/a&gt;  So not having a backup hasn't been that big a problem.  (Insert your favorite ominous foreboding music here.) Anyway, backups are a pain in the neck.&lt;/p&gt;

&lt;p&gt;My view of backups has changed, though, primarily because they're so much easier now.  Easiest, of course, is &lt;a href="http://www.apple.com/macosx/what-is-macosx/time-machine.html"&gt;Apple's Time Machine&lt;/a&gt;.  Plug a second disk (USB, Firewire, internal, if you've got such a thing) into your Mac, let it format to Apple's HFS format (or not), and start Time Machine.  Tell it which directories you want to back up, and it will do that, every few minutes.  Then you can actually scroll back through time (&lt;em&gt;Tardis&lt;/em&gt; sounds not included) and pick out a file you might have deleted a year ago &amp;mdash; assuming you were running Time Machine back then.  It's an extremely neat and easy-to-use utility, and takes the pain out of doing backups, as long as you remember to leave the external disk plugged in, if that's what you've got.&lt;/p&gt;

&lt;p&gt;Then, last week, &lt;em&gt;Office Depot&lt;/em&gt; ran a sale where you could get a &lt;q&gt;Terabyte&lt;/q&gt; Verbatim USB disk for $79.99 + tax.  I bought three, one for Hal, one each for the college students.&lt;/p&gt;

&lt;p&gt;Now the disk comes with Nero backup software for Windows (taking care of student I), and Apple's got Time Machine (taking care of student II).  But what about poor Hal, stuck in Linux?&lt;/p&gt;

&lt;p&gt;I called up the Synaptic package manager and typed backup in the search box.  That brought up, among other things, a package called &lt;a href="http://backintime.le-web.org/"&gt;&lt;tt&gt;backintime&lt;/tt&gt;&lt;/a&gt;, which is a front-end which uses the utilities &lt;tt&gt;cron&lt;/tt&gt; (to schedule backups), &lt;tt&gt;diff&lt;/tt&gt; (to find which files are changed), and &lt;tt&gt;rsync&lt;/tt&gt; (to copy files that have changed to the backup disk). Perfect.  I installed the program &amp;mdash; actually both &lt;tt&gt;backintime-common&lt;/tt&gt;, the guts, and &lt;tt&gt;backintime-gnome&lt;/tt&gt;, the graphical front end, then went to get the disk.&lt;/p&gt;

&lt;p&gt;Problem: Verbatim formatted the disk to the lowest common denominator, &lt;a href="http://support.microsoft.com/kb/154997"&gt;&lt;tt&gt;FAT32&lt;/tt&gt;&lt;/a&gt;. This is not suitable for low-volume backups, because it does not allow multiple &lt;a href="http://en.wikipedia.org/wiki/Hard_link"&gt;hard links&lt;/a&gt; to the same file.  What &lt;tt&gt;backintime&lt;/tt&gt; does, you see, is create a copy of your chosen disk directories &lt;em&gt;every time&lt;/em&gt; you schedule a backup.  The trick is that unchanged files are hard-linked from one backup to the next, taking a minimum of space.  Only the changed files are stored in multiple copies.  Since the FAT format doesn't do multiple hard links, it can't do the trick, and so we need to reformat the disk to a better file system.&lt;/p&gt;

&lt;p&gt;So I installed &lt;a href="http://gparted.sourceforge.net/"&gt;&lt;tt&gt;gparted&lt;/tt&gt;&lt;/a&gt; from Synaptic, launched it (using &lt;tt&gt;sudo gparted&lt;/tt&gt;), and formatted the Verbatim disk to &lt;a href="http://en.wikipedia.org/wiki/Ext3"&gt;&lt;tt&gt;ext3&lt;/tt&gt;&lt;/a&gt; format.&lt;/p&gt;

&lt;p&gt;Second problem:  If you just plug a USB disk into a Ubuntu box, it auto-mounts, but is usually only accessible to the user who did the mounting (to be fair, I haven't tried this with a USB ext3 disk).  That's unacceptable in a backup system that needs to be accessible to everyone.  So we have to set up &lt;a href="http://en.wikipedia.org/wiki/Fstab"&gt;&lt;tt&gt;/etc/fstab&lt;/tt&gt;&lt;/a&gt;.  To reflect this.  Ideally, we'd add a line which looks something like this:&lt;/p&gt;

&lt;pre&gt;/dev/sdd /backup ext3 errors=remount-ro 0 2&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;(Note added after the fact:  The last entry on this line should indeed be a 2, not a 1 as previously listed.  This this tells &lt;a href="http://en.wikipedia.org/wiki/Fsck"&gt;fsck&lt;/a&gt; to check this file system after any file system with a 1 in the last column.  The only file system with 1 there should be the boot partition.  Everything else can be a 2, unless you don't want fsck to look at the file, in which case you put in a 0.  Got that?)
&lt;/em&gt;&lt;/p&gt; 

&lt;p&gt;create a directory entry &lt;tt&gt;/backup&lt;/tt&gt;, and then doing&lt;/p&gt;

&lt;pre&gt;mount /backup&lt;/pre&gt;

&lt;p&gt;would load up the disk drive.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;However&lt;/em&gt;, since you usually have multiple USB ports on your system, there's no guarantee that this disk is going to always get &lt;tt&gt;/dev/sdd&lt;/tt&gt; as its port.  The solution is to use the &lt;tt&gt;ext3&lt;/tt&gt;'s  &lt;a href="http://en.wikipedia.org/wiki/Universally_Unique_Identifier"&gt;UUID&lt;/a&gt;, which was created when &lt;tt&gt;gparted&lt;/tt&gt; did its thing.  You find the UUID with the command:&lt;/p&gt;

&lt;pre&gt;
sudo blkid
[sudo] password for hal:************
/dev/sda1: LABEL="PQSERVICE" UUID="0A72323D72322DB7" TYPE="ntfs" 
/dev/sda2: LABEL="SYSTEM RESERVED" UUID="CCA811C2A811AC48" TYPE="ntfs" 
/dev/sda3: LABEL="Gateway" UUID="7E143E7F143E3A8B" TYPE="ntfs" 
/dev/sda5: UUID="2eec3fff-73d2-419c-8a3c-b92733d46da2" TYPE="swap" 
/dev/sda6: UUID="f3781533-d891-46e1-b9f0-839e8a538d35" TYPE="ext4" 
/dev/sdb1: LABEL="Verbatim" UUID="9deee42d-539b-45c5-8683-e95f889c1792" TYPE="ext3"
&lt;/pre&gt;

&lt;p&gt;Verbtim is how I labeled the disk partition of the USB drive, so that's the UUID we want.  Fill out the line in &lt;tt&gt;/etc/fstab&lt;/tt&gt; as:&lt;/p&gt;

&lt;pre&gt;UUID=9deee42d-539b-45c5-8683-e95f889c1792 /backup ext3 errors=remount-ro 0 1&lt;/pre&gt;

&lt;p&gt;and we're ready to go.  Note that this will automount so that everyone can read it every time the disk drive is plugged in and turned on.&lt;/p&gt;

&lt;p&gt;That settled, setting up &lt;tt&gt;backintime&lt;/tt&gt; is easy.  You can specify the directories you want to back up, and the file types (say, those ending in ~ or .o) and directories you want to exclude.  You can then select a backup time interval:  minutes, hours, days, weeks ... Once you have a set of backups, you can use the graphical interface to look through your files of any snapshot, and restore a file that was deleted or moved on your main system, or copy it to another location if you like.  It's very nice and easy to use.&lt;/p&gt;

&lt;p&gt;You can see your backup schedule using crontab:&lt;/p&gt;

&lt;pre&gt;
crontab -l
@daily nice -n 19 /usr/bin/backintime --backup-job &gt;/dev/null 2&gt;&amp;amp;1
&lt;/pre&gt;

&lt;p&gt;Note the &lt;q&gt;@daily&lt;/q&gt; there.  That means the backup will start every night at midnight, and it's the only choice &lt;tt&gt;backintime&lt;/tt&gt; gives you if you select a daily backup.  This is unsatisfactory for me, as someone is frequently using the computer on and after midnight.  So I used &lt;tt&gt;crontab -e&lt;/tt&gt; to edit this entry, changing it to &lt;br /&gt;
&lt;tt&gt;0 3 * * * nice -n 19 /usr/bin/backintime --backup-job &gt;/dev/null 2&gt;&amp;amp;1&lt;/tt&gt;
&lt;br /&gt;
which launches the backup at 3am.  &lt;tt&gt;backintime&lt;/tt&gt; accepts this, but note that every time you change your setup it will reset the time to &lt;tt&gt;@daily&lt;/tt&gt;.  Just watch it.&lt;/p&gt;

&lt;p&gt;Anyway, now I have a disk backup.  And since I've never had a major loss of disk data from one disk, having two disks copying the data should mean that it can never, ever, ever happen, right? (Insert even more ominous and foreboding musing here.)
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-55503882334306306?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/55503882334306306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=55503882334306306' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/55503882334306306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/55503882334306306'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/return-with-us-now-to-thrilling-days-of.html' title='Return With Us Now to the Thrilling Days of Yesteryear'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-1067359570715880116</id><published>2010-05-29T20:08:00.000-04:00</published><updated>2010-05-29T20:08:37.980-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Rob Pegoraro Talks About Ubuntu</title><content type='html'>&lt;p&gt;&lt;em&gt;The Washington Post's&lt;/em&gt; tech columnist &lt;a href="http://www.washingtonpost.com/wp-dyn/content/article/2010/05/28/AR2010052801412.html"&gt;reviews Ubuntu 10.04 in his Sunday column&lt;/a&gt; and &lt;a href="http://voices.washingtonpost.com/fasterforward/2010/05/ubuntu_linux_1004_review.html?wprss=fasterforward"&gt;adds more comments in his blog.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I love the first line:&lt;/p&gt;

&lt;p&gt;&lt;q&gt;No Windows viruses. Free. Any questions?&lt;/q&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-1067359570715880116?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/1067359570715880116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=1067359570715880116' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1067359570715880116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1067359570715880116'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/rob-pegoraro-talks-about-ubuntu.html' title='Rob Pegoraro Talks About Ubuntu'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-6560826562288585766</id><published>2010-05-28T16:19:00.000-04:00</published><updated>2010-05-28T16:19:55.881-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>hosts.deny</title><content type='html'>&lt;p&gt;Ubuntu, and most Linuxes, by default come with an empty &lt;a href="http://info300.net/FedoraFirewall/Hosts.php"&gt;&lt;tt&gt;/etc/hosts.deny&lt;/tt&gt;&lt;/a&gt; file.  I'd argue that by default it really should look like this:
&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;$ cat /etc/hosts.deny
&lt;br /&gt;
ALL: ALL
&lt;/p&gt;

&lt;p&gt;Because:&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;If you don't know what how the &lt;tt&gt;/etc/hosts&lt;/tt&gt; system works, you shouldn't allow others to access your machine.&lt;/li&gt;

&lt;li&gt;If you do know how it works, then you know enough to edit the files to do what you want.&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Comments?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-6560826562288585766?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/6560826562288585766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=6560826562288585766' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6560826562288585766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6560826562288585766'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/hostsdeny.html' title='hosts.deny'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-3242983877514017737</id><published>2010-05-24T20:23:00.002-04:00</published><updated>2010-05-28T10:12:21.490-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu 10.04: Things I Forgot</title><content type='html'>&lt;p&gt;Things I forgot when I was listing &lt;a href="http://hawknotes.blogspot.com/2010/05/ubuntu-1004-good-stuff.html"&gt;my useful programs from Ubuntu 10.04&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;
The &lt;a href="http://www.gimp.org/"&gt;&lt;tt&gt;gimp&lt;/tt&gt;&lt;/a&gt;:  Manipulate images just about anyway you want, without paying Photoshop prices.  For example, you can &lt;a href="http://hawknotes.blogspot.com/2005/07/making-transparent-png-images.html"&gt;make transparent PNG images&lt;/a&gt;.
&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.xsane.org/"&gt;&lt;tt&gt;xsane&lt;/tt&gt;&lt;/a&gt;:  &lt;a href="http://hawknotes.blogspot.com/2008/10/installing-scanner.html"&gt;Scan documents&lt;/a&gt; (scanner not included).
&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://code.google.com/chromium/"&gt;&lt;tt&gt;chromium&lt;/tt&gt;&lt;/a&gt;:  the unbranded version of &lt;a href="http://www.google.com/chrome"&gt;Google Chrome&lt;/a&gt;.  This is my current browser of choice, and I forgot to list it before because it was the very first thing I installed.  Note that it's available in the repository.  If you want the branded version, you can get a &lt;tt&gt;.deb&lt;/tt&gt; file directly from Google's site.
&lt;br /&gt;
For some reason, Ubuntu only distributes the unbranded version of chromium, but it offers, by default, the branded &lt;a href="http://www.mozilla.com/en-US/firefox/firefox.html?from=getfirefox"&gt;Firefox&lt;/a&gt; browser and an unbranded version, which it calls &lt;tt&gt;abrowser&lt;/tt&gt;.
&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;
I'm sure there are more to come, I'll either add them here or start another post.  Stay tuned.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-3242983877514017737?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/3242983877514017737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=3242983877514017737' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/3242983877514017737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/3242983877514017737'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/ubuntu-1004-things-i-forgot.html' title='Ubuntu 10.04: Things I Forgot'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-6464372703392234201</id><published>2010-05-23T09:10:00.000-04:00</published><updated>2010-05-23T09:10:01.620-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu 10.04: Update Notification Icon</title><content type='html'>&lt;p&gt;One thing that doesn't seem to be present in Ubuntu 10.04 is the little notification icon that shows up on your panel when the update manager has found programs to install.  If there is some notification I haven't seen it.&lt;/p&gt;

&lt;p&gt;Apparently this has been going on since 9.04, but for that version of Ubuntu I was running IceWM rather than Gnome as my window manager and so missed it.  But &lt;a href="http://www.watchingthenet.com"&gt;Watching the Net&lt;/a&gt; didn't, and shows the way to restore the Update Icon by &lt;a href="http://www.watchingthenet.com/how-to-restore-automatic-update-notification-icon-in-ubuntu-9-04.html"&gt;turning off the update notifier&lt;/a&gt;, whatever that is.&lt;/p&gt;

&lt;p&gt;Apparently once the new improved update notifier (which I've never seen in action) is turned off the old style notifier kicks in.  This is in the province of &lt;a href="http://projects.gnome.org/gconf/"&gt;&lt;tt&gt;gconf&lt;/tt&gt;&lt;/a&gt;, that all-seeing, all-knowing application that tells other programs what your likes, wants, and needs are &amp;mdash; sort of like Facebook.&lt;/p&gt;

&lt;p&gt;So to turn off the new-improved version and go back to the thing that works, open a terminal window and type (or cut and paste):&lt;br /&gt;
&lt;tt&gt;gconftool -s --type bool /apps/update-notifier/auto_launch false&lt;/tt&gt;
&lt;/p&gt;

&lt;p&gt;Alternatively, launch &lt;tt&gt;gconf-editor&lt;/tt&gt;, click on the &lt;tt&gt;+&lt;/tt&gt; sign next to &lt;tt&gt;apps&lt;/tt&gt;, scroll down to find &lt;tt&gt;update-notifier&lt;/tt&gt;, click on that, and then uncheck the box that says &lt;tt&gt;auto_launch&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;Either way, you're done, and the old icon will come up the next time you have an update available.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-6464372703392234201?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/6464372703392234201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=6464372703392234201' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6464372703392234201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6464372703392234201'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/ubuntu-1004-update-notification-icon.html' title='Ubuntu 10.04: Update Notification Icon'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-6726575081509008698</id><published>2010-05-22T13:54:00.000-04:00</published><updated>2010-05-22T13:54:54.987-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Fortran'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Intel'/><title type='text'>Ubuntu 10.04: Installing the 64-bit Intel Fortran Compiler</title><content type='html'>&lt;p&gt;
OK, let's get take care of this right up front:
&lt;em&gt;Warning:  This page discusses the installation of &lt;a href="http://en.wikipedia.org/wiki/Gratis_versus_Libre#.22Free_as_in_beer.22_vs_.22Free_as_in_speech.22"&gt;free-as-in-beer, but not free-as-in-speech, software.&lt;/a&gt;  If you want to keep such software off your system, then don't install this compiler.  Also note that the license is pretty restrictive, i.e. &lt;q&gt;Non-commercial means you are not getting compensated in any form for the products and services you develop using these Intel&amp;reg; Software Development Products.&lt;/q&gt;  However, the installation process should work for the commercial version of this compiler.&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
I first learned to program in Fortran.  I still have my original &lt;a href="http://csg.uwaterloo.ca/sdtp/watfor.html"&gt;WATFOR/WATFIV&lt;/a&gt; textbook, though I later graduated to Fortran 77 and occasionally write some Fortran 90.  I still do a lot of things in Fortran 77, just because I'm comfortable writing code starting in column 7.
&lt;/p&gt;

&lt;p&gt;
Now there is an open-source Fortran 77/90/95 compiler, &lt;a href="http://gcc.gnu.org/fortran/"&gt;gfortran&lt;/a&gt;.  It's reasonably fast, portable, nice &amp;mdash; did I mention free? But it has a few quirks.  For example, one of my old codes has a subroutine &lt;tt&gt;second&lt;/tt&gt; which measures elapsed time.  gfortran assumes that I'm calling the intrinsic function &lt;tt&gt;second&lt;/tt&gt;, and bombs the compile because I don't have a proper calling statement.  So I have to go in and declare
&lt;/p&gt;
&lt;pre&gt;
      external second
&lt;/pre&gt;
&lt;p&gt;
in every subroutine that calls my &lt;tt&gt;second&lt;/tt&gt;.
&lt;/p&gt;

&lt;p&gt;
But Intel makes its &lt;a href="http://software.intel.com/en-us/intel-compilers/"&gt;Linux Fortran compiler&lt;/a&gt; &lt;a href="http://software.intel.com/en-us/articles/non-commercial-software-development/"&gt;free-as-in-beer for &lt;q&gt;non-commercial&lt;/q&gt; development&lt;/a&gt;.  And the 64-bit version of the code includes Intel's optimized &lt;a href="http://software.intel.com/en-us/intel-mkl/"&gt;Math Kernel Library (MKL)&lt;/a&gt;.  It's a fairly simple registration, and you don't sign over much of your soul.  However, in Ubuntu it's a fairly difficult installation.  What's more, it changes &lt;a href="http://hawknotes.blogspot.com/search/label/Fortran"&gt;every time you install a new version of the compiler.&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://software.intel.com/en-us/articles/using-intel-compilers-for-linux-with-ubuntu/"&gt;The installation steps for the current compiler and Ubuntu&lt;/a&gt; are straightforward, but there's a lot of fine print, and the 64 bit version has a couple of quirks in the install.  So let's go over it step by step.  Note that I'm only referring to the &lt;em&gt;64-bit install&lt;/em&gt; in all of this.  If you're running in 32-bit mode, your mileage will vary.
&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="http://software.intel.com/en-us/articles/non-commercial-software-development/"&gt;Register&lt;/a&gt;. It's easy.  You'll get a link to the download page an a serial number.  Save the email, you'll need it.&lt;/li&gt;

&lt;li&gt;
Download the appropriate tar file.  I used the Genuine Intel&amp;reg; 64 bit version.  There's another one called IA64, but I didn't try that.
&lt;/li&gt;

&lt;li&gt;
Now set up your machine to compile code.  Run: &lt;br /&gt;
&lt;tt&gt;sudo apt-get install build-essential gcc g++ rpm ia32-libs&lt;/tt&gt;
&lt;br /&gt; and either&lt;br /&gt;
&lt;tt&gt;sudo apt-get install sun-java6-jre&lt;/tt&gt;
&lt;br /&gt;which requires you to accept Sun's Java license, or &lt;br /&gt;
&lt;tt&gt;sudo apt-get install openjdk-6-jre-headless&lt;/tt&gt;.
&lt;/li&gt;

&lt;li&gt;
Now you need a package called &lt;a href="http://packages.debian.org/stable/base/libstdc++5"&gt;libstdc++5&lt;/a&gt; which isn't included in Ubuntu.  Worse, if you're on a 64 bit machine, you need to install the 32-bit version as well.  So click on these
&lt;pre&gt;
&lt;a href="http://packages.debian.org/lenny/amd64/libstdc++5/download"&gt;the 64-bit code, libstdc++5_3.3.6-18_amd64.deb&lt;/a&gt;
and
&lt;a href="http://packages.debian.org/lenny/i386/libstdc++5/download"&gt;the 32-bit code, libstdc++5_3.3.6-18_i386.deb&lt;/a&gt;
&lt;/pre&gt;
&lt;/li&gt;

&lt;li&gt;
Install the 64-bit version:&lt;br /&gt;
&lt;tt&gt;$ sudo dpkg -i libstdc++5_3.3.6-18_amd64.deb&lt;/tt&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;em&gt;DO NOT INSTALL THE 32-BIT VERSION&lt;/em&gt;.  Instead:
&lt;pre&gt;
$ dpkg --extract libstdc++5_3.3.6-18_i386.deb ./
$ cd usr/lib
$ sudo -i
# cp libstdc++.so.5.0.7 /usr/lib32
# cd /usr/lib32
# ln -s libstdc++.so.5.0.7 libstdc++.so.5
# exit
&lt;/pre&gt;
&lt;/li&gt;

&lt;li&gt;
Now we can do the install.  Go back and find your Fortran tarball
&lt;pre&gt;
$ tar xvzf l_cprof_p_11.1.072_intel64.tgz
$ cd l_cprof_p_11.1.072_intel64
$ sudo -i
# ./install.sh
&lt;/pre&gt;
&lt;/li&gt;

&lt;li&gt;
Take all the defaults, and enter your registration number when asked.  Note that you'll get some error statements to the effect that you're running this on an unsupported system (Ubuntu) and the option &lt;br /&gt;
&lt;tt&gt;1. Skip missing optional pre-requisites [default]&lt;/tt&gt; &lt;br /&gt;
take that.
&lt;/li&gt;

&lt;li&gt;
Your compiler is now installed in &lt;tt&gt;/opt/intel/Compiler/11.1/072/&lt;/tt&gt; (the last number will vary), but you're not quite finished.
&lt;/li&gt;

&lt;li&gt;If you use the &lt;tt&gt;bash&lt;/tt&gt; shell, add the line &lt;br /&gt;
&lt;tt&gt;source /opt/intel/Compiler/11.1/072/bin/ifortvars.sh intel64&lt;/tt&gt;
&lt;br /&gt; to your &lt;tt&gt;~/.bashrc&lt;/tt&gt; file.
&lt;/li&gt;

&lt;li&gt;If you use the &lt;tt&gt;tcsh&lt;/tt&gt; shell, add the line &lt;br /&gt;
&lt;tt&gt;source /opt/intel/Compiler/11.1/072/bin/ifortvars.csh intel64&lt;/tt&gt;
to your &lt;tt&gt;~/.cshrc&lt;/tt&gt; file.
&lt;/li&gt;

&lt;li&gt;&lt;em&gt;Now&lt;/em&gt; you're done.  Look at &lt;tt&gt;man ifort&lt;/tt&gt; to see how to use the thing.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;My preliminary test indicates that the Intel compiler is about 10% faster than &lt;tt&gt;gfortran&lt;/tt&gt; for a fairly CPU intensive calculation, without the MKL.  Not all that much faster, really.  If you're not doing a lot of serious computations, installing the Intel compiler might not be worth the trouble.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-6726575081509008698?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/6726575081509008698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=6726575081509008698' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6726575081509008698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6726575081509008698'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/ubuntu-1004-installing-64-bit-intel.html' title='Ubuntu 10.04: Installing the 64-bit Intel Fortran Compiler'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-1687395919531832782</id><published>2010-05-20T22:19:00.000-04:00</published><updated>2010-05-20T22:19:19.940-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu 10.04: Remove the Chat and Mail Icons but keep the Volume Control</title><content type='html'>&lt;p&gt;I don't chat. I can find my email on my own, thanks.  But I do like the volume control up on the panel.  Thanks to &lt;a href="http://shortrecipes.blogspot.com/2010/04/ubuntu-1004-how-to-remove-chat-and-mail.html"&gt;Short IP Recipes&lt;/a&gt; for the fix:  Remove the indicators from your system:&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;sudo apt-get remove indicator-me indicator-messages&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;Log out, log back in, and &lt;em&gt;voil&amp;agrave;&lt;/em&gt;!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-1687395919531832782?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/1687395919531832782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=1687395919531832782' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1687395919531832782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1687395919531832782'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/ubuntu-1004-remove-chat-and-mail-icons.html' title='Ubuntu 10.04: Remove the Chat and Mail Icons but keep the Volume Control'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-5377919015957246927</id><published>2010-05-18T21:38:00.000-04:00</published><updated>2010-05-18T21:38:28.931-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu 10.04:  Getting Started</title><content type='html'>&lt;p&gt;I thought about putting in installation instructions for 10.04, but someone beat me to it, did a better job, and added a lot more information:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://ubuntu-manual.org/"&gt;Getting Started with Ubuntu 10.04&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Downloads a PDF manual.&lt;/p&gt;

&lt;p&gt;Disclaimer:  I haven't read it all the way through, it may be chock full of errors. But it's cheaper than going out and buying &lt;em&gt;Ubuntu for Dummies&lt;/em&gt;, and covers the current version.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-5377919015957246927?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/5377919015957246927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=5377919015957246927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/5377919015957246927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/5377919015957246927'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/ubuntu-1004-getting-started.html' title='Ubuntu 10.04:  Getting Started'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-4180113706421021866</id><published>2010-05-17T20:00:00.000-04:00</published><updated>2010-05-17T20:00:47.665-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Annoyances'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>The “Right” way to move buttons in Ubuntu's Gnome</title><content type='html'>&lt;p&gt;Apparently using &lt;tt&gt;gconf-editor&lt;/tt&gt; or directly editing the file &lt;tt&gt;$HOME/.gconf/apps/metacity/general/%gconf.xml&lt;/tt&gt; to &lt;a href="http://hawknotes.blogspot.com/2010/05/todays-ubuntu-annoyance-buttons-are-on.html"&gt;move the control buttons back where they belong&lt;/a&gt; is not the Correct Way to Do It and Will Cause Problems in the Future.  &lt;a href="http://www.ubuntugeek.com/known-ubuntu-10-04lucid-lynx-issuesbugs-with-workarounds.html"&gt;Or so it says here (see #3)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Despite there always being &lt;em&gt;More than one way to do things&lt;/em&gt;&lt;sup&gt;&lt;a href="http://www.perl.org/"&gt;&amp;dagger;&lt;/a&gt;&lt;/sup&gt;, we here at &lt;em&gt;Linux &amp;amp; Things&lt;/em&gt; are always willing to show you The One True Way.&lt;/p&gt;

&lt;p&gt;So here we go.  Apparently, in the New Ubuntu Gnome, only the Ambiance, Radiance and Dust themes have buttons on the left.  All the others still have buttons on the right.  So if you want a Right-Wing Ambiance, say, you pick a Right-Wing Theme and edit it to Look Like Ambiance.  Got that?&lt;/p&gt;

&lt;p&gt;That's right.  To make Ambiance with buttons on the right, edit, say, the New Wave theme and make it look like Ambiance:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click &lt;tt&gt;System &amp;gt; Preferences &amp;gt; Appearance&lt;/tt&gt;&lt;/li&gt;

&lt;li&gt;Select &lt;q&gt;New Wave&lt;/q&gt; and click &lt;q&gt;Customize&lt;/q&gt;&lt;/li&gt;

&lt;li&gt;Click the tabs &lt;q&gt;Controls&lt;/q&gt; and &lt;q&gt;Window Border&lt;/q&gt; and select &lt;q&gt;Ambiance&lt;/q&gt; for each.&lt;/li&gt;

&lt;li&gt;Click &lt;q&gt;Icons&lt;/q&gt; and select &lt;tt&gt;Ubuntu-Mono-Dark&lt;/tt&gt;&lt;/li&gt;

&lt;li&gt;Close&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But don't forget &lt;a href="http://hawknotes.blogspot.com/2010/05/todays-ubuntu-annoyance-buttons-are-on.html"&gt;The Other Way to Do It&lt;/a&gt;, for use when Ubuntu arbitrarily moves New Wave's buttons to the left.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-4180113706421021866?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/4180113706421021866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=4180113706421021866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4180113706421021866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4180113706421021866'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/way-to-move-buttons-in-ubuntus-gnome.html' title='The &amp;ldquo;Right&amp;rdquo; way to move buttons in Ubuntu&apos;s Gnome'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-4150817922413393970</id><published>2010-05-16T16:00:00.001-04:00</published><updated>2010-05-16T16:03:35.193-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu 10.04:  The Good Stuff</title><content type='html'>&lt;p&gt;Well, boys and girls, today I was going to talk about installing the Intel Fortran compiler and MKL libraries in Ubuntu 10.04.  Unfortunately, the tar files Intel sent me are coming up with archiving errors, so I'll have to wait the track all of that stuff down until later in the week.&lt;/p&gt;

&lt;p&gt;So today, let's talk about the good stuff, that is, things you can add to Ubuntu to make your computational life easier, or just more fun.&lt;/p&gt;

&lt;p&gt;Start with a little list.  Not mine, at first, it belongs to &lt;a href="http://theindexer.wordpress.com"&gt;the indexer&lt;/a&gt;, who gives us his &lt;a href="http://theindexer.wordpress.com/2010/03/21/to-do-list-after-installing-ubuntu-10-04-aka-lucid-lynx/"&gt;to-do list after installing 10.04&lt;/a&gt;.  He gives you categories of program, the Windows equivalent, and the possible Ubuntu variants.  There's also a rather complete source list that will allow you to download all of those files.&lt;/p&gt;

&lt;p&gt;And then there's my list, which is a little more eclectic.  All of these programs can be installed using the indexer's source list and the usual &lt;br /&gt;
&lt;tt&gt;sudo apt-get install xxxx&lt;/tt&gt;
&lt;br /&gt; from a terminal window command line, where xxxx is the package name.  Note that the links go to the program's home page, where I could or cared to find it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://kitenet.net/~joey/code/alien/"&gt;alien&lt;/a&gt;&lt;/tt&gt;: Converts other Linux package installers, particularly RPMs, to DEB format.  &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://audacity.sourceforge.net/"&gt;audacity&lt;/a&gt;&lt;/tt&gt;:  Record and edit audio files. &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;build-essential&lt;/tt&gt;:  All the tools you need to compile source code and build DEB packages &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://www.shatters.net/celestia/"&gt;celestia&lt;/a&gt;&lt;/tt&gt;:  Planetarium program and space-travel simulator&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;celestia-gnome&lt;/tt&gt;: Front end of Celestia&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://burtonini.com/blog/computers/devilspie/"&gt;devilspie&lt;/a&gt;&lt;/tt&gt;: Lets you tell programs where to open their windows on the Gnome desktop  &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://www.gnu.org/software/emacs/"&gt;emacs23&lt;/a&gt;&lt;/tt&gt;:  The One True Text Editor &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;emacs23-el&lt;/tt&gt;:  Extras for Emacs &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;emacs-goodies-el&lt;/tt&gt;:  And even more Emacs stuff&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://extremetuxracer.com/"&gt;extremetuxracer&lt;/a&gt;&lt;/tt&gt;:  Get the penguin down the hill, while he collects fish.  &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://www.ffmpeg.org/"&gt;ffmpeg&lt;/a&gt;&lt;/tt&gt;:  audio and video recordings &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;ftncheck&lt;/tt&gt;: This is a Fortran &lt;q&gt;lint&lt;/q&gt; checker, looking for errors in your Fortran code.  &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;gfortran&lt;/tt&gt;:  Back aways I said that &lt;tt&gt;build-essential&lt;/tt&gt; had all the tools you needed to compile programs.  I lied.  If you write in Fortran, you need a compiler.  This is the free one. &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://earth.google.com/"&gt;googleearth&lt;/a&gt;&lt;/tt&gt;:  Google's mapping program.  Note that this is technically non-free, you'll have to accept Google's license to use it.&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;googleearth-data&lt;/tt&gt;: For use with Google Earth&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://projects.gnome.org/gnumeric/"&gt;gnumeric&lt;/a&gt;&lt;/tt&gt;:  For most applications I like this spreadsheet better than the one in OpenOffice.org &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://www.gnuplot.info/"&gt;gnuplot&lt;/a&gt;&lt;/tt&gt;:  Scientific plotting program.  It's script-driven, so you can edit it on the fly. &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://live.gnome.org/gthumb"&gt;gthumb&lt;/a&gt;&lt;/tt&gt;:  Image/Picture viewer.  Will import pictures from your camera. &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://www.gnu.org/software/gv/"&gt;gv&lt;/a&gt;&lt;/tt&gt;:  Postscript/PDF file viewer.  This is really old, folks, but sometimes it works where a more modern program won't. &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://www.id3.org/"&gt;id3v2&lt;/a&gt;&lt;/tt&gt;:  Label MP3 file tags from the command line.  &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://k3b.plainblack.com/"&gt;k3b&lt;/a&gt;&lt;/tt&gt;:  Write CDs/DVDs &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://kid3.sourceforge.net/"&gt;kid3&lt;/a&gt;&lt;/tt&gt;:  Graphical MP3 tag editor &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;kdegames&lt;/tt&gt;:  The KDE game package &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;lame&lt;/tt&gt;:  Front end for writing MP3 files.  See my &lt;a href="http://hawknotes.blogspot.com/2010/05/fixing-sox-again.html"&gt;SoX entry&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://latex2rtf.sourceforge.net/"&gt;latex2rtf&lt;/a&gt;&lt;/tt&gt;:  Supposedly converts LaTeX files to Microsoft's doc-lite format, aka rtf.  I've used this program maybe twice in ten years, but, hey, you never know. &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;libk3b6-extracodecs&lt;/tt&gt;:  Addins to allow k3b to handle MP3 files &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://lynx.isc.org/lynx2.8.5/index.html"&gt;lynx&lt;/a&gt;&lt;/tt&gt;:  Text-based web browser.  The original version was written at KU &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://www.mplayerhq.hu/design7/news.html"&gt;mplayer&lt;/a&gt;&lt;/tt&gt;:  Music/video player &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://web.cs.mun.ca/~michael/pdksh/"&gt;pdksh&lt;/a&gt;&lt;/tt&gt;:  Public-domain Korn shell.  Pretty much like bash.  I have dome scripts that still use ksh, so I keep this installed. &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://www.linux-games.com/penguin-command/"&gt;penguin-command&lt;/a&gt;&lt;/tt&gt;: Clone of the Missle Command arcade game for Linux  &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://linuxappfinder.com/package/sc"&gt;sc&lt;/a&gt;&lt;/tt&gt;:  A text-based spreadsheet.  I keep it around because I can edit the files with a script. &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;sox&lt;/tt&gt;:  &lt;a href="http://hawknotes.blogspot.com/2010/05/fixing-sox-again.html"&gt;See my Sox Post&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;spider&lt;/tt&gt;: My favorite double-deck solitare game  &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://www.mozilla.org/projects/calendar/sunbird/"&gt;sunbird&lt;/a&gt;&lt;/tt&gt;:  Stand-alone calendar program.  If you want your calendar integrated with Thunderbird, see &lt;a href="http://www.mozilla.org/projects/calendar/lightning/"&gt;the Lightning plugin&lt;/a&gt;  &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://www.openssh.com/"&gt;ssh&lt;/a&gt;&lt;/tt&gt;:  secure shell.  Log onto other computers with encryption &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://www.tcsh.org/Welcome"&gt;tcsh&lt;/a&gt;&lt;/tt&gt;:  The TENEX C Shell.  An extension of the cshell &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://www.tug.org/texlive/"&gt;texlive&lt;/a&gt;&lt;/tt&gt;:  The default TeX/LaTeX package for Ubuntu &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;texlive-bibtex-extra&lt;/tt&gt;:  Puts your bibliography into a form LaTeX can use &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;texlive-latex-extra&lt;/tt&gt;:  More LaTeX stuff &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;texlive-publishers&lt;/tt&gt;:  Style files for various scientific journals &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;texlive-science&lt;/tt&gt;:  And still more &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://www.mozillamessaging.com/en-US/thunderbird/"&gt;thunderbird&lt;/a&gt;&lt;/tt&gt;:  Mozilla's email program.  I much prefer this to the default &lt;tt&gt;Evolution&lt;/tt&gt;, especially since I can pass a users files back and forth between Linux and Windows machines &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;ubuntu-restricted-extras&lt;/tt&gt;:  Fun stuff for playing with forbidden files (MP3s, DVDs, etc.) &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://www.vim.org/"&gt;vim&lt;/a&gt;&lt;/tt&gt;: Text-based full-screen file editor.  This and Emacs are the first full-screen editors most early techies used.  &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://www.videolan.org/vlc/"&gt;vlc&lt;/a&gt;&lt;/tt&gt;: Watch just about any kind of video  &lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://xmms2.org/wiki/Main_Page"&gt;xmms2&lt;/a&gt;&lt;/tt&gt;: Yet another music player&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;&lt;a href="http://www.foolabs.com/xpdf/"&gt;xpdf&lt;/a&gt;&lt;/tt&gt;:  The original PDF file viewer for X windows &lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-4150817922413393970?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/4150817922413393970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=4150817922413393970' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4150817922413393970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4150817922413393970'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/ubuntu-1004-good-stuff.html' title='Ubuntu 10.04:  The Good Stuff'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-4702484749618592815</id><published>2010-05-15T15:30:00.003-04:00</published><updated>2011-06-25T12:40:33.569-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SoX'/><category scheme='http://www.blogger.com/atom/ns#' term='Audio'/><category scheme='http://www.blogger.com/atom/ns#' term='MP3'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Fixing SoX — Again</title><content type='html'>&lt;p&gt;&lt;em&gt;
June 15, 2011:  In Ubuntu 11.04, you can add MP3 support to the Ubuntu supplied version of SoX with the libsox-fmt-mp3 package, so all of this is now unnecessary.
&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For as long as I remember in my Linux career I've been using &lt;a href="http://sox.sourceforge.net/"&gt;Sound eXchange (SoX)&lt;/a&gt; to convert audio files from one format to another &amp;mdash; in particular, converting to &lt;a href="http://en.wikipedia.org/wiki/MP3"&gt;MP3 format&lt;/a&gt; so that I could play them on my audio player.  &lt;a href="http://hawknotes.blogspot.com/search/label/MP3"&gt;As I've noted before&lt;/a&gt;, this isn't an easy task.  Distributions are understandably reluctant to deal with the &lt;a href="http://en.wikipedia.org/wiki/MP3#Licensing_and_patent_issues"&gt;licensing and patent issues&lt;/a&gt; encumbering MP3 files and so let you figure it out for yourself.&lt;/p&gt;

&lt;p&gt;The following seems to be the easiest way to do it.  I got the basic process from  &lt;a href="http://eggblog.invertedegg.com/?p=19"&gt;Inverted Egg&lt;/a&gt;, but I'm &lt;em&gt;not&lt;/em&gt; going to convert put everything into a &lt;tt&gt;.deb&lt;/tt&gt; file, &lt;a href="http://eggblog.invertedegg.com/?p=19&amp;cpage=1#comment-81"&gt;since it will just get rewritten with the next update&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here we go:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="http://sourceforge.net/projects/sox/files/sox/14.3.1/"&gt;Download the SoX source tarball.&lt;/a&gt;  It doesn't matter where you put it, we'll assume it goes to &lt;tt&gt;/home/yourname/Downloads&lt;/tt&gt;.&lt;/li&gt;

&lt;li&gt;Open a terminal window and become root:
&lt;br /&gt;
&lt;tt&gt;$ sudo -i&lt;/tt&gt;
&lt;br /&gt;
You'll get prompted for the password.
&lt;/li&gt;

&lt;li&gt;Go to a useful directory to unload the source:
&lt;br /&gt;
&lt;tt&gt;# cd /usr/local/src&lt;/tt&gt;
&lt;/li&gt;

&lt;li&gt;Unpack the tarball.  Note that the version name will occasionally change:
&lt;br /&gt;
&lt;tt&gt;# tar xvzf /home/yourname/Downloads/sox-14.3.1.tar.gz&lt;/tt&gt;
&lt;/li&gt;

&lt;li&gt;Load Ubuntu's version of SoX into the system, if it's not there already, along with the &lt;tt&gt;lame&lt;/tt&gt; library and header files, which are responsible for mp3 processing:
&lt;br /&gt;
&lt;tt&gt;# apt-get install sox liblame0 liblame-dev&lt;/tt&gt;
&lt;/li&gt;

&lt;li&gt;Find all the packages that Ubuntu's SoX needed to compile, and install those you haven't installed already:
&lt;br /&gt;
&lt;tt&gt;# apt-get source sox&lt;/tt&gt;
&lt;br /&gt;
&lt;em&gt;That's&lt;/em&gt; why you needed to install Ubuntu's SoX in the first place.
&lt;/li&gt;

&lt;li&gt;Now do the usual installation stuff:
&lt;br /&gt;
&lt;pre&gt;
# cd sox-14.3.1
# ./configure
# make
# make install
&lt;/pre&gt;
&lt;/li&gt;

&lt;li&gt;Your new version of &lt;tt&gt;SoX&lt;/tt&gt; is in &lt;tt&gt;/usr/local/bin/sox&lt;/tt&gt;.  Make sure it works, i.e. it converts files to mp3, and then delete Ubuntu's version of SoX:
&lt;br /&gt;
&lt;tt&gt;# apt-get purge sox&lt;/tt&gt;
&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;And you're done.  Of course, every once in a while you're going to go back and look for updates, right?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-4702484749618592815?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/4702484749618592815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=4702484749618592815' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4702484749618592815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4702484749618592815'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/fixing-sox-again.html' title='Fixing SoX &amp;mdash; Again'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-1284472319959840147</id><published>2010-05-14T07:53:00.000-04:00</published><updated>2010-05-14T07:53:57.132-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Annoyances'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Today's Ubuntu Annoyance:  The Buttons are on the Left</title><content type='html'>&lt;p&gt;In 10.04 using the Gnome desktop, the buttons to minimize, maximize, and close a window moved from the right side of the screen to the left.  Being right-handed, it feels unnatural to have the buttons on the left, so I want to move them back.  &lt;a href="http://www.howtogeek.com/howto/13535/move-window-buttons-back-to-the-right-in-ubuntu-10.04/"&gt;Trevor has the solution&lt;/a&gt;:&lt;/p&gt;

&lt;ol&gt;

&lt;li&gt;Open &lt;tt&gt;gconf-editor&lt;/tt&gt;, either from the command line or by pressing &lt;tt&gt;Alt-F2&lt;/tt&gt; and typing it in the box.&lt;/li&gt;

&lt;li&gt;Click on the &lt;tt&gt;+&lt;/tt&gt; sign next to &lt;tt&gt;Apps&lt;/tt&gt;.&lt;/li&gt;

&lt;li&gt;Scroll down on the left-hand-side until you find &lt;tt&gt;metacity&lt;/tt&gt;.  Click on the &lt;tt&gt;+&lt;/tt&gt; beside it.&lt;/li&gt;

&lt;li&gt;Click on the folder labeled &lt;tt&gt;general&lt;/tt&gt;.&lt;/li&gt;

&lt;li&gt;On the right-hand-side, find the label &lt;tt&gt;button_layout&lt;/tt&gt;.  Double-click it.&lt;/li&gt;

&lt;li&gt;In the box that appears, type &lt;tt&gt;:minimize,maximize,close&lt;/tt&gt;.  Order is important.  The colon divides the left-hand side from the right.  So if you wanted the close button on the right and the rest on the left, you'd type &lt;tt&gt;minimize,maximize:close&lt;/tt&gt;.&lt;/li&gt;

&lt;li&gt;Click &lt;tt&gt;OK&lt;/tt&gt; and you're done.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you want to edit things by hand, it looks as though the appropriate place is the file &lt;tt&gt;$HOME/.gconf/apps/metacity/general/%gconf.xml&lt;/tt&gt;, which should look something like this:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;?xml version="1.0"?&amp;gt;
&amp;lt;gconf&amp;gt;
 &amp;lt;entry name="button_layout" mtime="1273837457" type="string"&amp;gt;
  &amp;lt;stringvalue&amp;gt;:minimize,maximize,close&amp;lt;/stringvalue&amp;gt;
 &amp;lt;/entry&amp;gt;
&amp;lt;/gconf&amp;gt;
&lt;/pre&gt;

&lt;p&gt;Although there may be other &lt;tt&gt;entries&lt;/tt&gt; between the &lt;tt&gt;gconf&lt;/tt&gt; lines.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-1284472319959840147?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/1284472319959840147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=1284472319959840147' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1284472319959840147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1284472319959840147'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/todays-ubuntu-annoyance-buttons-are-on.html' title='Today&apos;s Ubuntu Annoyance:  The Buttons are on the Left'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-1803710555211639086</id><published>2010-05-13T22:33:00.000-04:00</published><updated>2010-05-13T22:33:55.233-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu 10.04: gnome-screensaver and switch user</title><content type='html'>&lt;p&gt;Bugs.  Why does it always have to be bugs?&lt;/p&gt;

&lt;p&gt;Anyway, with the advent of New Hal, my wife and I use the same computer.  She doesn't do much more than check email, check Snopes to refute emails from the clueless, and make plane and hotel reservations.  Things like that, she's not a heavy computer user.  It's not likely that she's going to be running a 16 atom &lt;a href="http://www.quantum-espresso.org/"&gt;&lt;em&gt;Quantum Espresso&lt;/em&gt;&lt;/a&gt; simulation in the background, unlike some people I know.&lt;/p&gt;

&lt;p&gt;So it's OK for both of us to use the same box for most things.  The idea way to do this is with the &lt;q&gt;Switch User&lt;/q&gt; option, which works really well once you know each other's passwords and know about Ctrl-Alt-F7/Ctrl-Alt-F8.  (Don't try this at home unless you have a really strong marriage.)  So we both stay logged on, and use Switch User to get back and forth between our accounts.&lt;/p&gt;

&lt;p&gt;Except that when you're both logged on all the time, you don't want the monitor running all the while.  It wastes power, and it's annoying to walk in to the room and see the thing lit up in the middle of the night.&lt;/p&gt;

&lt;p&gt;The default option is to use &lt;tt&gt;gnome-screensaver&lt;/tt&gt;, which seems to be installed automatically with 10.04 and launches when you boot.  Just set the options the way you want it and you're good to go.&lt;/p&gt;

&lt;p&gt;Except &amp;mdash;  of course there's an except, why do you think I'd be writing otherwise &amp;mdash; there's a bug.  Multiple reported bugs, actually.  There's &lt;a href="https://bugs.launchpad.net/ubuntu/+source/fglrx-installer/+bug/478253"&gt;478253&lt;/a&gt;, &lt;a href="https://bugs.launchpad.net/ubuntu/+source/gnome-screensaver/+bug/555870"&gt;555870&lt;/a&gt;, &lt;a href="https://bugs.launchpad.net/ubuntu/lucid/+source/xorg-server/+bug/546578"&gt;546578&lt;/a&gt;, &lt;a href="https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/561538"&gt;561538&lt;/a&gt;, and, lest we forget, &lt;a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/535467"&gt;535467&lt;/a&gt;.  All of them report more or less the same thing:  when you use &lt;q&gt;Switch User&lt;/q&gt;, sometimes the screen goes black.&lt;/p&gt;

&lt;p&gt;A workaround is to run &lt;tt&gt;xgamma -gamma 1.0&lt;/tt&gt; when the black screen occurs.  This is rather difficult because the screen is, in fact, black, and unless you're very lucky you won't be at the right spot on the screen.&lt;/p&gt;

&lt;p&gt;So, following a suggestion in the comments to 561538, I ripped gnome-screensaver off the computer and installed xscreensaver.  Set it up on both accounts, then went out to work on the lawn.&lt;/p&gt;

&lt;p&gt;When I came back, GDM was cheerfully restarting itself every 2-3 seconds, complete with endless &lt;q&gt;be-bop&lt;/q&gt; sound every time.  I suspect that this is because the two instances of &lt;tt&gt;xscreensaver&lt;/tt&gt; were competing with each other.&lt;/p&gt;

&lt;p&gt;I'm not sure that's the case, but I worked under that assumption and killed the screen saver in my account.  That fixed the problem, so I've left things at that.  Now I just remember to switch the screen to my wife's account when I'm done on the computer.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-1803710555211639086?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/1803710555211639086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=1803710555211639086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1803710555211639086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1803710555211639086'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/ubuntu-1004-gnome-screensaver-and.html' title='Ubuntu 10.04: gnome-screensaver and switch user'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-3103245022273120622</id><published>2010-05-11T23:21:00.004-04:00</published><updated>2010-05-13T23:52:58.733-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='X'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Grub'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu 10.04:  Fixing mtrr errors</title><content type='html'>&lt;p&gt;Ah, so many things, so little time to write about them.  I'm going to handle my Ubuntu 10.04 programs piecemeal, and in the order that I have time to write about them.  So this one isn't the biggest problem, but I've got all the data available here, and it's a quick fix, so here goes:&lt;/p&gt;

&lt;p&gt;I was looking at &lt;tt&gt;/var/log/messages&lt;/tt&gt; to try to figure out why my wife's account logged itself off last night (never did find out), when I saw the message&lt;/p&gt;

&lt;p&gt;&lt;em&gt;MTRR allocation failed.  Graphics performance may suffer.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Googled it, found &lt;a href="http://www.phoronix.com/forums/showpost.php?p=74238&amp;postcount=5"&gt;this fix,&lt;/a&gt; which is to add the kernel boot options:&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;enable_mtrr_cleanup mtrr_spare_reg_nr=1&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;to the grub command line.&lt;/p&gt;

&lt;p&gt;Uh, OK, how do I do that?&lt;/p&gt;

&lt;p&gt;In the Good Old Days there was a file, &lt;tt&gt;/boot/grub/menu.lst&lt;/tt&gt;, which had all the information you needed to get your computer started, including booting up and loading the kernel with the desired options.  The problem was that this got rewritten every time you did a kernel update.  There were some sections of the file that were supposed to be saved, but that required the update program to remember to save them.&lt;/p&gt;

&lt;p&gt;Just to make sure the programmer didn't forget those kind of things, all of the user-specified options were moved to the file &lt;tt&gt;/etc/default/grub&lt;/tt&gt;, and &lt;tt&gt;menu.lst&lt;/tt&gt; has become &lt;tt&gt;grub.cfg&lt;/tt&gt;, which is generated from &lt;tt&gt;/etc/default/grub&lt;/tt&gt; by running &lt;tt&gt;update-grub&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;Got that?  Uh, so you just ... Oh, never mind.&lt;/p&gt;

&lt;p&gt;Here's the fix for the mtrr problem:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Run &lt;br /&gt;
&lt;tt&gt;$ sudo vi /etc/default/grub&lt;/tt&gt;
&lt;br /&gt;
to edit the grub configuration file.&lt;/tt&gt;&lt;/li&gt;

&lt;li&gt;Look for the line &lt;br /&gt;
&lt;tt&gt;GRUB_CMDLINE_LINUX=""&lt;/tt&gt;&lt;br /&gt;
and change it to &lt;br /&gt;
&lt;tt&gt;GRUB_CMDLINE_LINUX="enable_mtrr_cleanup mtrr_spare_reg_nr=1"&lt;/tt&gt;
&lt;/li&gt;

&lt;li&gt;Save and exit&lt;/li&gt;

&lt;li&gt;Run
&lt;br /&gt;
&lt;tt&gt;$ sudo update-grub&lt;/tt&gt;&lt;/li&gt;

&lt;li&gt;Check &lt;tt&gt;/boot/grub/grub.cfg&lt;/tt&gt; to be sure the changes are in there&lt;/li&gt;

&lt;li&gt;Reboot&lt;/li&gt;

&lt;li&gt;Check &lt;tt&gt;/var/log/messages&lt;/tt&gt; to be sure that the mtrr message has disappeared.&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;And, of course, I noticed a fantastic improvement in graphic performance &amp;mdash which means none, actually.  But hey!  I got rid of the error message.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-3103245022273120622?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/3103245022273120622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=3103245022273120622' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/3103245022273120622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/3103245022273120622'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/ubuntu-1004-fixing-mtrr-errors.html' title='Ubuntu 10.04:  Fixing mtrr errors'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-6890099364777806368</id><published>2010-05-09T09:37:00.000-04:00</published><updated>2010-05-09T09:37:45.803-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Gateway'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>It's Here!</title><content type='html'>&lt;p&gt;It's a computer!  Have a Cigar.&lt;/p&gt;

&lt;p&gt;OK, it's not really that big a deal, but it was a long wait.  &lt;a href="http://hawknotes.blogspot.com/2010/04/new-toy-coming-soon.html"&gt;A month ago&lt;/a&gt; I ordered a &lt;a href="http://www.gateway.com/systems/product/529668383.php"&gt;Gateway SX2840-01&lt;/a&gt; desktop through &lt;a href="http://www.jr.com/gateway/pe/GTW_SX284001/"&gt;J&amp;amp;R&lt;/a&gt;.  After being on backorder for a month, it got here on Monday.&lt;/p&gt;

&lt;p&gt;Turns out it's better than advertised.  Not only does it have the glowing reviews mentioned in the first post, but &lt;em&gt;Consumer Reports&lt;/em&gt; named the top compact desktop, though they said not to buy it because of technical support issues &amp;mdash; of course I'm not going to get Linux technical support from HP, either, so that wasn't an issue.  The computer also came with 6 GB of memory, more than the 4 originally offered.  The only thing it didn't have was a 1 TB disk.  The disk actually comes out as 931 GB, but you knew that was going to happen, didn't you?&lt;/p&gt;

&lt;p&gt;Of course, it came with Windows 7.  I turned it on, booted up 7, said &lt;q&gt;Ooh, shiny!&lt;/q&gt;, then went and downloaded the &lt;a href="http://www.ubuntu.com/"&gt;64 bit version of Ubuntu 10.04&lt;/a&gt;.  This installed easily, including all the disk partitioning &amp;mdash; I left 7 on there, with 100GB of disk, because you never know.  I played with the system for a week, and then spent yesterday consolidating all of the files from my old computer and my wife's computer (&lt;em&gt;aka&lt;/em&gt; Hal and Hal's formerly evil twin) to the new box.  I did have a few minor, and one not-so-minor, problems with the install, which I'll tell you about in the next few days.  But, suffice it to say, after a week of using this machine I'm very happy with it.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-6890099364777806368?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/6890099364777806368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=6890099364777806368' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6890099364777806368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6890099364777806368'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/its-here.html' title='It&apos;s Here!'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-4515695990157328078</id><published>2010-05-08T21:24:00.000-04:00</published><updated>2010-05-08T21:24:32.102-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Science'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='LaTeX'/><title type='text'>Neat LaTeX Tool</title><content type='html'>&lt;p&gt;For those of you that don't know, &lt;a href="http://www.latex-project.org/"&gt;LaTeX&lt;/a&gt; is &lt;em&gt;the&lt;/em&gt; way to write scientific papers.  It's set up to produce nice equations, put figures and tables more or less where you want them, collect references in the proper order (with the help of &lt;a href="http://www.bibtex.org/"&gt;BibTeX&lt;/a&gt;), and generally make you look like you know what you're talking about.  Publishers can even set up their own style sheets and macros (see the American Physical Society's &lt;a href="http://authors.aps.org/revtex4/"&gt;REVTeX&lt;/a&gt;) so that your article looks right for the journal, and it's a minimal amount of effort to translate your work to the format of another journal.&lt;/p&gt;

&lt;p&gt;That said, in scientific articles you often need weird characters, e.g. &amp;radic;, &amp;Delta, &amp;nabla;, etc.  Since LaTeX's source is ASCII, you need to know that &amp;radic; = &lt;tt&gt;\sqrt&lt;/tt&gt; or &lt;tt&gt;\textsurd&lt;/tt&gt;, &amp;Delta; = &lt;tt&gt;\Delta&lt;/tt&gt;, and &amp;nabla; = &lt;tt&gt;\nabla&lt;/tt&gt;.  Not to mention hundreds of other characters.&lt;/p&gt;

&lt;p&gt;You'll eventually remember that &amp;alpha; = &lt;tt&gt;\alpha&lt;/tt&gt;, but will you ever learn that &amp;sup; = &lt;tt&gt;\supset&lt;/tt&gt;?  I won't.  You could spend all your time looking up these symbols in tables (as I just did for the HTML), or you can go to the &lt;a href="http://detexify.kirelabs.org/classify.html"&gt;Detexify&lt;sup&gt;2&lt;/sup&gt; &amp;ndash; LaTeX symbol classifier&lt;/a&gt;.  Just draw in the symbol you want with a mouse, and you get a set of suggested LaTeX commands.&lt;/p&gt;

&lt;p&gt;LaTeX and HTML handle formatting non-ASCII characters in similar ways.  It would sure be helpful if someone would adapt this to work for HTML characters as well.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-4515695990157328078?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/4515695990157328078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=4515695990157328078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4515695990157328078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4515695990157328078'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/neat-latex-tool.html' title='Neat LaTeX Tool'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-757054331737460544</id><published>2010-05-03T10:56:00.000-04:00</published><updated>2010-05-03T10:56:06.947-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Doctor Who'/><category scheme='http://www.blogger.com/atom/ns#' term='Discworld'/><category scheme='http://www.blogger.com/atom/ns#' term='Parody'/><category scheme='http://www.blogger.com/atom/ns#' term='science fiction'/><title type='text'>The Shortest Doctor Who Episode Ever</title><content type='html'>&lt;p&gt;&lt;em&gt;
Outside a small house in London.  The &lt;a href="http://tardis.wikia.com/wiki/The_Doctor's_TARDIS"&gt;Tardis&lt;/a&gt; appears.  &lt;a href="http://tardis.wikia.com/wiki/Wilfred_Mott"&gt;Wilfred Mott&lt;/a&gt; comes out of the house, just as &lt;a href="http://tardis.wikia.com/wiki/The_Doctor"&gt;the Doctor&lt;/a&gt; comes out of the Tardis.
&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wilfred:&lt;/strong&gt; Doctor?  What are you doing here?  Donna might see you.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is an automatic reaction upon seeing the Tardis.  As he pauses, Wilfred notices something has changed.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wilfred:&lt;/strong&gt; You've changed again, haven't you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Doctor:&lt;/strong&gt; Hello, Wilfred.  Yes, I've changed.  Some unpleasantness with &amp;mdash; well, with something unpleasant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wilfred:&lt;/strong&gt;But why are you here?  If Donna sees you, even in this &amp;ndash; this &amp;ndash; body, she'll start remembering.  And then, you said &amp;hellip;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Doctor:&lt;/strong&gt; Wilfred!  I've found a way to cure her!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wilfred:&lt;/strong&gt; Are you sure?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Doctor:&lt;/strong&gt; Yes, but I have to take her away &amp;hellip;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;
As they are talking, &lt;a href="http://tardis.wikia.com/wiki/Donna_Noble"&gt;Donna Noble&lt;/a&gt; comes out of the front door.
&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Donna:&lt;/strong&gt; Gramps?  Who's this, then?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Donna starts to look at the Doctor.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Donna:&lt;/strong&gt; Look, you, whatever it is you're selling, we don't &amp;hellip;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Before Donna can get a good look at the Tardis, the Doctor pulls out his &lt;a href="http://tardis.wikia.com/wiki/Sonic_screwdriver"&gt;screwdriver&lt;/a&gt;.  There is a faint whining noise, audible only to those under 50.  Donna collapses.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Doctor:&lt;/strong&gt; Sonic sedative.  Come on, help me get her into the Tardis.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Doctor and Wilfred carry Donna into the Tardis.  Wilfred exits, the Doctor shuts the door, and the Tardis vanishes with the  &lt;a href="http://www.kasterborus.com/tardis/tardis/demat1.wav"&gt;usual noises&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Tardis reappears in what is obviously a library.  OK, it's not just a library, it's &lt;a href="http://wiki.lspace.org/wiki/Library"&gt;the Library&lt;/a&gt;.  It's dark, probably damp, and the books seem to be moving slightly.  Maybe it's just the arrival of the Tardis.  Or maybe not.  Books left open seem to be turning pages themselves.  We see the Tardis from the point-of-view of &lt;a href="http://wiki.lspace.org/wiki/Librarian"&gt;the Librarian&lt;/a&gt;.  The Doctor emerges from the Tardis, and approaches the desk.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Doctor:&lt;/strong&gt;  Here we are then.  Did you find the book?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Librarian:&lt;/strong&gt; Ook!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Doctor:&lt;/strong&gt;  Good then.  Here's what else I need &amp;hellip;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;As the two talk, the scene shifts back inside the Tardis, where Donna is waking up.  She looks around, pulls herself up, and starts out the door.  She sees the Doctor and the Librarian at the desk.  She still doesn't remember anything, but that will come.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Donna:&lt;/strong&gt;  Hey!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Both turn to look at her.  We shift to a point of view behind Donna.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Donna:&lt;/strong&gt;  What's this.  Who are you?  Why have you grabbed me and took me to this &amp;mdash; this &amp;mdash; place?  And what's with the monkey?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;With that, the Librarian explodes.  All we see is a large, dark fist striking the camera.  There's lots of fur.  Sounds of a scuffle.  Lots and lots of &lt;q&gt;Ook&lt;/q&gt;s.  Then black.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Doctor:&lt;/strong&gt; What a waste of a perfectly good &lt;a href="http://tardis.wikia.com/wiki/Regeneration"&gt;regeneration&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The End&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;Thanks to the &lt;a href="http://tardis.wikia.com/wiki/Doctor_Who_Wiki"&gt;Doctor Who Wiki&lt;/a&gt; and the &lt;a href="http://wiki.lspace.org/wiki/Main_Page"&gt;Discworld &amp;amp; Terry Pratchett Wiki&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-757054331737460544?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/757054331737460544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=757054331737460544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/757054331737460544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/757054331737460544'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/05/shortest-doctor-who-episode-ever.html' title='The Shortest Doctor Who Episode Ever'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-4823089416248669349</id><published>2010-04-10T11:17:00.000-04:00</published><updated>2010-04-10T11:17:03.308-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Baseball'/><title type='text'>Rubbing It In</title><content type='html'>&lt;p&gt;Before every game in the Major Leagues, workers unwrap 100-200 brand-new, shiny baseballs, each bearing &lt;a href="http://www.rangerfans.com/images/baseball2000.gif"&gt;Bud Selig's signature&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://sports.espn.go.com/espn/page2/story?id=5061892"&gt;You won't believe what they do to them.&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-4823089416248669349?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/4823089416248669349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=4823089416248669349' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4823089416248669349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4823089416248669349'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/04/rubbing-it-in.html' title='Rubbing It In'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-6660794016448244674</id><published>2010-04-03T14:07:00.000-04:00</published><updated>2010-04-03T14:07:27.240-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><title type='text'>A New Toy (Coming Soon)</title><content type='html'>&lt;p&gt;The hypothetical long-time reader of this blog will recall that &lt;a href="http://hawknotes.blogspot.com/2003/12/i-came-i-saw-i-blogged.html"&gt;when I started it&lt;/a&gt; I had a Dell Dimension 2350, &lt;em&gt;aka&lt;/em&gt; Hal, running Fedora Core Linux, and another 2350, Hal's Evil Twin, running Windows XP.&lt;/p&gt;

&lt;p&gt;Six and a half years later, the only change is that I've converted the evil twin to Linux, and &lt;a href="http://hawknotes.blogspot.com/2006/04/ubuntu-saga-begins.html"&gt;switched to Ubuntu&lt;/a&gt;.  But I still have the same machines, &lt;a href="http://3.bp.blogspot.com/_WZHLzoZCfRI/RiuK4i-PXBI/AAAAAAAAABY/KAePHgcRjv4/s1600-h/duct_tape_drive.jpg"&gt;with some minor upgrades&lt;/a&gt;.  I'm cheap, what can I say?&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;status quo&lt;/em&gt; is about to change.  Last week &lt;em&gt;Office Depot&lt;/em&gt; had an &lt;a href="http://www.officedepot.com/a/products/579519/HP-Pavilion-Slimline-s5310f-Desktop-Computer/"&gt;HP Pavilion&lt;/a&gt; on sale at a really good price, about $440.  4GB memory, 640GB disk, dual core processor, etc.  I was set buy it, until I read the CNET Review (on &lt;a href="http://www.bestbuy.com/site/HP+-+Pavilion+Slimline+Desktop+with+AMD+Athlon%26%23153%3B+II+Dual-Core+Processor/9692987.p?id=1218150183655&amp;skuId=9692987"&gt;&lt;em&gt;Best Buy's&lt;/em&gt; product page for the HP&lt;/a&gt;), which told me that &lt;a href="http://www.gateway.com/systems/product/529668383.php?cmpid=desktopsbnr"&gt;Gateway had a much better computer, the SX2840-01&lt;/a&gt;.  Dual core, 4 GB, &lt;em&gt;1 TB disk&lt;/em&gt;, HDMI output, etc.  About $100 more, but it looks to be worth the price.&lt;/p&gt;

&lt;p&gt;Gateway doesn't seem to sell retail anymore.  They directed me to &lt;a href="http://www.jr.com/gateway/pe/GTW_SX284001/#productTabDetails"&gt;JSR&lt;/a&gt;, which had the computers in stock when I first looked but quickly ran out, probably because Best Buy had undercut its own sales by posting an honest review.  The promise to get in more, though, so I put in my order and am now waiting expectantly.  Hopefully the new two will get here about the same time as &lt;a href="http://www.ubuntu.com/testing/lucid/beta1"&gt;Ubuntu 10.04&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-6660794016448244674?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/6660794016448244674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=6660794016448244674' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6660794016448244674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6660794016448244674'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/04/new-toy-coming-soon.html' title='A New Toy (Coming Soon)'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-1282829355176643037</id><published>2010-03-27T19:54:00.000-04:00</published><updated>2010-03-27T19:54:54.188-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Basketball'/><title type='text'>Well, It's Over</title><content type='html'>&lt;p&gt;and there are no Kansas teams left playing basketball this year.&lt;/p&gt;

&lt;p&gt;Some thoughts:&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;
&lt;a href="http://espn.go.com/blog/collegebasketballnation/post/_/id/9280/final-butler-bulldogs-63-kansas-state-wildcats-56"&gt;K-State's loss to Butler&lt;/a&gt; was, in large part, due to the fatigue left over from the &lt;a href="http://msn.foxsports.com/cbk/story/Kansas-State-Wildcats-beat-Xavier-Musketeers"&gt;Xavier game.&lt;/a&gt;  Just this morning, the &lt;a href="http://www.washingtonpost.com/"&gt;&lt;em&gt;Washington Post&lt;/em&gt;&lt;/a&gt; ran a story of the great &lt;a href="http://www.washingtonpost.com/wp-dyn/content/article/2010/03/26/AR2010032604281.html"&gt;KSU conditioning program&lt;/a&gt;.
&lt;/li&gt;

&lt;li&gt;
At least the left side of everyone's bracket is blown up as badly like mine.  I doubt there were more than 100 people, all from Indianapolis, who had Butler in the Final Four.
&lt;/li&gt;

&lt;li&gt;
And, as will be noted 5,000,000 times between now and next Saturday, the Butler gym was the scene of &lt;a href="http://www.milan.k12.in.us/StateChamps/1954.HTM"&gt;Milan's historic defeat of Muncie Central&lt;/a&gt; in 1954.
&lt;/li&gt;

&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-1282829355176643037?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/1282829355176643037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=1282829355176643037' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1282829355176643037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1282829355176643037'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/03/well-its-over.html' title='Well, It&apos;s Over'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-8289879558256788597</id><published>2010-03-27T11:36:00.000-04:00</published><updated>2010-03-27T11:36:51.995-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Things that should probably be twittered'/><title type='text'>Total World Domination</title><content type='html'>&lt;p&gt;Just a thought: most companies try to protect their brand names to keep them from becoming generic.  But if "google" is ruled generic, how does Google loose?  I mean, if you're going to google something, where are you going to start? &lt;a href="http://www.google.com/search?hl=en&amp;safe=off&amp;q=bing&amp;aq=f&amp;aqi=g10&amp;aql=&amp;oq=&amp;gs_rfai="&gt;Bing?&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-8289879558256788597?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/8289879558256788597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=8289879558256788597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/8289879558256788597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/8289879558256788597'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/03/total-world-domination.html' title='Total World Domination'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-437273202662714735</id><published>2010-03-20T23:15:00.000-04:00</published><updated>2010-03-20T23:15:59.730-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Basketball'/><category scheme='http://www.blogger.com/atom/ns#' term='Kansas'/><category scheme='http://www.blogger.com/atom/ns#' term='wildcat envy'/><title type='text'>Damn</title><content type='html'>&lt;p&gt;Well, &lt;a href="http://www.ajc.com/sports/kansas-state-beats-byu-388003.html"&gt;at least K-State is still in it.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You have no idea how painful that is to write.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-437273202662714735?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/437273202662714735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=437273202662714735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/437273202662714735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/437273202662714735'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/03/damn.html' title='Damn'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-7910663497998039942</id><published>2010-03-19T12:24:00.000-04:00</published><updated>2010-03-19T12:24:41.982-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Basketball'/><category scheme='http://www.blogger.com/atom/ns#' term='Kansas'/><title type='text'>One Down</title><content type='html'>&lt;p&gt;&lt;a href="http://www.kansascity.com/2010/03/18/1823201_ku-overcomes-rough-start-for-90.html?storylink=omni_popular"&gt;&lt;em&gt;Phew!&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;All year, every game, KU has always played down to to the opposition.  And it's going to come back to bite them before we're done, &lt;a href="http://blogs.suntimes.com/illini/2010/03/obama_and_me.html"&gt;certain prognosticators notwithstanding.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It will be a morality play, just like &lt;q&gt;Memphis can't hit free throws&lt;/q&gt; turned out to be in 2008.&lt;/p&gt;

&lt;p&gt;My bracket, and my heart, say KU wins it all (it's &lt;a href="http://www.washingtonpost.com/wp-srv/sports/special/ncaatournament/tracee.html"&gt;sort of mandatory for KU alums)&lt;/a&gt;, but if I had to bet, my wallet would say it ends next week.&lt;/p&gt;

&lt;p&gt;And I'd never be happier to lose a bet.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-7910663497998039942?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/7910663497998039942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=7910663497998039942' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7910663497998039942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7910663497998039942'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/03/one-down.html' title='One Down'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-4948320403240886324</id><published>2010-03-13T20:07:00.001-05:00</published><updated>2010-03-19T12:14:45.115-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Basketball'/><title type='text'>Who Woulda Thunk?</title><content type='html'>&lt;p&gt;Bobby Knight and I go way back &amp;mdash; I was at Indiana University from 1973-79, including the great undefeated 1975-6 team featuring Scott May and Quinn Buckner.  Over the years I've had the chance to notice that when he's coaching &lt;a href="http://www.youtube.com/watch?v=NvRO2GE4x4M"&gt;he's not particularly stable.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, over the last year Knight and Brent Musburger telecast Big XII basketball games, mostly those involving KU and/or K-State.  I've also heard him on the &lt;em&gt;Mike &amp;amp; Mike&lt;/em&gt; radio show on my drive to work.&lt;/p&gt;

&lt;p&gt;When he's not coaching, Bobby Knight is smart, witty, thoughtful, and doesn't just talk to fill the air.  It's amazing.&lt;/p&gt;

&lt;p&gt;Of course, I have no way of knowing what he's like off-camera, but &lt;a href="http://www.youtube.com/watch?v=E5QvuZOdczg&amp;feature=related"&gt;it's a considerable improvement over the old Knight.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Maybe he should have started out as an announcer.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-4948320403240886324?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/4948320403240886324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=4948320403240886324' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4948320403240886324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4948320403240886324'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/03/who-woulda-thunk.html' title='Who Woulda Thunk?'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-1531014586019440985</id><published>2010-02-10T11:23:00.002-05:00</published><updated>2010-02-10T19:00:42.145-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Snow'/><title type='text'>City of Big Shoulders Cries Over a Little Snow</title><content type='html'>Yes, folks, Chicago has just broken &lt;a href="http://www.nbcchicago.com/news/local-beat/Snows-Over-Folks-84004852.html"&gt;a 102 year old record for snow in a single day.&lt;/a&gt;&lt;br /&gt;
12.6 inches&lt;br /&gt;
OMG!&lt;br /&gt;
Here in DC, we call that &lt;a href="http://www.nowpublic.com/environment/snowfall-totals-washington-dc-snowfall-maps-predictions-2570581.html"&gt;Saturday&lt;/a&gt;.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://lh4.ggpht.com/_WZHLzoZCfRI/S3Lcsf1IQEI/AAAAAAAAAsk/m8LIKgDmHbg/s640/IMG_0425.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://lh4.ggpht.com/_WZHLzoZCfRI/S3Lcsf1IQEI/AAAAAAAAAsk/m8LIKgDmHbg/s320/IMG_0425.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-1531014586019440985?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/1531014586019440985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=1531014586019440985' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1531014586019440985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1531014586019440985'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/02/city-of-big-shoulders-crys-over-little.html' title='City of Big Shoulders Cries Over a Little Snow'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_WZHLzoZCfRI/S3Lcsf1IQEI/AAAAAAAAAsk/m8LIKgDmHbg/s72-c/IMG_0425.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-3948926103522355757</id><published>2010-02-09T18:56:00.000-05:00</published><updated>2010-02-09T18:56:43.466-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Surfing'/><title type='text'>What Google Knows About You</title><content type='html'>&lt;p&gt;No, this isn't the revelation of any big conspiracy.  It's just to point out (i.e., make myself a bookmark) that the page&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;&lt;a href="http://www.google.com/dashboard/"&gt;http://www.google.com/dashboard/&lt;/a&gt;&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;lets you get information about most of your Google accounts, including your privacy settings.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-3948926103522355757?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/3948926103522355757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=3948926103522355757' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/3948926103522355757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/3948926103522355757'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/02/what-google-knows-about-you.html' title='What Google Knows About You'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-7320687891179450104</id><published>2010-02-05T10:49:00.000-05:00</published><updated>2010-02-05T10:49:17.073-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Annoyances'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Surfing'/><title type='text'>Skip This Post</title><content type='html'>&lt;p&gt;L&amp;amp;T's thanks go to the &lt;em&gt;Washington Post's&lt;/em&gt; &lt;a href="http://www.washingtonpost.com/wp-dyn/content/article/2010/02/05/AR2010020501089.html?wpisrc=nl_tech"&gt;Rob Pegoraro&lt;/a&gt; for this link to a site which addresses one of the Web's biggest problems:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.skipintros.com/"&gt;The pointless opening page.&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-7320687891179450104?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/7320687891179450104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=7320687891179450104' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7320687891179450104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/7320687891179450104'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/02/skip-this-post.html' title='Skip This Post'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-1923612637974102340</id><published>2010-01-24T14:53:00.014-05:00</published><updated>2010-01-24T15:46:08.015-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web page design'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Parsing the Google Calendar XML Feed to Create New Calendars and RSS Feeds</title><content type='html'>&lt;p&gt;
  We use &lt;a href="http://www.google.com/calendar/"&gt;Google's
  Calendar&lt;/a&gt; as part of our &lt;a target="_blank"
  href="http://www.unitedparishbowie.org/resources/calendar.html"&gt;
  church web page&lt;/a&gt;.  It's easy to keep up to date and we don't have
  to install any special calendar software on our server.  It even
  has &lt;a target="_blank"
  href="http://www.google.com/calendar/feeds/upbannounce@gmail.com/public/basic"&gt;
  an extremely sophisticated XML feed&lt;/a&gt;.  OK, the feed is
  considerably shorter, if you
  &lt;a target="_blank" href="http://www.google.com/calendar/feeds/upbannounce@gmail.com/public/basic?orderby=starttime&amp;amp;max-results=5&amp;amp;singleevents=true&amp;amp;sortorder=ascending&amp;amp;futureevents=true"&gt;tweak
  the call a bit&lt;/a&gt;, using &lt;a target="_blank"
  href="http://code.google.com/apis/calendar/data/2.0/reference.html#Parameters"&gt;Google's
  published parameters&lt;/a&gt;.  You can use this feed in an RSS
  aggregator, informing your readers about what's happening in the
  near future.  But this might not be exactly what you want.
&lt;/p&gt;

&lt;p&gt;
  For instance:  It's helpful to have &lt;a target="_blank"
  href="http://www.unitedparishbowie.org/upcoming/"&gt;a web-page listing
  of upcoming events&lt;/a&gt;, or a &lt;a target="_blank"
  href="http://www.unitedparishbowie.org/upcoming/thisweekatupb.php"&gt;customized
  RSS feed&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
  This turns out to be relatively easy to do, if you know the trick,

&lt;a name='more'&gt;&lt;/a&gt;

  with a bit of PHP code.  Let me say right off the top that I didn't
  come up with the PHP code myself, I got it
  from &lt;a href="http://www.ibm.com/developerworks/opensource/library/os-php-xpath/"&gt;P.J. Cabrera&lt;/a&gt;,
  and it's available under &lt;a target="_blank"
  href="http://www.ibm.com/developerworks/apps/download/index.jsp?contentid=270615&amp;amp;filename=os-php-xpath.google-calendar-api.zip&amp;amp;method=http&amp;amp;locale=worldwide:w"&gt;what
  looks to be a pretty open license&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
  So I used Cabrera's script as the starting point to construct to
  scripts:
&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    First, an HTML web
    page, &lt;tt&gt;google_calendar_xml_parse_to_html.html&lt;/tt&gt;, with an
    embedded PHP script which calls a Google calendar XML feed and
    parses it to form a web page that looks &lt;a target="_blank"
    href="http://www.unitedparishbowie.org/upcoming/"&gt;something like
    this&lt;/a&gt;.
  &lt;/li&gt;

  &lt;li&gt;
    Second, a PHP
    script, &lt;tt&gt;google_calendar_xml_parse_to_rss.php&lt;/tt&gt;, which
    parses the Google calendar XML feed to produce an RSS feed that
    looks &lt;a target="_blank"
    href="http://www.unitedparishbowie.org/upcoming/thisweekatupb.php"&gt;like
    this&lt;/a&gt;.
  &lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;
  The scripts are fully, possibly painfully, annotated, so you can see
  exactly what I did at every step.  I'm not going to discuss them
  here, then, but you can add comments below, and I'll address them there.
&lt;/p&gt;

&lt;p&gt;
  Now you'd think I could just provide a link to each of the two
  annotated pages, and you'd get the annotated pages.  This turns out
  not to be the case.  The server will execute the PHP code on each
  page, and then ship XML.  Don't believe me?  Load
  up &lt;a target="_blank"
  href="http://www.unitedparishbowie.org/upcoming/"&gt;the web page&lt;/a&gt;
  and/or the &lt;a target="_blank"
  href="http://www.unitedparishbowie.org/upcoming/thisweekatupb.php"&gt;RSS
  Feed&lt;/a&gt; and look at the source code.  You won't find the PHP code,
  just &lt;q&gt;perfectly&lt;/q&gt; formed XHTML or XML.
&lt;/p&gt;

&lt;p id="download"&gt;
  So I've put both scripts in this
  &lt;br /&gt;&lt;br /&gt;
  &lt;a href="http://www.rcjhawk.us/software/gcal/index.html#download"&gt;
    tar file, &lt;tt&gt;parse_google_calendar.tar&lt;/tt&gt;
  &lt;/a&gt;
  &lt;br /&gt;&lt;br /&gt;
  (Sorry, my free web page server prohibits direct links to non-html pages, and doesn't allow ZIP files.)
  &lt;br /&gt;&lt;br /&gt;
  Download the file, and you can extract both the html
  page, to create a calendar listing, and the php page, to create an
  RSS feed.
&lt;/p&gt;

&lt;p&gt;A few things to note:&lt;/p&gt;

&lt;ul&gt;

  &lt;li&gt;
    Don't forget to change the web addresses, as indicated.  You'll
    also need &lt;a target="_blank"
    href="http://www.google.com/support/calendar/bin/answer.py?hl=en&amp;amp;answer=37648"&gt;your
    Google Calendar address&lt;/a&gt;.
  &lt;/li&gt;

  &lt;li&gt;
    Note that the two files are linked, that is, the HTML page has a
    link to the PHP page, telling the world that the PHP is an RSS
    feed, and the PHP page links back to the HTML page, so that the
    reader can find your web site.  You don't have to put in those
    links, of course.
  &lt;/li&gt;

  &lt;li&gt;
    Of course, this only works if your server can handle PHP, but that
    doesn't seem to be all that much of a problem.
  &lt;/li&gt;

  &lt;li&gt;
    Once the code is uploaded, you can check to be that the HTML page
    validates using the &lt;a target="_blank"
    href="http://validator.w3.org/"&gt;W3C validation service&lt;/a&gt;.
  &lt;/li&gt;

  &lt;li&gt;
    Similarly, you can see if the PHP script creates a valid XML page
    by using the &lt;a target="_blank"
    href="http://validator.w3.org/feed/"&gt;W3C Feed validation
    service&lt;/a&gt;.
  &lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;
  Put all comments below.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-1923612637974102340?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/1923612637974102340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=1923612637974102340' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1923612637974102340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/1923612637974102340'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/01/parsing-google-calendar-xml-feed-to.html' title='Parsing the Google Calendar XML Feed to Create New Calendars and RSS Feeds'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-4650472625956020172</id><published>2010-01-09T10:34:00.000-05:00</published><updated>2010-01-09T10:34:21.042-05:00</updated><title type='text'>You know, 1963-1972 was a decade, too</title><content type='html'>&lt;p&gt;Today's rant is brought to you by the &lt;em&gt;Washington Post's&lt;/em&gt; Weekly &lt;a href="http://www.washingtonpost.com/wp-dyn/content/article/2010/01/08/AR2010010803606_3.html"&gt;&lt;q&gt;Free for All&lt;/q&gt;&lt;/a&gt;.  Now FfA actually has many intelligent and thoughtful comments.  I read it every week.  But FfA has a dark side, as seen at the bottom of the page, where we have yet another writer bemoaning the Post's referring to the ten-year span just ended as &lt;q&gt;the decade&lt;/q&gt;. (It's right above the letter suggesting that the Post is trying to destroy the English language by quoting Gilbert Arenas verbatim.)&lt;/p&gt;

&lt;p&gt;OK, people, listen up: we're going to set up some rules here:&lt;/p&gt;

&lt;p&gt;From now on, there will be two types of Millennia, Centuries, and Decades:  the Pedantic and the common.&lt;/p&gt;

&lt;p&gt;In the Pedantic system, all counting begins at midnight between 1&amp;nbsp;BC and 1&amp;nbsp;AD.&lt;sup&gt;&amp;dagger;&lt;/sup&gt;  Thus a Millennium takes in the years 1-1000, 1001-2000, 2001-3000, &amp;hellip; ; Centuries are 1901-2000, 2001-2100, &amp;hellip; ; Decades are 1951-1960, 1961-1970, &amp;hellip;  These names are capitalized.&lt;/p&gt;

&lt;p&gt;In the common (or vernacular) system, millennia, century, and decade (all lower-case) are defined by the similarity of the digits forming the years.  Thus all the years in a millennium have the same digits except for the last three, in a century all the numbers are the same except the last two, and in a decade only the last digit changes.&lt;/p&gt;

&lt;p&gt;Let's show a few examples, OK?&lt;/p&gt;

&lt;table border="2"&gt;
  &lt;tr&gt;&lt;th&gt;Name of era&lt;/th&gt; &lt;th&gt;Years&lt;/th&gt;&lt;/tr&gt;

  &lt;tr&gt;&lt;td&gt;&lt;strong&gt;First Millennium AD&lt;/strong&gt;&lt;/td&gt; &lt;td&gt;1-1000 AD&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;&lt;strong&gt;First millennium AD&lt;/strong&gt;&lt;/td&gt; &lt;td&gt;1-999 AD&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;&lt;strong&gt;Twentieth Century AD&lt;/strong&gt;&lt;/td&gt; &lt;td&gt;1901-2000 AD&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;&lt;strong&gt;Twentieth century AD&lt;/strong&gt;&lt;/th&gt; &lt;td&gt;1900-1999 AD&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;&lt;strong&gt;First Decade, Twenty-First Century AD&lt;/strong&gt;&lt;/td&gt; &lt;td&gt;2001-2010 AD&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;First decade, Twenty-First century AD&lt;/strong&gt;&lt;/td&gt; &lt;td&gt;2000-2009 AD&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Eleventh Millennium BC&lt;/strong&gt;&lt;/td&gt; &lt;td&gt;11,000-10,001 BC&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Eleventh millennium BC&lt;/strong&gt;&lt;/td&gt; &lt;td&gt;10,999-10,000 BC&lt;/td&gt;&lt;/tr&gt;

&lt;/table&gt;

&lt;p&gt;(Yes, the First millennium, AD or BC, has only 999 years.  Deal with it.)&lt;/p&gt;

&lt;p&gt;If all this bothers you, remember your &lt;em&gt;Sesame Street&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;One of these things is not like the other, one of these things is not the same:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010&lt;/p&gt;

&lt;p&gt;Try explaining that all these years are alike to Big Bird.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;sup&gt;&amp;dagger;&lt;/sup&gt;People giving me a hard time about using BC/AD here will be required to listen to the complete collection of Brit Hume's sermons.  Contact Eldrick Woods for more information.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-4650472625956020172?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/4650472625956020172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=4650472625956020172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4650472625956020172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/4650472625956020172'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2010/01/you-know-1963-1972-was-decade-too.html' title='You know, 1963-1972 was a decade, too'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-2935021109168861388</id><published>2009-12-20T18:43:00.000-05:00</published><updated>2009-12-20T18:43:07.325-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Suburbia'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Snow'/><title type='text'>The Big Snow of 2009</title><content type='html'>&lt;p&gt;You may have heard that the upper East Coast had a rather large storm yesterday.  It wasn't a blizzard, because the winds never picked up as had been expected, but there were record amounts of snow for December.  As best I can judge, given that the large number of trees in our yard disrupt the snowfall, we got 19&amp;ldquo;.&lt;/p&gt;

&lt;p&gt;I've been playing around with the Linux version of &lt;a href="http://picasa.google.com"&gt;Picasa&lt;/a&gt;, Google's photo organizing software, and with &lt;a href="http://picasaweb.google.com/"&gt;Picasa Web Albums&lt;/a&gt;.  I don't claim to be a gifted photographer, but here's &lt;a href="http://picasaweb.google.com/rcjhawk/TheBigSnowOf2009"&gt;a few pictures of the storm and its aftermath&lt;/a&gt;, all taken from our front door.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-2935021109168861388?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/2935021109168861388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=2935021109168861388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2935021109168861388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/2935021109168861388'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2009/12/big-snow-of-2009.html' title='The Big Snow of 2009'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-585565429714727014</id><published>2009-12-19T10:57:00.000-05:00</published><updated>2009-12-19T10:57:56.291-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Suburbia'/><category scheme='http://www.blogger.com/atom/ns#' term='Maryland'/><category scheme='http://www.blogger.com/atom/ns#' term='Snow'/><title type='text'></title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/_WZHLzoZCfRI/Syz24W6Vz3I/AAAAAAAAAXY/T9kIRwmN2f0/s1600-h/snow_1045am.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/_WZHLzoZCfRI/Syz24W6Vz3I/AAAAAAAAAXY/T9kIRwmN2f0/s320/snow_1045am.jpg" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;p&gt;We're in the middle of what promises to be the biggest snow storm Maryland has seen in years.  It will most likely set the December record for snowfall.  We're scheduled to get something between 16 and 24 inches of snow, depending on how long the nor'easter hangs off the coast.  Since it's a nor-easter, that means when the blizzard hits, an hour or two from now, the snow will be blowing east to west, a foreign notion for a Kansas boy like me.&lt;/p&gt;

&lt;p&gt;The picture above was taken about 10:45 am.  I'd estimate 10-12 inches of snow on the ground.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-585565429714727014?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/585565429714727014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=585565429714727014' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/585565429714727014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/585565429714727014'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2009/12/were-in-middle-of-what-promises-to-be.html' title=''/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_WZHLzoZCfRI/Syz24W6Vz3I/AAAAAAAAAXY/T9kIRwmN2f0/s72-c/snow_1045am.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-6542310847730212639</id><published>2009-10-24T11:02:00.003-04:00</published><updated>2009-10-24T11:17:39.572-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogs'/><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><title type='text'>Read More (Please)</title><content type='html'>&lt;p&gt;The &lt;q&gt;&lt;b&gt;Read more &amp;rArr;&lt;/b&gt;&lt;/q&gt; link at the bottom of many front page posts is a Blogger feature that &lt;a href="http://lizcastrohtml.blogspot.com/2009/09/formatting-bloggers-read-more.html"&gt;Liz Castro&lt;/a&gt; alerted me to.  I'll let you go to her page to read all the gory details, but if you use a third-party template be sure to read all the way through to my comment, which tells you how to activate the feature in your blog.&lt;/p&gt;

&lt;p&gt;If you want it.  I'm not entirely convinced it's useful, at least for a blog like this.  True, it lets the casual reader see more articles in less space, but as my &lt;a href="http://www.sitemeter.com/stats.asp?site=s14lntblog"&gt;click logger&lt;/a&gt; quickly shows, most people don't look at this blog every day for the Pulitzer quality prose &amp;mdash; they directly click to a &lt;a href="http://hawknotes.blogspot.com/2005/07/making-transparent-png-images.html"&gt;a specific post&lt;/a&gt; (or &lt;a href="http://hawknotes.blogspot.com/2005/04/linux-firefox-and-rtsp.html"&gt;maybe this one&lt;/a&gt;) because a search engine told them help was at hand.  Those people never see the link, since they automatically see the whole post.&lt;/p&gt;

&lt;p&gt;So tell me, mythical reader of my every word, does that little &lt;q&gt;&lt;b&gt;Read more &amp;rArr;&lt;/b&gt;&lt;/q&gt; link do anything for you?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-6542310847730212639?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/6542310847730212639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=6542310847730212639' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6542310847730212639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/6542310847730212639'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2009/10/read-more-please.html' title='Read More (Please)'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-5866074815898653593</id><published>2009-10-21T15:34:00.006-04:00</published><updated>2009-10-21T18:16:33.243-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web page design'/><title type='text'>RSS Feed Template</title><content type='html'>&lt;p&gt;When we designed the new version of our &lt;a href="http://www.unitedparishbowie.org"&gt;church home page,&lt;/a&gt; we constructed a page where we collect &lt;a href="http://www.unitedparishbowie.org/holland/sermons.html"&gt;sermons.&lt;/a&gt;  It turns out that this page, and the associated sermons, gets hit a lot.  I've been told that the hits match the biblical texts specified by the &lt;a href="http://en.wikipedia.org/wiki/Revised_Common_Lectionary"&gt;liturgical calendar&lt;/a&gt; for upcoming Sundays, which suggests that most of the traffic is pastors looking for sermon ideas.&lt;/p&gt;

&lt;p&gt;Nevertheless, it's useful for a congregation to put its sermons on the web, because, let's face it, the sermon is the biggest chunk of time in a service, and is most likely to give you an idea of the church's, or at least the pastor's, theology.  So we want to publicize the sermons as widely as possible.&lt;/p&gt;

&lt;p&gt;One way to do this is to construct an &lt;a href="http://en.wikipedia.org/wiki/RSS"&gt;RSS Feed&lt;/a&gt;.  Once you have one, people can link to it as, say, a &lt;a href="http://www.mozilla.com/en-US/firefox/livebookmarks.html"&gt;Live Bookmark&lt;/a&gt;, or with a &lt;a href="http://en.wikipedia.org/wiki/Aggregator"&gt;feed aggregator&lt;/a&gt;.  You can also export the feed to other sites.  For example, we've set up a &lt;a href="http://upbupdate.blogspot.com/"&gt;church newsletter blog&lt;/a&gt;, and you'll see the titles of the last few sermons on the right-hand side.&lt;/p&gt;

&lt;p&gt;Setting up an RSS feed isn't all that hard.  I was able to do it using the prescription in Elizabeth Castro's &lt;a href="http://www.elizabethcastro.com/html6ed/"&gt;&lt;em&gt;HTML, XHTML &amp;amp; CSS&lt;/em&gt;&lt;/a&gt;, with a few modifications needed to get the thing to &lt;a href="http://validator.w3.org/"&gt;properly validate&lt;/a&gt;.  I'm putting a template for the feed reader here, as much for my use as anyone else's:&lt;/p&gt;

&lt;a name='more'&gt;&lt;/a&gt;

&lt;pre&gt;

&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;

&amp;lt;rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"&amp;gt;

&amp;lt;channel&amp;gt;

&amp;lt;title&amp;gt;Feed Title&amp;lt;/title&amp;gt;

&amp;lt;!-- Link to feed homepage: --&amp;gt;

&amp;lt;link&amp;gt;http://www.5553456.com/index.html&amp;lt;/link&amp;gt;

&amp;lt;!-- Address of this RSS file: --&amp;gt;

&amp;lt;atom:link href="http://www.5553456.com/rssfeed.xml" rel="self" type="application/rss+xml" /&amp;gt;

&amp;lt;description&amp;gt;This is where you put a description of your feed.&amp;lt;/description&amp;gt;

&amp;lt;!-- It's in English (or whatever) --&amp;gt;

&amp;lt;language&amp;gt;en&amp;lt;/language&amp;gt;

&amp;lt;!-- Email address --&amp;gt;

&amp;lt;webMaster&amp;gt;webmaster@5553456.com&amp;lt;/webMaster&amp;gt;

&amp;lt;!-- Copyright notice --&amp;gt;

&amp;lt;copyright&amp;gt;Copyright 2009 by Joe Shlabotnik. All Rights Reserved.&amp;lt;/copyright&amp;gt;

&amp;lt;!-- Categories for this feed --&amp;gt;

&amp;lt;category&amp;gt;Dummy 1&amp;lt;/category&amp;gt;

&amp;lt;category&amp;gt;Dummy 2&amp;lt;/category&amp;gt;

&amp;lt;!-- Publication date of last blog entry --&amp;gt;

&amp;lt;!-- Note the syntax on all dates --&amp;gt;

&amp;lt;pubDate&amp;gt;Sun, 11 Oct 2009 18:00:00 EDT&amp;lt;/pubDate&amp;gt;

&amp;lt;!-- When you actually built the thing --&amp;gt;

&amp;lt;lastBuildDate&amp;gt;Mon, 12 Oct 2009 12:40:00 EDT&amp;lt;/lastBuildDate&amp;gt;

&amp;lt;!-- How long until the next update (minutes) --&amp;gt;

&amp;lt;ttl&amp;gt;1440&amp;lt;/ttl&amp;gt;

&amp;lt;!-- Individual Entries.  Repeat as Necessary --&amp;gt;

&amp;lt;item&amp;gt;

&amp;lt;!-- Address of article: --&amp;gt;

  &amp;lt;link&amp;gt;http://www.5553456.com/article.html&amp;lt;/link&amp;gt;

  &amp;lt;title&amp;gt;Article Title&amp;lt;/title&amp;gt;
   
  &amp;lt;description&amp;gt;
    Description of the article, as shown in an RSS reader.  Note that this can be the entire article, if you're so inclined.
  &amp;lt;/description&amp;gt;

&amp;lt;!-- Permanent address of article.  In most cases this will be the same as the link above --&amp;gt;

  &amp;lt;guid isPermaLink="true"&amp;gt;http://www.5553456.com/article.html&amp;lt;/guid&amp;gt;

&amp;lt;!-- Publication date of this article --&amp;gt;

  &amp;lt;pubDate&amp;gt;Sun, 11 Oct 2009 18:00:00 EDT&amp;lt;/pubDate&amp;gt;
 
&amp;lt;!-- finish it up --&amp;gt;

&amp;lt;/item&amp;gt;

&amp;lt;!-- And after all the items, close out the file --&amp;gt;

&amp;lt;/channel&amp;gt;

&amp;lt;/rss&amp;gt;

&lt;/pre&gt;

&lt;p&gt;Fill in the blanks, add a new &amp;lt;item&amp;gt; &amp;lt;/item&amp;gt; for each entry in your feed, and you're ready to go.&lt;/p&gt;

&lt;p&gt;Well, not quite.  You'll note that if you go to the &lt;a href="http://www.unitedparishbowie.org/holland/sermons.html"&gt;sermon page&lt;/a&gt;, there's a little icon on the address bar that indicates a live bookmark/RSS feed is available for that page.  To get Firefox/IE/etc. to do this, you need to put a line such as:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;link rel="alternate"
type="application/rss+xml"
title="Our RSS Feed"
href="http://www.5553456.com/rssfeed.xml" /&amp;gt;
&lt;/pre&gt;

&lt;p&gt;in your HTML file.  Then the browser will know that a feed is available.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6230347-5866074815898653593?l=hawknotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hawknotes.blogspot.com/feeds/5866074815898653593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6230347&amp;postID=5866074815898653593' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/5866074815898653593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6230347/posts/default/5866074815898653593'/><link rel='alternate' type='text/html' href='http://hawknotes.blogspot.com/2009/10/rss-feed-template.html' title='RSS Feed Template'/><author><name>rcjhawk</name><uri>http://www.blogger.com/profile/05775355479914145966</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WZHLzoZCfRI/TAPIoeTDrPI/AAAAAAAAAwk/bUDjOM7aaqo/S220/pengjay_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6230347.post-4241683111062454311</id><published>2009-10-15T22:16:00.008-04:00</published><updated>2011-06-05T19:37:42.699-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Baseball'/><title type='text'>Doubly Bad Seasons</title><content type='html'>&lt;p&gt;At the end of this season, the Washington Nationals finished as the worst team in baseball, with a record of 59-103 (0.364).  To add insult to injury, the Baltimore Orioles finished as the worst team in the American League, 64-98 (0.395).  So if you had the misfortune to watch all the Orioles and Nationals games on MASN, you saw a combined record of 123-201 (0.380).&lt;/p&gt;

&lt;p&gt;This set me to wondering how bad this really is.  In most two-team markets, when one team is up, the other one is down, right?  Well, not always.  I went looking through the season standings in &lt;a href="http://www.retrosheet.org/"&gt;Retrosheet&lt;/a&gt;, searching for two teams in the same market that finished at the bottom of the division.&lt;/p&gt;

&lt;a name='more'&gt;&lt;/a&gt;

&lt;p&gt;For our purposes, I defined a &lt;q&gt;market&lt;/q&gt; as two teams close enough together so that TV viewers could watch both teams over the air, even if TV didn't exist in the year in question.  Thus we include Baltimore/Washington, Los Angeles/Anaheim, and San Francisco/Oakland, not to mention Chicago/Chicago, and, historically, St. Louis/St. Louis, Boston/Boston, and New York/New York/Brooklyn.&lt;/p&gt;

&lt;p&gt;The table below shows all the years I found two teams in the same market being at the bottom.  You'd think divisional play would have increased the chances for this sort of thing, but in 40 years it has only happened three times, and neither Baltimore 2008 nor San Francisco/Oakland 1995 were at the bottom of their respective leagues, only their divisions.&lt;/p&gt;

&lt;p&gt;Looking at this list, I begin to understand why Philadelphia fans have a reputation for being so mean.&lt;/p&gt;

&lt;table summary="Worst Markets for Baseball" border="2"&gt;
&lt;tr&gt;&lt;th&gt;Year&lt;/th&gt; &lt;th&gt;Worst Team&lt;/th&gt; &lt;th&gt;W&lt;/th&gt; &lt;th&gt;L&lt;/th&gt; &lt;th&gt;Pct.&lt;/th&gt; &lt;th&gt;Other Team&lt;/th&gt; &lt;th&gt;W&lt;/th&gt; &lt;th&gt;L&lt;/th&gt; &lt;th&gt;Pct.&lt;/th&gt; &lt;th&gt;Tot. W&lt;/th&gt; &lt;th&gt;Tot. L&lt;/th&gt; &lt;th&gt;Pct.&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1919&lt;/td&gt; &lt;td&gt;Ph
