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? online communities redux

My friend Chris persuaded me to sign up for, an online community/job networking website.


It’s like 1999 all over again, and the web still sucks. Back then, PlanetAll promised to help you manage your contacts so you’d never need to update your address book every again; you just “linked” to someone’s PlanetAll account and any changes to their contact info would propagate to your PlanetAll account. Amazon bought ’em, tried to use them as a vehicle for selling books, and then eventually shut the site down when they couldn’t figure out how to make it profitable.

Then there was good ol’ sixdegrees. That site was designed around the cute concept of “six degrees of separation” between any two people on the globe. You could sign up on the site, but you had to earn enough karma points (or something like that) by getting people to link to you and verify your membership in order to get any value out of the service. I don’t need no stinkin’ website to validate my existence.

Even my employer jumped in the online community game with Yahoo! Clubs. The site combined message boards with photo albums and member lists. I think the most popular section was the Hanson Club; the site was really just a place for 12-year-old girls to hang out and chat about their favorite bands. But after a year or so, folks got tired of having to remember to go back to the site to check for new messages. So we replaced it with Yahoo! Groups, an email-centric service, which is quite popular and still going strong. Mmmm, bop.

All quiet on the Online Community Front for a couple of years.

But now we’ve got the venerable Friendster, with 1.3 million users and a lot of buzz. I’ve seen a demo at the urging of a friend in Seattle, but right now it seems like a dating service in disguise. It claims to be much more than that (“It’s a great way to meet people just to increase your social circle”), but I have my doubts. The site is free now, but they’re going to start charging $8 a month; that’s cheaper than other online dating services, but I lost interested in that scene several years ago.

This Spring, my friend Rachel introduced me to Meetup, an online/offline community site which helps you arrange in-person get-togethers at coffee shops or restaurants. The idea is that people in your geographic vicinity might interested in anything from stamp collecting or Howard Dean, and if only you knew about these other folks, you’d all start a club and become best friends instantaneously. All while drumming up some extra business for Starbucks. Online community meets offline community. Or something like that.

So now shows up on the scene. Despite Chris’ urging, I’m pretty hesitant to join. “Isn’t this just Friendster all over again?” I ask. “I’m a married man, you know.”

“No, it’s not a dating service. This site has got a much bigger emphasis on professional networking,” he replies. “You really oughta see for yourself.” So while Ariella was studying for a Greek exam last night, I signed up and took a look around.

The site is still pretty small, but there’s potentially some value. I even found a classmate of mine from BrownCS through the Brown “tribe”. And a friend of a friend of Chris was hunting around for a JPS Commentary on the Torah. But the guy lives in Utah; wouldn’t it be easier for him just to buy it online than for me to ship it to him so he could borrow my copy? I wonder what the value of a networking resource is (especially in the job market) when most of the contacts don’t live in the my area. does definitely do one thing right. Instead of using a rigid categorization scheme for things like interests or skills, it lets you enter free-form text. The software engineer in me realizes that almost every click on the website results in some full-text query (which has gotta put a burden on whatever search technology they’re using), but the end-user in me likes the fact that I don’t have create my profile based on someone’s preconcieved notion of the universe. You’ll never find choices like Egalitarian Hasidic or Conservadox on a drop-down menu.

If you’re curious, drop me a line and I’ll send you an email invitation to the site. For some reason I can’t get a generic referrer link to post on my website. Hey, no surprise here; the web sucks.

Field Day by Shere

Field Day by Shere I was browsing through my CD collection this morning to find a few more albums to rip to my iPod and I came across Field Day, a funky acoustic pop album I hadn’t listened to in a while.

It’s good. And now that it’s on my iPod, I’ll probably listen to it more. I really like After the Rain and Watching Amy. If there’s interest, I’ll see if I can get permission from the artist to put a full-length sample MP3 up on my site.

Aside from being a talented singer/songwriter, Los Angeles local Daniel Shere is also a screenwriter. His claim to fame is co-writing an amusing short film called George Lucas in Love, a comedy that pays homage to both Star Wars and Shakespeare In Love. You may have seen it floating around the Internet back in ’99 when high-bandwidth content was all the rage.

The website is a little goofy, but don’t let that prevent you from buying a copy of their album. At a total cost of $13.40 ($10.99 plus shipping & tax) it’s a pretty good price for a great album.