Tuesday, April 04, 2006
User interfaces -- making Windows suck less
Windows sucks. Don't get me wrong, all the other OSes suck, too.
Why? Let's talk about MOOs. They were invented 16 years ago by Pavel Curtis in a research laboratory. To give you some historical context, this was just before Windows 3.0 was released. Linux was yet to be created; MacOS was sitting at System 7. MacOS 7 and Windows 3.0 sucked - they were largely static beasts with little ability to configure them and make them react intelligently to the user.
MOOs, on the other hand, were amazing beasts. A MOO is a virtual world on the Internet, divided into rooms and populated with people and the objects they create. Forget MSN Messenger -- just use the in-MOO paging system. Forget e-mail and mailing lists -- just use the in-MOO mailing system.
But what I think was truly the drawing point of MOOs for many of us was the control over your environment that they offered.
Want to be in more than one place at once? Code up some minions to park themselves in other rooms and provide a two-way communications link. Need discretion? Code up some detection countermeasures -- but don't get caught, as "bugging" rooms is usually grounds for excommunication from the virtual society.
Do you find yourself frequently chatting to the same people? Screw typing repetitive commands over and over again -- bang out some code to have the system remember your last contacts and redirect conversations accordingly. Not interested in hearing what one person has to say? Rewrite your communications code to throw everything they send your way into the garbage can.
So what does this have to do with user interfaces in the context of Windows and its friends? Well, as I've said, MOOs let you mediate your reality and pretty much every MOOer with a programmer flag had custom routines to interact with their virtual world. They could do this because they had the confidence that when they logged in, regardless of whether or not they came from school, home or an Internet cafe, they would have the same commands available to them. The benefits of customizing your reality are limited if you can't get consistency -- indeed, one of the punishments of the virtual society was not banishment from the realm, but rather temporary banishment from your character and its customizations.
Windows, 16 years later, can't offer me this. When I'm working on code and need to switch computers, not only do I lose the environment I have customized and launched, but sometimes I lose access to the underlying tools themselves!
Why can't I take a snapshot of my computer -- including what applications are open, where windows are positioned -- and then transfer it to another computer? Hell, why can't I define certain contexts, and switch amongst them while working? e.g. a banking context (launch Firefox and log in to TD and RBC); a CS assignment context (load up my editors, connect to the UNIX terminal servers, load up any reference docs I had open).
Hey, why can't I define contexts on the fly as tasks come to me? Relevant examples lately in my life:
Within this context, I can track my ongoing tasks very easily and switch between them effortlessly by calling up their contexts. When there's no work left to be done in a context, delete it. Simple as that!
I'm currently coding up a set up programs that provide this basic functionality -- and that can reside on a USB key, thus allowing me to have my contexts accessible to me on any Windows XP computer.
Why? Let's talk about MOOs. They were invented 16 years ago by Pavel Curtis in a research laboratory. To give you some historical context, this was just before Windows 3.0 was released. Linux was yet to be created; MacOS was sitting at System 7. MacOS 7 and Windows 3.0 sucked - they were largely static beasts with little ability to configure them and make them react intelligently to the user.
MOOs, on the other hand, were amazing beasts. A MOO is a virtual world on the Internet, divided into rooms and populated with people and the objects they create. Forget MSN Messenger -- just use the in-MOO paging system. Forget e-mail and mailing lists -- just use the in-MOO mailing system.
But what I think was truly the drawing point of MOOs for many of us was the control over your environment that they offered.
Want to be in more than one place at once? Code up some minions to park themselves in other rooms and provide a two-way communications link. Need discretion? Code up some detection countermeasures -- but don't get caught, as "bugging" rooms is usually grounds for excommunication from the virtual society.
Do you find yourself frequently chatting to the same people? Screw typing repetitive commands over and over again -- bang out some code to have the system remember your last contacts and redirect conversations accordingly. Not interested in hearing what one person has to say? Rewrite your communications code to throw everything they send your way into the garbage can.
So what does this have to do with user interfaces in the context of Windows and its friends? Well, as I've said, MOOs let you mediate your reality and pretty much every MOOer with a programmer flag had custom routines to interact with their virtual world. They could do this because they had the confidence that when they logged in, regardless of whether or not they came from school, home or an Internet cafe, they would have the same commands available to them. The benefits of customizing your reality are limited if you can't get consistency -- indeed, one of the punishments of the virtual society was not banishment from the realm, but rather temporary banishment from your character and its customizations.
Windows, 16 years later, can't offer me this. When I'm working on code and need to switch computers, not only do I lose the environment I have customized and launched, but sometimes I lose access to the underlying tools themselves!
Why can't I take a snapshot of my computer -- including what applications are open, where windows are positioned -- and then transfer it to another computer? Hell, why can't I define certain contexts, and switch amongst them while working? e.g. a banking context (launch Firefox and log in to TD and RBC); a CS assignment context (load up my editors, connect to the UNIX terminal servers, load up any reference docs I had open).
Hey, why can't I define contexts on the fly as tasks come to me? Relevant examples lately in my life:
- Apartment search in Redmond - including websites about Microsoft housing benefits, apartment complexes in Redmond, Gmail virtual folder including all correspondence, notepad with notes about deadlines and next steps
- Finalizing Microsoft intern contracts - documents to be filled out and faxed, important contacts at Microsoft, receipts that I will need to get reimbursed in a month's time
Within this context, I can track my ongoing tasks very easily and switch between them effortlessly by calling up their contexts. When there's no work left to be done in a context, delete it. Simple as that!
I'm currently coding up a set up programs that provide this basic functionality -- and that can reside on a USB key, thus allowing me to have my contexts accessible to me on any Windows XP computer.
Comments:
<< Home
In some deeper java thinking the procedure you describe was attempted under the heading of "serialization" serializable objects could have their entire structure converted into a serial bitstream that exactly represented their machine state. When that machine state was needed again, just reload the serial stream into the correct entry point and everything was exactly as it had been. Worked good on a few examples I fiddled with but I don't know how the whole thing turned out because I had to switch to asp programming about that time for a different contract.
Congratulations on the internship. I've worked with Bill's stuff for 26+ years now and yeah it all sucks, but it sucks better than anybody elses stuff.
Congratulations on the internship. I've worked with Bill's stuff for 26+ years now and yeah it all sucks, but it sucks better than anybody elses stuff.
Serialization worked at a lower level though - more on the lines of static things like data structures than fluid things like a user's workspace and, more importantly, their "headspace".
Post a Comment
<< Home