Join Bill Weinman for an in-depth discussion in this video Introduction, part of Code Clinic: C++.
(theme chords chime) - Hello, and welcome to Code Clinic. My name is Bill Weinman. Code Clinic is a monthly course where a unique problem is introduced to a collection of lynda.com authors. In response, each author creates 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. This month the problem combines two concepts: recursion and accessing image metadata.
Recursion means to repeat something in a self-similar way. In programming recursion means a function actually calls itself, nesting a call to a subroutine within the same subroutine. Look for this in the code samples you're about to see from the authors. .JPEGs and other image files can contain additional metadata, stored as EXIF or IPTC. EXIF stands for Exchangeable Image File Format. It is a well-documented standard. If you have a digital camera, or have taken photos with a newer cell phone 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", and "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. Cell phones may also embed geographic location data, identifying the longitude and latitude.
This challenge is to look through the example files included with the Code Clinic, find images, extract the caption from the metadata, and then reorganize these photos into alphabetical order, based on the caption. As always, you may want to take some time and solve the problem for yourself. In the next videos, I'll show you how I solved this challenge in C++.
Bill introduces challenges and provides an overview of his solutions in C++. Challenges include topics such as statistical analysis, searching directories for images, and accessing peripheral devices.
Visit other courses in the series to see how to solve the exact same challenges in languages like C#, Java, PHP, Python, and Ruby.