[UKUUG Logo] Copyright © 1995-2004 UKUUG Ltd


Previous Table of Contents Next


Evil Geniuses in a Nutshell

J.D. "Illiad" Frazer
O'Reilly & Associates, Inc. April 2000
122 pages, £8.50
ISBN 1-56592-861-X

(Reviewed by Andrew Cormack)

The "user friendly" team are back in print and as funny as ever, which will be sufficient recommendation for many readers. For those who have not yet discovered the cartoon strip, it tells a story of everyday life at Columbia Internet, a small Internet Service Provider. This provides plenty of material for a cartoonist who is an active participant in and acute observer of the Internet community. As a result the book is full of characters and situations that are sometimes painfully close to reality; the terrifying logic of users beautifully captured.

The targets of many of the jokes are predictable: Microsoft of course features, though now in the guise of Frankenstein rather than the evil empire of the previous volume. The cartoons were drawn during 1999 so Phantom Menace jokes are contemporary rather than historical. Espionage with Furbies and MP3 piracy also appear as topics of the moment, though it is a shame that the lyrics of the Blue Oyster Cult cover, "Don't Fear the Penguin", are incomplete as a result! The references should suit all ages, from those owning their first tamagotchi to others who can remember when Gandalf was more than just a fictional wizard.

The open source community is not spared some gentle mockery: Eric Raymond contributes a preface but does not escape a guest appearance in the strip. Visitors from other worlds include Opus the penguin as Tux's alter ego and Bill the Cat. Help files, linux wars and BSD daemons are also the target of pointed observations. Despite the high tech environment there are still relationships to worry about, with computers, customers and colleagues. There is even room for a little romance at the keyboard.

The publishers too have joined in the fun. Not only is the title a gentle dig at O'Reilly's best known series, even the cover and blurb of the book adopt the house style. Congratulations are due to them for indulging their author. This is one humourous book which can make you grin while still on the shelf.

Evil Geniuses in a Nutshell will not help you choose the best free Unix system, though it contains a lengthy debate on this and other important issues, but it will provide a lot of light relief in stressful situations. Highly recommended.

Andrew Cormack Andrew@Cormacks.org spends his days advising universities and colleges on security problems, but has managed to retain his sense of humour.

Professional PHP Programming

Jesus Castagnetto, Harish Rawat, Sascha Schumann, Chris Scollo, Deepak Veliath
Wrox Press
ISBN 1-861002-96-3

(Reviewed by Chris Davies)

Professional PHP programming is one of a very few books published by Wrox press that is actually useful. Wrox books generally fall in to the trap of attempting to cover too many topics in a single book, but this one covers almost every aspect of PHP in detail without missing out the depth that makes the book useful to beginners and intermediate programmers alike.

The book starts with the simplest 'Hello World' examples, and continues in gentle stages up to such topics as SSL, Maintaining state and database storage. It explains the functions and programming techniques involved in each example with appropriate language, and even (at first glance) appears not to suffer from the typographical and syntax errors that seem to plague every other Wrox book.

In short, this is a good book for anyone who wishes to learn PHP whether they have previous experience of programming or not. If it has any fault, it is that the book spends most of the first chapter explaining why PHP is the language that you should choose for your website development, and in doing so misses out the opportunity to explain about the optimising tools available from the Zend website. But this book, combined with the online manual should provide the only PHP reference material you'll ever need.

Learning JAVA

Patrick Niemeyer and Jonathan Knudsen
O'Reilly & Associates, Inc.
ISBN 1-56592-718-4

(Reviewed by Gareth Harper)

Let's start off by giving you a bit of a background on who I am. I'm (currently) a Perl and Tcl programmer (by trade), and know a lot of other languages (such as C++, assembler, etc.). Being employed by an Internet company, I decided it would be a good idea to get to grips with Java. Now I'd heard that it was a lot like C++, but hadn't actually tried it yet, so I decided to go with a beginners' book, and having had experience with O'Reilly's Perl books, I thought I'd try one of the O'Reilly series. Anyway, on with the review.

For starters this book comes with a CD, which includes the Sun JDK and a load of sample code and things like that, so if you want to learn Java, but don't have a good Internet connection, you can get all you need from this book.

The book starts off by telling you why Java is different from languages like C++ (for those of you who don't know, Java is a compiled language, much like C++, and unlike Perl and Tcl). Though whereas C++ is compiled for a specific machine, Java is compiled into a special bytecode, which can in theory be run by any machine. All that machine needs to have is a Java Virtual Machine; this machine takes the bytecode and runs it on the real machine. This means that you only have to write one program, compile it once, and it will run on a Macintosh, a PC or a Sun machine, regardless of the architecture or OS. This may (to experienced programmers) sound like a very slow way to do things, but running the bytecode is a lot less work than compiling a program from scratch. In fact, with the advanced virtual machines that come with today's Web browsers, the speed is not a great deal different from compiled C++. Another feature of the language which is good for beginners, but more experienced programmers may find a bit disturbing at first, is that there are no pointers (there are, but they're hidden from you). This makes learning the language a lot easier, as you can do a lot of strange things in C++ or C when your pointers go awry.

When you're reading through the book there are plenty of examples to help you along the way, showing you exactly how you should use each feature of the language. It is also very well organised into chapters and subchapters, so if you want to use it as a reference rather than a book to read from start to finish, then that's fine as well. Most people will probably use a combination of the two methods, reading through the first parts of the book in series, getting to grips with the language. Then, once they get a bit more experienced and confident in using the language, they will use the later chapters as a reference when they need to know how to use something.

The book also covers the newer parts of Java that have only (relatively) recently come around. Things such as servlets, and the new 1.3 edition of the JDK. This means that it is up-to-date, and so you won't need to buy another book as soon as you would, say, if you bought one of the older books, which only covered the 1.2 edition of the JDK.

One of the great things with this book, which keeps you interested, is how it starts; within the first 32 pages you will have your first Java applet printing out Hello World! On the screen, this will keep beginners interested in the language, as opposed to other in-depth (wrong way to put it, but it will do) books, which will have you read the first three or four chapters before you even touch a compiler.

All in all I would recommend this book to anyone who is looking to learn Java, or even just looking for a new programming language. My one caveat with this book is that it does jump in a little quickly, and people very new to programming or who have not used computers very much may struggle with some of the technical terms used at the beginning. However this is a small caveat; it does start at quite a low level and there is a pretty comprehensive glossary of terms at the back, so you can look up any terms you don't fully understand.

O'Reilly Desktop Management with Novell ZENworks

Gerald Foster
O'Reilly & Associates, Inc.
ISBN 1-56592-711-7

(Reviewed by Jon Hutchings)

This book is a guide to managing Windows NT/2000, 95/98 PC's using Novell ZENworks administration tools, so you may be wondering why it is being reviewed for the UKUUG. In the real world many of us deal with a wide range of systems including those based on Microsoft Windows operating systems.

This book, the first book on the subject not published by Novell, provides a useful guide to the ZENworks (Zero Effort Net works) suite. Although the book does not aim to cover NDS in depth and mention of cross platform directory services (NDS for Linux and Solaris) is reserved for Appendix B, it does provide a good grounding in NDS tree design and Novell client software within the first three chapters.

The first section, on tree design, contains useful information about the impact of installing ZENworks suite into a NDS tree and explains many of the new object types that are available after installation. One note of caution, some of the design sections appear to have been written before the latest version of NDS (v8) was introduced, which, by moving to a new database engine, has removed all practical limitations on NDS size.

The theme of good NDS design is carried through each chapter of the book. Many chapters include a section on NDS considerations. These cover the object types used and the best location in which to place them in the tree.

The largest and one of the most useful sections of the book discusses ZENworks policy packages. These are very powerful features of ZENworks and allow control over almost everything related to the users session. The book discusses, in depth, the various different policy elements which build either a workstation or user policy. Using a combination of user and workstation policies it is possible to secure a system against over curious users. Policies are what gives ZENworks its power but also are some of the most complicated components to setup correctly. This book explains all in a clear and well-written manner, including useful tables of Windows registry settings for the control of the Windows user interface.

The other core component of ZENworks covered by the book is the Novell Application Launcher or NAL. This allows applications to be served to the desktop as objects, in a reliable and fault-tolerant manner. Topics covered include the use of the snapshot tool to create the application template files, and sections on the creation of the application object itself, along with some general tips on making it all work. Personal experience has shown that many of the more recent applications require a lot of work to provide an object that does not conflict with existing software on the target machine. Information on troubleshooting such problems would have been useful here but sadly this is not covered in any depth.

The book finishes with a section on the ZENworks remote control software, which allows system administrators to take control of, or view, workstations, and a section on application metering. Since I use third party products for both these operations I found these sections of less interest, although they followed the same style as the rest of the book and were clearly and well presented.

At £19.95 I recommend this book to anyone considering or using ZENworks. Those people using older versions should note that this book only covers ZENworks version 2. As with many of the O'Reilly books, it is clearly presented and well written. My only complaint would be a lack of troubleshooting hints and tips.

Jon Hutchings works in a team of five for Oxford University, managing a variety of NetWare, Windows NT, Linux and Solaris servers, with mainly Windows NT based clients. He can be found at jon.hutchings@oucs.ox.ac.uk.

Beginning GTK+/GNOME Programming

Peter Wright
Wrox Press, April 2000
593 pages, £28.99
ISBN 1-861003-81-1

(Reviewed by Richard Ibbotson)

Chapter List

  1. Welcome to GTK+/GNOME
  2. Glib
  3. Introducing GTK+
  4. Controlling the User Interface Layout
  5. Widget Wonders
  6. List and Bulk Data Widgets
  7. Dialogs
  8. Menus
  9. Advanced Widgets
  10. Graphics, Colours and Fonts
  11. Introducing GNOME
  12. GNOME Dialogs
  13. GNOME Widgets
  14. Further GNOME
  15. The GNOME Canvas
  16. The GNOME Integrated Development Environment (gIDE)
  17. Glade
  18. Application: Image Viewer
  19. Application: Balls and Springs


This is the best book about the subject of GTK+/GNOME programming that has been produced so far. From the beginning you get a strong sense of being directly in touch with the subject. There's also the advantage of being able to subscribe to a GNOME internet list to ask the sort of questions that you wouldn't have been able to ask before you read the book. After reading this book I was able to have long conversations with Miguel de Icaza who is the Chairman and Chief Technical Office at Helixcode in Massachusetts.


Peter Wright is the main author of this book with some technical help from other people. His ideas and his writing style are easy to understand and make for interesting reading if you want to know more about GNOME programming methods. He has written ten international best sellers and his talent for writing technical publications shines through in this book as well. Other contributing authors are Andrew Froggatt. I think I met him once after hearing that he played the Cello and knew a thing or two about physics. Also George Lebl from San Diego and Jaco Prinsloo in South Africa.

As we all know, most open source software is produced with the help of the Internet, without which operating systems like FreeBSD and Linux would never have become sophisticated or possibly even been invented.

The welcome at the front of the book says it all and it gives a clear explanation of any introductory topics that may be helpful before progressing into the later chapters. Even the Free Software Foundation and Richard Stallman are mentioned in order to help you to understand some basic ideas. The rest of the book goes into some detail about libraries, widgets and other parts of the sophisticated programming language that GNOME really is.

Chapter two starts out with thirty pages of introduction to Glib. All of the introductory subjects that you won't see anywhere else are here and can be understood. Next is introducing GTK+. This is enormously useful and gives some simple ideas about code and how to use it properly. Below is an example from this chapter...

 * basicgtk.c
 * The most basic, non functioning GTK+ application
 * you'll ever come across
#include <gtk/gtk.h>
gint main (gint argc, gchar * argv [ ] )

/* Declare a GtkWidget to use as the main window */
 GtkWidget * TheWindow;

/* Start GTK+ up, and let it process any arguments that were
 * passed on in the command line */
 gtk_init ( &argc, &argv ) ;

/* Create the window itself */
 TheWindow = gtk_window_new( GTK_WINDOW_TOPLEVEL );

/* Show the window, as far as GTK+ is concerned though, we just want
 * to make a widget visible */
 gtk_widget_show (TheWindow ) ;

/* Start GTK+ running so that it can catch any signals */
 gtk_main () ;

/* This line will never be reached in this app */
 return 0 ;

Now compile the application and run it. Type the following into your command line.

# gcc -Wall -o basicgtk basicgtk.c 'gtk-config --cflags --libs'

Then type the following command to run it, assuming the compile goes without a hitch.

# ./basicgtk

All Wrox Press books are laid out in this way and it does make them easy to understand. The next part of the book goes into the subject of controlling the user interface layout. There are plenty of examples of code and below you can see one of those examples...

/** Show the box, which in turn makes certain any visible
 *  widgets it holds come into view **/
 gtk_widget_show ( box ) ;

/** Show the window, thus showing the box and any visible
 *  widgets in it **/
 gtk_widget_show ( window ) ;
 gtk_main ( ) ;
 return 0 ;

It was at about this point that I was beginning to think something like "I wonder why you can't get visual basic books that are as good as this?" Also, "It would have cost me thousands of pounds to have done this with MS Windows programming tools". I moved on to Widget Wonders and things began to swing along a bit more. Widgets are the things that make Unix systems tick. The GTK+ version of widgets is quick and easy, making me think that perhaps I should forget VB altogether. Widgets are indeed a wonder when seen through the pages of a Wrox Press book. List and bulk data widgets follow on next and even parts of the Gimp are shown and demonstrated.

Dialogs are an important part of every application with a graphical user interface and chapter seven goes into this but not as much as it should. Building your own dialogs is shown as an introductory subject though and perhaps you can get something from this? Menus goes into the part of designing a GUI that most people take for granted. However, I think there is enough here to help out the beginner. Advanced widgets puts the rest of the book in perspective and you begin to get some more ideas. The dew begins to shine on the morning mist over the moor.

Graphics, Colours and Fonts goes into the GDK and Gimp and shows how it is an integral part of GTK+. This basically is the Gimp drawing kit which handles graphics and fonts. It is useful to know more about this but chapter ten is a bit short on the sort of facts that would have been helpful.

Finally, after the ten chapter preamble comes the tour de force. Introducing GNOME takes you from the roadside at Glencoe and up through the heavens and finally to the Lost Glen where miracles are seen to be performed. GNOME dialogs goes into the quick creation of dialogs with GNOME. GNOME widgets and Further GNOME are everything that I needed to learn. The GNOME canvas is also very useful.

I thought that the last two chapters which are about gIDE and Glade were the best part of the book. This is where I discovered that only Red Hat users are catered for and that other Linux users can just drop dead. I use SuSE 6.4 myself and I found that it doesn't do what the book claims it does. This does show you how thorough this publication really is. Without it I wouldn't have known. I also found out that no one on the GNOME development list knew anything about the SuSE distribution either.

I haven't tried the applications that are described at the back of the book. I assume that they do work. I found the various appendices to be very useful.

All in all I would have liked a bit more. I nearly always find that the documents that come with the software that can be downloaded are spartan and it is assumed that you can read someone else's mind at a distance of 15,000 miles or kilometres.

If you haven't done much with GTK+ then do go ahead and buy this book. Your world will change :-)

Richard is presently running the Sheffield Linux User's Group

Beginning Perl

Simon Cozens
Wrox Press, June 2000
647 pages, £28.99
ISBN 1-861003-14-5

(Reviewed by Richard Ibbotson)

Simon Cozens is the main author of this book with some technical help from Peter Wainright who is also published as the Apache guru in another Wrox volume.

I can vouch for the fact that anyone who isn't a Perl programmer can learn from this book. I tried to install Perl 5.6 from source onto my own SuSE 6.4 machine and failed. Simon's Perl book told me how to do that in the first few pages. So, Simon's book is easy to understand.

Right at the front there is a long list of web sites that you can go to for more information, and also some info about getting the source code for the book from the Wrox site.

The book starts with a chapter called First Steps in Perl and goes on to Working with Simple Values. This is invaluable for someone who knows nothing about the Perl language. At this point it's a good idea to use the source code that you downloaded from the Wrox site. I tried them all and couldn't find anything wrong with them. There's even a few joke.plx files which tell you invaluable facts about all sorts of programmers. For example, the source code that comes with chapter three has a couple of joke.plx files contained in it. When I ran 'perl joke1.plx' the following printed out in the terminal window...

Q: How many Python programmers does it take to change a light bulb?
A: One. He just stands below the socket and the world revolves around him.
No one who is starting out on Perl programming should be allowed to miss out on this sort of professionalism.

Lists and Hashes is the next chapter. This is where I started to get confused, but I did understand more after another 30 minutes of reading. The rest of the book goes into the usual things that make up the Perl language. At page 335 there is a chapter about Object-Oriented Perl. I haven't seen much about this and so I found it to be an interesting read.

Earlier on in the book the explanation is given that Perl is mostly used for CGI programming. There's an introduction to CGI at chapter twelve which explains a few things that I haven't read or seen anywhere else. The later chapter on Perl and Databases gives a good rounded feel to the whole volume and finally there's The World of Perl which gives a glimpse of what you can do with your new found knowledge.

The nine appendices at the back of the book give some useful information that can be found elsewhere, but you might need to scrape around to find any or some of it.

As Perl books go it's quite good. I've read all of the O'Reilly books on the subject and I think that Simon does a good job of not making the assumption that the reader knows what he or she is doing.

If you can change a light bulb then you can learn some basics about Perl from this book. Although the world may not revolve around you unless you become a Python programmer! At the very least Simon does breathe new life into a boring technical subject that most old farts still go on about. This is something that more of us should try to do.

Richard is presently running the Sheffield Linux User's Group

Professional PHP Programming

Jesus Castagnetto, Harish Rawat, Sascha Schumann, Chris Scollo, Deepak Veliath
Wrox Press
ISBN 1-861002-96-3

(Reviewed by Andrew Macpherson)

It's rare that a book seriously annoys me. This book needed an Editor with a heavy red pencil, and considerably more focus. If I want to learn about programming PHP I don't want a lecture about the joys of Open Source, however much I might agree or disagree with the sentiments.

The book is too heavy to read, when not at a desk. It failed for me. Fortunately for you Chris Davies needed to know about PHP, so I passed it on to him...

Beginning Linux Programming (2nd Edition)

Richard Stones, Neil Matthew
Wrox Press, November 1999
945 pages, £28.99
ISBN 1-861002-97-1

(Reviewed by Paul Webb)

Beginning Linux Programming was written for readers who have some knowledge of Linux configuration and elementary C. Within the confines of 945 pages and twenty-one chapters, the book covers a variety of topics like shell and X programming by teaching through the medium of a useful CD database application. The authors also discuss a number of advanced topics like client-server programming and an introduction to device drivers whilst the second edition incorporates material on Perl, GNOME and POSIX Threads.

First impresssions of the book were favourable. Richard Stones and Neil Matthew obviously love their subject and this infectious enthusiasm is communicated to the reader. Although the book has a 'definitive' quality about it, the style is concise without being superficial. Each chapter and section seems to have been written and presented with the objective of maximum reader accessibility in mind. Key points or 'Mission Impossible' information, to use the authors' terminology, is therefore placed in a greyed box for added emphasis. In a similar vein, the book includes many 'Try It Out' sections which encourage a 'learn-by-doing'approach whilst the theory behind difficult concepts is hammered home within a 'How It Works' section. Indeed, sample source code is available by obtaining a CD from Wrox Press or by downloading the code from the Wrox Press website http://wrox.com.

I therefore think that the authors have succeeded in the task of introducing a range of programming subjects. Although it is probably easier to read Beginning Linux Programming in a sequential fashion, readers will undoubtedly find themselves dipping into those parts of the book which interest them. The book therefore seems usable both as a textbook and as a work of reference.

What more can I say? Beginning Linux Programming will become an indispensable tool for the beginning programmer and for the established programmer on other platforms who wishes to migrate to Linux.

Previous Table of Contents Next
Tel: 01763 273 475
Fax: 01763 273 255
Web: Webmaster
Queries: Ask Here
Join UKUUG Today!

UKUUG Secretariat