<div dir="ltr"><div>I have personally used jupyter for a long time, so I have a fair amount of experience using it.</div><div><br></div><div>As I can see, jupyter-notebook kind of requires the whole GSoC period, therefore I would consider it as a separate project from the other and write a different proposal for it.</div><div><br></div><div>As for the design of the project, My understanding of going about doing the project is:</div><div>- Install jupyter using pip. Install additional libraries such as Latex to allow for the rendering of notebook as pdf and so on.</div><div>- Start with the jupyter server and modify the server to use journal, removable devices along with using the file system. </div>- Make changes to frontend to display the notebook options appropriately.<div>- Display each language as a separate notebook option.<br><div>- Write a wrapper around the server controlling the starting of server and the shutdown on exiting.</div><div>- Have examples and getting started tutorials.</div><div>- Lastly, have a detailed user documentation. </div><div><br></div><div>Thanks,</div><div>Muhammad Usman</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Mar 30, 2019 at 5:09 AM <<a href="mailto:sugar-devel-request@lists.sugarlabs.org">sugar-devel-request@lists.sugarlabs.org</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Message: 3<br>
Date: Fri, 29 Mar 2019 16:38:47 +0800<br>
From: Tony Anderson <<a href="mailto:tony_anderson@usa.net" target="_blank">tony_anderson@usa.net</a>><br>
To: <a href="mailto:sugar-devel@lists.sugarlabs.org" target="_blank">sugar-devel@lists.sugarlabs.org</a><br>
Subject: Re: [Sugar-devel] GSoC: Proposal for "Create new activities"<br>
Message-ID: <<a href="mailto:a3f8d544-a6f6-35be-5fe1-6cc8e138dcd2@usa.net" target="_blank">a3f8d544-a6f6-35be-5fe1-6cc8e138dcd2@usa.net</a>><br>
Content-Type: text/plain; charset=utf-8; format=flowed<br>
<br>
The Jupyter Notebook project is of particular interest to me.<br>
<br>
Over the past several GSOC periods, developers have had a problem <br>
completing their projects within the allotted time. You are proposing to <br>
take on several projects, any one of which is a big load for one summer.<br>
<br>
If you undertake the Jupyter Notebook project, I would hope that is your <br>
only task for the summer. Completing it in a usable form in the GSOC <br>
period would be a major, noteworthy accomplishment.<br>
<br>
The Jupyter Notebook started life as ipython. The Jupyter implementation <br>
supports multiple programming languages (e.g. bash, python, web <br>
(javascript, html5, css), and many others. It can also be used to make <br>
interactive lessons on science and mathematics topics independent of <br>
programming).<br>
<br>
The essence of the ipython server is that it accepts a url for a file <br>
(*.ipynb). It then processes this file displaying cells and running <br>
cells interactively based on the requirements of the notebook author and <br>
input from the user.<br>
<br>
As an activity, (called for example, Jupyter-activity), it should resume <br>
.ipynb files in the Journal. The browser for this activity can be the <br>
Browse activity (testing to be sure that the WebKit browser in the <br>
Browse activity supports Jupyter). This is unlikely to be a <br>
show-stopper. If executed with start-new, it should enable the user to <br>
designate a notebook to run (among those in the Journal, Documents <br>
folder, or a mounted removable device). It should also enable a user to <br>
create a notebook.<br>
<br>
The technology involved in this project is Jupyter. The team at Jupyter <br>
is friendly and helpful, in my experience. I doubt there will be an <br>
significant need to modify the Browse activity. One limitation that <br>
could be addressed en passant is that when Browse is resumed, it <br>
launches a new instance rather than opening a tab in a running copy. <br>
This is OK but seems primitive compared to other browsers.<br>
<br>
There is a large library online of Jupyter notebooks with many <br>
tutorials. The first step in this project is to become familiar with <br>
these notebooks. Jupyter can be installed on Linux distributions via <br>
Anaconda - but this is overkill for the XO. It can also be installed by <br>
yum (apt for Ubuntu) but better by pip.<br>
<br>
The storage available to the XO is extremely limited (XO has 1GB, other <br>
models have 4GB). This means that the Anaconda implementation which <br>
incorporates many additional valuable packages is probably too large for <br>
Sugar on an XO (still over 80% of the systems in the wild). Even so, the <br>
Pip install may need some optional capabilities such as Latex and MatLab.<br>
<br>
One of the critical parts of an implementation frequently gets left to <br>
the end and then is not done - user documentation. Thanks to Gonzalo <br>
Odiard, Sugar has an excellent documentation capability based on Sphinx <br>
- see <a href="http://help.sugarlabs.org" rel="noreferrer" target="_blank">help.sugarlabs.org</a>. The 'Jupyter-activity' will need documentation <br>
that meets the needs of primary school students with limited computer <br>
experience and limited skills in Englsih. This could include a <br>
recommended library of Jupyter notebooks which can be used on the XO <br>
(esp. bash, python, and web langauges).<br>
<br>
Tony<br>
<br>
Tony<br>
<br>
On 3/29/19 3:52 PM, James Cameron wrote:<br>
> Thanks, interesting.<br>
><br>
> Technical comments; Jupyter Notebook Activity, you suggest stripping<br>
> down Browse activity.  You might instead presume Browse is present<br>
> and call it directly.  This is what the Wikipedia activity does.  It<br>
> isn't what the Help activity does.<br>
><br>
> Please also consider the design and user requirements input in this<br>
> closed issue; <a href="https://github.com/sugarlabs/GSoC/issues/13" rel="noreferrer" target="_blank">https://github.com/sugarlabs/GSoC/issues/13</a> Especially<br>
> note Jupyter Lab; a richer environment than a browser alone.<br>
><br>
> On Thu, Mar 28, 2019 at 06:22:03PM +0530, Muhammad Usman wrote:<br>
>> Hello all!<br>
>> I am Muhammad Usman. I am sharing my draft proposal for Create New Activities<br>
>> and Write activity in Sugarizer. Please do take a look at it and let me know<br>
>> your thoughts.<br>
>> [1]<a href="https://gist.github.com/usmanmuhd/ce60a3dd2c43fd5c5fe5154b5bc18750" rel="noreferrer" target="_blank">https://gist.github.com/usmanmuhd/ce60a3dd2c43fd5c5fe5154b5bc18750</a><br>
>><br>
>> Regards,<br>
>> Muhammad Usman<br>
>><br>
>> References:<br>
>><br>
>> [1] <a href="https://gist.github.com/usmanmuhd/ce60a3dd2c43fd5c5fe5154b5bc18750" rel="noreferrer" target="_blank">https://gist.github.com/usmanmuhd/ce60a3dd2c43fd5c5fe5154b5bc18750</a><br>
>> _______________________________________________<br>
>> Sugar-devel mailing list<br>
>> <a href="mailto:Sugar-devel@lists.sugarlabs.org" target="_blank">Sugar-devel@lists.sugarlabs.org</a><br>
>> <a href="http://lists.sugarlabs.org/listinfo/sugar-devel" rel="noreferrer" target="_blank">http://lists.sugarlabs.org/listinfo/sugar-devel</a><br>
><br><br>
</blockquote></div></div></div></div>