I want a network aware userspace.
“What,” you ask, “is a network aware userspace?”
Starting point. I’ve used computers that have virtual desktops for over 10 years now. BeOS and Linux have both had them, and it’s been available for a lot longer. A Virtual Desktop is something different from a Virtual Machine. Virtual Machines have been all the rage for a few years, so I won’t get too involved in describing them, beyond noting that depending on the type of virtual machine, you can have multiple operating systems running on a computer, and even multiple instances of the same operating system doing the same thing. But going much further than that would be getting off track, so I’ll leave investigating virtual machines to you and your liesure.
A virtual desktop is fundamentally taking everthing you have running on your computer’s desktop and allowing you to get it out of the way for now. You are not closing the applications, it’s just that they no longer appear on the desktop you are using. If you go to the virtual destop manager, and select a different destop, you end up hiding what you were just doing, and seeing what is on that desktop.
How is that useful? Well, let’s say you are writing a paper on video editing. And you are doing it while actually editing a video, getting screen shots of how the application appears at various stages of the process, menu selections, splitting and merging video segments, etc., etc. Well, when grabbing those screen shots, you don’t want to be trying to remember to hide the word processor, and you probably want to be working with an image editor to be able to highlight the important part of your video editor, but you probably don’t want to have to edit out the image editor itself.
Now you could run through editing a video, and take screen shots every 10th of a second, then go through the screen grabs for the important bits, without the video editor running. Then after you have selected the images you want to use, take them into your image editor to make the images useful, then write up your article and insert the images you selecetd and edited. However that implies that you already know what the document is going to contain when you are editing the video first, rather than after the fact. It’s also a bit painful to have to go back into the video editor to capture that variation that you realized as you were writing that you missed.
With a virtual destop, you can take 3 desktops and set things up so that your word processor is on one desktop, your video editor is on a second, and your image editor is on the third. You might also have some other desktops available so that you can have a web browser going, or perhaps a video game, without disturbing your other virtual windows.
While I can say that ‘the sky is the limit’ there really are some limits that should be considered. First up, is the virtual desktop manager. If it gives you a menu of desktops reading ‘Desktop 1′, ‘Desktop 2′… you probably don’t want to have all that many because who can remember what was on desktop 45, or 52? Most Linux distributions have some variety of a matrix of desktops, so you can say set up a desktop of 2 rows of 2 desktops. Your limit here is how much you want to fight with the mouse over whid desktop to select. I’ve found some systems work well up to 3 rows of 4 columns of desktops, others work well as 2 rows of 3 columns.I’ll state that the selection is fairly individualistic, I know people who are comfortable with 2 desktops, and others who want even more than the 12 that I suggest as a reasonable maximum.
And some work best with 1, which is fine. For you, the rest of this may not make much sense.
I use several computers at home, and at work. Ok, 2 at work, but you get the idea.
There may be some debate as to whether I ‘need’ to use ‘multiple’ computers, or whether I use 1 computer at a time, and could be covered by a suffficently fast computer. I won’t get into that. It is an argument that I don’t think has the merit that the people suggesting it are really interested in arguing about. As a worst case example, businesses regularly use multiple computers, usually in on the order of 11 computers per 10 people, simply because on average, having a server for every 10 people seems to make some sort of sense. give people a common place to store files so that they all get backed up to tape. use multiple e-mail servers to reduce the load on any one server. etc.
However since I do use let’s take a sample use case. Let’s say I have a meeting in 2 hours that I need to call into. I can set an alarm on the phone, or perhaps pop up an alert on the computer, but 2 hours from now I may not be in the same room anymore. As I was writing this blog I started sitting in the living room, and after a while moved to a more comfortable chair in a different room. I could drag a lap top around, but I already have computers in both rooms. Why should I haul a laptop around to work in the different areas. Use ‘dragging the laptop around’ for going someplace where you arenot going to be plugged into the home network.
Because I am writing this on a web based system, all I had to do was save the state of my writing on the computer I was woking on in the living room, then pick up the draft on a different computer in the other room. For the meeting in 2 hours, I’m going to be considering the possiblity that I’m going to go and watch some TV. Considering that what I consider a TV is actually a collection of computers that display through a video projector, there really is no reason that I couldn’t have alerts displayed as on screen messages there. Well with some stipulations. I would need some way to acknowledge the alert, and better yet the acknowledging of that alert should clear the alert anywhere else. Also I don’t want it dissrupting certain systems at certain times. There really is no reason for a twitter message on my desktop to present itself as an OSD on the TV, especially if there is someone else watching TV. Right?
Well, that is really only ‘part’ of the issue. Another area that I am intereste in is having the ability to actually move an application from one computer’s display to another. In theory I could have an array of computers that I am logged into, showing the virtual desktops of each of them. I grab the window on the desktop I am currently in, and drag it to the desktop of the system I am going to move to, or better yet when I am at the system I am going to continue working at, I can pull up a display of the virtual desktop for the computer I was working at, and drag the application to my current desktop.
Cinerella is an application that is used widwly on the Linux platform. It’s primary use from my experience is to span a desktop across multiple displays. While I have no qualms with doing that, it’s only a close approximation of what I’m looking for. Another useful app is Synaptic. This allows you to plug in a keyboard and mouse in one computer, and it will reach across to another computer so you can do things on both computers without having to switch back and forth between multiple mice and keyboards. Oh, you still need the multiple keyboards, or possibly a kv switch to go between computers for logging in, but it still doesn’t allow you to say drag an application running on one computer over onto another computer.
Long term the solution, whatever it is, should be OS agnostic. If I am editing a document in Open Office Writer, either the application should be able to move it’s display to another computer, ne X11, or if the application is already available on the other computer, it should launch the application on that computer and provide a means for that application to access the file for editing. Maybe that involves syncing the app up to a server and down to the destination computer. Or something else. What it shouldn’t involve is the requirement for a virtual machine to be running on one computer or the other and a citrix, terminal server or rdp session be established to view the application. Those are all wonderful applications and interfaces,but they are not a multi-system spanning interface. Sorry.
What will it take to get such a UI built? I don’t know. It may never get built. After all the vast majority of computer users live with one computer at home, (if they have one at home) and a separate computer at work.