Category Archives: Blog Entries

Printer Queue on Asus EEE PC and Linux

My son has an Asus EEE PC and it’s great for what he needs. He can easily carry it around and it has all the power he needs for doing his homework.

The only issue we’ve had is that our HP2605DN network printer keeps getting assigned a different IP address when we occasionally restart the network and this messes up printing from the Asus. Generally I only find out when he’s pressed print several times, so what I’d like to do is go to the print queue, remove all the pending jobs and then correct the IP address.

But the weird thing is that I couldn’t find the printer queue anywhere (we use JetDirect network printing). I searched the internet and Asus forums and just couldn’t find how to do it. The Macs on the network just find the printer using Bonjour and aren’t put out by the IP address change at all.

Finally, I discovered how to find out all about the printers and queues on the Asus EEE, you simply point your web browser at http://localhost:631. Both the Asus (running Linux) and Macs use CUPS (Common Unix Printing System™). CUPS maintains a web server on the client machine on port 631, so all you have to do is go to the web server and then you can use the web pages to see the printers and jobs, add new printers, configure printers, cancel jobs, everything you’d like to be able to do. This works on the Asus EEE, and on Macs too.

Image buttons made simple

I read a blog post recently showing how to create a button with an image and text. The button looked very simple and very nice to look at, but the HTML was more complicated than I thought it needed to be.

There is a move now to make the HTML of a document as simple and self-explanatory as possible. The HTML should contain the intent of the page, CSS (and possibly JavaScript) is then used “skin” the page as required. This has become more feasible now that browsers are finally maturing and supporting more and more of the CSS standard.

So, if we want a button, we should use the <button>…</button> tag. If we want to have an add button, we want to have:

<button class="imageButton add" 
       onclick="addSomething(); return false;">Add Something</button>

And instead of this

we want it to look like this:

Continue reading Image buttons made simple

JasperException: Failed to load or instantiate TagExtraInfo

org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class

(I had to shorten the article title to fit!)

I’ve just had a problem when I’ve taken a web application from my local Tomcat 5.5 development server (where it worked fine) and uploaded it onto a public server (also using Tomcat 5.5).

Continue reading JasperException: Failed to load or instantiate TagExtraInfo

Poll: A yes/no question in a web form, which control(s) would you use?

We’re creating a web application that asks a number of questions about pumps (as it happens). Some of these questions are typical yes/no questions. But we need to make sure the user makes a positive choice. We don’t want to impose a choice on them. Which controls would you use?

Here’s the question with the three options we’ve currently got:

Do you need a sealless pump?
Do you need a sealless pump?
Do you need a sealless pump?

Jakob Nielsen at in his article Checkboxes vs Radio Buttons tells us that radio buttons are used “when there is a list of two or more options that are mutually exclusive and the user must select exactly one choice” and a single checkbox is used “for a single option that the user can turn on or off”. But this case is a little special since we don’t want the user to forget to select something. The nice thing about using the radio buttons or the drop-down is that you have a way of detecting if the user has actually chosen anything yet. On the whole though, the drop-down list is probably the least user-friendly though perhaps the easiest to generate programmatically.


(This poll is a great WordPress plugin developed by Lester Chan)

Just what is software architecture?

So often we hear people saying they’re “architecting” some piece of software, or that they’re a high-powered architect of some form? I was musing what that should mean. At least one colleague insists that it’s just a pompous word for design, optimised for use in proposal boilerplate when you’re trying to aggrandise your role in life.

I’m not so sure, but there clearly is something called software design, and it’s really closely related to software architecture if that’s a separate issue.

After some thought, I’ve decided (I’ll probably change my mind soon) that software design is about designing those parts of a system that address the system’s functional requirements. Architecture, on the other hand, is about designing a system so that it meets that system’s non-functional requirements.

So, for example, if I’m designing something so that orders are properly sent to the billing engine, or so that the aircraft’s elevators move to the correct angle then I reckon that’s design. If I’m adding a write-back cache to an enterprise system so that it works effectively with 2000 simultaneous users when it used to support 5, then I reckon that’s architecture.

Or am I just still being pompous?

Following symbolic links in Tomcat

We have several web applications derived from the same code base and as well as sharing the jars in WEB-INF/lib, we provide set of administration pages to allow users to configure and administer the applications. Until now, we’ve always had to make copies of the admin pages and this has caused us configuration headaches as we try and make sure that all the applications have the latest versions of all the pages.

But now I’ve finally managed to work out how to make Tomcat follow symbolic links—and it’s very easy! Continue reading Following symbolic links in Tomcat

Internet Explorer caches Ajax pages, and how to stop it

Caching pages leads to a speedier browsing experience and so is a good idea. Replacing information within a web page using Ajax similarly improves the user’s experience. The problem comes when the browser caches the information from the Ajax request. It’s a logical thing to do, but it’s not normally what the developer wants.

There are a number of ways round this. Continue reading Internet Explorer caches Ajax pages, and how to stop it