Fazal Majid's low-intensity blog

Sporadic pontification

Fazal

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.

Mac OS X 10.2 “Jaguar” upgrade woes

I upgraded my iMac G4 (flat panel, with SuperDrive) today. I prefer doing a full reinstall of any major OS upgrade rather than an upgrade install (because I am afraid there might be leftovers of the old OS that can trip me up later), and I did so.

The install procedure worked smoothly, but it did not install iDVD. An upgrader for iDVD is available for download from Apple’s website, but it requires the presence of iDVD 2.0, which can only be ordered from Apple for $19.95, not downloaded. And of course the iDVD 2.0 disc is not included in the disc set provided by Apple with the iMac G4 (at least, the one I got; I ordered my iMac the very day it was announced, perhaps people who got it with Mac OS X 10.1 were more lucky). Grrr…

I found a workaround, which is as follows: copy the disk image files iMac HD Disc 1.dmg, iMac HD Disc 2.dmgpart through iMac HD Disc 6.dmgpart onto your hard drive from the system restore CDs. then double-click on the first one, which will be mounted. You can then drill down to the Applications folder then drag-and-drop the iDVD folder into the Applications folder on your startup disk. After that, apply the iDVD 2.1 updater you downloaded from Apple’s website.

I haven’t tried burning a DVD yet, but the program seems to work.