I turned on a light

Multithreaded JavaScript has been published with O'Reilly!

I just did the most amazing thing the other day. I turned on a light.

Now, before you close the window, I should explain a little. This wasn't just turning on a light in your house with a switch; this was a light attached to my Raspberry Pi.

I literally pulled out my quad core, 2.2Ghz/8GB MacBook Pro, booted OS X, connected to a wireless network, plugged my little 700Mhz/256MB Pi computer into an ethernet devices on the other end of the room, wired an LED to a pin on the board, booted Linux on the device, waited until both devices negotiated with the network for an IP address, then fired up SSH, which encrypts all communications, so that I can send messages between devices, finally issuing a command on the Pi to set the pins attached to the light to go from being dead to outputting 3.3 volts.

Considering all I did was turn on a light that is a crazy amount of overhead. Every step involved in this process is an absolute miracle, having required decades of human ingenuity to achieve.

Science Fair 100 in 1 Electronics Kit
Science Fair 100 in 1 Electronics Kit

When I was younger, I used to be interested in electronics. My dad purchased me a 100 in 1 electronics kit so that I would stop tearing apart his equipment (e.g. an expensive police scanner, televisions, radios, electronic shavers…) This thing was awesome. I could make stuff that performed real world actions! Eventually, electronics and I grew distant. There is an overhead with maintaining an electronics workshop.

Years later I would get into computer programming. Writing code is a lot easier than building circuits; seemingly everyone has a computer (or three). The thought of interacting with anything in the physical realm was not something I ever even considered. I knew of things like ICU chip programming, but those used low level, intimidating, languages (assembly and machine language)! I only knew of high level languages used for making websites, like JavaScript and PHP.

Tools like the Raspberry Pi and the Arduino are amazing, as they are starting to allow high level computer programmers to interact with hardware. Sure, the possibility was always there, but now we have easy to acquire/affordable hardware. As more of these programmable devices with General Purpose Input/Output (GPIO) surface, we will see more and more hobbyists getting into the realm of hardware hacking. Thanks to things like the cheap $300 AR Parrot Drone that you can control programmatically with Node.js, we're going to see a lot of cool robots soon.

Thomas Hunter II Avatar

Thomas has contributed to dozens of enterprise Node.js services and has worked for a company dedicated to securing Node.js. He has spoken at several conferences on Node.js and JavaScript and is an O'Reilly published author.