<div dir="ltr">Hi James,<br><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, May 22, 2014 at 9:44 AM, James Cameron <span dir="ltr"><<a href="mailto:quozl@laptop.org" target="_blank">quozl@laptop.org</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=""><br>
> On May 21, 2014 9:58 PM, "Sam Parkinson" <<a href="mailto:sam.parkinson3@gmail.com">sam.parkinson3@gmail.com</a>> wrote:<br>
</div><div class="">> > On Wed, May 21, 2014 at 8:20 AM, James Cameron <<a href="mailto:quozl@laptop.org">quozl@laptop.org</a>> wrote:<br>
</div><div class="">> >> What's the Flash element for?<br>
> > Sorry, I'm not exactly sure what the Flash element is.<br>
<br>
</div>Nor I.  I'm using Firefox, configured to ask before running Flash, and<br>
it asks, so that means the page is trying to run something.<br></blockquote><div><br></div><div>Oops, I accidentally included SocketIO. I have removed it.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br>
But in a quick search I wasn't able to find what Flash is actually<br>
being run.  Maybe it is something in <a href="http://persona.org" target="_blank">persona.org</a>.  Do you really need<br>
to uyse <a href="http://persona.org" target="_blank">persona.org</a>?<br></blockquote><div><br></div><div>I think persona is a good login system for users since there is no confirm your email stuff.<br></div><div>For me, it provides valid email addresses, which is VERY useful.<br>

</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
While looking for the cause, I assessed the network load for your<br>
prototype:<br>
<br>
- with an empty cache, a total of 23 GET requests to 10 different<br>
  servers, for a total of 491 KB of data,<br>
<br>
- with a primed cache, a total of 11 GET requests to 10 different<br>
  servers, for a total of 65 KB of data,<br></blockquote><div><br></div><div>It could be worse :)<br><br></div><div>I managed to remove 1 :)<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br>
- the slowest response of 1550 ms was from<br>
  <a href="http://aslo-bot-master.sugarlabs.org" target="_blank">aslo-bot-master.sugarlabs.org</a>, and this large response time<br>
  persisted on repeated refreshes.<br></blockquote><div><br></div><div>Oh, that always hit the filesystem. I added a cache now.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br>
Comparing to <a href="http://activities.sugarlabs.org" target="_blank">activities.sugarlabs.org</a> which, at the moment, has more<br>
features:<br>
<br>
- with an empty cache, a total of 40 requests to just one server, for<br>
  a total of 381 KB of data,<br>
<br>
Because the requests were to just one server, the original ASLO loads<br>
much much faster.<br></blockquote><div><br></div><div>But can't the browser only do 2 requests to one server at once? Where as it can do async to many servers?<br><br></div><div>Also it is a common standard today (I think) to use a cdn version of your scripts.<br>

</div><div>This means for very common scripts (eg. jquery) it will just hit the browser cache.<br>Also cdns are just faster that 1 web server.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br>
By splitting the requests among multiple servers as you have done:<br>
<br>
- the browser can't queue multiple GETs in the same HTTP connection,\<br></blockquote><div><br></div><div>Really?<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br>
- the browser must negotiate several new HTTP connections, each with a<br>
  round trip delay,<br></blockquote><div><br></div><div>What I could do is combined all the js into 1 file (and same for css).<br></div><div>BUT, I'm not sure if just using the cdn version would be better; cdns are very fast (and most of the scripts are served through cloudflare which has edge cache servers in South America and Australia as well as the usual US + Europe + Asia. This is good because it is close to sugar users).<br>

</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
- the web site depends on multiple servers, so the mean time between<br>
  failure (MTBF) is dramatically reduced.  See [1].<br></blockquote><div><br></div><div>Well, I think that splitting the servers is actually better.<br></div><div>Some things are served by reliable cdns (good).<br></div>

<div>But separating the non-essential bits (comments, recommendations) means that crashes there will not effect the essential bits (data.json or <a href="http://aslo-bot-master.sugarlabs.org">aslo-bot-master.sugarlabs.org</a>)<br>

</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
This is even more important for XO laptops, because they are usually<br>
connected over wireless, with varying network latency.<br></blockquote><div><br></div><div>Ok that is an issue. I could combine files (and put the on cloudflare cdn, I think they have a free plan).<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br>
You might work to place all the resources you use on one server, and<br>
find out why 12 KB of data.json from <a href="http://aslo-bot-master.sugarlabs.org" target="_blank">aslo-bot-master.sugarlabs.org</a><br>
takes such a surprising time to load.<br></blockquote><div><br></div><div>LOL. I added cache :) Maybe I should try to cdn just that file as it is the entire data set for aslo.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br>
Hope this helps.<br></blockquote><div><br></div><div>Thanks :)<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
[1]  if server A has an MTBF of one day, and server B has an MTBF of<br>
one day, the combined MTBF is half a day.  Without knowing the MTBF of<br>
each server, you can guess at a failure once a day or once a week, and<br>
so for 10 servers the MTBF will range from once every tenth of a day<br>
to once every tenth of a week.<br>
<div class=""><br>
> >> When I click on "Review the activity" nothing happens except a<br>
> >> text cursor appears.<br>
> ><br>
> > Ah, that is a textbox, I changed that to "Type your review..."<br>
<br>
</div>Interesting.  That's not what a textbox normally looks like, and it<br>
isn't clear where the review should be typed.  For instance, if you<br>
just start typing, nothing happens, you have to first click in the<br>
"Type your review" area.  So you can't obey the instructions.<br>
<br>
Normally a textbox is empty, and is identified as a place you can<br>
type, and a separate element is used to give the purpose of the<br>
textbox.<br></blockquote><div><br></div><div>I might think a bit more about this.<br>I like the seamless look personally, but I will try to make the textbox more obvious.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br>
The same can be said of the Search... textbox.<br></blockquote><div><br></div><div>It looks very obvious on sugar :) Have a look.<br></div><div>I will make it look more obvious on other stuff too.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div class=""><br>
> >> The "Download" and "Post" buttons could be made into icons.<br>
> ><br>
> > I made some changes, what do you think?<br>
<br>
</div>I see you added icons to the text.  Perhaps I should have been<br>
clearer; the text needs to be in several languages, but an icon<br>
doesn't need to be.  That's one of the reasons icons are used.<br></blockquote><div><br></div><div>Icons are also not the most obvious, so putting translatable text there means either:<br></div><div>1) More obvious if the text is in the users language<br>

</div><div>2) Still a bit obvious because there is the icon<br><br></div><div>That's just my view, also I think the icon makes the button too small.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div class=""><br>
> >> The icons could do with mouse-over hints in the current language.<br>
> ><br>
> > Did that for the review types just then :) Any others that need it<br>
> > :)<br>
<br>
</div>All of them, of course.  How else will people know what they will do?<br></blockquote><div><br></div><div>Cool, will do :)<br><br></div><div>Thanks,<br></div><div>Sam</div></div><br></div></div></div>