Italy, Hungary and Israel

Greetings from Jerusalem! We arrived in Tel Aviv early this morning, took a nap, and have been visiting with friends today. I’m typing this from a sealed room — Daniel and Miriam’s second bedroom serves mostly as a computer room but also contains supplies and has windows taped shut to guard against a chemical or biological attack.

We’ve got many pictures from the past week in Italy and Hungary. I’ll post them online soon. I’ll also take some pictures of Israel over the next few days before we head back to the States on Monday.

Here’s a cute picture from the Coloseo in Roma:

P3210037-med.jpg

If I can get the internet connection to work, I’ll post more online at our Yahoo! Photos album.

Spring Break!

malevplane.jpg We’re leaving this afternoon for a long-overdue vacation. It’s Ariella’s spring break from UCLA. Here’s our itinerary:

Thu, Mar 20: arrive in Rome.
Wed, Mar 26: depart Rome for Tel Aviv. Stopover in Budapest.
Thu, Mar 27: arrive in Tel Aviv. Travel to Jerusalem.
Sun, Mar 30: travel from Jerusalem to Ramat Gan. Overnight in Tel Aviv.
Mon, Mar 31: travel from Tel Aviv to Los Angeles. Stopovers in Budapest and London.

We’re really looking forward to seeing our friends in Israel. They’ve been gone for months, and it will be fantastic to visit with them (even if we’re wearing gas masks).

The adventurous side of me is looking forward to flying Malev Hungarian Airlines. Before we bought our extra-cheap tickets a couple of weeks ago, I had never even heard of that airline!

Efficient Apache 1.3 setup for port 80 and 443

apache-feather.gif If you need to run both SSL and non-SSL Apache 1.3 on the same host, the most efficient way is to run two separate server instances rather than using <VirutalHost>s and mutltiple Listen directives.

If you use multiple Listen statements to listen on either multiple ports or multiple addresses, Apache needs to use select() in order to test each socket to see if a connection is ready.

If you only use a single Listen statement, Apache uses accept() instead of select(). All children can just block in accept() until a connection arrives.

There’s a long discussion about the inefficiencies and syncronization difficulties of using a select() loop rather than an accept() loop on the Apache 1.3 performance tuning page.

Excerpt from that document:

“Ideally you should run servers without multiple Listen statements if you want the highest performance.”

We’ve been doing this for years at Yahoo! No, it’s not Rocket Science; it’s right there on Apache 1.3′s perf-tuning web page.

But there are many examples of SSL config files floating around out there with multiple Listen statements. If the rest of the world’s engineers are anything like me, there is a strong temptation to find a conf file that works and just use it. The copy-and-modify approach is great when all you want is functionality. But when performance matters, you’ve gotta read the docs.

Resume Overload!

I mentioned yesterday that Yahoo! is hiring engineers. One of my open reqs just hit the join.yahoo.com site.

Our recruiter just sent me 7 resumes of potential candidates in the last 20 minutes!

I guess this is why they say that it’s close to impossible to be a manager and still have time to write code.