Mobility has become increasingly important for both business and casual users of computing technology. With the widespread adoption of portable computing devices, such as laptops, PDAs, tablet computers, music players, and cell phones, people can have almost constant access to their personal data as well as to information that is shared with others. A user drinking coffee in a cybercafé in India can access e-mail residing on a mail server in Seattle. A doctor in New York can monitor the health of patients in remote parts of Africa. A mother waiting to pick up her children after school can be instantly notified that her daughter’s soccer practice has been moved to a new location. Teenagers congregating at the mall can use their cell phones to locate not only their buddies but also the hottest sales. Advances in wireless technology, such as WiFi and WiMax, allow people to communicate from their computers with friends, colleagues, and services located around the world. However, providing users anytime, anywhere access to contextually relevant information presents substantial challenges to designers of mobile computing systems.