MyLifePix Design Process

CMSC 499A – Independent Study

5 October 2007

Abstract: A discussion of the design process of MyLifePix including Dr. Shneiderman’s needs, a history of photo sharing, manipulations on the initial dataset, design of the MySQL database, design of the user interface, overview of tasks, php and MySQL usage in implementation, and usability testing.

By: Veysel Cetiner

443-280-4836

Under the Direction of:

Dr. Ben Shneiderman

A.V. Williams Building

University of Maryland

College Park, MD 20742

+1-301-405-2680

Background

Before MyLifePix was even discussed, I had learned the basics and written a few simple web pages that took advantage of dynamic web programming. The experience left me in wonder thinking that there is nothing that can’t be done with dynamic web programming. To gain more experience, I began looking for an opportunity to use PHP and MySQL to solve more advanced problems.

I was initially impressed by the simplicity and portability that PHP offered as well as the long history that PHP has of being a dependable, scalable, and secure solution for web applications. Another benefit is the reliable and active online community. Whenever I experienced a challenge in implementation, I quickly found a solution with the help of user forums filled with expert advice. Since PHP has been widely used for so long, most of the questions that I had to pose were already answered in existing threads. PHP provides a powerful tool for dynamic web programming while providing for an overall accommodating experience.

I became interested in MySQL for many of the same reasons that PHP caught my eye. Plus, MySQL has a reputable runtime performance, availability of third party applications and tools, and MySQL's cross platform reach makes it highly portable. MySQL touts a remarkable record for any commercial or open source not just for clean and efficient code but also responsiveness in delivering fixes and patches to recently released code (“MySQL Review”). PHP and MySQL belong together like Marie and Pierre Curie; together they can accomplish so much that has not even been thought of yet. PHP has a set of MySQL functions that allow the programmer to access MySQL database servers. Another benefit of using MySQL and PHP is that they are both free. The price was a major factor in the decision; if there was another solution that was more widely accepted and supported but cost anything, I would have still opted to learn PHP and MySQL.

In my search for experience, I approached several staff members hoping that someone had the need for a dynamic web programmer. I met with Dr. Shneiderman who told me about his grand plans to weave all of the details of his professional activity into one online source where the interconnectedness of unique relationships could be highlighted. These details include internet browsing history, email records, all viewed and created documents, transcripts from meetings/conferences, professional photographs, and many other things all interlinked in one online repository.

Dr. Shneiderman’s effort to document his professional career closely resembles MyLifeBits, a project launched by Microsoft Research team-member Gordon Bell. With MyLifeBits, Gordon Bell attempts to create a digital memory bank of every aspect of a person’s life; these aspects include records of communications, website visits, medical statistics like blood/oxygen levels, and environmental readings like CO2 levels in the air one is breathing. Bell says that his effort is made to “enhance personal reflection.” According to a recent study at Addenbrooke’s Hospital in Cambridge, England, memory impaired patients who reviewed photos every night from a device used by Bell for MyLifeBits was able to retain memories for over two months; compare these results to memory impaired patients who read a written diary before bed which resulted in no significant improvement (Bell & Gemmell 2006, p.63). Forget medication, digital memories are a true memory stimulant.

Dr. Shneiderman asked me if I would be interested in creating a dynamic solution to include 25 years of professional photos in the effort to compile his entire professional history. I enthusiastically accepted his invitation and thus through my aspiration to learn more about database-driven dynamic programming and Dr. Shneiderman’s vision to compile a browse-able and searchable professional history, MyLifePix was born.

MyLifeBits and MyLifePix share a similar task but differ greatly in scope. MyLifeBits is an attempt to collect as many details about an individual as possible; MyLifePix gathers as much detail on a much narrower scope: the professional photo history of Dr. Shniederman. The benefits of such a project are manifest in several ways. The most obvious benefit would be that of sharing and reviewing pictures and memories. MyLifePix allows for an experience that will enrich a user’s memory of Computing History by strengthening old associations and creating new ones with information tagged and left by other users. MyLifePix is more than Dr. Shneiderman’s photo history; photo histories also exist for anyone identified on MyLifePix. Both MyLifeBits and MyLifePix serve to enhance the human experience of introspection, which in turn strengthens the memory and associated mechanisms.

Before I delve further into the scope of Dr. Shneiderman’s task I will pose and explore some questions about photography in general, like: “What is the purpose of photography?” and “Why is photo sharing important?” Following a more detailed look of the task of implementing MyLifePix I will discuss which technologies I used to implement MyLifePix and why I made those choices.

The Role of Photographs

What are photographs and why is it so important to share them? Photographs are many things to many people. To some, a photograph might just be a graphical representation of something they have or have not seen before. To most people, photographs capture memories and impressions left on the photographer. But to all people photographs are a medium of communication that describes events and surroundings better than words alone can. Photos must be viewed and shared in order for their value to be manifest.

The age old adage “A picture is worth a thousand words” can be extended in this case. When a picture is viewed the viewer thinks up a thousand, maybe more, words that defines the picture’s meaning, mood, etc… People are unique and no one will come up with the same thousand words for a given picture. The more people that see one photo, the more thousands of words there are for it, and the more meaning that photo gains. But when that photo ceases to circulate it is alone worth zero words. The meaning stays with the people who viewed and shared it. This is the essence of photography and answers the question “Why is photo sharing so important?”

Let’s take a look at how photos have been shared in the past. Most of us can still remember the old dusty box or plastic covered album that held our cherished memories. We often shared our histories by passing photos hand to hand as we explained the details – traveling, relatives, graduation, the first bike ride without those training wheels. This is the best that could be offered for a while. However, albums could only be shared with one person at a time, photos got lost or degraded, and sharing could only occur in close proximity. Then document imaging (scanning) became widely available. Amateur and professional photographers could scan their images and email them or post them on websites. This worked up to a certain point but was not easily scalable to large photo sets. At this time image compression technology wasn’t mature yet so file sizes were very large, storage space was minimal and expensive, and transfer rates were slow. Maybe only a handful of photos could be easily shared. But we know that people who are serious about taking and sharing their photos have hundreds if not thousands of photos. Luckily, advancements in technology come quickly in our age and internet access speeds have increased by roughly 180,000 times since the days of 56 Kb/s dial up connections. We are now free to utilize over 9.72 Gb/s speeds with fiber optic networks (International Engineering Consortium). Hardware and storage are also getting more efficient and inexpensive at even a faster rate. According to an article by the New York Times, data storage has increased in density by a factor of 10,000 since 1990 (Markoff). Cheaper prices for higher-tech products have caused the digital camera industry to boom. Business Week Online and Retailing Today reported that in 2006, 105.7 million digital cameras were shipped around the world (Business Week 2007) for a total of $83 billion dollars in revenue (Retailing Today 2007).

Film cameras have been quickly replaced by digital cameras and now instead of shoeboxes and plastic covered albums people have hard-drives filled with volumes of photos that need to be shared. Many photo sharing sites exist on the internet that solve the problems of photo sharing in many unique ways. Appendix A contains reviews for a handful of the most popular photo sharing sites on the web.

Deciding on a Custom Solution or Existing Solution

The decision to create a custom website or an existing online photo sharing site to house Dr. Shneiderman's photo collections was based on several factors. The more favorable solution must adhere to a list of requirements Dr. Shneiderman has provided to ensure the coherency of his photo collection and to highlight the benefits of thoughtful user interface (UI) design. Additionally, a custom design will only be chosen if PHP and MySQL can be used to easily implement the necessary features. Since this project was done in the scope of an independent study, the more favorable solution will offer the most to learn.

If so many photo sharing sites already exist, then why should we even consider implementing a custom design? In order to answer this question, I must first describe the specific tasks associated with the design of MyLifePix. With Dr. Shneiderman’s design needs in plain sight we can then look to see which existing services can help us and which ones can not.

The scope of Dr. Shneiderman’s task includes several key requirements listed below. MyLifePix was designed to:

  1. initially share close to 12,000 of Dr. Shneiderman’s professional photos collected over the past 25 years
  2. provide simple navigation tools and dialogues
  3. keep the existing metadata associated with the photos intact
  4. offer the ability to further collect annotations on the photo set
  5. require minimum upkeep
  6. provide maximum portability

Most online photo managing services are capable of fulfilling most of the 6 requirements for MyLifePix to be successful. Existing online photo managing services fall short when it comes to handling specialized sets of metadata. Most services offer a flat organization of metadata to identify and describe photos, but go no further to define or categorize the metadata itself. The detailed organization of metadata is important because a large portion of the MyLifePix photo set contains associated metadata describing dates, locations, people, and activities. For instance, 5,368 occurrences of people were recognized in the photo set and were imported into the MyLifePix database. Since there is so much valuable data that came with the photo set a large effort had to be made to keep this data intact and to expand on it, thus fulfilling requirement 3.

This metadata is organized in a specialized fashion. If migrated to an existing photo website, the organization would be flattened out and individual fields would not have been accessible alone. For example the date of the picture, location, people in the photos would have all been aggregated into one string per photo. Retaining the organized structure of the metadata allows for increased sensitivity in browsing. If a custom solution was built that keeps the metadata in a similar form to how it was received, the MyLifePix photo set can be browsed on several different indices, such as by: people occurring in the photos, dates that the photos were taken, and location where the photos were taken.

If a custom solution was implemented using PHP, the dynamic nature of the language would offer flexibility to display a large data set with a few reusable scripts. For example, since the content of albums is organized and structured consistently across the set of all albums, one script can be used to display the contents and descriptions of all albums. The same idea is applicable to content of collections and photos as well. Through a small set of reusable scripts, this dynamic design satisfies requirements 1 and 2. In order to additionally fulfill requirement 2, The MyLifePix Navigation Menu is displayed on each page to increase navigability by linking to each of the main categories by which the photo set can be browsed.

It is of the utmost importance that MyLifePix is made to be portable to other applications. Portability opens up possibilities for use of Dr. Shneiderman’s photos in many different ways. Surprisingly, the flexibility of PHP and MySQL that allows users to view multitudes of data by reusing scripts also provides an easily portable solution; by utilizing PHP ‘GET’, ‘POST’, and ‘SESSION’ variables, of which GET variables are the only ones visible to users through the URL, links to all of the data present in MyLifePix can be created in a predictable and intelligible way. The way that the URLs have been designed in combination with the GET variables allows anyone to create a link to MyLifePix that, provided with the correct values to GET, will lead to any collection, album, and picture that is part of MyLifePix. This allows portability to other services such as Flickr, Facebook, and the large scale integration of all of Dr. Shneiderman’s professional online presence; this satisfies requirement 6. Furthermore, over 19 million Internet domains are currently hosted on servers running PHP; meaning that if MyLifePix is ever migrated away from hcil.cs.umd.edu, it’s new home will likely be compatible (PHP.net 2007).

If a custom website were to be implemented, MySQL would be the relational database solution to storing and organizing records of the photo set and all of the associated metadata. Metadata would be collected and reformatted to fit the MyLifePix design, satisfying requirement 3.

The combination of MySQL and PHP would create a separation between the site’s design and content that allows further expansion on the metadata (annotation of albums and photos) with minimum upkeep of the website. In other words, MyLifePix contains an integrated content-management system that allows users that are invited to expand on MyLifePix’s metadata without the need of a webmaster to constantly update the content. These features satisfy requirements 4 and 5.

The scope of my independent study is to explore the design and implementation process for a peak user experience. Simply uploading 12,000 photos to Flickr, for example, provides a shallow learning experience, compared to designing a custom website to organize and present a large dataset, which has a much more significant lesson to teach. During the task of designing and implementing MyLifePix I would explore the design process from Envisioning to Releasing while paying specific attention to simplify common tasks (Shneiderman & Plaisant 2005). I would also have to overcome many nuances of programming in PHP and using MySQL that will take me beyond the novice level.

Building a custom website was chosen over using an existing service due to the specificity of the requirements to be implemented, the caveat of the data set organization scheme, as well as the scope of the course.

Existing photo album websites did not offer the functionality to upload our existing metadata in the existing organization scheme. Many existing websites offered powerful search functions, but much of the photo set is yet to be annotated; thus is not yet fully searchable. Creating a custom solution for the MyLifePix tasks offers a great opportunity to expand my horizons into PHP, MySQL, and the UI-centered design process while providing extra support for maintaining the organizational structure of the metadata.

Initial Data Set Analysis and Database Design

Given such an unique problem with practical benefits, I was eager to get started implementing MyLifePix. I was provided with a PhotoFinder database (.pdb extension) file for each of the 5 collections (Kang & Shneiderman 2000; Shneiderman & Kang 2000) ( Each database consisted of 8 tables named Appearance, Captions, Collections, DBInfo, Globals, Linkage, People, and Photos. In preparation to import selected data from the PhotoFinder dataset into the MyLifePix MySQL database, each .pdb file had to be converted to Microsoft Access 2007 format. Figure 1 shows the table structure of the initial data set in MS Access 2007 format after the conversion from .pdb format. Many of these tables contained little or no information relevant to MyLifePix. Therefore, the dataset could not be imported “as-is” into MySQL.

Figure 1