Difference between revisions of "Summer of Code/2013"

From Sugar Labs
Jump to navigation Jump to search
Line 1: Line 1:
 
[[Summer of Code/2013/Application|A draft copy of our application]]
 
[[Summer of Code/2013/Application|A draft copy of our application]]
  
== Project candidates ==
+
= Project candidates =
  
 
A list of projects potential participants might contribute within GSoC program. Every project is shortly described with mentioning secondary skills for possible participants (the primal skill is desire to do something useful).
 
A list of projects potential participants might contribute within GSoC program. Every project is shortly described with mentioning secondary skills for possible participants (the primal skill is desire to do something useful).
Line 10: Line 10:
 
__TOC__
 
__TOC__
  
=== Write Turtle Blocks in Turtle Blocks ===
+
== Sugar Core ==
  
In support of making Sugar as transparent and fungible as possible, we'd like to make it not just Free, but provide affordances for end-user modifications. Turtle Blocks is a possible stepping stone towards that end: a programming environment approachable by children as young as five-years old. So as a first step, let's write Turtle Blocks in Turtle Blocks. From that experience, we'll hopefully know how to approach the more general Sugar problem.
+
=== Sugar Framework for writing activity in full HTML5 ===
  
''Contact'': [[User:Walter]]
+
[[File:Sugarhtml5.png|300px]]
  
''Co-mentor'':Tony Forster
+
The objective is to develop a JavaScript framework allowing to write Sugar activities in full HTML5/JavaScript. The framework will expose to JavaScript an API to call Sugar features:
 +
* Journal/Datastore,
 +
* Collaboration/Telepathy,
 +
* Toolbar handling,
 +
* Sugar look&feel - for example via a CSS style sheet usable on HTML controls
 +
* Access to Sugar settings (buddy name, colors, current language, ...),
 +
* View source.
 +
Like PhoneGap/Cordova, the framework will come with a template to develop and package easily a new HTML5 activity. A basic tutorial will be include too.
 +
The work could be inspired by the work done with Enyo Framework in [http://booki.flossmanuals.net/make-your-own-sugar-activities/_draft/_v/1.0/developing-sugar-activities-using-html5/ 1]. By the way, the resulting framework should be JavaScript framework agnostic (no need for jQuery, Enyo, ...).
  
=== Portfolio videos ===
+
''Mentor'': [mailto:lionel@olpc-france.org Lionel Laské]
 
 
Working with the maintainer of [[Activities/Portfolio|Portfolio]] to add a mechanism for exporting .ogv (voice over still images) of a portfolio presentation. This is a request that has come from deployments: they'd like to be able to post videos of student work, which is currently available as a slide show with audio voice-over.
 
 
 
[[File:Portfolio-Tool.png|300px]]
 
 
 
A working knowlewdge of Python and some gstreamer skills are a must.
 
 
 
''Contact'': [[User:Walter]]
 
  
''Co-mentor:'' [[User:Aneesh Dogra]]
+
''Co-Mentor'': Daniel Narvaez
  
 
=== Unified journal view ===
 
=== Unified journal view ===
Line 62: Line 62:
 
=== Project sharing website ===
 
=== Project sharing website ===
  
Create a Project Hosting Site similar to the Scratch website where kids can share the projects they have created using various Sugar Activities.  The site should foster collaboration and sharing of projects.  The Web Site should be built using a free web framework so that it can be installed at deployment sites.   Some features include:
+
Create a Project Hosting Site similar to the Scratch website where kids can share the projects they have created using various Sugar Activities.  The site should foster collaboration and sharing of projects.  The Web Site should be built using a free web framework so that it can be installed at deployment sites. Some features include:
  
 
* Ability to engage and connect with friends and classmates using various  Social Networking sites/techniques.
 
* Ability to engage and connect with friends and classmates using various  Social Networking sites/techniques.
Line 89: Line 89:
 
''Co-mentor'': [[User:Aneesh Dogra]]
 
''Co-mentor'': [[User:Aneesh Dogra]]
  
=== Implement collaboration in Paint Activity ===
+
===Finish work on Ubuntu Sugar===
 +
This could be a series of tasks to update and complete the porting of Sugar in Ubuntu.
 +
: Finish work started by dfarning
 +
::'''ubuntu-sugar-remix'''
 +
*Previous Ubuntu sugar effort headed by David Farning
 +
:wiki :https://wiki.ubuntu.com/Sugar
 +
:Download files: http://people.sugarlabs.org/dfarning/
 +
 
 +
*Browse
 +
:Never worked
 +
:: had to install [http://people.sugarlabs.org/Tgillard/Surf-115.xo surf-115.xo] as work-around
 +
#This allowed installation of [http://activities.sugarlabs.org/ activities] from ASLO
 +
#Install activites using:[[Sugar_Creation_Kit#Copy_with_drag_.26_drop|Drag-Drop from 2nd USB]]
 +
====Proposed work: Fix sugar and bring up to current sugar version 0.98====
 +
:Currently 0.90; 0.88, 0.86 in Ubuntu
 +
*[[Ubuntu#sweets-sugar_0.94_does_work_in_Ubuntu_12.10_.28unity_and_cinnamon.29|sweets-sugar_0.94_does_work_in_Ubuntu_12.10]]
 +
*Nice version of sugar with ''Dextrose'' features.
 +
:Shares features with software used on XO laptops.
 +
::''Contact'': alsroot on #sugar
 +
=====Example of install of Sugar with ''Synaptic'' in [[Tuquito| Tuquito ]]=====
 +
:Multilanguage Ubuntu 12.04 LTS
 +
*Testing 03/22/2013
 +
:System Tools/Control Center/Add/Remove programs with Synaptic:
 +
::Search: "sugar" check [x] sugar-session-0.90
 +
::Apply
 +
*Installs working sugar-emulator which sees jabber
 +
:Known Bug in sugar 0.90: the users XO icon disappears in f1 screen within a few minutes.
 +
::Sugar 0.90 is no longer supported so this will not be fixed.
 +
:[f1] screen showing sugar neighborhood:
 +
[[File:Tuquito-6-jabber.png|300px]]
 +
:Only 2 activities are installed and they fail to start:
 +
::Turtle Art  98
 +
::Pippy      37   
  
Paint Activity does not implement collaboration yet. The easy part is send the mouse positions and draw in the different machines, but you need have the status of the different tools used, copy/paste operations and undo/redo. Another task to do is port the graphics operations to cairo.
+
*This is an example of one of the many; outdated and incomplete [[Sugar_Creation_Kit#Linux_distributions_where_Sugar_is_available|Distributions based on Ubuntu where sugar is available]] :
  
Requires familiarity with Python.
+
''Mentor'': needed
  
''Contact'': [[User:Godiard]]
+
''Contact'': [[User:Satellit]]
  
 
=== Implement help mechanism for activities using Mallard ===
 
=== Implement help mechanism for activities using Mallard ===
Line 106: Line 138:
  
 
''Co-mentor'': [[User:Francis]]
 
''Co-mentor'': [[User:Francis]]
 
=== IRC Activity fixes ===
 
 
* [[Activities/IRC]] is built around an all-Python IRC client, [http://urk.sourceforge.net/ Urk] which is no longer maintained since 2007. Thus, its better to port the activity to a newer and a better all-python IRC library.
 
* [[Activities/IRC]] is significantly slower than other IRC clients available on other platforms. The reason being its not multi-threaded. Thus, adding multi-threading support will be very useful.
 
* [[Activities/IRC]] is missing some useful features including sound on highlight (play a sound when the user is highlighted in a channel), user info (whois data) and many others. Look at some popular IRC clients running on other platforms and research about the features which can be added to [[Activities/IRC]] and how can they be added.
 
 
Requires familiarity with Python and IRC protocol specifications.
 
 
''Mentor'': [[User:Aneesh Dogra]]
 
 
''Co-mentor'': [[User:RafaelOrtiz]]
 
  
 
=== Activity Development Framework ===
 
=== Activity Development Framework ===
Line 140: Line 160:
  
 
''Contact'': [[User:Francis]]
 
''Contact'': [[User:Francis]]
=== Chat Activity with translation ===
 
[[File:Chat.JPG|300px]]
 
*'''Above ^ Example of a chat where to 2 people connected by chat could not talk to each other.'''
 
: Due to language barrier
 
*Add a drop-down box that translates of the chat messages coming from another user.
 
:Similar to the private/shared drop down shown.
 
*This could work like the #sugar / #sugar-es channels on IRC
 
''Contact'': [[User:Satellit]]
 
  
''Co-mentor'': [[User:Aneesh Dogra]]
+
== Sugar Activities ==
 +
 
 +
=== Write Turtle Blocks in Turtle Blocks ===
 +
 
 +
In support of making Sugar as transparent and fungible as possible, we'd like to make it not just Free, but provide affordances for end-user modifications. Turtle Blocks is a possible stepping stone towards that end: a programming environment approachable by children as young as five-years old. So as a first step, let's write Turtle Blocks in Turtle Blocks. From that experience, we'll hopefully know how to approach the more general Sugar problem.
 +
 
 +
''Contact'': [[User:Walter]]
 +
 
 +
''Co-mentor'':Tony Forster
 +
 
 +
=== Portfolio videos ===
 +
 
 +
Working with the maintainer of [[Activities/Portfolio|Portfolio]] to add a mechanism for exporting .ogv (voice over still images) of a portfolio presentation. This is a request that has come from deployments: they'd like to be able to post videos of student work, which is currently available as a slide show with audio voice-over.
  
===Stereo data capture in Turtleart and Measure===
+
[[File:Portfolio-Tool.png|300px]]
Stereo input is supported by XO-1.5, 1.75 and 4 hardware but is disabled due to buggy software. (Could you please elaborate - Aneesh)
 
  
This is a possible project, if not too difficult.
+
A working knowlewdge of Python and some gstreamer skills are a must.
  
Possible mentors
+
''Contact'': [[User:Walter]]
  
Tony Forster
+
''Co-mentor:'' [[User:Aneesh Dogra]]
  
Walter (if he is OK with it)
+
=== Implement collaboration in Paint Activity ===
  
 +
Paint Activity does not implement collaboration yet. The easy part is send the mouse positions and draw in the different machines, but you need have the status of the different tools used, copy/paste operations and undo/redo. Another task to do is port the graphics operations to cairo.
  
===Finish work on Ubuntu Sugar===
+
Requires familiarity with Python.
This could be a series of tasks to update and complete the porting of sugar in Ubuntu.
 
: Finish work started by dfarning
 
::'''ubuntu-sugar-remix'''
 
*Previous Ubuntu sugar effort headed by David Farning
 
:wiki :https://wiki.ubuntu.com/Sugar
 
:Download files: http://people.sugarlabs.org/dfarning/
 
  
*Browse
+
''Contact'': [[User:Godiard]]
:Never worked
 
:: had to install [http://people.sugarlabs.org/Tgillard/Surf-115.xo surf-115.xo] as work-around
 
#This allowed installation of [http://activities.sugarlabs.org/ activities] from ASLO
 
#Install activites using:[[Sugar_Creation_Kit#Copy_with_drag_.26_drop|Drag-Drop from 2nd USB]]
 
====Proposed work: Fix sugar and bring up to current sugar version 0.98====
 
:Currently 0.90; 0.88, 0.86 in Ubuntu
 
*[[Ubuntu#sweets-sugar_0.94_does_work_in_Ubuntu_12.10_.28unity_and_cinnamon.29|sweets-sugar_0.94_does_work_in_Ubuntu_12.10]]
 
*Nice version of sugar with ''Dextrose'' features.
 
:Shares features with software used on XO laptops.
 
::''Contact'': alsroot on #sugar
 
=====Example of install of Sugar with ''Synaptic'' in [[Tuquito| Tuquito ]]=====
 
:Multilanguage Ubuntu 12.04 LTS
 
*Testing 03/22/2013
 
:System Tools/Control Center/Add/Remove programs with Synaptic:
 
::Search: "sugar" check [x] sugar-session-0.90
 
::Apply
 
*Installs working sugar-emulator which sees jabber
 
:Known Bug in sugar 0.90: the users XO icon disappears in f1 screen within a few minutes.
 
::Sugar 0.90 is no longer supported so this will not be fixed.
 
:[f1] screen showing sugar neighborhood:
 
[[File:Tuquito-6-jabber.png|300px]]
 
:Only 2 activities are installed and they fail to start:
 
::Turtle Art  98
 
::Pippy      37   
 
  
*This is an example of one of the many; outdated and incomplete [[Sugar_Creation_Kit#Linux_distributions_where_Sugar_is_available|Distributions based on Ubuntu where sugar is available]] :
+
=== IRC Activity fixes ===
  
''Mentor'': needed
+
* [[Activities/IRC]] is built around an all-Python IRC client, [http://urk.sourceforge.net/ Urk] which is no longer maintained since 2007. Thus, its better to port the activity to a newer and a better all-python IRC library.
 +
* [[Activities/IRC]] is significantly slower than other IRC clients available on other platforms. The reason being its not multi-threaded. Thus, adding multi-threading support will be very useful.
 +
* [[Activities/IRC]] is missing some useful features including sound on highlight (play a sound when the user is highlighted in a channel), user info (whois data) and many others. Look at some popular IRC clients running on other platforms and research about the features which can be added to [[Activities/IRC]] and how can they be added.
  
''Contact'': [[User:Satellit]]
+
Requires familiarity with Python and IRC protocol specifications.
  
=== Sugar Framework for writing activity in full HTML5 ===
+
''Mentor'': [[User:Aneesh Dogra]]
  
[[File:Sugarhtml5.png|300px]]
+
''Co-mentor'': [[User:RafaelOrtiz]]
  
The objective is to develop a JavaScript framework allowing to write Sugar activities in full HTML5/JavaScript. The framework will expose to JavaScript an API to call Sugar features:
+
=== Chat Activity with translation ===
* Journal/Datastore,
 
* Collaboration/Telepathy,
 
* Toolbar handling,
 
* Sugar look&feel - for example via a CSS style sheet usable on HTML controls
 
* Access to Sugar settings (buddy name, colors, current language, ...),
 
* View source.
 
Like PhoneGap/Cordova, the framework will come with a template to develop and package easily a new HTML5 activity. A basic tutorial will be include too.
 
The work could be inspired by the work done with Enyo Framework in [http://booki.flossmanuals.net/make-your-own-sugar-activities/_draft/_v/1.0/developing-sugar-activities-using-html5/ 1]. By the way, the resulting framework should be JavaScript framework agnostic (no need for jQuery, Enyo, ...).
 
  
''Mentor'': [mailto:lionel@olpc-france.org Lionel Laské]
+
[[File:Chat.JPG|300px]]
 +
*'''Above ^ Example of a chat where to 2 people connected by chat could not talk to each other.'''
 +
: Due to language barrier
 +
*Add a drop-down box that translates of the chat messages coming from another user.
 +
:Similar to the private/shared drop down shown.
 +
*This could work like the #sugar / #sugar-es channels on IRC
 +
''Contact'': [[User:Satellit]]
  
''Co-Mentor'': needed
+
''Co-mentor'': [[User:Aneesh Dogra]]

Revision as of 08:41, 26 March 2013

A draft copy of our application

Project candidates

A list of projects potential participants might contribute within GSoC program. Every project is shortly described with mentioning secondary skills for possible participants (the primal skill is desire to do something useful).

Note
Potential mentors, please feel free to add ideas to this list. Also, feel free to add your name to a project you'd be willing to co-mentor.
Note
Potential students, more project ideas can be found on our Features page.

Sugar Core

Sugar Framework for writing activity in full HTML5

Sugarhtml5.png

The objective is to develop a JavaScript framework allowing to write Sugar activities in full HTML5/JavaScript. The framework will expose to JavaScript an API to call Sugar features:

  • Journal/Datastore,
  • Collaboration/Telepathy,
  • Toolbar handling,
  • Sugar look&feel - for example via a CSS style sheet usable on HTML controls
  • Access to Sugar settings (buddy name, colors, current language, ...),
  • View source.

Like PhoneGap/Cordova, the framework will come with a template to develop and package easily a new HTML5 activity. A basic tutorial will be include too. The work could be inspired by the work done with Enyo Framework in 1. By the way, the resulting framework should be JavaScript framework agnostic (no need for jQuery, Enyo, ...).

Mentor: Lionel Laské

Co-Mentor: Daniel Narvaez

Unified journal view

Rather than viewing the details of a Journal entry on a separate page, the idea is to make the details appear in an expandable in-line format on the main Journal view. The look and feel would be more like Google+ or Facebook. Performance will be a major challenge.

Journal-02.jpeg

This project requires some working knowledge of the low-level Sugar Journal and datastore code.

Contact: User:Walter

Plugin support

A number of activities, notably Turtle Art, are supporting plugins -- the ability to extend features by downloading additional modules. However, the mechanism for installing plugins is anything but friendly. It would be nice to design a uniform plugin bundle type and modify the activity installer to recognize this new type. Caveats include dependencies -- presumably the plugin would take care of that -- and version control -- plugins are often incumbent upon a specific version of an activity. ASLO hosting] should also be considered.

Strong Python skills and experience with Sugar toolkit required.

Contact: User:Walter

Co-mentor: User:Aneesh Dogra

Co-mentor: User:Francis

End-user modifications of Sugar source

We have an existing mechanism for duplicating and modifying Sugar activities: a copy of the bundle can be creaed in ~/Activities, where it can be modified by the end user. We also have a mechanism for viewing the Sugar toolkit source, but no such convenient way for making changes without risking messing up the system. While it should be easy enough to make a duplicate copy in the user's home directory, and to change the Python paths to use the modified code, we need some mechanism -- presumably at boot -- to choose which version to run: the installed version or the modified version.

Strong Python skills and experience with Sugar toolkit required.

Contact: User:Walter

Project sharing website

Create a Project Hosting Site similar to the Scratch website where kids can share the projects they have created using various Sugar Activities. The site should foster collaboration and sharing of projects. The Web Site should be built using a free web framework so that it can be installed at deployment sites. Some features include:

  • Ability to engage and connect with friends and classmates using various Social Networking sites/techniques.
  • Ability to post projects from various Sugar Activities (ex: Turtle Blocks, Etoys, Memorize, Physics, etc.)
  • Separate landing pages for different audiences (kids, teachers, parents, etc)
  • Section to share kid created art from projects
  • Ability for users to create galleries (of their own projects, favorite projects, subject specific topics, etc).
  • Ability to have “private classroom spaces”
  • Tools to support community management of the site
  • Multi-language support

Contact: User:MrSteve

Co-mentor: User:dogi

Sugar as a Service website

Create a Site for managing multiple "Sugar in a Browser" sessions like treehouse or broadway gnome Some features include:

Contact: User:dogi

Co-mentor: User:Aneesh Dogra

Finish work on Ubuntu Sugar

This could be a series of tasks to update and complete the porting of Sugar in Ubuntu.

Finish work started by dfarning
ubuntu-sugar-remix
  • Previous Ubuntu sugar effort headed by David Farning
wiki :https://wiki.ubuntu.com/Sugar
Download files: http://people.sugarlabs.org/dfarning/
  • Browse
Never worked
had to install surf-115.xo as work-around
  1. This allowed installation of activities from ASLO
  2. Install activites using:Drag-Drop from 2nd USB

Proposed work: Fix sugar and bring up to current sugar version 0.98

Currently 0.90; 0.88, 0.86 in Ubuntu
Shares features with software used on XO laptops.
Contact: alsroot on #sugar
Example of install of Sugar with Synaptic in Tuquito
Multilanguage Ubuntu 12.04 LTS
  • Testing 03/22/2013
System Tools/Control Center/Add/Remove programs with Synaptic:
Search: "sugar" check [x] sugar-session-0.90
Apply
  • Installs working sugar-emulator which sees jabber
Known Bug in sugar 0.90: the users XO icon disappears in f1 screen within a few minutes.
Sugar 0.90 is no longer supported so this will not be fixed.
[f1] screen showing sugar neighborhood:

Tuquito-6-jabber.png

Only 2 activities are installed and they fail to start:
Turtle Art 98
Pippy 37

Mentor: needed

Contact: User:Satellit

Implement help mechanism for activities using Mallard

Mallard is a markup language that makes it easy to provide user help. It would be a nice feature to add Mallard-like help to activities, accessed through a mechanism similar to the view source mechanism. We need to sort through two issues: integration into Sugar and intergration into our i18n / L10n system.

Contact: User:Walter

Co-mentor: User:Aneesh Dogra

Co-mentor: User:Francis

Activity Development Framework

This framework should allow to:

  • Make toolbars from factories removing many lines of code.
  • Start a project through typing a command.
  • Doing collaboration easier to implement.
  • Any other work which makes the development process hard and can be framed.

Contact: User:Francis

ASLO Enhancements

The current Activity Library is based in an old version of the Mozilla Add-ons Library.

This project is divided in three parts:

  • Update the old platform and have the corresponding modifications to distribute Sugar Activities instead of Mozilla Plugins.
  • Add an activity manager to the control panel. Allowing the installation/update of activities from ASLO.
  • Add to the Sugar Bundle Builder a way to auto-upload activities to ASLO.

Contact: User:Francis

Sugar Activities

Write Turtle Blocks in Turtle Blocks

In support of making Sugar as transparent and fungible as possible, we'd like to make it not just Free, but provide affordances for end-user modifications. Turtle Blocks is a possible stepping stone towards that end: a programming environment approachable by children as young as five-years old. So as a first step, let's write Turtle Blocks in Turtle Blocks. From that experience, we'll hopefully know how to approach the more general Sugar problem.

Contact: User:Walter

Co-mentor:Tony Forster

Portfolio videos

Working with the maintainer of Portfolio to add a mechanism for exporting .ogv (voice over still images) of a portfolio presentation. This is a request that has come from deployments: they'd like to be able to post videos of student work, which is currently available as a slide show with audio voice-over.

Portfolio-Tool.png

A working knowlewdge of Python and some gstreamer skills are a must.

Contact: User:Walter

Co-mentor: User:Aneesh Dogra

Implement collaboration in Paint Activity

Paint Activity does not implement collaboration yet. The easy part is send the mouse positions and draw in the different machines, but you need have the status of the different tools used, copy/paste operations and undo/redo. Another task to do is port the graphics operations to cairo.

Requires familiarity with Python.

Contact: User:Godiard

IRC Activity fixes

  • Activities/IRC is built around an all-Python IRC client, Urk which is no longer maintained since 2007. Thus, its better to port the activity to a newer and a better all-python IRC library.
  • Activities/IRC is significantly slower than other IRC clients available on other platforms. The reason being its not multi-threaded. Thus, adding multi-threading support will be very useful.
  • Activities/IRC is missing some useful features including sound on highlight (play a sound when the user is highlighted in a channel), user info (whois data) and many others. Look at some popular IRC clients running on other platforms and research about the features which can be added to Activities/IRC and how can they be added.

Requires familiarity with Python and IRC protocol specifications.

Mentor: User:Aneesh Dogra

Co-mentor: User:RafaelOrtiz

Chat Activity with translation

Chat.JPG

  • Above ^ Example of a chat where to 2 people connected by chat could not talk to each other.
Due to language barrier
  • Add a drop-down box that translates of the chat messages coming from another user.
Similar to the private/shared drop down shown.
  • This could work like the #sugar / #sugar-es channels on IRC

Contact: User:Satellit

Co-mentor: User:Aneesh Dogra