Hacks

New Version of Lightroom Reporter

I finally got a few minutes of downtime from editing so I made a few updates to my Lightroom Reporter application.  I got a lot of wonderful feedback from my photographer friends; based on that feedback I added a few new features.  You can now report on statistics by camera/lens setting, adjustments and presets used.  If you are interested in trying this app out, shoot me an email.  This is probably going to be the last version I release in Adobe Air - I started learning a programming language called Lua so that I could rewrite this application as an Adobe Lightroom plugin. LightroomReporter, Adobe Air application for retrieving statistics from Adobe Lightroom

DIY Video Dolly

Once in a while I love to step away from behind the camera and actually get my hands dirty by building something photography-related out of semi-useful junk that fills shelves in my garage and basement.  A few weeks ago I ran into an old friend who is a graphics designer and an animator.  We sat down for a cup of coffee and he told me about a project that he was recently hired to do. A company that makes custom things, pretty much anything from abstract furniture to small unique precision parts, approached him to do an animated commercial about their production process.  After visiting their shop for a few weeks, my friend decided to do an augmented reality clip for his clients – a commercial where real video is combined with animation.

In order to produce these custom parts the company uses CNC routers (or CNC mills) – computer-driven machines that take instructions from CAD drawings and produce 3D parts using either cutting heads or super thin and super powerful jets of water.

After about 3 cups of coffee, my buddy exclaimed – “Hey, you are a photographer, maybe you can help me out.  Come with me to meet this client, maybe you’ll have some ideas.”

I had a blast wondering around the workshop and drooling over cool tech toys (they would not let me play with any of their machines).  After my initial “oh, look at that” and “can I press this button” moment was over, I started thinking about the best way to produce this commercial. In my mind, there were 2 problems to solve, both of them tied to the amount of clutter in the workshop.

Cluttered workshop | Dmitriy Babichenko Photography | Pittsburgh commercial photographer

The CNC we chose for his video produces wooden parts; it is a giant machine that sits in the corner of an extremely cluttered workshop, and removing the clutter was not an option.   We decided that we would shoot the CNC’s cutting head from two angles; we’d take two Canon 5D Mark III cameras with 100 mm f/2.8 lenses, set them along the base of the CNC (along vertical and horizontal axis) and shoot the cutting head wide open (at f/2.8) in order to blur out the clutter in the background.

That brings me to the second problem – when shooting wide-open with a telephoto lens, you have to be extremely careful about focus.  Digital SLRs loose their autofocus capabilities in video mode, which meant that we had to pre-focus both cameras on the cutting head.  That meant that each camera had to move only left to right to follow the cutting head – moving it forwards or backwards would result in out-of-focus video.

We shot several takes with regular video dollies; pretty much after the first take we decided that we needed a custom solution to move cameras along the base of the CNC.  We also decided to do time-lapse animation instead of a continuous video.

When I came home, I immediately looked through my garage and my basement for anything that I could use to build a custom video dolly.  The Frankenstein dolly below is made out of a piece of plywood, two sets of skateboard wheels (donated by one of my co-workers), a video monitor stand (Goodwill, $2.95) and a tripod column (Goodwill, $1.50).  I had to cannibalize a pair of old rollerblades to add a set of wheels and attach them at a 90-degree angle to the dolly so that they would roll along the base of the CNC, keeping the dolly perfectly parallel to the cutting head.

DIY Video Dolly | Dmitriy Babichenko Photography

I’m not sure what I enjoyed more in this situation – coming up with a solution or participating in producing a commercial.  Hmm… Probably a bit of both.

Lightroom Reporter

Lightroom reporter software | Dmitriy Babichenko, Pittsburgh Wedding, Event photographer and software developer
A few days ago I wrote about my idea for an application that would report Adobe Lightroom statistics. I asked all of my photographer friends to tell me what statistics would be useful to them and I got a few really good pointers. Last night I could not sleep so I spent a few hours and hacked together the first version of my app. I wrote it for Adobe Air so that it would run on any platform. Chances are that you already have Adobe Air installed on your computer, but in case if you don`t, you would need to download and install it before installing my application (Lightroom Reporter). You can download Adobe Reporter here. Right now this first version only displays some basic camera and lens usage statistics. I already started working on additional features such as getting statistics on editing habits - how often do you adjust exposure, crop, etc... If you can think of any other statistics that would be useful, please drop me a note - I`m making this software available for free, so making it better would benefit (hopefully) everyone.

Hacking Lightroom or Why Everyone Should Know How to Program

I firmly believe that everyone should have basic programming skills. Whether you are a photographer, a mechanic or a doctor, pretty much every system in today’s world is ran by software; understanding how that software works will lead to better understanding of tools that you use to do your job and will make you a better professional. A little while ago Wired magazine ran an article about a Facebook software engineer who taught his 8-year-old daughter to program – he even wrote a book (cleverly titled Lauren Ipsum) to explain programming concepts to young children. Let me make my case as to why photographers need to have basic understanding of coding and databases. A few days ago my friend Jenny Karlsson sent me a link to an Adobe Lightroom plug-in that would tell you what focal lengths you use the most in your photographs. Such information is really useful if you are trying to decide what lens to purchase next. After talking to Jenny I decided to investigate this question further – I wanted more information than just focal lengths. I wanted to see what lenses I used most often; I wanted to see in how many of my photos I used fill flash (I’ve been told that I’m too obsessed with artificial lighting). There are plenty of plug-ins and stand-along programs out there that would pull that information for you. The caveat is that good apps cost money and crappy apps are just that – crappy apps. I did a quick Google search on “Developing Adobe Lightroom 4 plugins” and one of the first hits took me to a document describing Adobe Ligthroom 4 SDK (software development kit). After skimming through the documentation for a few minutes, I learned that Adobe Lightroom stores its data in an SQLite database – a standard approach to local data storage for most desktop and mobile applications. There are several free applications that allow you to look at SQLite data. The ones that I use the most are SQLite Manager plugin for Mozilla Firefox browser and Run!. SQLite Manager requires that you have Firefox installed on your computer and Run! requires Adobe Air. All the examples in this post use SQLite Manager, but Run! has a very similar user interface. Download and install Firefox and SQLite Manager plugin. If you are using Microsoft Windows, start SQLite plugin by clicking the orange “Firefox” tab in the left top corner of your browser window, then selecting “Web Developer” and “SQLite Manager”. On a Mac, go to Firefox → Tools → SQLite Manager.

Hacking Lightroom | Dmitriy Babichenko Photography
When SQLite manager launches, click the “Open” icon at the top menu bar.
Hacking Lightroom | Dmitriy Babichenko Photography
Browse to the location of your Adobe Lightroom catalog (a file with “.lrcat” extension). Make sure to select “All Files” in format choices.
Hacking Lightroom | Dmitriy Babichenko Photography
Double-click on Lightroom catalog that you’d like to load.
Hacking Lightroom | Dmitriy Babichenko Photography
Once Lightroom catalog loads, click on “Execute SQL” tab. On the left-hand side of window you’ll see a list of tables that contain all of Lightroom’s data. On the right you will see a text field where you can type in your queries. Database queries are written in SQL (Structured Query Language) – it’s fairly standardized across all database vendors, so you only have to learn it once. Copy and paste the following query into the text field and click “Run SQL”. SELECT focalLength, COUNT(focalLength) FROM AgHarvestedExifMetadata GROUP BY focalLength ORDER BY COUNT(focalLength) DESC You’ll see a list of all lens focal lengths that you’ve used in your photographs.
Hacking Lightroom | Dmitriy Babichenko Photography
Now type in SELECT b.value, COUNT(b.value) FROM AgHarvestedExifMetadata a JOIN AgInternedExifLens b ON a.lensRef = b.id_local GROUP BY b.value ORDER BY COUNT(b.value) DESC and click “Run SQL” Now you should see a list of all lenses used to take your photographs and you’ll be able to easily tell which lenses you use most often. When I have a bit of downtime this winter, I would like to write a cross-platform application that will pull statistics from Adobe Lightroom and Apple Aperture. I am planning on releasing this app under Creative Commons license, which means it will be free to use and modify. If you are a photographer and would be interested in being able to compile statistics from Lightroom or Aperture, shoot me an email or post on my Facebook page and let me know what statistics would be most useful to you. If you are interested in learning more about databases, check out http://www.sqlcourse.com/index.html and http://beginner-sql-tutorial.com/sql.htm for SQL tutorials. If you want to learn a programming language, Python is a very useful language to know. It has reasonably low learning curve if you are trying to do simple things and it has many built-in libraries for dealing with text and image files. If you actually want to know the engineering details of how digital cameras work, I highly recommend the following books:

Crazy Camera Setup

Creating camera setup | Dmitriy Babichenko, Pittsburgh Wedding Photographer
It’s a Friday night and I’m getting my equipment ready for next day’s wedding. I’m reformatting my memory cards, cleaning lenses and packing batteries when I get a call from the bride. Apparently, the minister who was supposed to perform the ceremony got sick and the replacement minister told them that he finds photographers distracting. He told my couple that the only way he would allow a photographer in the church is if the photographer stays all the way in the back corner behind the last pew. I photographed at that church before and I knew that staying all the way in the back would mean that I would not really be able to get any usable photos. The church is very large and a 200 mm lens (my longest lens) is not nearly long enough to get any type of decent close-up. If I had known in advance, I would have rented a 300 mm or a 400mm lens. Moreover, because of columns on either side of the isle all the photos would be from the same angle – essentially throughout the entire ceremony I would be photographing the bride’s and groom’s back. The bride was understandably upset and I had a few hours to come up with a solution. My first idea was to place a camera in on the other side of the altar and fire it remotely. The only problem was that I could not find a motor cable for my PocketWizard trigger. So I had to get creative. I made a quick run to my office and borrowed a Dell laptop. The next stop was a BestBuy store where I picked up a wireless router. When I got home I set up a wireless network between the Dell laptop and my MacBook Pro. Once the network was set up, I download and installed Canon EOS Utilities on the Dell laptop and Microsoft Remote Desktop Client (http://www.microsoft.com/mac/remote-desktop-client) on my Mac. Once everything was setup and configured, I used a 15-foot USB cable (I normally use it for on-location tethered shooting) to connect my Canon 7D to the Dell laptop. Then I launched Remote Desktop Client on my Mac and was able to control Dell laptop’s screen, EOS Utilities and subsequently my Canon 7D remotely. With this setup I was not only able to trigger the camera remotely, but I could also see what the camera saw and was also able to control settings and focusing points. On the wedding day I got to the church an hour early, set up the camera on a tripod behind the altar, hid the Dell laptop under the pulpit and ran the USB cable under the rugs. Everything worked like a charm. Even though I was stuck in the back of the church and my view was blocked, I still managed to get more than a few great shots.
Creating camera setup | Dmitriy Babichenko, Pittsburgh Wedding Photographer Creating camera setup | Dmitriy Babichenko, Pittsburgh Wedding Photographer

Photography, Software Engineering and LightBox

Dmitriy Babichenko | Pittsburgh Photographer Sometimes having two jobs sucks. However, more often then not, being a software engineer and a photographer is actually a pretty decent combination. Being a photographer helps me step back from the code and think about problems creatively. Being a software engineer helps me gain a very technical perspective on photography (yes, I am a geek and I actually know how CMOS and CCD sensors record image data). Another advantage of being a software engineer is that I can write software that helps me run my photography business. Over the years, I’ve written scripts, applications and even Photoshop plug-ins that managed my backups, batch-processed image files and geo-tagged vacation photos. My ability to write my own software saved me countless hours of dealing with repetative and boring tasks and allowed me to concentrate on things that I actually enjoy doing. Recently I found myself using Lightbox2 photo gallery more and more, both on my blog and on some of my clients’ websites. Lightbox2 is a JavaScript library that can be included on any web page; it allows you to create attractive image galleries with minimal knowledge of HTML. Quite a few of well-known websites use Lightbox2 or similar solutions to display image galleries - Wired.com, Lifehacker, Lensbaby and many others. If you have to deal with a small number of images, it’s pretty easy to follow examples from Lightbox’s website and hand-code your gallery. If you have a blog or a website that’s based on the WordPress platform, you can install LightBox2 as a WordPress plug-in and WordPress will pretty much take care of everything for you. However, if you have a custom blog like I do, than you can use one of the handy scripts that I wrote to simplify my life. Below, you’ll find two scripts - one is written in ASP.NET, another one in PHP. They do the same thing - if your website is running on a Microsoft Windows Server, use the ASP.NET script. For Linux servers, use PHP. Simply download and extract the files below (the ASP.NET script has two files) and upload them to your web server. Once the files have been uploaded, you can access them through the browser by typing http://[your website address]/LightboxGenerator.aspx for ASP.NET script or http://[your website address]/LightboxGenerator.php for PHP script.