Book Reviews



By James Mohr

Mastering Regular Expressions, Third Edition

For many years, I have enjoyed the role of the company's resident "guru" when it comes to figuring out the necessary regular expressions (REs) other admins need for various scripts. Usually, I can figure out the necessary expression fairly quickly, and I often enjoy the feeling I get when others try to figure out what I just hammered out. However, going through Jeffrey Friedl's book has put me in my place. Working through all of the different possibilities that I had only heard of in passing makes me look like an amateur in comparison.

The book starts out with an overview of what REs are all about, introducing word boundaries and character classes. These are simple enough concepts, but difficult to understand and essential for using regular expressions effectively.

In addition to the sheer volume of information, one thing that sets this book apart is that the author uses "real-world" rather than contrived examples. A few of the examples were situations that I have yet to come across, but many were either "been there, done that" or things I had to go out and try.

One thing to note is that this is not a cookbook. You are not going to find specific regular expressions for 101 different problems. Instead, the author tells you how things work and gives you the tools to do the job. This is supplemented with an "analysis" of the REs being discussed, thus helping you avoid mistakes when creating your own REs.

The material covering regular expressions within the context of shells and standard Linux applications by itself would have made this book worth reading. However, the author covers additional programming environments like Perl, PHP, Java, and .Net. Although the basics of regular expressions are the same regardless of the environment, there are subtle difference in how they are specified with each language.

Jeffrey E.F. Friedel

515 pages

O'Reilly Media

0-596-52812-4

£ 33.03, US$ 44.99, EUR 44.00

See MIPS Run: Linux, Second Edition

This book is a worthwhile read for anyone interested in Linux on MIPS processors or even MIPS and RISC architectures in general, but you need at least some experience with assembly language and C to get the most out of it.

Although the author tries to walk you through a lot of the code, my knowledge of assembly language on x86 processors is pretty rusty and I had to re-read a few sections to fully understand what the author meant. This problem was limited by the inclusion of an extensive glossary. Because of the complex subject, I won't ding the author for the few places in which I had to look up things. In fact, I give the author a couple of bonus points for the glossary.

The majority of the book is devoted to the MIPS architecture, with little information that is directly related to Linux. One might be tempted to look at the Linux-specific material almost as an "afterthought", but I had trouble thinking of a structure to the book that could have presented Linux-specific information along with the MIPS details any earlier than it did.

The first chapter offers a history and comparison of various MIPS processors and the companies that produce and use these chips, then the author quickly moves into low-level aspects of the MIPS architecture. The following chapters delve deeply into the various aspects of the MIPS computer architecture, including chapters on caches, exceptions and interrupts, memory management, floating point operations, and a complete chapter on the MIPS instruction set.

The last part of the book is the long-awaited material on Linux and MIPS, covering key operating system concepts, how hardware and software work together, MIPS and the Linux kernel, and applications and libraries on Linux.

Despite being easy to read for the most part, I wouldn't recommend it to readers as their first book on computer or operating system architectures. If you are interested in the material and, if necessary, are willing to visit Wikipedia to fill in the occasional gap, check out this book.

Dominic Sweetman

492 pages

Morgan Kaufmann Publishers

978-0-12-088421-6

£ 29.99, US$ 59.95, EUR 52.50