This document discusses the history and future of ubiquitous computing. It describes how computing has evolved from large mainframe computers used by many people to personal computers for individuals to many small computers everywhere for everything. Emerging technologies like embedded processors, wireless connectivity, new materials, improved sensors and localization will enable smart objects to cooperate and form an Internet of Things. Ubiquitous computing promises exciting applications but also presents challenges in infrastructure, usability, security and privacy that must be addressed.