It is tl;dr for me and there is no way I'm going to a web page and clicking
on a button called "install me" with no indication of what is being
installed.


On Mon, Feb 10, 2014 at 12:18 PM, Dennis Kane <dkan...@gmail.com> wrote:

> (If this is tl;dr, just go to http://urdesk.net right now)
>
> What does it mean for something to be "a good node client"?
>
> When I think of a client for node.js, I think of a dynamic user experience
> that doesn't really require any page refreshes, and that stirs up a whole
> bunch of good feelings as regards what is possible on the web.
>
> I started thinking about web programming in the mid-2011 time frame. I
> wanted to see how far I could push the concept of a dynamic user
> experience. Fast forward to February 10, 2014 (today), and I think that my
> original vision has finally come to fruition. Starting in September 2012, I
> began working on the current incarnation. My idea was to go "all in" by way
> of seeing if I could duplicate the OS X end user experience inside of a web
> browser... all courtesy of Google's V8 JS engine running inside of standard
> Chrome.   Since that time, I've put in about a full year's worth of 8-12
> hour coding days. Here is the basic setup:
>
> There is a core desktop module that performs all of the essential system
> level operations: window, icon, context menu, menubar, and toolbar GUI
> operations, as well as all of the interactions with Local Storage and the
> filesystem API.
>
> There are several self-contained modules of which the core has no
> knowledge that plug into the system through a basic interface.  The most
> important of these modules are the Unix-style text editor (called Nanim)
> and the command-line interface.  There are other, graphical modules that
> I've spent relatively small amounts of time developing, such as a media
> player and a prototype-phase word processor.
>
> There are several ways of thinking about the system.  Most obviously, I
> think that it pushes the envelope in terms of how we understand the notion
> of an operating system.  Such a thing has traditionally been written in
> native code, and has required a fairly sizeable cost to download, install,
> replace, etc.  (What I mainly mean by "cost" is NOT the purchase price, but
> rather the potential for catastrophe if the installation procedures are not
> followed precisely.  So by this definition, we can judge the commercial
> OSes to be much cheaper that all of the Linux distributions that require
> one to do things such as partition hard drives and install custom boot
> loaders to try them out.)
>
> We can call the OS that I've developed a trivially loadable/bootable OS.
> The only investment that it currently requires comes in the form of
> accepting the browser's "this site wants to permanently store data on your
> computer" prompt, and then waiting the minute or so for all of the
> resources to download. After that, everything is served locally, meaning
> that a network connection is not necessary for it to load. Furthermore,
> given that all of the locally stored data is essentially namespaced by the
> domain name, one can have many OS environments running alongside each other
> in different tabs of the same browser, with the caveat that each tab is
> must use a different subdomain (this just means that all of the resources
> owned by www.urdesk.net essentially live in a sandboxe, safely hidden
> away from, eg. dev.urdesk.net... or any other subdomain of urdesk.net).
>
> In this way, there is essentially zero cost involved when it comes to
> experimenting with a new OS, and trying out all of the different
> applications contained within it. Application developers will be able to
> write their logic without having to worry about distribution problems,
> given that it will be guaranteed to run on any Chrome browser, thereby
> eliminating all issues related to downloading (and the related issue of
> viruses), plugin-installing, flag-enabling, etc.
>
> The next level of thinking about the system is that the applications are
> not traditional "applications" in the sense that they run as different
> native processes, and thereby keep their data structures in mutually
> exclusive address spaces. In this system, there are precisely zero issues
> of interprocess communication (IPC). All "applications" are actually just
> JavaScript function objects that collectively inhabit a single browser tab
> address space. All complications traditionally related to IPC now become
> null and void. Given this fact, the possibilities in terms of the
> development of a holistic kind of user experience increase profoundly. (As
> a trivial example of this, imagine your calendar app being aware of what
> you are typing into your word processor and adjusting itself according.)
>
> And finally, this system allows for the emergence of a fundamentally new
> paradigm in terms of how we relate to our computers.  I have actually had a
> much longer history developing AI-type command-and-response systems than I
> have had developing user interfaces.  Within the command-line interface,
> there is a working prototype of a natural language REPL (read/eval/print
> loop) that accepts the kind of syntax that the most naive of end users
> would not find intimidating in the least.  You must understand that I have
> never had any interest in developing things that are known as "chatterbots"
> for the purpose of fooling anyone about anything (ie, passing a Turing
> test).  My interest has always been the creation of what amounts to a VHLPL
> (very high level programming language)... or put differently, a structured/
> formalized subset of natural languages (such as English) that can be used
> as a working interfaces into the logical circuitry of one's personal
> computing device.
>
> The essential aspect of this final point is not ultimately the nature of
> the algorithms that relate directly to something we might call "natural
> language understanding". (Fundamentally, I think that this kind of
> progamming is fairly straight-forward, with the major caveat being that any
> sufficiently advanced AI requires a simply massive amount of said
> programming.) It is rather that the world is in need of a generally
> available "AI friendly" development environment in order for any
> economically sustainable AI project to get off the ground. In other words,
> I find it to be fairly obvious that such a project must be truly global and
> distributed in nature, rather that being the product of a centralized
> organization with a definite political heirarchy.
>
> If we look at the recent efforts of IBM to create "intelligent" machines
> (Deep Blue in the domain of chess; Watson in the domain of publicly
> available general human knowledge), we can see that there was really no
> effort to develop a general interface to give average end users the ability
> to leverage the power of the microprocessors and the flexiblity of the
> programmable circuitry in their computers. Those were all exercises in:
> "Look how smart WE are, ma! Aren't you proud?"
>
> So, while there may indeed be an average public awareness that there are
> "intelligent machines" that exist in the various research labs of the
> various suburbs of the SF Bay area, there is most certainly not any such
> awareness of the existence of any generally available, highly intuitive
> interfaces that will allow them to get along with the business of their
> daily lives with any more ease.
>
> Please give the site @ http://urdesk.net a test drive and tell me what
> you think.  I will get deeper into how the system can be used later on...
>
> --
> --
> 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
>
> ---
> You received this message because you are subscribed to the Google Groups
> "nodejs" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to nodejs+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
-- 
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

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to