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.

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.

PHP code to add st, nd, rd or th to a number

This one's short and sweet: while working on a PHP application I needed to format some numbers as text so that, for example, '1' became '1st', '13' became '13th', '22' became '22nd' and so on. There isn't a built-in PHP function to do this (as far as I know) and none of the code snippets I came across online were very neat, so I ended up writing my own function. Since it's something that I imagine gets used a lot, I thought I'd put it up here.

Review of Trine, a physics-based PC game

As the lack of recent updates might suggest, things have been quite busy work-wise recently! Since I've been working a lot, and since it's Christmas, I thought I'd write something a bit different for this article. While I haven't had much free time lately, I've spent a bit of it playing a game by the name of Trine. It's promoted as a physics based platform/puzzle game, so there is a vague science angle to tie in with the rest of the site!

The Netgear WGR614v9 wireless cable router: replacing Virgin Media firmware with standard Netgear firmware

A friend was having some trouble with the Netgear wireless router he was given by Virgin Media, which I fixed by replacing the Virgin-supplied firmware with the latest Netgear firmware. Doing this required a bit of digging around, so I thought I'd write a quick guide to sum up the information I found online.

Setting up Ajaxterm on Ubuntu and Debian PowerPC

Like many people, I rely heavily on ssh to maintain and configure computers remotely. However, doing so usually requires making an outbound ssh connection from the computer you're working on, which isn't always convenient. For example, if you're using someone else's computer, the chances are they're using Windows and don't have an ssh client program installed.