Author: Peter Membrey & David Hows
Audience: People unfamiliar with Linux
Reviewer: Harry Fairhead
Raspberry Pi is a great hit, but the fact that it uses Linux as its standard OS is a barrier to many beginners. A book that explains using it and Linux should therefore be a great idea.
Raspberry Pi (RPi) is a cheap and capable ARM-based computer that is used for pure software-based projects, such as web servers, and hardware/embedded projects of the sort that you might use an Arduino for. Unlike the Arduino it is a full computer system complete with a filing system, I/O devices such as keyboards and so on. So what is needed is a full operating system, and not just some sort of application downloader. The standard OS for RPi is Raspbian - a Debian based Linux. So in principle you could just get a book on Linux and learn what you need, but a book that deals specifically with Raspbian and RPi would do the same job and perhaps tell you just what you need to know.
Great idea, but this book may not be what you are looking for even though it has the correct target in its sights. The main problem is that its level varies from very low to quite high.
The first part of the book is especially low level and much of it is in a language that makes you feel like a small child - and even if you are a small child you really don't want to be made to feel like one. The introduction is particularly bad with a lot of "jokes" in the titles such as "Why Eat Raspberry Pi?". Later this style even manages to make understanding things more difficult.
Chapter 1 is about getting set up and it goes into great deal of detail about the cables you need, the SD card, keyboard and mouse. Then we move on to getting a bootable SD made using Windows, Mac OS X and Linux. From here we are into configuring Linux and there are pages of low quality photos that show you step by step how to choose a keyboard, a keyboard layout and so on. If you need this level of hand-holding you just aren't going to cope later on. There are some slightly more advanced things in the text such as resizing the SD partition to use the entire card but they are well hidden in the trivial.
Chapter 2 discusses the general idea of working with Linux. We have an introduction to X-server and then a very simple introduction to using the GUI - file manger, image viewer, editor and so on. It also goes into Scratch and Squeak but only to tell you they are there and how to fit the Squeak installation. If you have used Windows before then a lot of this is going to see very long winded. Chapter 3 moves on to consider the command line and how to get a terminal set up - using Putty.
The main topic of the book gets going at Chapter 4 which explains the file system - paths, directories, mount, permissions and links. The flip section titles really started to annoy me at this point because they made it difficult to see what it was all about. For example, a section headed "What' in Here with Us? Using ls" really isn't helpful if you are looking for a command to list the files in a directory. A few tables and summaries of commands and what they do would also help. It was difficult to see any bigger picture because of the style of the explanations.
The next chapter moves off into wider command territory with sudo, process management, ps and grep. Chapter 6 is about using the text editors, nano and vim and Chapter 7 is mostly about how to program using the BASH shell, which is fairly advanced. Chapter 8 is the last of the pure software chapters and it deals with setting up a LAMP system - basically installing Apache, MySQL and PHP. It also develops a simple web page by way of a demo.
Most of Chapters 2 and 3 are general Linux how-tos and all of Chapters 4 to 8 are not really RPi-specific at all. In short the bulk of the book is a general introduction to Linux. This might seem reasonable, but there are lots of opportunities to put things in context by letting us know how well things work. For example, if you set up a LAMP system using RPi - is this a reasonable thing to do? Is RPi fast enough to be used in these situations and if not what can you do to speed it up. What is a recommended configuration for using the RPi - a remote terminal or are you better using the keyboard and monitor?
The final few chapters of the book are about using the RPi in various specific applications. Chapter 9 is called WiPi and explains how to add a WiFi dongle to the hardware mix and then how to get rid of all of the other wired connections. This is a bit more interesting and more RPi-specific. Chapter 10 is about using it as a surveillance unit with a USB video camera. This is already slightly out of date because of the new RPi video module which provides much better performance than a USB connected camera. Chapter 11 about using the XBMC media system and how to use your smart phone as a remote controller. This last section is much more advanced and much more worthwhile but only if you are up to following what is going on.
It is important to realize that this book doesn't cover anything about interfacing the RPi, Python (the language commonly used with RPi) or any aspect of using it as an embedded controller. It is basically just about using Linux with a few chapters about specific applications. If this is what you are interested in then this might be a useful book.
Overall I found the style of the book difficult to read as it tended to make things that should be simple complicated. Also the use of poor photos in place of screen dumps, long difficult-to-read listings of fairly irrelevant outputs, and general poor presentation made the reading experience not as good it it could have been.
You might want to read this book, but I'd recommend the Raspberry Pi User Guide and a book or online documentation about Linux in its place.