The prospect of ubiquitous computing in everyday life urges us to raise basic design issues pertaining to how we will live with, and not only use, computers. To design for everyday life involves much more than enabling people to accomplish certain tasks more effectively, and therefore, traditional approaches to human-computer interaction that focus on usability are not sufficient. To support critical discussion of, and reflection upon, the design of everyday computational things, both new design philosophies and a richer collection of design examples are needed. This thesis reports on the development of a design philosophy based on investigations of the design space of everyday computational things. Using experimental design, a collection of design examples illustrating how computational things can become integral parts of everyday environments has been developed. These investigations have been centred on: amplification of things and environments using computational technology; different forms of information presentation; the use of everyday materials in the design of computational things; and the aesthetics of computational things in use. The specific results are a number of design examples, including support for local interaction, access to digital information using physical objects as tokens, information displays such as the ChatterBox and Informative Art, and examples of Slow Technology. The general results are presented as a design philosophy for everyday computational things. This design philosophy is aimed at design for meaningful presence, rather than efficient use, and states that computational technology is a design material, that time is the central design parameter and that aesthetics is the basis for design for presence.