The other day I was thinking about how I could use a Raspberry Pi for a practical demonstration of some Unix shell basics. At right around the same time, I was using a neat little shell utility called pv, for pipe viewer.
What pv does is sit in the middle of a pipeline and display a progress bar, so you can have some idea of whether a long-running process is actually processing, and how much longer you'll have to wait for it to finish. It's great for things like copying big disk images to SD cards.
So ok, I thought, I have this PiTFT display. What if I made a pipeline viewer out of the Pi and stuck it on top of my regular monitor?
It turns out the basics of that are pretty easy to do, but the specifics are a good chance to experiment with some interlocking little technologies to make something useful (or at least cool to look at). In part one, we'll look at:
- Pipes, filters, and basic data processing with shell tools in Bash.
- Simple Python filter scripts.
- Pygame for data visualization, optionally displayed on the PiTFT.
In part two, we'll look at
- netcat for easily slinging data over network sockets.
- SSH as a secure and authenticated channel for data pipelines between machines.
- Node.js streams.
- Creating a simple Flask application.
This guide assumes a little familiarity with basic programming concepts and the command line, but is generally aimed at the beginner.