Feb. 14th, 2010

maradydd: (Default)
Here is the preface to Plumbing for the Arduino, the new Creative Commons-licensed book about parallel programming for the Arduino by Matthew C. Jadud, Christian L. Jacobsen, and Adam T. Sampson:
Embedded programming has always been about dealing with the real world in a timely manner.

When you push a button on your microwave, it beeps and updates the display immediately. It doesn’t matter if the microwave is currently making popcorn or not—it responds in near real-time to your touch. If you’ve ever tried to achieve this with your Arduino (or other embedded controller), you discovered that it is very difficult to make your embedded project do two things at once—like controlling a motor while waiting for a button to be pressed. You either found yourself writing large, complex loops that constantly check everything about your system, or you found yourself reading about “interrupt vectors,” and wondered if you should have paid more attention in your high school physics class.

Plumbing, and the language it is written in (occam-π), makes these problems go away.

This is how you write an introduction that makes people care about what your project does. This is how you take a specialty solution, heretofore useful to and understandable by only people who already understood process algebra and the pi-calculus, and present it as another tool for people's toolboxes right alongside hammers and screwdrivers. If you want to drive a nail, get a hammer; if you want to do parallel tasks in real-time, get occam-π.

Now, that said, figuring out how to describe a project (especially the more abstract or academic ones) in terms of "what problem does this solve" is not always easy. Figuring out how to do so concisely and in a way that people are likely to remember is even harder. But it is crucial to making your project matter.

Profile

maradydd: (Default)
maradydd

September 2010

S M T W T F S
   1234
567891011
12131415 161718
19202122232425
26 27282930  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags