Innovative multi-user Windows XP system may breach Microsoft license

I was asked to review an unusual system which lets multiple users run concurrent sessions on Windows XP. MiniFrame’s SoftXPand lets up to 8 users plug mice, keyboards and displays directly into a Windows PC, each with their own desktop. It makes a bit of a tangle of USB expanders and cables, but it’s wildly efficient, and unlike conventional thin clients it enables applications to use hardware accelerated graphics. Schools which thought they only had the budget for a single PC are able to support six users. News like this travels fast, and it has apparently been adopted by 20% of primary schools in Derbyshire, where the main UK distributor is based. My review for IT Pro is here.

But surely the EULA for Windows XP doesn’t allow that kind of use? By default XP won’t allow more than one session, though there are registry hacks which enable it. I asked Microsoft, which gave me a comment from Michala Wardell, head of licensing and anti-piracy, Microsoft UK:

According to Microsoft’s license agreement, each added work station represents a new way of interacting with the software. As such, using hardware and software to effectively extend a single license to cover multiple users is a clear violation of this agreement. We urge customers to stay clear of this as they run the risk of non-compliance.

MiniFrame’s CEO Eli Segal says this is all about new licensing models:

MiniFrame has not been approached by either Michala Wardell or by any other Microsoft representative. We are therefore obviously not working with them on any licensing issues, as being claimed by Michala Wardell. MiniFrame has a very clear third party licensing policy: each EULA (End User Licensing Agreement) of any third party software provider should be respected by users, and with no exception to Microsoft. Virtualization has become mainstream, and I’m sure that licensing issues are being considered by all industry players, as well as by Microsoft, trying to shape a new model of licensing (EULA).

I’m no lawyer so I’m just passing the comments on – they are also quoted in full in the review – though when I saw the system I was surprised that it used Windows XP and not Windows Server. Further, it is not really virtualization, it is much more like running multiple remote desktop sessions, but without the remote bit. MiniFrame even has an article explaining why SoftXPand is not a virtual machine.

Still, I hope Microsoft doesn’t try and squash it out of existence. In the right context the system saves power and long-term there is less hardware to scrap, both issues of increasing importance. This is not the moment for Microsoft to insist that an organization replaces one PC with six, or to disappoint all those primary school kids.

It’s not just free software that has poor usability

Jack Schofield at The Guardian links to Matthew Paul Thomas’ post on Why Free Software has poor usability.

For most of his points you could drop the free from his title.

Thomas makes the point about most programmers not being good designers:

Some programmers are also great designers, but most aren’t. Programming and human interface design are separate skills, and people good at both are rare. So it’s important for software to have dedicated designers.

True; but software can be over-designed too – I guess this happens more in the commercial world. Sometimes usability is sacrificed for the sake of good looks.

Mega-budgets don’t always help. How did Office 2007 get through its usability testing, when there is no indication that you have to click on the “Office button” to access essential features like New, Save As and Print? What about Outlook 2007, with one of the world’s most obscure and difficult UIs? Opening another user’s mailbox – how many clicks is that, and how would you possibly find it without being told?

Good code is hard; good design is harder.

More Oslo hints in PDC schedule

Wondering what exactly Microsoft’s “Oslo” is? Here’s a few hints from the PDC 2008 schedule:

A lap around Oslo

"Oslo" is the family of new technologies that enable data-driven development and execution of services and applications. Come and learn how to capture all aspects of an application schematized in the "Oslo" repository and use "Oslo" directly to drive the execution of deployed applications.

Oslo: The language

“Oslo" provides a language for creating schemas, queries, views, and values. Learn the key features of the language, including its type system, instance construction, and query. Understand supporting runtime features such as dynamic construction and compilation, SQL generation, and deployment. Learn to author content for the "Oslo" repository and understand how to programmatically construct and process the content.

Technorati tags: ,

Fixing wi-fi on Asus Eee PC 901 with Linux

I mentioned my annoyance that wi-fi with WPA encryption did not work on the Asus 901 Eee PC with Linux which I am reviewing. I later found that even a WEP connection, while it worked a bit, tended to drop out after few minutes. Worse still, the Asus repositories are messed up so getting updates is tricky.

I’ve managed to fix it. For the record, here’s what I did; though I can’t promise it will work for you; try it at your own risk. I should think there will be an easier way to install an updated driver soon.

One of the irritations about the repository problem is that attempted updates fill up your /dev/sda1. I wanted as much space as possible (without removing the recovery partition) so I reset the system with F9 on boot. Then I went into /etc/apt/sources.list and removed the default repositories, replacing them with these two:

deb etch main contrib non-free

deb p701 main

(This is probably not a good arrangement long-term; but having the Asus repositories enabled right now makes it hard to install anything).

Then I did:

apt-get update

apt-get install build-essential

I also installed ksmserver and kicker to get access to the full desktop; but this wasn’t needed to get wi-fi working.

Next, I downloaded the latest driver source for the 901’s Ralink wi-fi card: (Update: don’t use this code – see Update 3 below).

Extracted it; then edited /os/linux/ and changed:


HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y – but see update 2 and update 3 below for the problems this caused.

I also removed –DDBG from WFLAGS


In order to compile you need the kernel source. I adapted the instructions here. In essence, download the source from, extract, install the deb, unpack the source in /usr/src, delete the .bz2 to save space, build the kernel with:

make oldconfig


(don’t actually install it), then create the following symbolic link:

ln -s /usr/src/linux-source- /lib/modules/

Now I was able to compile and install the ralink driver by switching to the RT2860 directory and typing:


make install

Wi-fi now worked with WPA; at least, it did on my second attempt after disabling native WPA supplicant support. I’ve also found it perfectly stable so far – much better.

Active wi-fi connection with WPA; a few numbers changed to reassure the paranoid

I’m happy now, but… what is Asus thinking?

I doubt the Eee brand would have ever taken off, except that the first 7xx releases made excellent use of Linux and open source applications to win people over; you did not even need to know that it was Linux.

Now we get this; the support for the 901 is dire; updates don’t work, the wi-fi doesn’t work properly, and the only fix I’ve found is a hack. Wi-fi is critical for a gadget like this, which is not much use without an Internet connection.

Together with short supply of the Linux version, this does suggest that Asus is keen to favour the Windows XP variant.

Update: I’ve made the binary (rt2860sta.ko) available for download here. Download includes RT2860STA.dat which goes in /etc/Wireless/RT2860STA. I guess we need an install script; I’ll have a go when I get a moment.

Update 2: Unfortunately I’m not quite there yet. If I compile with HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y then WEP works but WPA does not. If I compile with HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n then WPA works but (I now discover) WEP does not. Weird. I’m going to seek advice. If anyone wants the binary that works great with WEP but not WPA, let me know.

Update 3: Thanks to Ralink tech support I now have a fully working driver. I’ve updated the download above. The new code defines EEEPC_SPECIAL_SETTING and has some edits in common/mlme.c. It now works OK with HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y. Interesting point: the code is dated 15th July; which suggests that the problem was both known and fixed 2 and half weeks ago; it’s a shame nobody shared this with the community.

Update 4: I suggest you delete the old copy of rt2860sta.ko in /lib/modules/ (if it exists).

PS: I’ve posted instructions for the binary install, with download links, here.

Technorati tags: , ,