Please please you

Some time ago I was talking with a friend who was having woman trouble. “I can’t figure out how to make her happy,” he said. Immediately he added the disclaimer, “I know, I know, ‘everyone’s responsible for their own happiness.’”

That’s a bit of pop psychology from the Me generation that has passed into conventional wisdom, but I think it’s wrong. It’s just one step from there to “Greed is good,” and you know how I feel about that one.

So I said, “That’s bullshit. When I married Andrea, I made her happiness my job.” Not that she didn’t bear some of the responsibility herself, of course; nor was I abandoning my happiness for hers. But I’ll be damned if our marriage doesn’t mean that she gets my help being happy when she needs it, and vice versa. My friend’s palpable gratitude at hearing someone explode the old chestnut told me I was onto something.

Not to get too crunchy-granola, but how would the world be different if the conventional wisdom said, instead, “Everyone is responsible for each other’s happiness”?

Hello ladies

The last TV commercial that made me run right out and buy the product was for Squirmles. It was the 70’s. I was eight. I had only recently started earning an allowance. I had never had a pet and the commercial made Squirmles look like a magical pet. I had to have it!

Within seconds after getting it home and opening the package I realized that what I’d just shelled out for was a piece of fuzz on the end of a string, with two paper eyes glued on — badly. In minutes the eyes were gone. In a few days, so was the fuzz. And during that time, its movements were not magical. They were, in fact, exactly like the movements you’d expect from a piece of fuzz on the end of a string.

Worst buck and a half I ever spent. Lesson learned: marketing is lies.

As I said, that was the last TV commercial to make me run right out and buy the product — until now.

This morning I followed these directions on the bottle:

and now look!

Thermody-nom-ics

Imagine a car rolling down the highway at a constant speed. Now imagine a refueling truck keeping pace with that car and adding a constant trickle of gas to the car’s tank, so that the level in the tank neither falls nor rises.

Now imagine that the driver of the car presses harder on the accelerator, and the car speeds up. The refueling truck speeds up too to stay with the car, but the trickle of gas stays the same — it doesn’t increase to compensate for the faster-running engine.

According to common sense — and the laws of thermodynamics — the level of fuel in the tank must now begin to drop. Right? Right?

Well, I’m now in week four of vigorous exercise almost every damn day, and the pounds are not coming off. I weigh exactly as much as I did when I started. My eating habits are the same as before, and my level of physical activity is notably higher. If I could build a car that worked like me, the world’s fossil fuel woes would be over.

In the past I’ve announced my weight-loss efforts on this blog as way to compel myself to stick with them (reasoning that I wouldn’t be able to let my millions of loyal readers down, natch). This time I kept it quiet, hoping for more success than in other recent attempts, so as to have a little momentum going when I broke the news here. Happily, sticking with my new fitness regime no longer seems to be the main challenge. Unhappily, the effect of all that exercise seems to be nothing other than an increase in the efficiency with which I metabolize my food intake. I have no choice but to change my eating habits. Let’s see if that does anything, or if I continue to defy the laws of nature.

Phase one: eliminating sweets for two weeks. This better work.

All Cretans are liars

The other day Archer asked me to hold up my hand, fingers out. I did. He then began asking me yes/no questions, one per finger. A “no” answer meant that the finger got folded down, a “yes” answer meant it stayed up. Of course this was a brand new trick from the schoolyard with which he was trying to get me involuntarily to give him “the finger,” but between its newness, Archer’s confusion about how to execute it, and my own teasing efforts to sabotage the result, it took a lot more than five questions to reach the hilarious goal. But reach it we did, at which point Archer erupted into merriment. “You’re making a rude gesture!” he laughed, as if we hadn’t both known it was coming. “Now do it to me.”

Well, I didn’t want to disappoint him, but I also didn’t want to see my little boy flipping me the bird. He held up his hand and I pointed to his pinky. “Are you green?” I asked. “No.” Down went the pinky. “Do you eat shoes?” “No.” Down went his ring finger. “Are you very silly?” “Yes!” Up stayed the middle finger. “Do you like mashed potatoes?” “No.” Down went the index finger.

Now his middle finger and thumb remained pointing up. A big smile spread across his face as he thought he knew what was coming next.

I pointed to his thumb. “Should you put your thumb down?” I asked. “Yes!” he said at once. “Ah, that means it stays up!” I pointed out. So he recanted: “No!” “Ah, then I don’t want to make you do something you don’t want to do.” “Wait… yes! Um…”

I blew his little mind.

Elbows deep

Last week I replaced my six-year-old home server (which serves this website among many other functions) with a newer, faster, quieter computer. Transferring all the data and functions was a considerable effort in system administration. For the record, here are the steps I had to take.

  1. Download Fedora 12 install-CD image.
  2. Burn Fedora 12 install CD.
  3. Shut down sendmail and Apache.
  4. Dump MySQL database contents.
  5. Dump Postgresql database contents.
  6. Bring up new computer with temporary hostname.
  7. Install Fedora 12 on new computer.
  8. Create user accounts.
  9. Copy all data from old computer to new, under /old tree.
  10. Shut down old computer (permanently).
  11. Take over old computer’s hostname and IP address.
  12. Restore firewall config from /old.
  13. Restore DNS config from /old, bring up DNS.
  14. Restore sshd config from /old, bring up sshd.
  15. Restore Maildir trees from /old.
  16. Restore IMAP server config from /old, bring up IMAP server.
  17. Restore sendmail config from /old, bring up sendmail.
  18. Restore WordPress environment from /old.
  19. Bring up MySQL, restore contents from MySQL dump.
  20. Bring up Postgresql, restore contents from Postgresql dump.
  21. Restore Apache config from /old, bring up Apache.
  22. Restore Mailman environment from /old, bring up Mailman.
  23. Bring up apcupsd.
  24. Add printer.
  25. Set up network printing.
  26. Set up NFS.
  27. Resume backups.

Naturally not everything went according to plan. So in addition to the steps above I also had to solve:

  • Why all of my domains but one could be resolved;
  • Why the firewall was getting reset at startup;
  • Why inbound mail was not flowing;
  • Why the Ethernet interface had the wrong parameters at startup;
  • Why the monitor would not go into power-save mode;
  • How to get the Flash plugin running under x86_64;
  • Why the DVD-RW drive wasn’t visible some of the time.

Throughout all this, I frequently had to pause to locate and install needed software packages and Perl modules that weren’t part of the default Fedora setup. For good measure I also had to replace an external hard drive that was about to fail. (Thanks for the warning, Palimpsest!)

Happily all these things are now done, except that the monitor issue is a bona fide bug in the xorg video driver (duly filed) that someone else will have to deal with. Until then I just have to remember to switch the monitor off when I walk away.

This may all sound like deep wizardry, but it doesn’t feel like it to me. Having spent a lifetime coping and communing with these sometimes-cantankerous machines, it’s just busywork. Then I think of the number of other people in the world who could do all of this single-handedly and I become impressed with myself.

Don’t dis “don’t be evil”

Dear Steve Jobs,

We have some Apple products in our household. Also, I’m an employee of Google.

“Don’t be evil” is not bullshit. I and a lot of my colleagues work there precisely because of that mantra, and many of us are prepared to pack up and leave if we ever discover Google straying meaningfully from it. Gratifyingly, opportunities arise often in which to apply “don’t be evil” to a business or engineering decision, and a culture of vigorous and principled internal debate helps to ensure we choose correctly. Not all cases are black and white, of course (though some are), and it’s possible to err, but on the whole we do pretty well, non-evil-wise, especially compared to, well, every other publicly traded technology company.

In short, I take your remark as a personal insult, not to mention a telling comment on your own sense of right and wrong and, by extension, that of your company. I would welcome a sincere retraction, failing which I will have to reconsider continuing to be an Apple patron.

Thanks,
– Bob

What brings you here 2009

Geez, post one tiny picture of a naked woman and your whole blog turns permanently into Times Square. (Er, the seedy Times Square of my youth, not the oppressively unobjectionable Times Square of today. [Or the celebratory Times Square of tonight.]) I was going to write my annual “What brings you here” post that tallies the top queries drawing readers to this site, until I discovered that Polly Walker’s nipples, which last year drew 30% of this site’s visitors, now draw nearly twice that: 58%. Almost all of the other queries disappear in the statistical noise.

It’s true that I updated this blog far fewer times in 2009 than I did in 2008, but I did add 46 new posts, which isn’t nothing, and none of that new content was prurient — in fact there’s been only one new post in the “sex” category since “When on Rome” two years ago. You’d think that the drawing power of Polly Walker would be dwindling, not growing. You’d think that a few fuzzy flesh-colored pixels would count for little next to the attempts at erudition, humor, personal reminiscence, political ranting, and heartwarming family anecdotes that make up the preponderance of the site.

Well, sex sells. Hopefully the thing it’s selling is a little intellectual uplift to the single-minded degenerates who stumble across this site!

Ibid 2009

The last I wrote about my backup tool, ibid, was three years ago (here; earlier post here), but I’ve continued making refinements to it. Then it was at version 24; now it’s at version 47 (download it here). Here are the changes since then, minus the uninteresting ones:

  1. Add –maxfiles.
  2. Don’t use Storable for the complete record structure; apparently a stringified form gets constructed in memory before it’s written to the file, which is disastrous for very large records. Use a custom streaming serialization method instead. Also, detect and reject unknown record versions.
  3. Another major rewrite. This one does away with the old runtime data structures based on big, inefficient Perl hashes, replacing them with strings containing compact “pack”ed values. This change yields enormous runtime memory savings, which matters after a few hundred sessions and many tens of thousands of files have accumulated in your fileset record. Also fixed a few documentation bugs and eliminated some dead code.
  4. Rename options for greater consistency: –limit (-l) is now –maxbytes (-b); –files (-f) is now –maxfiles (-f).
  5. Report when one or the other limit (bytes or files) is reached.
  6. Add –prune-sessions option.
  7. Add new –single-file-size-limit option; renamed –maxbytes and –maxfiles to –session-size-limit and –session-files-limit, respectively. Switched from &foo() function-calling syntax to foo().
  8. Add a new history-entry type: zero-length (“empty”) files. These are recorded in the session record but not copied to the archive, to save overhead.
  9. Include <dev:ino> in –dump output when –verbose is supplied.
  10. Support a device-map file, $HOME/.ibid/.devmap, for tracking a filesystem when its device number changes.
  11. Document the .devmap file; add –trim-report; support “xz” compression of session files; support optional callbacks in foreach_name_history().
  12. Add another level of depth to the “target” path for each new power of 10 in the session number. So session 7311 is rooted at TARGET/FILESET/7000/300/7311, and session 29582 is rooted at TARGET/FILESET/20000/9000/500/29582. Path elements that would start with a 0 are omitted; e.g., session 4006 is rooted at TARGET/FILESET/4000/4006, not at TARGET/FILESET/4000/000/4006.
  13. Document –trim-report.

There’s still no home page for ibid, but at least now all ibid-related posts on my blog are grouped under the tag ibid.

Who comes around on a special night?

Presenting this year’s entry. (Previously.)

The guy in this song hasn’t visited our house yet, but I can’t imagine it’ll be much longer.

You better have doubt
You better ask why
And think it all out
I’m telling you why:
Skepticlaus is coming to town

He hasn’t a list
That wouldn’t make sense
All the world’s kids?
That would be immense
Skepticlaus is coming to town

He sees you when you’re with him
And doesn’t when you’re not
He knows if you’ve been bad or good
If you tell him, or you’re caught

Reindeer that fly?
Or is it a hoax?
Which is more likely?
Don’t ask your folks
Skepticlaus is coming to town

(Previously.)