(KDE and FreeNX) Better together

A few days ago, Kurt Pfeifle very kindly offered me the opportunity to test NX. I'm an old guy and I thoroughly dislike buzzwords, but sometimes it's simply no way around particular ones. The expression I'm itching to use here is disruptive technology.

The drive test, that Kurt so nicely provided, simply left me in awe. I connected, from my home in Canada, through a DSL link, to a server located somewhere in Europe. A full HEAD KDE session (on X). With almost no noticeable slowdown. It simply worked marvelously. Remark that we don't speak VNC here. Right now, while I slowly build this entry, I'm connected in a full X session, at a resolution of 1152x864 (the size of my local screen). I browse kdedevelopers.org in konqueror. I play with the latest versions of different KDE-Edu applications (as I need kdissert and a few others for the school of my son). It is thoroughly awesome.

Each time I do this "let's play over there in Europe for a while" , I consistently start daydreaming. NX supports:
* session connection suspension and reactivation, AKA detaching/attaching (optionally from a different terminal/client),
* full X sessions,
* launching autonomous applications,
* VNC and RDP,
* CUPS printing forwarding,
* sound forwarding,
all this with intelligently compressed piping, so that running an X session from a machine 2 meters or 14000 kilometers away is indistinguishable. Imagine working on the same X session at work and at home. No more need for the meager (x)emacs/gnuclient patchwork, goodbye to text only screen session detaching and attaching OK, we can now all close our mouths.

The utter beauty of all that I preach here is that NoMachine, the company behind NX, publishes and develops the core components and protocol under the GPL (of course, otherwise I wouldn't waste your time).

Kurt actually sounds the hunting horns on NX and FreeNX since quite a while. If you want a more detailed description, look at his aKademy-2004 presentation. I am quite puzzled that people are slow to get involved.

Of course, FreeNX needs love. And where things could really get amazing, is on the front of integration of FreeNX with KDE. There is already some activity, in the form of kNX, but much work is still to be done:

* seamless integration of FreeNX client in KRDC;
* kiosk automatically comes to mind as it's a perfect match for remote terminals (think schools and universities): further streamlining the configuration and probably autodetection+autoconfiguration (based on knowledge of the amount of resources needed for the current NX connection);
* automatization of CUPS/KPrinter integration (so that user's local printers can be neatly displayed in the KPrinter that runs remotely, in addition to or instead of the remote ones)
* thorough optimization of the multimedia packets flow (especially sound, duplex please, for the benefit of applications like VoIP);
* make sure that the results of the current excellent work on the X rendering techologies, by KDE's own Zack Rusin work OK with FreeNX;
* develop thorough support for streamlined applications, in the vein of Qtopia and OPIE, so that thin clients can connect to a FreeNX server and be served specific applications;
* and much more, as sky is the limit.

Please, just stop for a second and imagine how would you feel being on your daily bus or train ride and have your favorite portable device connected at home and seamlessly work in the session you just suspended a few minutes ago on your desk machine. Yummy, eh? I can't wait to have it happen. And you?

Post scriptum: I thank to Jack Johnson for the idea of today's title (respectfully borrowed from the first piece on his last album). Johnson's music makes my summer.


Finally, I've been wondering about the following 2 things: sound and device support over NX. These are potentially 'killer' features that have been available to WinXP Pro users for some time. I think it would be worthwhile if those 2 features were more pronounced when mentioning NX.

Visuals are boring and NX has those implemented pretty well. We need more than the X display on our machines now -- and now that I know NX does sound and devices, it irks me even more that all we ever hear about is how good the compression is over slow links ;)

Imagine the following 2 use cases:

1. You have a presentation of some sorts on your computer at work. You need to watch this presentation from home. Catch: This is an audio/visual presentation and you need the sound.
Solution 1: Log on to your company's VPN, Log on to your computer, send the presentation to some mail account, open up an email client locally and download the attachment (this is lame), view the presentation
Solution 2: Log on to your company's VPN, Log on to your computer, view the presentation (simple and just works)

2. You need to print a document on your work computer locally at your desk at home.
Solution 1: Be a monkey and email yourself the document and hope you have space for it on your various email accounts
Solution 2: Share out the directories in question with Samba etc. (this gets hard to maintain), open the document locally, print
Solution 3: Open up the document and hit print ... and it appears next to you

The above steps suck more if your 'client' computer is actually say a PDA ... The terminal server client on WinXP also offers other devices too -- most notibly smart cards. You can plug your smart card in at home and log in to your work computer once you are on the VPN.

By KDE User at Tue, 06/21/2005 - 03:40