<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    I find this discussion very interesting.<br>
    <br>
    It is hard for me not to think of a full IDE like creature when
    thinking of the jsfiddle tool.<br>
    <br>
    Perhaps I'm failing to see exactly the point or the inteded "Use
    Case".<br>
    <br>
    On my side, as a self-taught-as-a-child programmer, I appreciate
    abstraction layers very much because they allow me to think of the
    actual thing I want to implement.<br>
    <br>
    What I do not appreciate is boilerplate code.<br>
    <br>
    To really understand Hello World activity, you must understand some
    basic concepts of Object Orientation, the notion of what is GTK,
    event-driven programming, etc.<br>
    <br>
    Even Hello Web carries a lot of boilerplate with it.<br>
    <br>
    In my humble opinion it's not so bad when the boilerplate code is
    not seen (i.e. part of the toolchain, or at least, in a template).<br>
    <br>
    Perhaps we've exhausted the discussion and it will come to a matter
    of the design chosen by the implementors for its first iteration.<br>
    <br>
    Perhaps it's a good time to remember our core design ideas:
    Simplicity, Collaboration, Reflection, and try to apply them to this
    design.<br>
    <br>
    Sounds like a fun project.<br>
    <br>
    Regards,<br>
    Sebastian<br>
    <br>
    <br>
    <div class="moz-cite-prefix">El 11/03/15 a las 00:34, Richa Sehgal
      escibió:<br>
    </div>
    <blockquote
cite="mid:CAPYWsU9LE7G6GcausU5Y8rVaTk+ZM_-8Ew+CTKi2Mrd7OG2+sA@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hi,<br>
        <br>
        Regarding inclusion of libraries such as Jquery, maybe we can
        let students create templates which we can save in their web
        folders. The objective is the following: As Tony mentioned,
        providing them with templates might not make them learn the
        basics, but essential parts of programming. For example, in my
        initial days of coding, I used Eclipse which started a new file
        in a nice template. During my first exam, I realized that I have
        forgotten the signature of the function main (the arguments type
        and number of arguments). Since then, for any new language that
        I pick up, I start from scratch. So what we can do is that
        students can create templates for shortcuts, but at least they
        would have some hands-on experience. This can then serve like
        what Sebastian mentions.<br>
        <br>
        As for the performance, after we develop the tool, we can do a
        performance benchmark and publish the numbers for different
        libraries, and CSS functionalities. These numbers can also be
        used by other developers as the basis for their algorithms, and
        we can see how to improve on them and also study how they change
        as XO and Sugar evolves.<br>
        <br>
        Thanks<br>
        Richa</div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Tue, Mar 10, 2015 at 5:05 PM, Tony
          Anderson <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:tony_anderson@usa.net" target="_blank">tony_anderson@usa.net</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,
            Sebastian<br>
            <br>
            I am using Zim Desktop Wiki to reformat the book into
            digestible lessons (actually done). This makes it all html.
            My plan is to put this on the school server so that a<br>
            student can download a chapter to view locally while working
            on it. I added a button to the Browse toolbar that displays
            a Journal object chooser and then displays the selected
            Journal object  - a zip file which contains the web site in
            a compressed folder.<br>
            <br>
            I also provide a prerequisite course introducting the
            Terminal Activity and the nano editor. The model is that
            students would have a directory in /home/olpc/Documents
            named web. This directory would be used to hold thier web
            pages. At some point when they learn about links, they can
            set up a main page with links to the others. All<br>
            of this is accessible from the Browse activity by
            <a class="moz-txt-link-freetext" href="file:///home/olpc/Documents/web/index.html">file:///home/olpc/Documents/web/index.html</a>.<br>
            <br>
            The student should learn to add jquery by reference in the
            head of their web page. The actual js files can be
            downloaded from the school server (or installed with Sugar
            by usb stick). One problem with ide approaches is that it
            hides some of what we are trying to have the students learn.
            For example, I seriously considered using pippy to teach
            Python, but concluded that it would hide how to save Python
            programs, how to make them executable, and how to share
            them. In a course on making Sugar Activities, pippy can
            actually export the python code in a Sugar Activity wrapper,
            but what does the student learn about the construction of a
            Sugar Activity from that? I would rather they begin with the
            HelloWorld Activity.<br>
            <br>
            I have used a localhost for years with no problem. Since
            switching from Firefox to Webkit, I haven't been using it
            but primarily because I haven't tried to implement the
            features that required it. I am not sure it will be relevant
            at the intial web level. In any case, jquery did not cause
            any performance problems on an XO1.<br>
            <br>
            As regards Webkit, my concern is that in the Browse Activity
            it does not seem to support flexible boxes, the modern way
            to do web layout, and in many ways the key to reponsive web
            design.<span class="HOEnZb"><font color="#888888"><br>
                <br>
                Tony</font></span>
            <div>
              <div class="h5"><br>
                <br>
                On 03/10/2015 10:11 PM, Sebastian Silva wrote:<br>
              </div>
            </div>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div>
                <div class="h5">
                  El 10/03/15 a las 04:58, Tony Anderson escibió:<br>
                  <blockquote class="gmail_quote" style="margin:0 0 0
                    .8ex;border-left:1px #ccc solid;padding-left:1ex">
                    I am working on a course based on Pocket HTML<br>
                    (<a moz-do-not-send="true"
                      href="http://www.goer.org/HTML/" target="_blank">http://www.goer.org/HTML/</a>)
                    which is available via CC. At the<br>
                    javascript level, I think Eloquent Javascript would
                    be a good base and<br>
                    is also CC.<br>
                  </blockquote>
                  Hi Tony,<br>
                  <br>
                  This is wonderful. I have had my eye on that tutorial
                  ever since I<br>
                  started to think about Web activities a long time ago.<br>
                  <br>
                  My first attempt at a Web Activity was called WebSDK
                  and was an IDE for<br>
                  doing web apps [1].<br>
                  Those were old-style web apps, the ones that had a
                  Python mini-server<br>
                  running in the background.<br>
                  I still consider this a good approach to access Python
                  infrastructure<br>
                  from Javascript, but I'm not sure how (or if) the new
                  Web API<br>
                  infrastructure has replaced this mechanism.<br>
                  <br>
                  I think, in any case, for a GSOC student working on
                  dev tools for JS on<br>
                  Sugar, should consider the entire IDE scenario, not
                  just the "fiddle"<br>
                  part. I.e. it should be possible to deploy a mini app
                  (or content!) from<br>
                  this activity.<br>
                  <br>
                  About embedding JQuery and other libraries, I would
                  favor a "Wizard"<br>
                  approach. I.E. a form that will allow you to have a
                  basic project from a<br>
                  template (w/ or without optional toys such as Jquery).
                  I like the<br>
                  hand-holding approach especially since low performance
                  machines can't do<br>
                  multi-tasking very well (so looking up docs is not
                  easy). Therefore a<br>
                  version of the JS tutorial that Tony referenced would
                  be great to have<br>
                  embedded,  IMHO, or included somehow. (Tony do you
                  have an offline copy?)<br>
                  <br>
                  In order to avoid slow pages on older machines,
                  including XO, it should<br>
                  be super lightweight, i.e. utilizing as little CSS3,
                  transformations,<br>
                  transparency, SVG rendering, and animation as
                  possible. At least a<br>
                  couple of templates should be able to run on the XO1
                  without issues.<br>
                  Hopefully some profiling feedback would be shown
                  inline during<br>
                  development (such as at least load time for the
                  "fiddle").<br>
                  <br>
                  Also, there are wrappers for web activities for
                  versions of Sugar that<br>
                  don't include the Web Activities framework. Maybe
                  include those as<br>
                  options in the templates. Finally, a good editor goes
                  a long way for a<br>
                  good development environment (I used Ace editor
                  component and it ran<br>
                  well on XO1, back in the day).<br>
                  <br>
                  The way I think of this is that you should be able to
                  develop something<br>
                  relatively basic without resorting to the Internet
                  either for sensible<br>
                  libraries or their respective documentation. If done
                  really well,<br>
                  perhaps we could even offer an alternative to Pippy
                  and Develop?<br>
                  <br>
                  Finally, I don't think the Webkit or even old Firefox
                  rendering engine<br>
                  are a severe limitation. It's not worse than
                  targetting Internet<br>
                  Explorer 6 and most web developers had to do that only
                  a couple of years<br>
                  ago. I suggest you download Firefox 3.6 (from like 10
                  years ago) as that<br>
                  is the rendering engine found on Sugar 0.94 and limit
                  yourself by what<br>
                  it can do. I havben't looked for a reference browser
                  for the Webkit1<br>
                  engines, except Browse itself. It would be good to
                  find out what our<br>
                  current engine equivalent is and document it (along
                  with more<br>
                  contributions) to <a moz-do-not-send="true"
                    href="http://developer.sugarlabs.org/"
                    target="_blank">http://developer.sugarlabs.org/</a><br>
                  <br>
                  Regards and good luck.<br>
                  <br>
                  [1] <a moz-do-not-send="true"
                    href="http://somosazucar.org/files/2011/07/WebSDK1.png"
                    target="_blank">http://somosazucar.org/files/2011/07/WebSDK1.png</a><br>
                         <a moz-do-not-send="true"
                    href="http://somosazucar.org/files/2011/07/WebSDK2.png"
                    target="_blank">http://somosazucar.org/files/2011/07/WebSDK2.png</a><br>
                </div>
              </div>
              .<br>
              <br>
            </blockquote>
            <br>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </body>
</html>