All camera lenses have some form of distortion of the image taken through them. Zoom lenses more than prime lenses due to the compromises needed to cover a range of focal lengths. Cheap lenses typically have more distortion than expensive lenses, because reducing distortion is one of goals of spending more money on a lens. But even the most expensive lenses cannot eliminate all possible distortions completely because optics design is a series of compromises, and at a certain level improving one thing makes something else worse. Just like focus, and circles of confusion, you reach an "acceptable" level of quality for what you're doing, and stop.

However unlike bits of glass and other optics, software has different limitations. Given enough CPU time, you can do almost anything in software without your efforts affecting anything else. (This is one of the key benefits of software, as rms (wikipedia page) pointed out in a recent talk on software patents I attended -- people making physical things have to deal with all sorts of limitations of physics, and interactions between parts, so can pratically use many fewer parts than people dealing with software.) DXO Optics Pro (Ken Rockwell's review) takes this benefit of software and applies it to correcting optical problems with lenses. By carefully measuring the distortion in different lenses they can turn this in algoriths which take the resulting image taken through the lense and apply the inverse of the distortion and get something much closer to the original scene. Ken Rockwell's review contains several examples of raw images, and corrected images viewable on mouseover. The extent of correction out of fisheye shots is very impressive, as is the fine tuning that can be done with other lenses. And most, if not all, of this is done automatically as the software comes bundled with the corrections for a large set of camera and lenses. A good lens becomes a great lens, by adding software. A great lens becomes amazing.

In many ways it reminds me of what a friend who was programming modem signal processing code 10 years ago said: modem signal processing had got to the point of precisely measuring the exact qualities of the telephone line combination it was running on at the time, then sending out the exactly right signal so that at the far end it received the easiest to decode signal leading to the maximum data transfer. Given enough CPU power you can compensate for the limitations of reality in software.

And now for something different: the Defcon 17 videos are up, and there are several interesting talks. The video of the slides (ie, slides + audio) seems the best compromise of size and quality, and usefulness. But there are also audio-only files, PDFs of slides, and a "slides + presenter" video file for most talks.

Also, building a safe autodialer to open an old high security safe, generally following the ideas in safecracking for computer scientists. Their talk at Defcon 17 about profiting from stock spam is also well worth watching.

Finally, Chase Jarvis (blog) created a book called The Best Camera is the one that's with you, which has its own website (he also commissioned an iPhone app for tweaking and sharing photos, available through the App Store; all released together). The book consists of photos that he took with his iPhone. According to this interview he's taken something over 10,000 photos on his iPhone. (He's a bit of an Internet star, and gets asked by Nikon, Sandisk, etc, to do various tests (warning: autoplay video) apparently including one recently in New Zealand. There's even a Chase Jarvis Shoe Project, so you can walk in his shoes...)