(intro effect) - Hello, and welcome to Code Clinic. My name is Ray Villalobos. Code Clinic is the course where a unique problem is introduced to a collection of lynda.com authors. In response, each author will create a solution using their programming language of choice. You can learn several things from Code Clinic. Different approaches to solving a problem. The pros and cons of different languages. And some tips and tricks to incorporate into your own coding practices.
The problem combines two concepts. Recursion and accessing image data. Recursion means to repeat something in a similar way. In programing, Recursion means a function will actually call itself. Nesting a call to a subroutine withing a call to the same subroutine. Look for this in the code examples you're about to see from the authors. JPEG files can also contain additional image data. Stored as Exif or IPTC. Exif stands for Exchangeable image file format. And is a well documented standard.
If you have a digital camera or have taken photos with a newer cellphone camera, the image probably has Exif data available. Using a Macintosh you can see this metadata information by opening the image in Preview. Opening Tools, Show Inspector. And selecting the Exif or IPTC tab. On Windows, you can see metadata by right-clicking an image, selecting Properties, and the Details tab. You'll see things like Caption, Dimensions, Camera type, Color space, Exposure information and other details.
Cellphones will also embed geographic location data. Identifying the longitude and latitude. The challenge is to look through the example files include with Code Clinic. Find images, extract the caption from the metadata, and then reorganize those photos into an alphabetical folder structure based on the caption. As always, you may wanna take some time and solve the problem yourself. In the next videos, I'll show you how I solve this challenge.
Visit other courses in the series to see how to solve the exact same challenges in languages like C++, C#, Java, PHP, Python, R, Ruby, and Swift.