Mylos

Pac Bell White Pages follies

I moved in August 2001. My entry in the white pages still points to my old address, both in the paper and online version. When I called Pac Bell’s customer service, it took 3 transfers and 45 minutes for them just to figure out what happened.

Apparently, it takes two or three billing cycles before the change of address percolates to the white pages database, and the online database is a mirror of the paper directory, i.e. updated only once a year in November.

In France, France Telecom guarantees three days between a change of address and its update in the online directory service. Apparently, in California, even 15 months is too much to ask for.

This leads to an average time of 9.7 months before updates (the seasonality of moves from US Bureau of the Census report SIPP P70-66 does not change this figure much). About 15.9% of the US population moves each year (source: Census report P20-531), and thus we can expect about 13% the addresses in the phone book to be incorrect.

Conclusion 1: batch processing is bad. Just say No.

Conclusion 2: don’t expect big, fat, happy, dumb and technologically challenged Baby Bells to lead the way into the broadband future…

Update (2002-12-19):

I learned yesterday that over half of California households have unlisted numbers. That figures…

End of an era at Nikon

I bought a 24-85mm f/3.5-4.5G AF-S Zoom-Nikkor for my father. This lens is a “G” series lens, which means it does not have a manual aperture selection ring. Unfortunately, the only Nikon camera I have to test the lens against is a mechanical FM3A. I thought the lens would be usable, if only wide open, but it also lacks the mechanical exposure meter coupling ridge, which means it isn’t usable at all except maybe with a handheld meter.

One of Nikon’s main arguments was the compatibility in its lens line (unlike Canon who sacrificed compatibility when they replaced the manual-focus FD mount with the “fly-by-wire” EOS mount). Most newer Nikon bodies (including the $2100 D100) are no longer able to meter with manual-focus AI-S lenses (other than the 45mm f/2.8P), and now older Nikon bodies won’t be able to use newer lenses either.

The two worlds of Nikon manual-focus and autofocus systems will now inevitably diverge.

Update (2002-12-13):

Nikon recently announced they will be producing a new “DX” line of reduced-image-circle lenses specially designed to offer wideangle capabilities to APS-size sensor digital SLRs like the D100. The other shoe drops?

Obtaining tracebacks on other threads than the current thread

Note: this entry was superseded and is maintained only for historical purposes. Among others, the restriction of not being able to find the stack frame for a specific thread has been lifted with changes in Python 2.3.

David Beazley added advanced debugging functions to the Python interpreter, and they have been folded into the 2.2 release.

I used these hooks to build a debugging module that is useful when you are looking for deadlocks in a multithreaded application. It basically has a single function that will return a list of the stack frames for all Python interpreter threads in the process.

Unfortunately, I was unable to find a way to get a stack frame for a specific thread (either by the thread ID or using threading Thread objects), as Python does not save the thread ID in its thread state.

Of course, I disclaim any liability if this code should crash your system, erase your homework, eat your dog (who also ate your homework) or otherwise have any undesirable effect.

Building and installing

Download threadframe-0.1.tar.gz. You can use the Makefile. I’ve built and tested this only on Solaris 8/x86 and Windows 2000, but the code should be pretty portable. There is a small test program test.py that illustrates how to use this module to dump stack frames of all the Python interpreter threads. A sample run is available for your perusal.

For Windows users, a pre-compiled binary for the standard Python 2.2.1 distribution is available: threadframe.pyd. Just copy this file in any location in your Python path and you should be able to run the test script test.py.

Displaying prints

Prints are still the most common way of viewing and sharing photos. Framing is certainly an option, but there is only so much wall space. Photo albums and portfolios are the most practical way to display prints to their best advantage.

Avoid the cheesy slip-in white plastic sleeve kind sold in supermarkets, get albums with thick paper pages where you can stick your prints with photo tape and optionally photo corners (available at most art supply stores). The better albums also have thin translucent buffer sheets to protect the prints. Make sure all the supplies you use (including the photo tape and corners) are archival (at the very least, acid and lignin-free, using archival polypropylene or polyethylene, not PVC or polymers with excess plasticizers from their manufacture, which can attack the prints).

Here are some good suppliers of presentation albums:

  • Pina Zangaro, a San Francisco-based company, makes elegant designer portfolios and display cases, with a predilection for brushed aluminum.

  • Kozo Arts, also based in San Francisco, makes exquisite hand-bound photo albums with silk covers, very popular for wedding albums.

  • Kolo makes expandable archival photo albums in handsome linen and leather covers, and are widely available in arts supply stores. Kozo Arts albums are not much more expensive, however and preferable in my opinion.

  • Prat and Panodia are two French brands of photo presentation and archival supplies, commonly used by professionals for their “books”.

Update (2003-01-27):

Unfortunately, I can’t recommend Pina Zangaro’s “BEX” line of slipcovered presentation portfolios. I had two, and they came apart unglued in my admittedly very humid apartment. What’s worse, one was placed in a bookshelf and acted as a kind of fungus magnet. Apparently, the cloth used for the binding is very hygroscopic (absorbs and retains humidity), and something in the glue is very nourishing for molds and fungus.

Southern revisionism is indefensible

Hypothetically, what would you say if you learned Bavaria proudly flew the nazi swastika over its capitol? And if they asserted the nazis were misunderstood, that World War II was fought for European unification, not racial supremacy and genocide?

Your reaction would be outrage, obviously.

Nazi flags do not fly over Munich because, after the war, Germans had to confront the sheer horror of what they had done and atone for it (unlike many Austrians who eluded this soul-searching with the convenient fiction that nazism was imposed militarily by Germany onto Austria). And the Germans do not fly nazi flags in their World War II military cemetaries either.

To this day the state flags of Mississippi and Georgia contain the “southern cross”, the battle flag of the Confederacy. And that flag still flies in a place of honor in the South Carolina capitol. Southern revisionists try and claim the Confederacy was about states’ rights, and that the Union was less than pure in its motives.

While it is certain the Union was less than ideal (the abolition of slavery was belated, and driven more by foreign policy than moral considerations), it is also equally clear the Confederacy’s motives were unambiguously evil. Unfortunately, the short-lived Reconstruction never forced the southerners to confront the true nature of slavery, which is why neo-confederates can deny slavery had anything to do with their cherished Confederacy, the same way too many Austrians unapologetically vote for Jörg Haider.