And then somewhere around 2006 an iItalian company came with a cheap low cost development board (Arduino) which enabled people to develop programs on little microcontrollers with open source software, open source hardware. These little micro controllers are however quite powerful. They can be used to control home appliences, connect to the internet as a client but also as a server, send messages through GSM, tweets, control relays, motors, read you SD cards from your camera etc. The only limitation is your imagination.