Almost every person I know has an IM account. Most of them are still regular users of ICQ, despite of all its shortcomings. I do not want to make any boring, technical comparisons between the two protocols. Jabber/XMPP is clearly superior to ICQ for a many reasons. However, game theory shows us that "superior product" does not imply "market dominance". Let me try to convince you to create a Jabber account. Here are some questions you might have.

Where can I get a suitable client?

Wikipedia to the rescue! My short suggestions: Use Pidgin (Windows, Linux, BSD) or Adium (MacOS X).

Why should I want to use another protocol?

Because you will need it, eventually. Chances are, you already use a multiprotocol messenger, such as Trillian Pro or Miranda for Windows, Pidgin or Kopete for Linux/Unix, Adium or iChat for MacOS X. If you are not yet using a multiprotocol messenger, you should consider using one. It makes life easier, because you can still maintain your ICQ account (I am doing this, for example, because there are some people who simply refuse to use anything but ICQ. You are not one of them *handwave*).

You should also think about this: ICQ is owned by AOL. They want to make money—which is OK, I suppose. Hence, the original client for the ICQ network is Adware. Of course, AOL does not want you to use any other client:

[…] You agree not to (1) create or use any software other than the Software provided by ICQ or by America Online, Inc., or any affiliate thereof, to enter your ICQ number and password or to access the ICQ Services, without the express written authorization of ICQ; […]

Indeed, AOL changed the protocol several times in the past, thereby kicking out users that did not use the original client. Do you really want to be a part of that? There is also the "default argument" against ICQ, citing their user policy. Basically, AOL owns the right to use your messages for all purposes (see the Wikipedia article for more details). Most people will probably respond to that along the lines of "My conversations are not that relevant". That may be true, but for me, this passage reeks of intolerable business practices.

Alright, stop. How do I get an account?

Good news first: You will not have to memorize a wimpy UIN. Instead, you will get a nice address of the form _nickname_@_server_.tld (this also leads to less SPAM in your messenger).

If you happen to have a Google Mail account, you can use Google Talk. This means that people can contact you using your e-mail address. Google has instructions for some clients on their web page.

In any other case, you must decide about a server. You probably want to use either There are of course others, such as For simplicity, I am describing the steps for I trust you will be able to read the necessary documents for other servers.

  • Register an account using the web interface of
  • Start the appropriate wizard in your client program that allows you to add a new account. If you do not know how to do this, the documentation could be helpful. The steps for Google Talk might also prove useful (of course, the account details will have to be changed).
  • Enter your nickname ( and your password. For security, you should enable SSL/TLS, if that is an option in your client.

Are there any alternatives to using two protocols?

Yes, there is at least one: Jabber transports. Some servers allow you to treat contacts from other IM networks as normal Jabber contacts and "transport" your messages transparently to the other network. Since the server needs to support it, it might not be available everywhere. This little article does not cover transports, so you have to ask a search engine of your choice. Sorry.

Done. What now?

See, that was not so hard.

If you want so, you may now drop me a note via Jabber ( Do not forget to convert your friends, for they, too, shall bask in the glory of Jabber!

Posted Tuesday night, July 7th, 2009 Tags:

If you cannot trust your local network for some reason, SSH tunneling can help you. All you need is:

  • A machine outside your current local network, for example a server with a static IP address in some data centre.
  • ssh (on your local machine)
  • A proxy server (on the remote machine)

My remote machine runs Debian, and I decided to install tinyproxy, a tiny HTTP proxy server. Configuration is done quickly by adding the following lines to /etc/tinyproxy/tinyproxy.conf:

Port    8888

I would recommend commenting out any other Listen lines. Assuming you do not want to run an open proxy, you only want tinyproxy to listen locally. After editing the configuration file, restart the proxy via /etc/init.d/tinyproxy restart.

On your local machine, execute the following command:

ssh -L 1234:localhost:8888 -N

This forwards all traffic from your local port 1234 to the remote machine's port 8888 (localhost is needed because we configured the server to listen only to the loopback interface), which is where tinyproxy waits for inputs.

You may now tell your cool browser to use localhost:1234 as a proxy server—congratulations, your web traffic is now securely tunnelled to your remote machine.

Addendum: In the command string from above, you can also use -f to request ssh to go into the background.

Posted Wednesday afternoon, July 29th, 2009 Tags: