A woman went to the post office to buy stamps for her Chanukah cards. She said to the clerk, “May I please have 50 Chanukah stamps?”
The clerk asked, “What denomination?”
The woman replied, “O my G-d, has it come to this? O.K. – give me 1 Haredi, 2 Hasidim, 8 Orthodox, 12 Conservative, 16 Reform, 7 Reconstructionist and 4 Humanistic.”
I’m quoted in today’s issue of Newsday in an article entitled Twice As Much Stuffing: Hearty appetites will be thankful for back-to-back holiday feasts.
The story, written by Erica Marcus, is entertaining and well-researched. She even spoke to my favorite Jewish Holidays expert: Rabbi Michael Strassfeld (author of The Jewish Holidays: A Guide & Commentary).
My quotation is at the very bottom of the article:
Michael Radwin disputed the contention that “Hanukkah is early this year.” “Hanukkah always begins on the 25th of Kislev,” he said. “It’s November that’s late.”
I actually need to credit Ariella with that line. It’s more clever than anything I could come up with.
Cool beans. I wonder if Danny and I will get any more PayPal donations as a result of the article.
After a long week in Vegas, it’s wonderful to be back in LA tonight.
Ariella arrived late Thursday night, and we checked out of the Alexis Park hotel on Friday morning. We got a cheaper (and nicer) room at the Monte Carlo, so we checked in, walked along the strip, and enjoyed a leisurely brunch at the Flamingo buffet. We were hoping to see the last few minutes of Comdex, so we took a taxi over to the convention center. We arrived at around 2pm, and the place was deserted. Oh well.
We ran around Friday afternoon getting ready for Shabbat — bought some sandwiches for a picnic lunch, donuts for breakfast, purchased movie and show tickets. By the time we got back to the hotel, we had just enough time to order room service for dinner and then made Shabbat. After dinner, we saw the Blue Man Group at the Luxor.
Saturday we had some donuts for breakfast, davened Shacharit, saw the new James Bond movie, then ate our now-soggy sandwiches for lunch. We took our usual afternoon nap, then woke up just in time to visit the pool and hot tub. After the pool closed, we headed back up to our room and made Havdalah. We went out to a bar and got some 99 cent margaritas. They were watered-down, but it was fun nonetheless.
This morning we rented a car and went to see Hoover Dam. It’s an engineering marvel. The real deal. Definitely worth the 45-minute drive from Vegas. Next time, perhaps we’ll get to see London Bridge (in Arizona).
On our flight home, we were surprised to see cousins Diana & Baird board the plane. We’ll see them again on Thursday for the traditional T-day dinner in Malibu.
Sander van Zoest started off by describing three commond causes of link rot:
- Redesign/reorganize your website
- Switch dynamic page language (for example, from JSP to PHP)
- Typos (user hand-edits URL and makes a mistake)
Consequences? Link rot can be distilled down to one thing: 404 == bad user experience.
van Zoest spoke about some ways of detecting and discovering link rot in an auomated manner, and some Apache directives you can use to avoid the problem. Redirect, the mod_rewrite module, and using a PHP or CGI page for ErrorDocument 404 to try to dynamically redirect the URL to the new location.
The HTTP Content-Location header (not to be confused with the HTTP Location header) can be used to specify the permanent archive location of the current content. Useful for time-sensitive information, but user agents don’t really take advantage of this metadata.
van Zoest spent a few slides discussing how to avoid using things in URLs that one should avoid. For example, any query strings (the key=value pairs after the question-mark) make your pages less index-able by search engines, and you can often use Path Info instead. In addition, you can avoid extensions such as .php in URLs using techniques like Options +MultiViews, DefaultType, and ForceType.
In the future, Apache 2.0 could provide a map_to_storage hook which should help to make the URL-to-file system mapping less tightly coupled.
I got together with Ze’ev Suraski for lunch at the Hard Rock Cafe (just across the street from the Alexis Park Hotel).
We spoke about the matzav, how difficult it is to be a vegetarian during Pesach, Israeli politics, and our respective businesses. I got to practice a little bit of my Hebrew, but before I could embarass myself too much, we switched back to English.
I headed over to Stipe Tolj’s 1:30pm talk about using Apache as a WAP server, but I slipped into a post-lunch coma. I think I was awake for the last 20 minutes, so I got to hear a little about the Kannel server. Sounds interesting.
In his keynote address “New Ways of Thinking About Security: Open Source Thinking in a Bunged-up World”, Richard Thieme spoke about the contrast between linear thinking and network thinking in society. He posits that the Open Source movement represents a new kind of freedom and that chaotic and continually evolving.
Thieme spoke about how members of the CIA and the KGB had more in common with each other than they did with their respective political environments. Even though we think of free-market and communist countries as being opposites, the suppositions and the schemas to understand and categorize the world used by the intelligence community set them apart from the rest of the communities. He made a parallel to Open Source networks of programmers.
He claimed that writing code is a form of leadership, because leadership is saying what you think of the world in a clear and visceral way. It doesn’t require structural authority. Rather, writing code is functional leadership. Since leadership has two components (saying and doing), coding is in fact a true expression of leadership because it both expresses ideas and it performs a function.
He also spoke about authorship and intellectual property rights, and how these concepts were completely foreign before the invention of the printing press. Centuries later, Open Source and distributed networking are working to undermine those concepts. How do you define property when you share the information back and forth?
Security, identity, borders, and intellectual property rights are a function of clear boundaries. But, Thieme says, boundaries are not clear (and they’re getting less clear). We are moving towards a collective identity, away from the nation-state.
He wrapped but by describing Richard Stallman as a saint (saying that all saints are a little crazy), that it takes someone of an obsessive-compulsive mind to make truly amazing things happen.
Rob McCool, continuing in the spirit of the easy to understand but never-adopted Meta Content Framework and the standard but substantially harder to grok Resource Description Framework, presented TAP.
The overall problem is that there is a ton of data out there on the web, but it’s not in machine-understandable form. McCool is looking at addressing key problems of supporting a true web of data: query languages, canonical names, caching, and a system of trust (to avoid spammers).
On the query langauges front, McCool believes that SQL and XQL are overkill, but HTTP GET is not specific enough. So TAP defines a GetData protocol. It follows in the spirit of the DNS system, where you can use a gethostbyname() function to access the service. TAP uses RDF schemas to describe graphs of data, and SOAP as the over-the-wire protocol for querying.
McCool described a module called TAPache to implement the GetData protocol. In the same way that Apache provides an htdocs directory, it provides an RDF repository. His stated goal for TAPache is to be the “BIND” application for data.
Since Amazon.com and CDnow might have different identifiers for the same album, TAP doesn’t require using globally unique identifiers. But how do you tell the difference between “Michael Jackson” the musician and “Michael Jackson” your next-door neighbor? TAP addresses this using reference by desciption hen you want to do a query for “Michael Jackson”, you ask for someone whose firstName=”Michael” and lastName=”Jackson” and profession=”Musician” and who is the author of an album with title=”Thriller”.
When asked about the problem of matching “Donald Rumsfeld” and “Donald H. Rumsfeld” or “al Qaeda” and “al-Qaida”, McCool said that there are some decent algorithms for matching names that go beyond simple string comparisons. Sounds like a substantially difficult project to me. Is my laptop an “IBM 390X” or is it “390-X by IBM”?
An interesting sample application was a “related items” sidebar for news stories. In addition to doing simple Capitalized Words extraction from the document, you could envison something that used the RDF graphs to discover that Brett Favre was a football player and match that with eBay auctions for tickets for the Green Bay Packers.
Ze’ev Suraski began by giving a brief technical history of the PHP language. PHP 1 and 2 were developed around 1995. PHP 3, which started using lex/yacc more efficiently, was released in June 1998, execute while parsing. PHP 4 (May 2000) greatly improved performance (swtiched to a “compile first/execute later” paradigm, added reference counting) and improved the web server and extension APIs.
Zend Engine 2 uses a Java-like object model. All objects will be passed by reference, not by value. Other improvments include $obj->foo()->bar() dereferencing, __clone(), destructors (objects may define a __destruct() function), and unified constructors, and static class variables. It also adds some support for namespaces, exceptions (try, catch, and throw). In the future, Zend Engine 2 might add multiple inheritance and private member variables.
Suraski went on to show some demos of the Zend Engine 2, pointing out how much easier it is to do things like design patterns when you have an objects-are-references system. He showed an example of a factory method that just didn’t work without adding 4 ampersands in strategic locations. We also saw demos of the clone, destructor, and debug backtrace features.
All of his demos used the Zend Studio IDE which seems to have pretty good syntax highlighting, integrated debugger, and a nice help system.
Although the static class variables are a great idea, I didn’t love the self::$foo syntax you had to use to access them. Coming from a C++ and Java background, I would expect that $this->$foo syntax to work on the class variable (instead of dynamically creating an instance variable of the same name).
Sander, Jade, Zak, Shane and I headed off to the Mirage for their buffet lunch. Coversation included dead end jobs at dental labs, LindowsOS, differences between Israeli and Diaspora Jews, the conference scene, and handling traffic surges on websites (Fifa World Cup, 9/11, slashdot).
After lunch, I had a drink with Randy Terbush. We talked about Apache 2.0, Tribal Knowledge, where Yahoo! is going with the Open Source movement, and a little about the ASF in general.
I caught the tail end of Stas Bekman’s talk on mod_perl 2.0. I own a copy of the classic Writing Apache Modules in Perl and C, but I’ve only read the C parts of the book. In short, mod_perl 2.0 looks like it’s going to be really useful when it’s done. I got the impression that it’s still not ready for Prime Time, but it’s closer than it was 4 months ago. All new technologies need some soak time to work out all of the bugs.
Advanced Topics in Module Design: Threadsafety and Portability
Aaron Bannert’s talk was about thread-safe Apache code and how to use the APR when writing modules that need to do fancy synchronization and locking. I didn’t have the energy to take good notes and the room was a little too warm which induced some degree of sleepiness. So I’ll just summarize the session as follows: writing portable thread-safe code is a pain in the neck, and the APR makes it slightly easier. But it’s still a pain.
John Fowler, Sun’s Software CTO, spoke about Sun’s commitment to the Open Source movement.
Nothing earth-shattering. Usual corporate pitch about how we love the O-S movement, and look how much wonderful stuff we’ve opened up. Java Community Process 2.5 sounds kinda interesting.
What was more interesting was what Fowler didn’t say. I didn’t hear the words Sparc or Solaris mentioned once.