<div dir="ltr">On Tue, Dec 27, 2016 at 11:28 AM, Adam Holt <span dir="ltr"><<a href="mailto:holt@laptop.org" target="_blank">holt@laptop.org</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><span class="m_1194391544575810164gmail-m_-2027632025394350354gmail-">On Tue, Dec 27, 2016 at 11:18 AM, Tony Anderson <span dir="ltr"><<a href="mailto:tony_anderson@usa.net" target="_blank">tony_anderson@usa.net</a>></span> wrote: </span><div class="gmail_extra"><div class="gmail_quote"><span class="m_1194391544575810164gmail-m_-2027632025394350354gmail-"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div bgcolor="#FFFFFF">measure the parameters of the video stream produced
by the XO-1 after conversion to ogg. Any XO should be able to
sustain that level. <br>
<br>
One current browser practice is to stream media where the browser is
capable. This is not suitable for an XO. The media should be
downloaded and played locally. One of the customizations is to patch
the Browse activity to automatically download mp3 (unless a short
Talk English clip), mp4, pdf, epub, and txt files. <br>
In the case of the book formats, a user is not going to be able to
read it while online. This patch is simple and effective.<br></div></blockquote></span><div bgcolor="#FFFFFF"> <span class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-HOEnZb"></span><div><div class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-h5">Great suggestions, thanks Tony. I'll add these to <a href="http://wiki.laptop.org/go/Browser_improvements" target="_blank">http://wiki.laptop.org/go/Brow<wbr>ser_improvements</a> along with your general recommendation to avoid HD video (and broadband glitz in general...)<br></div></div></div></div></div></div></blockquote><div><br></div><div>Many thanks to Tony Anderson for the following code that provides a way for kids (who need to read/review materials after walking away school servers) to store such large downloaded media & ebooks on their XO's, by default:<br><br><br><span class="m_1194391544575810164gmail-gI">from: </span><span class="m_1194391544575810164gmail-gI"><span name="Tony Anderson" class="m_1194391544575810164gmail-gD">Tony Anderson</span> <span class="m_1194391544575810164gmail-go"><span><</span><a href="mailto:tony_anderson@usa.net" target="_blank">tony_anderson@usa.net</a><span>><br></span></span></span><span class="m_1194391544575810164gmail-gI"></span><span class="m_1194391544575810164gmail-gI">date:</span><span class="m_1194391544575810164gmail-gI"> Wed, Dec 28, 2016 at 10:48 AM</span><br><br>One of the features of the Sugar Browse activity is the use of
webkit. This provides an easy way to incorporate the browser in
Sugar python activities such as markdown.<br>
<br>
The control of downloads in Browse is in browser.py where I modified
this procedure:<br>
<br>
def __mime_type_policy_cb(self, webview, frame, request, mimetype,<br>
policy_decision):<br>
"""Handle downloads and PDF files."""<br>
print 'mimetype is', mimetype<br>
print 'uri is', request.get_uri()<br>
<br>
if mimetype == 'application/pdf':<br>
#uri = request.get_uri()<br>
#print 'uri', uri<br>
#self.emit('open-pdf', request.get_uri())<br>
#policy_decision.ignore()<br>
policy_decision.download()<br>
return True<br>
<br>
elif mimetype in
['audio/mpeg','video/webm','au<wbr>dio/x-m4a','video/mp4','audio/<wbr>mp4']:<br>
print 'audio', request.get_uri()<br>
if 'ShortAudio' in request.get_uri():<br>
#cmd = '/home/olpc/Documents/gsttest/<wbr>playmp3
'+request.get_uri()<br>
cmd = "gst-launch-0.10 playbin2
uri="+request.get_uri()<br>
print 'cmd', cmd<br>
call(cmd,shell=True)<br>
policy_decision.ignore()<br>
return True<br>
policy_decision.download()<br>
return True<br>
<br>
elif mimetype == 'text/plain':<br>
if 'rachel' in request.get_uri():<br>
policy_decision.download()<br>
return True<br>
<br>
elif mimetype == 'application/epub+zip':<br>
print 'download epub', request.get_uri()<br>
policy_decision.download()<br>
return True<br>
<br>
elif not self.can_show_mime_type(mimety<wbr>pe):<br>
policy_decision.download()<br>
return True<br>
<br>
return False<br>
<br>
Note: the test for 'ShortAudio' refers to TalkEnglish which puts its
short mp3s in this folder. These can be streamed.<br>
<br>
The following code in downloadmanager.py launches Jukebox for the
downloaded file with these mime_types (appears after test for Sugar
activity). <br>
<br>
if sniffed_mime_type in
['audio/mpeg','video/webm','au<wbr>dio/x-m4a','video/mp4','audio/<wbr>mp4']:<br>
cmd = 'sugar-launch -o ' + str(self.dl_jobject) +
'Jukebox.activity'<br>
call(cmd, shell=True)<br>
<br>
These changes were made in Browse-147 but should be the same for the
current version (157.3).<br><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div bgcolor="#FFFFFF"><div><div class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-h5"></div><div><div class="m_1194391544575810164gmail-m_-2027632025394350354gmail-h5"><div class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-h5">
On 12/27/2016 03:52 PM, Adam Holt
wrote:<br>
<blockquote type="cite">
<div dir="ltr">Thanks Terry Gillett for accentuating this central
point that I'd failed to highlight -- now added to <a class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588moz-txt-link-freetext" href="http://wiki.laptop.org/go/Browser_improvements" target="_blank">http://wiki.laptop.org/go/Brow<wbr>ser_improvements</a>
:<br>
<br>
<div style="margin-left:40px">"<i>Perhaps Most Important: can we
communicate concisely/explicitly best browser & video
"what works" guidelines, so that hard-working free content
aggregators/publishers (many of whom volunteers) understand
their tight packaging requirements across old Androids, old
XO's, etc? Hence greatly enhancing the XO's practical
purposes during its remaining years~"</i></div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Sat, Dec 24, 2016 at 10:47 AM, Adam
Holt <span dir="ltr"><<a href="mailto:holt@laptop.org" target="_blank">holt@laptop.org</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div>
<div>Thanks Tony for your voluminous and very thoughtful
experiences below!<br>
<br>
</div>
I'm pretty swamped with holiday prep over the coming 48
hours, but is there a good time I can call you in the
coming 7-10 days?<br>
<br>
</div>
I don't want to miss (or misrepresent) anybody's
hard-fought "fieldback" / usability testing lessons,
recommendations & opinions @ <a class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588moz-txt-link-freetext" href="http://wiki.laptop.org/go/" target="_blank">http://wiki.laptop.org/go/</a>Brow<wbr>ser_improvements<br>
<br>
<div>
<div>
<div>
<div class="gmail_extra"><br>
<div class="gmail_quote">
<div>
<div class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588h5">On Sat, Dec 24, 2016 at 2:04
AM, Tony Anderson <span dir="ltr"><<a class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588moz-txt-link-abbreviated" href="mailto:tony_anderson@usa.net" target="_blank">tony_anderson@usa.net</a>></span>
wrote:<br>
</div>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<div>
<div class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588h5"> Hi, Adam<br>
<br>
I hope the scope of this discussion is
Sugar, not just the Browse activity.<br>
<br>
First, the performance of the various
models of the XO has not changed and
will never change.<br>
<br>
Second, the last major change to the
Browse activity was the move from
Hulahop to Webkit. My guess is that the
problems reported have nothing to do
with Browse (or Firefox or ....). I
suspect that the problems have to do
with the burden on the server and the
network. <br>
<br>
Three, solving performance problems
depends on measurement, not speculation.
Through its history, Sugar developers
(XO and XS) have <br>
not measured anything in the real
environment (a classroom of 40 XOs
collaborating or using a server). While
XSCE incorporates Munin, I have <br>
not seen any reports of the Munin
measurements of an XSCE server in a
classroom of XOs. At the Malaysia summit
it took about 30 mins to establish by
actual use that an access point was
limited to 15 connections.<br>
<br>
Four, in my experience when there is a
hiccup on an XO, the problem needs
investigation. The Log activity is
frequently a good tool. Since Sugar and
its activities are written in Python and
the source code is immediately
available, it is possible to add print
statements as needed to determine where
the problem is. Python includes a simple
means to measure time elapsed between
two points in code to find badly written
loops, etc.<br>
<br>
Over the years, I have developed a
'customize' script to add needed
features to Sugar. I view this as
comparable to what a person installing
Fedora or Ubuntu does to configure the
system for their use. While Sugar
developers seem to consider such changes
as blasphemy, the standard distributions
encourage this.<br>
The Sugar developers have implemented
the third different configuration
utility: gsettings replacing GConf and
the configure file Howeve, in line with
their religion, the developers retain
control by providing the user with
access only to selected settings made
visible through 'mysettngs'.<br>
<br>
The XOs in Rwanda are locked so these
changes must be made post-install, so
the devlopers suggestions to make a
Sugar build locally is irrelevant.<br>
<br>
The xo-custom script is executed after
the XO is flashed by:<br>
<br>
cd /run/media/olpc/xo1<br>
bash xo-custom<br>
<br>
where the usb stick label identifies the
target XO model, in this case the XO-1.
There are five models: XO-1, XO-1.5,
XO-1.75, XO-4, XO-1SD.<br>
A current project is to create a single
stick that can be used with any model.
This project also intends to provide a
Sugar activity custom-1.xo. <br>
The goal is that the user can flash any
model from the same stick and then can
install the custom script by:<br>
<br>
cd /run/media/olpc/xomaster<br>
sugar-install-bundle custom-1.xo<br>
<br>
This has the advantage that the
customization script can be run by
launching the custom activity (and
erasing it upon completion). Meanwhile
the stick can be used to flash another
XO. In a classroom with mixed models,
the same stick can be used.<br>
<br>
The customize script currently does the
following:<br>
<br>
1. Install miscellaneous modules; zip,
path.py, pexpect, ftp. Probably only
pexpect is needed since path.py can be
included in the activies that use it.
Sugar now inlcudes zip. For sending
files to the server, scp is used instead
of ftp. <br>
<br>
2. Remove ~/.ssh/known_hosts to prevent
problems in registering the server. <br>
<br>
3. Customize Sugar<br>
a. Change corner detection in frame
to 0 (never). The goal is to require the
frame to be opened by the frame key and
not by cursor position.<br>
b. Implement a default where
activities launched from the Home View
start new. Resuming activities can only
be done from the Journal.<br>
c. Change activity.py in
/usr/lib/python2.7/site-packag<wbr>es/sugar/activity/
and in /usr/lib/python2.7/site-packag<wbr>es/sugar3/activity
to correct an error <br>
in the Journal where a resumed
activity can not be saved under a new
name without losing the original. The
modified version with 0.110 will also <br>
provide Utkarsh Tiwari's code to
provide a requirement that user's give
saved files a name (comparable to
changing 'untitled' in Office). This
change<br>
was not implemented in 0.110
because of quirky reasoning by the Sugar
developers. It also will provide similar
ability to give a screen shot a name
<br>
without having to switch to
the Journal.<br>
<br>
4. Update sugar-launch and
sugar-install-bundle. These changes were
needed because of problems which
probably now have been fixed. <br>
<br>
5. Update SimpleHTTPServer.py to add
some needed mime_types such as mp3, mp4,
and so on.<br>
<br>
6. Provide custom index.html in
/home/olpc/.library_pages. The standard
screen is nearly useless for an XO not
connected to the internet. The <br>
custom screen identifies the school
or institution at the top and provides
direct links to the school server (This
may the intent of the 'captive portal'
in xsce).<br>
I suspect many users are not aware
that the opening page in browse is <a class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588moz-txt-link-freetext">file:///home/olpc/library_page</a><wbr>s/index.html).<br>
<br>
7. Add and remove Sugar activities to
achieve a standard set. It is very
difficult for teachers to deal with an
assignment to use a specific activity
such as <br>
Memorize only to find it is not
installed on one or more XOs in the
class.<br>
Currently, the script
replaces Browse (installing a version
with the jsfiddle feature and causing
certain mime_types to be downloaded and
not displayed<br>
online( The current fashion
in browsers is for the browser to
attempt to display any mime_type it
knows - this is not helpful for XOs
where the object <br>
needs to be displayed away
from the server. I can't imagine a
school where students are given class
time to read War and Peace). So, for
example, <br>
pdfs, txt, mp3 (with one
exception), mp4, epub, webm files are
downloaded to the Journal for offline
access by Read or the Jukebox. Recent
versions of<br>
Sugar have included
documents in the Home View along with
Sugar activities. Another example of the
quirky thinking of the developers.
First, the<br>
library_page already
includes documents stored locally.
However, documents in the Home View and
in Browse require space on local storage
even<br>
though only a few users may
ever need access to them. With a
schoolserver, these documents can be
located there and downloaded to the
Journal as needed. The
script will be modified so that a
deployment can decide which of these to
keep and which to omit. The script adds
the Quiz activity, and <br>
replaces the Jukebox
activity. The Jukebox activity is
retro-fitted version 26, the last
version that supported gstreamer 0.1.
The scripts enabling playing
of mp3, mp4, etc. work only with 0.1 due
to undocumented changes in the design of
1.0. Supposedly deprecation means that
the new version<br>
provides all of the
capabilities of the original and is
better. Clearly this is in the eye of
the beholder.<br>
<br>
8. Install needed Gnome programs as
Sugar activities.<br>
Currently the script installs
Gcompris which includes installing
GCompris as a gnome application and then
installing gcompris-7.xo. It also
intstalls the Zim<br>
Desktop Wiki. The install takes
two steps, install Zim as a gnome
application and then install the
zim-7.xo Sugar activity.<br>
<br>
9. Install flash support.<br>
<br>
10. Install media support for mp3, mp4,
webm, and m4a. <br>
<br>
11. Install Libre Office as a gnome
application (only on XOs with at least
4GB storage). <br>
<span class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588m_1122877469897946759gmail-HOEnZb"><font color="#888888"> <br>
Tony</font></span></div>
</div>
<div>
<div class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588m_1122877469897946759gmail-h5">
<div>
<div class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588h5"><br>
<br>
<br>
<br>
<br>
<div class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588m_1122877469897946759gmail-m_7477070779228519786moz-cite-prefix">On
12/23/2016 10:19 PM, Adam Holt
wrote:<br>
</div>
</div>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>
<div class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588h5">On Fri, Dec 23,
2016 at 3:09 PM, George Hunt <span dir="ltr"><<a class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588moz-txt-link-abbreviated" href="mailto:georgejhunt@gmail.com" target="_blank">georgejhunt@gmail.com</a>></span>
wrote:<br>
</div>
</div>
<div class="gmail_extra">
<div class="gmail_quote">
<div>
<div class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588h5">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">pursuant to
our discussion this
morning, chrome on older
32 bit machines running
linux will not be
supported after March
2017.
<div><br>
</div>
<div><a class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588moz-txt-link-freetext" href="http://www.pcworld.com/article" target="_blank">http://www.pcworld.com/article</a><wbr>/3010404/browsers/googles-kill<wbr>ing-chrome-support-for-32-bit-<wbr>linux-ubuntu-1204-and-debian-7<wbr>.html<br>
</div>
</div>
</blockquote>
<div> <br>
</div>
<div>Fascinating if
unfortunate that Google
wants old hardware to just
magically disappear, among
the global poor.<br>
</div>
<div><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 dir="ltr">
<div>another vote for
firefox</div>
</div>
</blockquote>
<div> <br>
</div>
<div>Noted.<br>
<br>
</div>
</div>
</div>
<div>
<div>
<div class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588h5">I will
continue to write up the
best suggestions from all
@ <a class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588moz-txt-link-freetext" href="http://wiki.laptop.org/go/Brow" target="_blank">http://wiki.laptop.org/go/Brow</a><wbr>ser_improvements
(please write your
suggestions directly there
as well, if you so
choose!)<br clear="all">
<br>
</div>
</div>
<span class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588HOEnZb"><font color="#888888">-- <br>
<div class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588m_1122877469897946759gmail_signature">
<div dir="ltr">Unsung
Heroes of OLPC,
interviewed live @ <a class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588moz-txt-link-freetext" href="http://unleashkids.org" target="_blank">http://unleashkids.org</a>
!<br clear="all">
<br>
-- <br>
<div class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588gmail_signature">
<div dir="ltr">Unsung
Heroes of OLPC,
interviewed live @
<a class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail-m_-785160960928477588moz-txt-link-freetext" href="http://unleashkids.org" target="_blank">http://unleashkids.org</a>
!</div>
</div>
</div>
</div>
</font></span></div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</div></div></div></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
</blockquote></div><div><div class="m_1194391544575810164gmail-m_-2027632025394350354gmail-h5"><br><br clear="all"><br>-- <br><div class="m_1194391544575810164gmail-m_-2027632025394350354gmail-m_-1119634598807023968gmail_signature"><div dir="ltr">Unsung Heroes of OLPC, interviewed live @ <a href="http://unleashkids.org" target="_blank">http://unleashkids.org</a> !<br clear="all"><br>-- <br><div class="m_1194391544575810164gmail-m_-2027632025394350354gmail_signature"><div dir="ltr">Unsung Heroes of OLPC, interviewed live @ <a href="http://unleashkids.org" target="_blank">http://unleashkids.org</a> !</div></div>
</div></div>
</div></div></div></div></blockquote></div></div></div>