<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" 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 download.sugarlabs.org 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.<br>
<br>
Tony<br>
<br>
<div class="moz-cite-prefix">On 04/12/2017 01:40 AM, Jatin Dhankhar
wrote:<br>
</div>
<blockquote
cite="mid:CAD+LdAE8bY6hUUG+7qBr4=TDptV3KLpc=0A4zRRXZdYind07=w@mail.gmail.com"
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"
href="https://wiki.mozilla.org/Update:Remora_Server_Requirements#SVN.2C_DB_and_app_config">https://wiki.mozilla.org/Update:Remora_Server_Requirements#SVN.2C_DB_and_app_config</a> 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"
href="https://github.com/sugarlabs/aslo/blob/master/aslo/db-update.sh#L9">https://github.com/sugarlabs/aslo/blob/master/aslo/db-update.sh#L9</a> 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"
href="https://gitter.im">https://gitter.im</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"
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"> 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="HOEnZb"><font color="#888888"><br>
<br>
Tony</font></span>
<div>
<div class="h5"><br>
<br>
<div class="m_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_5089198513458135942moz-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"
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,
Jatin<br>
<br>
Normally, we use <a moz-do-not-send="true"
class="m_5089198513458135942m_2297804042014618975moz-txt-link-freetext"
href="http://chat.sugarlabs.org"
target="_blank">http://chat.sugarlabs.org</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_5089198513458135942HOEnZb"><font
color="#888888"><br>
<br>
Tony</font></span>
<div>
<div class="m_5089198513458135942h5"><br>
<br>
<div
class="m_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_5089198513458135942moz-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, 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_5089198513458135942m_2297804042014618975HOEnZb"><font
color="#888888"><br>
<br>
Tony</font></span><span><br>
<div
class="m_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_5089198513458135942moz-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, 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_5089198513458135942moz-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_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>
</body>
</html>