<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Agreed. I copy the repository from some-activity-master to
some.activity in /home/olpc/Activities on an XO. It then runs in
Sugar as an activity. <br>
<br>
I assume setup.py is the standard way to make a bundle and includes
various checks. At present it checks that the repository is git
enabled apparently to replace the need for a manifest. This could be
a good place to put other checks, e.g. a complete activity,info.<br>
<br>
Tony<br>
<br>
<div class="moz-cite-prefix">On 04/21/2017 08:10 AM, Walter Bender
wrote:<br>
</div>
<blockquote
cite="mid:CADf7C8t6H+a7McbZnH6ed044+8WRBvx8dFRWC2LYhU8xV3_TGQ@mail.gmail.com"
type="cite">
<div dir="ltr"><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Apr 20, 2017 at 8:07 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">
<div text="#000000" bgcolor="#FFFFFF"> Hi Walter,<br>
<br>
The git repo is not an xo bundle. The bundle needs to be
built by setup.py. Attempts to run the repo return an
error: activity directory name must end in activity.<br>
</div>
</blockquote>
<div><br>
</div>
<div>You can name the git repo anything you want when you
clone... I do it all the time to save the trouble of
making the bundle each time when debugging. What am I
missing? </div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF"> <br>
Apparently developers have permission to add an xo
bundle, but do not have permission to update ASLO so
that it <br>
shows that bundle.<br>
<br>
Tony<br>
<br>
<div class="m_2017803824253690631moz-cite-prefix">On
04/21/2017 07:42 AM, Walter Bender wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr"><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Apr 20, 2017 at
7:35 PM, Tony Anderson <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:tony_anderson@usa.net"
target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:tony_anderson@usa.net">tony_anderson@usa.net</a></a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0
0 0 .8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF"> Hi,
Walter<br>
<br>
It is wonderful to see a discussion on
technical matters concerning Sugar. <br>
<br>
Assuming we plan to handle development and
maintenance of activities through GitHub,
then the 'publishing' of an activity should
be a simple copy of the xo bundle to <a
moz-do-not-send="true"
href="http://download.sugarlabs.org/activities"
target="_blank">download.sugarlabs.org/activit<wbr>ies</a>
and an update so that version is the one
shown by ASLO. The developer hub and its
authentication would no longer be needed.<br>
<br>
For the activities not now in GitHub, as I
understand it, the activity should first be
copied to a personal repository on github
and then <br>
the systems mailing list be notified to make
the transfer. Your steps 2-4 should be done
before the transfer. <br>
<br>
The word tedious applies also to the process
of testing the activities.<br>
<br>
1. Download the activity zip file from
GitHub (made necessary as a download from
ASLO was often not the right version).<br>
2. Use setup.py to generate the xo bundle
(python setup.py dist_xo). <br>
3. Some activities did not have a setup.py
or it failed. In this case cp -r
some-activity-master
/home/tony/Activities/some.act<wbr>ivity </div>
</blockquote>
<div><br>
</div>
<div>Why not just download the git repo directly
into ~/Activities? That should work. </div>
<blockquote class="gmail_quote" style="margin:0
0 0 .8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF"> <br>
4. Run the activity<br>
5. If failed to start, debug with the log<br>
6. If possible fix, and run again<br>
7. Go to GitHub and post issues reporting
the problems<br>
<br>
I suspect this could be automated by a
python script assuming that an activity
which starts successfully is working. Such a
script could 'lint' check the activity and <a
moz-do-not-send="true"
href="http://activity.info"
target="_blank">activity.info</a> to see
that it meets our standards. One problem
will be to arrange tests on four models of
XO plus any other supported platforms
(Ubuntu, RPi, ...). <br>
<br>
Tony<br>
<br>
<br>
<br>
<div
class="m_2017803824253690631m_1093523794728921624moz-cite-prefix">On
04/20/2017 08:22 PM, Walter Bender wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Apr
20, 2017 at 3:45 AM, Tony Anderson <span
dir="ltr"><<a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-abbreviated"
href="mailto:tony_anderson@usa.net" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:tony_anderson@usa.net">tony_anderson@usa.net</a></a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div text="#000000"
bgcolor="#FFFFFF"> Hi, Walter<br>
<br>
I am new to this. I am
registered as a member. However,
it may take an 'owner'. I assume
that the process you describe is
how we expect our users to
submit new activities. However,
this may become a distraction
for someone to keep having to
move activities to Sugarlabs.<br>
</div>
</blockquote>
<div><br>
</div>
<div>It is a one-time effort per
activity to "transfer" it to
sugarlabs.</div>
<div><br>
</div>
<div>What is tedious the process I
am going through right now to just
update the version numbers of an
activity:</div>
<div><br>
</div>
<div>1. clone the activity</div>
<div>2. update the version number</div>
<div>3. update NEWS with all of the
commit info since the last version
update</div>
<div>4. often it is necessary to
update the repo path as it was not
changed when the activity was
transfered</div>
<div>5. make a PR</div>
<div>6, wait for someone to merge
the PR</div>
<div>7. once the PR is merged, pull
the updated repo</div>
<div>8. use setup.py to create new
.xo and .tar bundles</div>
<div><br>
</div>
<div>Here is where things break
down:</div>
<div><br>
</div>
<div>9. use admin privileges on ASLO
to add myself to the activity</div>
<div><br>
</div>
<div>10. upload a new version of the
activity</div>
<div>11. scp the tar file to
downloads</div>
<div><br>
</div>
<div>And here:</div>
<div><br>
</div>
<div>12. add a tag with the new
version number to the repo on
GH/sugarlabs</div>
<div><br>
</div>
<div>Would be great to have some
scripts that do most of 1-8.</div>
<div>Not sure about how to handle 9
properly.</div>
<div>Would be great to automate
10-11.</div>
<div>Not sure the proper protocol
for 12.</div>
<div><br>
</div>
<div>Finally, what is the protocol
for renaming repos in GH/sugarlabs
? I renamed portfolio to
portfolio-activity for
consistency. Lots of other
activities should be renamed. But
I don't know how to do except
unilaterally,</div>
<div><br>
</div>
<div>regards.</div>
<div><br>
</div>
<div>-walter</div>
<div><br>
</div>
<div><br>
</div>
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div text="#000000"
bgcolor="#FFFFFF"> <br>
Tony<br>
<br>
<div
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574moz-cite-prefix">On
04/20/2017 09:26 AM, Walter
Bender wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra"><br>
<div class="gmail_quote">On
Wed, Apr 19, 2017 at
9:09 PM, Tony Anderson <span
dir="ltr"><<a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-abbreviated"
href="mailto:tony_anderson@usa.net"
target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:tony_anderson@usa.net">tony_anderson@usa.net</a></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 bgcolor="#FFFFFF">
I get the following
messages when trying
to create a new
repository in
sugarlabs:<br>
<br>
You don’t appear to
have permission to
create repositories
for this
organization. Sorry
about that.<br>
</div>
</blockquote>
<div><br>
</div>
<div>That is by design.
Only members can
create repositories on
the project.</div>
<div><br>
</div>
<div>Quoting from <a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-freetext"
href="https://github.com/sugarlabs/s"
target="_blank"><a class="moz-txt-link-freetext" href="https://github.com/sugarlabs/s">https://github.com/sugarlabs/s</a></a><wbr>ugar-docs/blob/master/contribu<wbr><a
moz-do-not-send="true" href="http://ting.md">ting.md</a></div>
<div><br>
</div>
<div>"For new
activities, make a new
repository in your
GitHub account, put
the source code in it,
then ask the systems@
list to move it to the
sugarlabs
organisation."</div>
<div><br>
</div>
<div>You can also of
course ask to join the
sugarlabs project on
GitHub.</div>
<div><br>
</div>
<div>-walter</div>
<div><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 bgcolor="#FFFFFF">
Tony<br>
<br>
<div
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072moz-cite-prefix">On
04/20/2017 03:56
AM, Samuel Cantero
wrote:<br>
</div>
<blockquote
type="cite">
<div dir="ltr">
<div
class="gmail_extra">
<div
class="gmail_quote">On
Wed, Apr 19,
2017 at 1:40
AM, Tony
Anderson <span
dir="ltr"><<a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-abbreviated"
href="mailto:tony_anderson@usa.net" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:tony_anderson@usa.net">tony_anderson@usa.net</a></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
bgcolor="#FFFFFF">
Hi Walter<br>
<br>
We haven't
heard from Sam
C. <br>
</div>
</blockquote>
<div><br>
</div>
<div>Hi
everyone! I'm
sorry I
haven't
replied
before. I have
been very busy
these days. I
don't know
much about
ASLO
architecture.
I just have
helped to keep
it working.
Aleksey is the
correct guy
here.</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">
<br>
I am thinking
that rather
than keep the
metadata
regarding
Sugar
activities, it
might be
better to
include it in
<a
moz-do-not-send="true"
href="http://activity.info" target="_blank">activity.info</a> (e.g.
developers,
summary,
description,
what works,
release
notes). This
would enable
ASLO to
generate its
screens from
the bundle. <br>
<br>
Jatin now has
a working
minimal
prototype of
the Django
version. It
would be
helpful if it
were on the
Sugar servers
supporting
ASLO.<br>
</div>
</blockquote>
<div><br>
</div>
<div>We can
configure a
dev
environment in
our server and
enable CI. It
would be good
to keep main
repo in
GitHub, inside
sugarlabs
organization.
This will give
us more chance
to encourage
other people
to help. Where
is the
prototype
right now? I
would like to
take a look.</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
bgcolor="#FFFFFF">
<br>
I would like
to add some
activities
from ASLO to
the github
repository.
Currently I am
a 'member'. Is
that
sufficient to
enable adding
a new
activity?<br>
</div>
</blockquote>
<div><br>
</div>
<div>Try and
tell me.</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">
<br>
I have posted
issues to each
of the
activities I
tested on the
github/sugarlabs.
Several of the
activities can
be fixed by
simple code
changes. More
importantly,
some order is
needed in the
assignment of
version
numbers and
releasing the
updated
activities to
ASLO. While I
am a developer
on ASLO, I
don't have the
ability to
release new
versions of
activities in
general. </div>
</blockquote>
<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">
<br>
I would
appreciate
your help in
setting up the
authorizations
needed. </div>
</blockquote>
<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">
<br>
Thanks,<br>
<br>
Tony
<div>
<div
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072h5"><br>
<br>
<br>
<div
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072m_6307486910291391069moz-cite-prefix">On
04/13/2017
01:40 AM,
Walter Bender
wrote:<br>
</div>
<blockquote
type="cite">
<div dir="ltr">Let's
try to get Sam
C., who
currently
maintains ASLO
into the loop.
I think he'll
have lots of
good advice
for us.
<div><br>
</div>
<div>regards.</div>
<div><br>
</div>
<div>-walter</div>
</div>
<div
class="gmail_extra"><br>
<div
class="gmail_quote">On
Wed, Apr 12,
2017 at 1:14
PM, Jatin
Dhankhar <span
dir="ltr"><<a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-abbreviated"
href="mailto:dhankhar.jatin@gmail.com" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:dhankhar.jatin@gmail.com">dhankhar.jatin@gmail.com</a></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">Hi,<span>
<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"><span
style="font-size:12.8px">I think we need to agree on the use of IRC. If
you want to
communicate
with members
of the
community, you
must go where
they are
(#sugar). If
you want a
one-to-one
meeting on IRC
with me, I
would suggest
#sugar-newbies.
It is normally
dormant but
works well and
saves a log
for later
review. It
worked well
for meetings
with Utkarsh
Tiwari during
last year's
GSOC.</span></blockquote>
</span>
<div>Sure,
whatever works
:). What is
your IRC
nickname ?</div>
<span>
<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"><span
style="font-size:12.8px">There are two things that you will need to have
local to the
django
project. First
is the
directory </span><a
moz-do-not-send="true" href="http://download.sugarlabs.org/"
style="font-size:12.8px"
target="_blank">download.sugarlabs.o<wbr>rg</a><span
style="font-size:12.8px"> which
has the Sugar
activity
bundles</span></blockquote>
</span>
<div>Do I need
to mirror the
whole
setup/directory
? <br>
</div>
<div><br>
</div>
<div>When
talking about
scraping you
probably meant
<a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-freetext"
href="http://activities.sugarlabs"
target="_blank"><a class="moz-txt-link-freetext" href="http://activities.sugarlabs">http://activities.sugarlabs</a></a>.o<wbr>rg instead of <a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-freetext"
href="http://download.sugarlabs.o"
target="_blank"><a class="moz-txt-link-freetext" href="http://download.sugarlabs.o">http://download.sugarlabs.o</a></a><wbr>rg/, right ? <br>
Also for
scraping, <a
moz-do-not-send="true"
href="https://scrapy.org/" target="_blank">Scrapy</a> seems to more
popular than
beautifulsoup
?<br>
<br>
Also a big
thanks for
including
Walter in the
discussion :D</div>
<span
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072m_6307486910291391069HOEnZb"><font
color="#888888">
<div><br>
</div>
<div>- Jatin
Dhankhar</div>
<div> </div>
</font></span></div>
<div
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072m_6307486910291391069HOEnZb">
<div
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072m_6307486910291391069h5">
<div
class="gmail_extra"><br>
<div
class="gmail_quote">On
Wed, Apr 12,
2017 at 6:30
AM, Tony
Anderson <span
dir="ltr"><<a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-abbreviated"
href="mailto:tony_anderson@usa.net" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:tony_anderson@usa.net">tony_anderson@usa.net</a></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
bgcolor="#FFFFFF">
Hi, Jatin<br>
<br>
I think we
need to agree
on the use of
IRC. If you
want to
communicate
with members
of the
community, you
must go where
they are
(#sugar). If
you want a
one-to-one
meeting on IRC
with me, I
would suggest
#sugar-newbies.
It is normally
dormant but
works well and
saves a log
for later
review. It
worked well
for meetings
with Utkarsh
Tiwari during
last year's
GSOC.<br>
<br>
There are two
things that
you will need
to have local
to the django
project. First
is the
directory <a
moz-do-not-send="true" href="http://download.sugarlabs.org"
target="_blank">download.sugarlabs.org</a>
which has the
Sugar activity
bundles. The
second is the
'metadata' in
the mysql db.
For scraping,
I would
recommend
BeautifulSoup
(bs4). The
trick will be
to decide what
data we want
to capture and
add to the
json.<br>
<br>
The json
fields in
activities.json
are ones I
chose for the
minimal
system. You
may want to
include other
information
such as the
number of
downloads,
which
collections
(should be
entered as
tags in a
tag-field) and
so on. One
item I have
referred to as
flags (I
marked some as
X but don't
remember what
that meant, oh
well). The
intent is to
record the
platforms
where the
activity
works. We also
should provide
links to the
homepage,
repository
page, and
update page
(whatever that
is). I think
if you have a
working scrape
tool, the data
it collects
can be
expanded as
needed
(assuming the
tool runs in a
reasonable
time).<br>
<br>
Naturally, it
would be
easier if you
have access to
the db
directly.<span
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072m_6307486910291391069m_6722767647619661501HOEnZb"><font
color="#888888"><br>
<br>
Tony</font></span>
<div>
<div
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072m_6307486910291391069m_6722767647619661501h5"><br>
<br>
<div
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072m_6307486910291391069m_6722767647619661501m_-7011079753232270224moz-cite-prefix">On
04/12/2017
01:40 AM,
Jatin Dhankhar
wrote:<br>
</div>
<blockquote
type="cite">
<div dir="ltr">
<blockquote
class="gmail_quote"
style="margin:0px
0px 0px
0.8ex;border-left:1px
solid
rgb(204,204,204);padding-left:1ex"><span
style="font-size:12.8px">One thing you could look at. On
activities.sugarlabs,org,
can you
determine from
Remora where
the metadata
is stored? I
assume a db.
Currently I am
thinking to
use
BeautifulSoup
to scrape the
site to get
that data, but
it would be
much easier to
access the
data directly.</span></blockquote>
As per wiki <a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-freetext"
href="https://wiki.mozilla.org/Updat" target="_blank"><a class="moz-txt-link-freetext" href="https://wiki.mozilla.org/Updat">https://wiki.mozilla.org/Updat</a></a><wbr>e:Remora_Server_Requirements#S<wbr>VN.2C_DB_and_app_config data
is stored in
mysql
database. I
don't have
access to the
production
server where
ASLO is
currently
running,
following
file <a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-freetext"
href="https://github.com/sugarl"
target="_blank"><a class="moz-txt-link-freetext" href="https://github.com/sugarl">https://github.com/sugarl</a></a><wbr>abs/aslo/blob/master/aslo/db-u<wbr>pdate.sh#L9 confirms
that data is
stored in a
mysql db.
However it
would be
interesting
and fun to
scrape the
data from live
site. I would
do that.<br>
<div><br>
</div>
<div>Thanks
will poke
around the
code, looks to
me it's a
django app and
I have to
mount it on my
django
project,
thanks :)</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"><span
style="font-size:12.8px">If you are talking about IRC as a place to meet
Sugar
community
members, use
the freenode
#sugar. This
is probably
most active
from 8-17 EST
(UTC-5). I am
currently in
the
Philippines
which is UTC+
7. </span></blockquote>
<div><br>
</div>
<div> Yes,
tried that. <a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-freetext"
href="https://gitter.im" target="_blank"><a class="moz-txt-link-freetext" href="https://gitter.im">https://gitter.im</a></a> fits in
naturally with
Github (really
sorry for
suggesting a
new mode of
communication
everyday) 😅</div>
<div><br>
</div>
<div>- Jatin
Dhankhar</div>
<div><br>
</div>
</div>
<div
class="gmail_extra"><br>
<div
class="gmail_quote">On
Tue, Apr 11,
2017 at 6:14
AM, Tony
Anderson <span
dir="ltr"><<a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-abbreviated"
href="mailto:tony_anderson@usa.net" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:tony_anderson@usa.net">tony_anderson@usa.net</a></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
bgcolor="#FFFFFF">
If you are
talking about
IRC as a place
to meet Sugar
community
members, use
the freenode
#sugar. This
is probably
most active
from 8-17 EST
(UTC-5). I am
currently in
the
Philippines
which is UTC+
7. <br>
<br>
Localization
of Python
activities is
done by
Pootle, when
implemented by
the developer.
The developer
does something
like the
following:<br>
<br>
from
gettext import
gettext as _<br>
<br>
self.copy.set_tooltip(_('Copy'<wbr>))<br>
<br>
In this way,
all text
displayed is
taken from a
po file based
on the locale
(e.g. en.po or
hi.po). This
is a
simplification
as the actual
file is
compressed:
en.mo, hi.mo.
These files
are in the
activity
bundle. The
detail is that
when a new
version is
released,
there is a
master file:
Paint.pot from
which the
local language
files are
built. This
needs to be
submitted to <a
moz-do-not-send="true" href="http://translate.sugarlabs.org"
target="_blank">translate.sugarlabs.org</a>
which
maintains a
copy. However,
then the
localized
version needs
to be added
back to the
bundle.
However, the
localizations
can take
months for 100
languages so
how
synchronize
the po
directory with
the activity
release is
difficult. <br>
<br>
The sugar3 vs
sugar issue is
decided. The
community
wants to move
to sugar3
(gtk3). The
problem is
that less that
20% of the
activities
have been
converted.<br>
The ones that
have been
converted are
low hanging
fruit. The
unconverted
ones may
require
intensive work
(gimp which
developed gtk
originally has
not made the
conversion). <br>
<br>
One thing you
could look at.
On
activities.sugarlabs,org,
can you
determine from
Remora where
the metadata
is stored? I
assume a db.
Currently I am
thinking to
use
BeautifulSoup
to scrape the
site to get
that data, but
it would be
much easier to
access the
data directly.<br>
<br>
Yesterday
afternoon, the
ISP restored
service. Last
time it died
after two
days, but I am
keeping my
fingers
crossed. I am
attaching the
django stuff.<span
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072m_6307486910291391069m_6722767647619661501m_-7011079753232270224HOEnZb"><font
color="#888888"><br>
<br>
Tony</font></span>
<div>
<div
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072m_6307486910291391069m_6722767647619661501m_-7011079753232270224h5"><br>
<br>
<div
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072m_6307486910291391069m_6722767647619661501m_-7011079753232270224m_5089198513458135942moz-cite-prefix">On
04/11/2017
01:36 AM,
Jatin Dhankhar
wrote:<br>
</div>
<blockquote
type="cite">
<div dir="ltr">
<div>Hi Tony,</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"><span
style="font-size:12.8px">Normally, we use </span><a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-freetext"
href="http://chat.sugarlabs.org"
target="_blank"><a class="moz-txt-link-freetext" href="http://chat.sugarlabs.org">http://chat.sugarlabs.org</a></a><span
style="font-size:12.8px"> <wbr>or
on freenode:
sugar-meeting
or
sugar-newbies.
These are
logged sites
so that there
is a record.
The second is
more
appropriate
since
sugar-meeting
is used for
SLOB meetings
and the like.
The real
problem with
IRC is time
zones. Email
has the
advantage that
either party
can send or
receive at any
time. Last
year with a
GSOC mentee we
used
sugar-newbies
by arranging a
specific
meeting time
in advance. </span></blockquote>
<div>Yes, that
is correct,
main issue in
communication
barrier is due
to timezone
issues. Since
most of the
people are
familiar and
are available
on IRC, it's
seems to be
the primary
channel of
communication
along with
mailing lists
and email. But
since you said
we can use
anything else,
giving Slack a
try won't hurt
(if issue is
about not
using closed
source
software then
IRC is fine,
or we can try <a
moz-do-not-send="true" href="https://about.mattermost.com/"
target="_blank">Mattermost</a>).</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"><span
style="font-size:12.8px"> Another part of the process is how to update '</span><a
moz-do-not-send="true" href="http://translate.sugarlabs.org/"
style="font-size:12.8px"
target="_blank">translate.sugarlabs.org</a><span
style="font-size:12.8px">'
with the
corresponding
POT file to
enable
localization.
We can get
help from
Chris Leonard
on this. </span></blockquote>
<div><br>
</div>
<div>I am not
aware on how
localization
works. Do we
need to
download
relevant files
and bundle
them with the
acitvity
before making
it available
on ASLO ? </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"><span
style="font-size:12.8px">I have my Django version available - but the
internet
problems here
are still
unresolved.
The technician
is supposed to
make another
visit today to
see what is
wrong with our
connection.
Let me know if
and when you
think this
will be useful
to you.</span></blockquote>
<div>Let me
know when your
connection is
stable and I
would start.</div>
<div> What
are the
things you
need me to do
in the
meantime ? </div>
<div><br
style="font-size:12.8px">
<blockquote
class="gmail_quote"
style="margin:0px
0px 0px
0.8ex;border-left:1px
solid
rgb(204,204,204);padding-left:1ex"><span
style="font-size:12.8px">One open issue is sugar3 vs sugar. Currently
two versions
of Sugar are
released. The
sugar version
supports gtk
while sugar3
supports gtk3.
Unfortunately,
gtk3 was
developed to
be totally
incompatible
with gtk. For
example,
incorporation
of one gtk3
feature
requires that
all direct and
indirect
references to
gtk be removed
or the
activity will
throw an
exception.
Several of the
gtk3
conversions
failed to meet
this test and
so fail. The
issue is
whether
curated
activities be
limited to
ones converted
to gtk3. The
positive is
that Sugar
could revert
to releasing
and
maintaining
only a single
version. The
downside is
that 100 or
more
activities
will no longer
be available.
Specifically,
in our
implementation
of ASLO, we
need to show
which versions
of an activity
work on which
versions of
Sugar (e.g.
i86, arm,
amd64, sugar
or sugar3, and
so on). We
also need to
show which
ones support
localization.
There are many
English
activities and
many Spanish
activities
that make no
provision for
localization.
Luckily there
are many that
have no
language
component.
However, for
many of these,
some kind of
help is needed
to convey the
way the
activity
works. </span></blockquote>
<div><br>
</div>
<div><a
moz-do-not-send="true"
href="https://www.reddit.com/r/linux/comments/3e3q8n/is_there_a_technical_reason_why_gtk3_is_better/"
target="_blank">Some people believe GTK3 is slightly better</a> and I
think GTK3
will stay but
that should be
asked in
community and
voted upon and
taking in
considerations
cost of
development
and porting,
only a
discussion
will help in
this one.</div>
</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"><span
style="font-size:12.8px">You are wading into a deep and vast body of
water!</span></blockquote>
<div>As long
as I have
something to
hold onto, I
will not drown
😅 </div>
<div><br>
</div>
<div>Thanks,</div>
<div>Jatin
Dhankhar</div>
</div>
<div
class="gmail_extra"><br>
<div
class="gmail_quote">On
Mon, Apr 10,
2017 at 9:11
AM, Tony
Anderson <span
dir="ltr"><<a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-abbreviated"
href="mailto:tony_anderson@usa.net" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:tony_anderson@usa.net">tony_anderson@usa.net</a></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
bgcolor="#FFFFFF">
Hi, Jatin<br>
<br>
Normally, we
use <a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-freetext"
href="http://chat.sugarlabs.org"
target="_blank"><a class="moz-txt-link-freetext" href="http://chat.sugarlabs.org">http://chat.sugarlabs.org</a></a> or on freenode:
sugar-meeting
or
sugar-newbies.
These are
logged sites
so that there
is a record.
The second is
more
appropriate
since
sugar-meeting
is used for
SLOB meetings
and the like.
The real
problem with
IRC is time
zones. Email
has the
advantage that
either party
can send or
receive at any
time. Last
year with a
GSOC mentee we
used
sugar-newbies
by arranging a
specific
meeting time
in advance. <br>
<br>
I haven't
heard from
Walter, but my
preference
would be to
use the
Sugarlabs
server since
the content is
largely
already there
and it would
be easier to
make it the
official site
if that were
decided. So in
the short run,
I think you
should do
whatever is
best for your
own
development
process. <br>
<br>
I am not sure
how CI fits
into this. If
the activity
development is
done on
GitHub, then
the deployment
model is to
run setup.py
to create an
xo bundle and
then copy that
bundle to the
appropriate
location in
the <a
moz-do-not-send="true"
href="http://download.sugarlabs.org" target="_blank">download.sugarlabs.org</a>
tree. Assuming
the update
results from a
PR, the
deployer would
need to update
the activity
information on
ASLO
appropriately.
However, that
process
depends on
where that
data
(metadata) is
stored.
Another part
of the process
is how to
update '<a
moz-do-not-send="true"
href="http://translate.sugarlabs.org" target="_blank">translate.sugarlabs.org</a>'
with the
corresponding
POT file to
enable
localization.
We can get
help from
Chris Leonard
on this. <br>
<br>
I have my
Django version
available -
but the
internet
problems here
are still
unresolved.
The technician
is supposed to
make another
visit today to
see what is
wrong with our
connection.
Let me know if
and when you
think this
will be useful
to you.<br>
<br>
I have now
tested most of
the activities
(~400). I was
optimistic in
the number
that work out
of the box.
However, a
part of this
is running
them in the
Ubuntu version
of Sugar
(amd64). There
are many
activities
which launch
object code
(mostly c)
which is
dependent on
the
architecture.
I am now
trying to
repeat the
tests on an
XO-1.75. One
issue on
Ubuntu is that
many
activities
assume a
1200x900
screen and so
on a 1024X768
screen
overflow. This
makes some of
the games
unusable since
part of the
controls are
off the
screen.
Because of the
internet
problems, the
untested
activities
tend to be new
ones since I
was using my
local
repository
which is a
snapshot taken
several months
ago. The other
group are the
GCompris
activities
(about 70). <br>
<br>
My intent is
to build a
'curated'
repository of
activities
known to work
and be usable
on the XO and
on Ubuntu (or
such other
platform that
Sugar may
choose to
support). Most
of the
currently not
work
activities
have software
dependencies
no longer
included in
the current
Sugar release.
So the curated
library will
grow as
activities are
repaired over
time. <br>
<br>
One open issue
is sugar3 vs
sugar.
Currently two
versions of
Sugar are
released. The
sugar version
supports gtk
while sugar3
supports gtk3.
Unfortunately,
gtk3 was
developed to
be totally
incompatible
with gtk. For
example,
incorporation
of one gtk3
feature
requires that
all direct and
indirect
references to
gtk be removed
or the
activity will
throw an
exception.
Several of the
gtk3
conversions
failed to meet
this test and
so fail. The
issue is
whether
curated
activities be
limited to
ones converted
to gtk3. The
positive is
that Sugar
could revert
to releasing
and
maintaining
only a single
version. The
downside is
that 100 or
more
activities
will no longer
be available.
Specifically,
in our
implementation
of ASLO, we
need to show
which versions
of an activity
work on which
versions of
Sugar (e.g.
i86, arm,
amd64, sugar
or sugar3, and
so on). We
also need to
show which
ones support
localization.
There are many
English
activities and
many Spanish
activities
that make no
provision for
localization.
Luckily there
are many that
have no
language
component.
However, for
many of these,
some kind of
help is needed
to convey the
way the
activity
works. <br>
<br>
You are wading
into a deep
and vast body
of water!<span
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072m_6307486910291391069m_6722767647619661501m_-7011079753232270224m_5089198513458135942HOEnZb"><font
color="#888888"><br>
<br>
Tony</font></span>
<div>
<div
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072m_6307486910291391069m_6722767647619661501m_-7011079753232270224m_5089198513458135942h5"><br>
<br>
<div
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072m_6307486910291391069m_6722767647619661501m_-7011079753232270224m_5089198513458135942m_2297804042014618975moz-cite-prefix">On
04/10/2017
12:00 AM,
Jatin Dhankhar
wrote:<br>
</div>
<blockquote
type="cite">
<div dir="ltr">Hi,
<div>Sorry for
the delay. I
went through
the polls
tutorials and
I think I am
getting hang
of Django. I
have one query
that is out of
context, what
is your IRC
setup ? IRC
doesn't allow
message to be
delivered or
stored once
either party
is offline,
people login
through a
external
server for
IRC's to
maintain their
availability
in a channel.
May I suggest
something like
Slack or Flock
for
communication.
IRC is good
for quick and
fast
connection but
Slack and
alternatives
allow easy
communication.
(Just a
suggestion,
though)</div>
<div><br>
</div>
<div>Should I
deploy the
same polls app
on
DigitalOcean
along with CI
pipeline and
branching
model in the
meantime with
code hosted on
Github ?</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Jatin
Dhankhar</div>
</div>
<div
class="gmail_extra"><br>
<div
class="gmail_quote">On
Sat, Apr 8,
2017 at 6:28
AM, Tony
Anderson <span
dir="ltr"><<a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-abbreviated"
href="mailto:tony_anderson@usa.net" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:tony_anderson@usa.net">tony_anderson@usa.net</a></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
bgcolor="#FFFFFF">
Hi, Jatin<br>
<br>
I abbreviated
this thread
because I am
getting
complaints
from the list
that the
emails are too
long.<br>
<br>
Yesterday, I
was able to
complete a set
of 25
activities to
use as a test
base. The
Django app now
has two views.
First is a
display of all
of the <br>
activities
with the icon
and name. A
link for each
opens the full
activity page.
The data for
the views is
in a file
which is a
list of jsons,
one json per
line. <br>
The views.py
reads this
file and
builds the
view from the
jsons. <br>
<br>
So the app
consists of:<br>
urls.py<br>
views.py<br>
templates/<br>
base.html<br>
list.html<br>
activity.html<br>
<br>
with the data:<br>
fixtures/activities.json
<br>
icons/<br>
xo/<br>
<br>
The icons
directory has
the activity
icons (*.svg)<br>
The xo
directory has
the activity
bundles (*.xo)<br>
<br>
Meanwhile, I
am having more
troubles with
the ISP (a new
one). When
that gets
resolved, I
should be able
to send the
above to you.<br>
<br>
I have also
mentioned our
dialog to
Walter Bender
suggesting
that you could
set up your
working model
as <a
moz-do-not-send="true"
href="http://activities3.sugarlabs.org" target="_blank">activities3.sugarlabs.org</a>.
This would
give you a
permanent
place to do
the
development
and make your
project
visible to the
community so
that we can
obtain
feedback. I
aslo suggested
that the
project
repository
could be
placed on
GitHub so that
again the
community can
comment and
potentially
contribute.<span
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072m_6307486910291391069m_6722767647619661501m_-7011079753232270224m_5089198513458135942m_2297804042014618975HOEnZb"><font
color="#888888"><br>
<br>
Tony</font></span><span><br>
<div
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072m_6307486910291391069m_6722767647619661501m_-7011079753232270224m_5089198513458135942m_2297804042014618975m_-2022019510050925157moz-cite-prefix">On
04/07/2017
12:23 AM,
Jatin Dhankhar
wrote:<br>
</div>
<blockquote
type="cite">
<div dir="ltr">Hi,
<div><br>
</div>
<div>I am
setting up
Django now and
going through
some
tutorials. I
will setup the
code with a
very basic and
barebones
version of
what we want
to achieve and
put it in a
private repo.
We can even
host it
online, since
I have some
DigitalOcean
credit left.
Will keep you
posted. </div>
<div><br>
</div>
<div>Thanks.</div>
<div>Jatin
Dhankhar</div>
</div>
<div
class="gmail_extra"><br>
<div
class="gmail_quote">On
Thu, Apr 6,
2017 at 7:11
AM, Tony
Anderson <span
dir="ltr"><<a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-abbreviated"
href="mailto:tony_anderson@usa.net" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:tony_anderson@usa.net">tony_anderson@usa.net</a></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
bgcolor="#FFFFFF">
Hi, Jatin<br>
<br>
In setting up
Django, I
think you will
do it on your
computer not
on a separate
server. Django
handles that
through its
own server and
has sgqlite as
a database
built-in. A
good first
start would be
to set up the
tutorial app (<a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-freetext"
href="https://www.djangoproject.com" target="_blank"><a class="moz-txt-link-freetext" href="https://www.djangoproject.com">https://www.djangoproject.com</a></a><wbr>/).
Essentially
you will need
to install
django and
then set up
the tutorial
app 'poll'.
Working
through this
tutorial will
help a lot
later on. The
key point is
that after
initial setup,
there are
three
important
elements:
url.py which
defines the
urls to access
the
application,
views.py which
is the python
code that
responds to a
request by
accessing the
db and
delivering the
relevant
information to
a template.
The template
is an html
file with
variables of
the form {{ <a
moz-do-not-send="true" href="http://activity.name" target="_blank">activity.name</a>
}}
transferring
information
from the view
to the
template.<br>
<br>
What I have is
an
application:
aslo. Once you
have Django
installed and
have run the
tutorial app
through
Django's
server, you'll
be ready.
Essentially,
you will only
need to add
aslo as a
second app in
the settings.
One possible
confusion is
that DJango
lives in a
project -
essentially a
directory
containing its
manage.py
admin
interface. In
the directory
is another
directory of
the same name
with the
settings.py
and url.py.
The poll app
is a directory
in the
top-level
alongside the
inner
directory with
the project
name.<br>
<br>
For example,
my project is
schoolsite. So
my setup looks
like:<br>
<br>
/library/schoolsite/schoolsite<br>
/library/schoolsite/aslo<br>
<br>
Meanwhile my
code links
directly to an
activity page
with no index.
I'll add an
index so the
essential
structure will
be there. I'll
also include
the 'fixtures'
to set up a 25
activity
capability.
Fixtures are
csv files from
which the
database
(metadata) can
be loaded. <br>
<span
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072m_6307486910291391069m_6722767647619661501m_-7011079753232270224m_5089198513458135942m_2297804042014618975m_-2022019510050925157HOEnZb"><font
color="#888888"> <br>
Tony</font></span></div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</span></div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
<br>
______________________________<wbr>_________________<br>
ASLO mailing
list<br>
<a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-abbreviated"
href="mailto:ASLO@lists.sugarlabs.org"
target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:ASLO@lists.sugarlabs.org">ASLO@lists.sugarlabs.org</a></a><br>
<a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-freetext"
href="http://lists.sugarlabs.org/lis"
target="_blank"><a class="moz-txt-link-freetext" href="http://lists.sugarlabs.org/lis">http://lists.sugarlabs.org/lis</a></a><wbr>tinfo/aslo<br>
<br>
</blockquote>
</div>
<br>
<br
clear="all">
<span
class="m_2017803824253690631m_1093523794728921624HOEnZb"><font
color="#888888"> <span
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-HOEnZb"><font
color="#888888">
<div><br>
</div>
-- <br>
<div
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-m_5049279913999944072m_6307486910291391069gmail_signature">
<div dir="ltr">
<div><font><font>Walter
Bender</font></font><br>
<font><font>Sugar
Labs</font></font></div>
<div><font><font><a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-freetext"
href="http://www.sugarlabs.org" target="_blank"><a class="moz-txt-link-freetext" href="http://www.sugarlabs.org">http://www.sugarlabs.org</a></a></font></font><br>
<br>
</div>
</div>
</div>
</font></span></font></span></div>
<span
class="m_2017803824253690631m_1093523794728921624HOEnZb"><font
color="#888888"> <span
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-HOEnZb"><font
color="#888888"> </font></span></font></span></blockquote>
<span
class="m_2017803824253690631m_1093523794728921624HOEnZb"><font
color="#888888"> <span
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-HOEnZb"><font
color="#888888"> <br>
</font></span></font></span></div>
<span
class="m_2017803824253690631m_1093523794728921624HOEnZb"><font
color="#888888"> <span
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-HOEnZb"><font
color="#888888"> </font></span></font></span></div>
<span
class="m_2017803824253690631m_1093523794728921624HOEnZb"><font
color="#888888"> <span
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-HOEnZb"><font
color="#888888"> </font></span></font></span></div>
<span
class="m_2017803824253690631m_1093523794728921624HOEnZb"><font
color="#888888"> <span
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-HOEnZb"><font
color="#888888"> </font></span></font></span></blockquote>
<span
class="m_2017803824253690631m_1093523794728921624HOEnZb"><font
color="#888888"> <span
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-HOEnZb"><font
color="#888888"> </font></span></font></span></div>
<span
class="m_2017803824253690631m_1093523794728921624HOEnZb"><font
color="#888888"> <span
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail-HOEnZb"><font
color="#888888"> <br>
</font></span></font></span></div>
<span
class="m_2017803824253690631m_1093523794728921624HOEnZb"><font
color="#888888"> </font></span></div>
<span
class="m_2017803824253690631m_1093523794728921624HOEnZb"><font
color="#888888"> </font></span></blockquote>
<span
class="m_2017803824253690631m_1093523794728921624HOEnZb"><font
color="#888888">
<br>
</font></span></div>
<span
class="m_2017803824253690631m_1093523794728921624HOEnZb"><font
color="#888888"> </font></span></blockquote>
<span
class="m_2017803824253690631m_1093523794728921624HOEnZb"><font
color="#888888"> </font></span></div>
<span
class="m_2017803824253690631m_1093523794728921624HOEnZb"><font
color="#888888"> <br>
<br clear="all">
<span
class="m_2017803824253690631HOEnZb"><font
color="#888888">
<div><br>
</div>
-- <br>
<div
class="m_2017803824253690631m_1093523794728921624m_2408988921113010574gmail_signature">
<div dir="ltr">
<div><font><font>Walter
Bender</font></font><br>
<font><font>Sugar
Labs</font></font></div>
<div><font><font><a
moz-do-not-send="true"
class="m_2017803824253690631moz-txt-link-freetext"
href="http://www.sugarlabs.org" target="_blank"><a class="moz-txt-link-freetext" href="http://www.sugarlabs.org">http://www.sugarlabs.org</a></a></font></font><br>
<br>
</div>
</div>
</div>
</font></span></font></span></div>
<span
class="m_2017803824253690631HOEnZb"><font
color="#888888"> </font></span></div>
<span
class="m_2017803824253690631HOEnZb"><font
color="#888888"> </font></span></blockquote>
<span
class="m_2017803824253690631HOEnZb"><font
color="#888888"> <br>
</font></span></div>
<span
class="m_2017803824253690631HOEnZb"><font
color="#888888"> </font></span></blockquote>
<span
class="m_2017803824253690631HOEnZb"><font
color="#888888"> </font></span></div>
<span
class="m_2017803824253690631HOEnZb"><font
color="#888888"> <br>
<br clear="all">
<span class="HOEnZb"><font
color="#888888">
<div><br>
</div>
-- <br>
<div
class="m_2017803824253690631m_1093523794728921624gmail_signature"
data-smartmail="gmail_signature">
<div dir="ltr">
<div><font><font>Walter
Bender</font></font><br>
<font><font>Sugar Labs</font></font></div>
<div><font><a
moz-do-not-send="true"
href="http://www.sugarlabs.org" target="_blank"><font><a class="moz-txt-link-freetext" href="http://www.sugarlabs.org">http://www.sugarlabs.org</a></font></a></font><br>
<br>
</div>
</div>
</div>
</font></span></font></span></div>
<span class="HOEnZb"><font
color="#888888"> </font></span></div>
<span class="HOEnZb"><font color="#888888">
</font></span></blockquote>
<span class="HOEnZb"><font color="#888888">
<br>
</font></span></div>
<span class="HOEnZb"><font color="#888888"> </font></span></blockquote>
<span class="HOEnZb"><font color="#888888"> </font></span></div>
<span class="HOEnZb"><font color="#888888"> <br>
<br clear="all">
<div><br>
</div>
-- <br>
<div
class="m_2017803824253690631gmail_signature"
data-smartmail="gmail_signature">
<div dir="ltr">
<div><font><font>Walter Bender</font></font><br>
<font><font>Sugar Labs</font></font></div>
<div><font><a moz-do-not-send="true"
href="http://www.sugarlabs.org"
target="_blank"><font>http://www.sugarlabs.org</font></a></font><br>
<br>
</div>
</div>
</div>
</font></span></div>
</div>
</blockquote>
<br>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="gmail_signature" data-smartmail="gmail_signature">
<div dir="ltr">
<div><font><font>Walter Bender</font></font><br>
<font><font>Sugar Labs</font></font></div>
<div><font><a moz-do-not-send="true"
href="http://www.sugarlabs.org" target="_blank"><font>http://www.sugarlabs.org</font></a></font><br>
<br>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<br>
</body>
</html>