All posts by Rick

I'm living in rural Florida (USA) with my wife, son, two cats, and quite a few computers. I actively work in several areas of interest but still find time to manage several websites, execute home improvements, ride the Harleys, and play with cool toys. I'm reasonably fit for an Old Guy, equally comfortable wielding a keyboard, torque wrench, or spatula. I've got a scary-low tolerance for bullshit.

Supercharging the Stratocaster

I’ve got a Fender Stratocaster, one of the infamous “Splatter Stats“. Purely stock except for the strings, it’s always had a couple of quirks that I’ve wanted to address. It’s time.

I use Ernie Ball Super Slinky strings and the G string in particular has always sounded a bit on the dull side. It’s because of the way the string passes through the nut. One can brighten up the open string by dampening it a little between the nut and the tuning peg (but it’s inconvenient to play that way). I keep the tremolo bridge free-floating, which makes tuning somewhat more challenging. I don’t use the whammy bar but I sometimes ‘wobble’ the sound with my palm on the bridge. Once in tune it tends to stay in tune but lots of bendy work will tend to detune the bendy string. I chalk that one up to string friction.

Graph Tech makes what they call a Supercharger Kit that seemed like just the ticket. [addendum June 2013: Graph Tech has revised their product numbering and web site since this post was written. The link to the kit now points to the updated product. The biggest apparent difference is that my string trees are black with squared-off corners. They probably have a little more string contact.] [updated again November 2019: They’ve gone and changed their website again, so the link is updated. Here’s the part number I used: PN-8000-00] The kit includes a set of saddles, a replacement nut and nut blank, and string trees. The kit also includes an Allen key for setting string height, some emery paper for nut shaping, plus instructions. Oh, yeah, and a pick. You can read about their claimed benefits on their Web site.

The Graph Tech parts that contact strings are made of a material that promises to self-lubricate, leading to less string breakage according to their literature. I was hoping that by reducing friction, bends would return to original tune more consistently. Finally, others on the net had mentioned my preferred strings when discussing the Graph Tech nut. My shop isn’t equipped for cutting new nuts. I don’t want to invest in a set of seldom-used nut files so the closer I get to a stock nut the better.

The work is easy, but quite a bit of setup is necessary after swapping the parts around. If you’re not comfortable setting string heights and intonation then you’ll be better off having your tech do the work instead. If the setup is incorrect your instrument will sound bad. Very bad.

Mexican Splatter Stratocaster

Here’s my Strat on the floor ready for supercharging, using the kit of parts shown. You can click these images for a better look.

Stock saddles removed, new parts ready.

The stock saddles have been removed and the Graph Tech parts are ready for installation. The instructions tell you to remove the strings but I wanted to keep them a little longer; I only changed them a week ago. Since they were all loose, though, this was an excellent opportunity to clean the fretboard and other areas that aren’t often so fully exposed. (When I change strings I change them one at a time in order to keep the neck tension reasonably constant.) So these won’t be seated right and I expect setup will be harder that it would be with new strings. So it goes.

Graph Tech saddles installed.

Graph Tech saddles installed, though obviously not adjusted. Some say the black parts don’t look as good as the stock chrome but I disagree.

Stock nut removed.

The stock nut removed. I was ready for battle but mine literally fell out with a little bit of thumb pressure. Normally you’ll want to score the lacquer around the nut with a sharp Xacto blade so it doesn’t crack. This could explain why I’ve always felt the nut was just a tad low; the shop may have modified it before selling it. (Or, maybe what was sold as new was actually a return that had been set up?) According to the serial number, the guitar I bought August 14, 2004 was built in the Ensenada, Mexico plant in 2003-2004.

Stock and Graph Tech nuts.

Here are the stock and Graph Tech nuts. Note the tab on the Graph Tech – some Strats have a receiver for that tab and some don’t, I’m told. The string slots are not as deep. The new nut is a little longer than stock; I needed to remove the tab and shorten it a little, removing equal amounts of material from each side. It was easy do do using the emery included in the kit.

Tool setup for tab removal.

In the shop, a Dremel tool held by the rubber-jawed vise next to the lathe made the work of removing the tab easy. After the tab was removed, the thickness of the nut was reduced by hand to make for a snug fit in the nut slot. Then the bottom of the nut was reduced – by hand, a little bit at a time, tuning to pitch in between – to set the nut height. The supplied instructions give a good starting point but I set it a little on the high side. I’m conservative that way, figuring I can always lower the nut in the future. Raising the nut means ordering a new one and starting again.

Finished headstock.

The nut’s in place and you can see the new string trees as well. Yes, now there are two string trees! What’s not evident in the photo (my bad) is that the trees are different heights. The bottom one’s shorter and guides the high E and B strings – exactly like the stock tree. Graph Tech supplies a second, taller tree in the kit. I thought about it for a long time before placing it as I did. The additional tree guides the G string but isn’t low enough to touch the B string at all. I didn’t want the tree to touch the D string because I felt it would make the nut-to-tree angle too severe. I’m not sure how the extra tree will hold up long term, guiding only one string, but we’ll see. I drilled the pilot hole for the new screw with a 0.058-inch bit chucked in a hand drill.

Modifications complete.

Here’s the finished product. You can see the black replacement parts and the extra string tree. The setup and intonation are roughed in, good enough to start playing. I know me – it’ll a period of time of adjusting to get it just the way I like it – and I may need to further lower the nut – but so far it looks like a huge success!

The instrument tunes easier and stays in tune better despite long bends. The G string now rings true! The overall sound is decidedly different. The unamplified sound is louder and brighter. Amplified, you immediately notice the increased sustain.

Forward Into The Past

Some music is timeless. My son – he’s 17 now – likes the Beatles. No matter that the band broke up when I was in middle school! Well, as it turns out we’ve got quite a few Beatles LPs (er, vinyl records, those plastic things with the grooves that played music for us old farts) in our collection down in the basement. It was time to do some conversion and put this stuff on his iPod.

I started to research those USB turntables that promise to quickly and easily turn LPs into MP3s and found them lacking. Well, at least those in the range I was willing to spend. Frankly, the hardware I was finding sported specs that kinda sucked, mostly because of the included cartridge.

LP Digitizing Workstation
My basement LP digitizing workstation, Ethernet cable dangling from the floor joists above. That's the back of my furnace in the background and the handle of a 1 KW floodlight leaning against the desk. Also visible is a Discwasher kit to the left of the Beatles' Magical Mystery Tour LP. Bought new for 99 cents during the summer between grammar school and middle school, that was the very first record I ever bought.

I still have an old (but still kinda nice) turntable. Sony, Decent magnetic cartridge, linear-tracking, not too bad. I even have an Onkyo receiver that has a built-in phono pre-amp. That’s a bit of a rarity in receivers nowadays, as the need for one has pretty much gone away. I hauled out the gear and did some testing as I pondered the reality that was sinking into my head…

Analog music – turntables and vinyl records – have all but gone away. Some DJs still use them for mixing stuff but even that’s largely going away, leaving only the quote-audiophiles-unquote. And it’s a given that whenever a market targets a group labeled with some word that ends in phile you can add a zero or two to the price on any related gear. Wow.

I found my old audio gear to be in perfect working order, a testament to decent care while in storage. On to the computer. From parts, I thew together something to handle the digitizing chore: A 1 GHz Celeron box; all of 256 MB RAM; a 250 GB hard drive; Soundblaster PCI 512 card; Windows XP; an ancient program, CDWAV, I think it came with an ancient version of Cakewalk Pyro. Yeah, that ought to do it.

The setup makes uncompressed WAV files: PCM, 2 16-bit channels, sampled at 44,100 Hz. I pull the files up to my desktop and use Nero to correct out the clicks and pops, separate the tracks and burn a standard audio CD. Then use iTunes to import the CD to MP3. The intermediate CD saves the analog-to-digital and cleanup work, the most labor-intensive part of the process. The CDs, BTW, are in most cases good enough to allow iTunes (Gracenote, actually) to figure out the album/song titles.

My digital library is now experiencing steady growth.

Super Bowl

It’s Super Bowl Sunday. I fact, the halftime show is on as I write. It’s amazing how poor some of the acts sound when they’re not in the studio. Even with all the cool stuff the engineers can do with live performances nowadays.

To say I’m not a football fan doesn’t come anywhere even near the truth of the matter. I don’t understand the game. The rules, the language, it all baffles me. No matter how many times someone tries to explain WTF a down is… And by what logic there can be more than one of them called first… I dunno, I just don’t get it. (And no, that’s not an invitation to try to educate me. I’m perfectly happy in my football ignorance.)

But today – game day – was great. I spent the morning and part of the afternoon robot building. Then I went to the gym. Had a great workout, no waiting for anything; the place was empty! Everyone readying themselves to watch the game, I guess. Driving around, the roads were empty. Later I did some grocery shopping. Again, empty. I got a lot done and no waiting to check out.

Hmmm, I guess I’m a fan after all! But probably not for the right reasons.

Hey, didja know that today’s also National Porn Sunday? That’s “the chance to bring hope to those who are struggling with pornography.” [shrug] Haven’t seen any commercials for that. Porn is big business, but I guess xxxchurch.com and their friends can’t afford it.

Super Bowl advertising probably represents the most expensive access to eyeballs in existence. Haven’t seen anything really, really outstanding yet this year, though I can’t say I’ve seen ’em all. In a couple of days, when the servers aren’t being pounded so bad, I’ll set aside an hour and watch ’em all. Purely for entertainment value, mind you.

Resource Contribution

Astute repeat visitors may have noticed the new Spamstains page. Let me explain.

Like everyone else, this blog receives an astounding amount of spam. Doesn’t matter much, really; the tools running tirelessly in the background do a pretty good job of culling the junk. But like a grease trap in a fast food restaurant kitchen the spam traps need periodic purges. It’s a dirty job but someone’s got to do it.

The new page collects some of the best fragments of spammy junk I run across in that cesspool. Besides the obvious giggly entertainment value I’ve actually found a perfect use for the material.

Ever get an unwelcome telemarketer call? Sure you have. Ever at a loss for how to respond? The job just got easier. All you need to do is access the Spamstains page and read aloud from it to your intruder.

Better than simply hanging up, you can waste their time just like they waste yours. And it requires no thought or creativity on your part, for my spammers have taken care of that for you!

You’re welcome.

Hailey’s Harp and Pub

Last night I attended the first annual whiskey tasting at Hailey’s Harp and Pub. It was a huge success!

Pam still reads a pulp newspaper and it was there that she spotted the ad. She thought that our friend Will (also a whiskey enthusiast) and I might enjoy the nearby event and offered to drive. (Can’t beat that, right?)

About 30 of us convened in a back room of the pub to eat, sample whiskeys and converse with Whiskey Master Kevin Loser. Our host (and pub owner) Chris got the evening going with a few stories and jokes while the first of some 7 whiskeys were poured. Kevin took over and began with a high-level description of different whiskey types and common distillery operations. Each new pour was introduced with a great deal of detail. Between tastings, plates of finger foods appeared, prepared by chef Johnny O’ to compliment that particular whiskey. Delicious!

I already had varying degrees of familiarity with most everything we tasted, save one – the Redbreast. The 12-year-old didn’t impress me but it was followed by the 15-year-old which was simply outstanding. A triple-distilled pure pot still whiskey is unique. A Web search will bring you lots more information about the whiskey.

The pace of the event was good. The hours passed quickly and afterward we had a pint in the pub proper, taking in some live music. Chris spent some time hangin’ with the three of us, talking. (Nice touch, spending time with the noobs.) He runs a nice hands-on operation and customers know him by name. The house was packed – normal, I’m told.

Hailey’s has a great atmosphere, everyone made us feel welcome. It’s someplace I’ll definitely try to visit more often. Besides, I want to explore their menu.

Communicating With The Outside World

I recently set out to upgrade a virtual host server from VMware Server to Oracle’s VirtualBox. The upgrade was a huge success. This is one of several articles where I talk about various aspects of that upgrade, hopefully helping others along the way. You might want to go back and read the introductory article Virtualization Revisited. Added 5-May-2011: Originally written using Ubuntu Server 10.04, this configuration also works without change on Ubuntu Server 11.04.

One of the things that I wanted from the new VM host was alerts for anomalous situations. Manually polling for trouble begins as a noble effort but trust me – after a while you’ll stop looking. About a year ago I was almost caught by a failing hard drive in a RAID array. Even after that incident, within a month or two I had pretty much stopped paying regular attention.

While setting up monitor/alert mechanisms on an old Windows server is quite the pain in the ass it’s a snap on Linux. Delivery of alerts and status reports via email is just perfect for me. All I wanted was the ability to have the system generate SMTP traffic; no messages would ever be received by the system. To prepare for that I set up a send-only email account to use the SMTP server on one of my domains solely for the VM host’s use as a mail relay. Then I got on with configuring Postfix, the standard Ubuntu mailer – one of several excellent sendmail alternatives.

Now maybe I’m just a dummy, but I found various aspects of the Postfix and related configurations to be a little tricky. Hence this article, which details what worked for me – and should work for you, too.

(In the stuff that follows, my example machine is named foo and it’s on an internal TLD called wan. My example machine’s system administrator account is sysadmin. My SMTP server is on mail.example.com listening on port 1212. The SMTP account is username with a password of yourpassword.)

Getting Started – Basic Configuration

Begin by installing Postfix, as you would any package.

$ sudo apt-get install postfix

For now, just hit Enter through the install questions. We’ll configure it properly following the install. You’ll be asked for the general type of mail configuration and Internet Site will be the default. Accept that by pressing Enter. You’ll be asked for the System mail name and something will probably be pre-filled. Accept that, too.

Now, go back and do a proper basic configuration.

$ sudo dpkg-reconfigure postfix

Several questions will follow. Here’s how to respond.

For the general type of mail configuration choose Internet Site.

Set the domain name for the machine. The panel provides a good explanation of what’s needed here, and chances are good that it’s pre-filled correctly. By example, foo.wan.

Provide the username of the system administrator. The panel provides a good explanation of what’s needed here. Use the name of the account that you specified when you installed Ubuntu. By example, sysadmin.

Provide a list of domains for which the machine should consider itself the final destination. The panel provides an OK explanation and it’s probably already pre-filled more-or-less correctly. But look carefully at the list that appears in the panel and edit it if it has obvious errors like extra commas. Again, using my example machine, a list like this is appropriate:

foo.wan, localhost.wan, localhost

You’ll be asked whether or not to force synchronous updates on the mail queue. Answer No, which is likely the default.

Next, specify the network blocks for which the host should relay mail. This entry is pre-filled based on the connected subnets. Unless you’ll be using an external SMTP server that requires it, you can simply remove all of the IPv6 stuff that appears here, leaving only the IPv4 entry which will probably look something like this:

127.0.0.0/8

Specify the mailbox size limit. The default is zero, meaning no limit. Accept that. Remember, all we’re planning to do is send mail, not receive it.

Set the character used to define a local address extension. The default is +. Accept it.

Choose the Internet protocols to use. Again, keeping with our earlier IPv4 decision select ipv4 from the list and accept it.

That’s it for the basic Postfix configuration! Next you’ll configure Postfix to do SMTP AUTH using SASL (saslauthd).

SMTP AUTH using SASL (saslauthd)

Since there are several commands to issue as root it’s convenient to sudo yourself as root to save some typing. Good practice dictates you should logout the root account just as soon as you’re finished.

Be careful. In this list of commands there is one – it sets smtpd_recipient_restrictions – that is quite long and may have wrapped on your display. Be sure to issue the entire command.

$ sudo -i
# postconf -e 'smtpd_sasl_local_domain ='
# postconf -e 'smtpd_sasl_auth_enable = yes'
# postconf -e 'smtpd_sasl_security_options = noanonymous'
# postconf -e 'broken_sasl_auth_clients = yes'
# postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
# postconf -e 'inet_interfaces = all'
# echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
# echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf

Then press ctrl-D to logout the root account.

The next step is to configure the digital certificate for TLS.

Configure the Digital Certificate for TLS

Some of the commands that follow will ask questions. Follow these instructions and answer appropriately, modifying your answers to suit your situation. As earlier, sudo yourself to root and logout from root when finished.

$ sudo -i
# openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

You’ll be asked for the smtpd.key passphrase. Enter one and remember it. You’ll need to type it twice, as is customary when creating credentials. Then continue.

# chmod 600 smtpd.key
# openssl req -new -key smtpd.key -out smtpd.csr

You’ll be asked for your smtpd.key passphrase. Enter it.

Next you’ll be asked a series of questions that will make up a Distinguished Name, which is incorporated into your certificate. There’s much you can leave blank by answering with a period only. Here’s a sample set of responses (underlined) based on my US location and example system.

Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Texas
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (eg, YOUR name) []:Rick
Email Address []:sysadmin@foo.wan
A challenge password []:some-challenge-password
An optional company name []:.

Then continue.

# openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt

You’ll be prompted for your smtpd.key passphrase. Enter it.

Then continue.

# openssl rsa -in smtpd.key -out smtpd.key.unencrypted

You’ll be prompted for your smtpd.key passphrase. Enter it.

Then continue.

# mv -f smtpd.key.unencrypted smtpd.key
# openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

You’ll be asked for a PEM passphrase. Enter one and remember it. You’ll need to type it twice, as is customary when creating credentials.
Like earlier, you’ll be asked a series of questions that will make up a Distinguished Name, which is incorporated into your certificate. There’s much you can leave blank by answering with a period only. Here’s a sample set of responses (underlined) based on my US location and example system.

Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Texas
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (eg, YOUR name) []:Rick
Email Address []:sysadmin@foo.wan

Next, issue the remaining commands.

# mv smtpd.key /etc/ssl/private/
# mv smtpd.crt /etc/ssl/certs/
# mv cakey.pem /etc/ssl/private/
# mv cacert.pem /etc/ssl/certs/

Then press ctrl-D to logout the root account.

Whew! We’ll continue by configuring Posfix to do TLS encryption for both incoming and outgoing mail (even though we’re only planning on sending mail at this point).

Configure Postfix to Do TLS Encryption

As earlier, sudo yourself to root and logout from root when finished.

$ sudo -i
# postconf -e 'smtpd_tls_auth_only = no'
# postconf -e 'smtp_use_tls = yes'
# postconf -e 'smtpd_use_tls = yes'
# postconf -e 'smtp_tls_note_starttls_offer = yes'
# postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key'
# postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt'
# postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
# postconf -e 'smtpd_tls_loglevel = 1'
# postconf -e 'smtpd_tls_received_header = yes'
# postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
# postconf -e 'tls_random_source = dev:/dev/urandom'

This next configuration command sets the host name, and this one uses my example machine’s host name. You should use your own instead.

# postconf -e 'myhostname = foo.wan'

Then press ctrl-D to logout the root account.

The postfix initial configuration is complete. Run the following command to start the Postfix daemon:

$ sudo /etc/init.d/postfix start

The Postfix daemon is now installed, configured and runing. Postfix supports SMTP AUTH as defined in RFC2554. It is based on SASL. It is still necessary to set up SASL authentication before you can use SMTP.

Setting Up SASL Authentication

The libsasl2-2 package is most likely already installed. If you’re not sure and want to try to install it you can, no harm will occur. Otherwise skip this command and simply continue.

$ sudo apt-get install libsasl2-2

Let’s continue the SASL configuration.

$ sudo mkdir -p /var/spool/postfix/var/run/saslauthd
$ sudo rm -rf /var/run/saslauthd

Create the file /etc/default/saslauthd.

$ sudo touch /etc/default/saslauthd

Use your favorite editor to edit the new file so that it contains the lines which follow. Just to be clear, the final line to add begins with “MECHANISMS=“.

# This needs to be uncommented before saslauthd will be run
# automatically
START=yes

PWDIR="/var/spool/postfix/var/run/saslauthd"
PARAMS="-m ${PWDIR}"
PIDFILE="${PWDIR}/saslauthd.pid"

# You must specify the authentication mechanisms you wish to use.
# This defaults to "pam" for PAM support, but may also include
# "shadow" or "sasldb", like this:
# MECHANISMS="pam shadow"

MECHANISMS="pam"

Save the file.

Next, update the dpkg state of /var/spool/portfix/var/run/saslauthd. The saslauthd init script uses this setting to create the missing directory with the appropriate permissions and ownership. As earlier, sudo yourself to root and logout from root when finished. Be careful, that’s another rather long command that may have wrapped on your display.

$ sudo -i
# dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd

Then press ctrl-D to logout the root account.

Test using telnet to connect to the running Postfix mail server and see if SMTP-AUTH and TLS are working properly.

$ telnet foo.wan 25

After you have established the connection to the postfix mail server, type this (substituting your server for mine, of course):

ehlo foo.wan

If you see the following lines (among others) then everything is working perfectly.

250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME

Close the connection and exit telnet with this command.

quit

We’re almost there, promise.

Setting External SMTP Server Credentials

Remember, we set out to use an external Internet-connected SMTP server as a mail relay and this is how that is set up. I mentioned at the beginning of the article that I had set up a dedicated account on one of my domains. You might use one on your ISP. I would not, however, use your usual email account.

You’ll need to manually edit the /etc/postfix/main.cf file to add these lines:

smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/saslpasswd
smtp_always_send_ehlo = yes
relayhost = [mail.example.com]:1212

Of course, you’ll modify the relayhost = line to specify your external SMTP server. If you don’t need a port number then simply leave off the colon and port number following the closing bracket. I included the port number as a syntax example in case you needed to use one.

Did you notice the hash file mentioned in the lines you just added to/etc/postfix/main.cf? It holds the SMPT server logon credentials, and it’s time to create it.

$ sudo touch /etc/postfix/saslpasswd

Use your favorite editor to edit the file, adding the credentials with a line like this:

mail.example.com username@example.com:yourpassword

The components of the line you’re putting in the new file should be obvious.

(Before you cry foul… Yes, I’m well aware of the risk of storing credentials in the clear. It’s a manageable risk to me in this case for the following reasons. The physical machine is under my personal physical control. The credentials are dedicated to this single purpose. If the server becomes compromised I can disable the credentials from anywhere in the world I can obtain an Internet connection. If I’m dead and can’t do that, well, I guess it’s SEP and my incremental contribution to the SPAM of the world will torment my soul until the end of time. Your situation may be different and I leave it to you to secure the credentials.)

Anyway, before postfix can use that horribly insecure file it needs to be hashed by postmap:

$ sudo postmap /etc/postfix/saslpasswd

With that done, restart postfix.

$ sudo /etc/init.d/postfix restart

Applications that know how will now be able to generate mail but it’ll be convenient to be able to do it from the command line. Besides making testing of this configuration easier you’ll then be able to have your own scripts send messages with ease. For that you’ll need just one more package.

Installing the mailutils Package

Simple. Install the mailutils package.

$ sudo apt-get install mailutils

That’s it!

Try test sending some email from the command line. Substitute the address at which you usually receive mail for my example youraddress@yourserver.com.

$ echo "body: outbound email test" | mail -s "Test Subject" youraddress@yourserver.com

Check your inbox.

Wrapping Up

Well, that wasn’t so bad.

Mexican Coke

Mexican Coke US label add-on

Mexican Coke

A while back I ran into some Mexican Coca-Cola at the local Costco and just had to have some. You see, it’s made with real can sugar as opposed to the high fructose corn syrup crap they put in seemingly everything these days.

Why do they do that, anyway? Take a perfectly good ingredient and substitute junk for it. Cost, I guess.

Truth be told I only drank a couple out of the case. I’m not a big soda drinker. But the ones I had were just incredible, the taste immediately transporting me back to my childhood. The stuff even smells different.

Notice on the bottle, under the logo, the capacity is shown. On the other side of the bottle the logo is just plain, unlike bottles sold here. Also, the added label. Flat, stuck imperfectly to the rounded surface with adhesive, showing the ingredients and such, mandatory for all food products. Placement of those labels was inconsistent, which suggests that they may have been hand-applied some time after the fact.

In my experience it’s hard to get decent, sugar-laden soda today. A few brands pride themselves on it. Jones comes to mind. And a couple of times a year I have Old Doc’s Soda Shop ship me a few cases of Dublin Dr. Pepper. The independent Dublin Dr. Pepper plant continues to make the stuff the way it was made back in the beginning, while the other bottlers have ‘modernized’ and stopped using real sugar. If you can manage it, try a Dublin and a regular one side by side. The difference is unmistakable.

Thanks, But No Thanks

Unmatched Pleasure
Ad spotted at Wawa Store #912. Click for full-size.

“Unmatched Pleasure”

That’s what the sign promised.

Y’know, friends, as far as I’m concerned there’s simply NO pleasure in the whole wide world that matches the pleasure of gum disease. Unless, of course, you can find some way to cram tooth loss into the mix.

Well, your search is over! Here’s the product that’s done it.

I bought all that I could fit in my truck. NOT.

I think I’m going to package a hammer with a nail. The marketing sheet will promise that if you use the product properly – that is, by pushing the nail through your hand with the aid of the hammer – it’ll deliver the unmatched pleasure of a hole in your hand.

VirtualBox on the 64-bit Ubuntu Server 10.10

I recently set out to upgrade a virtual host server from VMware Server to Oracle’s VirtualBox. The upgrade was a huge success. This is one of several articles where I talk about various aspects of that upgrade, hopefully helping others along the way. You might want to go back and read the introductory article Virtualization Revisited.

Installing Ubuntu Server 10.10 is very fast and straightforward – maybe 10 minutes tops. There’s no shortage of coverage of the install procedure so I won’t bother with it again.

But in case you’re not familiar, I’ll mention that the Ubuntu installer will offer to configure the server with a selection of packages right off the bat. Like many others, I prefer to do those configurations myself in order to tailor the instance exactly to my needs. I make an exception with Open SSH so I that can reach the server from the comfort of my desk by the time it’s booted itself for the first time.

So let’s assume you’ve just finished the IPL, popped the install media, booted for the first time and logged in. The very first thing to do is catch up on any pending updates.

$ sudo apt-get update
$ sudo apt-get upgrade

For the sake of completeness, if anything is shown as kept back you should probably do a distribution upgrade followed by a reboot. If not, skip ahead.

$ sudo apt-get dist-upgrade
$ sudo shutdown -r now

Next I install Lugaru’s epsilon editor, a very capable emacs-like editor that I run on all my boxes. Believe me: there’s great value in having one editor that behaves in exactly the same way no matter what keyboard’s under your fingers! I’ve been a Lugaru customer since the 80s and I’m pleased to recommend their rock-solid product. Go test fly their unrestricted trial-ware. Anyway, the epsilon installation needs to build a few things and installing this bit first allows that (as well as other routine software builds that might be needed in the future) to simply happen.

$ sudo apt-get install build-essential

To The Business At Hand: Installing VirtualBox

Download the key and register the repository for VirtualBox. The key has changed recently, so what you see here might be different from other articles.

$ wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

The key fingerprint is

7B0F AB3A 13B9 0743 5925 D9C9 5442 2A4B 98AB 5139
Oracle Corporation (VirtualBox archive signing key) info@virtualbox.org

Edit the file /etc/apt/sources.list to add the following lines, which simply adds the appropriate repository.

# VirtualBox 3.2.10 VirtualBox for Ubuntu 10.10 Maverick Meerkat
deb http://download.virtualbox.org/virtualbox/debian maverick non-free

Make your system aware of the newly added repository.

$ sudo apt-get update
$ sudo apt-get upgrade

Now you’re ready for the actual VirtualBox install.

$ sudo apt-get install virtualbox-3.2

Finally, add any users that will need to run VirtualBox to the vboxusers group.

Don’t forget the -a flag in the command! This is especially important if you’re manipulating your administrator account. (The flag indicates that the group should be added to the the account, rather than replacing any/all existing groups.)

$ sudo usermod -a -G vboxusers <username>

And that’s all there is to it!

[ed. Appended later…]

There have been a couple of comments in email about networking setup. “You must not be making your VMs visible to your LAN. There’s nothing mentioned about bridge adapters…”

In fact I am using bridged adapters in my VMs! Last time I looked at VirtualBox it was quite the pain to set up that way. When I came to that part I just gave it a WTF and tried to simply bridge eth0. It works just fine!

Thanks for asking.

Virtualization Revisited

I’ve been virtualizing machines the home network for many years. The benefits are simply huge (but relax – I’ll not go into them in detail here). Suffice it to say that it beats the snot out of stack of old PCs with their attendant noise and energy consumption.

The server I built on a shoestring one August afternoon many years ago has (ahem) served us well. A mile-high overview of the hardware includes an NVIDEA motherboard from BFG, several GB of commodity RAM, a SATA RAID card from Silicon Image driving a handful of 3.5-inch SATA drives, and an IDE boot drive. The mini-tower case – told you I cheaped out – is somewhat dense inside so there are extra fans to keep the heat in check. The host OS has been Windows 2000 Server Service Pack 4.

Yeah, yeah, I know. It’s a 32-bit OS on 64-bit hardware. A nice chunk of RAM is ‘lost’ to insufficient address space right off the bat. I figured to upgrade the OS one day but never quite got around to it. The virtualization software is VMware Server, which I’ve been using since the beginning. Their current version is 2.0.0 Build 116503 (wow, 2008, when dinosaurs roamed the Earth). The guest OSs are a mix of Linux and Windows servers handling core dedicated roles as well as a changing mix of experimental/test/research stuff: DOS, Windows 3.1, Chrome OS, OS/2 Warp (OMG what a hack that was!), a couple of OTS appliances, more. What can I say? I’ve got an interest in history. Besides, the look on my kid’s face when he sees an ancient OS actually running (as opposed to just static screen shots on some Web page) is worth it.

Anyway, there are lots of problems with this setup. VMware Server, their free product, is getting long in the tooth. The Web-based interface doesn’t work with the Chrome browser; it’s one of the few things that continues to force me to use IE. Sometimes the service side of the interface goes MIA altogether. The 32-bit Win2K is finally hopelessly out of date, absolutely no more updates. The list goes on and on.

So every now and again I look around for alternatives. The last serious contender was VMware’s ESXi. The idea of a supported bare-metal virtualization platform sure sounded appealing! I spent a day or two experimenting but ended up dismissing it. Getting it to run on the (albeit weak) hardware proved do-able but not without difficulties. In the end it just seemed too fragile for the long-term. I chalked it up to more trouble than it was worth, restored the old setup and got on with life.

The October 2010 issue of Communications of the ACM carried an interesting article, Difference Engine: Harnessing Memory Redundancy in Virtual Machines. Excellent article! A side effect of reading it led me to think again about the clunky mess humming away in the basement. And it was at roughly that time when another interesting article came through the news flow, How do I add a second drive to a Windows XP virtual machine running in VirtualBox? [link is dead]

Hmmm, VirtualBox. I had looked at VirtualBox a long time ago. I grabbed a current release and installed it on my desktop. Wow, it’s apparently matured a great deal since I last paid attention! I found it intuitive and fast to not only create and use new guests but also to simply import and run my existing VMs. (Well, okay, so there were a few gotchas, but no showstoppers.) Yes, this could be a contender for the basement server!

I pulled out an old laptop for some preliminary testing. I loaded it up with Ubuntu Server 10.10, installed VirtualBox and parked it in the basement. The goal? Well, VirtualBox is very easy to control through its GUI but I’d need to learn to run it entirely via command line and build my confidence for a smooth migration. I just  knew I’d run into problems along the way – nothing’s ever as easy as it looks at first glance – and I wanted to be able to anticipate and solve most of them in advance.

As usual, the ‘net came through as a truly incredible learning resource and I made copious use of it along the way. But every situation is different. By documenting my work in a series of articles, well, maybe it’ll help some wayward soul have an easier time of it.

Language Analysis, Anyone?

Pam‘s not much of a gamer but she plays The Sims. Has for years. Started with the first one, now they’re up to The Sims3. Quite a piece of software that is!

If you’ve played (or watched it played) you know that it’s a chatty game. That is, those simulated entities never shut up. Some of the sounds are universal. Babies crying, sounds of disgust (“Ugh!”) and so on. But conversationally they seem to have a language all their own.

I was wondering about that. First, does what they say have any consistency? By that I mean, say, when one of ’em is hungry and mentions it, do they always say “oot grickle mem sitto zerk!” (or whatever that incomprehensible jabber is)? I don’t play, but I asked Pam and she said she thinks they might – but admitted she never paid attention.

By extension, if they do ‘speak’ with consistency then has anyone out there worked out the grammar? Is there anyone on the planet that can speak Sim?

Why not? There are people that can speak (and understand) Klingon. The ‘net delivers example after example of people that clearly have an abundance of free time. So why not?

Maple Syrup

Maple Syrup
Maple syrup = liquid gold

Yes, it’s true, that’s $21.99 on my receipt for a quart of maple syrup from my supermarket the other day. I nearly dropped the jug when the handheld scanner displayed the price. My next thought was that it was a mistake. But no, the display tag agreed. The smaller jugs had a wildly higher unit price so into the cart it went.

And there I thought fuel was expensive! Silly me.