5x12 pentomino tiling



I've been struggling to get this working for the last couple of days and as I've just succeeded this is a quick posting in case anyone else passes this way. None geeks look away now.

The issue was getting it working with Kubuntu 6.06 LTS aka Dapper Drake.

To recap. VNC is open source software originally developed by Olivetti Research Labs just down the road in Cambridge which lets you control the desktop of a remote PC. It's cross platform so there's clients and servers for a variety of windows environments. In the normal mode you run vncserver on the PC you wish to control and then connect to it via vncviewer.

This works fine on a LAN where the PC to be controlled has vncserver installed, indeed on our Windows PC here, which doesn't have a screen, it runs vncserver all the time and we connect to it via vncviewer from our Linux desktops when we need access to a Windows PC.

The problem comes when you're trying to look at a customer's PC (and by "customer" I include people like your parents and friends who, if you're like me, you end up supporting). The problem is twofold: first they have to install vncserver on their PC and then they need their firewall/router set up to "port forward" to the right PC on the office or house LAN. If it's a real customer, with lots of PCs to support, you have to re-configure the firewall/router every time which really isn't on.

UltraVNC SC is a neat bit of code which get around this, assuming the PC you want to control is running Windows. It's a little Windows executable which you configure and then put somewhere where the customer can find it. You can find our version here.

They click on the executable, download and run it, ignoring the dire warnings from Windows. When they run it the software becomes a VNC server. Nothing clever there. But what is clever is what happens afterwards. Rather than waiting for a connection from a VNC client like vncviewer it makes a connection to you, on port 5500. As this is an outgoing connection it goes straight out through the customer's firewall without problems.

At your end you have your firewall/router set up to port forward traffic on port 5500 to your desktop PC and just before you get the customer to do their bit you fire up vncviewer in "listen" mode. This makes it listen for a connection on port 5500 rather than seeking out a server. When it sees one it negotiates the connection with the server as normal and you have control of the remote PC.

It's exceptionally cool code and one of the nice things about it is that when you close the connection it's deleted from the customer's PC leaving no trace at all (it's less than 200KB of download so downloading it every time it's needed is no burden).

UltraVNC SC has saved me a great deal of time on the phone with customers and frustration on both sides.

Which leads me to my recent problems. I've upgraded this desktop PC to run Kubuntu Dapper Drake and since then when I fire up vncviewer in listen mode and got a connection this has happened:

$ vncviewer -listen
VNC Viewer Free Edition 4.1.1 for X - built Jan  6 2007 00:46:26
Copyright (C) 2002-2005 RealVNC Ltd.
See http://www.realvnc.com for information on VNC.
Thu Mar 13 18:49:03 2008
 main:        Listening on port 5500
Thu Mar 13 18:49:16 2008
 CConn:       Accepted connection from
 CConnection: Server supports RFB protocol version 3.16
 CConnection: Using RFB protocol version 3.8

And nothing more. I just stalls at that point. Forever.

I blamed the customer's set up. I blamed our firewall set up. But in the end I discovered what was wrong. I'd installed the package xvnc4viewer as that seems like the better option from the package description. However when I replaced this with xtightvncviewer everything burst into life.

It's also noticeable how much faster it is when I connect to our house Windows box using this version of vncviewer ...

Tags: linux, Microsoft Written 13/03/08

Comment on this article

You can follow these posts on Twitter at @Wibblings
I am currently reading:

Scotland: The Autobiography by Rosemary Goring Bring on the Empty Horses by David Niven

Word of the Day: