[UKUUG Logo] Copyright © 1995-2004 UKUUG Ltd


Previous Next


Internet Junkbuster

(Review by David Hallowell)


What the package does

The Internet Junkbuster (IJB) is a non-caching filtering web proxy server. It's most common use is the filtering of advertisements from web sites although it also can control cookies and modify the headers sent by the browser.


Open source. Free to download and redistribute under the terms of the GPL.


To use the Junkbuster on most systems you need a C compiler and make to compile this package.


Installation is fairly simple on a UNIX system, running make should compile the software without any problems on most systems, however some systems require slight modifications to the Makefile although the Makefile clearly indicates what changes have to be made making this a straightforward task. You can install the compiled binary wherever you want to and to execute the program simply type junkbuster configfile & where configfile is the name of the Junkbuster configuration file. To make the Junkbuster execute on startup of the machine simply put the junkbuster configfile & line in the appropriate start up script for your system. Once installed you have to tell your browser to use the proxy. This is a fairly easy step with graphical browsers such as Netscape which lets you configure the proxies by a menu. With a console based browser such as Lynx you have to set the HTTP_PROXY environment variable to use the proxy.


Configuration is done via text files. The name of the main configuration file is specified on the command line (a sample configuration file called junkbstr.ini is included with the distribution). This file allows you to configure the various options for the program and allows you to specify the location of the other files such as the blocklist, which contains details of what the proxy will filter out and the cookielist which tells the proxy which cookies to accept and reject. The Junkbuster has many configuration options and it is advised to read the documentation to make the most of this product. At this point I have to point out that the blocklist supplied with the official distribution is very basic and if you want the Junkbuster to block almost all adverts then I suggest you download the extensive blocklist from http://waldherr.org/blocklist which does a good job at blocking nearly every banner ad on the net.

Package availability

The source code can be downloaded from http://internet.junkbuster.com/ there's also packages available in RPM and DEB format available separately from the website. For Windows users a pre-compiled binary junkbstr.exe is included with the source distribution as many Windows users don't have access to a C compiler.

Security Implications

There has been a few potential security holes in versions prior to 2.0.2 although there has been no reported incidents involving these security holes. If you're using a version prior to 2.0.2 you should upgrade immediately.

Languages Supported

HTTP. Other protocols such as FTP are not supported so make sure you set the Junkbuster as your HTTP and Secure HTTP proxies only.

Known Alternatives

Waldherr.org offers a modified version of the Junkbuster which sends a transparent GIF image (1 x 1) when a blocked URL is requested. The normal Junkbuster just blocks the request so you get the broken image symbol, this modified version makes it look like the adverts have disappeared. Apart from that it is the same as the official Junkbuster in every way so uses the same blocklists and configurations files. You can get this version from http://waldherr.org/junkbuster/

Not an alternative but if you're after a caching proxy (one that caches pages you've previously visited) then try Squid http://squid.nlanr.net/ - it is possible to chain the Junkbuster and Squid together so you can both filter ads and cache pages.


Just about any UNIX system as well as Windows, OS/2 and BeOS. I've used it with Linux 2.2.7 and Solaris 2.6 (Sparc and Intel).


There is plenty of documentation included on the Junkbuster website http://internet.junkbuster.com/ and the most important documentation is also included with the source tarball.


There was no performance problems with this product and because it blocks banner ads it speeds up web browsing as there's no need to wait for the images to load.


Commercial support is available from Junkbusters. If you require support you can contact them to obtain a quote. Details are in their FAQ.

Overall Comments

Personally I just use the Junkbuster to block banner ads and speed up web browsing as a result. I have nothing against companies putting advertisements on their web pages but if you're connecting through a dial-up line or on a congested network it really can speed up your browsing. Other people have more sophisticated uses for the Junkbuster, it can be used to control the cookies that servers try to send to your browser (giving you more flexibility than the options a browser normally gives you), you can accept cookies from certain sites and reject them from others or allow some sites to read the cookies but not accept any new ones. The Junkbuster can also control the headers send out by the browser, but that's not something that concerns me. I just allow all cookies and let the headers go unmodified but the facilities are there if you want them and if you're worried about your privacy on the Internet you'll find the features of the Junkbuster really useful.

Although many people use the Junkbuster on their own machines there's nothing to stop an ISP offering this service or a company/University offering it on their local network. However if you do decide to offer the service you should always make it optional as not everyone will appreciate having their adverts blocked and there's always the chance that a very extensive block list will sometimes block something that wasn't intended to be blocked. It would be a good service for an ISP to offer as it would speed up their customers Internet access and many would see that as a good thing. On a corporate or academic network it would help to reduce network traffic and for people who have to pay for transatlantic traffic (such as members of JANET - the academic network) real cost savings can be made especially if it is chained to a caching proxy server.

So if you hate waiting for adverts to download, or you're concerned about your privacy then this is the product for you.

VMware for Linux

(Reviewed by David Hallowell)


What the package does

Vmware provides a virtual platform to enable you to run more than one operating system concurrently on the same machine. This review is based on the final beta of the product, however version 1.0 is now available .

Terms used in this review


Commercial. At the time of writing I don't know of any UK suppliers, however online ordering is available from the VMware website the price is $99 for non-commercial home and academic use (reduced to $75 until 14th July) and $299 for a commercial license. The commercial price includes support. A 30 day time limited free trial is available.


To use the Linux version you'll need a Linux system with glibc2 (aka libc6) or higher. An Intel Pentium (or Compatible) CPU - I recommend a PII - 300 or greater (although it is usable on a 233) and a minimum of 64MB RAM. VMware supports SMP but only in the 2.2 series kernels.

A Windows NT version will be available soon which will require NT 4 with service pack 3 or higher installed, it has similar hardware requirements to the Linux version.

You also need a copy of the guest operating systems you wish to run (as well as the appropriate licenses if your going to run a commercial OS).


The first step is to register for VMware on their website http://www.vmware.com/download/ you will then be sent a license for the product which you have to place in a directory called ~/.vmware. If you don't have a valid license then you won't be able to use the product. After obtaining your license you can download the required files from their website, and untar them into a temporary directory. You then just run the supplied installation script which asks a few questions and then installs the product for you. Once the product is installed you can go about setting it up and installing the guest operating systems. This task is made easy by the included 'wizard' or if you prefer you can set it up manually which is the preferred route (well it is my preferred route anyway!). Each virtual machine that is set up with VMware can be allocated its own virtual ethernet card with its own IP and ethernet address (up to a maximum of 4) which means you can network your virtual machines and your host OS together to share files and if your host machine has a network connection you can also make your virtual machines visible to the network. Of course this involves some networking knowledge but even a basic knowledge of networking with the operating systems concerned should be enough. If you don't need to share data between the operating systems and all you want to do is run applications on a particular OS you don't need to bother with networking.

Known Problems

At the time of writing VMware is still in beta and as with all beta software you shouldn't use it on mission critical systems as there may be some major bugs still in the product. Most people have used VMware successfully but there has been a few reported problems which will be resolved before the first release version.

The specifications of the virtual machine will be different to the actual specifications of the physical machine particularly in respect to the network card and the display. This will cause problems particularly with plug and play operating systems such as Windows 98 if you intend to use it on the virtual machine and then reboot and use it as the primary OS later. The best solution is just to use Windows within the virtual machine running in Linux if you have a powerful enough machine. However some DirectX and 3D games don't work through VMware at the moment and neither does MIDI support so you may want to run Windows natively for these purposes. If so you can create hardware profiles for both configurations. You can then select the appropriate configuration depending on how you are running Windows.

Package availability

There are no packages in the standard Linux package formats. VMware comes with its own installation script. The Windows NT version will come with a familiar Windows style installation program. The Linux package is available and the NT version will be available from the VMware website - http://www.vmware.com/download/

Security Implications

None Known.

Guest Operating Systems

According to their website, VMware have tested the following operating systems as guest operating systems running in a VMware virtual machine:

Known Alternatives

The Freeware project is planning to write an open source PC virtual machine similar in functionality to VMware. Information can be found at http://www.freemware.org/. Work has just started on the project so it's not a viable alternative just yet but hopefully in the future it will be.

If you want to run Windows applications on your Intel-based Linux box (as well as some other Intel-based UNIXes) you could consider WINE which allows you to run Windows software under Linux without the need to run Windows (and therefore you don't have to pay for or own a copy of Windows either). However WINE is still under development and there are still many Windows applications that won't run (or are unstable) with it. However WINE has recently got the support from Corel who are assisting some of their developments. More information at http://www.winehq.com/.

Bochs is a PC emulation project which allows you to run PC Operating Systems (e.g. Windows, Linux, etc) on non PC platforms. Bochs is commercial software although the source code is available. More information and licensing details are available at http://www.bochs.com/.


I've tested this product on RedHat Linux 5.2 (upgraded to kernel 2.2.7) running Windows 95, 98, MS-DOS 6.2, Windows 3.11, FreeBSD and Slackware Linux as guest operating systems (not all simultaneously - I normally run two simultaneously).


Documentation is available on the web site and some is included in the package that you can download. I very rarely needed to consult the documentation but it seems to answer the most common questions. As this is still in beta there's no way of telling how extensive the final documentation will be.


On a 300MHz or faster processor using VMware produces acceptable results when running most popular applications in a virtual machine.


Support will be available for people who purchase a commercial license for VMware. It probably also be available separately.

Overall Comments

This product has a lot of potential uses although in many cases it is just a convenience factor to avoid the need for rebooting. Whether it's worth buying a copy of VMware depends on whether you consider the extra convenience is worth the license fee. VMware is particularly useful for developers who are writing software that they want to run on various Intel-based operating systems they can write the code in their preferred programming environment and then without moving to another machine compile, run and test the program on a number of different operating systems.

For me it wouldn't be worth buying VMware as I don't need to use Windows. I could use it to test different Linux versions simultaneously or to run FreeBSD or Solaris x86 but it probably isn't worth the license fee alone. However if you're often seen rebooting between different operating systems then this product is worth it for the convenience it offers. But don't buy it if you only use Windows for games as DirectX isn't fully supported yet. However check the website as it will be supported in future releases.

vi Editor Pocket Reference

Arnold Robbins
O'Reilly & Associates, January 1999
66 pages, $6.95 US
ISBN 1-56592-497-5

(Review by Jim Webber)

Do you remember how in the old days, before you had the entirety of you favourite text editor commands commited to memory? Of course, you had some scraggy piece of paper pinned or taped somewhere to hand. It had to be, you'd have been lost without it.

O'Reilly have taken this venerable tradition and given it some gloss. The Vi Editor pocket handbook really is an excellent replacement for the rapidly fading Vi crib-sheets that are still liberally scattered around any Unix-intensive environment. It's small, weighing in at less than 70 small pages, concise, and well laid out. The fundamentals of Vi are placed at the beginning of the book(let?) and more fanciful topics such as Vile, Vim, Elvis and Nvi, placed towards the rear.

Whilst the book certainly won't serve as a tutorial for Unix newcomers, (this is the function of the companion Learning the Vi Editor) it's just right for anyone who uses Vi infrequently. So, if your crib sheets are looking a little worse for wear, you could well see yourself investing in a copy of this little gem - or some form of laminating device.

Java Swing (Java 1.2)

Robert Eckstein, Marc Loy and Dave Wood
O'Reilly & Associates, September 1998
1221 pages, £29.95
ISBN 1-56592-455-X

(Reviewed by Crispin Miller)

Java books tend to fall into two categories - those aimed at the complete novice, and those which provide reference material for experienced programmers. It is difficult to find books which successfully pitch themselves in the middle somewhere, discussing the design and implementation of larger applications and GUI components. This is particularly frustrating given the nature of a language such as Java, where poor design can rapidly result in Ravioli code that is hard to understand and harder to make extensible. This is often particularly true with GUIs, which tend to have a large number of closely interacting objects.

Given the number of Java books that exist, there is a surprising gap in the market which could really do with being filled. Once again O'Reilly (publishers of the excellent Nutshell series) have come to the rescue: Java Swing is an excellent book which places itself directly in this gap. It is also good for ones general physique and stamina, weighing in at just over 1220 pages.

The book assumes a general understanding of core Java concepts such as the AWT Event model, threads and layout managers and proceeds with a detailed but compact explanation of each of the Swing components. There are enough code examples to decorate the text, and, unlike many Java books, they are free from typos and actually look like they have been compiled and run.

The book comes into its own when it discusses the more sophisticated components such as JTables and JTrees, and the way model-view-controller architectures are used to separate data from the GUI components which are used to display it. There is a nice example of using Table Models to provide data to a custom Pie Chart object, which makes the point well.

Multithreading is another source of potential pitfalls when using Swing - the GUI should only ever be updated from the Event thread. Java Swing explains why this is so, and explains how programs should be written so that they handle multithreading correctly.

There is a good (but perhaps over-complex) section on writing your own components, a section on look and feel, and a number of chapters on document models, views, actions and editor kits.

The only major omission is drag-and-drop - an important, but tough bit of Java. Admittedly, it is not part of Swing (and the book is already big enough to use for hand-to-hand combat), but given its close relationship with GUIs, this is an unfortunate omission. For the intermediate programmer who is looking to write well designed GUIs using Swing, or the experienced programmer coming to Swing for the first time, Java Swing is an excellent book.

Crispin Miller is a PhD student (soon to be an MRC Fellow) in Bioinformatics at the University of Manchester.

Java Threads (Second Edition)

Scott Oaks and Henry Wong
O'Reilly & Associates, Inc., January 1999
320 pages, $32.95 US
ISBN 1-56592-418-5

(Reviewed by Mark Little)

The authors set out to give the reader a thorough background in using threads within the Java programming language. Using threads is becoming more of an occurrence for programmers, particularly within Java where they are an integral part of the language. This is the second edition of the book, with updates meant to cover the changes to the Java language since the first edition (JDK 1.2 now, JDK 1.1 in the first version).

Unfortunately, both the second edition and the first edition suffer from serious "bloat", and seem extremely padded in places, as though the authors could not find anything more to write about. It is true that writing multi-threaded programs does raise important issues which programmers should be aware of, and this book does cover them. However, the essential items could easily have been condensed into about 80 pages, rather than the 300+. The examples used labour over points, sometimes endlessly, and do not really add much to the text.

Since the first edition, the Java language has changed quite a bit, particularly in the area of the threading classes. However, despite what the book claims, it does not cover all of these changes. Some of the omissions (or oversights?) may make the development of applications in JDK 1.2 more complex than necessary, e.g. the omission of the ThreadData class may make programmers implement their own similar functionality when it is not required.

Finally, despite being claimed as a book for programmers, it is not really possible to use this book in isolation. The fact that the classes described do not occur in their entirety anywhere in the book means that a programmer working "off-line" may require further texts to write threaded programs. When class methods are described, they are typically incomplete and simply used to illustrate points the authors wish to make. More detailed descriptions, such as the exceptions thrown and why, are omitted. Most of what programmers really need to know about programming with threads in Java can be obtained from the Web, from the documentation which accompanies the JDK, or from the language specifications.

Open Sources: Voices from the Open Source Revolution

Edited by Chris DiBona, Sam Ockman and Mark Stone
O'Reilly & Associates, Inc., January 1999
272 pages, £16.50
ISBN 1-56592-582-3

(Reviewed by Lindsay Marshall)

Once again O'Reilly hit the ground running with the hot stuff on the latest trendy issues! This is a collection of essays from luminaries of the Open Source movement (and I must stress that I mean the Open Source movement, not the open source movement) - Torvalds, Raymond, Stallman, Perens, Wall, they are all here. As you would expect the production of the book meets the high standards that usually come from O'Reilly, and, of course, the quality of the writing is high (Larry Wall's is probably the best piece). If you are interested in being up on what the Open Source movement thinks then you need to read this book, (though since it is now several months old all the positions will probably have shifted a little...) O'Reilly have now in fact open sourced the book itself so you can get the whole text on the web.


And It's a big but.

It seems to me (dons flameproof suit) that this is a book by and for people who subscribe to the Open Source idea, not the open source idea. The authors are a little, US-based clique who have very definite (not to say rigid) ideas about what and what isn't open source - though they certainly don't all agree with each other. The book feels to me like one of those awful American business booster books - the Seven Executive Minutes of the Successful Networker's Art of the Sale or something. It's full of soundbites and entrepreneurial bullshit -"Hey, we found out how to make money out of free stuff aren't we great?" The bottom line is that open source is an interesting idea, Open Source comes laden with various political baggage that I don't want, or need.

The other big no-no about open source is that in at least one critical aspect it doesn't work. Why do I say that? Well, when open source got to be a trendy meme there were all kinds of proposals for new open source projects that were going to build bigger, better mousetraps. Did any of them get off the ground? Not that I know of - all the websites created for them are pretty well moribund. And why did they all peter out? Because there was nothing to work with.

All the successful open source projects started out with a good central core of material that was created by a single programmer or by a small closely knit team. Once this critical mass was in place and was solid, people started to hook in and help and the projects grew and developed. None of the new proposed projects had this core nor had they the dedicated teams or individuals who were prepared to build it. Take the FreeCase project - it is spiralling off into grandiose discussions of conceptual models rather than getting down to making something. no matter how simple, that people can use now.

Most people haven't got what it takes to do this kind of work - they may be great at building addons and debugging, but not that first initial hard slog. (In fact, another problem is that open source encourages people who haven't got any skills at all to "get involved" - have a look at some of the truely awful KDE applications that have been written!) The other important thing is that the core has to be good - look at what has happened with Mozilla: the Netscape released code was so gob-smackingly ghastly that they have thrown most of it away and the project has not produced anything usable yet. (Several people who were going to work with the code simply threw up their hands in disgust and went to do other things when they saw it.)

Don't get me wrong, open source (not Open Source) is a great idea and all my software is open, but it is not a panacea. Just being open source doesn't make quality software - you have to have something that people want and that they are willing to improve. For instance, if Microsoft were to open source Word, I very much doubt that anything would come of it. it would be just like Mozilla. Which is not to say that there isn't a need for a good open source word processor. Anyone fancy starting up a project? I can set up a website...

Oracle Distributed Systems

Charles Dye
O'Reilly & Associates, Inc.
550 pages, $39.95 US
ISBN 1-56592-432-0

(Reviewed by Mark Little)

This book is an excellent description of the Oracle distributed database system, its aims, and its administration. At over 500 pages, it spends time describing in some detail the different components of Oracle 8, the latest version of the system, and how it has changed over recent years. It then describes how to create and manage Oracle databases, and the issues involved therein. For example, Oracle 8 supports database replication for availability and performance; however, replicating the database may adversely affect certain applications. Therefore, this book carefully considers the potential advantages and disadvantages, making important recommendations to help the user make the right decisions.

There are many other components within Oracle which this book gives similar consideration to, such as tuning SQL*Net and Net8, the key communication protocols which Oracle uses, and how to manage security in a distributed Oracle system.

Although this book is excellent at covering its subject matter, it is hard to believe that a system such as Oracle does not ship with documentation like this. If similar documentation does not exist with Oracle, then this book is an important addition for anyone wanting to administer such a system, and for anyone wishing to use Oracle. Including a complete API reference section for Oracle's built-in distributed system packages, it can easily be used in a stand-alone fashion for most application programmers.

ASP in a nutshell - A Desktop Quick Reference

A. Keyton Weissinger
O'Reilly & Associates, Inc.
426 pages, February 1999
ISBN 1-56592-490-8

(Reviewed by Phil Docking)

This is, as the title implies, a quick reference book, which means that you shouldn't expect anything of great depth from such a publication. This is largely true. The book is 407 pages long, consists of 21 chapters, plus appendices, and covers nothing in any great depth, which is fine for people who have a good general knowledge of the topic already, and just need to see the guts of the beast exposed. The book does it's job well.

It starts with a small section devoted to introducing the concept, history and practise of Active Server Pages on MS Internet Information Server which is about 24 pages long, with copious example code and reference to scripting languages. This is followed by the built-in Object Reference section which takes up the next 121 pages of the book.

By far the largest section is the Installable Component Reference which makes up the remainder of the book. This section contains the reference for ActiveX Data Objects, Collaboration Data Objects and the file access components, and other "bundled" components which come with IIS Each object within these sections is detailed with a standard format consisting of a description of the objects' function, comments and troubleshooting options pertaining to the object, followed by the "collections" and "methods" sections for each of the objects.

My one objection regarding the layout of the book occurs here. Each object is given it's own chapter, which is fine, but within the chapter the layout is completely linear, so there's quite a lot of page-turning to reach the part you want, despite each section being alphabetical. It would have been nice (but wasteful of paper, I suppose) to have each Collection/Method starting at the beginning of a new page.

The Object Reference section takes a look at the following objects: Application, ObjectContext, Request, Response, Server and Session objects, with a final section on the use of pre-processing directives and the use of the Global.asa file. The Installable Component Reference section deals with these components: ActiveX Data Objects, Ad Rotator, Browser Capabilities, Collaboration Data objects for Windows NT server, Content Linking, Content Rotator, Counters, File Access, MyInfo, Page Counter and the Permission Checker component.

The longest chapter of this section is the 70-odd pages devoted to ADO, which is enough to get a relatively computer-literate developer off the ground in terms of database access, and is probably worth the money spent on the entire book. All of the Object reference sections are supplied with example code, which is a nice touch, even down to the redundancy offered by the inclusion of a page of code for such mundane methods as (ADO) .close, just in case you didn't want to look at any other methods in the section.

Throughout the book there are numerous references to a forthcoming book Developing ASP components by Shelley Powers, which I am looking forward to reviewing, merely because of the sheer frustration imbued in me by not being able to refer to it while I was reading this book. Yes, it's a good reference book, but if I were looking for a book about ASP in a bookshop, I would probably be looking to buy a much larger book which combines this reference book with something like the apparently fabulous forthcoming Developing ASP components.

Phil Docking is a System Administrator in the Department of Computer Science, Birkbeck College

Previous Next
Last modified 24 Oct 1999 00:00
Tel: 01763 273 475
Fax: 01763 273 255
Web: Webmaster
Queries: Ask Here
Join UKUUG Today!

UKUUG Secretariat