A selection of book reviews for the British Computer Society. The stars indicate the overall rating of the book in terms of coverage, value for money and depth of detail. Ten stars is the highest.

Fedora Linux 
Author: Ben Norman
Publisher: In Easy Steps
ISBN: 1-84078-332-X
Price: £10.99
I can't work out who the target audience for this book is: the web design professional or the amateur who wants to know more on google optimisation. If it's the professional then it's a disappointment because there is nothing much in the way of content that they should not know already. On the other hand, if it's for the amateur then it does a fair job of describing some of the techiques that can be employed. However, I find the layout sparse, too many well spaced bullet points and lots of screen shots hint at a lack of depth over presentation. Personally, I found the "helpful icons" of chilli (hot tip), elephant (remember) and cobra (beware) to be rather childish for a mature audience.
It does cover much of web site optimisation from design to deployement, including free tools and services that can be leveraged to analyse or enhance your site, however, much of it can be found on google using the search "SEO optimization". I do like the fact that it encourages design to standards and validation of the results and moves you away from "black hat" methods that will do more harm than good to your site in the long run. It also encourages you to get it right from the start rather than optimize as an afterthought.
It's probably at the right price point but more of a book to take out of the library rather than add to your own.

Fedora Linux 
Author: Chris Tyler
Publisher: O'Reilly Press
ISBN: 0-596-52682-2
Price: £28.50
Sub-titled as "A Complete Guide to Red Hat's Community Distribution", this book offers a comprehensive tutorial of the Fedora Core (6) offering from RedHat but could be equally applied to other Fedora versions or even variants like CentOS. It's a Grand Tour of the installation, maintenance and management of the distribution. It is well written, clear and concise in many of the explanations and an easy read.
It makes few basic assumptions on the part of the user; it endeavours to enable the reader to be confident when working with Fedora and it does it rather well. There are hands-on sections, which are the primary goal, but also some good descriptions of things like run levels, user login sequence, logical volume management, RPM packaging and it is even-handed in its approach - each task or section is described from the GUI and the command line point-of-view. It also covers the spectrum of users from laptop through desktop to servers.
There are one or two errors in the text, which should have been picked up by the editor, that detract from the work but overall it's a useful and pretty much complete treatment of Fedora. If you want to start using Fedora but don't know where to start then this book is for you.

Pro Apache 
Author: Peter Wainwright
Publisher: Apress Press
ISBN: 1-59059-300-6
Price: £31.50
Want to set yourself up as an ISP? Build yourself a Linux or Windows box, get a broadband connection and buy this book; its well written and informative about all aspects of installing, configuring the Apache HTTP Server and easily readable by the beginner or more experienced user alike.
It gives clear instructions about setting up multiple web sites, improving the performance of Apache and tips and techniques for improving the security of the sites hosted. The configuration section is particularly good with a comprehensive description of Containers and how they nest.
There is a section on extending apache with several examples; including PHP and mod_perl but not (curiously) any database engine. However, the biggest downside to the book is that the appendixes (sic) - all ten of them and running to some 81 pages are not in the book itself but are available for download from the Apress Web site. I can see why some of these would be done like that, for example, the list of useful RCF's or details of variants of Apache, but others would have been better placed as real appendices Directives by Module and Directives by Name to name just two. It's hard to imagine what took place at the Editor's meeting to decide on this strategy and demerits the book by one star. Overall, though, it's a useful reference companion to have on the bookshelf.

The Definitive Guide to Linux Network Programming 
Authors: Keir Davis, John W. Turner, Nathan Yocom
Publisher: Apress Press
ISBN: 0-59059-322-7
Price: £31.50
This book aims to be the "Definitive Guide to Linux Network Programming", however, it's only 350 pages long and once you take out all the repetition it would be considerably shorter than that. If they had called the book "Linux Network Programming from Scratch" it would have been a much more accurate and appropriate title. It contains good examples from a tutorial point of view and guides the reader carefully through the code. For the more experienced user or a Subject Matter Expert then it's really a reference guide but not really laid out for those users in a useful way.
The chapters cover topics outside the network programming model but useful nonetheless, for example, ssh tunnelling and encryption, but it also includes details that are inappropriate for this volume. As an example, there is a large section on programming techniques, which is more approriate in a book on programming languages. In this respect it's rather confusing in it's aims and objectives - you should not approach this book without being a reasonably experienced programmer (independent of which language you know) so I conclude that these parts are just superfluous padding.
However, my two biggest gripes with this book are that, firstly, nearly all the code samples contain errors and some quite serious errors if you are a newcomer to Network Programming - you simply must downoad the samples from the apress website, where they do work. Secondly, the phraseology used in places is just too imprecise - ocassionally to the point of confusion. In the first chapter "Networks and Protocols", which is aimed at a complete beginner, we find, "We've said that an Ethernet frame has a maximum size of 1500 octets. Yet an IP datagram has a maximum length of 16 bits". The italics are mine and I had to read the second sentence twice before I got the meaning - that an IP datagram uses a 16 bit value to specify the size of the payload i.e. that it can carry 65536 octets.
The confusion of it's aims and objectives, the imprecise langage, the faulty code and the repetition seriously impact the value of this book - it's just too expensive for the intermediate or expert to rate more highly in star value.

Beginning PHP, Apache, MySQL Web Development 
Authors: Michael K. Glass, Yann Le Scouarnex, Elizabeth Naramore, Gary Mailer, Jeremy Stolz, Jason Gerner
Publisher: Wrox Press
ISBN: 0-7645-5744-0
Price: £26.99
The AMP triumvirate (comprising of Apache, PHP and MySQL) is one of the cornerstones of
web development and this is an excellent book for learning the use and interaction between
them. It takes the reader through a carefully constructed series of exercises to demonstrate
the salient points under discussion and provides clear and concise explanations behind the code.
The book is well laid out with code first then a 'How it works' explanation followed
by a 'Try It Out' section. The code itself is downloadable from the Wrox website.
It covers the whole gamut of AMP program development including appendices on installation of
the separate products for Windows and Linux platforms.
It's breadth of coverage is impressive for a beginners book: basic PHP and HTML page creation, how PHP works with MySQL, forms and validating user input, personalization (using cookies, MySQL verification and simple htaccess methods), sending e-mail using PHP, mailing lists, content management systems and basic shopping carts. You can't deny that it touches on almost every aspect of AMP design that a beginner could wish to know about.
There are only a couple of small gripes (and those are personal preferences really). The first is that they use two examples throughout the book. IMHO it would have been better to develop a single application for consistency. Secondly, there is a glossing over (or simply not enough explanation) of third normal form within database design and why it is desirable. The former is an omission the latter something that could be argued in a beginners book.
You could buy separate books for each of the modules but this beginners guide covers the lot at a reasonable price and does it very well. Highly recommended.

The Ultimate VB.NET and ASP.NET Code Book 
Author: Karl Moore
Publisher: Apress Press
ISBN: 1-59059-106-2
Price: £35.50
The short answer is ... No. This is, without doubt, the worst book that I have read. Ever. It has little to recommend itself to the reader. Any book with a title of the form 'The Ultimate ...' had better be just that; this book is nowhere near good enough.
The evangelistic style is annoying and as such it grates as soon as the first deficiencies are noticed. If you really are going to make claims about 'clever code' then it should be just that ... in chapter 8 there are lists of regular expression matching samples that cleary (and simply by inspection) do not work. A date checker that accepts 99/99/9999 as a valid date? An ISBN number checker (how useful is that!) that would fail just by entering the number printed on the back of the book! This is shoddy workmanship by any standard.
Interestingly, the first chapter, which is an overview of the new features of VB.NET over VB6 (and why you should move to VB.NET), demonstrates a typical feature of Microsoft marketing. Get a product to market as soon as possible and then fix it later (if ever). The 'new' features (of VB.NET) (increment/decrement operators, block level scope, pass by value, arrays starting at zero) have existed in all professional programming langauges for years, so (by implication) VB6 was a hobbyist programming lanugage that should never have been used in a professional capacity. VB.NET clearly takes the programmer into the realm of professional programming but still contains a fundamental flaw ... it requires IIS, which is still rated as the most insecure and vulnerable web server in the world.
Other chapters cover building web sites, manipulating data, web services, .NET secrets and the last chapter is a discussion of how to convert VB.NET to C#. If this is an Ultimate code book then what's the purpose of this chapter? The layout (the first from apress I have seen) is unacceptable; there are no section numbers so you simply do not know where you are in the book. At the start of each chapter is a list of what's in the chapter . I can't see the reason for this apart from padding the book out by an extra 40 or so pages; it serves no useful purpose. A nice feature is that every section starts with a statement 'Download supporting file at ...' and gives you the reference. However, once you inspect the code in the section itself you realise that there is little point in that.
At 380 pages and £35.50 it's way overpriced and a search on the web would provide equally (or more) robust pieces of code. My review copy of this book is being offered up on auction sites (with no reserve) as soon as I submit this review. I would have preferred to give it no stars at all.

Perl in a Nutshell 
Authors: Ellen Siever, Stephen Spainhour & Nathan Patwardhan
Publisher: O'Reilly and Associates Inc.
ISBN: 1-56592-286-7
Price: £18.95
By and large desktop reference books should give you most of the information you need at your fingertips but cannot provide complete coverage of a given topic. When it comes to perl, the language and extensions are so large that any desktop reference will only 'scratch the surface'. That said 'Perl in a Nutshell' does a rather good job of giving the user pertinent information and pointers to other sources that are beyond the scope of the book. It is a very good reference guide and a convenient size.
There are eight sections - each comprising a number of chapters including: Getting Started, which gives advice on installing perl on your system; Language Basics, covering the basic syntax of the language, scalar and list contexts, debugging and a comprehensive function reference; Modules, what they are, how to create them and a list of the main modules shipped with perl and the methods associated with each module; CGI, the web interface and a description of mod_perl for the Apache web server software; Databases, this is the main weakness of the book (just 11 pages long), giving scant information on database interactions - it needs a much fuller explanation and examples of using DBM files; Network Programming, which includes socket programming, SMTP, FTP, usenet news and the LWP library; Perl/Tk, an entire section on it's own that describes the interface between perl and the Tk widgets and Win32, which gives specific information on the win32 methods and using perl-script.
At 654 pages and £18.95 it's certainly good value and a very hand reference book for your desktop or briefcase. Highly recommended as a first source of information, if they beefed up the databases section it would become indispensable.

The Perl Cookbook 
Authors: Tom Christiansen and Nathan Torkington
Publisher: O'Reilly and Associates Inc.
ISBN: 1-56592-243-3
Price: £24.95
Perl has been enjoying a bit of a renaissance over the past few years with the Web and CGI programming. For the serious perl programmer one needs to consult the Larry Wall's definitive book, 'Programming Perl' - 'The Perl Cookbook' is described as the companion volume to this and it's a fair assessment. Certainly, it's not readable by anyone not familiar with the language. However, once you got the basics under your belt then 'The Perl Cookbook' is about as good as it gets when re-cycling code.
The breadth of coverage is comprehensive and the depth and clarity of the explanations make it enjoyable reading - each chapter select a topic pertinent to a different aspect of perl, it then provides a basic introduction to the concepts and on to the 'recipes'. These are neatly laid out in three parts, the problem, the solution and a discussion as to why the solution is appropriate. The discussion provides an excellent opportunity to discover some arcana about perl and it certainly corrected one or two misconceptions for me.
Most of the major perl sub-systems are presented: scalar and array contexts, regular expressions, numbers and strings, file access, packages, libraries, modules, process management, sockets, classes, objects, tiers, CGI programming to name but a few.
The order of the chapters is a little odd for my liking but that's a personal gripe considering it's a cookbook and by definition something to 'dip into'. I felt that the section of CGI programming could be beefed up a bit - yes, I know it's cheesy but a 'web page counter' example is perhaps one of the more obvious omissions.
The full source is available on the web at http://ftp.oreilly.com/published/oreilly/perl/cookbook/ but given the book itself makes extensive reference to the CPAN archive a CD with the source code and a copy of the archive as well would be a useful value add to the product.