Dreamolers site navigator: MUICON SSHCON Transpoclock logTool
Site Menu

The idea about proper VNC Server is old. AmiVNC was the first semi-working server, and it clearly showed there was lots of room for improvement. Frankly, AmiVNC just doesn't work well.

After briefly browsing the messy AmiVNC source code some years ago, I quickly gave up. There was no way anything remotely usable could be built from it. If I was to write proper VNC server it was to be designed and coded from scratch, using proper design and programming practices. Also proper GUI was requirement for me from the beginning.

Several months ago (spring 2005) I finally managed to find time for the project. I laid down the foundation by brainstorming the features I wanted for the server. I iterated the list several times modifying and adjusting things. Once I was happy with the list I set out to write some small testcode to see if my plans were ever going to work. I wrote some of the hardest parts first, leaving some of the more routine work for later (GUI for example).

The core of the program is a state engine that manages the listening connection and every client in known state, while everything else is built around this pretty simple core. The state engine is asynchronous, nothing ever blocks or prevents other clients from continuing. Network traffic is fully asynchronous aswell, for both reads and writes. The MUI GUI is separated to secondary process to prevent any slowdown or blocking of clients.

Once the core was working fine, I added more meat around the bones: Support for local mouse pointer, framebuffer resize, ZLib compression and other advanced RFB features. I must thank Mark Olsen for pushing me to implement many of the advanced features. Mark was also always ready to bash some of the RFB peculiarities thru my thick skull.

The MUI GUI was coded by Jacek Piszczek with initial layout ideas and suggestions from me. I have to thank Jacek again for excellent work here (I have to admit I'm pretty much MUI illiterate). Jacek also pushed for more advanced ACL with custom password/options, so thank him for that. After seeing my really pathetic logo graphics attemps, André Siegel was prompt to provide me with some very nice graphics, the one you can see in the application icon and the about window. André also provided the cool drawer and document icons.

As usual for my projects, this one suddenly stalled for months, too. Lack of motivation, the huge amount of needed polishing, whatever the reason, it took some serious nagging from Jacek's side to get things rolling again. Again, many thanks for his persistance. Thanks must also fly to all early alpha testers who risked crashes and assorted odd behaviour. You know who you are. Thank you.