<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <br>
    <br>
    <div class="moz-cite-prefix">On 9/22/21 2:43 AM, Vanessa Freudenberg
      via Cuis-dev wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAOWGXNDJo1FpRv1T0+k+0Gr1W2YLmGK_mzG0NacGiR4EhXanmg@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr"><br>
        </div>
        <br>
        <div class="gmail_quote">
          <div dir="ltr" class="gmail_attr">On Sun, Sep 19, 2021 at
            10:58 AM Nicola Mingotti <<a
              href="mailto:nmingotti@gmail.com" moz-do-not-send="true">nmingotti@gmail.com</a>>
            wrote:<br>
          </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">
            <div> <br>
              <font size="+1"><font face="monospace">Hi Juan, guys,<br>
                  <br>
                  I think I made a large step forward this weekend on
                  "CuisJS" :)<br>
                  <br>
                  Please follow the instructions here:<br>
                  <a
href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/wiki/Run-Cuis-in-the-Web-Browser.-(SqueakJS)"
                    target="_blank" moz-do-not-send="true">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/wiki/Run-Cuis-in-the-Web-Browser.-(SqueakJS)</a><br>
                  <br>
                  Now there remains only to make the auto-update to make
                  CuisJS reflect the <br>
                  changes in Cuis-Smalltalk-Dev.<br>
                  <br>
                  let me know !<br>
                  <br>
                  Bye<br>
                  Nicola</font></font></div>
          </blockquote>
          <div><br>
          </div>
          <div>Very nice! I'm impressed 😊</div>
          <div><br>
          </div>
          <div>Older versions of Cuis used to run much faster on
            SqueakJS – guess the changes in the last few years added a
            bit of overhead that isn't noticeable on fast VMs.</div>
          <div><br>
          </div>
          <div>As for long download times: SqueakJS supports a "virtual"
            template file system backed by a directory structure
            accessed via http. It's used for example in EtoysJS and
            ScratchJS.</div>
          <div><br>
          </div>
          <div>Here's a screenshot showing these virtual files inside of
            Etoys. Notice that only the image and compressed sources
            have today's time stamp. These are the only files that were
            actually downloaded, all other files just have virtual meta
            data:</div>
          <div><br>
          </div>
          <div>--- cut image ---<br>
          </div>
          <div><br>
          </div>
          <div>Only after I click a few of the files are they
            actually downloaded and from then on live locally:</div>
          <div><br>
          </div>
          <div>-- cut image ---<br>
          </div>
          <div><br>
          </div>
          <div>If that's interesting to you I can tell you how to do it.
            I don't think I ever documented that part 😅</div>
          <div><br>
          </div>
          <div>Basically it just looks up "sqindex.json" in a directory.
            E.g. this one is backed by:</div>
          <div><br>
          </div>
          <div><a
              href="https://freudenbergs.de/vanessa/squeakjs/Etoys/sqindex.json"
              moz-do-not-send="true">https://freudenbergs.de/vanessa/squeakjs/Etoys/sqindex.json</a><br>
          </div>
          <div><br>
          </div>
          <div>To create sqindex.json files for a whole directory
            hierarchy use this script:</div>
          <div><br>
          </div>
          <div><a
              href="https://github.com/codefrau/SqueakJS/blob/main/utils/mksqindex.py"
              moz-do-not-send="true">https://github.com/codefrau/SqueakJS/blob/main/utils/mksqindex.py</a><br>
          </div>
          <div><br>
          </div>
          <div>and then when running the VM pass a "templates" option as
            in </div>
          <div><br>
          </div>
          <div><a
              href="https://github.com/codefrau/SqueakJS/blob/main/etoys/etoys.js#L38"
              moz-do-not-send="true">https://github.com/codefrau/SqueakJS/blob/main/etoys/etoys.js#L38</a><br>
          </div>
          <div><br>
          </div>
          <div>Vanessa</div>
          <div><br>
          </div>
          <div> </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
    </blockquote>
    <br>
    <br>
    Hi Vanessa, <br>
    <br>
    Thank you for your nice words :)<br>
    <br>
    The way you dynamically get files is extremely interesting but,
    there is catch,<br>
    for the moment I prefer to serve a few medium sized files than a lot
    of little ones.<br>
    The server is very little and I use it to do a lot of stuff.<br>
    <br>
    I will keep this option in my mind, in due moment I will ask you
    more detail.<br>
    <br>
    It would be expecially important for the directory "CoreUpdates"
    where there <br>
    are a LOT of files and usually only the last of them are useful (to
    me).<br>
    <br>
    In my opinion running a Smalltalk in the Web has huge potential, at
    least<br>
    for business intralan web applications where dev. time is important
    and<br>
    fading pictures and other eye catcher are not so relevant. <br>
    <br>
    <br>
    bye<br>
    Nicola<br>
    <br>
    <br>
  </body>
</html>