Monday, July 24, 2006

The Web Desktop Is Here

And not by Google either. Nerds among you will have already heard of YouOS - it's definitely a proof of concept rather than a working OS at this time, but it already has lots of usable features. It uses Python on the server side and JavaScript on the client side and provides you with a desktop much like your Windows desktop (you can change the wallpaper and mess around with icons), except of course you can access it from any browser!

There really does seem to be an operating system at work behind the scenes though. All these applications are available to you:

File Explorer
Flickr RSS feed
Rich Text Editor
YouTube RSS Feed
Shell Prompt

They all appear in Windows on your desktop and you can move them around, minimize, maximize and close them. There's a task bar of sorts and even the equivalent of Windows task manager. "Wait a minute... did you say Shell Prompt?" I hear you cry!

There is a limited functionality shell, but typing help gives the following:

This is a javascript interpreter that also happens to function as a command line. Type in javascript and it will be evaluated here, or try out one of the following commands.

Special commands

* clear - clear shell output
* debug (module) - register a module (e.g. for debug tracing
* exit - get the hell out of dodge
* help - I need somebody
* props (object) [verbose] - get a list of properties for a JS object

Manage apps and processes

* kill (process_id) - kill a process with that id
* ps - get a list of running processes
* run (app_id) (argsObj) - run an app by that numerical id

Deal with YouFS file system

* cd (dir) - change current working directory
* chmod (-R) (+/-rw) (user) (file) - change permissions for a file or directory
* cp (file) (file) - copy file or directory (if supported)
* exec (file) - run javascript from a text file
* fdl (file) - download a file
* fedit (file) - edit a text file
* fupl - upload files
* ls - get list of files and directories in current directory
* mkdir (dir) - make a directory
* mv (file) (file) - move file or directory (if supported)
* quota (service) - get disk and bandwidth quota usage for a service
* rm (file) - delete a file or directory (recursively)
* stat (file) - get metadata for a file or directory

Deal with YouOS server data structures (like hashtables)

* ds [tag1 tag2 tag3] - get list of YouOS data structures, optionally filtered by tags
* dt [data_id] - get list of all tags in namespace, or for just one data_id
* dtag (data_id) (tag1) [tag2 tag3] - tag a datastructure with given tags
* duntag (data_id) (tag1) [tag2 tag3] - remove given tags on a datastructure

And there's a whole API for writing your own apps, though there's a lot of work to do there before it's up to the standard of Yahoo's venture into JavaScript APIs. It looks like you can do anything in a YouOS app that you can in JavaScript, plus nice UI stuff and inter-application communication.

There's a developer portal here where you'll find lots of apps already, including Sonic The Hedgehog! Well it's only a Flash game really, but anything with Sonic impresses me :-)

It uses Amazon S3 for storage and I believe if you're already a user you can access your S3 content from YouOS.

Absolutely unbelievable work! I dunno, I'm having trouble keeping up with web technologies these days. I think I'd better have a lie down.

No comments: