All posts by Bob Igo

I am human.

Fuel Costs Merely Rising With Inflation?

I read an article today that makes an unintuitive claim that gasoline prices are not, in fact, out of control, and are less than the expected cost that inflation would predict.  Leaving aside for a moment that I bought gas at the Flying J in Ohio for $0.69/gallon circa 1998, and even inflation doesn’t account for that much of a price increase over 10 years, the author seems to assume that gasoline prices are somehow a victim of inflation, as if inflation is some external force of nature to which gasoline is subject.  If gasoline vendors increase their price, doesn’t this increase cause inflation by increasing the cost of 99.9% of everything?  If so, is it valid to claim that gasoline prices are influenced by inflation?

UI Lies

I have a RAZR v3 which features a 3-level battery charge indicator on the UI.  Sometimes, the phone indicates a 3/3 charge, but when I plug it in, it shows a 1/3 when it begins to charge back up to full.  It’s as if the phone is putting on a brave face while it’s starving, and when you finally feed it, it admits that it was really in bad shape and would have passed out from hunger had you not intervened.

The inconsistency of the indicator between the plugged and unplugged states must be a UI design decision, though the only reason I can fathom for it is that they wanted to give the appearance of long battery life at the expense of an accurate battery charge indicator.  If you leave your phone on for a day and it still shows a 3/3 charge, you may extrapolate that you could get at least 3 days of use on a single charge.  Uninformed users may compare that pleasant lie with the harsh truth of another phone’s battery indicator and falsely conclude that the lying phone lasts longer.

A reference eludes me at the moment, but IIRC, there was a bit of a kerfluffle over gas gauge indicators when Honda first started selling cars in the US.  Honda’s decision was to provide an accurate gas gauge, where empty meant empty, whereas the unspoken rule in US car design was that empty meant “nearly” empty, where “nearly” could sometimes mean 50%.  Much hilarity ensued when Americans learned that the gas gauges were “broken” and would no longer lie to them.  The unspoken standard may have changed over time, since all the cars I’ve driven recently will activate a Blinkenlight(tm) when the gas is down to 2-4 gallons, depending on the car.

I’m curious to learn what lies you’ve all been told by various UIs that you use.

How to Know Your Plan Sucks

While working for a horrible division of a successful company, I attended a mandatory training session in something akin to TQM.  The most useful technique I learned for the planning of successful outcomes was to come up with the worst possible plan, then invert it.  This was eye-opening, and it allows people who tend to focus on worst-case scenarios to shine.  (Fans of Seinfeld may remember that George applied this technique in a more rudimentary form.)

You can also use this technique to assess whether or not a given plan closely resembles the worst possible plan, as a way of determining how doomed it is.  Come up with a plan for your company to fall into ruin, for example, and see if there’s any overlap with how you currently do business.  Come up with a plan to lose at a strategy game, and see if any of the tactics involved are ones you currently employ.

Dad’s Take on Beer

My dad can no longer drink alcohol due to medication, but he’s philosophical about it. He said, “I really only drank beer to keep it out of the hands of children.”  So if you care about children, you know what you have to do.

Ubuntu RAIDbox: Part 3

In general, this part of the instructions assumes that you are using storage devices (disks and CF) that contain nothing that you care about. If this is not the case, please either first copy the data you want to keep to a safe location, or learn how to adapt these steps to preserve what you have.

Boot your RAIDbox hardware and launch the Ubuntu installation process.

  1. Choose Manual Partitioning
  2. For each disk displayed, delete every partition.
  3. Once complete, partition your CF card as a single ext3 partition with / as its mount point.
    1. Move the cursor to the single row underneath its drive descriptor, e.g. :
      IDE1 master (hda) - 8.0 GB TRANSCEND
              pri/log    8.0 GB     FREE SPACE
    2. Press ENTER
    3. Select Create a new partition and press ENTER
    4. Press ENTER to accept the default size, which is all of your disk space.
    5. Select Primary and press ENTER
    6. If Use as: is not Ext3 journaling file system, then
      Select Use as: and press ENTER
      Select Ext3 journaling file system and press ENTER
    7. If Mount point: is not /, then
      Select Mount point
      Select / – the root file system
    8. If Bootable flag: is not on, then
      Select Bootable flag: and press ENTER.
    9. Press ESC to return to the partition menu.
  4. For each hard disk, first create a 384 MB RAID partition at the end of the disk:

Move the cursor to the single row underneath its drive descriptor, e.g. :

SCSI4 (0,0,0) (sda) - 500.1 GB ATA ST3500841A
         pri/log  500.1 GB     FREE SPACE


Select Create a new partition and press ENTER

Press BACKSPACE until the partition size field is empty. Then type 384 MB and press ENTER

Select Primary and press ENTER

Select END and press ENTER

Select Use as: and press ENTER

Select physical volume for RAID and press ENTER

Press ESC to return to the partition menu.

After all disks are complete, fill out the remaining space with another RAID partition:

Move the cursor to the row underneath its drive descriptor that shows FREE SPACE, e.g. :

SCSI4 (0,0,0) (sda) - 500.1 GB ATA ST3500841A
         pri/log  499.7 GB     FREE SPACE
        #1 primary  378.4 MB   K raid


Select Create a new partition and press ENTER

Press ENTER to accept the default size, which is the rest of your disk space.

Select Primary and press ENTER

Select Use as: and press ENTER

Select physical volume for RAID and press ENTER

Press ESC to return to the partition menu.

Scroll back up to the top of the Partition disks page, select Configure software RAID and press ENTER.

If asked to Write the changes to the storage devices and configure RAID, select Yes and press ENTER.

To clear out results from previous attempts, select Delete MD device and press ENTER. Delete all devices until there are no more defined.

Once all MD devices are deleted, select Create MD device and press ENTER.

Select RAID5 and press ENTER.

Press BACKSPACE until the default number of active devices for the RAID5 array is deleted, then type 4 and press ENTER.

If the default number of spare devices for the RAID5 array is not 0, press BACKSPACE until the number is deleted, then type 0 and press ENTER.

One by one, move the cursor to each of the 4 lines that ends in 1 (e.g. /dev/sda1) and press SPACE to select it. When done, press ENTER.

Repeat the above steps, but this time, select all the lines that end in 2 (e.g. /dev/sda2) which should be the only 4 options remaining.

Select Finish and press ENTER.

When the partitioner is done, it’ll take you back to show you the results of your RAID work. From this point on, leave your actual disk partitions alone and only work with the RAID5 device entries. e.g.

RAID5 device #0 - 1.1 GB Software RAID device
      #1   1.1 GB


RAID5 device #1 - 1.5 TB Software RAID device
      #1   1.5 TB

Select the line under the smaller RAID5 device and press ENTER.

Select Use as: and press ENTER

Select swap area and press ENTER

Press ESC to return.

Select the line under the larger RAID5 device and press ENTER.

Select Use as: and press ENTER

Select Ext3 journaling file system and press ENTER

If Format the partition: is not set to yes, format it, then select it and press ENTER.

Select Mount point: and press ENTER

Select Enter manually

Change the default to /raid and press ENTER.

Press ESC to go back.

When back at the Partition disks screen, review your partitions one final time and then scroll down to select Finish partitioning and write changes to disk, then press ENTER.

The rest of the installation process is just like a normal Ubuntu installation, except with more simultaneous disk activity. When your system boots, Ubuntu will be entirely on the CF card, and your swap partition will be on one raid array, and a giant chunk of storage will be mounted at /raid.

The only thing that remains is to get /var off the CF as soon as /raid is mounted, because CF cards can only take a certain number of write cycles, and we don’t want logging to kill our boot disk.

Once your RAIDbox boots for the first time, log in as your main user account. If you run the command ‘df -h’ then you should see something like this:

Filesystem            Size  Used Avail Use% Mounted on

/dev/hda1             7.4G  660M  6.4G  10% /

varrun                188M   44K  188M   1% /var/run

varlock               188M     0  188M   0% /var/lock

udev                  188M  112K  188M   1% /dev

devshm                188M     0  188M   0% /dev/shm

lrm                   188M   34M  154M  19% /lib/modules/2.6.22-14-generic/volatile

/dev/md1              1.4T  198M  1.3T   1% /raid

As you can see, our CF disk is mostly underused, and we want to keep it that way to ensure a long life. More on that later.

Ubuntu RAIDbox: Part 2

With the hardware assembled, the next step is to install Ubuntu Server 7.10. I did not want to use an optical drive, but if you want to hook up an optical drive and install from the CD, you can just insert Ubuntu Server 7.10, configure the BIOS to boot from the optical drive, reboot, and go to Part 3.

For the adventurous, here’s how to PXE boot Ubuntu Server 7.10 on your RAIDbox (or any PXE-capable machine, for that matter) from another Linux server on your LAN.

Pick a Linux machine on your LAN to act as the PXE server for the PXE boot process on your RAIDbox. I chose a server running 64-bit Ubuntu Server 7.04, but I anticipate any recent version of Ubuntu would have the same setup process. Here’s everything you need to do on the PXE server:

Download (or copy from another machine) the .iso file for Ubuntu Server 7.10.

Install dnsmasq and prepare the tftpboot directory:

sudo apt-get update
sudo apt-get install dnsmasq
sudo mkdir /tftpboot
sudo chmod 755 /tftpboot
sudo chown nobody: /tftpboot

Run these commands to extract needed files from the Ubuntu Server 7.10 image:

sudo mount -o loop /location/of/your/ubuntu-7.10-server-i386.iso /mnt
sudo cp -a -r /mnt/install/netboot/ubuntu-installer /tftpboot
sudo cp -a  /mnt/install/netboot/pexlinux.0 /tftpboot
sudo cp -a -r  /mnt/install/netboot/pexlinux.cfg /tftpboot

Edit /etc/dnsmasq.conf. The lines you add will look something like this. You need to provide an IP address that you want your RAIDbox to have, you need to specify the IP address of the PXE server you’re configuring, and you need to provide the IP address of the gateway you use to get to the internet, which is usually your LAN’s regular DHCP server. You must also list the MAC address of the network device you’ll use on the RAIDbox when PXE booting. (This makes sure no other devices on your LAN connect to the PXE server.) If your PXE server also has a human-readable name on your LAN, you can list it here. Otherwise, leave it blank.


Here’s how it might look:


(Re-)launch dnsmasq:

sudo /etc/init.d/dnsmasq restart

Ubuntu RAIDbox: Part 1

I needed a RAIDed NAS box that I could rsync to for backing up Linux filesystems. While there are commercial offerings for around the same price, none of them provided native Linux filesystems or allowed SSH access and/or rsync, so I decided to roll my own. This is one way you can make a cost-competitive and low-power RAIDed NAS box in Ubuntu that does ssh/rsync, nfs, and samba. All prices listed are approximate, since I bought more than I needed initially (see below for explanation), but prices do include shipping.

You can probably do it cheaper if you have different requirements. I wanted to reduce the number of moving parts and keep power consumption low, so I went with a passively-cooled mini-ITX motherboard and a CF boot disk. You could easily save about $300 by using more conventional motherboards, but keep an eye out for how much it costs to run the box constantly. My design only has 6 moving parts: 4 SATA HDDs and 2 cooling fans for the HDD enclosure. When off, the power brick consumes 4W (there are likely better models available). On boot, it spikes to 133W while the HDDs power on. At idle, it consumes 67W, and when the RAID is under heavy access, it consumes 77W.

Once all your parts are in, assemble the system. The only tricks involve the power converter board and the hot-swap enclosure. Stick the unprinted part of the power converter motherboard into the PCI Express slot on the motherboard, to keep it away from metal. I also recommend that you attach your enclosure’s topmost SATA drive slot to SATA connector 1 on your motherboard, following the progression down to the bottommost SATA drive slot connecting to SATA connector 4 on your motherboard. This way, if, say, /dev/sda1 fails, you’ll know it’s behind the topmost door in the enclosure.

(*) I ordered more parts than I needed to, and if I avoided the waste with a second RAIDbox, I think the price would be closer to $900. Specific areas of waste were due to cabling and necessary PSU upgrades.


Chimerism is the fascinating state of a fully-formed organism having two distinct sets of DNA.  Basically, during development, multiple (usually just two) zygotes fused and developed into a single embryo. The allocation of the DNA can happen at a high level, such as the top half of the body is DNA1, and the bottom half is DNA2. In addition to, or instead of that, the DNA allocation within individual organs can be a fairly even mix of the two sets of DNA or it can be split essentially down the middle.

The incidence of chimerism among humans is estimated to be very low, but here’s the spooky part: Consider how rarely people would ever get a DNA test to see if they had more than one set of DNA. Maybe you are a chimera and don’t know it.

We have technologies to test for known genetic diseases, but if you’re a chimera, you might provide a mouth swab to test for a disease, and get a negative result, except it’s only negative for that set of your DNA. Maybe the other set of your DNA has the bad genes but wasn’t tested. False positives could occur, too, of course. I also wonder if chimeras could be vulnerable to compound diseases that involve the two sets of DNA interacting in an incompatible way.

As we enter an era when DNA testing for medical and legal purposes seems only to be on the rise, it’ll be interesting to see if chimerism is discovered to occur at much higher frequency than previously estimated.  If so, chimerism may need to be the first DNA test done before doing any further DNA tests on an individual.

Stigmata and Demonic Possession

My understanding of the phenomena is that they only seem to happen to Catholics.  If they do happen to other Christians, they do not happen in nearly the same frequency as with Catholics.  They also seem to not happen to non-Christians at all, as far as I know.  So what does this mean?

If the phenomena are real, it implies that Catholics are uniquely vulnerable to demonic possession and more likely to be given Jesus-like wounds.  What would let demons more easily possess Catholics?  Why would Catholics be chosen to receive stigmata?  Why don’t all Catholics realize they’re in such danger?  Why do the same things not happen to everyone, or at least to non-Catholic Christians?

If the phenomena are fake, it implies that some elements within Catholic culture are more likely to believe in things like demonic possession and stigmata, otherwise the phenomena would be classified as mental illness and/or self-mutilation and/or Munchausen syndrome, be treated, and never be talked about as supernatural.  Why would some Catholics tend to believe supernatural explanations for these phenomena?

I  don’t have an answer, so I’m curious to know what the rest of you think.