Mark Twain Highway

Posted on March 2nd, 2010 in Uncategorized | No Comments »

I’ve been a tepid-to-moderate St. Louis Cardinals fan since I was a kid, and lived in St. Louis during the Mark McGwire (freak)show.  I still follow them from time to time, probably more than any other professional sports team.  It’s not that I’m unsympathetic to sports pride, it’s just not something I’m passionate about.

I was actually passionately angry when the following silly injustice was done, and I’m glad to see it might be undone:

Missouri Senate votes to rename McGwire Highway (Yahoo Sports/AP)

The Missouri Senate wants to take away Mark McGwire’s highway. A stretch of Interstate 70 in St. Louis was designated the Mark McGwire Highway in 1999, one year after the Cardinals slugger hit a then-record 70 home runs. But McGwire has now admitted he used steroids, and the state Senate voted unanimously Monday to rename the section of interstate the Mark Twain Highway.

For me, it was always an easy call.  Literary Hero and American Treasure vs. Guy Who Hits Ball.  Seems simple, especially when the road is already named after the Literary Hero and American Treasure.

But then it’s Guy Who Hits Ball With Faux-Musculature?  We must act!!!

Whatever it takes, I guess.

Shady Might Be Four

Posted on February 11th, 2010 in Dogs | 5 Comments »

Yesterday was the day we decided to call Shady’s birthday. She’s considered four, though she’s really a Permanent Puppy, and those are ageless.

Shady has a sweet face

One year ago yesterday, we miraculously got her back after this sequence of events:

  • Horrible life with previous owner (she lived under a bed for a year)
  • Return to the Humane Society
  • A couple of months alone in a visiting room with little attention (the main kennel was too stressful)
  • Nine days as a foster dog with Molly and Tess
  • Twelve hours placed with a potential adoptive home
  • One stupid decision by that potential adoptive home to put a special needs dog alone in a backyard with a crappy fence
  • Three weeks on the street in and around Cooper-Young in below-freezing temperatures, apparently including a few trips to some truly scary neighborhoods
  • A heart-stopping moment where we followed up a great tip from someone who saw one of our 200 signs and we actually laid eyes on her
  • A frustrating couple of hours of being chased by us and neighborhood kids around train tracks and abandoned scrap yards (she was too scared and freaked out to come to us)
  • Three days of being actively hunted by us around the clock
  • A full-on canvassing effort by several generous Humane Society dog-walking colleagues to locate and help catch her
  • Me seeing her cornered in a mess of scrap metal, climbing down in there, picking her up, and handing her to Molly

And now, she’s a wonderful, happy, well-adjusted snugglepuppy.  Her meds certainly help, as does being part of a pack in a protective and loving environment. She sleeps between the pillows in her puppy pocket, she snores and grunts and yawns like a beagle, she chases Tess around a huge (and extremely secure) backyard, and most of all, she truly seems to enjoy her life.

A life that started all over, one year ago yesterday.

Photos: Steven Bryant

I Did Not Know: pbzip2

Posted on February 4th, 2010 in Technical | Comments Off

I just learned about pbzip2, which lets your multicore computer use more than one core when using the bzip2 compression algorithm.

On my Mac Pro at work, I installed it with MacPorts (`sudo port install pbzip2`).  It is this kind of awesome:


$ ls -lh original.tar
-rw-r--r-- 1 jmcmurry staff 2.4G Feb 4 13:47 original.tar
$ time bzip2 -k -v original.tar
original.tar: 36.215:1, 0.221 bits/byte, 97.24% saved, 2604288000 in, 71911733 out.

real 13m3.313s
user 12m50.536s
sys 0m3.773s
$ mv original.tar.bz2 bzip2.tar.bz2
$ time pbzip2 -k -v original.tar
Parallel BZIP2 v1.0.5 - by: Jeff Gilchrist [http://compression.ca]
[Jan. 08, 2009] (uses libbzip2 by Julian Seward)

# CPUs: 8
BWT Block Size: 900k
File Block Size: 900k
-------------------------------------------
File #: 1 of 1
Input Name: original.tar
Output Name: original.tar.bz2

Input Size: 2604288000 bytes
Compressing data...
-------------------------------------------

Wall Clock: 119.369207 seconds

real 1m59.612s
user 14m39.090s
sys 0m44.840s

Sweet. 6.57x faster by adding a “p” to my command line.

The resulting compressed .bz2 files aren’t exactly the same according to md5 (the pbzip2 output is a little larger, which makes sense due to the splitting of the work), but when they decompress, they’re both identical to the original .tar file.

See also: mgzip.

The Fish

Posted on January 7th, 2010 in Home | Comments Off

We have a small fish pond built into the patio in the backyard, with four small koi therein, mandatorily adopted when we bought the house. I have named them:

  • Spot is orange with a single white spot on his back.
  • Whitey is solid white.
  • Big Man is solid orange and bigger than Shrimp.
  • Shrimp is solid orange and smaller than Big Man.

I have determined using all available evidence (specifically, my imagination) that they’re all boys.  Give me a break: I’m already outnumbered five to one.

As you may know, it’s cold in Memphis at the moment and getting colder.  Tonight’s forecast low: 11°.  I have therefore decided to freak out about the health and safety of these small slimy wriggly fellas, all of whom have zero interest in me other than Getting Away and Hiding.

The pump is frozen, and there’s a 1″ thick sheet of ice on the top, but the water underneath is fine.  I know this because I just did some reading and decided to pour a few saucepans of hot water onto the side of the pond to melt the ice, allowing a bit of oxygen in and toxic stuff out.

No sign of fish, but hopefully they’re smarter about what they need than I am. I’ll be out there this weekend when (if) it’s above freezing to see what the deal is.  I’ll pretend that under the rock structure in the middle, they have a little fish dude party pad with a bar, leather armchairs, and a big TV.  And a heater.

Meanwhile, there will be lots of snugglepuppy indoors to keep all the warm-blooded warm.

Pearl’s Birthday

Posted on September 16th, 2009 in Dogs | Comments Off

Mama dog is reckoned to be 10 today.  She’s the boss.  She still acts like a puppy.

Why do we call her Peach?  Because she’s round and fuzzy and all sweet on the inside.

Mac OS X 10.6 Automator Services: Awesome

Posted on September 14th, 2009 in Technical | Comments Off

I’ve been enjoying how Automator in Mac OS X 10.6 lets you easily create services for simple little annoying things.  I expect it’ll take about three times longer to write about what I just did than it did to actually do it.

I’m always writing emails containing computer hostnames, and sometimes I want to include the full DNS name and IP address in those emails.  That’s especially handy when you’re writing about firewall rules, as I just was.

I created this simple Automator Service workflow in about 60 seconds.

When I select some text in a text editor and run this Service (context click, select the Service name), this happens:

“foo” -> “foo.domain.com [192.168.1.200]”

A few notes:

  1. “Get Specific Text” is grayed out because it’s disabled.  As you’ll find when writing Automator Services, you have to have some dummy text available to substitute for the selected text when developing your workflow.  You just disable this when you save the Service.  Easy, but confusing if you don’t know what’s going on.
  2. Be sure to check “Replaces selected text” at the top.  That means whatever you have selected in your text editing window will be replaced with the output of this script.
  3. Be sure to change “Pass input” in the “Run Shell Script” task to “as arguments”.  That makes $1 become your selected text.
  4. There is zero error checking.  You will probably blow up your computer and the Internet.

It actually took much longer to write this post, especially because WordPress didn’t want to create an image link for me.  Thanks, WordPress!

DSL Outage

Posted on August 30th, 2009 in Home | Comments Off

I lost my DSL service for the weekend. I’ve performed a highly professional root cause analysis and present the following conclusion:

A big ass chunk of tree fell down and took my phone line with it.

The Vet

Posted on June 1st, 2009 in Dogs | Comments Off

Two different approaches to a vet visit.

Solaris 10 u6 has no “-u” on “zfs receive”

Posted on April 30th, 2009 in Technical | Comments Off

Despite what you might read at docs.sun.com, Solaris 10 update 6 doesn’t have a “-u” option for `zfs receive`.

jmcmurry@lemon $ cat /etc/release
Solaris 10 10/08 s10s_u6wos_07b SPARC
Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 27 October 2008
jmcmurry@lemon $ zfs receive -u
invalid option 'u'

This could’ve been brought to my attention before I decide to create my ZFS export streams recursively.  One at a time, I’d have been fine.  What seemed to be an awesome way to retrofit a metadata slice for an SVM volume into a whole disk ZFS root install turned out to be a miserable trail of heartache and pain.

But I can take it; I am a Unix guy.

UPDATE: “-u” seems to be in Solaris 10 update 7, but even there, it’s not in the man page for zfs(1M). Thanks so much for updating the docs without indicating that the “recover your root storage” function only works on the OS release that you made available for download today.

/grrr

Moving a Solaris 10 zone

Posted on March 19th, 2009 in Technical | Comments Off

Today I wanted to move a Solaris 9 zone running on a Solaris 10 test server to a new ZFS dataset within the same ZFS pool with compression enabled. This container is an archive of an environment we don’t use very much, normally leave shut down, and intend to delete fairly soon, but since it’s a flash archive of a Solaris 9 machine, it takes up a lot of space on the test system’s local disks.

First I created the new dataset:

# zfs create rpool/zones
# zfs set mountpoint=/zones rpool/zones
# zfs create rpool/zones/foo
# zfs set compression=on rpool/zones/foo

I thought I should halt the zone, update the zonepath property for the zone, move the files to the new place, and start up the zone.  Nope:

zonecfg:foo> set zonepath=/zones/foo
Zone foo already installed; set zonepath not allowed.

Great, now I’m going to have to search through a bunch of docs and maybe remove the zone and redo it all and why can’t they make this easy for me, argh.

Well, they did:

# zoneadm -z foo move /zones/foo

I like a lot of the changes in Solaris 10, especially the usage and man pages for things like zfs(1M). These commands tend to do the annoying things for you and the man pages have lots of examples. Nice.

And hey:

# zfs get compressratio rpool/zones/foo
NAME PROPERTY VALUE SOURCE
rpool/zones/foo compressratio 1.44x -