There are plenty of technical books that have come up in the market recently, but few as entertaining at this one. Making Things Talk: Practical Methods for Connecting Physical Objects walks us through the process of building electronic gadgets that can interact with other devices as well as with the various physical objects of the world. Have you ever wanted to make your pet‚Äôs bed send you an email? The author, Tom Igoe and Dan O’Sullivan, provide us a series of simple projects that teach the gadgets you create to communicate with one another through the formation of networks of smart devices. In this technical book, everything is well explained as to how to create an electronic device that can easily talk to you as well as interact with its environment.
Making Things Talk: Practical Methods for Connecting Physical Objects is written in a reader-friendly language. It contains step by step instructions about how to create such a unique object that is not only fun to play with but also brings praise and recognition. In this technical book, you’ll be trained on a host of small projects.
People who have lot of interest in these ventures but lack subject matter will largely benefit from this book. This technical book is just apt for the beginners who want to experiment with things and come up with innovative ideas of creating gadgets that can interact with the physical objects. If you are a science teacher and want to tell your students as to how to trace the weather condition at different places at a particular point of time, this technical book can be of good help to you.
All you need to know is that how to make the object talk; be it an email program, microcontroller-powered device or a network database program. You will be able to learn effectively by going through this technical book “Making Things Talk” thoroughly. You’ll be surprised to know that with the help of this book, you can do things like making the bed of your pet, send you a mail, and making your Bluetooth radio to pass on sensor data through wireless mode and many more. Before this, have you ever thought that it would be possible to create a working project for you that could virtually communicate with the physical objects of the world?
‘Making Things Talk’ will also tell you how to create your own game controller that can interact online. You can even set up a communication network between your personal computer, microcontroller and internet server. You can write up programs and send them across the internet.
With a bit of technical know-how, you can create several microcontroller kits and a couple of network modules and make them interact with the physical objects using different technologies such as Ethernet, Bluetooth and Zigbee. There are endless options in this technical book and the best part is that they are not so complicated and the outcome is worth trying.
To conclude, Making Things Talk: Practical Methods for Connecting Physical Objects is a wonderful book to learn about some easy to make electronic devices that can very well interact with the physical objects. It is 428 pages and is published by Make Books (September 28, 2007).
Web navigation is, ideally, something you never have to think about as a Web site visitor or user. As a Web designer, however, it is among your primary concerns. If you need a good education on this particular subject, you’ll find a great resource in O’Reilly’s Designing Web Navigation. It’s an outstanding guide to building effective, professional navigation for sites of all kinds.
Writing analysis
It’s unfortunately rare that a technical book be well-written these days, but Designing Web Navigation bucks the trend. The writing is clear, and though it is generally concise, the author isn’t afraid to go into detail when necessary.
Putting the book to the test
Also rare among technology books, Designing Web Navigation is in full color. Roughly half of the book’s pages have a screen shot example to show a concept in action. Most of them are positive, though there are a few worst practices examples from current Web sites. I don’t generally like “naming and shaming” in books like this, but the way it’s done in Designing Web Navigation, sites that have bad design elements are shown as being successful despite those flaws.
This book is easy to read, exceptionally easy to understand because of the graphical examples, and fun to progress in because of the creative use of color and the excellent chapter summaries and questions. Designing Web Navigation is comprehensive in its coverage of its title topic. The book starts out explaining the purpose of navigation and the various ways it can be implemented, then progresses into planning, designing, and evaluating a good Web navigation scheme for every imaginable scenario.
Summary and conclusions
In all ways, this is a unique book. It was well planned, creatively executed, and its graphic-heavy style with colorized headings shows that the book itself has an effective interface. So not only is this book about creating user-friendly Web interfaces, but it is also an excellent example of good interface design. There is no doubt that you’ll get an outstanding education in Web interface design from reading this book.
There aren’t many FreeBSD books on the market — compared to the number of Linux books, anyway — so it’s important that the few extant titles be superbly written and technically accurate. I was really looking forward to reading Absolute FreeBSD 2nd Edition because I’d heard such great things about the aged first edition. Unfortunately, I found this book to be a spectacular disappointment.
Writing analysis
This is a big, thick book, which makes it a little intimidating, but also offers the promise of in-depth technical information. Most of that space is occupied not by great technical writing, though — it’s consumed by colloquial garbage. The author offers long-winded, meandering, and pointless filler discussion on nearly every imaginable unimportant topic, and retreats into general statements about technical points that border on the inaccurate.
Absolute FreeBSD 2nd Edition is a traditional No Starch book, heavy on “I’m your best pal” conversational speech with little technical substance. Trying to rapidly achieve a high level of understanding about the FreeBSD operating system by reading this book is as frustrating and annoying as trying to get driving directions from someone who wants to describe every road and landmark between here and your destination. You might get there, but you’re going to get lost a lot.
Not only is the material badly focused, it’s also badly organized. The first chapter goes into meaningless depth on where to go for help, suggesting to readers that FreeBSD is a difficult, confusing, and problematic operating system that immediately requires more help than the book offers. This chapter should have been shorter and later (last) in the book.
Putting the book to the test
Absolute FreeBSD 2nd Edition is a substantial update to the first edition. This one covers FreeBSD 7.0, which is light years ahead of the FreeBSD 4.X series covered in the original text. As is frustratingly typical for the FreeBSD release cycle, the actual release has been delayed well past its original schedule, which means that the book covers a release that was not yet complete at the time of publication. The good news is, the material should be valid for quite a while. Time will tell if the FreeBSD 7 series lives up to expectations, but as far as guessing at a good release to choose to write a book about, the author did well.
As mentioned above, it’s difficult to put this book to use. The language makes Absolute FreeBSD 2nd Edition hard to sit through. If you’re hungry for FreeBSD information, you’re going to have to suffer through pages and pages of unimportant filler and unfunny asides, extracting little bits of useful information as you go.
The majority of the information in Absolute FreeBSD 2nd Edition is so general and non-specific that it is nearly useless. Every fact I saw in this book had a big gaping hole through it. For example, in chapter 2 the author describes what each platform designation means:
“i386: The good old-fashioned Intel-compatible personal computer.”
“powerpc: The PowerPC processor found in older Apple computers and many embedded devices.”
“pc98: Similar to i386, but popular in Japan.”
“sparc64: Used in high-end servers from Sun Microsystems.”
These descriptions, when taken at face value, are inaccurate. i386 covers a much wider range than the 80386 and its derivatives (and the i386 port will not work on any machines prior to the 80486 era); some year-old Apple machines have PPC processors (“older Apple computers” used Motorola 68k processors as far as I am concerned); pc98 is not i386; and a large percentage of Sun’s high-end machines use AMD64 processors, not to mention the fact that Fujitsu has sparc64 machines as well, and not all UltraSPARC-based systems will work with FreeBSD. These are just hints at the kind of technical depth that should have been in this book, but was appallingly absent. This was either a result of the author’s laziness or his zeal for writing in simple, technically anemic language aimed at readers of below-average intelligence.
In all likelihood, you will abandon this book long before you finish reading it from cover to cover.
Summary and conclusions
The litmus test for all FreeBSD books and guides is whether or not they offer substantially more information than can be found for free online through The FreeBSD Handbook. In general, Absolute FreeBSD 2nd Edition does offer more information, but the author really makes you work to find it — so much so that you’d be better off figuring most of it out on your own — and the bits that are there are obscured by over-generalized, non-specific language that leaves you feeling like you don’t really understand the boundaries of the covered topics.
The only people whom I could reasonably recommend Absolute FreeBSD 2nd Edition to are those who struggle with basic technical concepts, do not want a great deal of technical detail, and enjoy a long-winded colloquial writing style.
I’m obligated to mention that I wrote and maintain a FreeBSD guide called The FreeBSD Crash Course (I’m working on an update now). It’s a short, concise guide to installing and configuring FreeBSD, aimed solely at technical people. Since it is focused differently and distributed electronically as a PDF, I do not consider it a competing title to Absolute FreeBSD. If you feel that I’m the sort of character who would do a hatchet job on a book like this to glorify my own guide, then you can safely disregard my review.
In switching over our software and hardware review sites to a new publishing application, site design is something we put a lot of consideration into. I wish I’d had The Principles of Beautiful Web Design to read as I was going through that process. Content-wise, it is indeed that good — it’s indispensable for Web designers, professional and amateur. It’s afflicted by substandard editing, but the high-color, graphic-rich, information-heavy content is superb.
Writing analysis
The Principles of Beautiful Web Design is an unusual technology book, though it’s not too much of a deviation from other Sitepoint titles. It’s larger — 8.5″x11″ — and far more colorful than most technology books. Being larger in size means it’s thinner in page count, but combined with the copious amount screen shots, diagrams, and example drawings, it’s a surprisingly quick read.
There is very little code in this book, but there doesn’t need to be — it’s primarily about layout and design philosophy.
The writing is clear, concise, and sufficiently detailed. I discovered a few stupid editing mistakes, which seems to be par for the course for Sitepoint, but other than that, I was impressed with the overall quality of The Principles of Beautiful Web Design.
Putting the book to the test
Any Web designer or anyone else who creates Web pages can pick up The Principles of Beautiful Web Design and put it immediately to use. This book is informative, helpful, and valuable from page one until the end. The author covers all aspects of design in sufficient depth and detail, from dealing with the client to choosing colors and using whitespace effectively. Every page is packed with good examples of best practices. There are few examples of worst practices, which I think is good — readers can become confused when you give too much negative advice.
Summary and conclusions
Overall I’m impressed with the depth and usefulness of information in The Principles of Beautiful Web Design and would definitely recommend it to anyone who has anything to do with site design or creation. Even if you think you know what you’re doing with site design, I guarantee you’ll learn something valuable from this book.
Ah, yet another book about Ubuntu Linux. Is there no reprieve from the bombardment of Ubuntu and beginner Linux books (and Ubuntu for beginners books)? For Introducing Ubuntu: Desktop Linux to impress me, it had to offer something new and unique, and it had to successfully address the reality of introducing a new operating system to a computer user. I’m impressed with the scope of the book’s coverage on frequently encountered Linux problems, but I don’t think this book was as good as it could have been.
Writing analysis
Introducing Ubuntu: Desktop Linux’s language is irritatingly long-winded (I really hate the “the author is your best pal” colloquial narrative — it makes me feel like I’m being talked down to), and the subject matter is mired in too-deep explanations of trivial details, such as a breakdown of what every button on the OpenOffice.org Writer button bar does. Any information that can be obtained by mousing over an item and reading its tooltip is unnecessary in a book like this. Essentially, over-explanation of obvious functions implies either that the software is not user-friendly enough to be self-explanatory, in which case it is not suitable for non-technical people (which appears to be the book’s target market); or that readers are too stupid to read tooltips and figure out obvious functions of desktop software that should already be familiar to them as Windows or Mac users, which is insulting. So the fact of this book’s confused focus and target market is evident not only in the subject matter, but also in the style of the writing.
Editing-wise, Introducing Ubuntu: Desktop Linux seems to be quite sound. I did not discover any of the stupid mistakes that reduce the authority and effectiveness of so many other technology books these days. In terms of layout and construction, this book is in the top tier.
Putting the book to the test
If you can wade through the obvious material, the more technical step-by-step instructions and screen shots are outstanding. By following the directions, you can easily solve all of the typical desktop Linux problems — video drivers, Web browser plugins, Java support, DVD playback, and proprietary multimedia playback. These are tough subjects to write about because they require real technical knowledge and experience to document.
For those people who have never used an office suite or set up an email client, the instructions throughout most of part II and part III of Introducing Ubuntu: Desktop Linux are excellent. But do such people actually exist? And if so, what is motivating them to switch to Linux? I’m not convinced that much of this book’s content is appropriate for the kind of person who would buy a book on Linux.
Summary and conclusions
Among Ubuntu books and beginner Linux books, Introducing Ubuntu: Desktop Linux is among the best, if not the absolute best. Unfortunately, that’s kind of like saying that among cheap beers, Genesee is the best. Ideally you’d look for something else, but there are no good alternatives. When it comes to books that teach people how to install, configure, and use Linux, publishers and authors have a desperate need to cling to easy and familiar content. The horrible truth is that non-technical people do not care about operating systems and do not want to switch to Linux; if they do want to switch, it’s because someone (you?) has talked them into it. Technical people who want to switch do indeed need a good book to teach them all of the necessary tips and tricks (even and especially the advanced ones), but the only books available to them are aimed at the non-technical. Introducing Ubuntu: Desktop Linux does contain all of the content a technical person would need, but it’s buried under a pile of painfully in-depth tutorials on how to use and configure desktop applications, which technical people generally do not need to read about.
I’m not sure if or to whom I would recommend a book like this. Though it is written in informal language and takes every technical topic from the beginning, I don’t feel comfortable recommending it to a non-technical person with the hope that they would switch to Linux. I already know that such people are uninterested in switching. On the other end of the spectrum, I have given books like this to technical people who want to switch to Linux, and they always find them irritating, incomplete, and hard to navigate. Though Introducing Ubuntu: Desktop Linux is by no means incomplete, I don’t think it was constructed for a realistic reader market.
Innovation is word roughly as over-used in the information technology industry as change is in politics. Everyone talks about it, but few people actually implement it beyond a superficial level. It’s a buzzword; it was the first term in the marketingspeak canon; it’s what CEOs talk about when they don’t have a crisis to manage. When I first got The Myths of Innovation in for review, I was intrigued by the first parts of it I read, so I interviewed the author, Scott Berkun and asked him some questions about innovation as it relates to open source software. It turns out that innovation can move beyond marketingspeak and ridiculous Steve Ballmer speeches and actually represent invention and improvement. The Myths of Innovation showcases a wide variety of useful ideas, processes, and methods that smart people can use to succeed as inventors, engineers, and managers. As the title implies, there is also a lot of talk about what not to do when trying to think of new ways to succeed. This is a truly inspiring book.
Writing analysis
Basically this is a book that provides inspiration through analysis of successful inventors. It teaches readers that innovation is a process, not an event, and that religiously mimicking the habits and idiosyncrasies of famous inventors will not likely yield similar results. Every factor that impacts innovation, from your work environment to your thought processes, habits, attitudes, and expectations. It spends as much time examining failure as it does success, which is a relief — many books that teach similar concepts try to avoid focusing on “the negative,” instead preferring to fantasize that failure never happens.
The Myths of Innovation reads like a really interesting, well-researched oral presentation — something you might see at TED (which author Scott Berkun has not spoken at as far as I can tell, though he certainly should someday). As such, it is exceptionally easy to read and follow, though I thought the huge number of footnotes were a little distracting. The footnote information is useful for further research, and often entertaining, but it’s annoying to have to remember your place on the page and skip down to the footnote, then scan back up. I think a better approach would be to do sidebars or margin notes, sort of along the lines of a Head First book, only toned down a bit.
I didn’t discover any significant problems with the language in the book, though I think it’s unnecessarily distracting to randomly replace the gender on third-person pronouns. I recently learned that this is actually O’Reilly editorial policy, even though it is against a long tradition of English grammar, and causes mild confusion in readers (not to mention the fact that it is occasionally against the wishes of the author). I find the female pronoun issue to be an annoying speed bump in my reading because it brings an unnecessary level of specificity to words that we’re not supposed to give any thought to. If you’re drawing attention to your pronouns, you’re negatively impacting the reader experience.
Putting the book to the test
This is a quick read, in part because it is not very long, and in part because it is never boring. I think I would describe this as a “technology self-help” book. On the most obvious level, it serves as inspiration to everyone who works in information technology — and not just the engineers and the rock-star CEOs. On a deeper level, The Myths of Innovation can affect the work habits and thinking patterns of literally anyone. At some time or another, we’ve all said, “There must be an easier way to do this!” The Myths of Innovation arms you with all of the necessary tools to make that sentiment into a starting point for invention.
Summary and conclusions
I definitely recommend The Myths of Innovation, not just to IT workers or inventors, but to anyone who wants to succeed through innovation. Don’t let the fact of the author’s Microsoft career turn you off — though the author does relate a couple of stories from his time at Microsoft, there is nothing in this book that would offend or anger a Linux or Mac user.
I really enjoy the fact that O’Reilly publishes books like The Myths of Innovation from time to time. I wish they’d do more such books, but there are few authors out there who could successfully complete them — or even conceive them.
For a good laugh, check out the colophon on the last page of the book.
The Project Management Professional certification exam is an important asset to software developers who want to move up to management, and for many projects, it’s a requirement. Given the depth of knowledge required to pass the exam, studying for it is a niche book market unto itself. O’Reilly’s Head First PMP is a typical member of the unique and whimsical Head First book series — full of interesting ways to learn a majority of the important material, but lacking the last 20% of the effort necessary to fully prepare a reader for the exam.
Writing analysis
Head First PMP is not unlike other Head First books in terms of teaching style and presentation. It reads quickly because each page is a collage of photos, drawings, diagrams, faux handwritten notes, sidebars, and margin scribblings; there is less of a focus on straight, ordered text, and more of a focus on the presentation of ideas in a variety of interesting and entertaining ways. The book takes situations that are slightly silly but can easily be applied to real-life project management, such as a newly hired project manager who is tasked with reigning in a project that is never finished, and a development team that has to produce “Cows Gone Wild III.”
Instead of a practice PMP exam, Head First PMP uses more unusual methods to help readers retain knowledge. You’re given crossword puzzles, asked to rearrange refrigerator magnets, create lists, and complete sentences or phrases. While I don’t feel that these cute exercises are sufficient for teaching someone exam material — nothing can replace a practice test — they are extremely effective for teaching concepts, best practices, and design patterns, which is what this book is all about. There are some test questions at the end of most chapters, but they are in the Head First style and don’t directly translate to the PMP exam material.
For a book with such wacky formatting, the editing is impeccable. I did not find any typos, coding errors, spelling mistakes, or punctuation gaffes in the entire book. That’s not to say that there are none, but the reason why I point out mistakes like these is that they are horribly distracting to readers and can break their concentration and possibly mislead them.
Putting the book to the test
I can read the book and gauge whether or not it is appropriate for the readership, but I will probably never take the exam that this book references, so you may be inclined to disregard my opinion. However, if you head over to Amazon.com and read some comments from actual PMP exam takers, you’ll find that some of them have issues with Head First PMP. Specifically they say that while this book has many fine qualities, it is incomplete and cannot serve as the sole source of preparation for the PMP exam. Looking at the book’s errata page I see a long list of mistakes, errors, and omissions. I realize that producing a Head First book is a huge undertaking that consumes a lot of time and resources. However, where errata like this may be forgivable in a book on Java, Ajax, or object-oriented design, there is no excuse for carelessness in a book that prepares people for an exam. You must pay close attention to accuracy in this situation, and I don’t think the authors and editors appropriately ramped up their level of care on this project.
Secondly, any book that prepares readers for an exam should include a practice exam. In this case, it is ethically acceptable to include practice tests with the book (in some cases, giving out a prior year’s exam, or anything like it, can be considered unethical), so the authors should have done that.
One major step forward in this Head First book is that it actually includes some test questions at the end of each chapter. They are in typical Head First whimsical style, and frequently address the reality of project management, but they do not accurately represent what readers will face on the actual exam. Lack of reader interaction with the material has been a frequent complaint of mine in previous book reviews; I’m glad to see that at least one publisher is beginning to see the wisdom in asking readers to apply the knowledge a book is trying to impart.
Conclusions
I found Head First PMP to be an outstanding resource for teaching project management in a software development environment. Anyone who works in any level of that industry should read this book. However, I don’t think it serves as an appropriate independent resource for people studying for the PMP exam. It is certainly an important book in a collection of recommended books, but at this point it does not accurately cover the processes, terms, and concepts that a reader has to understand and remember in order to become a Project Management Professional.
Again, I’m not a PMP, so my opinion may not count for much. However, the consensus among Amazon reviewers who were critical of Head First PMP is that this book should be one of a handful of titles aspiring PMPs should buy and read.
Addendum: Some of the O’Reilly staff who worked on this book have commented that the second edition of Head First PMP will correct all of the errata from the first edition, and include information on taking a practice exam. Right now there is a practice exam available on the O’Reilly Web site, so that does make up for not including a hard copy with the book.
Despite the topic the title implies, Designing BSD Rootkits is actually more of an introductory FreeBSD kernel developer’s guide than it is a text on operating system security. If you’re okay with that, it’s a decent — if somewhat short — book.
Writing analysis
My initial opinion of Designing BSD Rootkits was that it was inconsistent. The introduction states that the book is aimed at programmers who have an interest in FreeBSD kernel hacking, and that the goal is to enable readers to “theoretically” rewrite the entire FreeBSD operating system from scratch. The back cover says that the point is to teach people how to write and defend against rootkits, and to explore FreeBSD as a side-effect. Which is it? As it turns out, it’s really more of a method of teaching people how to change and develop FreeBSD through showing how it can be exploited. It’s an interesting concept that is not properly communicated through the title.
This is a short book, at 136 pages — and most of it is code samples or program output. Chapter 1 introduces readers to kernel modules and system calls; chapter 2 talks mostly about how to intercept system calls through call hooking; chapter 3 is about hiding processes and ports through hacking kernel objects; the four page long chapter 4 briefly covers kernel object hooking; chapter 5 outlines kernel memory patching; chapter 6 is about combining the previous 5 chapters’ information to produce a basic rootkit that will bypass host-based intrusion-detection systems, including an example that defeats Tripwire; chapter 7 closes the book by offering advice and tips on how to detect a running rootkit in FreeBSD.
In terms of writing quality, it’s hard to gauge Designing BSD Rootkits because there are so few words in it that aren’t code, results, or captions. What you can read in plain English is decently written and easy enough to understand, assuming you meet the technical prerequisites.
Putting the book to the test
This book will be way over your head if you’re not a competent, fluent C programmer. You don’t have to be familiar with FreeBSD, or even any BSD or Unix SVR4 derivative, but you do have to be able to write C code without having to think about it. Most of Designing BSD Rootkits is C code, not explanatory text, so you will get lost quickly if you can’t read and follow a C program.
Though this book focuses specifically on FreeBSD, most of its techniques (and all of its concepts) apply just as well to most other operating systems, including Windows. So if you’re inspired by the notion of learning kernel hacking through rootkit development, you don’t have to let its FreeBSD theme get in the way of your dream.
It would be difficult to write an actual rootkit using Designing BSD Rootkits because it doesn’t cover the most challenging hurdle of remote system cracking: Breaking into a computer and gaining root access for a meaningful length of time. The information included in this book will most definitely show you how to develop your own rootkit, but it also spends a chapter explaining how you as a programmer or sysadmin can detect a rootkit on your system, so it’s not entirely evil, if you’re of a mind to think that way about such books.
Conclusions
Designing BSD Rootkits is not a title appropriate to this book’s subject matter. It is as much a guide to theoretical rootkit development as it is an introductory text on developing the FreeBSD operating system. I don’t think I have seen any book that so quickly and effectively gets readers involved with FreeBSD kernel hacking. At the same time, I feel like I’ve been misled as to the book’s true subject matter.
I’m sure some less scrupulous programmers will use Designing FreeBSD Rootkits for nefarious purposes, but since the book does not contain substantial, working code samples, a malicious reader would need to have a great deal of skill in order to implement any of the techniques in this book. So don’t worry, FreeBSD admins — this book does not mean that you are in greater danger of remote attacks. It does mean, however, that you have an interesting way to get started with FreeBSD kernel programming, should you be interested in it.
Traditionally, system administrators have had to rely on expensive course training and personal mentorship to learn the skills required for their jobs. These days, self-learning through books, practice on home computers, and computer-based training programs on the Web are taking a larger role in sysadmin education. My recommendation for aspiring Unix/BSD/Linux sysadmins has always been to put BSD or Linux on a spare computer and learn to set up services on their own by reading manual pages, tutorials, guides, and comprehensive books on each service. I urge sysadmins-in-training not to rely on any one seminar, class, article, guide, or book to form a solid system administration foundation. After reading O’Reilly’s Linux System Administration, my opinion on that matter is further solidified.
Writing analysis
The quality of the writing in Linux System Administration is substandard. There are a few English errors scattered throughout, and there are many superfluous phrases that distance the reader from the point the authors are trying to make. Third-person pronouns are all female — an unnecessary distraction in a book written to instruct people entering an obviously male-dominated field. It is also technically incorrect according to traditional English style rules. This is a common problem in O’Reilly books, attributable to one particular copyeditor: Rachel Wheeler.
From a content standpoint, the language the authors use is frequently dumbed down, as though they feared that using proper technical terms would confuse people who are learning to do the most technical of computer usage tasks. It felt like the authors were afraid of their own words, or like a non-technical editor altered the original technical content to make it easier for him to understand.
In terms of layout and structure, Linux System Administration is difficult to navigate. Some topics are split into pieces and mentioned in different levels of detail in different chapters. The chapters themselves are well-organized and are almost books (or more realistically, long articles) unto themselves.
Putting the book to the test
I don’t agree with Linux System Administration’s fundamental approach to teaching its namesake subject. First of all, there is very little discussion of the differences between server-appropriate Linux distributions. This is the first major decision that prospective Linux sysadmins need to make. Is it worth it to buy Red Hat Enterprise Linux? Is it better to use Debian or Slackware when setting up a given service? Why are some people so crazy about using Gentoo on a server? These and other similar fundamental questions needed to be answered in the introductory chapters.
Secondly, there is no significant discussion of the differences between Linux and other Unix-like operating systems. Most of the tools and techniques the book teaches are valid on other platforms, but this is not explained in sufficient detail. It is likely that a professional Linux sysadmin will come in contact with a Solaris, BSD, AIX, HP-UX, IRIX, or Tru64 machine in his career. What does he need to know when dealing with these operating systems, coming from a (Debian, which is the authors’ distro of choice) Linux background? The authors state in the introduction that one of their target audiences is Unix admins who want to move to Linux. That being the case, there should have been an appendix dedicated to Unix-to-Linux command translation and service migration.
This book will be unsatisfying for the technically curious; the technological discussions are too brief, and some processes are dumbed down. For instance, the authors recommend installing ISPConfig as a method of rapidly establishing a multi-function server. This is good advice, but it should be the last option listed, to be introduced only after readers understand how to install all of the necessary software from the distribution’s package manager, how to hack config files by hand, and how to adjust startup scripts to accommodate the new services. Once this information is established, then it is appropriate to introduce ISPConfig and other management tools as ways of speeding up deployment and management. If readers can’t do these things manually, they will be ill-equipped to adjust to new or unusual Linux operating environments.
Most disappointing about Linux System Administration is the complete lack of information about maintenance and basic performance tuning. The authors recommend installing Webalizer, for instance, but fail to inform readers that Webalizer will perpetually silently collect visitor information until the hard drive partition is entirely filled. Basic installation information for PHP and MySQL are given, but the authors don’t tell us that the default settings are entirely inappropriate for a production environment. Even a small amount of traffic will cause errors because of low settings in the php.ini and my.cnf files. These are things that you do not want to have to troubleshoot on your own while your company is losing time, money, and traffic because you were under-educated.
Patching and upgrading the operating environment is a reality, but it’s not appropriately covered in this book. Forget about security and scalability testing too — the authors did not think these things were important enough to write about.
The chapters that deal with configuring specific services are very good at providing a basic introduction to installation. You can get Apache and Postfix up and running on a slightly-more-than-basic level after having read Linux System Administration.
Conclusions
Despite my criticism of this book, I feel that Linux System Administration can serve as a self-learner’s first text on the subject, but only if they have much more in-depth resources to consult concurrently. It is by no means comprehensive, and does not provide the depth of information necessary to prepare readers for professional system administration work, but this book does provide an acceptable foundation on which more advanced sysadmin skills can be built.
Like the servers it teaches you to configure, Linux System Administration barely works on a basic level. I don’t think it has lived up to its potential, though, and I expected much more from it. Perhaps the next edition will be more recommendation-worthy.
There are few Linux enthusiasts who have not built, attempted to build, or thought about building a Linux-based appliance computer. Some are very easy and have a lot of extant software that does all the hard work for you — digital video recorders, network firewalls, and wireless routers, for instance — but what if you want to build something more complicated? What if there is no premade Linux distribution designed for the kind of appliance you want to make? Well, if you have some programming skills, you can make it yourself with the aid of No Starch Press’ Linux Appliance Design.
Writing analysis
The quality of the writing in Linux Appliance Design is good. It’s by no means entertaining, but it’s also not distracting or incomplete. I’d like to say that the writing is average, but the average technology book is poorly written and edited, so to avoid misleading you, I’ll say that it’s “good.” I did not find any typographical errors, spelling mistakes, or formatting problems in this book, and that alone puts it a cut above the majority of modern tech books.
The authors make extensive use of diagrams, code samples, and the occasional photo or screen shot — one or more of these appears on almost every page in the book. The diagrams show the layouts of complex processes, and the code samples show relevant pieces of actual, working code. This is in stark contrast to many programming books that list non-working sample code for the purpose of explaining a concept or technique. That’s fine in some cases, but programmers learn best by looking at and working with real, operational code that can be plugged in and played with. All of the book’s code, plus development tools and libraries, are available on a CD in the back of the book and available for download from the No Starch Web site.
Putting the book to the test
Linux Appliance Design’s goal is to guide readers through the development of their own Linux-based computer appliance. The book’s primary example is Laddie, a fully functional but feature-incomplete alarm system. The most impressive facet of Linux Appliance Design is the depth of information about this example appliance — all of the code, plus hardware specifications, block diagrams, and schematics are included. Obviously if you want to build an alarm system, this book will be an enormously helpful resource. The further you get away from Laddie’s functionality, the more work you have to do on your own.
You must be a competent C and C++ programmer with Linux experience, and you need to be comfortable with soldering and wiring in order to get the most benefit from Linux Appliance Design. You should be ready to build a unique hardware appliance and have a basic idea of how it will operate before getting into this book. There is little discussion of Linux in specific; this is more of a hardware-oriented book with a secondary emphasis on control software. Linux is only presented as the easiest and cheapest platform on which your software will run, so if you were hoping to learn more about hacking Linux for embedded use, Linux Appliance Design is not what you’re looking for. Considering this information, the book is not appropriately titled — the fact that Linux is the most sensible operating system to use for the projects that the book enables you to learn to create is not important to the book’s primary content.
Every facet of appliance design is covered, from the hardware design and construction to operating system installation and configuration to application development to designing a variety of different user and network management interfaces. Everything you need is here — you just have to learn how to implement these ideas and examples into your own project. Alternatively, if you are not totally up to par on your programming or hardware construction and application design skills, you could learn quite a bit about these concepts by simply following the book and sticking to the Laddie example throughout.
Conclusions
Linux Appliance Design is by no means light reading, and I’m kind of surprised to see a book this technically involved come from No Starch Press. When I picked it up, I was expecting to read something about installing Debian and MythTV, using ATI infrared remotes, and installing third-party drivers for LCD and VFT displays. Linux Appliance Design does cover some of this material, but in far greater detail than any superficial do-it-yourself guide could hope to.
This book is effective in what it presents, and has obvious and well-deserved appeal to those who want to learn more on this subject. The only real point of this review is to ward off people who are expecting a manual on operating system development or mini-PC assembly.