Category Archives: Uncategorized

Sometimes, it’s best not to know

Jacob, Oliver, and I were driving back home, about an 8-hour drive. At one point I heard Jacob say from the back seat, “Oliver, you can’t have my book. It has a bookmark in it!”

Aside from the apparent anti-sharing properties of bookmarks, I sort of smiled at Jacob inventing a bookmark.

An hour later, I heard Oliver saying, “Jacob, you can’t have MY book. It has a bookmark too!”

And again I thought that sounded rather cute. The thought of traveling boys — and they did travel very well — bookmarking the books I brought for them was a nice one.

And then I realized: I hadn’t brought bookmarks. Or, as far as I could recall, bookmark-making material.

I really wanted to say, “Uhm, Jacob, just what did you make that bookmark from?” But I didn’t. I figured everyone would be happier not having to deal with that question.


One of the benefits of working from home is that I have a great view of Kansas from my desk. While I work, I have seen sunrises, snowfall, birds, rain, ice, and all sorts of wildlife. I heard this verse of Home on the Range the other day, which reminded me of this:

“How often at night when the heavens are bright
With the light from the glittering stars
Have I stood here amazed and asked as I gazed
If their glory exceeds that of ours.”

One time, I asked Jacob if I should wake him up at night to see the stars. He said an excited yes! So when it was dark outside, I woke him up, carried him outside, and held him while he looked up. He said a long, breathy “Wooooow!” Then he went back to bed, curled up with his butterfly, and fell asleep smiling. Every so often, we repeat this little routine.

There are many opportunities in life to just stand somewhere and be amazed. You don’t have to be in Kansas. Children know this. The rest of us just have to notice.

Milk, Cookies, and Delight

Sometimes an attic is all it takes to delight children.

This afternoon, the boys and I made cookies. Jacob has been talking about setting out milk and cookies for Santa Claus for several days, and of course the fact that we had made cookies reminded him of this – as I figured it would. So after the boys got into their pajamas and all ready for bed, we set out milk and cookies for Santa.

The boys have always known that Santa is pretend, but love the stories and traditions anyhow. Never mind that Christmas was 3 days ago, and they’ve already opened their presents. It’s SANTA! It’s magic! It doesn’t matter!

I asked Jacob, “Would you like me to pretend to be Santa tonight?” A big grin, then “Oh yes, dad! Do it!”

So after I read them their bedtime story, sang them a song (Jacob chose a Latin hymn – that’s my boy!), and tucked them into bed, I pretended to be Santa. I went back downstairs. I drank the milk and ate the cookies. Then I went to my small future present stash, selected a few small items, and put them under the tree. I gave it a few minutes.

Then I crept up to the attic. I snuck along the wood floors quietly, until I was above the boys’ room.

Then I jumped. And I scraped a wood chair along the floor. And then I yelled out – “HO HO HO! Merry Christmas!” I had a brief conversation with Rudolph, then made some sliding noises. I was silent for a few seconds, then made some more noise and said, “Wow, Rudolph, Jacob and Oliver left some great milk and cookies! Let’s go deliver the rest of our presents!” And made some vague sleigh taking off from the roof of a house noises.

I crept back down the stairs. I put my ear to the outside of the closed door to the boys’ bedroom. I heard Jacob excitedly jabbering, “He said milk and cookies! He liked them! He really liked them! Ooo butterfly, he was here!” (Butterfly is a stuffed, er, butterfly that he sleeps with.)

I gave it a minute or two, then I went in. “Jacob, did you hear something?”


“What was it?”

“Well, it was a loud thud! I sat straight up like this. [ he demonstrates ] Then I heard ‘ho ho ho’! And ‘milk and cookies’! And I was excited like this!” [ more demonstrations ]

“What do you think happened?”

“I don’t know! Dad, what did you do?

I told him. It only increased his delight.

“Did it sound like Santa’s sleight landing?”

“(annoyed) No, dad. It sounded like a crash. (brightening) And then Santa coming down the chimney with presents! Oh, it is so exciting!”

(We don’t have a chimney)

It was still magical, even though he knew exactly what happened.

For his part, Oliver slept through it all. He will still discover the empty plate, empty cup, and slightly less empty area underneath the tree. And neither boy knows about the thank you note from Santa yet. I anticipate smiles in the morning!

Proof Humans Are Capable of Working Magic

What an astonishing thing a book is. It’s a flat object made from a tree with flexible parts on which are imprinted lots of funny dark squiggles. But one glance at it and you’re inside the mind of another person, maybe somebody dead for thousands of years. Across the millennia, an author is speaking clearly and silently inside your head, directly to you. Writing is perhaps the greatest of human inventions, binding together people who never knew each other, citizens of distant epochs. Books break the shackles of time.

A book is proof that humans are capable of working magic.

— Carl Sagan, The Persistence of Memory

Unreported Disk Data Corruption – Kernel Bug?

Well this is new, and I’m utterly baffled. Here’s a file that’s not in use by anything.

$ md5sum xppro.vdi
589cbb5501dcddda047344a3550aaa95 xppro.vdi
$ md5sum xppro.vdi
a69806ec60d39e06473edbb0abd71637 xppro.vdi

Every time I run md5sum on it, I get a different answer. Same story with sha256sum. If I grab just the first 100MB, it gives the same answer each time. dmesg doesn’t show any sort of errors whatsoever during the time I’m running the tools. The file is 13GB, and was copied from one laptop to another (the new one being a Thinkpad T420s). The old laptop gives the same answer every time. The new one doesn’t.

I’ve put the file on different ext4 filesystems on the same machine (one using LUKS encryption, the other not, both under LVM) – same result. This will have also guaranteed different placement on the underlying hard disk.

I verified that nothing is modifying the file by using lsof and inotify. The system is a freshly-installed Debian wheezy running kernel 3.2.0-1-amd64. Any ideas how I go about troubleshooting/fixing this? So far I don’t know if it’s hardware or software, though my gut says software; SMART isn’t showing issues here, and the kernel didn’t log hardware issues, either.

Timelessness of an Old Pickup

Our society is one that is pretty well defined by timeliness. TV programs start at a precise time, down to the second. Schools have elaborate timekeeping systems. Even church services are carefully timed. We know how fast we’re going, and our GPS or phones tell us when we’ll get there. And we’re pretty confident that we will, in fact, get there.

Somehow this doesn’t apply to our pickup.

This pickup, in case you’re wondering, is a thing of… stories, shall we say. After a particularly frustrating experience with it one week (oh yes, the battle extended several days), I likened it to the Greek gods. And Terah had a good laughing fit when I began a sentence with “The reason there’s a towel connecting the brake pedal to the steering wheel…”

But I guess the thrifty side of me won out, and somewhere along the line, I relented. My brother fixed up the carburetor. I got it a new battery. The flat tire is repaired. The starter broke, and I got it replaced. And I even got an oil change. Fancy, I know.

So today, when I needed to take some backbreaking junk off the yard, I was hoping the pickup would work. I hadn’t driven it in months, and any manner of catastrophe could have struck it in that time. So I was mildly relieved when it started on the 6th try. That is, quite seriously, quite the improvement, and shows how skilled a mechanic my brother is.

The speedometer, of course, isn’t working. The odometer stupidly reads “21531” or something like that (it was only a 5-digit odometer, broke long ago, so who knows how many miles it really has.) And I like to keep things like grease and heavy ancient air conditioners (one of the things I was hauling) away from my watch, so I wasn’t wearing it.

The result: I have no idea what time it is, how fast I’m going, when I’ll get there, IF I’ll get there, or all those things.

I set out, and made it a good half mile before it died as I was rounding a corner at the bottom of the hill. Always a great place for a finicky old stick-shift vehicle to die, right? Anyhow, a few random adjustments to the choke later, and the thing sputtered then roared (and I do mean roared) back to life. A little lurching up the hill and I was back on my way. Now, I was stuck there in the middle of the road, but it was a country road, so I’d have probably had a good hour to get it fixed before worrying about blocking anybody’s way.

My first stop: my great uncle’s place. He has a “scrap metal for charity” project going on. He is looking for old motors, air conditioners, dehumidifiers, etc. He takes them apart, separates out the metals, sells them, and donates the result to MCC, a world relief agency. I knew I had an old dehumidifier in the basement, and thought I remembered seeing an old window air conditioner in the elevator. That thing is probably the single heaviest object I have ever moved without help. I have a bandaid to prove it. It was way too heavy to carry, so I kind of rolled it, side to side, from the side of the elevator on to the pickup. If you were watching, you’d have heard me making struggling noises, followed by “BANG rattle rattle rattle… pause… struggling noises…. BANG rattle rattle rattle” as I “rolled” it along the ground, and waited for the internal bits to settle after each quarter turn. So anyway, eventually I got it to the pickup, and then had the sickening realization: I have no way to get this thing up there. Oops.

I eventually placed it on top of an old tire rim, balanced it there as I knelt down, and somehow — still not quite sure how — managed to lift the entire thing a few feet until I could get some leverage to shove it onto the pickup. I later commented to my dad that it was a Chrysler brand air conditioner, somewhat to my surprise, and he said that it was probably my great-grandpa’s. That was a surprise.

Anyhow, back to the pickup. I drove down the few miles to my great grandpa’s place, not really knowing how fast I was going. I smelled the familiar smells of the old pickup: exhaust fumes, oil on hot surfaces it shouldn’t be on, a touch of hot antifreeze. You never have any doubt about whether the engine is running.

It was sort of nice to not know, or particularly care, how fast I was going, or what time it was. Sometimes I’d idly wonder, but you know, it didn’t really matter and there wasn’t a thing I could do about it anyhow.

I got to uncle’s place, unloaded the junk — sorta dropped the air conditioner off the back of the pickup with a terrific BANG, then rolled it all the way to his trailer — and got back in. On to town. I hadn’t put gas in the pickup in a few years, and I suspected it was getting low. (The gas gauge, you guessed it, doesn’t work right either.) Plus we had some large recyclables built up and it was time to get rid of them. And for that, I had to drive on the highway a ways. The speed limit there is 65MPH. I have no idea how fast I was going, but it wasn’t 65. Maybe it was 45. I got passed a lot, but nobody looked particularly surprised that a pickup that looks like mine wasn’t going 65.

Partway there, I smelled a different smoke smell. Not an oil smoke, but more of a grassy or wood smoke. Hmm, I thought. That’s odd. Hope it’s not coming from the pickup. I didn’t really see smoke anywhere else, so I just drove on until I couldn’t smell it anymore.

I unloaded the recyclables, then went to the gas station. As the pump readout neared $50, I decided: 1) the gas tank really was pretty empty, and 2) I just can’t put more gas in it anymore. That would be more than the truck’s worth. So I drove home.

The drive home was into the wind. My face got pretty cold – I always drive with the windows open to prevent carbon monoxide poisoning (remember the fumes?) I got home and prepared to pack up the pickup – close the windows, replace the bungee cord holding the brake pedal up, etc. I then thought I’d have a look under the hood to see if there was anything, well, on fire. Nope, but there was a packrat nest that fell down as soon as the wind hit it. Source of grassy-smelling smoke identified.

It’s amazing what difference simple lack of knowledge makes sometimes. Not knowing what time it is or how fast I’m going means I don’t have to worry about those things. I wonder how society has changed simply because accurate and cheap watches are available. I kind of like driving the old truck. It’s a bit of an adventure, a bit of a challenge, a bit of randomness, and a bit of an escape from the normal and predictable. Not a bad deal for a $75 vehicle.

Please. Stop. Removing. Features.

apt-get dist-upgrade is getting a little less fun these days.

It’s not because of a problem with Debian or with apt-get. It’s because of things upstream authors are doing.

It seems that upstreams, for some reason, like to remove features from new versions of software.

The two recent examples to bite me are the removal of the Gnome Terminal features to play the bell through sound card rather than the console speaker, and the recent upgrade to gtkpod — the best iPod music manager out there — which removed the ability to actually, well, play music. Wha…?

Earlier examples where when Gnome removed the ability to type a filename in the Open dialog box (remember that? thankfully reverted eventually.) KDE 4 was infamous for this too, with maybe thousands of instances (and they broke Amarok so badly that it didn’t actually play music from my devices either.)

I don’t understand this. The Gnome people somehow thought that they knew better than I what options I might want, I guess. But I am totally baffled about gtkpod. All it ever did was call xmms (or something like it such as qmmp) with appropriate arguments to play a file. Simple, configurable, and supremely useful. Probably just a few lines of code. And even that is gone.

There is a post by Ingo Molnar complaining that perhaps Gnome and KDE are trying to mimic the Apple and Google result without internalizing the process. Perhaps. It all seems so baffling to me though.

Updated: rewrote introduction.

Complete.Org Migrated To Different Continent, 15 minutes downtime

It’s time to change locations for my server. I’ve been with CoreNetworks for almost 5 years. They provide a good value, with fully dedicated servers a lot cheaper than most places, and good support to boot — targeting people that can handle root on their own box. I’m switching, though, to Hetzner Online (of Germany), primarily because I am needing more than 1GB RAM, and they can provide a 2GB box for less than I pay now for 1GB. I asked for feedback on Google+, and got positive feedback. Today, I migrated from one machine to another, copying a dozen or two GB of data, and only had about 15 minutes downtime.

I was able to do this without console access to the source machine, though console access wasn’t really required for either. This will work with any basic Linux install on the destination, or it could be prepared directly from a rescue environment.

Before I explain how I did it, I thought it was interesting to think of the different places that the machine that was known as has lived over the years. Here’s a map (click for detail):

Here’s the general process.

First, well in advance of the move, crank the TTL on the domains way down. This way, old IPs won’t be cached for very long once the system moves.

Next, start rsyncing data from the old machine to the new. Do not yet shut down daemons on the old. Shut down as much as you can on the new. You’ll want to focus on static data, such as /home. /usr is a good candidate as well. /var if you are selective — databases may be a good candidate, or may not. The idea is to seed the destination with data so that when we do the “real” rsync, most of the data will be there; it will have to tidy things up after daemons are stopped, and update some things, but the bulk of the work should be done.

Next, start preparing some exclude lists for the final rsync, which will copy an entire machine to the other. You will likely want to exclude files such as /etc/fstab, /etc/network/interfaces, /etc/resolv.conf, /etc/hosts, /etc/default/grub, /sys/*, /proc/*, /dev/*, and the like. I used rsync -v -P -a -H -A -X -S –numeric-ids –delete-after.

Now, start editing config files for the new IP, but do it on the old server (these will be synced over to the new one). Start with the bind config files, and touch anything else that needs it — maybe Apache configs, whatever.

Next, get ready to do the final sync. In an ideal environment, we’d just shut both machines down to single-user mode, but that’s not going to quite cut it here. Use ps and shut down all daemons except sshd and udev on the destination. Yes, including even syslog. This is to prevent anything actively accessing the disk during the rsync, and also to prevent any issues with clients accessing server daemons that aren’t ready yet.

Now, on the source machine, reload bind. This will start answering DNS queries with the new machine’s IP, and should also propagate the changes to your secondary DNS. Next, kill off all the daemons on the source machine, except for ssh and bind. You might want to set /etc/nologin to prevent regular users from logging in on ssh, if you have them. Now rsync things over to the new machine. Do any final tweaking over there (merging in /etc/hosts maybe, dealing with the udev rules.d persistent net thing, etc.). Reboot the new server and you should be up and running.

Too Strange for Jon Stewart

I would have probably dismissed as not realistic enough for even The Daily Show this kind of story, had someone suggested it a few months ago:

Rupert Murdoch’s corporation (owner of FOX News, Wall Street Journal, News of the World, etc) would have been found to have illegally accessed other people’s voicemails.

These included voicemails from a cellphone belonging to a recently-murdered girl, which interfered with the police.

And they had also bribed Scotland Yard officers for information, and actively covered it up.

The story would close one of Britain’s biggest newspapers, and force the resignation of various government and Scotland Yard officials.

That it would lead to the first high-profile investigation under the Foreign Corrupt Practices Act of an American corporation bribing British officials.

That one of the central figures in the scandal would suddenly die at a young age.

That there was a question of how the former editor of Murdoch’s newspaper — whom he steadfastly defended until one day he didn’t — would be taken from jail to testify before Parliament.

That CNN would live stream a hearing of a British Parliamentary subcommittee instead of the news conference given by the President of the United States.

And that during this committee hearing, some guy would attack Rupert Murdoch — who, until then, looked like he had a few drinks too many the night before — with a shaving cream pie.

And that Rupert Murdoch’s newspapers and TV channels would portray News Corp. as a victim of the liberal press in all this, and that they should just be left alone.

So maybe the last one was believable, but my goodness. Just when it couldn’t get any stranger, a SHAVING CREAM PIE?!