[UKUUG Logo] Copyright © 1995-2004 UKUUG Ltd


Previous Next


Mastering Algorithms with Perl

Jon Orwant, Jarkko Hietaniemi & John Macdonald
O'Reilly & Associates, Inc.
684 Pages, August 1999
ISBN 1-56592-398-7

(Reviewed by Andrew Cormack)

As someone who studied Numerical Analysis in BASIC (really!) as an undergraduate, I suppose the title of this book should not seem odd. Yet it does leave a question: is this a book about algorithms, a demonstration of advanced Perl features or a collection of recipes?

The authors start in traditional computer science fashion by talking about data structures. Perl makes some of these trivially easy thanks to its flexible arrays, so this is a good place to show off the language too. In fact some of the coding is too easy, so the text has to explain the tricks that will be necessary to implement structures such as queues in other languages. Perl's cleverness can actually get in the way of teaching good programming it seems! Linked lists are particularly well done - the illustrations would even be of use to those learning C who often have problems here. Heaps and trees are also described and illustrated though these are a challenge on the printed page. I find a collection of postits useful to follow what is swapping where.

Perl's built in sort() function is highly optimised and will be the method of choice for most real programs. This gives the book freedom to treat sorting as purely a theoretical problem, and this is done very well. Each of the classical sorting algorithms is described and illustrated and their performance compared. This gives the reader sufficient information to identify the few situations where something other than the built in function should be used. Matching strings also begins as a theoretical issue, but the theory is extended to perform fuzzy matching, where a small number of errors is allowed, and soundex matching where "Perl" is equal to "prowl" (and "puerile", but never mind). These could perhaps do with more space to explain the algorithms. Other string operations including lossless compression and encryption are also covered, but in a more "cookbook" fashion.

Geometric methods, such as determining whether a point is inside or outside a shape, take a more practical approach, though the sample subroutines are at a very low level. As the text notes, these will not be sufficient to write a video game. Graph theory is not about geometry, but despite presenting a number of algorithms it is never made entirely clear what its applications are. However there are, as yet, few other books which use hyperlinks as an example of a directed graph.

Retaining precision is always a concern when performing numerical calculations on a computer and the authors include some good examples of how algorithms can be chosen to achieve this. Calculating the number of combinations of items from a set is a classic case where performing the calculation in the obvious order will give very strange results. Perl even has a solution for this problem, if you have enough memory, in the Bigint library which will store numbers to any desired precision. Number theory makes a rare appearance in a book of algorithms, though one of its uses, testing prime numbers, is definitely a task for computers. The same applies to probability and statistics, though the chapters here can only skim the surface of these huge subjects. These finish with two pages of subroutines for different statistical distributions, which are not otherwise mentioned. Here the cookbook has taken over completely.

The book covers a huge amount of material so despite its 600 pages is only a taster for much of its content. There is a good selection of references for anyone who wants to learn more about a particular area: readers should be warned that many of these are much more theoretical than this volume. Mastering Algorithms with Perl alone is not a complete computer science course, language reference or cookbook, but is an interesting read for anyone with an interest in more than one of those areas. The authors have achieved their aim of offering a balanced diet, but a balanced diet is seldom completely satisfying without a little extra indulgence.

Andrew Cormack is a lapsed mathematician and Perl programmer

User Friendly

J.D. "Illiad" Frazer
O'Reilly & Associates, Inc., September 1999
122 pages
ISBN 1-56592-673-0

(Reviewed by Andrew Cormack)

A book featuring Bill Gates, Eric Raymond, Richard Stallman and Tux the Penguin hardly seems likely to have its readers laughing aloud, but their visits to the world of Illiad's comic strip certainly have that effect. However, the real stars are the staff of Columbia Internet, a small ISP, and their silicon and non-human companions. They have occasional brushes with Dilbert's world of corporate lunacy but spend most of their time playing Quake, eating junk food and taking revenge on any systems which do not run their beloved Unix. There are gentle digs at most types of computer, though inevitably the favourite target is Microsoft.

Life on a help desk is depicted with painful accuracy: some of the user queries in the strip are so close to reality that it is hard to know whether to laugh or cry. Dealing with hardware has its problems too, especially when the machines are always one step ahead of the humans. The jokes are not always at the expense of others: the team find it hard to cope with a new recruit who is both female and the best Quake player of all.

The book is full of in-jokes, but they are carefully arranged at different levels of expertise. This should allow most readers to feel smug about having "got" some of them. Equally, everyone will inevitably miss some things on the first reading: many of the gags lurk in the corners and even the inevitable background of piles of cardboard boxes is worth inspecting for references and puns. User Friendly should definitely be savoured slowly, though probably not in public as you will spend too much time explaining the jokes to others. They should buy their own copies.

Cartoon strips tend to reflect current events, so are likely to go out of date fast. This one, for example, has comments about Microsoft's release procedures and troubles with the Department of Justice and the evangelical pronouncements of Stallman and Raymond. On second thoughts, maybe some things never change! Computer people are often regarded as having a particularly strange sense of humour, but Illiad makes it seem refreshingly normal. Strongly recommended as a restorative for those who can bear to laugh at themselves.

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

Programming the Perl DBI

Alligator Descartes and Tim Bunce
O'Reilly & Associates, Inc.
346 pages, February 2000
ISBN 1-56592-699-4

(Reviewed by Mick Farmer)

I'm not a database guru, but I'm often asked to explain how Perl interacts with databases, especially the in-house ones of the organisation where I'm consulting. Therefore, I was reasonably familiar with the Perl DBI module before I received this book for review. I decided to read it from cover to cover.

For those with little knowledge of databases I should mention that the DBI module is a database-independent interface which can work with a reasonable number of underlying databases, especially some of the more popular such as Access, Informix, and Oracle. My experience is with MySQL, a cheap, lightweight, and fast relational database which runs on UNIX, Windows 9x, Windows NT, and other platforms. It's available in both source and binary distributions (e.g. RPM or tarball for Linux).

The book consists of eight chapters and three appendices; the first chapter sets the scene for the rest of the book.

The second chapter is a gentle introduction to non-DBI databases. It starts with the use of flat files, then putting more complex data structures into flat files using the Perl modules for serialising data, Data::Dumper and Storable, and then the use of DBM files and the Berkeley Database Manager which all associate a DBM file on disk with a Perl hash variable in memory. Storing values in the hash and fetching values from the hash results in them being written to or read from the disk. The chapter finishes with a brief description of the MLDBM module which is able to store complex multi-level data structures in a DBM file. At this stage you're probably willing to accept the fact that there's an easier way of organising things!

The third chapter introduces the relational database model and SQL (Structured Query Language) for manipulating and querying the data in the underlying schemas and tables. I found this introduction to be well-written and interesting, possibly because most of it was new to me.

Chapter 4 finally introduces the DBI and how it connects to the actual databases through drivers such as DBD::mysql and DBD::Oracle. The DBI uses object-oriented handles to interact with databases; there are handles for creating database connections, which, in turn, are used for creating database handles, which, in turn, are used to create statement handles. Since a driver handle completely defines a driver, it's possible to have multiple drivers loaded simultaneously. Powerful stuff.

The DBI also provides mechanisms for error handling (automatic or manual), tracing execution (different levels), and neat formatting (scalars or lists).

Chapter 5 is the meat of the topic and is concerned with manipulating the data in the database -- retrieving, inserting, deleting, and updating data. It starts with simple mechanisms and works up to more advanced and optimised techniques. The majority of the material in this chapter is concerned with the different mechanisms provided by SQL, and the remainder covers the mechanisms provided by the DBI for fetching and storing data.

Chapter 6 covers advanced topics that aren't strictly necessary for basic DBI usage, but may be necessary for industrial-strength applications, for example metadata, handling large objects, and transaction handling.

Chapter 7 is concerned with the relationship between the DBI and Open Database Connectivity (ODBC) which is another database-independent API. The general consensus is that as the DBI and DBD::ODBC modules evolve, they will move closer together with a possible merger in the future.

The final chapter describes two useful tools that aren't part of the DBI. First, there's the DBI shell, a command-line tool for issuing SQL commands against a database without writing a complete Perl script. For those of you familiar with MySQL, it's similar to the mysql program and has similar functionality.

Second, there's database proxying, which provides the ability to forward database queries to a database, using the proxy software, and return the results without the client program having any database drivers installed. This turns out to be extremely powerful, as it allows you to access databases on any operating system from any other operating system, provided that they are both running Perl and the DBI. This was the one "feature" that I didn't try for myself!

The first appendix contains the complete DBI specification, the second contains additional information about the commonly used drivers (all fourteen of them), and the third contains the ASLaN Sacred Site Charter. This won't make any sense unless you read this book -- all the examples concern standing stones or megaliths. This charter is a an effort to preserve megalith sites.

The book is very well written with frequent examples. It certainly maintained my interest from beginning to end. I mirrored the authors' examples with my own MySQL databases and had no problems. I learnt SQL as well.

If you need to interact with databases and you have access to Perl, then this book is a must.

Mick Farmer is an experienced Perl consultant and trainer who is always looking for new challenges.

Ethernet - The Definitive Guide

Charles E. Spurgeon,
O'Reilly & Associates, Inc, First Edition
February 2000, 500 pages.
ISBN 1-56592-660-9

(Reviewed by Richard Ibbotson)

Ethernet started out in 1973 when Bob Metcalfe at the Xerox Palo Alto Research Center wrote a memo describing the ethernet network that he had invented. This was for the Xerox Parc system which was a revolution at a time when most machines were mainframes and the desktops that we take for granted now were just science fiction. Well at least the palmtops were ?  Of course, in the 1990s ethernet became a part of our everyday life and something that no one in a developed and industrialised country can live without. It is from this point of view that Ethernet - The Definitive Guide explains the ins and outs of all that is ethernet.

There is an easy to understand layout which becomes more evident as the reader progresses though the book. Just like the ancient Greek philosophers thinking that to walk in to a house you first walk in through the front door and then you walk into the next room and then the next there is a progression of one idea to another. The pictures and diagrams are clear and easy to understand.

Obviously good design policy? Charles Spurgeon knows his spaghetti from his network stuff (or octopi?). He is the senior network architect at the University of Texas at Austin. He's worked on big systems for twenty years. This is reassuring for someone like myself who has spent twenty years working on very big mechanical engineering projects that are on the edge of electrical engineering and also very much a part of it.

The first chapter goes into a bit of history. Useful for those people who have only seen that Microsoft are the only software company around? Or perhaps too young to remember the original SCO Unix? Chapter two explains the basic ethernet system, the four basic elements of ethernet are explained. Further on ethernet media systems are explained in some depth. I still get the impression that other topics could have been included at this point but perhaps 500 pages is enough already without adding more? But, as I say there is enough to show the complexity of the system in easy to understand ideas.

On the electrical engineering side there are plenty of good examples of the layout of systems and what it is that should be done with cables and to build systems that are fast and reliable. I expected to find a sort of a flip explanation written by a programmer who had spent most of his time filling in the instant lottery draw cards or something of that sort. The mechanical side of ethernet is explained thoroughly.

After chapter thirteen there is the bit that I like which is all about the hardware and how to plug it together. The part where you actually get your hands on it and play around. Cabling and connectors are shown, fibre optic is given an airing. Repeater and switching hubs are the bit the on the end which complete the whole and give an all round feeling of a good end to the day. There is a very useful chapter twenty which goes into trouble shooting the problems that arise with complex networks.

O'Reilly have produced a good book which will probably only suit a certain kind of audience?

In the present day we find that the networks and particularly the internet have become things that are not understood by most people. This volume is useful for either home users or businesses with a small network or for first year students who want to know a bit more. Kind of book that a University should have on the shelf. If you get bored then read the colophon at the back? All O'Reilly books have them. They try to breathe personality and life into dry subjects. Something that more of us should try to do.

Richard spent twenty years working as a photographer in heavy engineering and he first worked with ICL in Sheffield in 1973. In January 1999 he put the Sheffield Linux User's Group together. You can view their web site at http://www.sheflug.co.uk

Evil Geniuses in a Nutshell

A User Friendly Guide to World Domination
J.D. "Illiad" Frazer
O'Reilly & Associates, Inc. April 2000
122 pages, £8.50
ISBN 1-56592-861-X

(Reviewed by Richard Ibbotson)

There are many serious people in this world. A lot of them have a habit of being very dry. Some also tell us that they know better than us. This exactly describes the kind of people who run the internet in England today. If like me, you have been on the receiving end of their "wisdom" and also the Government's idea of what's the UK internet is about then you might need to have a look at this book? Either that or go and see the family G.P? You might even get your Doctor to read it?

Humour is available in many forms. There's the Marx Brother's (if you like that sort of thing). There's old stuff like Les Dawson or even the more modern stuff like Eddie Izzard? Evil Geniuses in a Nutshell by J.D Frazer doesn't quite fit in with any of those. Humour is a very personal thing. What's funny to some people isn't funny to someone else.

Like the sort of thing that we used to see in BBC sitcoms, it's a complete one off and it is very complete. I used to read James Thurber a lot and I liked the cartoons and the Thurber wit. This particular book is a sort of a modern day Thurber re-write but with more internet awareness. There are the cartoons of the friendly looking animals and other stuff that sort of suggests someone saying to you "imagine what could have happened of you'd done that the right way around?"

There is an excellent example in the first part of the book of what the whole of Evil Geniuses is about. There is a cartoon of hands holding a Pentium III CPU with what looks like rubber washing up gloves. The hands are painting the words "Pentium III" onto the CPUs. The paint is liquid paper. The heading across the top says "A closeup of the Intel Pentium III production line".

Later on there is the "Microsoft NT Fund Credit Card". This is a picture of two credit cards with the MS logo on them. The caption says "The NT fund is a private charity incorporated to serve one exciting purpose: to fill our coffers. For every purchase you make on this card, we tack on another 20% so that we can buy market share."

On page 99 there is a cat that looks as though it just escaped from the local doctor's surgery after one of the usual experiments. Well, medical budgets are tight in the present day aren't they? Then again you would need treatment after saying "HTTPD" on the phone a couple of times?

All the usual User Friendly characters are here and few others that we didn't see before. The usual mix of dust puppy, Stef, Pitr, Greg and the others. If you like this sort of thing then you should buy it. It's cheaper than all of the treatment that I've seen dished out to many people and it might even brighten up your rainy days?

Richard has worked in MS Windows call centre support. He first worked next to ICL in the 1970s in Sheffield. He's actually a photographer but he's spent much of his life working on engineering projects. He is presently running the Sheffield Linux User's Group. You can view their site at http://www.sheflug.co.uk.

Learning Python

Mark Lutz and David Ascher
O'Reilly & Associates, Inc. April 1999
384 pages
ISBN 1-56592-464-9

Python Pocket Reference

Mark Lutz
O'Reilly & Associates, Inc. October 1998
75 pages
ISBN 1-56592-500-9

(Reviewed by Gavin Inglis)

Python is one of these languages that people are always thinking of picking up. Object-oriented, versatile and surprisingly clean to read, it is steadily acquiring loyal supporters who use it for rapid development, sysadmin tools and GUI building among other things.

The venerable old grandfather of Python books is Lutz's own Programming Python which dates back to 1996. Perl has the "llama book", Learning Perl, to accompany its "camel book"; now Python has the "wood rat book" to match the "rock python book". One suspects these names will not catch on to the same extent.

Learning Python takes the role of a tour guide to the language, beginning with the basic types and operators, building up to functions and classes, and finally letting the reader free among Python libraries and example applications. Thinking in modular terms is encouraged right from the start in a non-threatening manner, and Python particulars like "block boundaries are detected by line indentation" are made explicit and reinforced.

Early chapters contain a lot of detail. They can be a slow read but there are examples at the end of each which serve the double purpose of revision and forcing the reader to examine the boundaries of the topics just absorbed. Particularly nice are the "Why You Will Care" boxes which show how the fine detail of a simple language feature becomes significant later on when programming more advanced behaviour.

The text is crisp and meticulous throughout, yet still readable. It smacks of hard graft by the writers and editor. Although very readable, it's really too challenging for the non-programmer, who would be better advised to start with something more basic. Although no background in C or C++ is necessary to follow the material, Python's roots in programming these languages are obvious and we are treated to explicit comparisons from time to time, plus occasional detail on how the interpreter actually implements Python constructs in C.

Visitors to www.python.org will find a mountain of documentation there in the form of references, HOWTOs, FAQs and hints. Yet for those with limited desk or shelf space, there is the Python Pocket Reference. This compresses the main features of the language into 75 smaller pages. Most detail you might expect to be covered is, from the interpreter's command-line options through types and syntax up to special keys used by Python mode for Emacs. Only about a third of the built-in modules are actually covered in detail; understandable for a book of this size, yet it leaves the opportunity for a Python Modules Pocket Reference.

A working Python programmer will need some kind of reference. Whether the slim O'Reilly volume is the one will come down to individual taste. However, Learning Python is a clearer work than Learning Perl, and an easier read than Programming Python. It is well crafted and an excellent choice for the aspiring Python programmer.

Programming Web Graphics with Perl & GNU Software

Shawn P. Wallace
O'Reilly & Associates, Inc.
xiv + 454 pages, 1999

(Reviewed by Gavin Inglis)

Images present a great opportunity to give web authors headaches and ruin otherwise perfectly good pages. There is considerable literature about web design with HTML, and a number of bibles on optimising images for web delivery. Programming Web Graphics with Perl & GNU Software, however, breaks into a rarely explored area by focusing on dynamically generated graphics for the web. In addition it snubs the emperor of image tools, Adobe Photoshop, and aims squarely for the open source enthusiast and Perl monger.

Author Shawn Wallace is obviously immersed in GNU culture, and switches easily from Gimp to PostScript to graphics library. His writing style is compact and clean, punctuated by good, detailed examples.

The book does not shy away from real foundations, opening with a plunge into the hard detail of the GIF, JPEG and PNG file formats. It's safe to skip the deeper parts and get on into the more familiar ground of CGI scripting. The average reader is likely to have written a few scripts to generate HTML pages, but may not even realise that images can be dynamically created using the same mechanism.

Following chapters explore various options for generating the image data itself before settling on the GD GIF generation library and its port to Perl. From simple purple rectangles we are led quickly to a rather impressive demonstration which generates a chessboard graphic on the fly and provides a simple form interface for moving the pieces.

Inebriated with the raw power at our fingertips, we move on to the more complex ImageMagick libraries and their Perl interface, PerlMagick. An entire reference to the module's methods fills the rest of the chapter, with light relief provided by an image of a startled cartoon cat which suffers all manner of unfortunate transformations to demonstrate the effects available. Should your boss frown on even this level of fun, you can quickly flick to the last of these sections which considers the creation of dynamic charts and graphs using the GIFgraph module.

What might be a redundant chapter on operating the Photoshop-like image tool, Gimp, has been made into something more. The text explains how to write plugins using Perl, rather than the more familiar Scheme-based Script-Fu language. Although this is a springboard into the subject rather than a detailed guide, it's still very worthwhile. A decent reference to Gimp also appears in an appendix.

Other chapters cover imagemaps, animated GIFs, dynamic generation of PostScript for hardcopy, and a cookbook section which even considers the conversion of images to ASCII art for ALT attributes - insane and brilliant at the same time.

Programming Web Graphics... is a cross between a how-to manual and an idea book. It will empower readers in the often mystical area of graphic creation and suggest new ways to give web sites lively, dynamic content, all without spending a penny on software. 454 pages are hardly enough to provide a thorough course in every tool mentioned, but in each case there is enough material to lift the reader to basic confidence, and the references to take them further.

Although without some knowledge of Perl it might be intimidating, the text should be accessible to the complete graphics novice. Shawn Wallace has written an excellent book on a topic which deserves it.

Guide to High Availability

Jeannine Kobert
Prentice-Hall PTR September 1999
100 pages, £18.99
ISBN 0-13-016306-6

(Reviewed by Virantha Mendis)

The new generation of hard disks are capable of storing vast amounts of data. Most of the Sun disks today are 9.0 GB, and this is to increase in the near future. At the same time, the amount of data these disks actually hold is also ever increasing. This places the burden of having the data available all the time on the system administrator. To achieve this there are two widely used products on Sun hardware. They are Solstice Disk Suite (SDS) and Volume Manager (VM) from Veritas corporation. These two products give the system administrator the ability to manage these disks and to provide a high availability environment.

This book, as part of the Sun's Blueprints collection, is aimed at the system administrator who is responsible for managing the disks and keeping the data available at all times. The theme of the book revolves around installing the software, initial configuration and a disaster recovery scenario which describes how to recover when the primary boot disk fails. All this is covered for both SDS and VM. The author has also made great efforts to explain both the GUI front end and the command line equivalent. In the VM section, there are notes on how to proceed with upgrading the Solaris operating systems. This is valuable as many people who use VM are not aware of a correct and tested procedure. Sun ships a wide range of disk solutions from low cost MultiPacks to high end StoreEdge series. To cover all these possibilities the use of VM with Sun StoreEdge 5000 and with MultiPacks is covered.

Alternate Pathing in the Solaris environment is a black art to many of us. The section that covers AP is well written and informative. The section is augmented by demonstrating how to use VM in conjunction with AP. What is missing is a worked example of SDS and AP.

Throughout the book, there are plenty of worked examples and the commands used are shown with the output. The GUI examples are also well presented. The section which covers how to configure and mirror the system disk using the SDS command line is just great. There are two pages of a worked example that can simply be followed to achieve what is needed. There are many people who would otherwise struggle with this procedure, while it is also valuable for the experienced system administrator who wishes to refresh his memory. When I received the book I was a bit disappointed because of the number of pages (only 100 pages in all). However, after reading and using some of the examples, I can say I have changed my view. I think the book has been deliberately made a thin volume, so it can convey only one solution. This is how to keep the disks under disk management software and how to recover from a failed boot disk without rebooting the box.

There are lots of SunSolve documents available from Sun which cover VM and SDS in great detail. Perhaps it would have been better if the author had given a few references to them in the book. Also, the book covers only the system disks and not the data disks. Again, I think this was deliberate policy to stick to the theme of the book. In my view, anybody who is responsible for VM and SDS in a live environment should have a copy of the book.

Virantha runs MainLogic Ltd. which specialises in providing technical expertise on Sun/Solaris for anybody who needs it.

Internet Core Protocols: The Definitive Guide

Eric A Hall
O'Reilly & Associates, Inc. February 2000
449 pages
ISBN 1-56592-572-6

(Reviewed by Joel Smith)

This book is about the fundamentals of IP networks. It also examines the way in which IP traffic interacts with the underlying physical networks. It approaches all of the protocols in the same way, making extensive use of packet capture and analysis of these packets to illustrate the points. To aid this, it comes with a CD with a copy of Shomti Systems' Surveyor Lite, which is the tool used for the book screenshots.

After an introductory chapter, the book goes through chapters on IP, ARP, multicasting and IGMP, ICMP, UDP, and TCP. Each of these is analysed in exhaustive depth and with plenty of illustrations of captured packets. Each chapter ends with a section on the protocol in action, together with a final section on troubleshooting that protocol.

Appendix A covers the way in which RFCs and STDs are developed, together with an introduction to the primary bodies concerned with them. The CD also includes all of the published RFCs available at the time of publication. Finally there is an appendix covering IP addressing, IP classes, subnetting etc.

Much of the information in this book can be obtained from the RFCs covering the protocols. But Eric Hall leads the reader through the various protocols in a very clear and detailed way, with numerous examples to follow. After all, why trawl the RFCs if the information is presented in a more easily accessable format? If it goes into more depth than you require, then it is easy to skip on a few pages to the next relevant bit.

If you are trying to nail down a particular problem, the combination of the included software (for Windows machines only), together with the detailed disection of the protocols would help to diagnose any faults, and would save having to go back to the various RFCs. For those of us with Unix systems, the book will help understand the lower levels of packet capture (although with a bit more work required to read the output!).

This book moves beyond the older O'Reilly book TCP/IP Network Administration, and covers the protocols in much more depth. It will be a useful book to refer to, but I suspect will be one which lives mostly upon the bookshelf, only coming out occasionally during a troubleshooting session.

Managing Windows NT Logons

Kathy Ivens
O'Reilly & Associates, Inc., January 2000
236 pages
ISBN 1-56592-637-4

(Reviewed by Joel Smith)

Although this book is called Managing Windows NT Logons, it deals with far more than simply the administration of accounts on an NT Server. It covers the whole process of a workstation booting onto the network and a user logging on, together with a whole host of problems that can occur along the way. The book looks at the problems raised by a user complaining, "My computer won't start."

The book starts off with the whole process of a PC booting up, and the stages along the way, from the BIOS processes through to the passing of control to the Master Boot Record and on to Ntldr and Ntdetect and on to the OS starting up. It covers a whole range of areas where the process could fall over and the PC fail to start up. I was not expecting to find this type of information in this book, but it was well done and provided useful nuggets and tips for recovery.

The book then follows the basic logon order, with chapters on password problems, logon scripts and profiles until it had dealt with all the areas likely to cause problems during a network logon.

The second half of the book looks at ways to make improving the administration of an NT network, with chapters on sharing resources, controlling what users can do, power utilities from Microsoft in the form of the Resource Kits and MS PowerToys, and the final chapter dealing with how to utilise the command line effectively (and frequently far faster than the GUI).

The thing I really like about the O'Reilly NT series is the way that they tell you how things really are, rather than the "official" Microsoft ways of doing things. All through this book there were mentions of gotchas, and security holes in the default actions of various utilities. These ranged from the annoying (Server Manager should not be used for synchronising Domain Controllers, as it frequently doesn't work properly -- use the command line instead), to the troublesome (W98 machines automatically think they have a roaming profile if they have a home directory configured, and proceed to upload files to the server), to the downright worrying (any user on the network has change control of the administrative shares set up as default on all hard disks -- FAT file systems are thus accessible to anyone on the network!).

There is a fair amount of overlap between this book and another O'Reilly book Essential Windows NT System Administration. However, this book is far more focused on the problems likely to arise with users on a network. It does not deal with the issues of managing NT itself, but only on the workings of the NT network. I also feel it has the edge in bringing out the areas where the default settings of NT are a real problem. I wish this book had been written a few years ago!

Joel Smith is the Internal Systems Manager for First Software UK Ltd

A Guide to LaTeX. Document Preparation for Beginners & Advanced Users

(Third Edition)
Helmut Kopka and Patrick W. Daly
ISBN 0-201-39825-7

(Reviewed by Paul Webb)

Kopka and Dalys' A Guide to LaTeX. Document Preparation for Beginners and Advanced Users occupies an intermediate position in the LaTeX market place between Lamport's LaTeX: A Document Preparation System and Goossens et al's The LaTeX Graphics Companion.

The book is consequently more comprehensive than Lamport's work but avoids a discussion - in the manner of The LaTeX Graphics Companion - of topics which would interest the more specialised reader. The authors therefore discuss additions to a base LaTeX installation like the graphics and color packages but omit descriptions of "niche" LaTeX topics like the typesetting of musical scores or the generation of game boards. Kopka and Daly therefore succeed in providing a textbook which will suit the needs of anyone from the beginner to advanced user and their approach works very well because they have carefully selected those additions to the base installation which are now needed by ordinary users. It is for example no longer the mark of the LaTeX expert to have need of graphical inclusions in a document and Kopka and Daly have taken this issue on board.

In the space of 600 pages which are divided into nine chapters and seven Appendices, Kopka and Daly provide a balanced discussion of a range of topics. The reader is therefore introduced to topics which range from the basics of a LaTeX file to a description of the different types of error message which plague the budding and seasoned user. Other topics which the reader will meet along the way include commands and environments, layout and organisation and user customisation.

The book's appendices are similarly very informative and address topics like LaTeX letters, bibliographic databases, programming and extensions as well as TeX fonts, maths extensions and a command summary. All the appendices contain material of interest to any user but I particularly appreciated Appendix A with its illustration of a sample letter class which could easily be adapted by the user after some study of this Appendix and Appendix C on LaTeX Programming.

In a sense, the book invites comparison with The TeXbook by Knuth because Kopka and Daly include Exercises which encourage the reader to engage with the text rather than being the passive recipient of half-digested information. The book also includes sections which are marked with an exclamation mark and are meant to be skipped over on a first reading. Again, the reader is reminded of Knuth's TeX and METAfont books with their "Dangerous Bend" sections which were meant only for the eyes of TeX aficionados.

On balance, I think that this book provides an excellent resource for the LaTeX user. It could be used by the beginner but I would personally prefer to use Lamport's short introduction or one of the concise guides which are available on CTAN before consulting this comprehensive work. What can be said without doubt is that the user can now avail of a range of books - both commercial and public domain - which meet the needs of a varied group of users. I would therefore recommend Kopka and Dalys' work to the intermediate and/or advanced user as opposed to the absolute beginner.

Paul is currently working as a Technician & Freelance Writer. In previous incarnations, he worked as an FE Lecturer and as a Registered Nurse. His computing interests include Digital Typography which ties in with his fascination with languages. Some of his friends say that he's obsessed with Free Software.

Optimizing Windows for Games, Graphics and Multimedia

David L. Farquhar
O'Reilly & Associates, Inc.
ISBN 1-56592-677-3

(Reviewed by Paul Webb)

If you have access to an ageing 486 or to a Pentium III which runs a variant of Windows, you'll enjoy David L. Farquhar's Optimizing Windows for Games, Graphics and Multimedia.

Farquhar's goal is to take the intermediate user through the process of fine-tuning their computer. The author therefore covers, in twelve chapters and an Appendix of Useful Web Resources, a very disparate range of subjects from Systems Optimization Theory to Hardware Upgrades where software configuration has been tried and found wanting. In fact, the book covers such a wide range of topics that one comes away with the feeling that a comprehensive range of sources have been consulted as a prelude to writing the book.

But the eclectic mix of optimization tips does not detract from the book's readability as Farquhar moves from classic tips which can be made with the absolute minimum of tinkering to the more involved topics of DOS optimization and Clean Windows Installations. Farquhar also intersperses some of the less digestible chapters of the book with more inviting sections which add to the book's accessibility. Descriptions of topics like memory types and pseudo-duel booting are therefore followed by accounts of how the author ran a range of DOS games including Redneck Rampage and Ultima VI. Similarly, the chapter which deals with windows replacement shells like LiteStep (http://www.litestep.net), EVWM (http://evwm.com) and StarOffice(http://www.sun.com/staroffice) provides welcome relief from the more technical material on Utilities and DOS which is presented in preceding and successive chapters.

I therefore have no hesitation in recommending this book. The author writes well and provides a very valuable resource for those readers who doubt the rationality which underpins the notion that we should continually update our hardware. The book is also pitched at the right level for intermediate users who basically know how to use the OS but baulk at the idea of tinkering with autoexec.bat and config.sys. Farquhar also writes in a very dispassionate way and merely presents the merits and demerits of each package, utility or tip that he recommends. His style therefore has the welcome effect of increasing the reader's confidence in the reliability of the advice which he gives.

I would however, have appreciated a few more screenshots - especially of the alternative shells. Including a CD containing some of the utilities to which he refers in the text might also have been useful for those without internet access. But these are minor reservations. If you want to run a lean and mean Windows machine, this book is a must.

Paul is currently working as a Technician & Freelance Writer. In previous incarnations, he worked as an FE Lecturer and as a Registered Nurse. His computing interests include Digital Typography which ties in with his fascination with languages. Some of his friends say that he's obsessed with Free Software.

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

UKUUG Secretariat