About Me


I played drums in 5th-grade band, but if you're looking for the Jeff Friedl who plays drums for ASHES dIVIDE, that's not me.

What is me is...

Random data points about Jeffrey Friedl
  • I currently live in Kyoto, Japan.
  • Married to Fumie since 1998.
  • Son Anthony born October, 2002.
  • Have studied the following languages in school: English, Spanish, German, French.
  • Can actually speak the following languages: English, Japanese.
  • Languages I apparently wasted a lot of time on for nothing: Spanish, German, French.
  • Born in San Diego, California.
  • Raised in Rootstown, Ohio.
  • Bachelor of Science in Math / Applied Computer Science: Kent, 1987.
  • Master of Science in Computer Science: University of New Hampshire, 1988.
  • Have been in a couple of big earthquakes (Loma Prieta '89, Kobe '95).
  • Spent 2.5 painful years writing the first edition of Mastering Regular Expressions (O'Reilly Media, 1997).
  • Spent 2 more painful years writing the second edition (O'Reilly Media, 2002).
  • Spent only 9 months updating for the third edition (O'Reilly Media, 2006).
  • Catholic.
  • Have programmed in C since 1981, Perl since 1990. Don't know C++.
  • Have used jfriedl@yahoo.com as an email address since before there was Yahoo! Mail. Still use it.
  • Wrote these blog posts.
  • Took these pictures, and these, too.
  • I lurk on Google Plus and Facebook.
  • Adobe Systems, Inc 【アドビ システムズ】 (10/2007 — 8/2008, and again 12/2009 — 5/2010)
    I consulted on issues related to Lightroom.
  • Peak Web Consulting (2007 — 2008)
    I worked on back-end infrastructure tools for top-tier bandwidth users (big Big players on the Internet, whose names I'm not allowed to mention).
  • Yahoo! 【ヤフー(アメリカの本社)】
    Sunnyvale, CA, USA (1997 - 2005)
    Architecting and engineering on the Y! Finance site, using mostly Perl/MySQL to fold, spindle, and hopefully not mutilate reams of financial data. I was employee #192. When I left )-: I was the 30th most senior (by time, certainly not influence) employee.
  • Omron Tateishi Denki 【オムロン立石電機】
    Nagaokakyou, Japan (1989-1997)
    Mostly kernel work on a four-processor symmetric shared memory system that Omron was developing. While at Omron, spent about three years as a “visiting scientist” at Carnegie Mellon University (and was mostly unimpressive to the superbly smart people there).
  • Northeastern Ohio Universities College of Medicine (NEOUCOM)
    Rootstown, Ohio (1981 - 1986)
    Worked with a first-run IBM-PC with DOS 1.0. (Unfortunately, Microsoft has not improved on their software much since then). Washed a lot of lab equipment. Did a lot of programming, including some really advanced flow cytometer control software in FORTH.

I enjoy researching a subject of personal interest, and then, because I occasionally stumble across an ability to write well, sharing the results. Examples include my long writeup on digital image color spaces, the auto-focus test chart that I developed, and a detailed Analysis of Lightroom JPEG Export Quality Settings. (See all in my list of geeky photo-tech posts.)

I also seem to have become the main provider of plugins for Adobe Lightroom, such as my plugins that allow direct export to Zenfolio, Flickr, SmugMug, PicasaWeb, Facebook, and more: see my Lightroom Goodies page for current details. I develop these on my own time, as a hobby, which is perhaps a bit odd because I don't actually use most of them in my own photo workflow. In case it's of interest, I've written up a story on how I fell into this line of handiwork: “Road to Now: My Long Path To Lightroom Plugin Development

For comments specific to a blog post, feel free to leave a comment on the post. Otherwise, feel free to send email. (Plugin logs should be sent as per this FAQ.)

The 30 most-recent comments (out of 286; see all), most recent last...

I’ve recently started using your Flickr and Facebook publishing plug-ins in Lightroom. Do you have any plans to create a similar plug-in for 500px?

That’s covered here —Jeffrey

— comment by David Stinner on March 8th, 2016 at 12:43am JST (1 year, 5 months ago) comment permalink

Hi Jeffrey,

Have you considered a plugin for Amazon S3? If doable, it seems like it would be popular.


— comment by Chris on March 27th, 2016 at 11:53am JST (1 year, 5 months ago) comment permalink

Hi Jeffrey,
big fan of your blog and tools, Lightroom has been easier with you !

I have a question, might interest some other users so I post it here:

I (well, Lightroom did) deleted a whole year of photos on my disk. Not in LR catalog, but on disk.
2 great trips and a friend’s wedding shooting , so I’m really pissed of ..
It happend during a ‘synchronize’ operation, I made the mistake of importing other pictures while synchronzing, I think lightroom messed up and started to delete some pics. Whatever.

Lightroom’s synchronization feature includes a “remove missing photos” option, but if that was what caused it, the photos would have been deleted from Lightroom as well, so I don’t think it was the synchronization. From what you describe, I wonder where there was an issue with how the remote drive was mounted… maybe it wasn’t really mounted when you had the photos before, so the photos are really on your hard drive hidden under the now-mounted NAS folder? It could be worth digging around more. Also, have you checked the system trash? —Jeffrey

I made the other mistake not to have a backup of my NAS

I used ext4magic , but nothing retrieved 🙁 Maybe because my NAS was quitefull, maybe because I tried too many tools before ..
I used then PhotoRec. It works ! More than 100 000 retrieved files to sort now. Lot’s of corrupted raws , but lot’s of jpeg are fine at least.

I have also used your terrific “Extract Cached Image Previews” plugin. saved me at least a good jpg preview of the majority of them, thanks a lor for this.

My question : All recovered files have random file names. Would try to match 3200 manually .. quite a pain. But almost all of them (except corrupted ones) have metadata.
What would you suggest to match them with lightroom images ?

Workflow would be :
1 extract LR metadata for each LR image, along with its filename.
2 find a jpg or raw recovered file mathcing this metadata set
3 rename the found recovered file.
4 move them back to their original place on NAS

Won’t be perfect (2 pictures took at same second will have same metadata) but I don’t aim perfection here.
any idea of how to do that ?
I should not be the first one in this situation, although I found nothing close on the web.

1. could be done though your collegue’s LR Transporter at photographers-toolbox,
2. I don’t find any software to do that , would use custom script, based on exiftool to extract them
3. done in the same script
4. the easy part

any idea to do that without coding it myself ?

Thanks a lot for your advice.

One step that might help a bit would be to rename the files to something based on their capture date, using ExifTool. I don’t see a solution beyond that without doing some coding, sorry. )-: —Jeffrey

— comment by Arno on April 10th, 2016 at 3:07am JST (1 year, 4 months ago) comment permalink


I can find no other way to contact you. I do use several of your plugins.

How can I assign an image as a “wallpaper” in IOS 9.3 so that it is not enlarged?????

I have tried a number of suggestions seen on the WEB but none works. I am ashamed that I am angry at Apple because of this, possibly I am simply not clever enough. Could you be so kind as to make a suggestion as to how to fix this? If not will you join me in my aggravation ? (a semi-joke).


My blog home page has a “Contact Me” section. I suspect that if you make an image the exact pixel size of your screen, it won’t be resized when set as the wallpaper. —Jeffrey

— comment by vince solomito on May 8th, 2016 at 6:46am JST (1 year, 3 months ago) comment permalink

Hi Jeffrey

I’m a web developer and big fan of your Lightroom Plugins (and donor :), specifically the Folder Publisher which I’m using to export my jpgs into a personal photo backup webapp I’m working on. Great stuff!

I have a workflow issue maybe you could offer some advice on. I use a Sony A7S and download my best photos to my iPad over WiFi while travelling. However, when I get home I’m forced to re-pick all my photos in Lightroom.

Is there a way that I could dump all my picks from my iPad, generate a list of MD5 hashes or filesizes, and have a Lightroom plugin/script compare a catalog folder’s images to this list and automatically place a flag on any that match?.

In a nutshell looking to synchronize picks from an iPad app with Lightroom.

I’m willing to learn how to code a plugin myself to do this since it would be such a massive time saver. Just curious if it’s even possible or if there is some other tool to do it.

All the Best,


Well, my first thought is to suggest using the Lightroom iOS app, since that’s about as integrated as one could imagine. My next suggestion is to somehow use the Lr/Transporter plugin to update Lightroom from a data file that you (somehow) make from your iOS app. —Jeffrey

— comment by Graham on May 28th, 2016 at 9:53pm JST (1 year, 3 months ago) comment permalink


Just found your blog: “Digital-Image Color Spaces, Page 1: Introduction”. Well done, wish I had found it back in 2006. I have been programming graphics and working in lighting topics since 1996. I can’t believe I have programmed for this long without understanding Colorimetry. But now that I am knee deep in trying to understand it, I can’t believe how complicated it is:) Doesn’t help that I am colorblind:)

Anyway, just wanted to thank you for you exceptional blog and say that I love your pictures as well. Keep it up!


— comment by Kevin Marshall on May 30th, 2016 at 4:15am JST (1 year, 3 months ago) comment permalink


I have this message error today

Unexpected HTTP status from Google: 404
Unknown user.

Yeah, Google is flaky sometimes. —Jeffrey

— comment by Tommy on July 14th, 2016 at 11:53pm JST (1 year, 1 month ago) comment permalink

Hi Jeffery. I have registered for your Facebook, and Flickr plugins. Just wondering if you have any plans to make one for Googles Panoramio?

You do great work…..thank you

I’d love to, but no, they don’t want one. They were one of the first places I contacted (almost 10 years ago now!), and astounded me with their ignorance of geoencoding. They weren’t interested in a Lightroom plugin. —Jeffrey

— comment by Stephen Fralick on July 30th, 2016 at 10:30am JST (1 year ago) comment permalink

Hi Jeffry. I used you http://regex.info/exif.cgi to see video file info. I has an “exif” for it an in exif there is some serrialized data, which contains video file descriptions, such as size, bit depth, coordinates and so on. (I saved this data in binary file and opened in your viewer). Can you tell me what data format is it? XMP or IPTC? Meybe you have binary structure description for this format? (I need deserialize this data)

I don’t know… I suppose it depends on the video-file format and, perhaps, on the type of metadata. (Some files allow different blocks of data to be in different formats.) Your best bet is to look at ExifTool, its docs and perhaps its source. —Jeffrey

— comment by Mikhail on August 18th, 2016 at 12:28am JST (1 year ago) comment permalink

I have been using your plugin exporting images from Lightroom to Zenfolio. Thanks so much for creating it. I am wondering, is there any way to not have to export to a folder and just upload to zenfolio? Thanks! Lisa

I’m not quite sure what you’re asking. All photos at Zenfolio must live in an album, so when uploading you must supply a destination. On the Lightroomside, you don’t need to make a Publish Service, though… you can just select photos and “File > Export” directly. —Jeffrey

— comment by Lisa Cohen on September 7th, 2016 at 5:52am JST (11 months, 14 days ago) comment permalink

Hi Jeffrey,

Using your awesome People Support plugin, a thought popped into my head. Have you considered creating some sort of family lineage or relationship plugin? If there is more than one person in a photo, it would be cool to be able show the relationship, i.e. grandmother-grandson, etc. I sort of do this now using keyword hierarchies, but it’s rather clunky. I don’t know if a plugin is technically possible or how would it look, just a thought.


I’ve thought about it, but it’s more than I want to bite off now. It’d be interesting if someone did it…. —Jeffrey

— comment by Chris on September 11th, 2016 at 7:24am JST (11 months, 10 days ago) comment permalink

Good Day Jeffery, I am test driving the LR “Folder Watch” plugin. I have to enable the scan everytime I open LR. Is this by design or should the box “Enable Scan” supposed to stay checked once I click on the “Done” button in LR plugin manager?



Just below that option is a separate “Automatically restart scan every time Lightroom starts” option. —Jeffrey

— comment by Robert on September 21st, 2016 at 2:44am JST (11 months ago) comment permalink

Dear Jeffrey,

Unfortunately we cannot neither donate nor buy anything on PayPal in Turkey.
Is there any other way for me to register your plug-ins?

Send me an email with your needs, and I’ll take care of it. —Jeffrey

— comment by Cem on October 17th, 2016 at 1:01am JST (10 months, 4 days ago) comment permalink

Hi Jeffrey-

This is Alan from Salem, Oregon. Really love your work. Don’t know how you know so much but I’m glad you share. After 10 years your article on color spaces is still the best.

I’m wondering if any of your plugins or utilities can count and report the number of colors in an image? I understand .jpg has the capacity for up to 16.8M colors but usually there is a great deal less in any individual photo.

Thanks again for all your work.


Thanks for the kind words(!) I don’t know of any plugin that does that, but it wouldn’t surprise me if you could figure it out via Image Magick. —Jeffrey

— comment by Alan on December 2nd, 2016 at 12:09pm JST (8 months, 19 days ago) comment permalink


Your plug-ins are fantastic… I have several.

I have about 10,000 duplicates in Lightroom in various folders. I used your Duplicate plug-in to find and reject them. Now how can I export them to organized folders outside of my Lightroom home folders and remove them from the catalog?



I’m not familiar with the plugin you mention (whatever it is is not mine), but a quick way to get the originals out of your Lightroom hierarchy, yet still maintain the folder structure, is to select them all and “File > Export as Catalog”. If you check the “include negative files” option and deselect the various preview options, you’ll end up with a copy of the selected files rooted at wherever you told Lightroom to save them. You can then delete them all from your current catalog, and also delete the LRCAT catalog file that got created, leaving you with just the files you selected. Take care, though, not to accidentally delete something you don’t intend to. —Jeffrey

— comment by David on December 5th, 2016 at 2:23am JST (8 months, 16 days ago) comment permalink

Regexif is sorely missed. Might a little fund-raising bring its return? I’ve got $5 sitting here to toss in. Just sayin’, your fans are out here. Thanks for the many years of service to the puzzle-solving geocaching community! (yes, there is such a thing, and your site has become a critical tool in our solve-box.

Whatever you do, take care!

Give this version a try… —Jeffrey

— comment by Andy on December 19th, 2016 at 12:03am JST (8 months, 2 days ago) comment permalink

hi dear.

i m a regular user of your blog. last few weeks your blogs is down (Jeffrey’s Image Metadata Viewer).

today saw your blogs thank lot dear. very useful for me. but every time is asking i m not a robot. can u pls remove that option. i hope you dear. once again thanks

No, sorry, I have to limit robots because I have to pay for the bandwidth. A few people that abuse it make it more difficult for everyone. )-: —Jeffrey

— comment by raj on December 28th, 2016 at 3:08pm JST (7 months, 24 days ago) comment permalink

Hi Jeffery

I am from Cleveland Ohio USA, and stumbled upon your site from a post on Manual Lense Forum regarding vintage Mamiya Sekor lenses, which linked to a sample of your photo’s… which btw are beayoutiful and I just wanted to say Thank You for sharing your photographic vision with the rest of us..!


— comment by Steve Hong on December 31st, 2016 at 6:59am JST (7 months, 21 days ago) comment permalink

Any chance you will develop a plugin for 500px from Lightroom?

See “Saga of Frustration: Developing (and Abandoning) a Lightroom Plugin for 500px” for your answer. —Jeffrey

— comment by Michael on February 4th, 2017 at 5:16am JST (6 months, 17 days ago) comment permalink

Hi Jeffrey,

I’m having an issue with the export to Google Photos (Picasa) application. I get :

Unexpected HTTP status from Google: 501
Insert is no longer supported

I’m sure I’m doing something wrong, I’d appreciate any guidance here


Google is shutting PicasaWeb down. —Jeffrey

— comment by Garry Pycroft on February 12th, 2017 at 4:47am JST (6 months, 9 days ago) comment permalink

I’ve been using both your Smugmug uploader and EXiF checker for years, although mostly I used a Safari extension called EXIFEXT for that. EXIFEXT required only a right-click and select a menu item to bring up the most important data in a popup window, but recently it stopped working. The developer says he’s not going to pay $99 a year for a free plugin certificate from Apple (and I don’t blame him a bit for that), so an update to fix the problem is not in the cards.

So if you get a little free time and can’t find any snow to track up, there’s a hole in the needs of Safari users . . . .

— comment by Michael on February 12th, 2017 at 7:09am JST (6 months, 9 days ago) comment permalink

Hi Jeffrey,

Re PicasaWeb, yes I realise this is being shutdown but this App was being used to publish to Google Photos and no longer appears to work. You wrote “Uploads had suddenly stopped working, and it seemed like it was because Google had abandoned PicasaWeb, and that may still be the case, but thanks to Rob Jones over at Lightroom plugin provider New P Products for cluing me in on an upload method that still actually works.”, however I don’t see that it does work. Can you explain how we should configure the App.


Google seems to be dismantling things bit by bit. There is no information from them about it… things just stop working. The new way to upload worked when I posted that comment, but since then new things have stopped working. It’s ABUNDANTLY clear that PicasaWeb is being shut down, Google doesn’t care about those that had been using it, and Google has no interest in having photographers use Google products. This plugin is dead. Google Photos looks destined to follow the same left-to-die-on-the-vine path. —Jeffrey

— comment by Garry Pycroft on February 13th, 2017 at 4:34pm JST (6 months, 8 days ago) comment permalink

Hi Jeff,

Big fan of your photography on the interwebs.

Saw this video and immediately thought of you.




I’ve never been to the area, but that lovely video certainly makes me want to visit! Thanks for sharing it. —Jeffrey

— comment by Mark on March 5th, 2017 at 12:32am JST (5 months, 16 days ago) comment permalink

Hello Jeffrey! I traveled to Dubai (amazing!!) two weeks ago and since taking 1300+ photos, have decided to open a zenfolio account for sharing….and downloaded lightroom to start editing. I am having trouble downloading your plug-in to my Mac….I am following the specific instructions, have saved the plug-in to a desktop folder labeled plug-ins- but can’t unzip???

According to your instructions, I need to unzip before using plug-in manager? Geez….I must be missing something simple….any help would be appreciated!

Thanks so much-

Perhaps your browser unzips it automatically, leaving the plugin folder all ready to be moved to wherever you want it to live on your system? —Jeffrey

— comment by Chrysa on March 29th, 2017 at 12:13am JST (4 months, 23 days ago) comment permalink

User Chrysa asked about unzipping a Zip archive on a Mac. This is not done by the web browser either automatically or manually. UnZip on a Mac is done simply by double clicking the Zip archive, by the Mac OS X, which launches the unZip program upon double click.

— comment by Michael on March 29th, 2017 at 7:54am JST (4 months, 23 days ago) comment permalink

Hi Jeff,

I recently tried to reproduce the never-ending recursion of parsing CSV, that you so eloquently discussed in The Perl Journal. (Back in the day!) Despite my attempts, I could not get any regex engine to hang on the bad input. Does this imply that Larry Wall (and other wizards) have improved their algorithms to detect simple mega-recursion cases like this?

I was trying to illustrate to a CS class what could go wrong with recursion. I fell back on Fibonacci, but I really think that the students are much more likely to use a regex in the rest of their lives than calculate Fibonacci numbers.

P.S. We met way back at an ORA author’s signing thing. Mine was about Objective-C, so you know that I am now obsolete. Fortunately, all the best features of Obj-C were carried along into Swift, so in fact I love Swift.

I know that Perl eventually got quite good at it, but don’t recall other engines that were good at it (except of course DFA-based engines), but it’s been more than a decade since I really looked into this stuff. —Jeffrey

— comment by Andrew Duncan on April 4th, 2017 at 9:19am JST (4 months, 17 days ago) comment permalink

Hi Jeffry,
here is a suggestion for your “Find Next Photo Group” plugin (part of Bag-o-Goodies):
I assume the plugin is evaluating only the time information to build photo groups.
In my opinion it should stop grouping if file extension or image dimension or rotation change.
Images with different extension/dimension/rotation should never be grouped. They can’t belong to the same burst/panorama/….

— Greetings from Germany

You’re absolutely right…. I’ve just pushed an update with this. Thanks! —Jeffrey

— comment by Martin Schultheis on April 14th, 2017 at 7:02pm JST (4 months, 6 days ago) comment permalink

i tried the Metadata-Wrangler and intend to use it and give a reasonable donation to the program …because its great and your are generous.
unfortunately, I was unable to solve the main problem i have: i need the the original image size in the metadata and not the exported size. Is that somehow possible at all?
example: image ist 4500×3000 pixel orignal dimensions; it will be exported 1500×1000 pixel; but this exported image should have the original dimensions in the metadata.
would appreciate your help

You could use the OriginalWidth token to add the data to one of the fields that MetadataWrangler can write to, e.g. “original size: {OriginalWidth}x{OriginalHeight}“. —Jeffrey

— comment by philip on April 17th, 2017 at 4:45am JST (4 months, 4 days ago) comment permalink

I emailed awhile ago to ask for help with logging into tumblr, and I don’t know if you fixed something or tumblr did, but it works now! I’m back to posting from LR and I couldn’t be happier 🙂

— comment by Alan Paone on April 23rd, 2017 at 5:48am JST (3 months, 28 days ago) comment permalink

Hi Jeffrey,
I just downloaded your zenfolio plugin (thank you so much!) and am trying to match the existing galleries from zenfolio into LR galleries.
Looks like LR matches the images and I get “53 already-associated images were reconfirmed, but no new matchups were found.” but in the collecitons it shows “0” for images. I tried all galleries and one by one gallery.

I was able to create a new gallery from LR into zenfolio and it works fine, but not for the galleries already existed on zenfolio prior to the plugin.
thanks for your help!

It sounds like you’ve yet to do step #3 (Populate) mentioned here. —Jeffrey

— comment by Olya Gary on August 10th, 2017 at 8:24am JST (1 week, 4 days ago) comment permalink
Leave a comment...

All comments are invisible to others until Jeffrey approves them.

Please mention what part of the world you're writing from, if you don't mind. It's always interesting to see where people are visiting from.

You can use basic HTML; be sure to close tags properly.

Subscribe without commenting