Business Problem: The client, a high-end photolab catering to professional photographers, needed to deliver a large quantity of high resolution photographs to clients on CD or DVD regularly. In most cases, there were enough photographs that multiple disks were required. They had been paying interns to manually count up the number that would fit on a single disk, then wait while the CD or DVD was burned and repeat the process. This was both slow and expensive.
Solution: We created Datachunker, a program that automates this process. The user can tell it where to find the photographs and give it a folder in which to
work. They can also specify which type of medium will be used (CD, DVD or custom). When they hit the "Go" button, the program then does all of the work. It calculates the total amount of space required, creates folders named "Disk1", "Disk2", etc. in the working area, and copies the appropriate number of files to those folders. When it is done, it informs the user of how many disks will be needed. They then burn the contents of each folder (Disk1, Disk2, etc.) to a disk. The application attempts to keep the contents of subfolders together, if it is possible to do it without wasting too much space.
This solution makes the process largely automated, with only the burning of the disks requiring manual intervention.
Technical Details: Because the client uses Apple Macs running OS X exclusively, we used REALbasic™ to create a native OS X application. It is multithreaded, allowing the data to be processed without affecting the responsiveness of the interface. We also wrote a custom file copying algorithm that was optimized for copying large files. This increased the speed of the application significantly over the standard file copying function in the REALbasic API.