Nikon D700 + Voigtländer 125mm f/2.5 — 1/400 sec, f/4, ISO 800 — map & image data — nearby photos
Koumyou-in Temple (光明院), Kyoto Japan
So, Adobe has released the first official update for Lightroom 4, Lightroom 4.1. The release announcement on Adobe's Lightroom Journal blog lists the major changes, bug fixes, and new camera support (including recent heavy hitters like the Nikon's D4 and D800, and Canon's 1D X and 5D Mark III). However, the release notes don't even mention two changes that will be welcome and important for many users, so I want to tell you a bit about them here.
(The photos on this post, from my first visit earlier today to the small but elegant Koumyou-in Temple (光明院) in eastern Kyoto, have nothing to do with the prose of the post. They're just pretty pictures.)
Nikon D700 + Nikkor 24mm f/1.4 — 1/400 sec, f/10, ISO 2000 — map & image data — nearby photos
Upload Progress in Lr4.0 and earlier
Historically in Lightroom, when uploading one's photos to an online service such as Facebook, Flickr, etc., one sees a little progress bar in the upper left that chunks along with each picture, such as the one shown at right. With my plugins, the progress bar makes two steps for each image, one after Lightroom has rendered the copy to be uploaded, and another after the copy has actually been uploaded. However, there's no movement to the progress bar while the image is actually being rendered, and while the image is actually being uploaded. That's just how Lightroom has always worked.
So, during these potentially time-consuming processes, there's no indication that anything is happening. This is all the more regrettable when working with large videos, as they can take quite a long time to render and upload.
But even worse, the way Lightroom worked internally, large uploads were extremely inefficient. This was perhaps fine for most folks' images, but became a real problem with videos with sizes stretching into the hundreds of megabytes. On my machine, Lightroom would simply crash if I tried to upload a video weighing in at more than 30 or 40 megabytes.
Nikon D700 + Voigtländer 125mm f/2.5 — 1/125 sec, f/2.5, ISO 6400 — map & image data — nearby photos
this guy's socks reminded me of this photo on my recent post about my wife's ballet shoes
I made a suggestion to Adobe about how to allow plugin uploads to be more efficient, and they added this support in Lightroom 4.1. The result is extremely efficient, and plugins that make use of this support can now upload without file-size limit, at least as far as Lightroom is concerned. If your network and upload destination can handle a terabyte video, so can Lightroom.
While testing this stuff with a sneak-peek version of Lightroom that Adobe kindly provided to me last week, I realized that one of the by-products of using this new internal support was that I could have the plugin update the progress bar in real time while the upload progressed.
Upload Progress in Lr4.1
In the progress bar at right, notice the tiny little “7%” that's been added? That's the only difference from before, but it's huge from a user-interaction point of view. Now while the upload is happening, you can watch that percent-complete value march up, and you can see the progress bar creep toward completion. It's such a small thing that makes a surprisingly big difference: you no longer have to wonder whether the thing is stuck or not, waiting for the progress bar to jump once the upload has completed.
Nikon D700 + Nikkor 50mm f/1.4 — 1/400 sec, f/1.4, ISO 200 — map & image data — nearby photos
Koumyou-in Temple (光明院), Kyoto Japan
I spent the majority of the weekend working on this. It required writing a bunch of new code to use the new internal upload-handling stuff, and then retooling the plugins to work it in. It wasn't always smooth: I filed four separate bugs with Adobe on things related to this.
Sometimes I make murmurs about what I don't like about plugin development, most recently in “Ongoing Pitfalls of My Lightroom Plugin Development”, but also over the years in posts like “What To Do When a Hobby Becomes Work” and the most-unfortunate “Breakdown: When Good Intentions Don’t Scale”. But the days I spent wrestling with this were a joy because I was back getting my hands dirty with complex code that ended up actually working (I was able to work around most of the bugs), and the first time I tested a large upload and actually watched the progress bar slowly progress from 1% to 100% was positively giddy.
I don't expect many folks to understand that, but it was gratifying both as a user of Lightroom (the whole “no longer need to wonder” thing), and as a developer because I overcame obstacles to solve the real problem of handling large uploads. Before, some users would have trouble at 10-megabyte uploads, but now, 10 gigabytes would be a breeze.
Nikon D700 + Voigtländer 125mm f/2.5 — 1/400 sec, f/2.5, ISO 1800 — map & image data — nearby photos
So far I've pushed this change only in my uploader for PicasaWeb, which is also used a lot by folks for G+.
Google currently allows videos up to 100 megabytes, and I tested right up to the limit without problems. (Note: PicasaWeb specs note a maximum video of 1GB, but that's only when uploaded via Google's own Picasa desktop software; third-party apps are limited to 100MB.)
There is one caveat about this new support in the PicasaWeb plugin: due to one bug that I was not able to work around, the new support is used only for initial uploads, and not for image replacements (such as when republishing changes). This is unfortunate, but not as dire as it would be if Google allowed videos to be replaced. Google does not allow videos to be replaced, so the plugin continues to quietly ignore video updates.
I'll be pushing support in my other plugins soon, but I wanted to write this post right away to share a small slice of my geeky photographer plugin-developer joy.
Nikon D700 + Voigtländer 125mm f/2.5 — 1/400 sec, f/2.5, ISO 320 — map & image data — nearby photos
Another Important Lr4.1 Update: Respecting “Private” Locations
Lightroom 4's new map module lets you put a circle around an area and assign it a name and, optionally, mark that this location is “private”. When you export images located within that private location, the geoencoded coordinates are removed from the exported copy, thus, in theory, preserving your privacy.
However, with some photo-hosting sites (PicasaWeb, SmugMug, and Flickr come to mind), the uploading app explicitly tells the site the image's map coordinates while uploading, and herein lies the problem: in Lr4.0, a plugin could always see a photo's location, but had no idea whether the user had marked it as “private”. Thus, private locations were removed from the copy uploaded, but the location was still sent along with the image to be displayed to the world. So much for “private”.
Lr4.1 includes infrastructure support that allows a plugin to inspect whether a photo's location is “private”, so, my plugins will be updated soon to support this. The PicasaWeb plugin already does, sporting new options to control if/when location data is sent to Google.