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.