Sascha the Cat

We adopted a cat a couple of weeks ago.


She’s grey tiger-striped, about 3 years old. A very sweet cat.

We have a מחלוקת about whether her name is spelled Sascha or Sasha. So we’ve taken to calling her by her nickname “Sushi.”

My blog is functional again

One week after disaster struck, Glenn (the friendly neighborhood admin for my ISP) has restored my MT database files from backup tape. I’m running again.

A quick post-mortem: what happened to me was similar to what is described here. However, running db_dump -r did not successfully recover the data, which is why I needed to go to tape backup.

Now I need to spend some energy getting the data into MySQL so I don’t get burned by this again…

My blog is h0zed

MovableType databases got corrupted yesterday, and now everything has gone to hell. I am editing this file by hand.

Waiting for my ISP to do a tape restore, which means I can’t really update the blog until Sunday… :-(

PHPCon West 2003

phpcon_125x125_speaker.gif I will be speaking at PHPCon West 2003 on October 23 in Santa Clara, CA.

I’ll be giving an updated version of my One Year of PHP at Yahoo! talk. If you didn’t make it to Portland this summer, you can hear me live in the Bay Area this fall.

Here’s the abstract:

Running a high-performance dynamic website is a daunting task. The short development cycles needed to stay ahead of the competition demand a web-centric scripting language that is easy to maintain and update. After a year of using PHP, Yahoo! will discuss its findings about PHP’s strengths and weaknesses.

We will present 5 general techniques for optimal performance PHP in an enterprise environment, 6 ways to harden your PHP applications, and 4 techniques for managing a diverse PHP installation on thousands of web servers.

We’ll also look at some open problems, such as the difficulty in maintaining clean separation of content, presentation, and business logic.

From the perspective of a PHP developer, this talk will is more interesting than my PHPCon 2002 talk because this one gives some concrete suggestions on how to do large-scale PHP. My “Making the Case” talk was very introspective, which was interesting to the slashdot crowd because they got to learn about Yahoo!, but didn’t teach PHP folks anything new.

I also went about 10 minutes over my 45 minute budget at OSCON, so the fact that PHPCon is giving me a 60-minute block of time means I don’t need to cut anything out. :-)

XML for Makefiles?

ant.jpg XML hasn’t cured our ills or saved the world, but people keep using it for absurd purposes anyways.

I finally took a quick look at Apache Ant today to see what all the fuss is about. Apparently with some additional components you can actually get Ant to build C/C++ code.

However, compare this build.xml for Ant:

<?xml version="1.0"?>

<project name="Hello" default="hello" basedir=".">

<taskdef resource="cpptasks.tasks"/>

<taskdef resource="cpptasks.types"/>

<target name="hello">

<cc name="gcc" outfile="hello">

<fileset dir="." includes="hello.c"/>

<compilerarg value="-O2"/>




with this Makefile for gmake:

hello: hello.c

gcc -O2 $< -o $@

I think I’ll stick with gmake for now.

Camejo for Govenor

Peter-Miguel-Camejo.jpg Although I didn’t vote for Davis in the last election, I will be voting “no” on the recall this October. He may not be the most charismatic guy in the world, but we Californians elected him.

In case the recall succeeds (which it looks like it probably will), I will once again be voting for the Green party candidate. Camejo is pro-choice, pro-gun control, against the death penalty, and pro-workers’ rights.

The rest of the world may be having a jolly good time with the Arnold vs. Arnold campaign, but I’m not laughing.

Friday hack: rcs2log

One of my co-workers asked me this week for an easy way to see which files had changed in CVS over the last week. I suggested that rcs2log would be a good first start, but strangely enough he had never heard of it before.

rcs2log is a nifty script that you can use to generate a ChangeLog from CVS. As the name implies, the tool was originally written for RCS files, but it knows how to talk to a CVS server without any modifications needed.

It’s distributed as part of GNU emacs as a helper script for the ChangeLog feature (C-x v a), but I’ve found it really handy to use it directly from the shell to group together CVS commits in an easy-to-read chronological order.

After installing emacs, I simply do this:

cp /usr/local/libexec/emacs/21.2/i386--freebsd/rcs2log $HOME/bin

And then it’s available in my $PATH to run from the shell whenever I need it.

rcs2log isn’t a complete replacement for other tools. I often use cvs log when I need details about a single file or I need to see down-to-the-second timestamps or symbolic tags. And I really like the multi-colored diffs that ViewCVS and Chora can generate. But rcs2log fills a niche that nothing else does.


Today is Tisha B’Av, a Jewish holy day. I choose to call it a “holy day” and not a “holiday” because it’s a rather somber one.

Last night at shul we read from the book of Eicha (known in English as Lamentations) by candelight. Both the words and the melody are melancholy and sad.

The penultimate verse of the book is repeated, to end on a positive note.

השיבנו יהוה אליך ונשוב חדש ימינו כקדם

Bring us back to you God, and we shall return, renew our days as of old

In other words, “if we could go back to the way things were before this calamity struck, life would all be so much better.” Right?

I’m not so sure. I think I’m stronger now than I was back then.

Maybe the times that we struggle aren’t just a rough spot on the road to tranquility. Would we be who we are today without that struggle?