Well, I think that we can all agree that the idea of a purely portable 
desktop environment is a highly compelling one, and that there are many 
ways to approach the problem.  There is, of course, the VNC approach, 
wherein all of our actions are transmitted over the wire in order to 
control a remote computer.  The problem of having to wait on all of the 
network delays obviously leaves much to be desired.

Another way of approaching it is to think of a desktop as a purely logical 
construct that can be represented fairly well by, for example, a JSON 
object.  This will allow us to abstract way the "form" of the desktop from 
its "content" fairly well.  (What I mean by the "form" is simply the 
locations of icons and the locations + sizes of windows.  By "content", I 
am talking about the actual data in the files that the icons represent.)

All of the form related stuff can be transmitted by JSON blazingly fast, 
and the local user will be able to control his/her in-browser desktop 
without delay.  But the content may very well still be sitting on the 
remote server, so double clicking on an icon might result in an 
indeterminate delay before the content is fully loaded, depending on file 
size and network conditions.  But now we can cache the content, and we 
won't have to suffer the same delay again... as long as the cache is still 
intact, of course.

But even beyond the idea of desktop portability, there remains to crucial 
problem of how to locate, retrieve, and render the various bits of 
information that are scattered all over the WWW.

In my opinion, all of the past attempts at developing web based desktop 
environments have failed because they were, at their hearts, focused 
primarily on replicating native desktop functionality by any means 
necessary (eg, Flash based desktops) rather than on making actual, 
functioning websites more responsive and comprehensible.  All of those past 
efforts amounted to nothing but curiosities because we just don't need our 
web browsers as gateways to hackish, barely responsive desktop 
environments.  We will always need our web browsers as gateways to the 
wild, wonderful, weird place that is the WWW!

As it currently stands, it is next to impossible to reason with the content 
that is contained on remote machines.  This is because the URL schemes that 
we use are fairly arbitrary strings of text.  That is, in order to locate a 
remote resource, we have to get our grubby little hands on some string that 
looks something like 
"http://www.somedumbdomain.com/stupidpage?crazy_param=flux&dumb_arg=spam&weird_sid=Gjsk3MKs5hsgf6jeO7Iwjn8YUKs";,
 
and on and on it goes.  To the end user, these are incomprehensible, 
indecipherible messes.  They only make sense to the backend URL parsing 
algorithms.

And even when we are able to locate a remote resource, due to the fact that 
the crucial information is usually buried inside of a messy HTML document, 
we are often no wiser because of our inability to sift through the layout 
markup in order to finally get to the data that we seek.

So in order to inject some sanity into our online experiences, we have to 
start thinking about how to allow users to locate the various bits of 
content that they are after in much more intuitive ways.  And you can't get 
more intuitive that icons sitting on desktops and in folders!  In this 
case, a user is no longer forced to remember a random string of text known 
as a URL... all he/she has to do is know what the icon looks like, and in 
which folder it might be located.

And power users will be able to reason about remote content using familiar 
Unix path notation (/path/to/the/file).  They will be able to trivially 
write scripts that perform various actions depending on whatever state the 
remote content is in (eg current weather or traffic conditions).  No longer 
will developers be forced to construct convoluted GET requests in order to 
retrieve some little bit of information.  There can simply be a "file" 
named something like "/home/dennis/weather.info" that we can open up by 
double-clicking or via script... and now we are enlightened!

I am simply trying to make our web browsing experiences better rather than 
making our desktop experiences worse.  No one will ever get excited about 
offers of desktops that sit in browser windows.  But the idea of having the 
world at our fingertips from within the context of a familiar, intuitive 
interface is something entirely new and exciting!  And being able to reason 
about the world via programs that are trivial to write is something that 
should make all of us programmers positively delirious!! 

So the trick now is to get web developers to stop obsessing so much over 
serving up full fledged HTML documents, and to start thinking about how to 
offer services that deliver compact, essential nuggets of JSON data that 
can be delivered into these kinds of in-browser GUIs at blazingly fast 
speeds.


On Tuesday, September 25, 2012 7:36:37 PM UTC-4, Dennis Kane wrote:
>
> I was thinking of just responding  to this old 
> thread<https://groups.google.com/forum/?fromgroups=#!topic/nodejs/bEhSbsm24Y4>,
>  
> in which I talk about the browser based Desktop that I've been working on, 
> but the new thing I've been doing for the past week is so superior that I 
> thought it deserved a completely new thead.  By the way, I know this forum 
> is all about server side Javascript, but there is not really any serious 
> place one can go on the web that talks about the client side.  Besides, 
> with socket.io & websockets... I don't really make much of a distinction 
> between client and server anymore.  I just know that there's no reason to 
> do a document.getElementById() call in node :)
>
> This new thing is a totally shocking clone of OS X.  I knew I was going to 
> have to start over from the ground up, because my previous code base was so 
> sh*tty, haha!  I have really been concentrating on getting a nice, tight 
> little API that developers will positively drool over.  I don't want to 
> make this thing publicly available for many reasons... but you can check 
> out a youtube vid (http://www.youtube.com/watch?v=Tq_W19QokXk) that shows 
> it in action, and I still have my same old crappy prototype online at 
> http://luvluvluv.info.  Well, hopefully this is proof that I am able to 
> do some cool stuff, and hopefully summa yous will want to start being my 
> friend now, LOL!!!
>
> And get this... the current, uncompressed js file size is only 54kb!
>

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to