We offer the articles below in the hope that they will be useful, but we cannot accept liability for any problems caused by the instructions that they contain. If you have a problem, question or feedback relating to one of our articles, please post a comment so that other readers can benefit. We regularly review comments and reply or update the articles, to ensure their continued usefulness. All articles are provided free, without any advertising or tracking, for the benefit of the technical community.

If you require paid commercial support, please contact us for assistance.

What is my IP address?

It's often useful to be able to find out what your external IP address is. I often check when I'm at client sites, to discover if I'm behind a NAT, remind myself whether I'm browsing through an SSH tunnel, and so on. There are a number of sites available that provide this service, e.g. and, but I recently decided to set one up on Kitserve. It's accessible at

An open letter to Nominet regarding seizure of "criminal" domains

I discovered today that the UK's Serious Organised Crime Agency (SOCA) has issued a proposal that Nominet's terms and conditions be changed so that they are contractually obliged to “suspend domains where Nominet has reasonable grounds to believe they are being used to commit a crime”. On the face of it this seems like a good idea, as there are an ever increasing number of sites out on the internet serving up viruses, attempting to steal confidential information, and so on. As with many things though, I suspect the devil is in the details.

How to USB tether an Android phone with a Mac OS X computer

The process of tethering allows you to connect your computer to the internet via your phone's 3G mobile connection. This is a life saver if you are working in a location where you don't have access to other internet connections. Broadly speaking, there are two methods of tethering: plugging the phone directly into your computer via USB, or setting up the phone as a mini Wi-Fi hotspot. I prefer to plug in directly because Wi-Fi uses up battery power on the phone (and the laptop if unplugged) very quickly. Unfortunately, I have an Android phone and a Mac computer. The official Android website says that you can use a USB cable for tethering with computers running Windows or Linux but not with Mac OS X. Nevertheless I have found a way to do it with OS X, read on for more information.

Computer security basics

Some time ago I was asked to provide some simple advice for non-technical users on protecting their data and office computer systems. Most people are aware that computer security has become a huge problem in recent years, but the sheer amount of (often conflicting) advice on the subject often drives people to ignore it - after all, if you're just trying to do your job, you don't want to have to spend a lot of time learning obscure technical information. With that in mind, this article outlines five basic things to keep in mind to stay safe online.

Wireless with Ubuntu and Debian on the Fujitsu Siemens Amilo Pro V2000D

I've been setting up Ubuntu on my mother's laptop because the Windows XP system that it came with 5 years ago is grinding to a halt. With a 1.5GHz Celeron M processor it's not exactly a supercomputer but with a fresh new Linux system it can still be a decent, useful computer for several more years.

I went for Lubuntu because it's lightweight and easy to use.

Starting of Tomcat failed, the server port 8080 is already in use.

The Problem

So you've followed all the instructions on installing Tomcat and you're almost ready to create your first JSP web app. Unfortunately, you can't seem to access the web interface for Tomcat even though it's started and Netbeans throws this error:

Starting of Tomcat failed, the server port 8080 is already in use.
See the server log for details.

The truth is, it may not be anything to do with the port number assigned to Tomcat!

The Solution

Accessing Microsoft SQL Server from PHP on Ubuntu using PDO, ODBC and FreeTDS

Here's the scenario: you are developing a web application using PHP on an Ubuntu server. You need to pull in data from an external database as part of the app. Unfortunately, the external database is Microsoft SQL Server. Accessing a PostgreSQL or MySQL database via PHP is very easy, but as I discovered, accessing MS SQL Server is less straightforward.

How to fix json_decode in PHP

When you have first installed PHP, you may find that json_decode doesn't work. What will happen is you will be given no output at all. Carry on reading if you would like to know how to fix it.

To determine the symptoms:

  1. Enable error messages to be shown by writing ini_set('display_errors', '1'); in your PHP code.
  2. Most likely, you will be given this error message now: Php Fatal Error Call To Undefined Function Json_decode

The solution:

    Zarafa on Debian how to part 2: SASL and autolearning for spamassassin

    This is part two of a two part article describing how to set up Zarafa on Debian using Postfix. The first part of the article covered the essentials of spam and virus scanning for incoming mail via spamassassin and clamassassin. This part covers secure user authentication for sending mail (SASL) and training spamassassin to be better at recognising spam.

    How to install Zarafa on Debian Lenny with Postfix, procmail, spamassassin, clamassassin, spam learning and SASL

    This is the first of two articles about configuring Zarafa to enable some extra options that aren't covered in a default install. I've talked a little about Zarafa in a previous article. It's a Linux groupware system that's almost entirely open source. There's some very good documentation, including installation instructions, on the official Zarafa website. However, while this documentation covers Zarafa in great detail, it doesn't cover many common Linux server programs you might want to combine with it.