<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>doc.mashweb.club – white paper</title>
    <link>/categories/white-paper/</link>
    <description>Recent content in white paper on doc.mashweb.club</description>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Thu, 05 Jan 2017 00:00:00 +0000</lastBuildDate>
    
	  <atom:link href="/categories/white-paper/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Zen-White-Paper: Zen vs. current WYSIWYG and WYSIWYM web-page composers</title>
      <link>/zen-white-paper/practices/current-composers/</link>
      <pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate>
      
      <guid>/zen-white-paper/practices/current-composers/</guid>
      <description>
        
        
        &lt;p&gt;Present-day WYSIWYG and WYSIWYM web page composers immediately confront the user with page structure details, requiring the user to optimize his web page prematurely. A palette of HTML elements dominates the web page under construction with these composers. The user can “paint” a web page with elements from the palette. Some of these composers strew the page view with icons representing HTML elements.&lt;/p&gt;
&lt;p&gt;Zen will take a different approach. In Zen, HTML elements making up the web page will represent themselves at the top-level view, with all the obscurity of detail that implies. Still, when Zen’s node browser is open, Zen will try to show a picture of the web page with all the all block boxes, inline boxes, and inline-block boxes&lt;a href=&#34;/zen-white-paper/notes/#fn:43&#34;&gt;&lt;sup&gt;43&lt;/sup&gt;&lt;/a&gt;
 visible. Possibly it will do this by temporarily restyling all borders and margins (Figure 7).&lt;/p&gt;

&lt;figure&gt;&lt;a href=&#34;/demos/&#34; target=&#34;_blank&#34;&gt;
    &lt;img src=&#34;/images/node-browser-cropped.png&#34;/&gt; &lt;/a&gt;&lt;figcaption&gt;
            &lt;h4&gt;Figure 7. Screenshot of a node-browser prototype. Click to open the live demo in a new window.&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Zen will model other display styles besides &lt;em&gt;block&lt;/em&gt;, &lt;em&gt;inline&lt;/em&gt;, and &lt;em&gt;inline-block&lt;/em&gt; in a subsequent release. Zen will provide whatever kinds of object-browsers are necessary to unobscure details of the page-as-an-object. Although the details have not yet been worked out, hope and inspiration are provided by the &lt;a href=&#34;https://developer.mozilla.org/en/docs/Tools/3D_View&#34; target=&#34;_blank&#34;&gt;3D View tool&lt;/a&gt;, and by the &lt;a href=&#34;http://web.archive.org/web/20180428035946/https://addons.mozilla.org/en-US/firefox/addon/tilt/&#34; target=&#34;_blank&#34;&gt;Tilt 3D add-on&lt;/a&gt;, for the Firefox browser (Figures 8a and 8b). The author does not mean these screenshots to represent the paradigm that Zen will use.&lt;/p&gt;
&lt;p&gt;Other display styles besides &lt;em&gt;block&lt;/em&gt;, &lt;em&gt;inline&lt;/em&gt;, and &lt;em&gt;inline-block&lt;/em&gt; will be modeled by Zen in a subsequent release. Zen will provide whatever kinds of object-browsers are necessary to unobscure details of the page-as-an-object. Although the details have not yet been worked out, hope and inspiration are provided by the &lt;a href=&#34;https://developer.mozilla.org/en/docs/Tools/3D_View&#34; target=&#34;_blank&#34;&gt;3D View tool&lt;/a&gt;, and by the &lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/tilt/&#34; target=&#34;_blank&#34;&gt;Tilt 3D add-on&lt;/a&gt;, for the Firefox browser (Figures 8a and 8b). These screenshots are not meant to represent the paradigm that Zen will use.&lt;/p&gt;

&lt;figure&gt;
    &lt;img src=&#34;https://developer.mozilla.org/en-US/docs/Tools/3D_View/3dview.png&#34;/&gt; &lt;figcaption&gt;
            &lt;h4&gt;Figure 8a. Screenshot of the Firefox 3D View tool for Firefox versions prior to Firefox 47.&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;


&lt;figure&gt;
    &lt;img src=&#34;https://wiki.mozilla.org/images/5/5f/Tilt.png&#34;/&gt; &lt;figcaption&gt;
            &lt;h4&gt;Figure 8b. Screenshot of the Tilt 3D Add-on for Firefox.&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The user will be able to select any node that can be the target of a mouse event. In node-selection mode, passing the mouse pointer over nodes will highlight them one at a time (Figure 9).&lt;/p&gt;

&lt;figure&gt;&lt;a href=&#34;/demos&#34; target=&#34;_blank&#34;&gt;
    &lt;img src=&#34;/images/layout-manipulator.gif&#34;/&gt; &lt;/a&gt;&lt;figcaption&gt;
            &lt;h4&gt;Figure 9. Layout-manipulator prototype. Click to open the live demo in a new window.&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;When the user wants to add an HTML element to his web page, Zen will first present a choice of block, inline, and inline-block box types, because in Zen&amp;rsquo;s paradighm, the visual behavior of a box is mainly determined by its display style, not by HTML tag type. The priority of display style over tag type in the visual behavior of a box  is illustrated by the &lt;a href=&#34;https://www.w3schools.com&#34;&gt;w3schools.com&lt;/a&gt;&amp;rsquo;s &amp;ldquo;Tryit Editor&amp;rdquo; page for converting &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; HTML elements into a &lt;a href=&#34;http://www.w3schools.com/css/tryit.asp?filename=trycss_navbar_horizontal&#34;&gt;horizontal navigation bar&lt;/a&gt;. Using Zen&amp;rsquo;s paradigm, with virtually zero learning, the user could intuitively mock up a web page using only &lt;em&gt;block&lt;/em&gt;, &lt;em&gt;inline&lt;/em&gt;, and &lt;em&gt;inline-block&lt;/em&gt; boxes, and convert it piece by piece into semantic markup. Or he could set the HTML element tag of each element immediately when adding it to the web page.&lt;/p&gt;
&lt;p&gt;Zen will allow the user to inspect and manipulate these boxes in a way pioneered and developed by Smalltalk and Smalltalk variants, using inspectors and browsers to inspect live web-page objects. For a relatively gentle introduction to Smalltalk-style inspectors and browsers, see Cincom Smalltalk&amp;rsquo;s tutorials (Figures 10 and 11). The specific HTML tag of an HTML element will be a detail to be drilled down to rather than a primary detail of interest.&lt;/p&gt;

&lt;figure&gt;&lt;a href=&#34;https://www.youtube.com/watch?feature=player_embedded&amp;amp;v=N55hT-abBaA&#34; target=&#34;_blank&#34;&gt;
    &lt;img src=&#34;/images/Inspector.jpeg&#34;/&gt; &lt;/a&gt;&lt;figcaption&gt;
            &lt;h4&gt;Figure 10. Cincom Smalltalk Inspector Tool overview tutorial video. Click to open in a new window.&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;


&lt;figure&gt;&lt;a href=&#34;https://www.youtube.com/watch?feature=player_embedded&amp;amp;v=9e5UI_PMGEM&#34; target=&#34;_blank&#34;&gt;
    &lt;img src=&#34;/images/Browser.png&#34;/&gt; &lt;/a&gt;&lt;figcaption&gt;
            &lt;h4&gt;Figure 11. Cincom Smalltalk Browser Tool overview tutorial video. Click to open in a new window.&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Zen will take an embedded, instant-feedback, hybrid WYSIWYM-WYSIWYG (not &amp;ldquo;pure&amp;rdquo; WYSIWYG) approach to pull the authoring of novel, Semantic-Web applications out of the exclusive province of programmer-specialists and put it into the hands of amateurs and dilettantes (in the original, non-pejorative sense of the words). The Zen project will primarily focus upon working with the &amp;ldquo;purest&amp;rdquo; web technologies—HTML and CSS—rather than backend technologies like web servers and web frameworks, because the back-end web framework or web server is opaque to JavaScript running in the web page. That is, the JavaScript running in the page has no way to affect the operation of the back end unless specific arrangements have been made for it. Zen will work by providing updates to web-page source in some format. Where web-page source is persisted and how it is used to generate the web page Zen is embedded in will not be the concern of Zen, though a reference implementation for that will be developed along with Zen.&lt;/p&gt;
&lt;p&gt;In spite of these strict limitations, Zen as a building block for web servers and web frameworks is anticipated to be a game-changing addition to present-day website and web-app techniques. In some cases, Zen might even be developed to itself reflect changes to content, structure, and style back to sources, using a bit of code on the back end (i.e. on the web server). Perhaps, for example, in WebDAV-enabled websites—Zen could relatively easily be leveraged to rewrite web-page source, including stylesheets. On the other hand, using Zen only as a low-level, embedded, solid building block, it should be possible to augment web frameworks of many types to achieve a new, higher level of interactivity and customization in web applications.&lt;/p&gt;
&lt;p&gt;None of the well-known WYSIWYG and WYSIWYM page editors directly support the creation of web applications. The most radical aspect of Zen will be that it will allow simple, sequential programs to be created and edited using a block representation of the program&amp;rsquo;s abstract syntax tree (AST),&lt;a href=&#34;/zen-white-paper/notes/#fn:42&#34;&gt;&lt;sup&gt;42&lt;/sup&gt;&lt;/a&gt;
 where blocks can be moved around using the same user interface Zen will provide for moving web page elements, with minimal modifications. Zen will accomplish this unusual feat by implementing a version of Scheme language in JavaScript, along with &lt;em&gt;true&lt;/em&gt; continuations,&lt;a href=&#34;/zen-white-paper/notes/#fn:45&#34;&gt;&lt;sup&gt;45&lt;/sup&gt;&lt;/a&gt;
 various supporting functions written in JavaScript, and some resources like icons. The author has already used such continuations to string together JavaScript event handlers to create a small sequential program without resorting to callbacks, continuatinon-passing style, promises, or state machines. Scratch&lt;a href=&#34;/zen-white-paper/notes/#fn:46&#34;&gt;&lt;sup&gt;46&lt;/sup&gt;&lt;/a&gt;
 and Snap!&lt;a href=&#34;/zen-white-paper/notes/#fn:47&#34;&gt;&lt;sup&gt;47&lt;/sup&gt;&lt;/a&gt;
 (formerly called BYOB) demonstrate that even young children can program using a cleverly designed visual programming language (Figure 12).&lt;/p&gt;

&lt;figure&gt;
    &lt;img src=&#34;/images/snap.png&#34;/&gt; &lt;figcaption&gt;
            &lt;h4&gt;Figure 12. The Snap! visual programming language. Click to open in a new window.&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;


      </description>
    </item>
    
    <item>
      <title>Zen-White-Paper: Introduction</title>
      <link>/zen-white-paper/introduction/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/zen-white-paper/introduction/</guid>
      <description>
        
        
        &lt;p&gt;This white paper presents the profoundly unique, personalized, and adaptable Zen system, under development, for creating web applications—a radically new system usable by a very inclusive class of people.
The alpha stage of the Zen project is the building of a small bridge over the gap between codeless, programmerless web authoring and the large-scale web application development that programmers do.
There are numerous opportunities to build this small bridge because
simple web-page interactions have become part and parcel of a novice&amp;rsquo;s understanding: copy-paste, URL linking, drag-and-drop, resizing, opening new browser tabs, etc.
All such interactions could be created &lt;em&gt;inside&lt;/em&gt; a web page via cleverly devised menus and buttons suggesting next steps to the web page visitor. Such interactions are sometimes called wizards and macros, but already that sounds too technical!&lt;/p&gt;
&lt;p&gt;A typical example of a web application, &lt;em&gt;aka&lt;/em&gt; web app, is
a highly interactive website with various kinds of media and interaction. Such a model provides lots of examples of variability between web apps. We all know there are countless websites dedicated to every subject imaginable. So why would anyone but a computer geek want to create one more? Isn&amp;rsquo;t there already a web app for every need, even for every personal, private need?&lt;/p&gt;

&lt;figure&gt;
    &lt;img src=&#34;/images/programming.jpg&#34;/&gt; &lt;figcaption&gt;
            &lt;h4&gt;Old School&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This white paper does not go deeply into the question. Rather, the possibilities will be explored and developed gradually on the website &lt;a href=&#34;https://web-call.cc&#34;&gt;web-call.cc&lt;/a&gt; and in the &lt;a href=&#34;/guide&#34;&gt;Mashweb Guide&lt;/a&gt;.
However, the short answer to the question is that a website can best serve &lt;em&gt;an individual&lt;/em&gt; if it keeps a laser focus on &lt;em&gt;his particular needs&lt;/em&gt;.
There are two opposing forces in operation behind website development: the need to conform to the &lt;em&gt;individual web user&amp;rsquo;s&lt;/em&gt; interests and the need to serve a &lt;em&gt;class of people&lt;/em&gt;.
There are just too many possible requirements for one size to fit all.
A few of the infinite possibilities for tailormade websites are presented in this Introduction.
This white paper proposes that every literate person should create his or her own web apps.&lt;/p&gt;
&lt;h2 id=&#34;the-web-is-replacing-pen-and-paper&#34;&gt;The web is replacing pen and paper.&lt;/h2&gt;
&lt;p&gt;In place of reading hardback and paperback books or magazines and journals, and in place of keeping notes on paper, people are reading and writing digital media, especially on the web. There are countless websites dedicated to socializing, employment, cars, sports, self-help, arts, science, religion, and philosophy, millions of subjects large and small, both consequential and inconsequential. The requirements of each website can be as unique as the website&amp;rsquo;s target audience.&lt;/p&gt;
&lt;p&gt;Here is a small sample of the user interactions that can make a website unique:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;searching&lt;/li&gt;
&lt;li&gt;liking&lt;/li&gt;
&lt;li&gt;tagging&lt;/li&gt;
&lt;li&gt;sharing&lt;/li&gt;
&lt;li&gt;posting&lt;/li&gt;
&lt;li&gt;commenting&lt;/li&gt;
&lt;li&gt;chatting&lt;/li&gt;
&lt;li&gt;discussing&lt;/li&gt;
&lt;li&gt;moderating&lt;/li&gt;
&lt;li&gt;uploading&lt;/li&gt;
&lt;li&gt;curating&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And that is but a start. The reader might notice that many of these &lt;em&gt;microinteractions&lt;/em&gt; are used to turn a website into a &lt;em&gt;social network&lt;/em&gt;, but microinteractions like these can define the main utility of any website.&lt;/p&gt;
&lt;p&gt;There are also many kinds of specialized &lt;em&gt;media&lt;/em&gt; and &lt;em&gt;data&lt;/em&gt; a website visitor can interact with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;short text, like on a microblogging site like Twitter&lt;/li&gt;
&lt;li&gt;long text&lt;/li&gt;
&lt;li&gt;photos&lt;/li&gt;
&lt;li&gt;sounds&lt;/li&gt;
&lt;li&gt;links&lt;/li&gt;
&lt;li&gt;numbers&lt;/li&gt;
&lt;li&gt;interactive graphs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A website can also be specialized by its behind-the-scenes &lt;em&gt;databases&lt;/em&gt; and &lt;em&gt;services&lt;/em&gt;, that is, by the data it accesses or collects and by its operations on the data.&lt;/p&gt;
&lt;p&gt;Someday, Zen might allow any literate person to build their own highly interactive web applications (&lt;em&gt;aka&lt;/em&gt; web apps) from scratch and decide virtually every detail of their look, structure, and function simply, efficiently, and quickly &lt;em&gt;without prior learning&lt;/em&gt;. This white paper links to &lt;a href=&#34;https://web-call.cc&#34;&gt;live, interactive experiments&lt;/a&gt; showing the incremental progress in building Zen. Each investigation tests at least one new function to enable non-programmers to create simple web applications.&lt;/p&gt;
&lt;p&gt;But why would anyone but a computer geek want to do that? And why hasn&amp;rsquo;t someone already made it possible?&lt;/p&gt;
&lt;p&gt;The answer to the first question, &amp;ldquo;Why would everyone want to create web applications?&amp;rdquo; is that the web is the natural way to organize ideas and information in the digital age. The &lt;a href=&#34;/guide&#34;&gt;&amp;ldquo;Guide to Mashweb&amp;rdquo;&lt;/a&gt; goes into depth about the problems people of the Digital Age encounter every day, but the main advantages of the web over other forms of electronic media are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the web is everywhere on our planet,&lt;/li&gt;
&lt;li&gt;the web enables hypermedia, i.e. web links,&lt;/li&gt;
&lt;li&gt;the web encompasses multimedia, and&lt;/li&gt;
&lt;li&gt;the web, through HTML, CSS, and JavaScript, gives structure to data, i.e. ways to organize data.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The answer to the second question, &amp;ldquo;Why hasn&amp;rsquo;t someone already made it possible?&amp;rdquo; has two parts. First, the &amp;ldquo;group think&amp;rdquo; among programmers is so strong that no one has noticed the relevance of a little-studied capability of a little-studied programming language. This capability can shrink the programming task an order of magnitude and encourage the exploration of ambitious new paradigms of the user interface. Second, the new paradigms will enable Zen to work inside documents to build organized media rather than outside as a &amp;ldquo;bolted on&amp;rdquo; application. Working inside web pages will make Zen natural and powerful. The current &amp;ldquo;Zen White Paper&amp;rdquo; goes into depth on the subject of Zen&amp;rsquo;s key technologies.&lt;/p&gt;
&lt;p&gt;Zen&amp;rsquo;s unique selling point (USP) will be in-context, instant feedback, &lt;em&gt;full-featured&lt;/em&gt; editing of website or web application structure, function, and styling. Zen will make it easy for users to create valid HTML and styles in web pages without getting into the complexity or distraction of code. Zen users will quickly develop basic web application programs using visual-programming principles adopted from successful visual-programming languages for children. Most importantly, all this &amp;ldquo;development&amp;rdquo; and its &lt;em&gt;deployment&lt;/em&gt; can be continuous, carried on by a &lt;em&gt;website&amp;rsquo;s users&lt;/em&gt; of all levels of experience. Deploying and sharing a new application could be as simple as clicking a &lt;em&gt;Share&lt;/em&gt; button. Self-organizing Zen user communities might even develop novel applications.&lt;/p&gt;
&lt;p&gt;The unusual part of Zen will be &lt;a href=&#34;https://www.gnu.org/philosophy/pragmatic.html&#34;&gt;free software&lt;/a&gt; that programmers can use to give their websites Zen&amp;rsquo;s unique capabilities. Zen&amp;rsquo;s core (&amp;ldquo;Core Zen&amp;rdquo;)&lt;a href=&#34;/zen-white-paper/notes/#fn:1&#34;&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;
 will work with virtually any website&amp;rsquo;s server technology. Model website server technology&lt;a href=&#34;/zen-white-paper/notes/#fn:2&#34;&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;
will develop alongside Core Zen. It will be made available on the internet,&lt;a href=&#34;/zen-white-paper/notes/#fn:3&#34;&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt;
 providing user registration and private accounts for users who want to save their work.&lt;/p&gt;
&lt;p&gt;The book &lt;em&gt;No Code Required&lt;/em&gt;&lt;a href=&#34;/zen-white-paper/notes/#fn:4&#34;&gt;&lt;sup&gt;4&lt;/sup&gt;&lt;/a&gt;
describes many user-programmed systems for customizing websites but none for creating web apps.  Zen will enable the easy creation of many kinds of web apps. Children write application programs in specially designed visual programming languages, so why not adults?&lt;/p&gt;
&lt;p&gt;Many problems of end-user programming environments for the web have been overcome to some degree or other by the thousands or millions of web developers in the world. However, the biggest of these problems arises from the stateless nature of the web.  To illustrate, let us first review how simple and straightforward it is for a typical desktop program to ask a user&amp;rsquo;s name and greet him accordingly:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;
    PRINT &#34;What is your name?&#34;
    INPUT &#34;(Enter your name.)&#34;, $name
    PRINT
    PRINT &#34;Hello, &#34;; $name; &#34;, how are you today?&#34;
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;The flow of this program is apparent but can only work on a platform that hides complexity. It must be halted, waiting for a response.  For desktop applications, the operating system provides system calls, a scheduler, and library functions that allow the look of such a program to mirror its progress. There is no underlying operating system for web applications to support the halting and restarting of the program. However, the Scheme programming language supports &lt;em&gt;first-class continuations&lt;/em&gt;.&lt;a href=&#34;/zen-white-paper/notes/#fn:5&#34;&gt;&lt;sup&gt;5&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;&lt;a href=&#34;/zen-white-paper/notes/#fn:6&#34;&gt;&lt;sup&gt;6&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;&lt;a href=&#34;/zen-white-paper/notes/#fn:7&#34;&gt;&lt;sup&gt;7&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;&lt;a href=&#34;/zen-white-paper/notes/#fn:8&#34;&gt;&lt;sup&gt;8&lt;/sup&gt;&lt;/a&gt;
 These continuations allow programs to be halted and restarted using &lt;em&gt;language-level&lt;/em&gt; mechanisms (as opposed to operating-system system calls and library functions). Zen will utilize continuations to simplify both the Zen developer&amp;rsquo;s job and the user&amp;rsquo;s programming tasks.&lt;/p&gt;
&lt;p&gt;This paper will explain the appeal of Zen&amp;rsquo;s new approach and the plan to make work it work. A brief video from the Digital Archaeology project&lt;a href=&#34;/zen-white-paper/notes/#fn:9&#34;&gt;&lt;sup&gt;9&lt;/sup&gt;&lt;/a&gt;
 showing the operation of the first web browser can provide some background context. The video shows the function of the first web browser, called Nexus, crafted by the inventor of the World Wide Web himself, Sir Tim Berners-Lee. Nexus&amp;rsquo;s editing function is demonstrated twelve minutes and nine seconds into the video (Figure 1). Thus, Berners-Lee intended the web browser to enable easy collaborative authoring from the very beginning. However, as he says, &amp;ldquo;It didn&amp;rsquo;t really take off that way.&amp;rdquo;
&lt;a href=&#34;/zen-white-paper/notes/#fn:10&#34;&gt;&lt;sup&gt;10&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;
&lt;a href=&#34;/zen-white-paper/notes/#fn:11&#34;&gt;&lt;sup&gt;11&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;
&lt;a href=&#34;/zen-white-paper/notes/#fn:12&#34;&gt;&lt;sup&gt;12&lt;/sup&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;figure&gt;&lt;a href=&#34;http://www.youtube.com/watch?feature=player_embedded&amp;amp;v=3c3Rt6QbHDw#t=12m9s&#34; target=&#34;_blank&#34;&gt;
    &lt;img src=&#34;http://img.youtube.com/vi/3c3Rt6QbHDw/0.jpg&#34;/&gt; &lt;/a&gt;&lt;figcaption&gt;
            &lt;h4&gt;Figure 1. Demonstration of the editing function of the first web browser. Click to open.&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Now, a quarter of a century later, the position of the A-grade web browsers&lt;a href=&#34;/zen-white-paper/notes/#fn:13&#34;&gt;&lt;sup&gt;13&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;
&lt;a href=&#34;/zen-white-paper/notes/#fn:14&#34;&gt;&lt;sup&gt;14&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;
&lt;a href=&#34;/zen-white-paper/notes/#fn:15&#34;&gt;&lt;sup&gt;15&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;
&lt;a href=&#34;/zen-white-paper/notes/#fn:16&#34;&gt;&lt;sup&gt;16&lt;/sup&gt;&lt;/a&gt;

as the central applications for online sharing seems unshakeable. Yet till today, not one A-grade web browser has full-fledged web-authoring capabilities. (We shall discuss the browser features &lt;em&gt;contentEditable&lt;/em&gt; and &lt;em&gt;designMode&lt;/em&gt; later, since these do not, without external programming, constitute web-authoring capabilities.) The direct descendents of Berners-Lee&amp;rsquo;s early web-page editing application are visual web-page editors in three classes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;the class of rich-text editor that is embedded right into a web page. (Programmers might like to know that these are WYSIWYG web-page editors that convert HTML &lt;code&gt;textarea&lt;/code&gt; fields or other HTML elements into editor instances.) TinyMCE and CKeditor are typical examples.&lt;/li&gt;
&lt;li&gt;the class of standalone WYSIWYG web-page editor that operates on web-page sources and shows a preview of the resultant web page. Sources can be HTML or markup to be translated into HTML.&lt;/li&gt;
&lt;li&gt;the class of WYSIWYM semantic web-page editor. Examples of this type of editor are WYMEditor, RDFaCE, BlueprintUI, PageDown, and Showdown. (The author needs to further investigate these editors.) Source can be HTML or markup that can be translated into HTML.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Apart from editors that only edit web pages, there are other tools and applications for developing web experiences:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;online web development tools for testing and debugging code (e.g. JSFiddle.net, CodePen.io, jsbin.com, etc.),&lt;/li&gt;
&lt;li&gt;web-developer tools and &amp;ldquo;augmented-browsing software&amp;quot;&lt;a href=&#34;/zen-white-paper/notes/#fn:17&#34;&gt;&lt;sup&gt;17&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;&lt;a href=&#34;/zen-white-paper/notes/#fn:18&#34;&gt;&lt;sup&gt;18&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;&lt;a href=&#34;/zen-white-paper/notes/#fn:19&#34;&gt;&lt;sup&gt;19&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;&lt;a href=&#34;/zen-white-paper/notes/#fn:20&#34;&gt;&lt;sup&gt;20&lt;/sup&gt;&lt;/a&gt;
 (e.g. Firebug for Firefox, Developer Tools for Chrome, Developer Tools for Safari, Greasemonkey, Tampermonkey, Chickenfoot, X-Ray Goggles),&lt;/li&gt;
&lt;li&gt;integrated development environments (IDEs) that build websites,&lt;/li&gt;
&lt;li&gt;web content management systems (web CMSs or simply WCMSs),&lt;/li&gt;
&lt;li&gt;website builders,&lt;/li&gt;
&lt;li&gt;web frameworks, and&lt;/li&gt;
&lt;li&gt;web portals.&lt;/li&gt;
&lt;/ol&gt;

      </description>
    </item>
    
    <item>
      <title>Zen-White-Paper: Zen vs. website builders</title>
      <link>/zen-white-paper/practices/website-builders/</link>
      <pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate>
      
      <guid>/zen-white-paper/practices/website-builders/</guid>
      <description>
        
        
        &lt;p&gt;It is important to characterize and visualize how Zen will be different from &amp;ldquo;website builders&amp;rdquo; and WCMSs like Wix.com and Weebly.com. In contrast to such WCMSs, which prescribe construction methods at the level of business type, templates, plugins, modules, fonts, etc., Zen will give the user ultimate control of detail at the element/node/NodeList level of web pages. Zen will allow a DOM node to be grabbed and &amp;ldquo;dragged&amp;rdquo; to different positions in its containing NodeList because this is the simplest metaphor for that operation. Drag-and-drop is a classic feature of direct-manipulation interfaces (DMIs) and this metaphor of &amp;ldquo;moving&amp;rdquo; an HTML element or node is so compelling that we have to look at the code to see that the element has not moved in terms of x and y coordianates, but rather in terms of its cardinal position in a NodeList. Zen will allow a DOM node to be &amp;ldquo;cut and pasted&amp;rdquo; to any valid position in the DOM—an interaction between multiple NodeLists. An HTML element&amp;rsquo;s style has four possible, well-supported values for its display property: block, inline, inline-block, and none. Live demo code to implement GUIs to rearrange element positions in the NodeLists of the first three of these display styles is located on the author&amp;rsquo;s GitHub Pages here, here, and here. (Right-click on the links to open the pages in new tabs or windows.) The method of sliding elements in these prototype GUIs was partly inspired by the 15 Puzzle and JavaScript-based implementations of the 15 Puzzle. There are notes about some of these implementations on this website. Below is a screen recording of Jamie Wong&amp;rsquo;s AI-based automated 15-Puzzle solver, which is written solely in JavaScript, HTML, and CSS (Figure 13).&lt;/p&gt;

&lt;figure&gt;
    &lt;img src=&#34;/images/15-puzzle.gif&#34;/&gt; &lt;figcaption&gt;
            &lt;h4&gt;Figure 13. Jamie Wong&amp;#39;s 15-Puzzle solver.&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Presently, the customization of templates, plugins, and modules for website builders and web CMSs and the creation of novel comment systems, forums, wikis, and presently unimagined communication systems are far outside the bounds of casual web authorship.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Zen-White-Paper: Critique of contemporary WYSIWYG web-page composers</title>
      <link>/zen-white-paper/wysiwyg/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/zen-white-paper/wysiwyg/</guid>
      <description>
        
        
        &lt;p&gt;WYSIWYG stands for “What You See Is What You Get.” All the well-known WYSIWYG web page composers, whether standalone or embedded, treat web-page composition like word processing—or like drawing—rather than like an organizational (structured, semantic, dynamic-design) problem. They work mainly on the superficial look of web pages. Typically they are designed merely to provide a gentle approach to HTML editing.&lt;/p&gt;
&lt;p&gt;Pages produced by such WYSIWYG page composers seldom help with the powerful possibilities of web applications.  Well-crafted web pages can adjust themselves according to the type of media they appear on (e.g., phone, desktop, or paper). They can be dynamic, using AJAX, which allows them to update parts of themselves quickly without reloading the whole page. They have reactive widgets. They have structures based upon semantic meaning.&lt;/p&gt;
&lt;p&gt;Contemporary WYSIWYG page composers often sport a button to switch to an HTML-source view, as if copping-out when their visual paradigms fail. Their interfaces are reminiscent of IDEs (integrated development environments) or RAD (rapid application development) tools provided by large, complicated, programmer-oriented frameworks. Indeed, IDEs sometimes include WYSIWYG web page composers.&lt;/p&gt;
&lt;p&gt;These page composers produce &amp;ldquo;dirty&amp;rdquo; HTML containing excess, unruly pieces of HTML, as explained by Nick Santos.&lt;a href=&#34;/zen-white-paper/notes/#fn:21&#34;&gt;&lt;sup&gt;21&lt;/sup&gt;&lt;/a&gt;
 The HTML they generate gets dirtier and dirtier as the user makes more and more changes to the web page.&lt;/p&gt;
&lt;p&gt;The thorny problem that web-page-embedded, JavaScript-based editors attempt to solve is that web browsers do not sufficiently support their tasks. The critical browser feature supporting web page editing is called &lt;code&gt;contentEditable&lt;/code&gt;. Piotrek Koszuliński, the lead developer of &lt;em&gt;CKEditor&lt;/em&gt;, wrote a detailed technical explanation of why &lt;code&gt;contentEditable&lt;/code&gt; is flawed yet indispensable.&lt;a href=&#34;/zen-white-paper/notes/#fn:22&#34;&gt;&lt;sup&gt;22&lt;/sup&gt;&lt;/a&gt;
 Some of his points are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;It is difficult to force every browser to use &lt;code&gt;strong&lt;/code&gt; instead of &lt;code&gt;b&lt;/code&gt; for the &lt;em&gt;bold&lt;/em&gt; command.&lt;/li&gt;
&lt;li&gt;It is hard to coerce the Enter key to create new paragraphs instead of &lt;code&gt;b&lt;/code&gt;  or &lt;code&gt;div&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Cleaning up pasted code is messy and imperfect.&lt;/li&gt;
&lt;li&gt;From mid-2007, for at least the next eight years, the selection systems of the Blink and WebKit web browser engines remained broken.&lt;/li&gt;
&lt;li&gt;APIs and their implementations related to &lt;code&gt;contentEditable&lt;/code&gt; &amp;ldquo;are incomplete and/or inconsistent and buggy.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent&#34;&gt;Composition events&lt;/a&gt; are very complicated to handle without &lt;code&gt;contentEditable&lt;/code&gt; breaking many things: editing in an iPad, the keystrokes for jumping over words, shake-to-undo on the iPhone, spell checking, and screen readers. (Text entry of an accented letter, a complex Japanese character, and a letter with a diacritic all invoke composition events. Googling &amp;ldquo;Mozilla composition event&amp;rdquo; and &amp;ldquo;Wikipedia input method&amp;rdquo; provides all a non-technical or technical person needs to know to get a quick start with composition events.)&lt;/li&gt;
&lt;li&gt;Standardizing browser APIs to address all the above issues is a tough job.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The author does not know whether Blink and WebKit ever fixed those bugs. Still, Fatos Bediu&lt;a href=&#34;/zen-white-paper/notes/#fn:23&#34;&gt;&lt;sup&gt;23&lt;/sup&gt;&lt;/a&gt;
 and Mark Lancaster&lt;a href=&#34;/zen-white-paper/notes/#fn:24&#34;&gt;&lt;sup&gt;24&lt;/sup&gt;&lt;/a&gt;
 have recently written about how difficult it is to use &lt;code&gt;contentEditable&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Nick Santos explains how HTML is not well behaved in WYSIWYG editors. For example, he says, all the forms:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;strong&amp;gt;&amp;lt;em&amp;gt;Baggins&amp;lt;/em&amp;gt;&amp;lt;/strong&amp;gt;
&amp;lt;em&amp;gt;&amp;lt;strong&amp;gt;Baggins&amp;lt;/strong&amp;gt;&amp;lt;/em&amp;gt;
&amp;lt;em&amp;gt;&amp;lt;strong&amp;gt;Bagg&amp;lt;/strong&amp;gt;&amp;lt;strong&amp;gt;ins&amp;lt;/strong&amp;gt;&amp;lt;/em&amp;gt;
&amp;lt;em&amp;gt;&amp;lt;strong&amp;gt;Bagg&amp;lt;/strong&amp;gt;&amp;lt;/em&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;em&amp;gt;ins&amp;lt;/em&amp;gt;&amp;lt;/strong&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;should be treated the same by the WYSIWYG editor. A WYSIWYG editor should treat an edit to any of these forms the same, but, as he says, &amp;ldquo;For many &lt;code&gt;ContentEditable&lt;/code&gt; implementations on the web, some invisible character or empty span tag may slip into the HTML, so that two &lt;code&gt;ContentEditable&lt;/code&gt; elements behave totally differently (even though they look the same).&amp;rdquo;&lt;/p&gt;
&lt;p&gt;According to Dan Dascalescu,&lt;a href=&#34;/zen-white-paper/notes/#fn:25&#34;&gt;&lt;sup&gt;25&lt;/sup&gt;&lt;/a&gt;
 in a survey of about 60 in-browser WYSIWYG editors, only one editor could paste images directly from the clipboard. More recently, Jeferson Mari and others&lt;a href=&#34;/zen-white-paper/notes/#fn:26&#34;&gt;&lt;sup&gt;26&lt;/sup&gt;&lt;/a&gt;
 curated another list of WYSIWYG editors.&lt;/p&gt;
&lt;p&gt;Here are screenshots of a few of the many composers in this class (chosen a few years ago by the author), leaving aside the composers tied to heavyweight integrated development environments:&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;
    &lt;img src=&#34;/images/bluegriffon1_6_french.jpeg&#34;/&gt; &lt;figcaption&gt;
            &lt;h4&gt;BlueGriffon&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;


&lt;figure&gt;
    &lt;img src=&#34;/images/ckeditor.jpeg&#34;/&gt; &lt;figcaption&gt;
            &lt;h4&gt;CKeditor&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;


&lt;figure&gt;
    &lt;img src=&#34;/images/kompozer.png&#34;/&gt; &lt;figcaption&gt;
            &lt;h4&gt;KompoZer&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;


&lt;figure&gt;
    &lt;img src=&#34;/images/maqetta.png&#34;/&gt; &lt;figcaption&gt;
            &lt;h4&gt;Maqetta&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;


&lt;figure&gt;
    &lt;img src=&#34;/images/tinymce.jpeg&#34;/&gt; &lt;figcaption&gt;
            &lt;h4&gt;TinyMCE&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id=&#34;aside&#34;&gt;Aside&lt;/h2&gt;
&lt;p&gt;Maqetta, although its development is inactive, provides an exciting and unique approach to WYSIWYG web-page composition, in that it&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;supports composition with OpenAjax widgets,&lt;/li&gt;
&lt;li&gt;&amp;ldquo;allows User Experience Designers (UXD) to perform drag/drop assembly of live UI mockups,&amp;rdquo;&lt;/li&gt;
&lt;li&gt;includes &amp;ldquo;deep support for CSS styling (the application includes a full CSS parser/modeler),&amp;rdquo;&lt;/li&gt;
&lt;li&gt;includes &amp;ldquo;a mechanism for organizing a UI prototype into a series of &amp;lsquo;application states&amp;rsquo; (aka &amp;lsquo;screens&amp;rsquo; or &amp;lsquo;panels&amp;rsquo;) which allows a UI designer to define interactivity without programming,&amp;rdquo; and&lt;/li&gt;
&lt;li&gt;has a code base with &amp;ldquo;a toolkit-independent architecture that allows for plugging in arbitrary widget libraries and CSS themes.&amp;rdquo;&lt;/li&gt;
&lt;/ol&gt;

      </description>
    </item>
    
    <item>
      <title>Zen-White-Paper: Critique of current WYSIWYM web-page composers</title>
      <link>/zen-white-paper/wysiwym/</link>
      <pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate>
      
      <guid>/zen-white-paper/wysiwym/</guid>
      <description>
        
        
        &lt;p&gt;WYMeditor is the best-known WYSIWYM web page editor. &lt;em&gt;WYSIWYM&lt;/em&gt; stands for &lt;em&gt;What You See Is What You Mean&lt;/em&gt;. In a WYSIWYM editor, the user creates a document with &lt;em&gt;structured, meaningful content&lt;/em&gt;. The &lt;em&gt;presentation&lt;/em&gt; of the content is out of his hands. The separation of &lt;em&gt;content&lt;/em&gt; from its &lt;em&gt;look and feel&lt;/em&gt; makes it possible to view the document in many ways on many devices, which is a central principle of good web design.

&lt;figure&gt;
    &lt;img src=&#34;/images/WYMeditor.png&#34;/&gt; &lt;figcaption&gt;
            &lt;h4&gt;WYMeditor&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;The WYSIWYM principle undoubtedly is suitable for web design, but WYMeditor has serious drawbacks. It was tricky to set up in the author&amp;rsquo;s own experience. A web page cannot embed it. According to an old Wikipedia article on WYMeditor (now archived on Archive.org),&lt;a href=&#34;/zen-white-paper/notes/#fn:27&#34;&gt;&lt;sup&gt;27&lt;/sup&gt;&lt;/a&gt;
 &amp;ldquo;One downside of WYMeditor is that it cannot be used to include JavaScript in the content it edits. Changing this would require eliminating WYMeditor&amp;rsquo;s use of the &lt;code&gt;innerHtml&lt;/code&gt; property.&amp;rdquo; Thus, WYMeditor won&amp;rsquo;t work with reactive widgets.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The author might expand this section to cover a representative set of WYSIWYM composers.&lt;/em&gt;&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Zen-White-Paper: Values</title>
      <link>/zen-white-paper/values/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/zen-white-paper/values/</guid>
      <description>
        
        
        &lt;p&gt;The values driving Zen&amp;rsquo;s development are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Creating novel, beautiful, well-formatted, semantic HTML and CSS should be dead simple.&lt;/li&gt;
&lt;li&gt;Amateur web authors should easily create virtually any page structure and style.&lt;/li&gt;
&lt;li&gt;The interface should have a virtually zero learning curve, and zero should mean zero. Zen must leverage well-known interface metaphors and gestures to the hilt. The &amp;ldquo;principle of least surprise&amp;rdquo; should be followed.&lt;/li&gt;
&lt;li&gt;Zen should not clutter its interface for manipulating and creating semantic and presentation structure with every possible detail. Zen should hide details until they are needed; it is better to let the user drill down to these details than to present them by default.&lt;/li&gt;
&lt;li&gt;The interface should have two mutually exclusive modes for semantics and styling. The semantics mode should hide page styling information and help search engines &amp;ldquo;understand&amp;rdquo; the page&amp;rsquo;s subject matter to classify it for the sake of web seekers. Styles will set fonts and colors and the interaction of the page&amp;rsquo;s elements with other elements and with the height and width of the page.&lt;/li&gt;
&lt;li&gt;The interface should have two mutually exclusive modes: a semantics mode and a styling mode. The semantics mode should hide page styling information. The styles will set the looks of the page and the interaction of the page&amp;rsquo;s elements with such things as other elements and the height and width of the page. each other and the The clear and proper semantic structure will help search engines &amp;ldquo;understand&amp;rdquo; the page&amp;rsquo;s subject matter to classify it. The other mode should hide the semantics and focus on the look and feel of the web page. The look and feel is&lt;/li&gt;
&lt;li&gt;Meta organization, like themes, templates, or partials,&lt;a href=&#34;/zen-white-paper/notes/#fn:28&#34;&gt;&lt;sup&gt;28&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;&lt;a href=&#34;/zen-white-paper/notes/#fn:29&#34;&gt;&lt;sup&gt;29&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;&lt;a href=&#34;/zen-white-paper/notes/#fn:30&#34;&gt;&lt;sup&gt;30&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;&lt;a href=&#34;/zen-white-paper/notes/#fn:31&#34;&gt;&lt;sup&gt;31&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;&lt;a href=&#34;/zen-white-paper/notes/#fn:32&#34;&gt;&lt;sup&gt;32&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;&lt;a href=&#34;/zen-white-paper/notes/#fn:33&#34;&gt;&lt;sup&gt;33&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;&lt;a href=&#34;/zen-white-paper/notes/#fn:34&#34;&gt;&lt;sup&gt;34&lt;/sup&gt;&lt;/a&gt;
 should not be precluded by the structure of Zen&amp;rsquo;s low-level tools. Zen should empower the creation of these, even if not directly implement them.&lt;/li&gt;
&lt;/ol&gt;

      </description>
    </item>
    
    <item>
      <title>Zen-White-Paper: Principles</title>
      <link>/zen-white-paper/principles/</link>
      <pubDate>Wed, 04 Jan 2017 00:00:00 +0000</pubDate>
      
      <guid>/zen-white-paper/principles/</guid>
      <description>
        
        
        &lt;p&gt;As pointed out by David Ungar (who pioneered the type of prototypal object system that JavaScript uses), from values derive principles and from principles derive practices.&lt;a href=&#34;/zen-white-paper/notes/#fn:35&#34;&gt;&lt;sup&gt;35&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;&lt;a href=&#34;/zen-white-paper/notes/#fn:36&#34;&gt;&lt;sup&gt;36&lt;/sup&gt;&lt;/a&gt;
 We have just explored the values behind the Zen system. Now let&amp;rsquo;s examine the principles of the Zen system. Zen will complement the approach of Lively Kernel,&lt;a href=&#34;/zen-white-paper/notes/#fn:37&#34;&gt;&lt;sup&gt;37&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;&lt;a href=&#34;/zen-white-paper/notes/#fn:38&#34;&gt;&lt;sup&gt;38&lt;/sup&gt;&lt;/a&gt;
 which shares Zen&amp;rsquo;s principles 1–3 as listed below. How much, if any, of Lively Kernel&amp;rsquo;s code it will borrow is yet to be determined. Note, in particular, the following principle 11 of Zen that is different than the principles of Lively Kernel:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;It will run in any &lt;em&gt;browser&lt;/em&gt; without a download or installation. (Sometime in the future, an attempt might be made to make it work in mobile browsers.)&lt;/li&gt;
&lt;li&gt;It will be a composition environment, a GUI builder.&lt;/li&gt;
&lt;li&gt;It will store its apps as web pages.&lt;/li&gt;
&lt;li&gt;It will compose web pages using the DOM&amp;rsquo;s interfaces and APIs&lt;a href=&#34;/zen-white-paper/notes/#fn:39&#34;&gt;&lt;sup&gt;39&lt;/sup&gt;&lt;/a&gt;
&lt;sup&gt;, &lt;/sup&gt;&lt;a href=&#34;/zen-white-paper/notes/#fn:40&#34;&gt;&lt;sup&gt;40&lt;/sup&gt;&lt;/a&gt;
 but not SVG or Canvas drawing operations.&lt;/li&gt;
&lt;li&gt;Zen will allow its composition objects and simple programs to be inspected and edited via a Squeak-like object inspector.&lt;a href=&#34;/zen-white-paper/notes/#fn:41&#34;&gt;&lt;sup&gt;41&lt;/sup&gt;&lt;/a&gt;
 Zen will, by default, hide its visual programming environment. When visual programming is enabled, Zen will use HTML elements like &lt;code&gt;DIV&lt;/code&gt; to model nodes in the program&amp;rsquo;s abstract syntax tree (AST).&lt;a href=&#34;/zen-white-paper/notes/#fn:42&#34;&gt;&lt;sup&gt;42&lt;/sup&gt;&lt;/a&gt;
 Zen will enable these program nodes or blocks to be copied, pasted, and rearranged, just like the ordinarily visible parts of a Zen web page.&lt;/li&gt;
&lt;li&gt;It will enable its users to easily compose sequential programs, that is, programs that can wait for external, asynchronous events such as user input or I/O. Zen will synchronize its user&amp;rsquo;s sequential programs through Scheme continuations in an interpreter running on top of JavaScript in the web browser. (See below.)&lt;/li&gt;
&lt;li&gt;Zen will be loadable into any web page as a library, although caution will be required to ensure compatibility.&lt;/li&gt;
&lt;li&gt;It will &lt;em&gt;complement&lt;/em&gt;, &lt;em&gt;augment&lt;/em&gt;, and &lt;em&gt;interact&lt;/em&gt; with existing web page editors and website builders, not replace them.&lt;/li&gt;
&lt;li&gt;It will allow the Zen-editing of a web page to be locked, leaving intact the form and behavior it built inside the web page.&lt;/li&gt;
&lt;li&gt;Zen will not add more than 1–3 seconds to a web page&amp;rsquo;s TTI (time to interact).&lt;/li&gt;
&lt;li&gt;Zen will not follow Lively Kernel&amp;rsquo;s principle of implementing a scene graph.&lt;a href=&#34;/zen-white-paper/notes/#fn:37&#34;&gt;&lt;sup&gt;37&lt;/sup&gt;&lt;/a&gt;
 Instead, it will leverage the CSS2 visual formatting model&lt;a href=&#34;/zen-white-paper/notes/#fn:43&#34;&gt;&lt;sup&gt;43&lt;/sup&gt;&lt;/a&gt;
 and CSS3 features implemented by A-grade web browsers&lt;a href=&#34;/zen-white-paper/notes/#fn:44&#34;&gt;&lt;sup&gt;44&lt;/sup&gt;&lt;/a&gt;
 to model a document in a web browser.&lt;/li&gt;
&lt;/ol&gt;

      </description>
    </item>
    
    <item>
      <title>Zen-White-Paper: Practices</title>
      <link>/zen-white-paper/practices/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/zen-white-paper/practices/</guid>
      <description>
        
        
        &lt;p&gt;We have explored the values and principles of the Zen system. Now let&amp;rsquo;s explore some of the Zen developers&#39; practices to create Zen.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Zen-White-Paper: Zen White Paper</title>
      <link>/zen-white-paper/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/zen-white-paper/</guid>
      <description>
        
        
        
      </description>
    </item>
    
  </channel>
</rss>
