Join Patrick Royal for an in-depth discussion in this video Recursion and Directories, part of Code Clinic: Java.
- View Offline
(theme chords sound) - Hello and welcome to Code Clinic. My name is Patrick Royal. Code Clinic is a monthly 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. This month, the problem combines two concepts: recursion and accessing image data.
Recursion means to repeat something in a similar way. In programming, recursion means that a function will actually call itself, nesting a call to a subroutine, within the call to the same subroutine. Look for this in the code samples you're about to see from the authors. .JPEG files can contain 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 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 then "Show Inspector", and selecting the "EXIF" or "IPTC" tab. On Windows, you can see the metadata by right clicking on the image, then selecting "Properties", and the "Details" tab. You'll see things like "Caption", "Dimensions", "Camera Type", "Color Space", exposure information, and other details. Cell phones will also imbed geographic location data, identifying the longitude and latitude. The challenge is to look through the example files included with Code Clinic, find images, extract the caching from the metadata, and then reorganize these 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 solved this challenge.
Patrick introduces challenges and provide an overview of his solutions in Java. 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#, C++, PHP, Python, and Ruby.