https://wiki.sugarlabs.org/api.php?action=feedcontributions&user=Assim&feedformat=atomSugar Labs - User contributions [en]2024-03-29T13:21:34ZUser contributionsMediaWiki 1.35.2https://wiki.sugarlabs.org/index.php?title=Activities/Listen_Spell&diff=27701Activities/Listen Spell2009-04-20T14:52:53Z<p>Assim: Listen Spell moved to Activities/Listen Spell over redirect</p>
<hr />
<div>== Listen Spell ==<br />
== Idea ==<br />
The idea is to develop an activity which would help children to learn new words, improve their vocabulary and pronunciation of words. The activity would speak out a randomly selected word from a list of words and the user is expected to spell the word correctly. For voice synthesis activity would be using Speech-Dispatcher and for the list of words it will have a custom dictionary. This activity is an extension of TalknType (http://wiki.laptop.org/go/Talkntype)<br />
== Need ==<br />
To learn any language spoken out in any part of this universe we firstly need to learn its building blocks i.e. words, their pronunciation and how they are spelled. By the side, Grammar of course has its preference. This project aims to provide an activity which would help children to learn new words, their pronunciation, the way they are spelled and to some extent its meaning. This activity is very much aligned to the concept constructive learning. The activity pronounces the word which user has entered and user can "Hear" the difference between two sounds.<br />
== Use Case Scenario ==<br />
A simple use case scenario of the Test Mode is as follows<br />
* User opens the activity and enters the difficulty level of which he/she would like to hear words.<br />
* A random word would be selected and spoken out from the corresponding level-word list. e.g. "Spell Ocean" would be spoken out.<br />
* User is required to spell the word correctly. (Time limit can be optional)<br />
* The activity would speak out each letter as the user types and the whole word as user submit the word.(This will help user to "feel" the difference between his spelling and the correct one.) This option can be disabled in case of group test (explained further).<br />
* There would be an option to repeat the word and also for the hint.<br />
* The hint option will either give user the meaning of the word or its usage in the sentence or image if possible. E.g. for Ocean it can either speak out its usage "The ocean is full of water" or can print its definition on screen i.e. "One of the five large bodies of water separating the continents".<br />
* User can quit or change the level any time during the game.<br />
To make user experience more lively, sounds for different events (Like activity start, Correct answer, Wrong Answer) would be used.<br />
== Level Description ==<br />
Level of a word is decided by ranking them. The ranking algorithm has been explained in the report. An example of level has been given below.<br />
* Initial level would include three to four letter words<br />
** e.g. cat, dog, tree, cup, bear etc<br />
* Medium level would contain five to six letters words<br />
** e.g. monkey, mouse, earth, plane, toffee etc<br />
* Hard level: Seven or more letters<br />
** e.g. computer, Mississippi, dictionary etc<br />
* Professional level (If included) would have complete sentences.<br />
== Implemented features ==<br />
Following are the Implemented features for the activity<br />
* Word source: - Word source is a wordnet dictionary with about 77k words. All words have been ranked and divided into levels so that it is easy to get word list of desired level. This dictionary has been customized to a very high extent removing all the unnecessary data and keeping only the required one. This has made the size of dictionary very small. It has been stored in SQLite data format for easy access.<br />
* Implementation of "Hint": - The hint consists of word meaning, with what part of speech it has been used, its sample usage etc. All these data has been stored with the dictionary itself for easy access.<br />
* Speech-dispatcher: - The voicing has been done using speech dispatcher which would eventually be using espeak for synthesis. Espeak supports more than 30 international languages.<br />
* Voice configuration: Option to edit voice configuration like volume, pitch, rate, language of the words and voice, gender of the voice etc.<br />
* Preferences to choose level of “Hint”: i.e. to select from word usage or word definition or images if possible.<br />
* Save option: The Game can be saved into a configuration file and replayed from the previous state. <br />
== Proposed Features ==<br />
* User defined word list: - This would facilitate users to add their own word list which can help in conducting a small group test. Option to add words through mesh network would be help in large group/class test.<br />
* Multiplayer game over mesh network: - (Future Work) Users can challenge each other over the network. One XO will then act as a server which would generate the word list for all the clients. All the users would receive same word list with limited retry option for each word after which next word would be given to user. The one who spelled most correct words in limited time wins. Option to speak each letter aloud would be disabled in this case.<br />
* Memory tool (Future Work):- A tutor mode in which activity repeats the word again and again until the spelling is absorbed into child's mind.<br />
* Input Methods :- Input Methods would be exposed externally so that other input methods(Like Handwriting and Speech recognition) could be incorporated<br />
== Implementation Details ==<br />
* For the word source we have used wordnet dictionary which contains about 1.5 lakh words with their meaning, sample usage, preposition etc properly mapped. The data for “hint” is stored with the dictionary only and is fetched from there.<br />
* Before making the dictionary usable it has been properly formatted. It contains words like 10mm or double words which are not going to be used for our purpose. Also there are many words which are probably unheard of by school children. We have use aspell to do this. The whole dictionary has been passed through aspell which contains most commonly used words only and thus filtering out the unwanted words. After this All the words are ranked based upon their usage on the internet. Using Yahoo BOSS api’s we have stored the number of search result each word has with the corresponding word. Based on these data all the words have been ranked and combining the word length with its length they have been categorized into 15 different levels.<br />
* Speech-Dispatcher: Speech-Dispatcher (http://www.freebsoft.org/speechd) is a socket-connection based speech server which provides speech APIs in many languages including Python and C. I had a discussion with OLPC developers where considering the need of speech server in XO they agreed to ship this in XO once its RPM is approved by Fedora Package Maintainers. Its RPM is under review process and should get approved soon. I have already got approval for its dependency Dotconf RPM<br />
* Language of implementation: Python<br />
* GUI: All the GUI part would be done in PyGTK and Glade<br />
* Parser for configuration files and dictionary data: OLPC includes many python modules which also include expat xml parser. This module can be used to parse the data and extract the information required<br />
* To have access over mesh network:- PresenceService DBUS API would be used<br />
== Dictionary ==<br />
=== Structure ===<br />
[[Image:Database.pdf|Dictionary Structure]]<br />
<br />
== Application Structure ==<br />
The application has been designed in a very efficient way. Following diagram will clear all the things:<br />
<br />
[[Image:Structure.jpg|200px]]<br />
<br/><br />
Figure 1: Application Structure<br />
<br/><br />
Here we have used the pre-implemented wrapper for espeak that is Speech-Dispatcher. We have designed a wrapper class for managing the dictionary. All the operation performed in the dictionary is through this wrapper only thus maintaining the consistence of the dictionary. The GUI part has been kept as a separate class. All the application logic is preformed in Application Logic. GUI class only looks after updating the GUI.<br />
Possible extension<br />
One could be a tutorial for learning languages using this activity like<br />
* The activity would teach basic sounding vowels like a as in cat, e as in bed, air as in hair etc<br />
* Sounds of consonants like b as in bed, ch as in change, d as in day etc<br />
* Teaching the sound of the whole word<br />
<br />
It would be great if children enters the words and get to know how to pronounce<br />
<br />
== ScreenShots ==<br />
[[Image:Las-ss1.jpg|200px|Home View]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss2.jpg|200px|Using Hint option]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss3.jpg|200px|Voice Configuration Panel]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss4.jpg|200px|Changing Skill Level]]<br />
<br/><br />
<br />
== Code ==<br />
Source Code can be found [http://git.sugarlabs.org/projects/listen-spell here]<br />
<br />
XO package can be found [http://code.google.com/p/google-summer-of-code-2008-olpc/downloads/detail?name=Assim_Deodia.tar.gz&can=2&q=#makechanges here]<br />
<br />
==== Dependency ====<br />
* Speech Dispatcher dependency has been removed. clone from git to get the latest version.<br />
* For XO package hosted on Google, Speech Dispatcher is required. Its link can be found below<br />
==== File information ====<br />
* Dict.py – A wrapper class for dictionary<br />
* las.py – Application Logic<br />
* ListenSpell.py – Main class and the GUI class of the aplication<br />
<br />
== Resources ==<br />
<br />
# [http://www.freebsoft.org/speechd Speech Dispatcher]<br />
# [http://www.speaknspell.co.uk Speak & Spell]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Interviews&diff=27367Summer of Code/Interviews2009-04-13T19:38:42Z<p>Assim: /* Thurs Apr 16 */</p>
<hr />
<div>We would like to interview the candidates for Google Summer of Code under Sugar Labs. Please sign up for a time below. If you have been told the name of your provisional prospective mentor, and your mentor has put his/her preferred times below, please try to find a time which works for your mentor. (Note that mentor assignments are still in flux; if your provisional prospective mentor changes, we will try to accommodate your chosen time or reschedule at a convenient time for you.)<br />
<br />
Interviews will be conducted over IRC; even hours on #sugar-interview0 and half-hours on #sugar-interview1 . Please treat these like real rooms, ie, do not lurk unless you are a mentor. If you have some quick pre-interview questions, we will be in #sugar too.<br />
<br />
If you have specifically been told to sign up to interview, please sign up here. Even if your provisional prospective mentor has not indicated availability, put your available times, and your mentor will renegotiate with you later if necessary. We have invited the 9-10 proposals which are currently ranked highest, for the 4-6 slots we will probably get. However, we ''do'' want to interview you even if you have not specifically been invited; although your proposal is a long shot in that case, you may impress us, and in any case we'd like to talk to you about participating in Sugar outside of GSoC.<br />
<br />
Like many other organizations participating in GSoC, we have received more good applications than we will have funding from Google for. Almost all of our applications would be things that we'd really love to have you working on, even if we don't have space for you in GSoC. If you are interested in finishing your project and would like a mentor assigned even though we can't give you a slot, you can also contact us on the sugar-devel or gsoc mailing list and we'll work something out.<br />
<br />
== Sunday Apr 1 ==<br />
<br />
Mentors attending: Guido van Rossum, Linus Torvalds, Bill Gates ...<br />
<br />
* [http://www.timeanddate.com/counters/customcounter.html?day=1&month=04&year=2009&hour=14&min=0&sec=0&p0=0 1400 UTC]: [[User:example|example]] 18:11, 13 April 2009 (UTC) (Spanish interview preferred) (just an example - I used <nowiki>~~~~</nowiki> to add a signature, and added any special requests after.)<br />
<br />
== Wed Apr 15 ==<br />
<br />
Mentors attending: Jameson Quinn, [[User:BryanWB|BryanWB]], Luis G. Lira, [[User:Aa|aa]] ...<br />
<br />
* [http://www.timeanddate.com/counters/customcounter.html?day=15&month=04&year=2009&hour=14&min=0&sec=0&p0=0 1400 UTC]: Vamsi Krishna Davuluri (iwikiwi)<br />
<br />
* 1430 UTC: <br />
<br />
* 1500 UTC: Lucian Branescu (lucian1900)<br />
<br />
* 1530 UTC:<br />
<br />
== Thurs Apr 16 (Wed 15 in the western hemisphere) ==<br />
<br />
Mentors attending: Jameson Quinn, [[User:Aa|aa]], [[User:BryanWB|BryanWB]], [[User:Nrp|Nirav Patel]] ...<br />
<br />
* [http://www.timeanddate.com/counters/customcounter.html?day=16&month=04&year=2009&hour=0&min=0&sec=0&p0=0 0000 UTC]:<br />
<br />
* 0030 UTC:<br />
<br />
* 0100 UTC:<br />
<br />
* 0130 UTC:<br />
<br />
== Thurs Apr 16 ==<br />
<br />
Mentors attending: Jameson Quinn, Sayamindu Dasgupta, Assim Deodia ...<br />
<br />
* [http://www.timeanddate.com/counters/customcounter.html?day=16&month=04&year=2009&hour=18&min=0&sec=0&p0=0 1800 UTC]:<br />
<br />
* 1830 UTC:<br />
<br />
* 1900 UTC:<br />
<br />
* 1930 UTC:</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Activities/Listen_Spell&diff=24475Activities/Listen Spell2009-03-30T09:19:45Z<p>Assim: /* Code */</p>
<hr />
<div>== Listen Spell ==<br />
== Idea ==<br />
The idea is to develop an activity which would help children to learn new words, improve their vocabulary and pronunciation of words. The activity would speak out a randomly selected word from a list of words and the user is expected to spell the word correctly. For voice synthesis activity would be using Speech-Dispatcher and for the list of words it will have a custom dictionary. This activity is an extension of TalknType (http://wiki.laptop.org/go/Talkntype)<br />
== Need ==<br />
To learn any language spoken out in any part of this universe we firstly need to learn its building blocks i.e. words, their pronunciation and how they are spelled. By the side, Grammar of course has its preference. This project aims to provide an activity which would help children to learn new words, their pronunciation, the way they are spelled and to some extent its meaning. This activity is very much aligned to the concept constructive learning. The activity pronounces the word which user has entered and user can "Hear" the difference between two sounds.<br />
== Use Case Scenario ==<br />
A simple use case scenario of the Test Mode is as follows<br />
* User opens the activity and enters the difficulty level of which he/she would like to hear words.<br />
* A random word would be selected and spoken out from the corresponding level-word list. e.g. "Spell Ocean" would be spoken out.<br />
* User is required to spell the word correctly. (Time limit can be optional)<br />
* The activity would speak out each letter as the user types and the whole word as user submit the word.(This will help user to "feel" the difference between his spelling and the correct one.) This option can be disabled in case of group test (explained further).<br />
* There would be an option to repeat the word and also for the hint.<br />
* The hint option will either give user the meaning of the word or its usage in the sentence or image if possible. E.g. for Ocean it can either speak out its usage "The ocean is full of water" or can print its definition on screen i.e. "One of the five large bodies of water separating the continents".<br />
* User can quit or change the level any time during the game.<br />
To make user experience more lively, sounds for different events (Like activity start, Correct answer, Wrong Answer) would be used.<br />
== Level Description ==<br />
Level of a word is decided by ranking them. The ranking algorithm has been explained in the report. An example of level has been given below.<br />
* Initial level would include three to four letter words<br />
** e.g. cat, dog, tree, cup, bear etc<br />
* Medium level would contain five to six letters words<br />
** e.g. monkey, mouse, earth, plane, toffee etc<br />
* Hard level: Seven or more letters<br />
** e.g. computer, Mississippi, dictionary etc<br />
* Professional level (If included) would have complete sentences.<br />
== Implemented features ==<br />
Following are the Implemented features for the activity<br />
* Word source: - Word source is a wordnet dictionary with about 77k words. All words have been ranked and divided into levels so that it is easy to get word list of desired level. This dictionary has been customized to a very high extent removing all the unnecessary data and keeping only the required one. This has made the size of dictionary very small. It has been stored in SQLite data format for easy access.<br />
* Implementation of "Hint": - The hint consists of word meaning, with what part of speech it has been used, its sample usage etc. All these data has been stored with the dictionary itself for easy access.<br />
* Speech-dispatcher: - The voicing has been done using speech dispatcher which would eventually be using espeak for synthesis. Espeak supports more than 30 international languages.<br />
* Voice configuration: Option to edit voice configuration like volume, pitch, rate, language of the words and voice, gender of the voice etc.<br />
* Preferences to choose level of “Hint”: i.e. to select from word usage or word definition or images if possible.<br />
* Save option: The Game can be saved into a configuration file and replayed from the previous state. <br />
== Proposed Features ==<br />
* User defined word list: - This would facilitate users to add their own word list which can help in conducting a small group test. Option to add words through mesh network would be help in large group/class test.<br />
* Multiplayer game over mesh network: - (Future Work) Users can challenge each other over the network. One XO will then act as a server which would generate the word list for all the clients. All the users would receive same word list with limited retry option for each word after which next word would be given to user. The one who spelled most correct words in limited time wins. Option to speak each letter aloud would be disabled in this case.<br />
* Memory tool (Future Work):- A tutor mode in which activity repeats the word again and again until the spelling is absorbed into child's mind.<br />
* Input Methods :- Input Methods would be exposed externally so that other input methods(Like Handwriting and Speech recognition) could be incorporated<br />
== Implementation Details ==<br />
* For the word source we have used wordnet dictionary which contains about 1.5 lakh words with their meaning, sample usage, preposition etc properly mapped. The data for “hint” is stored with the dictionary only and is fetched from there.<br />
* Before making the dictionary usable it has been properly formatted. It contains words like 10mm or double words which are not going to be used for our purpose. Also there are many words which are probably unheard of by school children. We have use aspell to do this. The whole dictionary has been passed through aspell which contains most commonly used words only and thus filtering out the unwanted words. After this All the words are ranked based upon their usage on the internet. Using Yahoo BOSS api’s we have stored the number of search result each word has with the corresponding word. Based on these data all the words have been ranked and combining the word length with its length they have been categorized into 15 different levels.<br />
* Speech-Dispatcher: Speech-Dispatcher (http://www.freebsoft.org/speechd) is a socket-connection based speech server which provides speech APIs in many languages including Python and C. I had a discussion with OLPC developers where considering the need of speech server in XO they agreed to ship this in XO once its RPM is approved by Fedora Package Maintainers. Its RPM is under review process and should get approved soon. I have already got approval for its dependency Dotconf RPM<br />
* Language of implementation: Python<br />
* GUI: All the GUI part would be done in PyGTK and Glade<br />
* Parser for configuration files and dictionary data: OLPC includes many python modules which also include expat xml parser. This module can be used to parse the data and extract the information required<br />
* To have access over mesh network:- PresenceService DBUS API would be used<br />
== Dictionary ==<br />
=== Structure ===<br />
[[Image:Database.pdf|Dictionary Structure]]<br />
<br />
== Application Structure ==<br />
The application has been designed in a very efficient way. Following diagram will clear all the things:<br />
<br />
[[Image:Structure.jpg|200px]]<br />
<br/><br />
Figure 1: Application Structure<br />
<br/><br />
Here we have used the pre-implemented wrapper for espeak that is Speech-Dispatcher. We have designed a wrapper class for managing the dictionary. All the operation performed in the dictionary is through this wrapper only thus maintaining the consistence of the dictionary. The GUI part has been kept as a separate class. All the application logic is preformed in Application Logic. GUI class only looks after updating the GUI.<br />
Possible extension<br />
One could be a tutorial for learning languages using this activity like<br />
* The activity would teach basic sounding vowels like a as in cat, e as in bed, air as in hair etc<br />
* Sounds of consonants like b as in bed, ch as in change, d as in day etc<br />
* Teaching the sound of the whole word<br />
<br />
It would be great if children enters the words and get to know how to pronounce<br />
<br />
== ScreenShots ==<br />
[[Image:Las-ss1.jpg|200px|Home View]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss2.jpg|200px|Using Hint option]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss3.jpg|200px|Voice Configuration Panel]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss4.jpg|200px|Changing Skill Level]]<br />
<br/><br />
<br />
== Code ==<br />
Source Code can be found [http://git.sugarlabs.org/projects/listen-spell here]<br />
<br />
XO package can be found [http://code.google.com/p/google-summer-of-code-2008-olpc/downloads/detail?name=Assim_Deodia.tar.gz&can=2&q=#makechanges here]<br />
<br />
==== Dependency ====<br />
* Speech Dispatcher dependency has been removed. clone from git to get the latest version.<br />
* For XO package hosted on Google, Speech Dispatcher is required. Its link can be found below<br />
==== File information ====<br />
* Dict.py – A wrapper class for dictionary<br />
* las.py – Application Logic<br />
* ListenSpell.py – Main class and the GUI class of the aplication<br />
<br />
== Resources ==<br />
<br />
# [http://www.freebsoft.org/speechd Speech Dispatcher]<br />
# [http://www.speaknspell.co.uk Speak & Spell]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Activities/Listen_Spell&diff=24279Activities/Listen Spell2009-03-28T06:06:12Z<p>Assim: /* Code */</p>
<hr />
<div>== Listen Spell ==<br />
== Idea ==<br />
The idea is to develop an activity which would help children to learn new words, improve their vocabulary and pronunciation of words. The activity would speak out a randomly selected word from a list of words and the user is expected to spell the word correctly. For voice synthesis activity would be using Speech-Dispatcher and for the list of words it will have a custom dictionary. This activity is an extension of TalknType (http://wiki.laptop.org/go/Talkntype)<br />
== Need ==<br />
To learn any language spoken out in any part of this universe we firstly need to learn its building blocks i.e. words, their pronunciation and how they are spelled. By the side, Grammar of course has its preference. This project aims to provide an activity which would help children to learn new words, their pronunciation, the way they are spelled and to some extent its meaning. This activity is very much aligned to the concept constructive learning. The activity pronounces the word which user has entered and user can "Hear" the difference between two sounds.<br />
== Use Case Scenario ==<br />
A simple use case scenario of the Test Mode is as follows<br />
* User opens the activity and enters the difficulty level of which he/she would like to hear words.<br />
* A random word would be selected and spoken out from the corresponding level-word list. e.g. "Spell Ocean" would be spoken out.<br />
* User is required to spell the word correctly. (Time limit can be optional)<br />
* The activity would speak out each letter as the user types and the whole word as user submit the word.(This will help user to "feel" the difference between his spelling and the correct one.) This option can be disabled in case of group test (explained further).<br />
* There would be an option to repeat the word and also for the hint.<br />
* The hint option will either give user the meaning of the word or its usage in the sentence or image if possible. E.g. for Ocean it can either speak out its usage "The ocean is full of water" or can print its definition on screen i.e. "One of the five large bodies of water separating the continents".<br />
* User can quit or change the level any time during the game.<br />
To make user experience more lively, sounds for different events (Like activity start, Correct answer, Wrong Answer) would be used.<br />
== Level Description ==<br />
Level of a word is decided by ranking them. The ranking algorithm has been explained in the report. An example of level has been given below.<br />
* Initial level would include three to four letter words<br />
** e.g. cat, dog, tree, cup, bear etc<br />
* Medium level would contain five to six letters words<br />
** e.g. monkey, mouse, earth, plane, toffee etc<br />
* Hard level: Seven or more letters<br />
** e.g. computer, Mississippi, dictionary etc<br />
* Professional level (If included) would have complete sentences.<br />
== Implemented features ==<br />
Following are the Implemented features for the activity<br />
* Word source: - Word source is a wordnet dictionary with about 77k words. All words have been ranked and divided into levels so that it is easy to get word list of desired level. This dictionary has been customized to a very high extent removing all the unnecessary data and keeping only the required one. This has made the size of dictionary very small. It has been stored in SQLite data format for easy access.<br />
* Implementation of "Hint": - The hint consists of word meaning, with what part of speech it has been used, its sample usage etc. All these data has been stored with the dictionary itself for easy access.<br />
* Speech-dispatcher: - The voicing has been done using speech dispatcher which would eventually be using espeak for synthesis. Espeak supports more than 30 international languages.<br />
* Voice configuration: Option to edit voice configuration like volume, pitch, rate, language of the words and voice, gender of the voice etc.<br />
* Preferences to choose level of “Hint”: i.e. to select from word usage or word definition or images if possible.<br />
* Save option: The Game can be saved into a configuration file and replayed from the previous state. <br />
== Proposed Features ==<br />
* User defined word list: - This would facilitate users to add their own word list which can help in conducting a small group test. Option to add words through mesh network would be help in large group/class test.<br />
* Multiplayer game over mesh network: - (Future Work) Users can challenge each other over the network. One XO will then act as a server which would generate the word list for all the clients. All the users would receive same word list with limited retry option for each word after which next word would be given to user. The one who spelled most correct words in limited time wins. Option to speak each letter aloud would be disabled in this case.<br />
* Memory tool (Future Work):- A tutor mode in which activity repeats the word again and again until the spelling is absorbed into child's mind.<br />
* Input Methods :- Input Methods would be exposed externally so that other input methods(Like Handwriting and Speech recognition) could be incorporated<br />
== Implementation Details ==<br />
* For the word source we have used wordnet dictionary which contains about 1.5 lakh words with their meaning, sample usage, preposition etc properly mapped. The data for “hint” is stored with the dictionary only and is fetched from there.<br />
* Before making the dictionary usable it has been properly formatted. It contains words like 10mm or double words which are not going to be used for our purpose. Also there are many words which are probably unheard of by school children. We have use aspell to do this. The whole dictionary has been passed through aspell which contains most commonly used words only and thus filtering out the unwanted words. After this All the words are ranked based upon their usage on the internet. Using Yahoo BOSS api’s we have stored the number of search result each word has with the corresponding word. Based on these data all the words have been ranked and combining the word length with its length they have been categorized into 15 different levels.<br />
* Speech-Dispatcher: Speech-Dispatcher (http://www.freebsoft.org/speechd) is a socket-connection based speech server which provides speech APIs in many languages including Python and C. I had a discussion with OLPC developers where considering the need of speech server in XO they agreed to ship this in XO once its RPM is approved by Fedora Package Maintainers. Its RPM is under review process and should get approved soon. I have already got approval for its dependency Dotconf RPM<br />
* Language of implementation: Python<br />
* GUI: All the GUI part would be done in PyGTK and Glade<br />
* Parser for configuration files and dictionary data: OLPC includes many python modules which also include expat xml parser. This module can be used to parse the data and extract the information required<br />
* To have access over mesh network:- PresenceService DBUS API would be used<br />
== Dictionary ==<br />
=== Structure ===<br />
[[Image:Database.pdf|Dictionary Structure]]<br />
<br />
== Application Structure ==<br />
The application has been designed in a very efficient way. Following diagram will clear all the things:<br />
<br />
[[Image:Structure.jpg|200px]]<br />
<br/><br />
Figure 1: Application Structure<br />
<br/><br />
Here we have used the pre-implemented wrapper for espeak that is Speech-Dispatcher. We have designed a wrapper class for managing the dictionary. All the operation performed in the dictionary is through this wrapper only thus maintaining the consistence of the dictionary. The GUI part has been kept as a separate class. All the application logic is preformed in Application Logic. GUI class only looks after updating the GUI.<br />
Possible extension<br />
One could be a tutorial for learning languages using this activity like<br />
* The activity would teach basic sounding vowels like a as in cat, e as in bed, air as in hair etc<br />
* Sounds of consonants like b as in bed, ch as in change, d as in day etc<br />
* Teaching the sound of the whole word<br />
<br />
It would be great if children enters the words and get to know how to pronounce<br />
<br />
== ScreenShots ==<br />
[[Image:Las-ss1.jpg|200px|Home View]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss2.jpg|200px|Using Hint option]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss3.jpg|200px|Voice Configuration Panel]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss4.jpg|200px|Changing Skill Level]]<br />
<br/><br />
<br />
== Code ==<br />
Source Code can be found [http://git.sugarlabs.org/projects/listen-spell here]<br />
<br />
XO package can be found [http://code.google.com/p/google-summer-of-code-2008-olpc/downloads/detail?name=Assim_Deodia.tar.gz&can=2&q=#makechanges here]<br />
<br />
==== Dependency ====<br />
* Speech Dispatcher is required for this activity to run. Its link can be found below<br />
==== File information ====<br />
* Dict.py – A wrapper class for dictionary<br />
* las.py – Application Logic<br />
* ListenSpell.py – Main class and the GUI class of the aplication<br />
<br />
== Resources ==<br />
<br />
# [http://www.freebsoft.org/speechd Speech Dispatcher]<br />
# [http://www.speaknspell.co.uk Speak & Spell]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Activities/Listen_Spell&diff=23721Activities/Listen Spell2009-03-23T17:02:42Z<p>Assim: /* Code */</p>
<hr />
<div>== Listen Spell ==<br />
== Idea ==<br />
The idea is to develop an activity which would help children to learn new words, improve their vocabulary and pronunciation of words. The activity would speak out a randomly selected word from a list of words and the user is expected to spell the word correctly. For voice synthesis activity would be using Speech-Dispatcher and for the list of words it will have a custom dictionary. This activity is an extension of TalknType (http://wiki.laptop.org/go/Talkntype)<br />
== Need ==<br />
To learn any language spoken out in any part of this universe we firstly need to learn its building blocks i.e. words, their pronunciation and how they are spelled. By the side, Grammar of course has its preference. This project aims to provide an activity which would help children to learn new words, their pronunciation, the way they are spelled and to some extent its meaning. This activity is very much aligned to the concept constructive learning. The activity pronounces the word which user has entered and user can "Hear" the difference between two sounds.<br />
== Use Case Scenario ==<br />
A simple use case scenario of the Test Mode is as follows<br />
* User opens the activity and enters the difficulty level of which he/she would like to hear words.<br />
* A random word would be selected and spoken out from the corresponding level-word list. e.g. "Spell Ocean" would be spoken out.<br />
* User is required to spell the word correctly. (Time limit can be optional)<br />
* The activity would speak out each letter as the user types and the whole word as user submit the word.(This will help user to "feel" the difference between his spelling and the correct one.) This option can be disabled in case of group test (explained further).<br />
* There would be an option to repeat the word and also for the hint.<br />
* The hint option will either give user the meaning of the word or its usage in the sentence or image if possible. E.g. for Ocean it can either speak out its usage "The ocean is full of water" or can print its definition on screen i.e. "One of the five large bodies of water separating the continents".<br />
* User can quit or change the level any time during the game.<br />
To make user experience more lively, sounds for different events (Like activity start, Correct answer, Wrong Answer) would be used.<br />
== Level Description ==<br />
Level of a word is decided by ranking them. The ranking algorithm has been explained in the report. An example of level has been given below.<br />
* Initial level would include three to four letter words<br />
** e.g. cat, dog, tree, cup, bear etc<br />
* Medium level would contain five to six letters words<br />
** e.g. monkey, mouse, earth, plane, toffee etc<br />
* Hard level: Seven or more letters<br />
** e.g. computer, Mississippi, dictionary etc<br />
* Professional level (If included) would have complete sentences.<br />
== Implemented features ==<br />
Following are the Implemented features for the activity<br />
* Word source: - Word source is a wordnet dictionary with about 77k words. All words have been ranked and divided into levels so that it is easy to get word list of desired level. This dictionary has been customized to a very high extent removing all the unnecessary data and keeping only the required one. This has made the size of dictionary very small. It has been stored in SQLite data format for easy access.<br />
* Implementation of "Hint": - The hint consists of word meaning, with what part of speech it has been used, its sample usage etc. All these data has been stored with the dictionary itself for easy access.<br />
* Speech-dispatcher: - The voicing has been done using speech dispatcher which would eventually be using espeak for synthesis. Espeak supports more than 30 international languages.<br />
* Voice configuration: Option to edit voice configuration like volume, pitch, rate, language of the words and voice, gender of the voice etc.<br />
* Preferences to choose level of “Hint”: i.e. to select from word usage or word definition or images if possible.<br />
* Save option: The Game can be saved into a configuration file and replayed from the previous state. <br />
== Proposed Features ==<br />
* User defined word list: - This would facilitate users to add their own word list which can help in conducting a small group test. Option to add words through mesh network would be help in large group/class test.<br />
* Multiplayer game over mesh network: - (Future Work) Users can challenge each other over the network. One XO will then act as a server which would generate the word list for all the clients. All the users would receive same word list with limited retry option for each word after which next word would be given to user. The one who spelled most correct words in limited time wins. Option to speak each letter aloud would be disabled in this case.<br />
* Memory tool (Future Work):- A tutor mode in which activity repeats the word again and again until the spelling is absorbed into child's mind.<br />
* Input Methods :- Input Methods would be exposed externally so that other input methods(Like Handwriting and Speech recognition) could be incorporated<br />
== Implementation Details ==<br />
* For the word source we have used wordnet dictionary which contains about 1.5 lakh words with their meaning, sample usage, preposition etc properly mapped. The data for “hint” is stored with the dictionary only and is fetched from there.<br />
* Before making the dictionary usable it has been properly formatted. It contains words like 10mm or double words which are not going to be used for our purpose. Also there are many words which are probably unheard of by school children. We have use aspell to do this. The whole dictionary has been passed through aspell which contains most commonly used words only and thus filtering out the unwanted words. After this All the words are ranked based upon their usage on the internet. Using Yahoo BOSS api’s we have stored the number of search result each word has with the corresponding word. Based on these data all the words have been ranked and combining the word length with its length they have been categorized into 15 different levels.<br />
* Speech-Dispatcher: Speech-Dispatcher (http://www.freebsoft.org/speechd) is a socket-connection based speech server which provides speech APIs in many languages including Python and C. I had a discussion with OLPC developers where considering the need of speech server in XO they agreed to ship this in XO once its RPM is approved by Fedora Package Maintainers. Its RPM is under review process and should get approved soon. I have already got approval for its dependency Dotconf RPM<br />
* Language of implementation: Python<br />
* GUI: All the GUI part would be done in PyGTK and Glade<br />
* Parser for configuration files and dictionary data: OLPC includes many python modules which also include expat xml parser. This module can be used to parse the data and extract the information required<br />
* To have access over mesh network:- PresenceService DBUS API would be used<br />
== Dictionary ==<br />
=== Structure ===<br />
[[Image:Database.pdf|Dictionary Structure]]<br />
<br />
== Application Structure ==<br />
The application has been designed in a very efficient way. Following diagram will clear all the things:<br />
<br />
[[Image:Structure.jpg|200px]]<br />
<br/><br />
Figure 1: Application Structure<br />
<br/><br />
Here we have used the pre-implemented wrapper for espeak that is Speech-Dispatcher. We have designed a wrapper class for managing the dictionary. All the operation performed in the dictionary is through this wrapper only thus maintaining the consistence of the dictionary. The GUI part has been kept as a separate class. All the application logic is preformed in Application Logic. GUI class only looks after updating the GUI.<br />
Possible extension<br />
One could be a tutorial for learning languages using this activity like<br />
* The activity would teach basic sounding vowels like a as in cat, e as in bed, air as in hair etc<br />
* Sounds of consonants like b as in bed, ch as in change, d as in day etc<br />
* Teaching the sound of the whole word<br />
<br />
It would be great if children enters the words and get to know how to pronounce<br />
<br />
== ScreenShots ==<br />
[[Image:Las-ss1.jpg|200px|Home View]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss2.jpg|200px|Using Hint option]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss3.jpg|200px|Voice Configuration Panel]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss4.jpg|200px|Changing Skill Level]]<br />
<br/><br />
<br />
== Code ==<br />
Source Code can be found [http://git.sugarlabs.org/projects/listen-spell| here]<br />
<br />
XO package can be found [http://code.google.com/p/google-summer-of-code-2008-olpc/downloads/detail?name=Assim_Deodia.tar.gz&can=2&q=#makechanges| here]<br />
<br />
==== Dependency ====<br />
* Speech Dispatcher is required for this activity to run. Its link can be found below<br />
==== File information ====<br />
* Dict.py – A wrapper class for dictionary<br />
* las.py – Application Logic<br />
* ListenSpell.py – Main class and the GUI class of the aplication<br />
<br />
== Resources ==<br />
<br />
# [http://www.freebsoft.org/speechd Speech Dispatcher]<br />
# [http://www.speaknspell.co.uk Speak & Spell]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Activities/Listen_Spell&diff=23720Activities/Listen Spell2009-03-23T17:02:06Z<p>Assim: /* Code */</p>
<hr />
<div>== Listen Spell ==<br />
== Idea ==<br />
The idea is to develop an activity which would help children to learn new words, improve their vocabulary and pronunciation of words. The activity would speak out a randomly selected word from a list of words and the user is expected to spell the word correctly. For voice synthesis activity would be using Speech-Dispatcher and for the list of words it will have a custom dictionary. This activity is an extension of TalknType (http://wiki.laptop.org/go/Talkntype)<br />
== Need ==<br />
To learn any language spoken out in any part of this universe we firstly need to learn its building blocks i.e. words, their pronunciation and how they are spelled. By the side, Grammar of course has its preference. This project aims to provide an activity which would help children to learn new words, their pronunciation, the way they are spelled and to some extent its meaning. This activity is very much aligned to the concept constructive learning. The activity pronounces the word which user has entered and user can "Hear" the difference between two sounds.<br />
== Use Case Scenario ==<br />
A simple use case scenario of the Test Mode is as follows<br />
* User opens the activity and enters the difficulty level of which he/she would like to hear words.<br />
* A random word would be selected and spoken out from the corresponding level-word list. e.g. "Spell Ocean" would be spoken out.<br />
* User is required to spell the word correctly. (Time limit can be optional)<br />
* The activity would speak out each letter as the user types and the whole word as user submit the word.(This will help user to "feel" the difference between his spelling and the correct one.) This option can be disabled in case of group test (explained further).<br />
* There would be an option to repeat the word and also for the hint.<br />
* The hint option will either give user the meaning of the word or its usage in the sentence or image if possible. E.g. for Ocean it can either speak out its usage "The ocean is full of water" or can print its definition on screen i.e. "One of the five large bodies of water separating the continents".<br />
* User can quit or change the level any time during the game.<br />
To make user experience more lively, sounds for different events (Like activity start, Correct answer, Wrong Answer) would be used.<br />
== Level Description ==<br />
Level of a word is decided by ranking them. The ranking algorithm has been explained in the report. An example of level has been given below.<br />
* Initial level would include three to four letter words<br />
** e.g. cat, dog, tree, cup, bear etc<br />
* Medium level would contain five to six letters words<br />
** e.g. monkey, mouse, earth, plane, toffee etc<br />
* Hard level: Seven or more letters<br />
** e.g. computer, Mississippi, dictionary etc<br />
* Professional level (If included) would have complete sentences.<br />
== Implemented features ==<br />
Following are the Implemented features for the activity<br />
* Word source: - Word source is a wordnet dictionary with about 77k words. All words have been ranked and divided into levels so that it is easy to get word list of desired level. This dictionary has been customized to a very high extent removing all the unnecessary data and keeping only the required one. This has made the size of dictionary very small. It has been stored in SQLite data format for easy access.<br />
* Implementation of "Hint": - The hint consists of word meaning, with what part of speech it has been used, its sample usage etc. All these data has been stored with the dictionary itself for easy access.<br />
* Speech-dispatcher: - The voicing has been done using speech dispatcher which would eventually be using espeak for synthesis. Espeak supports more than 30 international languages.<br />
* Voice configuration: Option to edit voice configuration like volume, pitch, rate, language of the words and voice, gender of the voice etc.<br />
* Preferences to choose level of “Hint”: i.e. to select from word usage or word definition or images if possible.<br />
* Save option: The Game can be saved into a configuration file and replayed from the previous state. <br />
== Proposed Features ==<br />
* User defined word list: - This would facilitate users to add their own word list which can help in conducting a small group test. Option to add words through mesh network would be help in large group/class test.<br />
* Multiplayer game over mesh network: - (Future Work) Users can challenge each other over the network. One XO will then act as a server which would generate the word list for all the clients. All the users would receive same word list with limited retry option for each word after which next word would be given to user. The one who spelled most correct words in limited time wins. Option to speak each letter aloud would be disabled in this case.<br />
* Memory tool (Future Work):- A tutor mode in which activity repeats the word again and again until the spelling is absorbed into child's mind.<br />
* Input Methods :- Input Methods would be exposed externally so that other input methods(Like Handwriting and Speech recognition) could be incorporated<br />
== Implementation Details ==<br />
* For the word source we have used wordnet dictionary which contains about 1.5 lakh words with their meaning, sample usage, preposition etc properly mapped. The data for “hint” is stored with the dictionary only and is fetched from there.<br />
* Before making the dictionary usable it has been properly formatted. It contains words like 10mm or double words which are not going to be used for our purpose. Also there are many words which are probably unheard of by school children. We have use aspell to do this. The whole dictionary has been passed through aspell which contains most commonly used words only and thus filtering out the unwanted words. After this All the words are ranked based upon their usage on the internet. Using Yahoo BOSS api’s we have stored the number of search result each word has with the corresponding word. Based on these data all the words have been ranked and combining the word length with its length they have been categorized into 15 different levels.<br />
* Speech-Dispatcher: Speech-Dispatcher (http://www.freebsoft.org/speechd) is a socket-connection based speech server which provides speech APIs in many languages including Python and C. I had a discussion with OLPC developers where considering the need of speech server in XO they agreed to ship this in XO once its RPM is approved by Fedora Package Maintainers. Its RPM is under review process and should get approved soon. I have already got approval for its dependency Dotconf RPM<br />
* Language of implementation: Python<br />
* GUI: All the GUI part would be done in PyGTK and Glade<br />
* Parser for configuration files and dictionary data: OLPC includes many python modules which also include expat xml parser. This module can be used to parse the data and extract the information required<br />
* To have access over mesh network:- PresenceService DBUS API would be used<br />
== Dictionary ==<br />
=== Structure ===<br />
[[Image:Database.pdf|Dictionary Structure]]<br />
<br />
== Application Structure ==<br />
The application has been designed in a very efficient way. Following diagram will clear all the things:<br />
<br />
[[Image:Structure.jpg|200px]]<br />
<br/><br />
Figure 1: Application Structure<br />
<br/><br />
Here we have used the pre-implemented wrapper for espeak that is Speech-Dispatcher. We have designed a wrapper class for managing the dictionary. All the operation performed in the dictionary is through this wrapper only thus maintaining the consistence of the dictionary. The GUI part has been kept as a separate class. All the application logic is preformed in Application Logic. GUI class only looks after updating the GUI.<br />
Possible extension<br />
One could be a tutorial for learning languages using this activity like<br />
* The activity would teach basic sounding vowels like a as in cat, e as in bed, air as in hair etc<br />
* Sounds of consonants like b as in bed, ch as in change, d as in day etc<br />
* Teaching the sound of the whole word<br />
<br />
It would be great if children enters the words and get to know how to pronounce<br />
<br />
== ScreenShots ==<br />
[[Image:Las-ss1.jpg|200px|Home View]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss2.jpg|200px|Using Hint option]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss3.jpg|200px|Voice Configuration Panel]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss4.jpg|200px|Changing Skill Level]]<br />
<br/><br />
<br />
== Code ==<br />
Source Code can be found [http://git.sugarlabs.org/projects/listen-spell| here]<br />
XO package can be found [http://code.google.com/p/google-summer-of-code-2008-olpc/downloads/detail?name=Assim_Deodia.tar.gz&can=2&q=#makechanges| here]<br />
<br />
==== Dependency ====<br />
* Speech Dispatcher is required for this activity to run. Its link can be found below<br />
==== File information ====<br />
* Dict.py – A wrapper class for dictionary<br />
* las.py – Application Logic<br />
* ListenSpell.py – Main class and the GUI class of the aplication<br />
<br />
== Resources ==<br />
<br />
# [http://www.freebsoft.org/speechd Speech Dispatcher]<br />
# [http://www.speaknspell.co.uk Speak & Spell]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Development_Team/Project_Ideas&diff=23298Development Team/Project Ideas2009-03-21T07:50:15Z<p>Assim: /* Listen Spell activity */</p>
<hr />
<div>This is a list of project ideas. For now the focus is on giving [[GSoC]] students an idea of the kind of thing we're looking for. It also includes dumping ground for less-explicitly-explained crazy ideas at the end.<br />
<br />
'''Priorities''': see the [http://lists.sugarlabs.org/archive/iaep/2009-March/004592.html ongoing discussion of priorities] on our mailing list. You might find new project ideas in that thread, too.<br />
<br />
* There is a similar project ideas page on the [http://wiki.laptop.org/go/Summer_of_Code/Ideas OLPC wiki] (and a related [http://wiki.laptop.org/go/Category:GSoC_proposals category]). OLPC-specific projects, including hardware- <s>and scoholserver-</s>related projects, should go there. ''Update: since OLPC did not get into GSoC this year, we would consider mentoring school-server related projects.'' Feel free to add below relevant projects from that list - perhaps <s>80%</s> 95% of these could be appropriate Sugarlabs applications. <br />
<br />
'''See something that interests you?''' To get in, you will need to design your project and find a mentor. On irc (#sugar on freenode) or the sugar-devel mailing list, you can briefly introduce yourself, state your interest, and ask relevant and specific questions about the state of the existing code. You should also do your own research for other open-source code that might help you. Get a [[DevelopmentTeam#Development_systems|development environment]] installed. We definitely appreciate it if you can show your readiness to help out - either joining [[BugSquad|bug squad]] and [[BugSquad/Meetings|helping]] to [[BugSquad/TriageGuide|triage]], or actually helping fix some small [http://tinyurl.com/ctfkjl bug]. <br />
<br />
When you're ready, figure out a very basic, preliminary design (where does your new UI fit in? what about the code - what talks to what?) and post that to the [[Sugar_Labs/Contacts#Developer_Lists|mailing list]], asking if anybody would be willing to mentor you. You will almost certainly get some response, but you may not find a prospective mentor right away. That's OK. If your idea is really not a good fit for us, we will let you know; otherwise, remember that several mentors are holding back for now to see which projects shows the most feasibility, clarity, and creativity in their design ideas. Persistence should pay off.<br />
<br />
'''Want to apply with an idea not on this list?''' That's fine. Read the thread linked above about priorities - and remember, our highest priority is for you to have a successful GSoC and hopefully continue to contribute afterwards. Do the steps above, paying particular attention to getting some community members' opinions on whether your idea would be valuable. The [[Sugar_Labs/Contacts#General_List|"iaep" mailing list]] may be the best venue for this. We will not all agree with each other about how important your idea is - that's normal - but our feedback will almost certainly help you refine your idea.<br />
<br />
<div style="float:right;"><br />
__TOC__<br />
</div><br />
<br />
== Template for well-explained ideas ==<br />
<br />
If a project that interests you lacks a "potential mentor" here, or you want to know more about the current status of the related code, we would be happy to help guide you on irc (#sugar on freenode) or mailing lists (technical questions to sugar-devel@lists.laptop.org, educational/general ones to iaep@lists.laptop.org).<br />
<br />
<br />
:<tt> '''==== Project title ====''' </tt><br />
:<br />
:A quick explanation of the project idea<br />
: <br />
: * Priority for Sugar: Low/Medium/High<br />
: <br />
: * Difficulty (as a GSoC project): Easy/Medium/Advanced<br />
: <br />
: * Skills needed: Experience with WikiCode and copy-paste.<br />
<br />
<br />
=== Core Software ===<br />
==== Registry for people ====<br />
Extend the interaction model to include real people beyond the user&ndash;laptop couple. This would extend the virtual network to include some very significant entities, such as family members, who may not have a physical computing device. See the [[Request_New_Features#Support for family interaction | suggestion]] submitted by [[User:Skua]]. The [[olpc:Record]] Activity could be used as a fun, instance-of-person creator and embellisher, by capturing an image or video of the person, and linking it to a new registry.<br />
* Integration of a person object into the Sugar architecture <br />
* Extension of the User/Group model to realistically capture the actual Person entity<br />
* Modification of at least one activity (Record ?) to support the new API<br />
* Extension of School Server registration model<br />
* Extension of an Internet person model to support a Person entity (e.g., to support a missing-person registry in the [http://sahana.rit.edu/ Sahana] Disaster Management System)<br />
Lots of extensions are possible, following a good, fundamental design<br />
* Difficulty: Medium - Hard (depending on scope chosen)<br />
* Skills needed: Data modeling, Core system programming<br />
* Potential mentor: [[User:FGrose]] for data modeling, collaborators needed for Core systems and Internet architectures<br />
<br />
==== Speech Synthesis for Sugar ====<br />
Integrate speech synthesis with all activities, not just [[Speak]], and provide for karaoke coloring. See [[User:Mokurai|Mokurai]]'s [http://www.olpcnews.com/content/ebooks/effective_adult_literacy_program.html article] on adapting [[Same Language Subtitling]] for literacy to the XO.<br />
<br />
Desirable Features for Sugar Speech Synthesis Plugin:<br />
<br />
* Provide Sugar Speech Synthesis Configuration Management Tool<br />
* Karaoke Style Coloring in Sugar Environment<br />
* UI for configuration Control<br />
* Accent gets set on the basis of locale<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty (as a GSoC project): Advanced<br />
<br />
*Skills needed: Experience with GTK, decent Python ability, ability to integrate with existing code.<br />
<br />
*Existing Technical Documentation & Work that can be leveraged: Interested developers can refer to [http://google-summer-of-code-2008-olpc.googlecode.com/files/Hemant_Goyal.tar.gz GSOC 08 Project Status Report].<br />
<br />
==== Print Support ====<br />
Print support in Sugar would be useful in many scenarios. The ideal project deliverables would include<br />
* Integration of a printing infrastructure (CUPS ??) into the XO-1 software images <br />
* Modification of Sugar Control Panel to set up the printer (add/select default printer?)<br />
* Modification of at least one activity (Write ?) to support printing<br />
* Making a printing activity, that follows sugar GUI guidelines?<br />
* Extra credit: integrating a server, including permissions and quota management, into the XS image.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): Medium-high<br />
<br />
*Skills needed: Python programming, API design, some communications<br />
<br />
==== Sugar Toolbar submenu support ====<br />
<br />
The Sugar Human Interface Guidelines have a toolbar design that includes submenus (See [[DesignTeam/Designs/Toolbars|Toolbar designs]]). The project would be to extend the existing Toolbar widget to include this new feature and then to work with a few Activity developer to incorporate the new design into their Activities. Possible candidate activities include Paint and [[Activities/Turtle Art|Turtle Art]].<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty (as a GSoC project): Easy-Medium<br />
<br />
*Skills needed: intermediate GTK and python skillz<br />
<br />
==== Versioned Datastore ====<br />
<br />
* To add [[DevelopmentTeam/DatastoreRewrite#Versioned_entries_.28not_fulfilled_yet.29|Version support]] for [[Journal]] / [[DevelopmentTeam/Almanac/sugar.datastore.datastore|DataStore]]: Start with (old) [http://wiki.laptop.org/go/Olpcfs Olpcfs] and (newer; less-documented; based on an RCS backend and a relatively small amount of fuse magic) [http://dev.laptop.org/git/users/cscott/olpcfs2/ olpcfs2]. Get Sugar to mount OLPCFS2, a working virtual versioned filesystem, and keep its datastore there. Get datastore to create a new version for each save (automatic or manual). Modify journal UI to use these versions, fork from old versions, etc. Keep with the same name / tags, create a branch if metadata was changed. Allow the user to access "older" versions (Keeping and "old" version will create a branch) and view ancestry (tree of branches). <br />
<br />
We would not expect a GSoC project to be necessarily ready to check into our trunk. For instance, you could avoid facing the issue of pruning old versions for disk space, or not have a converter for existing datastores. However, it should work as a proof-of-concept with a variety of activities.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty: Hard<br />
<br />
*Skills needed: primarily Python UI (pygtk); also FUSE/file systems (this part is mostly done); and Packaging and building.<br />
<br />
=== Toolkits / Frameworks for developers ===<br />
<br />
==== AJAX Sugar aka Karma ====<br />
<br />
Create a proof-of-concept learning multimedia Sugar activity using javascript and html5 (for instance, Titanium-made apps). This activity should have animation, audio, persistent storage of user progress, and at least basic integration with the Sugar environment. <br />
<br />
JavaScript/Python Communication through the following strategies: PyXPCom, hulahop, xulrunner or [http://www.titaniumapp.com/ Titanium]. see also [http://lists.sugarlabs.org/archive/sugar-devel/2009-March/012829.html the mailing list discussion]. The preferred solution should use a minimalist rendering engine like Webkit and a toolset for local file access like Google Gears. Such a solution would have much less overhead than embedding all of mozilla.<br />
<br />
* Ideally, develop a demo activity which could be used as a template for sugarizing AJAX activities. The GSoC participant doesn't have to create her own activity but could simply recreate an existing activity such as one of [http://www.pustakalaya.org/external-content/static/epaath/E-Paath-2.activity/activity/Activity/MenuStage.html OLE Nepal's flash activities]. <br />
* This demo should have the following features:<br />
** Simple interactive animation and audio using html5 tags like <canvas> and <audio><br />
** An assessment section that stores results of student's progress and gives them suggestions on improvement. Assessment info should be persistent. <br />
** Has embedded pdf for lesson plan that can be viewed w/in the activity<br />
** Integrates with datastore<br />
** Navigation and Help elements, ideally reusing widgets from popular javascript libraries like Jquery, Prototype, Mootools<br />
** Some element of collaboration using telepathy (This could be really hard, depending on the state of javascript bindings to dbus)<br />
<br />
There is some discussion of the prior work on this question at [[User:Wade/Web_Activity_Spec]].<br />
<br />
*Priority for Sugar: Very High ("never bet against the browser")<br />
<br />
*Difficulty (as a GSoC project): medium/hard Note: integrating w/ the datastore likely won't be too hard but utilizing Sugar's collaboration features could be very hard<br />
<br />
*Skills needed: Javascript/Python integration (PyXPCom, hulahop), CSS, knowlege of SQL<br />
<br />
*potential mentors: Wade Brainerd (wadetb at gmail dot com), Bryan Berry (bryan at olenepal dot org) can serve as project manager, define requirements and project deliverables<br />
<br />
==== SWF Sugar ====<br />
<br />
* Integrate SWF (Flash/Gnash) applications into Sugar.<br />
* Ideally, develop a demo activity which could be used as a template for sugarizing Flash/Gnash activities.<br />
<br />
*Priority for Sugar: Very High ("never bet against the browser")<br />
<br />
*Difficulty (as a GSoC project): hard<br />
<br />
*Skills needed: SWF/Python integration<br />
<br />
==== Improve Develop activity ====<br />
<br />
There are several improvements that would make the Develop activity a more attractive IDE. Any ONE of these would be a good GSoC project.<br />
<br />
* Make a WYSIWIG GUI editor, like Glade. Note that GTK natively supports loading Glade-format interface definitions, although there would be some work involved making the Sugar interface elements available through this method.<br />
* Integrate Sugarbot and auto-testing facilities.<br />
* Integrate a debugger, based on pdb or other.<br />
<br />
*Priority for Sugar: Medium-High<br />
<br />
*Difficulty: Medium - Hard<br />
<br />
*Skills needed: Good python skills.<br />
<br />
*Potential mentor; Jameson Quinn (firstname dot lastname at gmail dot com)<br />
<br />
==== "Translate Activity" activity ====<br />
<br />
We will never finish localizing all our activities and base software for all our deployments - especially for places with high linguistic diversity like Afghanistan, Peru, Guatemala. So it would be great if there were an easy, discoverable way to translate any string on your machine; have the translation appear on your own machine immediately; and, assuming the activity has a link to a Pootle project, upload that translation to a Pootle server later. (For real-world use, these uploads would probably have to be cached at the school server level, but that is more complexity than we'd expect from a GSoC project.) [http://translate.sourceforge.net/wiki/virtaal/index Virtaal] might be a good starting point for the UI.<br />
<br />
*Priority for Sugar: Medium-High<br />
<br />
*Difficulty: Medium to Hard<br />
<br />
*Skills needed: at least some experience localizing, to know what's involved; ability to do minor hacks on gettext in C and Python; work with localization formats (.po, etc.); Python for activity UI; some simple communications, to upload proposed translations to pootle.<br />
<br />
*potential mentor: Sayamindu Dasgupta (sayamindu at gmail)<br />
<br />
==== SugarGames Pygame wrapper ==== <br />
The [http://wiki.laptop.org/go/OLPCGames OLPCGames] wrapper allows [http://pygame.org Pygame] to run inside of GTK in Sugar, making Pygame based Activities possible. However, the wrapper is geared specifically for use on the XO-1, and does not necessarily reflect the modern reality of running Sugar on diverse hardware. It also does not allow for the use of other GTK Widgets in the Activity, restricting developers from adding UI features like pop up query boxes. This project would involve porting OLPCGames or writing a Pygame wrapper from scratch that would allow Pygame to run in GTK while still enabling the use of GTK UI elements. It would also involve making GTK events and other relevant parts of the Sugar API available to Pygame Activities.<br />
<br />
* Priority for Sugar: Medium-High (Activity development is limited between the graphics limitations of PyGTK and the UI limitations of Pygame)<br />
* Difficulty (as a GSoC project): Medium-Advanced <br />
* Skills needed: Requires a fair amount of knowledge of both Pygame and PyGTK.<br />
* Potential Mentor: Nirav Patel (nrpatel at gmail, nrp on freenode)<br />
<br />
=== Stand-alone activities ===<br />
<br />
==== Improved Read activity ====<br />
Use Gecko to implement a reader for [http://www.openebook.org/ epub] format ebooks. This is superior to PDF because such books can be reflowed to better fit the screen and user preferences. Also, (although it would break the standard) it would make it very simple to include AJAX-style active features to books.<br />
<br />
Extra credit if you support textual and graphical annotation. Deployments have also asked for a page-turn animation. See also [http://lists.sugarlabs.org/archive/sugar-devel/2009-March/012821.html ml].<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): Medium (w/o annotation); very hard (w/annotation)<br />
<br />
*Skills needed: Strong Javascript/DOM skills, some interlanguage integration (Python/Javascript), ability to adapt Read activity's communications code (Python).<br />
<br />
*Potential mentor: Sayamindu Dasgupta (sayamindu at gmail) (already has some code to start with)<br />
<br />
==== [[Listen Spell]] activity ====<br />
<br />
This activity has been last year GSoC project. Its code can be found [http://code.google.com/p/google-summer-of-code-2008-olpc/downloads/detail?name=Assim_Deodia.tar.gz here]. Extending it activity wrt to following points<br />
<br />
* Supporting Speech Synthesis model of sugar (speech synthesis model of sugar is not designed yet and is again a gsoc project this year. This task would involve either using speech-dispatcher or [[Activity_Team/gst-plugins-espeak | GST-Plugin]] as of now and later adding the support for sugar model)<br />
* Multi player game over mesh network <br />
* User Defined word list. (Adding support to add new words to dictionary)<br />
* Test Mode: A teacher can feed the pre-defined word list on the network and activity is being used to conduct test/exam<br />
* Speaking sentences to make student learn grammar (this as a higher level)<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty (as a GSoC project): Medium <br />
<br />
*Skills needed: Python, GTK, Understanding of sugar mesh network<br />
*Potential mentor: [[Summer_of_Code/Mentors#Assim_Deodia | Assim Deodia]] (assim.deodia at gmail dot com)<br />
<br />
==== KDEEdu ====<br />
<br />
Sugarize any [http://edu.kde.org/ KDEEdu] activity, especially the ones which have no corresponding Sugar activity. This probably means recoding the C to use GTK instead of QT and to use Sugar conventions. It is doubtful that this process could be automated, so you'd probably just do one activity.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): easy-hard<br />
<br />
*Skills needed: C/C++, GTK.<br />
<br />
==== Educational Toolkit ====<br />
<br />
Either based on the existing educational toolkit, or starting from scratch, enable XO use in classroom scenarios. Such scenarios could include<br />
<br />
* Teacher shows slides, reproduced on child's screens<br />
* Teacher asks questions - either pre-prepared or on-the-fly<br />
* Students give answers via collaboration<br />
* Teacher or student chooses - explicitly or randomly - an answer for further discussion<br />
* Students split in groups and go from their individual answers to a collaborative answer<br />
* Teacher can review all answers later<br />
* Teacher gives individual or group feedback (offline) which will be shared with appropriate students when they come online<br />
* Teacher checks what's on a child's screen - (experience on other platforms shows this "look over shoulder" ability reduces goofing off even though it is rarely used.)<br />
<br />
The low-hanging fruit on [http://wiki.laptop.org/go/Educational_toolkit Educational Toolkit] is the following:<br />
<br />
* Enable collaboration scenarios<br />
* Work on the GUI to provide support for multiple types of questions. <br />
* Add API to make it easy to add new question types.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): medium-hard<br />
<br />
*Skills needed: intermediate ability with Python and communications<br />
<br />
==== Improved Imageviewer ====<br />
<br />
Implement missing bits in Imageviewer, some of which are<br />
<br />
* Sharing support<br />
* Basic image effects support (grayscale, sepia effects, colorize, etc)<br />
* Exif support<br />
<br />
There are more things that can be implemented, but the above are the basic minimum one should try to implement.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): easy-medium<br />
<br />
*Skills needed: Python, GTK. the Sugar collaboration framework<br />
<br />
==== Etc., Etc. ====<br />
It should not be hard at all to imagine educational activities or games which would be useful for primary or secondary school education. Let your imagination run wild!<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty: Medium<br />
<br />
*Skills needed: Python, GTK, Sugar collaboration framework<br />
<br />
== Brainstorm / unexplained ideas ==<br />
<br />
==== Sugar adaption for the Nasa ====<br />
One of the 91 indigenous cultures that still exist in Colombia is the [http://en.wikipedia.org/wiki/Paez_people Paez people] (aka '''Nasa'''). They have their own traditions, customs, world view, mother tongue (Nasa Yuwe), i.e. their own culture. It could be possible to take cultural elements into the Sugar Interface, not only language, to provide Nasa children a suitable and familiar interface. [[User:Santiago|Santiago]] 18:01, 8 March 2008 (EST)<br />
<br />
=== Core Software ===<br />
<br />
* Accessibility Support: Sugar currently doesn't have anything available for the visually impaired.<br />
* Improve automatic testing across the system. This would improve our check-in and build process immensely. Very high priority which nobody is addressing head-on.<br />
==== Homework turn-in ====<!-- keep that title if you move the entry, there are inbound links. --><br />
* "Homework turn-in" support: Certain metadata on a file causes new versions to be pushed out over the net (via SMTP, rss, or other; note that Moodle already has [http://docs.moodle.org/en/Email_processing support] for routing from special email addresses to a "location"). No new UI in Sugar, and a trivial amount of changes to Moodle.<br />
<br />
==== Research projects: unpolished code ====<br />
* There is also [http://wiki.laptop.org/go/Journal%2C_reloaded Journal, reloaded], another research project with real code behind it that is promising but languishing. In this case, the idea is to make the journal "tagging" view transparently compatible with a traditional hierarchical directory structure. <br />
* bemasc's [http://dev.laptop.org/git/users/bemasc/groupthink/ groupthink], expanded: The idea is to have a data structure which keeps itself in sync across many laptops "behind the scenes", thus providing drop-in collaboration as long as the structure in question provides the needed functionality. The problem is that the existing code is unpolished, and only supports some pretty limited data structures. I have some ideas of [[how groupthink could be more general]]. [[User:Homunq|Homunq]] 00:43, 11 March 2009 (UTC)<br />
<br />
==== Java ====<br />
Package and integrate the IcedTea open source bootstrap of OpenJDK Java with browser plugin for the XO. Deliverables would include:<br />
* Binary, source and rpm dependencies for icedtea and icedtea browser plugin<br />
* Java enabled os image<br />
* Integration of packages into autobuild branch<br />
<br />
(This is just to get Java into the build. Creating an application framework would come later.)<br />
<br />
==== Graphical toolkit ====<br />
Important work left to do:<br />
* Give focus feedback by showing a rounded rectangle in gtk buttons and HippoCanvas icons.<br />
* Implement keyboard navigation in HippoCanvas.<br />
* Implement accessibility hooks in HippoCanvas.<br />
* Improve keyboard shortcuts - make them easier to create and implement a UI to make them more discoverable, such as transparent letters which appear when you hold <ctrl><br />
<br />
=== Frameworks/Toolkits ===<br />
==== Mono/.NET ====<br />
The use of Mono could really enhance the number of Sugar developers due to the huge existing .NET community.<br />
Thanks to Torello Querci, developing a Sugar activity in Mono is already possible using the Mono/Sugar bindings Sugar.dll (more on Mono on Sugar [[Mono|here]]).<br />
<br />
The idea for this GSOC project is to greatly enhance this binding:<br />
* Better integration with the Sugar look & feel and HippoCanvas,<br />
* Binding to telepathy API,<br />
* WinForm compatibility,<br />
* MonoDevelop integration.<br />
<br />
More on this idea:<br />
* Priority for Sugar: Low<br />
* Difficulty (as a GSoC project): Medium-Advanced <br />
* Skills needed: C# programming, Linux programming<br />
* Potential mentor: Lionel Laské and/or Torello Querci<br />
<br />
=== Activities ===<br />
* See also ideas at [[ActivityTeam/ProjectIdeas]].<br />
* A better, more fun, Paint option for small children - One way - Use eToys - http://lists.laptop.org/pipermail/etoys/2008-November/002770.html<br />
<br />
==== VideoChat activity ====<br />
telepathy-python has support for audio and video streaming and has recently gained support for using gstreamer, which means that we could easily do efficient videoconferencing using fully open source codecs.<br />
<br />
So a really nice project would be to do a proper Sugar activity for video conferencing.<br />
<br />
==== Language Trainer ====<br />
A language trainer with text to speech support would be very nice. Something that could start with letters and then teach words.<br />
<br />
==== Thesaurus ====<br />
Working together with openthesaurus -- someone could create a thesaurus for kids to learn different words (synonyms and antonyms)<br />
<br />
==== Logo Activity ====<br />
:Logo is a computer programming language used for functional programming. It is an adaptation and dialect of the Lisp language; some have called it Lisp without the parentheses. Today, it is known mainly for its turtle graphics, but it also has significant facilities for handling lists, files, I/O, and recursion.<br />
<br />
:Logo was created for educational use, more so for constructivist teaching, by Daniel G. Bobrow, Wally Feurzeig and Seymour Papert. It can be used to teach most computer science concepts, as UC Berkeley Lecturer Brian Harvey does in his Computer Science Logo Style trilogy. — [http://en.wikipedia.org/wiki/Logo_(programming_language) Wikipedia article on the Logo programming language]<br />
<br />
There is a "[[Running_Linux_Applications_Under_Sugar|Sugarized]]" Logo—[http://www.eecs.berkeley.edu/~bh/usermanual UCB Logo]—but it does not record data into the Journal or use the standard Sugar toolbar.<br />
<br />
There are two possible approaches we could take: (1) digging deeper into UCB Logo and (2) working with another Logo, possibly [http://pylogo.org/ PyLogo].<br />
<br />
* Priority: high as Logo is an important tool engaging children in programming<br />
* Difficultly: moderate to high, depending upon the approach chosen<br />
** Integrating Pylogo would be relatively easy, but it is a very limited implementation of Logo that would need enhancing<br />
* Experience: some Python and C if the UCB Logo approach is taken<br />
<br />
==== FoodForce2 Activity ====<br />
<br />
* Integrate story board into the game. <br />
* Make an extensible API to enable educators to add their own storyboards. <br />
* Add Speech Support into the project. <br />
* Optimise the speed and efficiency of the game.<br />
<br />
Link : http://code.google.com/p/foodforce/<br />
<br />
<br />
== Other ideas for improving Sugar Activities ==<br />
<br />
=== Broad project ideas ===<br />
*See [[MarketingTeam/Events/Sugarcamp_Boston_2008/Minutes#Items_from_the_roadmap_brainstorm|a list of project ideas]] from a brainstorming session at Sugar Camp.<br />
<br />
=== Activities Site (addons) ===<br />
<br />
* The activities http://activities.sugarlabs.org, is in need of a serious ''sugarization'', a GSOC project could be giving some love to the dressing and coding of the underlaying activities site (based on mozilla's addons).<br />
<br />
=== Packaging for specific distros ===<br />
<br />
'''Debian'''<br />
* Help in maintaining and packaging sugar and activities in debian.<br />
* Including/adapting debian-edu .debs to sugar<br />
<br />
Hello there, I am quite interested in Debian and want to help with this and all other projects. Please contact me (bjoern AT xruby DOT net) if I can be of assistance to the XO project or other things. I will start my PhD studies in April and have previously studied Computer Science. I am highly interested in helping where I can and want to bring the necessary technology to kids around the world.<br />
: from olpcwiki 2008<br />
<br />
=== Preeti's list ===<br />
<br />
Hi, I am Preeti, from New Delhi. I would like to get myself involved in this very interesting aspect of the OLPC software development. I have jotted some of my views on the same at:<br />
<br />
http://wiki.laptop.org/go/User_talk:59.178.99.172<br />
<br />
<br />
<br />
[[Category:Participate]]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Activity_Team/Contacts&diff=23146Activity Team/Contacts2009-03-20T09:38:45Z<p>Assim: /* Contributors */</p>
<hr />
<div><noinclude>{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}<br />
{{TeamHeader|ActivityTeam}}</noinclude><br />
<br />
==Coordinators==<br />
{{:ActivityTeam/Coordinator}}<br />
<br />
==Contributors==<br />
* [[User:alsroot|Aleksey Lim]]<br />
* [[User:nrp|Nirav Patel]]<br />
* [[User:bjordan|Brian Jordan]]<br />
* [[User:ysun|Yifan Sun]]<br />
* [[User:Prakhar|Prakhar Agarwal]]<br />
* [[User:Arjs|Arjun Sarwal]]<br />
* [[User:Tziegmann|Tom Ziegmann]]<br />
* [[User:Assim|Assim Deodia]]<br />
* Add yourself here!<br />
<br />
When adding yourself to the list, please take a minute and decide how you will contribute to the effort. Then, head over to [[ActivityTeam/TODO]] put your name down next to something, or add a new item if you like. '''Welcome to the team!'''<br />
<br />
==IRC Channel==<br />
Activity developers hang out on irc.freenode.net, #sugar channel.<br />
<br />
[[Category:Activity]]<br />
[[Category:Contact]]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=User:Assim&diff=23145User:Assim2009-03-20T09:38:08Z<p>Assim: New page: == About Me == I am Assim Deodia, an IT student from [http://nsitonline.in| NSIT]. I am involved with OLPC with number of projects. == Google Summer of Code 2008 == I have successfully ...</p>
<hr />
<div>== About Me ==<br />
<br />
I am Assim Deodia, an IT student from [http://nsitonline.in| NSIT]. I am involved with OLPC with number of projects.<br />
<br />
== Google Summer of Code 2008 ==<br />
<br />
I have successfully completed GSoC 2008 with OLPC under mentor ship of Dafydd Harris. As a part of GSoC i have developed [[Listen_Spell| Listen Spell]] activity. You can get full details, code etc on its wiki page.<br />
<br />
== Google Summer of Code 2009 ==<br />
<br />
I am participating as mentor for speech syntheses related activities. <br />
<br />
== RSA public key ==<br />
<br />
[http://nsitonline.in/assim/assim.pub Public Key ]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Activities/Listen_Spell&diff=23067Activities/Listen Spell2009-03-19T20:41:26Z<p>Assim: /* Code */</p>
<hr />
<div>== Listen Spell ==<br />
== Idea ==<br />
The idea is to develop an activity which would help children to learn new words, improve their vocabulary and pronunciation of words. The activity would speak out a randomly selected word from a list of words and the user is expected to spell the word correctly. For voice synthesis activity would be using Speech-Dispatcher and for the list of words it will have a custom dictionary. This activity is an extension of TalknType (http://wiki.laptop.org/go/Talkntype)<br />
== Need ==<br />
To learn any language spoken out in any part of this universe we firstly need to learn its building blocks i.e. words, their pronunciation and how they are spelled. By the side, Grammar of course has its preference. This project aims to provide an activity which would help children to learn new words, their pronunciation, the way they are spelled and to some extent its meaning. This activity is very much aligned to the concept constructive learning. The activity pronounces the word which user has entered and user can "Hear" the difference between two sounds.<br />
== Use Case Scenario ==<br />
A simple use case scenario of the Test Mode is as follows<br />
* User opens the activity and enters the difficulty level of which he/she would like to hear words.<br />
* A random word would be selected and spoken out from the corresponding level-word list. e.g. "Spell Ocean" would be spoken out.<br />
* User is required to spell the word correctly. (Time limit can be optional)<br />
* The activity would speak out each letter as the user types and the whole word as user submit the word.(This will help user to "feel" the difference between his spelling and the correct one.) This option can be disabled in case of group test (explained further).<br />
* There would be an option to repeat the word and also for the hint.<br />
* The hint option will either give user the meaning of the word or its usage in the sentence or image if possible. E.g. for Ocean it can either speak out its usage "The ocean is full of water" or can print its definition on screen i.e. "One of the five large bodies of water separating the continents".<br />
* User can quit or change the level any time during the game.<br />
To make user experience more lively, sounds for different events (Like activity start, Correct answer, Wrong Answer) would be used.<br />
== Level Description ==<br />
Level of a word is decided by ranking them. The ranking algorithm has been explained in the report. An example of level has been given below.<br />
* Initial level would include three to four letter words<br />
** e.g. cat, dog, tree, cup, bear etc<br />
* Medium level would contain five to six letters words<br />
** e.g. monkey, mouse, earth, plane, toffee etc<br />
* Hard level: Seven or more letters<br />
** e.g. computer, Mississippi, dictionary etc<br />
* Professional level (If included) would have complete sentences.<br />
== Implemented features ==<br />
Following are the Implemented features for the activity<br />
* Word source: - Word source is a wordnet dictionary with about 77k words. All words have been ranked and divided into levels so that it is easy to get word list of desired level. This dictionary has been customized to a very high extent removing all the unnecessary data and keeping only the required one. This has made the size of dictionary very small. It has been stored in SQLite data format for easy access.<br />
* Implementation of "Hint": - The hint consists of word meaning, with what part of speech it has been used, its sample usage etc. All these data has been stored with the dictionary itself for easy access.<br />
* Speech-dispatcher: - The voicing has been done using speech dispatcher which would eventually be using espeak for synthesis. Espeak supports more than 30 international languages.<br />
* Voice configuration: Option to edit voice configuration like volume, pitch, rate, language of the words and voice, gender of the voice etc.<br />
* Preferences to choose level of “Hint”: i.e. to select from word usage or word definition or images if possible.<br />
* Save option: The Game can be saved into a configuration file and replayed from the previous state. <br />
== Proposed Features ==<br />
* User defined word list: - This would facilitate users to add their own word list which can help in conducting a small group test. Option to add words through mesh network would be help in large group/class test.<br />
* Multiplayer game over mesh network: - (Future Work) Users can challenge each other over the network. One XO will then act as a server which would generate the word list for all the clients. All the users would receive same word list with limited retry option for each word after which next word would be given to user. The one who spelled most correct words in limited time wins. Option to speak each letter aloud would be disabled in this case.<br />
* Memory tool (Future Work):- A tutor mode in which activity repeats the word again and again until the spelling is absorbed into child's mind.<br />
* Input Methods :- Input Methods would be exposed externally so that other input methods(Like Handwriting and Speech recognition) could be incorporated<br />
== Implementation Details ==<br />
* For the word source we have used wordnet dictionary which contains about 1.5 lakh words with their meaning, sample usage, preposition etc properly mapped. The data for “hint” is stored with the dictionary only and is fetched from there.<br />
* Before making the dictionary usable it has been properly formatted. It contains words like 10mm or double words which are not going to be used for our purpose. Also there are many words which are probably unheard of by school children. We have use aspell to do this. The whole dictionary has been passed through aspell which contains most commonly used words only and thus filtering out the unwanted words. After this All the words are ranked based upon their usage on the internet. Using Yahoo BOSS api’s we have stored the number of search result each word has with the corresponding word. Based on these data all the words have been ranked and combining the word length with its length they have been categorized into 15 different levels.<br />
* Speech-Dispatcher: Speech-Dispatcher (http://www.freebsoft.org/speechd) is a socket-connection based speech server which provides speech APIs in many languages including Python and C. I had a discussion with OLPC developers where considering the need of speech server in XO they agreed to ship this in XO once its RPM is approved by Fedora Package Maintainers. Its RPM is under review process and should get approved soon. I have already got approval for its dependency Dotconf RPM<br />
* Language of implementation: Python<br />
* GUI: All the GUI part would be done in PyGTK and Glade<br />
* Parser for configuration files and dictionary data: OLPC includes many python modules which also include expat xml parser. This module can be used to parse the data and extract the information required<br />
* To have access over mesh network:- PresenceService DBUS API would be used<br />
== Dictionary ==<br />
=== Structure ===<br />
[[Image:Database.pdf|Dictionary Structure]]<br />
<br />
== Application Structure ==<br />
The application has been designed in a very efficient way. Following diagram will clear all the things:<br />
<br />
[[Image:Structure.jpg|200px]]<br />
<br/><br />
Figure 1: Application Structure<br />
<br/><br />
Here we have used the pre-implemented wrapper for espeak that is Speech-Dispatcher. We have designed a wrapper class for managing the dictionary. All the operation performed in the dictionary is through this wrapper only thus maintaining the consistence of the dictionary. The GUI part has been kept as a separate class. All the application logic is preformed in Application Logic. GUI class only looks after updating the GUI.<br />
Possible extension<br />
One could be a tutorial for learning languages using this activity like<br />
* The activity would teach basic sounding vowels like a as in cat, e as in bed, air as in hair etc<br />
* Sounds of consonants like b as in bed, ch as in change, d as in day etc<br />
* Teaching the sound of the whole word<br />
<br />
It would be great if children enters the words and get to know how to pronounce<br />
<br />
== ScreenShots ==<br />
[[Image:Las-ss1.jpg|200px|Home View]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss2.jpg|200px|Using Hint option]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss3.jpg|200px|Voice Configuration Panel]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss4.jpg|200px|Changing Skill Level]]<br />
<br/><br />
<br />
== Code ==<br />
Code can be found [http://git.sugarlabs.org/projects/listen-spell| here]<br />
<br />
==== Dependency ====<br />
* Speech Dispatcher is required for this activity to run. Its link can be found below<br />
==== File information ====<br />
* Dict.py – A wrapper class for dictionary<br />
* las.py – Application Logic<br />
* ListenSpell.py – Main class and the GUI class of the aplication<br />
<br />
== Resources ==<br />
<br />
# [http://www.freebsoft.org/speechd Speech Dispatcher]<br />
# [http://www.speaknspell.co.uk Speak & Spell]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Mentors&diff=23032Summer of Code/Mentors2009-03-19T11:16:44Z<p>Assim: /* Assim Deodia */</p>
<hr />
<div>Our most important need right now is for quality mentors. If you (or someone you know) would make a good mentor, please nominate yourself (or them), both here on the ML and on the wiki (if you can't handle a little redundant paperwork, you're probably not a good candidate :). Include relevant information such as:<br />
<br />
*Name/contact<br />
*Timezone<br />
*What kind of projects could/would you mentor?<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
*What relevant mentoring (or related) experience do you have?<br />
*Anything else you think is relevant.<br />
<br />
Please also add this page to your watchlist. We will probably later do some kind of "community interview" process where we ask you questions on this page.<br />
<br />
=== Jameson ===<br />
<br />
*Name/contact<br />
<br />
Jameson.Quinn at gmail<br />
<br />
*Timezone<br />
<br />
US Central / Central America (UTC-6)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities or Sugar improvements, especially interested in language or developer tools.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I could commit up to 4-6 hours a week. If we are short on mentors and I find project(s) that are an especially good match, I could do 8 hrs (double duty). Over the summer, I hope to be helping to work on an XO deployment, hopefully on a paid basis, but am currently unemployed.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Maintainer of Develop activity, have done some tinkering with Sugar, I've been involved for over a year.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
I have several years' experience as a full-time teacher.<br />
<br />
*Anything else you think is relevant.<br />
<br />
Nah.<br />
<br />
=== [[User:Nrp|Nrp]] ===<br />
<br />
* Name/contact<br />
<br />
Nirav Patel nrpatel at gmail<br />
<br />
* Timezone<br />
<br />
UTC-5<br />
<br />
* What kind of projects could/would you mentor?<br />
<br />
Pygame or PyGTK based Activities<br />
<br />
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
Graduating and no job prospects, so it is likely I will have quite a<br />
bit of free time as of early May. 5 hours a week is certainly doable.<br />
<br />
* What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Some Pygame/PyGTK Activity development and a module for Pygame.<br />
<br />
* What relevant mentoring (or related) experience do you have?<br />
<br />
Teaching Assistant and miscellaneous mentoring experiences at school.<br />
<br />
* Anything else you think is relevant.<br />
<br />
I survived GSoC on the student end of things in 2008.<br />
<br />
=== Tomeu ===<br />
<br />
*Name/contact<br />
<br />
[[User:Tomeu | Tomeu Vizoso]]<br />
<br />
*Timezone<br />
<br />
Central European Time<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities or Sugar improvements.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I could commit up to 4-6 hours a week.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Coded activities and for the sugar shell for more than two years now.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
Last year mentored one intern at OLPC.<br />
<br />
*Anything else you think is relevant.<br />
<br />
Nah.<br />
<br />
=== Walter ===<br />
<br />
* Name/contact<br />
<br />
[[User:Walter|Walter Bender]]<br />
<br />
EST (UTC-5)<br />
<br />
* What kind of projects could/would you mentor?<br />
<br />
I am interested in Sugar activities that are relevant to daily life in the classroom. Things that help the teacher and learner enhance their approaches to problem-solving. <br />
<br />
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?<br />
<br />
As much as necessary to make sure we have a successful, useful outcome.<br />
<br />
* What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
maintainer of [[Activities/TurtleArt]]<br />
<br />
* What relevant mentoring (or related) experience do you have?<br />
<br />
30 years mentoring student projects at MIT<br />
<br />
* Anything else you think is relevant.<br />
<br />
You learn through doing, so I will roll up my sleeves along side whomever I mentor, because I want to keep learning.<br />
<br />
<br />
=== [[User:Bobbyp|Bobby]] ===<br />
<br />
*Name/contact<br />
<br />
firstnamelastname at gmail, nteon on IRC<br />
<br />
*Timezone<br />
<br />
US Eastern Standard Time (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities, lower level stuff.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
Probably 4-6 hours a week.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Maintainer of Model activity, have done some tinkering with Sugar/Rainbow, rewrote boot-animation. Fairly confident with C/Python/Linux, have been involved with OLPC for about a year (although have been mostly lurking on the sugar side of things for a few months).<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
Summer camp counselor for a number of years, OLPC intern summer '08.<br />
<br />
*Anything else you think is relevant.<br />
<br />
I'm a few months behind on Sugar development, but think its a fabulous project. Let me know what you need of me.<br />
<br />
=== [[User:Sebastian|Sebastian]] ===<br />
<br />
*Name/contact<br />
<br />
Sebastian Silva (sebastian at fuentelibre.org), (gmail alternative: sebatustra)<br />
<br />
icarito on IRC<br />
<br />
*Timezone<br />
<br />
Lima, Perú (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities, especially "social" activities.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I am helping a teacher group this (northern summer), that leaves me enough time to commit to this (at least 4-6 hours a week, more if needed). It also is a great chance for some user feedback.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Community volunteer for 2 years now, developed activities, led workshops. Confident in python and GNU. Worked professionally in programming for some years.<br />
<br />
=== [[User:Wade|Wade]] ===<br />
<br />
*Name/contact<br />
<br />
Wade Brainerd (wadetb at gmail dot com) <br />
<br />
wadeb on IRC<br />
<br />
*Timezone<br />
<br />
Portland, Maine (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
New activities, Games, Updates to/refreshes of existing activities, Frameworks for creating activities in new languages (Flash, Ajax, Mono)<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I will be available for a single mentorship this year. I work full time as a programmer but have a flexible schedule.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Community volunteer for 2 years now, developed activities. Experienced in Python, C++, others. 11 years as a professional programmer, including 5 as a technical director and team lead.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
I was closely involved in the 2007 OLPC GSoC project, reviewing applications and communicating with students. I mentored two students informally during 2007 after their GSoC projects were not funded. Both projects were completed with my help.<br />
<br />
*Anything else you think is relevant.<br />
<br />
As the Sugar Labs Activity Team coordinator, I have plenty of access to deployments. This gives me a good handle on what student projects will most effectively advance Sugar Labs' goals in the community. <br />
<br />
As a volunteer activity developer, I have also developed many new activities myself, and overhauled existing ones.<br />
<br />
=== [[User:Lglira|Lglira]] ===<br />
<br />
*Name/contact<br />
<br />
Luis Gustavo Lira, BSc, MSc lira.lg at pucp.edu.pe<br />
<br />
*Timezone<br />
<br />
Lima, Perú (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
Networking, Hardware Projects, Python, Activities (science, math, entrepreneurship).<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I could mentor 1 o 2 students.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Engineer 10 years working experience, CIO and Executive level since 2006.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
Consultant for big telecomms, systems integrators, etc.<br />
Lecturer at University undergraduate and graduate level.<br />
GSoC 2007, 2008 and 2009 Mentor for OpenMoko<br />
GSoC 2008 for OLPC but my student was not funded<br />
<br />
*Anything else you think is relevant.<br />
<br />
Fellow of Lemelson Foundation RAMP-Peru, Social Entrepreneur, Free Culture activist, Appropriate Technology developer, Teaching Science, Math and Entrepeneurship in rural terciary schools.<br />
<br />
=== [[User:benlau|Ben Lau]] ===<br />
<br />
*Name/contact<br />
xbenlau at gmail.com<br />
<br />
*Timezone<br />
UTC+8<br />
<br />
*What kind of projects could/would you mentor?<br />
Video , Computer Vision , Speech Processing , Python, Activities (Educational software , Chinese language learning)<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?<br />
I could commit up to 4-5 hours a week, able to mentor 1 student.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
10 years Linux development experience , include kernel porting (ARM), Linux driver , GTK+ , opencv , GStreamer , C/C++ , python<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
I have led two teams of university students to join an embedded system contest called Intel Cup (China) in 2006. The teams got a first prize and a second prize award finally.<br />
<br />
*Anything else you think is relevant.<br />
I am leading a team of volunteers on technical side for OLPC APAC division.<br />
<br />
=== [[User:SayaminduDasgupta|Sayamindu]] ===<br />
<br />
*Name/contact<br />
<br />
Sayamindu Dasgupta (sayamindu at gmail)<br />
<br />
unmadindu on IRC<br />
<br />
*Timezone<br />
<br />
Asia/Calcutta (UTC+0530) (I normally work on European timezones)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
Activities, l10n/i18n related projects.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I am working a contractor for OLPC for the next few months. However, I think I can commit around 4-5 hours per week for the work.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Wrote the Imageviewer activity, maintainer of Terminal, in the process of implementing largish features to Read. Familiar with GTK+, Python, Gstreamer, etc.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
I was a mentor during SoC 2008 for the Translate toolkit project (my student worked successfully on enhancing the Pootle featureset). I have also experience informally mentoring/guiding students and volunteers for a number of Free Software projects (mostly i18n/l10n related).<br />
<br />
*Anything else you think is relevant.<br />
<br />
I was a successful student participant in Summer of Code 2007 under Federico Mena-Quintero for the GNOME project. I also helped in the rating of applications for OLPC as a mentoring organisation during 2008's SoC.<br />
<br />
<br />
<br />
=== [[User:Assim|Assim Deodia]] ===<br />
<br />
*Name/contact<br />
<br />
Assim Deodia (assim.deodia at gmail dot com)<br />
<br />
assimd on IRC<br />
<br />
*Timezone<br />
<br />
Asia/Calcutta (UTC+0530)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
[[Listen Spell]], Activities related to speech synthesis<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I can comfortably devote 4-5 hrs a week. <br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
I have developed speech server in SoCon for OLPC [http://wiki.laptop.org/go/Speech_Server| Speech Server], Deducto for OLPC and have also developed Listen Spell for OLPC in GSoC.<br />
<br />
*Anything else you think is relevant.<br />
<br />
I have successful completed Summer of Code 2008 under Dafydd Harries for the OLPC. I have also developed a low cost OMR processing application which is hosted on sourceforge [http://sourceforge.net/projects/omr-ai/| OMR AI]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Mentors&diff=23031Summer of Code/Mentors2009-03-19T11:10:13Z<p>Assim: /* Assim Deodia */</p>
<hr />
<div>Our most important need right now is for quality mentors. If you (or someone you know) would make a good mentor, please nominate yourself (or them), both here on the ML and on the wiki (if you can't handle a little redundant paperwork, you're probably not a good candidate :). Include relevant information such as:<br />
<br />
*Name/contact<br />
*Timezone<br />
*What kind of projects could/would you mentor?<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
*What relevant mentoring (or related) experience do you have?<br />
*Anything else you think is relevant.<br />
<br />
Please also add this page to your watchlist. We will probably later do some kind of "community interview" process where we ask you questions on this page.<br />
<br />
=== Jameson ===<br />
<br />
*Name/contact<br />
<br />
Jameson.Quinn at gmail<br />
<br />
*Timezone<br />
<br />
US Central / Central America (UTC-6)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities or Sugar improvements, especially interested in language or developer tools.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I could commit up to 4-6 hours a week. If we are short on mentors and I find project(s) that are an especially good match, I could do 8 hrs (double duty). Over the summer, I hope to be helping to work on an XO deployment, hopefully on a paid basis, but am currently unemployed.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Maintainer of Develop activity, have done some tinkering with Sugar, I've been involved for over a year.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
I have several years' experience as a full-time teacher.<br />
<br />
*Anything else you think is relevant.<br />
<br />
Nah.<br />
<br />
=== [[User:Nrp|Nrp]] ===<br />
<br />
* Name/contact<br />
<br />
Nirav Patel nrpatel at gmail<br />
<br />
* Timezone<br />
<br />
UTC-5<br />
<br />
* What kind of projects could/would you mentor?<br />
<br />
Pygame or PyGTK based Activities<br />
<br />
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
Graduating and no job prospects, so it is likely I will have quite a<br />
bit of free time as of early May. 5 hours a week is certainly doable.<br />
<br />
* What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Some Pygame/PyGTK Activity development and a module for Pygame.<br />
<br />
* What relevant mentoring (or related) experience do you have?<br />
<br />
Teaching Assistant and miscellaneous mentoring experiences at school.<br />
<br />
* Anything else you think is relevant.<br />
<br />
I survived GSoC on the student end of things in 2008.<br />
<br />
=== Tomeu ===<br />
<br />
*Name/contact<br />
<br />
[[User:Tomeu | Tomeu Vizoso]]<br />
<br />
*Timezone<br />
<br />
Central European Time<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities or Sugar improvements.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I could commit up to 4-6 hours a week.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Coded activities and for the sugar shell for more than two years now.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
Last year mentored one intern at OLPC.<br />
<br />
*Anything else you think is relevant.<br />
<br />
Nah.<br />
<br />
=== Walter ===<br />
<br />
* Name/contact<br />
<br />
[[User:Walter|Walter Bender]]<br />
<br />
EST (UTC-5)<br />
<br />
* What kind of projects could/would you mentor?<br />
<br />
I am interested in Sugar activities that are relevant to daily life in the classroom. Things that help the teacher and learner enhance their approaches to problem-solving. <br />
<br />
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?<br />
<br />
As much as necessary to make sure we have a successful, useful outcome.<br />
<br />
* What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
maintainer of [[Activities/TurtleArt]]<br />
<br />
* What relevant mentoring (or related) experience do you have?<br />
<br />
30 years mentoring student projects at MIT<br />
<br />
* Anything else you think is relevant.<br />
<br />
You learn through doing, so I will roll up my sleeves along side whomever I mentor, because I want to keep learning.<br />
<br />
<br />
=== [[User:Bobbyp|Bobby]] ===<br />
<br />
*Name/contact<br />
<br />
firstnamelastname at gmail, nteon on IRC<br />
<br />
*Timezone<br />
<br />
US Eastern Standard Time (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities, lower level stuff.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
Probably 4-6 hours a week.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Maintainer of Model activity, have done some tinkering with Sugar/Rainbow, rewrote boot-animation. Fairly confident with C/Python/Linux, have been involved with OLPC for about a year (although have been mostly lurking on the sugar side of things for a few months).<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
Summer camp counselor for a number of years, OLPC intern summer '08.<br />
<br />
*Anything else you think is relevant.<br />
<br />
I'm a few months behind on Sugar development, but think its a fabulous project. Let me know what you need of me.<br />
<br />
=== [[User:Sebastian|Sebastian]] ===<br />
<br />
*Name/contact<br />
<br />
Sebastian Silva (sebastian at fuentelibre.org), (gmail alternative: sebatustra)<br />
<br />
icarito on IRC<br />
<br />
*Timezone<br />
<br />
Lima, Perú (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities, especially "social" activities.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I am helping a teacher group this (northern summer), that leaves me enough time to commit to this (at least 4-6 hours a week, more if needed). It also is a great chance for some user feedback.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Community volunteer for 2 years now, developed activities, led workshops. Confident in python and GNU. Worked professionally in programming for some years.<br />
<br />
=== [[User:Wade|Wade]] ===<br />
<br />
*Name/contact<br />
<br />
Wade Brainerd (wadetb at gmail dot com) <br />
<br />
wadeb on IRC<br />
<br />
*Timezone<br />
<br />
Portland, Maine (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
New activities, Games, Updates to/refreshes of existing activities, Frameworks for creating activities in new languages (Flash, Ajax, Mono)<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I will be available for a single mentorship this year. I work full time as a programmer but have a flexible schedule.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Community volunteer for 2 years now, developed activities. Experienced in Python, C++, others. 11 years as a professional programmer, including 5 as a technical director and team lead.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
I was closely involved in the 2007 OLPC GSoC project, reviewing applications and communicating with students. I mentored two students informally during 2007 after their GSoC projects were not funded. Both projects were completed with my help.<br />
<br />
*Anything else you think is relevant.<br />
<br />
As the Sugar Labs Activity Team coordinator, I have plenty of access to deployments. This gives me a good handle on what student projects will most effectively advance Sugar Labs' goals in the community. <br />
<br />
As a volunteer activity developer, I have also developed many new activities myself, and overhauled existing ones.<br />
<br />
=== [[User:Lglira|Lglira]] ===<br />
<br />
*Name/contact<br />
<br />
Luis Gustavo Lira, BSc, MSc lira.lg at pucp.edu.pe<br />
<br />
*Timezone<br />
<br />
Lima, Perú (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
Networking, Hardware Projects, Python, Activities (science, math, entrepreneurship).<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I could mentor 1 o 2 students.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Engineer 10 years working experience, CIO and Executive level since 2006.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
Consultant for big telecomms, systems integrators, etc.<br />
Lecturer at University undergraduate and graduate level.<br />
GSoC 2007, 2008 and 2009 Mentor for OpenMoko<br />
GSoC 2008 for OLPC but my student was not funded<br />
<br />
*Anything else you think is relevant.<br />
<br />
Fellow of Lemelson Foundation RAMP-Peru, Social Entrepreneur, Free Culture activist, Appropriate Technology developer, Teaching Science, Math and Entrepeneurship in rural terciary schools.<br />
<br />
=== [[User:benlau|Ben Lau]] ===<br />
<br />
*Name/contact<br />
xbenlau at gmail.com<br />
<br />
*Timezone<br />
UTC+8<br />
<br />
*What kind of projects could/would you mentor?<br />
Video , Computer Vision , Speech Processing , Python, Activities (Educational software , Chinese language learning)<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?<br />
I could commit up to 4-5 hours a week, able to mentor 1 student.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
10 years Linux development experience , include kernel porting (ARM), Linux driver , GTK+ , opencv , GStreamer , C/C++ , python<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
I have led two teams of university students to join an embedded system contest called Intel Cup (China) in 2006. The teams got a first prize and a second prize award finally.<br />
<br />
*Anything else you think is relevant.<br />
I am leading a team of volunteers on technical side for OLPC APAC division.<br />
<br />
=== [[User:SayaminduDasgupta|Sayamindu]] ===<br />
<br />
*Name/contact<br />
<br />
Sayamindu Dasgupta (sayamindu at gmail)<br />
<br />
unmadindu on IRC<br />
<br />
*Timezone<br />
<br />
Asia/Calcutta (UTC+0530) (I normally work on European timezones)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
Activities, l10n/i18n related projects.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I am working a contractor for OLPC for the next few months. However, I think I can commit around 4-5 hours per week for the work.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Wrote the Imageviewer activity, maintainer of Terminal, in the process of implementing largish features to Read. Familiar with GTK+, Python, Gstreamer, etc.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
I was a mentor during SoC 2008 for the Translate toolkit project (my student worked successfully on enhancing the Pootle featureset). I have also experience informally mentoring/guiding students and volunteers for a number of Free Software projects (mostly i18n/l10n related).<br />
<br />
*Anything else you think is relevant.<br />
<br />
I was a successful student participant in Summer of Code 2007 under Federico Mena-Quintero for the GNOME project. I also helped in the rating of applications for OLPC as a mentoring organisation during 2008's SoC.<br />
<br />
<br />
<br />
=== [[User:Assim|Assim Deodia]] ===<br />
<br />
*Name/contact<br />
<br />
Assim Deodia (assim.deodia at gmail dot com)<br />
<br />
assimd on IRC<br />
<br />
*Timezone<br />
<br />
Asia/Calcutta (UTC+0530)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
[[Listen Spell]], Activities related to speech synthesis<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I can comfortably devote 4-5 hrs a week. <br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
I have developed speech server in SoCon for OLPC [http://wiki.laptop.org/go/Speech_Server| Speech Server], Deducto for OLPC and have also developed Listen Spell for OLPC in GSoC.<br />
<br />
*Anything else you think is relevant.<br />
<br />
I was a successful student participant in Summer of Code 2007 under Dafydd Harries for the OLPC project. I have also developed a low cost OMR processing application which is hosted on sourceforge [http://sourceforge.net/projects/omr-ai/| OMR AI]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Mentors&diff=23030Summer of Code/Mentors2009-03-19T11:09:23Z<p>Assim: /* Assim Deodia */</p>
<hr />
<div>Our most important need right now is for quality mentors. If you (or someone you know) would make a good mentor, please nominate yourself (or them), both here on the ML and on the wiki (if you can't handle a little redundant paperwork, you're probably not a good candidate :). Include relevant information such as:<br />
<br />
*Name/contact<br />
*Timezone<br />
*What kind of projects could/would you mentor?<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
*What relevant mentoring (or related) experience do you have?<br />
*Anything else you think is relevant.<br />
<br />
Please also add this page to your watchlist. We will probably later do some kind of "community interview" process where we ask you questions on this page.<br />
<br />
=== Jameson ===<br />
<br />
*Name/contact<br />
<br />
Jameson.Quinn at gmail<br />
<br />
*Timezone<br />
<br />
US Central / Central America (UTC-6)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities or Sugar improvements, especially interested in language or developer tools.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I could commit up to 4-6 hours a week. If we are short on mentors and I find project(s) that are an especially good match, I could do 8 hrs (double duty). Over the summer, I hope to be helping to work on an XO deployment, hopefully on a paid basis, but am currently unemployed.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Maintainer of Develop activity, have done some tinkering with Sugar, I've been involved for over a year.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
I have several years' experience as a full-time teacher.<br />
<br />
*Anything else you think is relevant.<br />
<br />
Nah.<br />
<br />
=== [[User:Nrp|Nrp]] ===<br />
<br />
* Name/contact<br />
<br />
Nirav Patel nrpatel at gmail<br />
<br />
* Timezone<br />
<br />
UTC-5<br />
<br />
* What kind of projects could/would you mentor?<br />
<br />
Pygame or PyGTK based Activities<br />
<br />
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
Graduating and no job prospects, so it is likely I will have quite a<br />
bit of free time as of early May. 5 hours a week is certainly doable.<br />
<br />
* What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Some Pygame/PyGTK Activity development and a module for Pygame.<br />
<br />
* What relevant mentoring (or related) experience do you have?<br />
<br />
Teaching Assistant and miscellaneous mentoring experiences at school.<br />
<br />
* Anything else you think is relevant.<br />
<br />
I survived GSoC on the student end of things in 2008.<br />
<br />
=== Tomeu ===<br />
<br />
*Name/contact<br />
<br />
[[User:Tomeu | Tomeu Vizoso]]<br />
<br />
*Timezone<br />
<br />
Central European Time<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities or Sugar improvements.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I could commit up to 4-6 hours a week.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Coded activities and for the sugar shell for more than two years now.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
Last year mentored one intern at OLPC.<br />
<br />
*Anything else you think is relevant.<br />
<br />
Nah.<br />
<br />
=== Walter ===<br />
<br />
* Name/contact<br />
<br />
[[User:Walter|Walter Bender]]<br />
<br />
EST (UTC-5)<br />
<br />
* What kind of projects could/would you mentor?<br />
<br />
I am interested in Sugar activities that are relevant to daily life in the classroom. Things that help the teacher and learner enhance their approaches to problem-solving. <br />
<br />
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?<br />
<br />
As much as necessary to make sure we have a successful, useful outcome.<br />
<br />
* What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
maintainer of [[Activities/TurtleArt]]<br />
<br />
* What relevant mentoring (or related) experience do you have?<br />
<br />
30 years mentoring student projects at MIT<br />
<br />
* Anything else you think is relevant.<br />
<br />
You learn through doing, so I will roll up my sleeves along side whomever I mentor, because I want to keep learning.<br />
<br />
<br />
=== [[User:Bobbyp|Bobby]] ===<br />
<br />
*Name/contact<br />
<br />
firstnamelastname at gmail, nteon on IRC<br />
<br />
*Timezone<br />
<br />
US Eastern Standard Time (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities, lower level stuff.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
Probably 4-6 hours a week.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Maintainer of Model activity, have done some tinkering with Sugar/Rainbow, rewrote boot-animation. Fairly confident with C/Python/Linux, have been involved with OLPC for about a year (although have been mostly lurking on the sugar side of things for a few months).<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
Summer camp counselor for a number of years, OLPC intern summer '08.<br />
<br />
*Anything else you think is relevant.<br />
<br />
I'm a few months behind on Sugar development, but think its a fabulous project. Let me know what you need of me.<br />
<br />
=== [[User:Sebastian|Sebastian]] ===<br />
<br />
*Name/contact<br />
<br />
Sebastian Silva (sebastian at fuentelibre.org), (gmail alternative: sebatustra)<br />
<br />
icarito on IRC<br />
<br />
*Timezone<br />
<br />
Lima, Perú (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities, especially "social" activities.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I am helping a teacher group this (northern summer), that leaves me enough time to commit to this (at least 4-6 hours a week, more if needed). It also is a great chance for some user feedback.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Community volunteer for 2 years now, developed activities, led workshops. Confident in python and GNU. Worked professionally in programming for some years.<br />
<br />
=== [[User:Wade|Wade]] ===<br />
<br />
*Name/contact<br />
<br />
Wade Brainerd (wadetb at gmail dot com) <br />
<br />
wadeb on IRC<br />
<br />
*Timezone<br />
<br />
Portland, Maine (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
New activities, Games, Updates to/refreshes of existing activities, Frameworks for creating activities in new languages (Flash, Ajax, Mono)<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I will be available for a single mentorship this year. I work full time as a programmer but have a flexible schedule.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Community volunteer for 2 years now, developed activities. Experienced in Python, C++, others. 11 years as a professional programmer, including 5 as a technical director and team lead.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
I was closely involved in the 2007 OLPC GSoC project, reviewing applications and communicating with students. I mentored two students informally during 2007 after their GSoC projects were not funded. Both projects were completed with my help.<br />
<br />
*Anything else you think is relevant.<br />
<br />
As the Sugar Labs Activity Team coordinator, I have plenty of access to deployments. This gives me a good handle on what student projects will most effectively advance Sugar Labs' goals in the community. <br />
<br />
As a volunteer activity developer, I have also developed many new activities myself, and overhauled existing ones.<br />
<br />
=== [[User:Lglira|Lglira]] ===<br />
<br />
*Name/contact<br />
<br />
Luis Gustavo Lira, BSc, MSc lira.lg at pucp.edu.pe<br />
<br />
*Timezone<br />
<br />
Lima, Perú (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
Networking, Hardware Projects, Python, Activities (science, math, entrepreneurship).<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I could mentor 1 o 2 students.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Engineer 10 years working experience, CIO and Executive level since 2006.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
Consultant for big telecomms, systems integrators, etc.<br />
Lecturer at University undergraduate and graduate level.<br />
GSoC 2007, 2008 and 2009 Mentor for OpenMoko<br />
GSoC 2008 for OLPC but my student was not funded<br />
<br />
*Anything else you think is relevant.<br />
<br />
Fellow of Lemelson Foundation RAMP-Peru, Social Entrepreneur, Free Culture activist, Appropriate Technology developer, Teaching Science, Math and Entrepeneurship in rural terciary schools.<br />
<br />
=== [[User:benlau|Ben Lau]] ===<br />
<br />
*Name/contact<br />
xbenlau at gmail.com<br />
<br />
*Timezone<br />
UTC+8<br />
<br />
*What kind of projects could/would you mentor?<br />
Video , Computer Vision , Speech Processing , Python, Activities (Educational software , Chinese language learning)<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?<br />
I could commit up to 4-5 hours a week, able to mentor 1 student.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
10 years Linux development experience , include kernel porting (ARM), Linux driver , GTK+ , opencv , GStreamer , C/C++ , python<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
I have led two teams of university students to join an embedded system contest called Intel Cup (China) in 2006. The teams got a first prize and a second prize award finally.<br />
<br />
*Anything else you think is relevant.<br />
I am leading a team of volunteers on technical side for OLPC APAC division.<br />
<br />
=== [[User:SayaminduDasgupta|Sayamindu]] ===<br />
<br />
*Name/contact<br />
<br />
Sayamindu Dasgupta (sayamindu at gmail)<br />
<br />
unmadindu on IRC<br />
<br />
*Timezone<br />
<br />
Asia/Calcutta (UTC+0530) (I normally work on European timezones)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
Activities, l10n/i18n related projects.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I am working a contractor for OLPC for the next few months. However, I think I can commit around 4-5 hours per week for the work.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Wrote the Imageviewer activity, maintainer of Terminal, in the process of implementing largish features to Read. Familiar with GTK+, Python, Gstreamer, etc.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
I was a mentor during SoC 2008 for the Translate toolkit project (my student worked successfully on enhancing the Pootle featureset). I have also experience informally mentoring/guiding students and volunteers for a number of Free Software projects (mostly i18n/l10n related).<br />
<br />
*Anything else you think is relevant.<br />
<br />
I was a successful student participant in Summer of Code 2007 under Federico Mena-Quintero for the GNOME project. I also helped in the rating of applications for OLPC as a mentoring organisation during 2008's SoC.<br />
<br />
<br />
<br />
=== [[User:Assim|Assim Deodia]] ===<br />
<br />
*Name/contact<br />
<br />
Assim Deodia (assim.deodia at gmail dot com)<br />
<br />
assimd on IRC<br />
<br />
*Timezone<br />
<br />
Asia/Calcutta (UTC+0530)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
[[Listen Spell]], Activities<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I can comfortably devote 4-5 hrs a week. <br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
I have developed speech server in SoCon for OLPC [http://wiki.laptop.org/go/Speech_Server| Speech Server], Deducto for OLPC and have also developed Listen Spell for OLPC in GSoC.<br />
<br />
*Anything else you think is relevant.<br />
<br />
I was a successful student participant in Summer of Code 2007 under Dafydd Harries for the OLPC project. I have also developed a low cost OMR processing application which is hosted on sourceforge [http://sourceforge.net/projects/omr-ai/| OMR AI]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Mentors&diff=23029Summer of Code/Mentors2009-03-19T11:08:23Z<p>Assim: /* Assim Deodia */</p>
<hr />
<div>Our most important need right now is for quality mentors. If you (or someone you know) would make a good mentor, please nominate yourself (or them), both here on the ML and on the wiki (if you can't handle a little redundant paperwork, you're probably not a good candidate :). Include relevant information such as:<br />
<br />
*Name/contact<br />
*Timezone<br />
*What kind of projects could/would you mentor?<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
*What relevant mentoring (or related) experience do you have?<br />
*Anything else you think is relevant.<br />
<br />
Please also add this page to your watchlist. We will probably later do some kind of "community interview" process where we ask you questions on this page.<br />
<br />
=== Jameson ===<br />
<br />
*Name/contact<br />
<br />
Jameson.Quinn at gmail<br />
<br />
*Timezone<br />
<br />
US Central / Central America (UTC-6)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities or Sugar improvements, especially interested in language or developer tools.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I could commit up to 4-6 hours a week. If we are short on mentors and I find project(s) that are an especially good match, I could do 8 hrs (double duty). Over the summer, I hope to be helping to work on an XO deployment, hopefully on a paid basis, but am currently unemployed.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Maintainer of Develop activity, have done some tinkering with Sugar, I've been involved for over a year.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
I have several years' experience as a full-time teacher.<br />
<br />
*Anything else you think is relevant.<br />
<br />
Nah.<br />
<br />
=== [[User:Nrp|Nrp]] ===<br />
<br />
* Name/contact<br />
<br />
Nirav Patel nrpatel at gmail<br />
<br />
* Timezone<br />
<br />
UTC-5<br />
<br />
* What kind of projects could/would you mentor?<br />
<br />
Pygame or PyGTK based Activities<br />
<br />
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
Graduating and no job prospects, so it is likely I will have quite a<br />
bit of free time as of early May. 5 hours a week is certainly doable.<br />
<br />
* What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Some Pygame/PyGTK Activity development and a module for Pygame.<br />
<br />
* What relevant mentoring (or related) experience do you have?<br />
<br />
Teaching Assistant and miscellaneous mentoring experiences at school.<br />
<br />
* Anything else you think is relevant.<br />
<br />
I survived GSoC on the student end of things in 2008.<br />
<br />
=== Tomeu ===<br />
<br />
*Name/contact<br />
<br />
[[User:Tomeu | Tomeu Vizoso]]<br />
<br />
*Timezone<br />
<br />
Central European Time<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities or Sugar improvements.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I could commit up to 4-6 hours a week.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Coded activities and for the sugar shell for more than two years now.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
Last year mentored one intern at OLPC.<br />
<br />
*Anything else you think is relevant.<br />
<br />
Nah.<br />
<br />
=== Walter ===<br />
<br />
* Name/contact<br />
<br />
[[User:Walter|Walter Bender]]<br />
<br />
EST (UTC-5)<br />
<br />
* What kind of projects could/would you mentor?<br />
<br />
I am interested in Sugar activities that are relevant to daily life in the classroom. Things that help the teacher and learner enhance their approaches to problem-solving. <br />
<br />
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?<br />
<br />
As much as necessary to make sure we have a successful, useful outcome.<br />
<br />
* What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
maintainer of [[Activities/TurtleArt]]<br />
<br />
* What relevant mentoring (or related) experience do you have?<br />
<br />
30 years mentoring student projects at MIT<br />
<br />
* Anything else you think is relevant.<br />
<br />
You learn through doing, so I will roll up my sleeves along side whomever I mentor, because I want to keep learning.<br />
<br />
<br />
=== [[User:Bobbyp|Bobby]] ===<br />
<br />
*Name/contact<br />
<br />
firstnamelastname at gmail, nteon on IRC<br />
<br />
*Timezone<br />
<br />
US Eastern Standard Time (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities, lower level stuff.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
Probably 4-6 hours a week.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Maintainer of Model activity, have done some tinkering with Sugar/Rainbow, rewrote boot-animation. Fairly confident with C/Python/Linux, have been involved with OLPC for about a year (although have been mostly lurking on the sugar side of things for a few months).<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
Summer camp counselor for a number of years, OLPC intern summer '08.<br />
<br />
*Anything else you think is relevant.<br />
<br />
I'm a few months behind on Sugar development, but think its a fabulous project. Let me know what you need of me.<br />
<br />
=== [[User:Sebastian|Sebastian]] ===<br />
<br />
*Name/contact<br />
<br />
Sebastian Silva (sebastian at fuentelibre.org), (gmail alternative: sebatustra)<br />
<br />
icarito on IRC<br />
<br />
*Timezone<br />
<br />
Lima, Perú (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities, especially "social" activities.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I am helping a teacher group this (northern summer), that leaves me enough time to commit to this (at least 4-6 hours a week, more if needed). It also is a great chance for some user feedback.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Community volunteer for 2 years now, developed activities, led workshops. Confident in python and GNU. Worked professionally in programming for some years.<br />
<br />
=== [[User:Wade|Wade]] ===<br />
<br />
*Name/contact<br />
<br />
Wade Brainerd (wadetb at gmail dot com) <br />
<br />
wadeb on IRC<br />
<br />
*Timezone<br />
<br />
Portland, Maine (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
New activities, Games, Updates to/refreshes of existing activities, Frameworks for creating activities in new languages (Flash, Ajax, Mono)<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I will be available for a single mentorship this year. I work full time as a programmer but have a flexible schedule.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Community volunteer for 2 years now, developed activities. Experienced in Python, C++, others. 11 years as a professional programmer, including 5 as a technical director and team lead.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
I was closely involved in the 2007 OLPC GSoC project, reviewing applications and communicating with students. I mentored two students informally during 2007 after their GSoC projects were not funded. Both projects were completed with my help.<br />
<br />
*Anything else you think is relevant.<br />
<br />
As the Sugar Labs Activity Team coordinator, I have plenty of access to deployments. This gives me a good handle on what student projects will most effectively advance Sugar Labs' goals in the community. <br />
<br />
As a volunteer activity developer, I have also developed many new activities myself, and overhauled existing ones.<br />
<br />
=== [[User:Lglira|Lglira]] ===<br />
<br />
*Name/contact<br />
<br />
Luis Gustavo Lira, BSc, MSc lira.lg at pucp.edu.pe<br />
<br />
*Timezone<br />
<br />
Lima, Perú (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
Networking, Hardware Projects, Python, Activities (science, math, entrepreneurship).<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I could mentor 1 o 2 students.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Engineer 10 years working experience, CIO and Executive level since 2006.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
Consultant for big telecomms, systems integrators, etc.<br />
Lecturer at University undergraduate and graduate level.<br />
GSoC 2007, 2008 and 2009 Mentor for OpenMoko<br />
GSoC 2008 for OLPC but my student was not funded<br />
<br />
*Anything else you think is relevant.<br />
<br />
Fellow of Lemelson Foundation RAMP-Peru, Social Entrepreneur, Free Culture activist, Appropriate Technology developer, Teaching Science, Math and Entrepeneurship in rural terciary schools.<br />
<br />
=== [[User:benlau|Ben Lau]] ===<br />
<br />
*Name/contact<br />
xbenlau at gmail.com<br />
<br />
*Timezone<br />
UTC+8<br />
<br />
*What kind of projects could/would you mentor?<br />
Video , Computer Vision , Speech Processing , Python, Activities (Educational software , Chinese language learning)<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?<br />
I could commit up to 4-5 hours a week, able to mentor 1 student.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
10 years Linux development experience , include kernel porting (ARM), Linux driver , GTK+ , opencv , GStreamer , C/C++ , python<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
I have led two teams of university students to join an embedded system contest called Intel Cup (China) in 2006. The teams got a first prize and a second prize award finally.<br />
<br />
*Anything else you think is relevant.<br />
I am leading a team of volunteers on technical side for OLPC APAC division.<br />
<br />
=== [[User:SayaminduDasgupta|Sayamindu]] ===<br />
<br />
*Name/contact<br />
<br />
Sayamindu Dasgupta (sayamindu at gmail)<br />
<br />
unmadindu on IRC<br />
<br />
*Timezone<br />
<br />
Asia/Calcutta (UTC+0530) (I normally work on European timezones)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
Activities, l10n/i18n related projects.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I am working a contractor for OLPC for the next few months. However, I think I can commit around 4-5 hours per week for the work.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Wrote the Imageviewer activity, maintainer of Terminal, in the process of implementing largish features to Read. Familiar with GTK+, Python, Gstreamer, etc.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
I was a mentor during SoC 2008 for the Translate toolkit project (my student worked successfully on enhancing the Pootle featureset). I have also experience informally mentoring/guiding students and volunteers for a number of Free Software projects (mostly i18n/l10n related).<br />
<br />
*Anything else you think is relevant.<br />
<br />
I was a successful student participant in Summer of Code 2007 under Federico Mena-Quintero for the GNOME project. I also helped in the rating of applications for OLPC as a mentoring organisation during 2008's SoC.<br />
<br />
<br />
<br />
=== [[User:Assim|Assim Deodia]] ===<br />
<br />
*Name/contact<br />
<br />
Assim Deodia (assim.deodia at gmail dot com)<br />
<br />
assimd on IRC<br />
<br />
*Timezone<br />
<br />
Asia/Calcutta (UTC+0530)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
[[Listen Spell]], Activities<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I can comfortably devote 4-5 hrs a week. <br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
I have developed speech server in SoCon for OLPC [http://wiki.laptop.org/go/Speech_Server| Speech Server], Deducto for OLPC and have also developed Listen Spell for OLPC in GSoC.<br />
<br />
<br />
*Anything else you think is relevant.<br />
<br />
I was a successful student participant in Summer of Code 2007 under Dafydd Harries for the OLPC project. I have also developed a low cost OMR processing application which is hosted on sourceforge [http://sourceforge.net/projects/omr-ai/| OMR AI]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Summer_of_Code/Mentors&diff=23028Summer of Code/Mentors2009-03-19T11:07:58Z<p>Assim: </p>
<hr />
<div>Our most important need right now is for quality mentors. If you (or someone you know) would make a good mentor, please nominate yourself (or them), both here on the ML and on the wiki (if you can't handle a little redundant paperwork, you're probably not a good candidate :). Include relevant information such as:<br />
<br />
*Name/contact<br />
*Timezone<br />
*What kind of projects could/would you mentor?<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
*What relevant mentoring (or related) experience do you have?<br />
*Anything else you think is relevant.<br />
<br />
Please also add this page to your watchlist. We will probably later do some kind of "community interview" process where we ask you questions on this page.<br />
<br />
=== Jameson ===<br />
<br />
*Name/contact<br />
<br />
Jameson.Quinn at gmail<br />
<br />
*Timezone<br />
<br />
US Central / Central America (UTC-6)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities or Sugar improvements, especially interested in language or developer tools.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I could commit up to 4-6 hours a week. If we are short on mentors and I find project(s) that are an especially good match, I could do 8 hrs (double duty). Over the summer, I hope to be helping to work on an XO deployment, hopefully on a paid basis, but am currently unemployed.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Maintainer of Develop activity, have done some tinkering with Sugar, I've been involved for over a year.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
I have several years' experience as a full-time teacher.<br />
<br />
*Anything else you think is relevant.<br />
<br />
Nah.<br />
<br />
=== [[User:Nrp|Nrp]] ===<br />
<br />
* Name/contact<br />
<br />
Nirav Patel nrpatel at gmail<br />
<br />
* Timezone<br />
<br />
UTC-5<br />
<br />
* What kind of projects could/would you mentor?<br />
<br />
Pygame or PyGTK based Activities<br />
<br />
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
Graduating and no job prospects, so it is likely I will have quite a<br />
bit of free time as of early May. 5 hours a week is certainly doable.<br />
<br />
* What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Some Pygame/PyGTK Activity development and a module for Pygame.<br />
<br />
* What relevant mentoring (or related) experience do you have?<br />
<br />
Teaching Assistant and miscellaneous mentoring experiences at school.<br />
<br />
* Anything else you think is relevant.<br />
<br />
I survived GSoC on the student end of things in 2008.<br />
<br />
=== Tomeu ===<br />
<br />
*Name/contact<br />
<br />
[[User:Tomeu | Tomeu Vizoso]]<br />
<br />
*Timezone<br />
<br />
Central European Time<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities or Sugar improvements.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I could commit up to 4-6 hours a week.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Coded activities and for the sugar shell for more than two years now.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
Last year mentored one intern at OLPC.<br />
<br />
*Anything else you think is relevant.<br />
<br />
Nah.<br />
<br />
=== Walter ===<br />
<br />
* Name/contact<br />
<br />
[[User:Walter|Walter Bender]]<br />
<br />
EST (UTC-5)<br />
<br />
* What kind of projects could/would you mentor?<br />
<br />
I am interested in Sugar activities that are relevant to daily life in the classroom. Things that help the teacher and learner enhance their approaches to problem-solving. <br />
<br />
* How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?<br />
<br />
As much as necessary to make sure we have a successful, useful outcome.<br />
<br />
* What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
maintainer of [[Activities/TurtleArt]]<br />
<br />
* What relevant mentoring (or related) experience do you have?<br />
<br />
30 years mentoring student projects at MIT<br />
<br />
* Anything else you think is relevant.<br />
<br />
You learn through doing, so I will roll up my sleeves along side whomever I mentor, because I want to keep learning.<br />
<br />
<br />
=== [[User:Bobbyp|Bobby]] ===<br />
<br />
*Name/contact<br />
<br />
firstnamelastname at gmail, nteon on IRC<br />
<br />
*Timezone<br />
<br />
US Eastern Standard Time (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities, lower level stuff.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
Probably 4-6 hours a week.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Maintainer of Model activity, have done some tinkering with Sugar/Rainbow, rewrote boot-animation. Fairly confident with C/Python/Linux, have been involved with OLPC for about a year (although have been mostly lurking on the sugar side of things for a few months).<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
Summer camp counselor for a number of years, OLPC intern summer '08.<br />
<br />
*Anything else you think is relevant.<br />
<br />
I'm a few months behind on Sugar development, but think its a fabulous project. Let me know what you need of me.<br />
<br />
=== [[User:Sebastian|Sebastian]] ===<br />
<br />
*Name/contact<br />
<br />
Sebastian Silva (sebastian at fuentelibre.org), (gmail alternative: sebatustra)<br />
<br />
icarito on IRC<br />
<br />
*Timezone<br />
<br />
Lima, Perú (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
PyGTK-based activities, especially "social" activities.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I am helping a teacher group this (northern summer), that leaves me enough time to commit to this (at least 4-6 hours a week, more if needed). It also is a great chance for some user feedback.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Community volunteer for 2 years now, developed activities, led workshops. Confident in python and GNU. Worked professionally in programming for some years.<br />
<br />
=== [[User:Wade|Wade]] ===<br />
<br />
*Name/contact<br />
<br />
Wade Brainerd (wadetb at gmail dot com) <br />
<br />
wadeb on IRC<br />
<br />
*Timezone<br />
<br />
Portland, Maine (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
New activities, Games, Updates to/refreshes of existing activities, Frameworks for creating activities in new languages (Flash, Ajax, Mono)<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I will be available for a single mentorship this year. I work full time as a programmer but have a flexible schedule.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Community volunteer for 2 years now, developed activities. Experienced in Python, C++, others. 11 years as a professional programmer, including 5 as a technical director and team lead.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
I was closely involved in the 2007 OLPC GSoC project, reviewing applications and communicating with students. I mentored two students informally during 2007 after their GSoC projects were not funded. Both projects were completed with my help.<br />
<br />
*Anything else you think is relevant.<br />
<br />
As the Sugar Labs Activity Team coordinator, I have plenty of access to deployments. This gives me a good handle on what student projects will most effectively advance Sugar Labs' goals in the community. <br />
<br />
As a volunteer activity developer, I have also developed many new activities myself, and overhauled existing ones.<br />
<br />
=== [[User:Lglira|Lglira]] ===<br />
<br />
*Name/contact<br />
<br />
Luis Gustavo Lira, BSc, MSc lira.lg at pucp.edu.pe<br />
<br />
*Timezone<br />
<br />
Lima, Perú (UTC-5)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
Networking, Hardware Projects, Python, Activities (science, math, entrepreneurship).<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I could mentor 1 o 2 students.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Engineer 10 years working experience, CIO and Executive level since 2006.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
Consultant for big telecomms, systems integrators, etc.<br />
Lecturer at University undergraduate and graduate level.<br />
GSoC 2007, 2008 and 2009 Mentor for OpenMoko<br />
GSoC 2008 for OLPC but my student was not funded<br />
<br />
*Anything else you think is relevant.<br />
<br />
Fellow of Lemelson Foundation RAMP-Peru, Social Entrepreneur, Free Culture activist, Appropriate Technology developer, Teaching Science, Math and Entrepeneurship in rural terciary schools.<br />
<br />
=== [[User:benlau|Ben Lau]] ===<br />
<br />
*Name/contact<br />
xbenlau at gmail.com<br />
<br />
*Timezone<br />
UTC+8<br />
<br />
*What kind of projects could/would you mentor?<br />
Video , Computer Vision , Speech Processing , Python, Activities (Educational software , Chinese language learning)<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor?<br />
I could commit up to 4-5 hours a week, able to mentor 1 student.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
10 years Linux development experience , include kernel porting (ARM), Linux driver , GTK+ , opencv , GStreamer , C/C++ , python<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
I have led two teams of university students to join an embedded system contest called Intel Cup (China) in 2006. The teams got a first prize and a second prize award finally.<br />
<br />
*Anything else you think is relevant.<br />
I am leading a team of volunteers on technical side for OLPC APAC division.<br />
<br />
=== [[User:SayaminduDasgupta|Sayamindu]] ===<br />
<br />
*Name/contact<br />
<br />
Sayamindu Dasgupta (sayamindu at gmail)<br />
<br />
unmadindu on IRC<br />
<br />
*Timezone<br />
<br />
Asia/Calcutta (UTC+0530) (I normally work on European timezones)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
Activities, l10n/i18n related projects.<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I am working a contractor for OLPC for the next few months. However, I think I can commit around 4-5 hours per week for the work.<br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
Wrote the Imageviewer activity, maintainer of Terminal, in the process of implementing largish features to Read. Familiar with GTK+, Python, Gstreamer, etc.<br />
<br />
*What relevant mentoring (or related) experience do you have?<br />
<br />
I was a mentor during SoC 2008 for the Translate toolkit project (my student worked successfully on enhancing the Pootle featureset). I have also experience informally mentoring/guiding students and volunteers for a number of Free Software projects (mostly i18n/l10n related).<br />
<br />
*Anything else you think is relevant.<br />
<br />
I was a successful student participant in Summer of Code 2007 under Federico Mena-Quintero for the GNOME project. I also helped in the rating of applications for OLPC as a mentoring organisation during 2008's SoC.<br />
<br />
<br />
<br />
=== [[User:Assim|Assim Deodia]] ===<br />
<br />
*Name/contact<br />
<br />
Assim Deodia (assim.deodia at gmail dot com)<br />
<br />
assimd on IRC<br />
<br />
*Timezone<br />
<br />
Asia/Calcutta (UTC+0530)<br />
<br />
*What kind of projects could/would you mentor?<br />
<br />
[[Listen Spell]], Activities<br />
<br />
*How much time could you devote to mentoring? Can you make the especially solid commitment of being a double-mentor? What are your other commitments over the summer?<br />
<br />
I can comfortably devote 4-5 hrs a week. <br />
<br />
*What relevant coding experience do you have (very briefly, two sentences at most)?<br />
<br />
I have developed speech server in SoCon for OLPC [http://wiki.laptop.org/go/Speech_Server| Speech Server], Deducto for OLPC and have also developed Listen Spell for OLPC in GSoC.<br />
<br />
<br />
*Anything else you think is relevant.<br />
<br />
I was a successful student participant in Summer of Code 2007 under Dafydd Harries for the OLPC project. I have also developed a low cost OMR processing application which is hosted on sourceforge[http://sourceforge.net/projects/omr-ai/| OMR AI]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Activities/Listen_Spell&diff=23025Activities/Listen Spell2009-03-19T10:50:35Z<p>Assim: /* Application Structure */</p>
<hr />
<div>== Listen Spell ==<br />
== Idea ==<br />
The idea is to develop an activity which would help children to learn new words, improve their vocabulary and pronunciation of words. The activity would speak out a randomly selected word from a list of words and the user is expected to spell the word correctly. For voice synthesis activity would be using Speech-Dispatcher and for the list of words it will have a custom dictionary. This activity is an extension of TalknType (http://wiki.laptop.org/go/Talkntype)<br />
== Need ==<br />
To learn any language spoken out in any part of this universe we firstly need to learn its building blocks i.e. words, their pronunciation and how they are spelled. By the side, Grammar of course has its preference. This project aims to provide an activity which would help children to learn new words, their pronunciation, the way they are spelled and to some extent its meaning. This activity is very much aligned to the concept constructive learning. The activity pronounces the word which user has entered and user can "Hear" the difference between two sounds.<br />
== Use Case Scenario ==<br />
A simple use case scenario of the Test Mode is as follows<br />
* User opens the activity and enters the difficulty level of which he/she would like to hear words.<br />
* A random word would be selected and spoken out from the corresponding level-word list. e.g. "Spell Ocean" would be spoken out.<br />
* User is required to spell the word correctly. (Time limit can be optional)<br />
* The activity would speak out each letter as the user types and the whole word as user submit the word.(This will help user to "feel" the difference between his spelling and the correct one.) This option can be disabled in case of group test (explained further).<br />
* There would be an option to repeat the word and also for the hint.<br />
* The hint option will either give user the meaning of the word or its usage in the sentence or image if possible. E.g. for Ocean it can either speak out its usage "The ocean is full of water" or can print its definition on screen i.e. "One of the five large bodies of water separating the continents".<br />
* User can quit or change the level any time during the game.<br />
To make user experience more lively, sounds for different events (Like activity start, Correct answer, Wrong Answer) would be used.<br />
== Level Description ==<br />
Level of a word is decided by ranking them. The ranking algorithm has been explained in the report. An example of level has been given below.<br />
* Initial level would include three to four letter words<br />
** e.g. cat, dog, tree, cup, bear etc<br />
* Medium level would contain five to six letters words<br />
** e.g. monkey, mouse, earth, plane, toffee etc<br />
* Hard level: Seven or more letters<br />
** e.g. computer, Mississippi, dictionary etc<br />
* Professional level (If included) would have complete sentences.<br />
== Implemented features ==<br />
Following are the Implemented features for the activity<br />
* Word source: - Word source is a wordnet dictionary with about 77k words. All words have been ranked and divided into levels so that it is easy to get word list of desired level. This dictionary has been customized to a very high extent removing all the unnecessary data and keeping only the required one. This has made the size of dictionary very small. It has been stored in SQLite data format for easy access.<br />
* Implementation of "Hint": - The hint consists of word meaning, with what part of speech it has been used, its sample usage etc. All these data has been stored with the dictionary itself for easy access.<br />
* Speech-dispatcher: - The voicing has been done using speech dispatcher which would eventually be using espeak for synthesis. Espeak supports more than 30 international languages.<br />
* Voice configuration: Option to edit voice configuration like volume, pitch, rate, language of the words and voice, gender of the voice etc.<br />
* Preferences to choose level of “Hint”: i.e. to select from word usage or word definition or images if possible.<br />
* Save option: The Game can be saved into a configuration file and replayed from the previous state. <br />
== Proposed Features ==<br />
* User defined word list: - This would facilitate users to add their own word list which can help in conducting a small group test. Option to add words through mesh network would be help in large group/class test.<br />
* Multiplayer game over mesh network: - (Future Work) Users can challenge each other over the network. One XO will then act as a server which would generate the word list for all the clients. All the users would receive same word list with limited retry option for each word after which next word would be given to user. The one who spelled most correct words in limited time wins. Option to speak each letter aloud would be disabled in this case.<br />
* Memory tool (Future Work):- A tutor mode in which activity repeats the word again and again until the spelling is absorbed into child's mind.<br />
* Input Methods :- Input Methods would be exposed externally so that other input methods(Like Handwriting and Speech recognition) could be incorporated<br />
== Implementation Details ==<br />
* For the word source we have used wordnet dictionary which contains about 1.5 lakh words with their meaning, sample usage, preposition etc properly mapped. The data for “hint” is stored with the dictionary only and is fetched from there.<br />
* Before making the dictionary usable it has been properly formatted. It contains words like 10mm or double words which are not going to be used for our purpose. Also there are many words which are probably unheard of by school children. We have use aspell to do this. The whole dictionary has been passed through aspell which contains most commonly used words only and thus filtering out the unwanted words. After this All the words are ranked based upon their usage on the internet. Using Yahoo BOSS api’s we have stored the number of search result each word has with the corresponding word. Based on these data all the words have been ranked and combining the word length with its length they have been categorized into 15 different levels.<br />
* Speech-Dispatcher: Speech-Dispatcher (http://www.freebsoft.org/speechd) is a socket-connection based speech server which provides speech APIs in many languages including Python and C. I had a discussion with OLPC developers where considering the need of speech server in XO they agreed to ship this in XO once its RPM is approved by Fedora Package Maintainers. Its RPM is under review process and should get approved soon. I have already got approval for its dependency Dotconf RPM<br />
* Language of implementation: Python<br />
* GUI: All the GUI part would be done in PyGTK and Glade<br />
* Parser for configuration files and dictionary data: OLPC includes many python modules which also include expat xml parser. This module can be used to parse the data and extract the information required<br />
* To have access over mesh network:- PresenceService DBUS API would be used<br />
== Dictionary ==<br />
=== Structure ===<br />
[[Image:Database.pdf|Dictionary Structure]]<br />
<br />
== Application Structure ==<br />
The application has been designed in a very efficient way. Following diagram will clear all the things:<br />
<br />
[[Image:Structure.jpg|200px]]<br />
<br/><br />
Figure 1: Application Structure<br />
<br/><br />
Here we have used the pre-implemented wrapper for espeak that is Speech-Dispatcher. We have designed a wrapper class for managing the dictionary. All the operation performed in the dictionary is through this wrapper only thus maintaining the consistence of the dictionary. The GUI part has been kept as a separate class. All the application logic is preformed in Application Logic. GUI class only looks after updating the GUI.<br />
Possible extension<br />
One could be a tutorial for learning languages using this activity like<br />
* The activity would teach basic sounding vowels like a as in cat, e as in bed, air as in hair etc<br />
* Sounds of consonants like b as in bed, ch as in change, d as in day etc<br />
* Teaching the sound of the whole word<br />
<br />
It would be great if children enters the words and get to know how to pronounce<br />
<br />
== ScreenShots ==<br />
[[Image:Las-ss1.jpg|200px|Home View]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss2.jpg|200px|Using Hint option]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss3.jpg|200px|Voice Configuration Panel]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss4.jpg|200px|Changing Skill Level]]<br />
<br/><br />
<br />
== Code ==<br />
Code can be found here<br />
* [http://seeta.in/wiki/downloads/listen-spell.xo XO Package]<br />
* [http://seeta.in/wiki/downloads/listen-spell.zip Zip]<br />
==== Dependency ====<br />
* Speech Dispatcher is required for this activity to run. Its link can be found below<br />
==== File information ====<br />
* Dict.py – A wrapper class for dictionary<br />
* las.py – Application Logic<br />
* ListenSpell.py – Main class and the GUI class of the aplication<br />
<br />
== Resources ==<br />
<br />
# [http://www.freebsoft.org/speechd Speech Dispatcher]<br />
# [http://www.speaknspell.co.uk Speak & Spell]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Activities/Listen_Spell&diff=23024Activities/Listen Spell2009-03-19T10:50:10Z<p>Assim: /* Structure */</p>
<hr />
<div>== Listen Spell ==<br />
== Idea ==<br />
The idea is to develop an activity which would help children to learn new words, improve their vocabulary and pronunciation of words. The activity would speak out a randomly selected word from a list of words and the user is expected to spell the word correctly. For voice synthesis activity would be using Speech-Dispatcher and for the list of words it will have a custom dictionary. This activity is an extension of TalknType (http://wiki.laptop.org/go/Talkntype)<br />
== Need ==<br />
To learn any language spoken out in any part of this universe we firstly need to learn its building blocks i.e. words, their pronunciation and how they are spelled. By the side, Grammar of course has its preference. This project aims to provide an activity which would help children to learn new words, their pronunciation, the way they are spelled and to some extent its meaning. This activity is very much aligned to the concept constructive learning. The activity pronounces the word which user has entered and user can "Hear" the difference between two sounds.<br />
== Use Case Scenario ==<br />
A simple use case scenario of the Test Mode is as follows<br />
* User opens the activity and enters the difficulty level of which he/she would like to hear words.<br />
* A random word would be selected and spoken out from the corresponding level-word list. e.g. "Spell Ocean" would be spoken out.<br />
* User is required to spell the word correctly. (Time limit can be optional)<br />
* The activity would speak out each letter as the user types and the whole word as user submit the word.(This will help user to "feel" the difference between his spelling and the correct one.) This option can be disabled in case of group test (explained further).<br />
* There would be an option to repeat the word and also for the hint.<br />
* The hint option will either give user the meaning of the word or its usage in the sentence or image if possible. E.g. for Ocean it can either speak out its usage "The ocean is full of water" or can print its definition on screen i.e. "One of the five large bodies of water separating the continents".<br />
* User can quit or change the level any time during the game.<br />
To make user experience more lively, sounds for different events (Like activity start, Correct answer, Wrong Answer) would be used.<br />
== Level Description ==<br />
Level of a word is decided by ranking them. The ranking algorithm has been explained in the report. An example of level has been given below.<br />
* Initial level would include three to four letter words<br />
** e.g. cat, dog, tree, cup, bear etc<br />
* Medium level would contain five to six letters words<br />
** e.g. monkey, mouse, earth, plane, toffee etc<br />
* Hard level: Seven or more letters<br />
** e.g. computer, Mississippi, dictionary etc<br />
* Professional level (If included) would have complete sentences.<br />
== Implemented features ==<br />
Following are the Implemented features for the activity<br />
* Word source: - Word source is a wordnet dictionary with about 77k words. All words have been ranked and divided into levels so that it is easy to get word list of desired level. This dictionary has been customized to a very high extent removing all the unnecessary data and keeping only the required one. This has made the size of dictionary very small. It has been stored in SQLite data format for easy access.<br />
* Implementation of "Hint": - The hint consists of word meaning, with what part of speech it has been used, its sample usage etc. All these data has been stored with the dictionary itself for easy access.<br />
* Speech-dispatcher: - The voicing has been done using speech dispatcher which would eventually be using espeak for synthesis. Espeak supports more than 30 international languages.<br />
* Voice configuration: Option to edit voice configuration like volume, pitch, rate, language of the words and voice, gender of the voice etc.<br />
* Preferences to choose level of “Hint”: i.e. to select from word usage or word definition or images if possible.<br />
* Save option: The Game can be saved into a configuration file and replayed from the previous state. <br />
== Proposed Features ==<br />
* User defined word list: - This would facilitate users to add their own word list which can help in conducting a small group test. Option to add words through mesh network would be help in large group/class test.<br />
* Multiplayer game over mesh network: - (Future Work) Users can challenge each other over the network. One XO will then act as a server which would generate the word list for all the clients. All the users would receive same word list with limited retry option for each word after which next word would be given to user. The one who spelled most correct words in limited time wins. Option to speak each letter aloud would be disabled in this case.<br />
* Memory tool (Future Work):- A tutor mode in which activity repeats the word again and again until the spelling is absorbed into child's mind.<br />
* Input Methods :- Input Methods would be exposed externally so that other input methods(Like Handwriting and Speech recognition) could be incorporated<br />
== Implementation Details ==<br />
* For the word source we have used wordnet dictionary which contains about 1.5 lakh words with their meaning, sample usage, preposition etc properly mapped. The data for “hint” is stored with the dictionary only and is fetched from there.<br />
* Before making the dictionary usable it has been properly formatted. It contains words like 10mm or double words which are not going to be used for our purpose. Also there are many words which are probably unheard of by school children. We have use aspell to do this. The whole dictionary has been passed through aspell which contains most commonly used words only and thus filtering out the unwanted words. After this All the words are ranked based upon their usage on the internet. Using Yahoo BOSS api’s we have stored the number of search result each word has with the corresponding word. Based on these data all the words have been ranked and combining the word length with its length they have been categorized into 15 different levels.<br />
* Speech-Dispatcher: Speech-Dispatcher (http://www.freebsoft.org/speechd) is a socket-connection based speech server which provides speech APIs in many languages including Python and C. I had a discussion with OLPC developers where considering the need of speech server in XO they agreed to ship this in XO once its RPM is approved by Fedora Package Maintainers. Its RPM is under review process and should get approved soon. I have already got approval for its dependency Dotconf RPM<br />
* Language of implementation: Python<br />
* GUI: All the GUI part would be done in PyGTK and Glade<br />
* Parser for configuration files and dictionary data: OLPC includes many python modules which also include expat xml parser. This module can be used to parse the data and extract the information required<br />
* To have access over mesh network:- PresenceService DBUS API would be used<br />
== Dictionary ==<br />
=== Structure ===<br />
[[Image:Database.pdf|Dictionary Structure]]<br />
<br />
== Application Structure ==<br />
The application has been designed in a very efficient way. Following diagram will clear all the things:<br />
<br />
[[File:Structure.jpg]]<br />
<br/><br />
Figure 1: Application Structure<br />
<br/><br />
Here we have used the pre-implemented wrapper for espeak that is Speech-Dispatcher. We have designed a wrapper class for managing the dictionary. All the operation performed in the dictionary is through this wrapper only thus maintaining the consistence of the dictionary. The GUI part has been kept as a separate class. All the application logic is preformed in Application Logic. GUI class only looks after updating the GUI.<br />
Possible extension<br />
One could be a tutorial for learning languages using this activity like<br />
* The activity would teach basic sounding vowels like a as in cat, e as in bed, air as in hair etc<br />
* Sounds of consonants like b as in bed, ch as in change, d as in day etc<br />
* Teaching the sound of the whole word<br />
<br />
It would be great if children enters the words and get to know how to pronounce<br />
<br />
== ScreenShots ==<br />
[[Image:Las-ss1.jpg|200px|Home View]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss2.jpg|200px|Using Hint option]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss3.jpg|200px|Voice Configuration Panel]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss4.jpg|200px|Changing Skill Level]]<br />
<br/><br />
<br />
== Code ==<br />
Code can be found here<br />
* [http://seeta.in/wiki/downloads/listen-spell.xo XO Package]<br />
* [http://seeta.in/wiki/downloads/listen-spell.zip Zip]<br />
==== Dependency ====<br />
* Speech Dispatcher is required for this activity to run. Its link can be found below<br />
==== File information ====<br />
* Dict.py – A wrapper class for dictionary<br />
* las.py – Application Logic<br />
* ListenSpell.py – Main class and the GUI class of the aplication<br />
<br />
== Resources ==<br />
<br />
# [http://www.freebsoft.org/speechd Speech Dispatcher]<br />
# [http://www.speaknspell.co.uk Speak & Spell]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=File:Structure.jpg&diff=23023File:Structure.jpg2009-03-19T10:49:28Z<p>Assim: Listen Spell: Application structure</p>
<hr />
<div>Listen Spell: Application structure</div>Assimhttps://wiki.sugarlabs.org/index.php?title=File:Database.pdf&diff=23022File:Database.pdf2009-03-19T10:47:52Z<p>Assim: Listen Spell Dictionary schema</p>
<hr />
<div>Listen Spell Dictionary schema</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Development_Team/Project_Ideas&diff=23021Development Team/Project Ideas2009-03-19T10:45:04Z<p>Assim: /* Listen Spell activity */</p>
<hr />
<div>This is a list of project ideas. For now the focus is on giving [[GSoC]] students an idea of the kind of thing we're looking for. It also includes dumping ground for less-explicitly-explained crazy ideas at the end.<br />
<br />
'''Priorities''': see the [http://lists.sugarlabs.org/archive/iaep/2009-March/004592.html ongoing discussion of priorities] on our mailing list. You might find new project ideas in that thread, too.<br />
<br />
* There is a similar project ideas page on the [http://wiki.laptop.org/go/Summer_of_Code/Ideas OLPC wiki] (and a related [http://wiki.laptop.org/go/Category:GSoC_proposals category]). OLPC-specific projects, including hardware and scoholserver-related projects, should go there. Feel free to add below relevant projects from that list - perhaps 80% of these could be appropriate Sugarlabs applications. <br />
<br />
'''See something that interests you?''' To get in, you will need to design your project and find a mentor. On irc (#sugar on freenode) or the sugar-devel mailing list, you can briefly introduce yourself, state your interest, and ask relevant and specific questions about the state of the existing code. You should also do your own research for other open-source code that might help you. Get a [[DevelopmentTeam#Development_systems|development environment]] installed. We definitely appreciate it if you can show your readiness to help out - either joining [[BugSquad|bug squad]] and [[BugSquad/Meetings|helping]] to [[BugSquad/TriageGuide|triage]], or actually helping fix some small [http://tinyurl.com/ctfkjl bug]. <br />
<br />
When you're ready, figure out a very basic, preliminary design (where does your new UI fit in? what about the code - what talks to what?) and post that to the [[Sugar_Labs/Contacts#Developer_Lists|mailing list]], asking if anybody would be willing to mentor you. You will almost certainly get some response, but you may not find a prospective mentor right away. That's OK. If your idea is really not a good fit for us, we will let you know; otherwise, remember that several mentors are holding back for now to see which projects shows the most feasibility, clarity, and creativity in their design ideas. Persistence should pay off.<br />
<br />
'''Want to apply with an idea not on this list?''' That's fine. Read the thread linked above about priorities - and remember, our highest priority is for you to have a successful GSoC and hopefully continue to contribute afterwards. Do the steps above, paying particular attention to getting some community members' opinions on whether your idea would be valuable. The [[Sugar_Labs/Contacts#General_List|"iaep" mailing list]] may be the best venue for this. We will not all agree with each other about how important your idea is - that's normal - but our feedback will almost certainly help you refine your idea.<br />
<br />
<div style="float:right;"><br />
__TOC__<br />
</div><br />
<br />
== Template for well-explained ideas ==<br />
<br />
If a project that interests you lacks a "potential mentor" here, or you want to know more about the current status of the related code, we would be happy to help guide you on irc (#sugar on freenode) or mailing lists (technical questions to sugar-devel@lists.laptop.org, educational/general ones to iaep@lists.laptop.org).<br />
<br />
<br />
:<tt> '''==== Project title ====''' </tt><br />
:<br />
:A quick explanation of the project idea<br />
: <br />
: * Priority for Sugar: Low/Medium/High<br />
: <br />
: * Difficulty (as a GSoC project): Easy/Medium/Advanced<br />
: <br />
: * Skills needed: Experience with WikiCode and copy-paste.<br />
<br />
<br />
=== Core Software ===<br />
==== Registry for people ====<br />
Extend the interaction model to include real people beyond the user&ndash;laptop couple. This would extend the virtual network to include some very significant entities, such as family members, who may not have a physical computing device. See the [[Request_New_Features#Support for family interaction | suggestion]] submitted by [[User:Skua]]. The [[olpc:Record]] Activity could be used as fun, instance-of-person creator and embellisher, by capturing an image or video of the person, and saving it in a new registry.<br />
* Integration of a person object into the Sugar architecture <br />
* Extension of the User/Group model to realistically capture the actual Person entity<br />
* Modification of at least one activity (Record ?) to support the new API<br />
* Extension of School Server registration model<br />
* Extension of an Internet person model to support a Person entity (e.g., to support a missing-person registry in the [http://sahana.rit.edu/ Sahana] Disaster Management System)<br />
Lots of extensions are possible, following a good, fundamental design<br />
* Difficulty: Medium - Hard (depending on scope chosen)<br />
* Skills needed: Data modeling, Core system programming<br />
* Potential mentor: [[User:FGrose]] for data modeling, collaborators needed for Core systems and Internet architectures<br />
<br />
==== Speech Synthesis for Sugar ====<br />
Integrate speech synthesis with all activities, not just [[Speak]], and provide for karaoke coloring. See [[User:Mokurai|Mokurai]]'s [http://www.olpcnews.com/content/ebooks/effective_adult_literacy_program.html article] on adapting [[Same Language Subtitling]] for literacy to the XO.<br />
<br />
Desirable Features for Sugar Speech Synthesis Plugin:<br />
<br />
* Provide Sugar Speech Synthesis Configuration Management Tool<br />
* Karaoke Style Coloring in Sugar Environment<br />
* UI for configuration Control<br />
* Accent gets set on the basis of locale<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty (as a GSoC project): Advanced<br />
<br />
*Skills needed: Experience with GTK, decent Python ability, ability to integrate with existing code.<br />
<br />
*Existing Technical Documentation & Work that can be leveraged: Interested developers can refer to [http://google-summer-of-code-2008-olpc.googlecode.com/files/Hemant_Goyal.tar.gz GSOC 08 Project Status Report].<br />
<br />
==== Print Support ====<br />
Print support in Sugar would be useful in many scenarios. The ideal project deliverables would include<br />
* Integration of a printing infrastructure (CUPS ??) into the XO-1 software images <br />
* Modification of Sugar Control Panel to set up the printer (add/select default printer?)<br />
* Modification of at least one activity (Write ?) to support printing<br />
* Making a printing activity, that follows sugar GUI guidelines?<br />
* Extra credit: integrating a server, including permissions and quota management, into the XS image.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): Medium-high<br />
<br />
*Skills needed: Python programming, API design, some communications<br />
<br />
==== Sugar Toolbar submenu support ====<br />
<br />
The Sugar Human Interface Guidelines have a toolbar design that includes submenus (See [[DesignTeam/Designs/Toolbars|Toolbar designs]]). The project would be to extend the existing Toolbar widget to include this new feature and then to work with a few Activity developer to incorporate the new design into their Activities. Possible candidate activities include Paint and [[Activities/Turtle Art|Turtle Art]].<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty (as a GSoC project): Easy-Medium<br />
<br />
*Skills needed: intermediate GTK and python skillz<br />
<br />
==== Versioned Datastore ====<br />
<br />
* To add [[DevelopmentTeam/DatastoreRewrite#Versioned_entries_.28not_fulfilled_yet.29|Version support]] for [[Journal]] / [[DevelopmentTeam/Almanac/sugar.datastore.datastore|DataStore]]: Start with (old) [http://wiki.laptop.org/go/Olpcfs Olpcfs] and (newer; less-documented; based on an RCS backend and a relatively small amount of fuse magic) [http://dev.laptop.org/git/users/cscott/olpcfs2/ olpcfs2]. Get Sugar to mount OLPCFS2, a working virtual versioned filesystem, and keep its datastore there. Get datastore to create a new version for each save (automatic or manual). Modify journal UI to use these versions, fork from old versions, etc. Keep with the same name / tags, create a branch if metadata was changed. Allow the user to access "older" versions (Keeping and "old" version will create a branch) and view ancestry (tree of branches). <br />
<br />
We would not expect a GSoC project to be necessarily ready to check into our trunk. For instance, you could avoid facing the issue of pruning old versions for disk space, or not have a converter for existing datastores. However, it should work as a proof-of-concept with a variety of activities.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty: Hard<br />
<br />
*Skills needed: FUSE/file systems; Python UI; Packaging and building.<br />
<br />
=== Toolkits / Frameworks for developers ===<br />
<br />
==== AJAX Sugar ====<br />
<br />
* Integrate some style of AJAX applications (for instance, Titanium-made apps) into Sugar. JavaScript Python Communication through the following strategies: PyXPCom, hulahop, and xulrunner. see also [http://lists.sugarlabs.org/archive/sugar-devel/2009-March/012829.html the mailing list discussion].<br />
<br />
* Ideally, develop a demo activity which could be used as a template for sugarizing AJAX activities.<br />
<br />
*Priority for Sugar: Very High ("never bet against the browser")<br />
<br />
*Difficulty (as a GSoC project): medium/hard Note: integrating w/ the datastore likely won't be too hard but utilizing Sugar's collaboration features could be very hard<br />
<br />
*Skills needed: Javascript/Python integration (PyXPCom, hulahop)<br />
<br />
*potential mentors: Wade Brainerd (wadetb at gmail dot com), Bryan Berry (bryan at olenepal dot org) can serve as project manager, define requirements and project deliverables<br />
<br />
==== SWF Sugar ====<br />
<br />
* Integrate SWF (Flash/Gnash) applications into Sugar.<br />
* Ideally, develop a demo activity which could be used as a template for sugarizing Flash/Gnash activities.<br />
<br />
*Priority for Sugar: Very High ("never bet against the browser")<br />
<br />
*Difficulty (as a GSoC project): hard<br />
<br />
*Skills needed: SWF/Python integration<br />
<br />
==== Improve Develop activity ====<br />
<br />
There are several improvements that would make the Develop activity a more attractive IDE. Any ONE of these would be a good GSoC project.<br />
<br />
* Make a WYSIWIG GUI editor, like Glade. Note that GTK natively supports loading Glade-format interface definitions, although there would be some work involved making the Sugar interface elements available through this method.<br />
* Integrate Sugarbot and auto-testing facilities.<br />
* Integrate a debugger, based on pdb or other.<br />
<br />
*Priority for Sugar: Medium-High<br />
<br />
*Difficulty: Medium - Hard<br />
<br />
*Skills needed: Good python skills.<br />
<br />
*Potential mentor; Jameson Quinn (firstname dot lastname at gmail dot com)<br />
<br />
==== "Translate Activity" activity ====<br />
<br />
We will never finish localizing all our activities and base software for all our deployments - especially for places with high linguistic diversity like Afghanistan, Peru, Guatemala. So it would be great if there were an easy, discoverable way to translate any string on your machine; have the translation appear on your own machine immediately; and, assuming the activity has a link to a Pootle project, upload that translation to a Pootle server later. (For real-world use, these uploads would probably have to be cached at the school server level, but that is more complexity than we'd expect from a GSoC project.)<br />
<br />
*Priority for Sugar: Medium-High<br />
<br />
*Difficulty: Medium to Hard<br />
<br />
*Skills needed: at least some experience localizing, to know what's involved; ability to do minor hacks on gettext in C and Python; work with localization formats (.po, etc.); Python for activity UI; some simple communications, to upload proposed translations to pootle.<br />
<br />
*potential mentor: Sayamindu Dasgupta (sayamindu at gmail)<br />
<br />
=== Stand-alone activities ===<br />
<br />
==== Improved Read activity ====<br />
Use Gecko to implement a reader for [http://www.openebook.org/ epub] format ebooks. This is superior to PDF because such books can be reflowed to better fit the screen and user preferences. Also, (although it would break the standard) it would make it very simple to include AJAX-style active features to books.<br />
<br />
Extra credit if you support textual and graphical annotation. Deployments have also asked for a page-turn animation. See also [http://lists.sugarlabs.org/archive/sugar-devel/2009-March/012821.html ml].<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): Medium (w/o annotation); very hard (w/annotation)<br />
<br />
*Skills needed: Strong Javascript/DOM skills, some interlanguage integration (Python/Javascript), ability to adapt Read activity's communications code (Python).<br />
<br />
*Potential mentor: Sayamindu Dasgupta (sayamindu at gmail) (already has some code to start with)<br />
<br />
==== Listen Spell activity ====<br />
<br />
Extending [[Listen Spell]] activity wrt to following points<br />
<br />
* Adaptable to different speech models<br />
* Playing over mesh network<br />
* User Defined word list.<br />
* Test Mode: A teacher can feed the pre-defined word list on the network and activity is being used to conduct the test/exam<br />
* Speaking sentences to make student learn grammar<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty (as a GSoC project): Medium <br />
<br />
*Skills needed: Python, GTK, Understanding of sugar mesh network<br />
*Potential mentor: Assim Deodia (assim.deodia at gmail dot com)<br />
<br />
==== KDEEdu ====<br />
<br />
Sugarize any [http://edu.kde.org/ KDEEdu] activity, especially the ones which have no corresponding Sugar activity. This probably means recoding the C to use GTK instead of QT and to use Sugar conventions.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): easy-hard<br />
<br />
*Skills needed: C/C++, GTK.<br />
<br />
==== Educational Toolkit ====<br />
<br />
Either based on the existing educational toolkit, or starting from scratch, enable XO use in classroom scenarios. Such scenarios could include<br />
<br />
* Teacher shows slides, reproduced on child's screens<br />
* Teacher asks questions - either pre-prepared or on-the-fly<br />
* Students give answers via collaboration<br />
* Teacher or student chooses - explicitly or randomly - an answer for further discussion<br />
* Students split in groups and go from their individual answers to a collaborative answer<br />
* Teacher can review all answers later<br />
* Teacher gives individual or group feedback (offline) which will be shared with appropriate students when they come online<br />
* Teacher checks what's on a child's screen - (experience on other platforms shows this "look over shoulder" ability reduces goofing off even though it is rarely used.)<br />
<br />
The low-hanging fruit on [http://wiki.laptop.org/go/Educational_toolkit Educational Toolkit] is the following:<br />
<br />
* Enable collaboration scenarios<br />
* Work on the GUI to provide support for multiple types of questions. <br />
* Add API to make it easy to add new question types.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): medium-hard<br />
<br />
*Skills needed: intermediate ability with Python and communications<br />
<br />
==== Improved Imageviewer ====<br />
<br />
Implement missing bits in Imageviewer, some of which are<br />
<br />
* Sharing support<br />
* Basic image effects support (grayscale, sepia effects, colorize, etc)<br />
* Exif support<br />
<br />
There are more things that can be implemented, but the above are the basic minimum one should try to implement.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): easy-medium<br />
<br />
*Skills needed: Python, GTK. the Sugar collaboration framework<br />
<br />
==== Etc., Etc. ====<br />
It should not be hard at all to imagine educational activities or games which would be useful for primary or secondary school education. Let your imagination run wild!<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty: Medium<br />
<br />
*Skills needed: Python, GTK, Sugar collaboration framework<br />
<br />
== Brainstorm / unexplained ideas ==<br />
<br />
==== Sugar adaption for the Nasa ====<br />
One of the 91 indigenous cultures that still exist in Colombia is the [http://en.wikipedia.org/wiki/Paez_people Paez people] (aka '''Nasa'''). They have their own traditions, customs, world view, mother tongue (Nasa Yuwe), i.e. their own culture. It could be possible to take cultural elements into the Sugar Interface, not only language, to provide Nasa children a suitable and familiar interface. [[User:Santiago|Santiago]] 18:01, 8 March 2008 (EST)<br />
<br />
=== Core Software ===<br />
<br />
* Accessibility Support: Sugar currently doesn't have anything available for the visually impaired.<br />
* Improve automatic testing across the system. This would improve our check-in and build process immensely. Very high priority which nobody is addressing head-on.<br />
==== Homework turn-in ====<!-- keep that title if you move the entry, there are inbound links. --><br />
* "Homework turn-in" support: Certain metadata on a file causes new versions to be pushed out over the net (via SMTP, rss, or other; note that Moodle already has [http://docs.moodle.org/en/Email_processing support] for routing from special email addresses to a "location"). No new UI in Sugar, and a trivial amount of changes to Moodle.<br />
<br />
==== Research projects: unpolished code ====<br />
* There is also [http://wiki.laptop.org/go/Journal%2C_reloaded Journal, reloaded], another research project with real code behind it that is promising but languishing. In this case, the idea is to make the journal "tagging" view transparently compatible with a traditional hierarchical directory structure. <br />
* bemasc's [http://dev.laptop.org/git/users/bemasc/groupthink/ groupthink], expanded: The idea is to have a data structure which keeps itself in sync across many laptops "behind the scenes", thus providing drop-in collaboration as long as the structure in question provides the needed functionality. The problem is that the existing code is unpolished, and only supports some pretty limited data structures. I have some ideas of [[how groupthink could be more general]]. [[User:Homunq|Homunq]] 00:43, 11 March 2009 (UTC)<br />
<br />
==== Java ====<br />
Package and integrate the IcedTea open source bootstrap of OpenJDK Java with browser plugin for the XO. Deliverables would include:<br />
* Binary, source and rpm dependencies for icedtea and icedtea browser plugin<br />
* Java enabled os image<br />
* Integration of packages into autobuild branch<br />
<br />
(This is just to get Java into the build. Creating an application framework would come later.)<br />
<br />
==== Graphical toolkit ====<br />
Important work left to do:<br />
* Give focus feedback by showing a rounded rectangle in gtk buttons and HippoCanvas icons.<br />
* Implement keyboard navigation in HippoCanvas.<br />
* Implement accessibility hooks in HippoCanvas.<br />
* Improve keyboard shortcuts - make them easier to create and implement a UI to make them more discoverable, such as transparent letters which appear when you hold <ctrl><br />
<br />
=== Frameworks/Toolkits ===<br />
==== Mono/.NET ====<br />
The use of Mono could really enhance the number of Sugar developers due to the huge existing .NET community.<br />
Thanks to Torello Querci, developing a Sugar activity in Mono is already possible using the Mono/Sugar bindings Sugar.dll (more on Mono on Sugar [[Mono|here]]).<br />
<br />
The idea for this GSOC project is to greatly enhance this binding:<br />
* Better integration with the Sugar look & feel and HippoCanvas,<br />
* Binding to telepathy API,<br />
* WinForm compatibility,<br />
* MonoDevelop integration.<br />
<br />
More on this idea:<br />
* Priority for Sugar: Low<br />
* Difficulty (as a GSoC project): Medium-Advanced <br />
* Skills needed: C# programming, Linux programming<br />
* Potential mentor: Lionel Laské and/or Torello Querci<br />
<br />
=== Activities ===<br />
* See also ideas at [[ActivityTeam/ProjectIdeas]].<br />
* A better, more fun, Paint option for small children - One way - Use eToys - http://lists.laptop.org/pipermail/etoys/2008-November/002770.html<br />
<br />
==== VideoChat activity ====<br />
telepathy-python has support for audio and video streaming and has recently gained support for using gstreamer, which means that we could easily do efficient videoconferencing using fully open source codecs.<br />
<br />
So a really nice project would be to do a proper Sugar activity for video conferencing.<br />
<br />
==== Language Trainer ====<br />
A language trainer with text to speech support would be very nice. Something that could start with letters and then teach words.<br />
<br />
==== Thesaurus ====<br />
Working together with openthesaurus -- someone could create a thesaurus for kids to learn different words (synonyms and antonyms)<br />
<br />
==== Logo Activity ====<br />
:Logo is a computer programming language used for functional programming. It is an adaptation and dialect of the Lisp language; some have called it Lisp without the parentheses. Today, it is known mainly for its turtle graphics, but it also has significant facilities for handling lists, files, I/O, and recursion.<br />
<br />
:Logo was created for educational use, more so for constructivist teaching, by Daniel G. Bobrow, Wally Feurzeig and Seymour Papert. It can be used to teach most computer science concepts, as UC Berkeley Lecturer Brian Harvey does in his Computer Science Logo Style trilogy. — [http://en.wikipedia.org/wiki/Logo_(programming_language) Wikipedia article on the Logo programming language]<br />
<br />
There is a "[[Running_Linux_Applications_Under_Sugar|Sugarized]]" Logo—[http://www.eecs.berkeley.edu/~bh/usermanual UCB Logo]—but it does not record data into the Journal or use the standard Sugar toolbar.<br />
<br />
There are two possible approaches we could take: (1) digging deeper into UCB Logo and (2) working with another Logo, possibly [http://pylogo.org/ PyLogo].<br />
<br />
* Priority: high as Logo is an important tool engaging children in programming<br />
* Difficultly: moderate to high, depending upon the approach chosen<br />
** Integrating Pylogo would be relatively easy, but it is a very limited implementation of Logo that would need enhancing<br />
* Experience: some Python and C if the UCB Logo approach is taken<br />
<br />
==== FoodForce2 Activity ====<br />
<br />
* Integrate story board into the game. <br />
* Make an extensible API to enable educators to add their own storyboards. <br />
* Add Speech Support into the project. <br />
* Optimise the speed and efficiency of the game.<br />
<br />
Link : http://code.google.com/p/foodforce/<br />
<br />
<br />
== Other ideas for improving Sugar Activities ==<br />
<br />
=== Broad project ideas ===<br />
*See [[MarketingTeam/Events/Sugarcamp_Boston_2008/Minutes#Items_from_the_roadmap_brainstorm|a list of project ideas]] from a brainstorming session at Sugar Camp.<br />
<br />
=== Activities Site (addons) ===<br />
<br />
* The activities http://activities.sugarlabs.org, is in need of a serious ''sugarization'', a GSOC project could be giving some love to the dressing and coding of the underlaying activities site (based on mozilla's addons).<br />
<br />
=== Packaging for specific distros ===<br />
<br />
'''Debian'''<br />
* Help in maintaining and packaging sugar and activities in debian.<br />
* Including/adapting debian-edu .debs to sugar<br />
<br />
Hello there, I am quite interested in Debian and want to help with this and all other projects. Please contact me (bjoern AT xruby DOT net) if I can be of assistance to the XO project or other things. I will start my PhD studies in April and have previously studied Computer Science. I am highly interested in helping where I can and want to bring the necessary technology to kids around the world.<br />
: from olpcwiki 2008<br />
<br />
=== Preeti's list ===<br />
<br />
Hi, I am Preeti, from New Delhi. I would like to get myself involved in this very interesting aspect of the OLPC software development. I have jotted some of my views on the same at:<br />
<br />
http://wiki.laptop.org/go/User_talk:59.178.99.172<br />
<br />
<br />
<br />
[[Category:Participate]]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Development_Team/Project_Ideas&diff=23020Development Team/Project Ideas2009-03-19T10:44:12Z<p>Assim: /* Listen Spell activity */</p>
<hr />
<div>This is a list of project ideas. For now the focus is on giving [[GSoC]] students an idea of the kind of thing we're looking for. It also includes dumping ground for less-explicitly-explained crazy ideas at the end.<br />
<br />
'''Priorities''': see the [http://lists.sugarlabs.org/archive/iaep/2009-March/004592.html ongoing discussion of priorities] on our mailing list. You might find new project ideas in that thread, too.<br />
<br />
* There is a similar project ideas page on the [http://wiki.laptop.org/go/Summer_of_Code/Ideas OLPC wiki] (and a related [http://wiki.laptop.org/go/Category:GSoC_proposals category]). OLPC-specific projects, including hardware and scoholserver-related projects, should go there. Feel free to add below relevant projects from that list - perhaps 80% of these could be appropriate Sugarlabs applications. <br />
<br />
'''See something that interests you?''' To get in, you will need to design your project and find a mentor. On irc (#sugar on freenode) or the sugar-devel mailing list, you can briefly introduce yourself, state your interest, and ask relevant and specific questions about the state of the existing code. You should also do your own research for other open-source code that might help you. Get a [[DevelopmentTeam#Development_systems|development environment]] installed. We definitely appreciate it if you can show your readiness to help out - either joining [[BugSquad|bug squad]] and [[BugSquad/Meetings|helping]] to [[BugSquad/TriageGuide|triage]], or actually helping fix some small [http://tinyurl.com/ctfkjl bug]. <br />
<br />
When you're ready, figure out a very basic, preliminary design (where does your new UI fit in? what about the code - what talks to what?) and post that to the [[Sugar_Labs/Contacts#Developer_Lists|mailing list]], asking if anybody would be willing to mentor you. You will almost certainly get some response, but you may not find a prospective mentor right away. That's OK. If your idea is really not a good fit for us, we will let you know; otherwise, remember that several mentors are holding back for now to see which projects shows the most feasibility, clarity, and creativity in their design ideas. Persistence should pay off.<br />
<br />
'''Want to apply with an idea not on this list?''' That's fine. Read the thread linked above about priorities - and remember, our highest priority is for you to have a successful GSoC and hopefully continue to contribute afterwards. Do the steps above, paying particular attention to getting some community members' opinions on whether your idea would be valuable. The [[Sugar_Labs/Contacts#General_List|"iaep" mailing list]] may be the best venue for this. We will not all agree with each other about how important your idea is - that's normal - but our feedback will almost certainly help you refine your idea.<br />
<br />
<div style="float:right;"><br />
__TOC__<br />
</div><br />
<br />
== Template for well-explained ideas ==<br />
<br />
If a project that interests you lacks a "potential mentor" here, or you want to know more about the current status of the related code, we would be happy to help guide you on irc (#sugar on freenode) or mailing lists (technical questions to sugar-devel@lists.laptop.org, educational/general ones to iaep@lists.laptop.org).<br />
<br />
<br />
:<tt> '''==== Project title ====''' </tt><br />
:<br />
:A quick explanation of the project idea<br />
: <br />
: * Priority for Sugar: Low/Medium/High<br />
: <br />
: * Difficulty (as a GSoC project): Easy/Medium/Advanced<br />
: <br />
: * Skills needed: Experience with WikiCode and copy-paste.<br />
<br />
<br />
=== Core Software ===<br />
==== Registry for people ====<br />
Extend the interaction model to include real people beyond the user&ndash;laptop couple. This would extend the virtual network to include some very significant entities, such as family members, who may not have a physical computing device. See the [[Request_New_Features#Support for family interaction | suggestion]] submitted by [[User:Skua]]. The [[olpc:Record]] Activity could be used as fun, instance-of-person creator and embellisher, by capturing an image or video of the person, and saving it in a new registry.<br />
* Integration of a person object into the Sugar architecture <br />
* Extension of the User/Group model to realistically capture the actual Person entity<br />
* Modification of at least one activity (Record ?) to support the new API<br />
* Extension of School Server registration model<br />
* Extension of an Internet person model to support a Person entity (e.g., to support a missing-person registry in the [http://sahana.rit.edu/ Sahana] Disaster Management System)<br />
Lots of extensions are possible, following a good, fundamental design<br />
* Difficulty: Medium - Hard (depending on scope chosen)<br />
* Skills needed: Data modeling, Core system programming<br />
* Potential mentor: [[User:FGrose]] for data modeling, collaborators needed for Core systems and Internet architectures<br />
<br />
==== Speech Synthesis for Sugar ====<br />
Integrate speech synthesis with all activities, not just [[Speak]], and provide for karaoke coloring. See [[User:Mokurai|Mokurai]]'s [http://www.olpcnews.com/content/ebooks/effective_adult_literacy_program.html article] on adapting [[Same Language Subtitling]] for literacy to the XO.<br />
<br />
Desirable Features for Sugar Speech Synthesis Plugin:<br />
<br />
* Provide Sugar Speech Synthesis Configuration Management Tool<br />
* Karaoke Style Coloring in Sugar Environment<br />
* UI for configuration Control<br />
* Accent gets set on the basis of locale<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty (as a GSoC project): Advanced<br />
<br />
*Skills needed: Experience with GTK, decent Python ability, ability to integrate with existing code.<br />
<br />
*Existing Technical Documentation & Work that can be leveraged: Interested developers can refer to [http://google-summer-of-code-2008-olpc.googlecode.com/files/Hemant_Goyal.tar.gz GSOC 08 Project Status Report].<br />
<br />
==== Print Support ====<br />
Print support in Sugar would be useful in many scenarios. The ideal project deliverables would include<br />
* Integration of a printing infrastructure (CUPS ??) into the XO-1 software images <br />
* Modification of Sugar Control Panel to set up the printer (add/select default printer?)<br />
* Modification of at least one activity (Write ?) to support printing<br />
* Making a printing activity, that follows sugar GUI guidelines?<br />
* Extra credit: integrating a server, including permissions and quota management, into the XS image.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): Medium-high<br />
<br />
*Skills needed: Python programming, API design, some communications<br />
<br />
==== Sugar Toolbar submenu support ====<br />
<br />
The Sugar Human Interface Guidelines have a toolbar design that includes submenus (See [[DesignTeam/Designs/Toolbars|Toolbar designs]]). The project would be to extend the existing Toolbar widget to include this new feature and then to work with a few Activity developer to incorporate the new design into their Activities. Possible candidate activities include Paint and [[Activities/Turtle Art|Turtle Art]].<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty (as a GSoC project): Easy-Medium<br />
<br />
*Skills needed: intermediate GTK and python skillz<br />
<br />
==== Versioned Datastore ====<br />
<br />
* To add [[DevelopmentTeam/DatastoreRewrite#Versioned_entries_.28not_fulfilled_yet.29|Version support]] for [[Journal]] / [[DevelopmentTeam/Almanac/sugar.datastore.datastore|DataStore]]: Start with (old) [http://wiki.laptop.org/go/Olpcfs Olpcfs] and (newer; less-documented; based on an RCS backend and a relatively small amount of fuse magic) [http://dev.laptop.org/git/users/cscott/olpcfs2/ olpcfs2]. Get Sugar to mount OLPCFS2, a working virtual versioned filesystem, and keep its datastore there. Get datastore to create a new version for each save (automatic or manual). Modify journal UI to use these versions, fork from old versions, etc. Keep with the same name / tags, create a branch if metadata was changed. Allow the user to access "older" versions (Keeping and "old" version will create a branch) and view ancestry (tree of branches). <br />
<br />
We would not expect a GSoC project to be necessarily ready to check into our trunk. For instance, you could avoid facing the issue of pruning old versions for disk space, or not have a converter for existing datastores. However, it should work as a proof-of-concept with a variety of activities.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty: Hard<br />
<br />
*Skills needed: FUSE/file systems; Python UI; Packaging and building.<br />
<br />
=== Toolkits / Frameworks for developers ===<br />
<br />
==== AJAX Sugar ====<br />
<br />
* Integrate some style of AJAX applications (for instance, Titanium-made apps) into Sugar. JavaScript Python Communication through the following strategies: PyXPCom, hulahop, and xulrunner. see also [http://lists.sugarlabs.org/archive/sugar-devel/2009-March/012829.html the mailing list discussion].<br />
<br />
* Ideally, develop a demo activity which could be used as a template for sugarizing AJAX activities.<br />
<br />
*Priority for Sugar: Very High ("never bet against the browser")<br />
<br />
*Difficulty (as a GSoC project): medium/hard Note: integrating w/ the datastore likely won't be too hard but utilizing Sugar's collaboration features could be very hard<br />
<br />
*Skills needed: Javascript/Python integration (PyXPCom, hulahop)<br />
<br />
*potential mentors: Wade Brainerd (wadetb at gmail dot com), Bryan Berry (bryan at olenepal dot org) can serve as project manager, define requirements and project deliverables<br />
<br />
==== SWF Sugar ====<br />
<br />
* Integrate SWF (Flash/Gnash) applications into Sugar.<br />
* Ideally, develop a demo activity which could be used as a template for sugarizing Flash/Gnash activities.<br />
<br />
*Priority for Sugar: Very High ("never bet against the browser")<br />
<br />
*Difficulty (as a GSoC project): hard<br />
<br />
*Skills needed: SWF/Python integration<br />
<br />
==== Improve Develop activity ====<br />
<br />
There are several improvements that would make the Develop activity a more attractive IDE. Any ONE of these would be a good GSoC project.<br />
<br />
* Make a WYSIWIG GUI editor, like Glade. Note that GTK natively supports loading Glade-format interface definitions, although there would be some work involved making the Sugar interface elements available through this method.<br />
* Integrate Sugarbot and auto-testing facilities.<br />
* Integrate a debugger, based on pdb or other.<br />
<br />
*Priority for Sugar: Medium-High<br />
<br />
*Difficulty: Medium - Hard<br />
<br />
*Skills needed: Good python skills.<br />
<br />
*Potential mentor; Jameson Quinn (firstname dot lastname at gmail dot com)<br />
<br />
==== "Translate Activity" activity ====<br />
<br />
We will never finish localizing all our activities and base software for all our deployments - especially for places with high linguistic diversity like Afghanistan, Peru, Guatemala. So it would be great if there were an easy, discoverable way to translate any string on your machine; have the translation appear on your own machine immediately; and, assuming the activity has a link to a Pootle project, upload that translation to a Pootle server later. (For real-world use, these uploads would probably have to be cached at the school server level, but that is more complexity than we'd expect from a GSoC project.)<br />
<br />
*Priority for Sugar: Medium-High<br />
<br />
*Difficulty: Medium to Hard<br />
<br />
*Skills needed: at least some experience localizing, to know what's involved; ability to do minor hacks on gettext in C and Python; work with localization formats (.po, etc.); Python for activity UI; some simple communications, to upload proposed translations to pootle.<br />
<br />
*potential mentor: Sayamindu Dasgupta (sayamindu at gmail)<br />
<br />
=== Stand-alone activities ===<br />
<br />
==== Improved Read activity ====<br />
Use Gecko to implement a reader for [http://www.openebook.org/ epub] format ebooks. This is superior to PDF because such books can be reflowed to better fit the screen and user preferences. Also, (although it would break the standard) it would make it very simple to include AJAX-style active features to books.<br />
<br />
Extra credit if you support textual and graphical annotation. Deployments have also asked for a page-turn animation. See also [http://lists.sugarlabs.org/archive/sugar-devel/2009-March/012821.html ml].<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): Medium (w/o annotation); very hard (w/annotation)<br />
<br />
*Skills needed: Strong Javascript/DOM skills, some interlanguage integration (Python/Javascript), ability to adapt Read activity's communications code (Python).<br />
<br />
*Potential mentor: Sayamindu Dasgupta (sayamindu at gmail) (already has some code to start with)<br />
<br />
==== Listen Spell activity ====<br />
<br />
Extending [[Listen Spell]] activity wrt to following points<br />
<br />
* Adaptable to different speech models<br />
* Playing over mesh network<br />
* User Defined word list.<br />
* Test Mode: A teacher can feed the pre-defined word list on the network and activity is being used to conduct the test/exam<br />
* Speaking sentences to make student learn grammar<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty (as a GSoC project): Medium <br />
<br />
*Skills needed: Python, GTK, Understanding of sugar mesh network<br />
*Potential mentor: Assim Deodia (assim.deodia at gmail)<br />
<br />
==== KDEEdu ====<br />
<br />
Sugarize any [http://edu.kde.org/ KDEEdu] activity, especially the ones which have no corresponding Sugar activity. This probably means recoding the C to use GTK instead of QT and to use Sugar conventions.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): easy-hard<br />
<br />
*Skills needed: C/C++, GTK.<br />
<br />
==== Educational Toolkit ====<br />
<br />
Either based on the existing educational toolkit, or starting from scratch, enable XO use in classroom scenarios. Such scenarios could include<br />
<br />
* Teacher shows slides, reproduced on child's screens<br />
* Teacher asks questions - either pre-prepared or on-the-fly<br />
* Students give answers via collaboration<br />
* Teacher or student chooses - explicitly or randomly - an answer for further discussion<br />
* Students split in groups and go from their individual answers to a collaborative answer<br />
* Teacher can review all answers later<br />
* Teacher gives individual or group feedback (offline) which will be shared with appropriate students when they come online<br />
* Teacher checks what's on a child's screen - (experience on other platforms shows this "look over shoulder" ability reduces goofing off even though it is rarely used.)<br />
<br />
The low-hanging fruit on [http://wiki.laptop.org/go/Educational_toolkit Educational Toolkit] is the following:<br />
<br />
* Enable collaboration scenarios<br />
* Work on the GUI to provide support for multiple types of questions. <br />
* Add API to make it easy to add new question types.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): medium-hard<br />
<br />
*Skills needed: intermediate ability with Python and communications<br />
<br />
==== Improved Imageviewer ====<br />
<br />
Implement missing bits in Imageviewer, some of which are<br />
<br />
* Sharing support<br />
* Basic image effects support (grayscale, sepia effects, colorize, etc)<br />
* Exif support<br />
<br />
There are more things that can be implemented, but the above are the basic minimum one should try to implement.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): easy-medium<br />
<br />
*Skills needed: Python, GTK. the Sugar collaboration framework<br />
<br />
==== Etc., Etc. ====<br />
It should not be hard at all to imagine educational activities or games which would be useful for primary or secondary school education. Let your imagination run wild!<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty: Medium<br />
<br />
*Skills needed: Python, GTK, Sugar collaboration framework<br />
<br />
== Brainstorm / unexplained ideas ==<br />
<br />
==== Sugar adaption for the Nasa ====<br />
One of the 91 indigenous cultures that still exist in Colombia is the [http://en.wikipedia.org/wiki/Paez_people Paez people] (aka '''Nasa'''). They have their own traditions, customs, world view, mother tongue (Nasa Yuwe), i.e. their own culture. It could be possible to take cultural elements into the Sugar Interface, not only language, to provide Nasa children a suitable and familiar interface. [[User:Santiago|Santiago]] 18:01, 8 March 2008 (EST)<br />
<br />
=== Core Software ===<br />
<br />
* Accessibility Support: Sugar currently doesn't have anything available for the visually impaired.<br />
* Improve automatic testing across the system. This would improve our check-in and build process immensely. Very high priority which nobody is addressing head-on.<br />
==== Homework turn-in ====<!-- keep that title if you move the entry, there are inbound links. --><br />
* "Homework turn-in" support: Certain metadata on a file causes new versions to be pushed out over the net (via SMTP, rss, or other; note that Moodle already has [http://docs.moodle.org/en/Email_processing support] for routing from special email addresses to a "location"). No new UI in Sugar, and a trivial amount of changes to Moodle.<br />
<br />
==== Research projects: unpolished code ====<br />
* There is also [http://wiki.laptop.org/go/Journal%2C_reloaded Journal, reloaded], another research project with real code behind it that is promising but languishing. In this case, the idea is to make the journal "tagging" view transparently compatible with a traditional hierarchical directory structure. <br />
* bemasc's [http://dev.laptop.org/git/users/bemasc/groupthink/ groupthink], expanded: The idea is to have a data structure which keeps itself in sync across many laptops "behind the scenes", thus providing drop-in collaboration as long as the structure in question provides the needed functionality. The problem is that the existing code is unpolished, and only supports some pretty limited data structures. I have some ideas of [[how groupthink could be more general]]. [[User:Homunq|Homunq]] 00:43, 11 March 2009 (UTC)<br />
<br />
==== Java ====<br />
Package and integrate the IcedTea open source bootstrap of OpenJDK Java with browser plugin for the XO. Deliverables would include:<br />
* Binary, source and rpm dependencies for icedtea and icedtea browser plugin<br />
* Java enabled os image<br />
* Integration of packages into autobuild branch<br />
<br />
(This is just to get Java into the build. Creating an application framework would come later.)<br />
<br />
==== Graphical toolkit ====<br />
Important work left to do:<br />
* Give focus feedback by showing a rounded rectangle in gtk buttons and HippoCanvas icons.<br />
* Implement keyboard navigation in HippoCanvas.<br />
* Implement accessibility hooks in HippoCanvas.<br />
* Improve keyboard shortcuts - make them easier to create and implement a UI to make them more discoverable, such as transparent letters which appear when you hold <ctrl><br />
<br />
=== Frameworks/Toolkits ===<br />
==== Mono/.NET ====<br />
The use of Mono could really enhance the number of Sugar developers due to the huge existing .NET community.<br />
Thanks to Torello Querci, developing a Sugar activity in Mono is already possible using the Mono/Sugar bindings Sugar.dll (more on Mono on Sugar [[Mono|here]]).<br />
<br />
The idea for this GSOC project is to greatly enhance this binding:<br />
* Better integration with the Sugar look & feel and HippoCanvas,<br />
* Binding to telepathy API,<br />
* WinForm compatibility,<br />
* MonoDevelop integration.<br />
<br />
More on this idea:<br />
* Priority for Sugar: Low<br />
* Difficulty (as a GSoC project): Medium-Advanced <br />
* Skills needed: C# programming, Linux programming<br />
* Potential mentor: Lionel Laské and/or Torello Querci<br />
<br />
=== Activities ===<br />
* See also ideas at [[ActivityTeam/ProjectIdeas]].<br />
* A better, more fun, Paint option for small children - One way - Use eToys - http://lists.laptop.org/pipermail/etoys/2008-November/002770.html<br />
<br />
==== VideoChat activity ====<br />
telepathy-python has support for audio and video streaming and has recently gained support for using gstreamer, which means that we could easily do efficient videoconferencing using fully open source codecs.<br />
<br />
So a really nice project would be to do a proper Sugar activity for video conferencing.<br />
<br />
==== Language Trainer ====<br />
A language trainer with text to speech support would be very nice. Something that could start with letters and then teach words.<br />
<br />
==== Thesaurus ====<br />
Working together with openthesaurus -- someone could create a thesaurus for kids to learn different words (synonyms and antonyms)<br />
<br />
==== Logo Activity ====<br />
:Logo is a computer programming language used for functional programming. It is an adaptation and dialect of the Lisp language; some have called it Lisp without the parentheses. Today, it is known mainly for its turtle graphics, but it also has significant facilities for handling lists, files, I/O, and recursion.<br />
<br />
:Logo was created for educational use, more so for constructivist teaching, by Daniel G. Bobrow, Wally Feurzeig and Seymour Papert. It can be used to teach most computer science concepts, as UC Berkeley Lecturer Brian Harvey does in his Computer Science Logo Style trilogy. — [http://en.wikipedia.org/wiki/Logo_(programming_language) Wikipedia article on the Logo programming language]<br />
<br />
There is a "[[Running_Linux_Applications_Under_Sugar|Sugarized]]" Logo—[http://www.eecs.berkeley.edu/~bh/usermanual UCB Logo]—but it does not record data into the Journal or use the standard Sugar toolbar.<br />
<br />
There are two possible approaches we could take: (1) digging deeper into UCB Logo and (2) working with another Logo, possibly [http://pylogo.org/ PyLogo].<br />
<br />
* Priority: high as Logo is an important tool engaging children in programming<br />
* Difficultly: moderate to high, depending upon the approach chosen<br />
** Integrating Pylogo would be relatively easy, but it is a very limited implementation of Logo that would need enhancing<br />
* Experience: some Python and C if the UCB Logo approach is taken<br />
<br />
==== FoodForce2 Activity ====<br />
<br />
* Integrate story board into the game. <br />
* Make an extensible API to enable educators to add their own storyboards. <br />
* Add Speech Support into the project. <br />
* Optimise the speed and efficiency of the game.<br />
<br />
Link : http://code.google.com/p/foodforce/<br />
<br />
<br />
== Other ideas for improving Sugar Activities ==<br />
<br />
=== Broad project ideas ===<br />
*See [[MarketingTeam/Events/Sugarcamp_Boston_2008/Minutes#Items_from_the_roadmap_brainstorm|a list of project ideas]] from a brainstorming session at Sugar Camp.<br />
<br />
=== Activities Site (addons) ===<br />
<br />
* The activities http://activities.sugarlabs.org, is in need of a serious ''sugarization'', a GSOC project could be giving some love to the dressing and coding of the underlaying activities site (based on mozilla's addons).<br />
<br />
=== Packaging for specific distros ===<br />
<br />
'''Debian'''<br />
* Help in maintaining and packaging sugar and activities in debian.<br />
* Including/adapting debian-edu .debs to sugar<br />
<br />
Hello there, I am quite interested in Debian and want to help with this and all other projects. Please contact me (bjoern AT xruby DOT net) if I can be of assistance to the XO project or other things. I will start my PhD studies in April and have previously studied Computer Science. I am highly interested in helping where I can and want to bring the necessary technology to kids around the world.<br />
: from olpcwiki 2008<br />
<br />
=== Preeti's list ===<br />
<br />
Hi, I am Preeti, from New Delhi. I would like to get myself involved in this very interesting aspect of the OLPC software development. I have jotted some of my views on the same at:<br />
<br />
http://wiki.laptop.org/go/User_talk:59.178.99.172<br />
<br />
<br />
<br />
[[Category:Participate]]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Development_Team/Project_Ideas&diff=23019Development Team/Project Ideas2009-03-19T10:43:32Z<p>Assim: /* Stand-alone activities */</p>
<hr />
<div>This is a list of project ideas. For now the focus is on giving [[GSoC]] students an idea of the kind of thing we're looking for. It also includes dumping ground for less-explicitly-explained crazy ideas at the end.<br />
<br />
'''Priorities''': see the [http://lists.sugarlabs.org/archive/iaep/2009-March/004592.html ongoing discussion of priorities] on our mailing list. You might find new project ideas in that thread, too.<br />
<br />
* There is a similar project ideas page on the [http://wiki.laptop.org/go/Summer_of_Code/Ideas OLPC wiki] (and a related [http://wiki.laptop.org/go/Category:GSoC_proposals category]). OLPC-specific projects, including hardware and scoholserver-related projects, should go there. Feel free to add below relevant projects from that list - perhaps 80% of these could be appropriate Sugarlabs applications. <br />
<br />
'''See something that interests you?''' To get in, you will need to design your project and find a mentor. On irc (#sugar on freenode) or the sugar-devel mailing list, you can briefly introduce yourself, state your interest, and ask relevant and specific questions about the state of the existing code. You should also do your own research for other open-source code that might help you. Get a [[DevelopmentTeam#Development_systems|development environment]] installed. We definitely appreciate it if you can show your readiness to help out - either joining [[BugSquad|bug squad]] and [[BugSquad/Meetings|helping]] to [[BugSquad/TriageGuide|triage]], or actually helping fix some small [http://tinyurl.com/ctfkjl bug]. <br />
<br />
When you're ready, figure out a very basic, preliminary design (where does your new UI fit in? what about the code - what talks to what?) and post that to the [[Sugar_Labs/Contacts#Developer_Lists|mailing list]], asking if anybody would be willing to mentor you. You will almost certainly get some response, but you may not find a prospective mentor right away. That's OK. If your idea is really not a good fit for us, we will let you know; otherwise, remember that several mentors are holding back for now to see which projects shows the most feasibility, clarity, and creativity in their design ideas. Persistence should pay off.<br />
<br />
'''Want to apply with an idea not on this list?''' That's fine. Read the thread linked above about priorities - and remember, our highest priority is for you to have a successful GSoC and hopefully continue to contribute afterwards. Do the steps above, paying particular attention to getting some community members' opinions on whether your idea would be valuable. The [[Sugar_Labs/Contacts#General_List|"iaep" mailing list]] may be the best venue for this. We will not all agree with each other about how important your idea is - that's normal - but our feedback will almost certainly help you refine your idea.<br />
<br />
<div style="float:right;"><br />
__TOC__<br />
</div><br />
<br />
== Template for well-explained ideas ==<br />
<br />
If a project that interests you lacks a "potential mentor" here, or you want to know more about the current status of the related code, we would be happy to help guide you on irc (#sugar on freenode) or mailing lists (technical questions to sugar-devel@lists.laptop.org, educational/general ones to iaep@lists.laptop.org).<br />
<br />
<br />
:<tt> '''==== Project title ====''' </tt><br />
:<br />
:A quick explanation of the project idea<br />
: <br />
: * Priority for Sugar: Low/Medium/High<br />
: <br />
: * Difficulty (as a GSoC project): Easy/Medium/Advanced<br />
: <br />
: * Skills needed: Experience with WikiCode and copy-paste.<br />
<br />
<br />
=== Core Software ===<br />
==== Registry for people ====<br />
Extend the interaction model to include real people beyond the user&ndash;laptop couple. This would extend the virtual network to include some very significant entities, such as family members, who may not have a physical computing device. See the [[Request_New_Features#Support for family interaction | suggestion]] submitted by [[User:Skua]]. The [[olpc:Record]] Activity could be used as fun, instance-of-person creator and embellisher, by capturing an image or video of the person, and saving it in a new registry.<br />
* Integration of a person object into the Sugar architecture <br />
* Extension of the User/Group model to realistically capture the actual Person entity<br />
* Modification of at least one activity (Record ?) to support the new API<br />
* Extension of School Server registration model<br />
* Extension of an Internet person model to support a Person entity (e.g., to support a missing-person registry in the [http://sahana.rit.edu/ Sahana] Disaster Management System)<br />
Lots of extensions are possible, following a good, fundamental design<br />
* Difficulty: Medium - Hard (depending on scope chosen)<br />
* Skills needed: Data modeling, Core system programming<br />
* Potential mentor: [[User:FGrose]] for data modeling, collaborators needed for Core systems and Internet architectures<br />
<br />
==== Speech Synthesis for Sugar ====<br />
Integrate speech synthesis with all activities, not just [[Speak]], and provide for karaoke coloring. See [[User:Mokurai|Mokurai]]'s [http://www.olpcnews.com/content/ebooks/effective_adult_literacy_program.html article] on adapting [[Same Language Subtitling]] for literacy to the XO.<br />
<br />
Desirable Features for Sugar Speech Synthesis Plugin:<br />
<br />
* Provide Sugar Speech Synthesis Configuration Management Tool<br />
* Karaoke Style Coloring in Sugar Environment<br />
* UI for configuration Control<br />
* Accent gets set on the basis of locale<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty (as a GSoC project): Advanced<br />
<br />
*Skills needed: Experience with GTK, decent Python ability, ability to integrate with existing code.<br />
<br />
*Existing Technical Documentation & Work that can be leveraged: Interested developers can refer to [http://google-summer-of-code-2008-olpc.googlecode.com/files/Hemant_Goyal.tar.gz GSOC 08 Project Status Report].<br />
<br />
==== Print Support ====<br />
Print support in Sugar would be useful in many scenarios. The ideal project deliverables would include<br />
* Integration of a printing infrastructure (CUPS ??) into the XO-1 software images <br />
* Modification of Sugar Control Panel to set up the printer (add/select default printer?)<br />
* Modification of at least one activity (Write ?) to support printing<br />
* Making a printing activity, that follows sugar GUI guidelines?<br />
* Extra credit: integrating a server, including permissions and quota management, into the XS image.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): Medium-high<br />
<br />
*Skills needed: Python programming, API design, some communications<br />
<br />
==== Sugar Toolbar submenu support ====<br />
<br />
The Sugar Human Interface Guidelines have a toolbar design that includes submenus (See [[DesignTeam/Designs/Toolbars|Toolbar designs]]). The project would be to extend the existing Toolbar widget to include this new feature and then to work with a few Activity developer to incorporate the new design into their Activities. Possible candidate activities include Paint and [[Activities/Turtle Art|Turtle Art]].<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty (as a GSoC project): Easy-Medium<br />
<br />
*Skills needed: intermediate GTK and python skillz<br />
<br />
==== Versioned Datastore ====<br />
<br />
* To add [[DevelopmentTeam/DatastoreRewrite#Versioned_entries_.28not_fulfilled_yet.29|Version support]] for [[Journal]] / [[DevelopmentTeam/Almanac/sugar.datastore.datastore|DataStore]]: Start with (old) [http://wiki.laptop.org/go/Olpcfs Olpcfs] and (newer; less-documented; based on an RCS backend and a relatively small amount of fuse magic) [http://dev.laptop.org/git/users/cscott/olpcfs2/ olpcfs2]. Get Sugar to mount OLPCFS2, a working virtual versioned filesystem, and keep its datastore there. Get datastore to create a new version for each save (automatic or manual). Modify journal UI to use these versions, fork from old versions, etc. Keep with the same name / tags, create a branch if metadata was changed. Allow the user to access "older" versions (Keeping and "old" version will create a branch) and view ancestry (tree of branches). <br />
<br />
We would not expect a GSoC project to be necessarily ready to check into our trunk. For instance, you could avoid facing the issue of pruning old versions for disk space, or not have a converter for existing datastores. However, it should work as a proof-of-concept with a variety of activities.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty: Hard<br />
<br />
*Skills needed: FUSE/file systems; Python UI; Packaging and building.<br />
<br />
=== Toolkits / Frameworks for developers ===<br />
<br />
==== AJAX Sugar ====<br />
<br />
* Integrate some style of AJAX applications (for instance, Titanium-made apps) into Sugar. JavaScript Python Communication through the following strategies: PyXPCom, hulahop, and xulrunner. see also [http://lists.sugarlabs.org/archive/sugar-devel/2009-March/012829.html the mailing list discussion].<br />
<br />
* Ideally, develop a demo activity which could be used as a template for sugarizing AJAX activities.<br />
<br />
*Priority for Sugar: Very High ("never bet against the browser")<br />
<br />
*Difficulty (as a GSoC project): medium/hard Note: integrating w/ the datastore likely won't be too hard but utilizing Sugar's collaboration features could be very hard<br />
<br />
*Skills needed: Javascript/Python integration (PyXPCom, hulahop)<br />
<br />
*potential mentors: Wade Brainerd (wadetb at gmail dot com), Bryan Berry (bryan at olenepal dot org) can serve as project manager, define requirements and project deliverables<br />
<br />
==== SWF Sugar ====<br />
<br />
* Integrate SWF (Flash/Gnash) applications into Sugar.<br />
* Ideally, develop a demo activity which could be used as a template for sugarizing Flash/Gnash activities.<br />
<br />
*Priority for Sugar: Very High ("never bet against the browser")<br />
<br />
*Difficulty (as a GSoC project): hard<br />
<br />
*Skills needed: SWF/Python integration<br />
<br />
==== Improve Develop activity ====<br />
<br />
There are several improvements that would make the Develop activity a more attractive IDE. Any ONE of these would be a good GSoC project.<br />
<br />
* Make a WYSIWIG GUI editor, like Glade. Note that GTK natively supports loading Glade-format interface definitions, although there would be some work involved making the Sugar interface elements available through this method.<br />
* Integrate Sugarbot and auto-testing facilities.<br />
* Integrate a debugger, based on pdb or other.<br />
<br />
*Priority for Sugar: Medium-High<br />
<br />
*Difficulty: Medium - Hard<br />
<br />
*Skills needed: Good python skills.<br />
<br />
*Potential mentor; Jameson Quinn (firstname dot lastname at gmail dot com)<br />
<br />
==== "Translate Activity" activity ====<br />
<br />
We will never finish localizing all our activities and base software for all our deployments - especially for places with high linguistic diversity like Afghanistan, Peru, Guatemala. So it would be great if there were an easy, discoverable way to translate any string on your machine; have the translation appear on your own machine immediately; and, assuming the activity has a link to a Pootle project, upload that translation to a Pootle server later. (For real-world use, these uploads would probably have to be cached at the school server level, but that is more complexity than we'd expect from a GSoC project.)<br />
<br />
*Priority for Sugar: Medium-High<br />
<br />
*Difficulty: Medium to Hard<br />
<br />
*Skills needed: at least some experience localizing, to know what's involved; ability to do minor hacks on gettext in C and Python; work with localization formats (.po, etc.); Python for activity UI; some simple communications, to upload proposed translations to pootle.<br />
<br />
*potential mentor: Sayamindu Dasgupta (sayamindu at gmail)<br />
<br />
=== Stand-alone activities ===<br />
<br />
==== Improved Read activity ====<br />
Use Gecko to implement a reader for [http://www.openebook.org/ epub] format ebooks. This is superior to PDF because such books can be reflowed to better fit the screen and user preferences. Also, (although it would break the standard) it would make it very simple to include AJAX-style active features to books.<br />
<br />
Extra credit if you support textual and graphical annotation. Deployments have also asked for a page-turn animation. See also [http://lists.sugarlabs.org/archive/sugar-devel/2009-March/012821.html ml].<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): Medium (w/o annotation); very hard (w/annotation)<br />
<br />
*Skills needed: Strong Javascript/DOM skills, some interlanguage integration (Python/Javascript), ability to adapt Read activity's communications code (Python).<br />
<br />
*Potential mentor: Sayamindu Dasgupta (sayamindu at gmail) (already has some code to start with)<br />
<br />
==== Listen Spell activity ====<br />
<br />
Extending [Listen Spell] activity wrt to following points<br />
<br />
* Adaptable to different speech models<br />
* Playing over mesh network<br />
* User Defined word list.<br />
* Test Mode: A teacher can feed the pre-defined word list on the network and activity is being used to conduct the test/exam<br />
* Speaking sentences to make student learn grammar<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty (as a GSoC project): Medium <br />
<br />
*Skills needed: Python, GTK, Understanding of sugar mesh network<br />
*Potential mentor: Assim Deodia (assim.deodia at gmail)<br />
<br />
==== KDEEdu ====<br />
<br />
Sugarize any [http://edu.kde.org/ KDEEdu] activity, especially the ones which have no corresponding Sugar activity. This probably means recoding the C to use GTK instead of QT and to use Sugar conventions.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): easy-hard<br />
<br />
*Skills needed: C/C++, GTK.<br />
<br />
==== Educational Toolkit ====<br />
<br />
Either based on the existing educational toolkit, or starting from scratch, enable XO use in classroom scenarios. Such scenarios could include<br />
<br />
* Teacher shows slides, reproduced on child's screens<br />
* Teacher asks questions - either pre-prepared or on-the-fly<br />
* Students give answers via collaboration<br />
* Teacher or student chooses - explicitly or randomly - an answer for further discussion<br />
* Students split in groups and go from their individual answers to a collaborative answer<br />
* Teacher can review all answers later<br />
* Teacher gives individual or group feedback (offline) which will be shared with appropriate students when they come online<br />
* Teacher checks what's on a child's screen - (experience on other platforms shows this "look over shoulder" ability reduces goofing off even though it is rarely used.)<br />
<br />
The low-hanging fruit on [http://wiki.laptop.org/go/Educational_toolkit Educational Toolkit] is the following:<br />
<br />
* Enable collaboration scenarios<br />
* Work on the GUI to provide support for multiple types of questions. <br />
* Add API to make it easy to add new question types.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): medium-hard<br />
<br />
*Skills needed: intermediate ability with Python and communications<br />
<br />
==== Improved Imageviewer ====<br />
<br />
Implement missing bits in Imageviewer, some of which are<br />
<br />
* Sharing support<br />
* Basic image effects support (grayscale, sepia effects, colorize, etc)<br />
* Exif support<br />
<br />
There are more things that can be implemented, but the above are the basic minimum one should try to implement.<br />
<br />
*Priority for Sugar: High<br />
<br />
*Difficulty (as a GSoC project): easy-medium<br />
<br />
*Skills needed: Python, GTK. the Sugar collaboration framework<br />
<br />
==== Etc., Etc. ====<br />
It should not be hard at all to imagine educational activities or games which would be useful for primary or secondary school education. Let your imagination run wild!<br />
<br />
*Priority for Sugar: Medium<br />
<br />
*Difficulty: Medium<br />
<br />
*Skills needed: Python, GTK, Sugar collaboration framework<br />
<br />
== Brainstorm / unexplained ideas ==<br />
<br />
==== Sugar adaption for the Nasa ====<br />
One of the 91 indigenous cultures that still exist in Colombia is the [http://en.wikipedia.org/wiki/Paez_people Paez people] (aka '''Nasa'''). They have their own traditions, customs, world view, mother tongue (Nasa Yuwe), i.e. their own culture. It could be possible to take cultural elements into the Sugar Interface, not only language, to provide Nasa children a suitable and familiar interface. [[User:Santiago|Santiago]] 18:01, 8 March 2008 (EST)<br />
<br />
=== Core Software ===<br />
<br />
* Accessibility Support: Sugar currently doesn't have anything available for the visually impaired.<br />
* Improve automatic testing across the system. This would improve our check-in and build process immensely. Very high priority which nobody is addressing head-on.<br />
==== Homework turn-in ====<!-- keep that title if you move the entry, there are inbound links. --><br />
* "Homework turn-in" support: Certain metadata on a file causes new versions to be pushed out over the net (via SMTP, rss, or other; note that Moodle already has [http://docs.moodle.org/en/Email_processing support] for routing from special email addresses to a "location"). No new UI in Sugar, and a trivial amount of changes to Moodle.<br />
<br />
==== Research projects: unpolished code ====<br />
* There is also [http://wiki.laptop.org/go/Journal%2C_reloaded Journal, reloaded], another research project with real code behind it that is promising but languishing. In this case, the idea is to make the journal "tagging" view transparently compatible with a traditional hierarchical directory structure. <br />
* bemasc's [http://dev.laptop.org/git/users/bemasc/groupthink/ groupthink], expanded: The idea is to have a data structure which keeps itself in sync across many laptops "behind the scenes", thus providing drop-in collaboration as long as the structure in question provides the needed functionality. The problem is that the existing code is unpolished, and only supports some pretty limited data structures. I have some ideas of [[how groupthink could be more general]]. [[User:Homunq|Homunq]] 00:43, 11 March 2009 (UTC)<br />
<br />
==== Java ====<br />
Package and integrate the IcedTea open source bootstrap of OpenJDK Java with browser plugin for the XO. Deliverables would include:<br />
* Binary, source and rpm dependencies for icedtea and icedtea browser plugin<br />
* Java enabled os image<br />
* Integration of packages into autobuild branch<br />
<br />
(This is just to get Java into the build. Creating an application framework would come later.)<br />
<br />
==== Graphical toolkit ====<br />
Important work left to do:<br />
* Give focus feedback by showing a rounded rectangle in gtk buttons and HippoCanvas icons.<br />
* Implement keyboard navigation in HippoCanvas.<br />
* Implement accessibility hooks in HippoCanvas.<br />
* Improve keyboard shortcuts - make them easier to create and implement a UI to make them more discoverable, such as transparent letters which appear when you hold <ctrl><br />
<br />
=== Frameworks/Toolkits ===<br />
==== Mono/.NET ====<br />
The use of Mono could really enhance the number of Sugar developers due to the huge existing .NET community.<br />
Thanks to Torello Querci, developing a Sugar activity in Mono is already possible using the Mono/Sugar bindings Sugar.dll (more on Mono on Sugar [[Mono|here]]).<br />
<br />
The idea for this GSOC project is to greatly enhance this binding:<br />
* Better integration with the Sugar look & feel and HippoCanvas,<br />
* Binding to telepathy API,<br />
* WinForm compatibility,<br />
* MonoDevelop integration.<br />
<br />
More on this idea:<br />
* Priority for Sugar: Low<br />
* Difficulty (as a GSoC project): Medium-Advanced <br />
* Skills needed: C# programming, Linux programming<br />
* Potential mentor: Lionel Laské and/or Torello Querci<br />
<br />
=== Activities ===<br />
* See also ideas at [[ActivityTeam/ProjectIdeas]].<br />
* A better, more fun, Paint option for small children - One way - Use eToys - http://lists.laptop.org/pipermail/etoys/2008-November/002770.html<br />
<br />
==== VideoChat activity ====<br />
telepathy-python has support for audio and video streaming and has recently gained support for using gstreamer, which means that we could easily do efficient videoconferencing using fully open source codecs.<br />
<br />
So a really nice project would be to do a proper Sugar activity for video conferencing.<br />
<br />
==== Language Trainer ====<br />
A language trainer with text to speech support would be very nice. Something that could start with letters and then teach words.<br />
<br />
==== Thesaurus ====<br />
Working together with openthesaurus -- someone could create a thesaurus for kids to learn different words (synonyms and antonyms)<br />
<br />
==== Logo Activity ====<br />
:Logo is a computer programming language used for functional programming. It is an adaptation and dialect of the Lisp language; some have called it Lisp without the parentheses. Today, it is known mainly for its turtle graphics, but it also has significant facilities for handling lists, files, I/O, and recursion.<br />
<br />
:Logo was created for educational use, more so for constructivist teaching, by Daniel G. Bobrow, Wally Feurzeig and Seymour Papert. It can be used to teach most computer science concepts, as UC Berkeley Lecturer Brian Harvey does in his Computer Science Logo Style trilogy. — [http://en.wikipedia.org/wiki/Logo_(programming_language) Wikipedia article on the Logo programming language]<br />
<br />
There is a "[[Running_Linux_Applications_Under_Sugar|Sugarized]]" Logo—[http://www.eecs.berkeley.edu/~bh/usermanual UCB Logo]—but it does not record data into the Journal or use the standard Sugar toolbar.<br />
<br />
There are two possible approaches we could take: (1) digging deeper into UCB Logo and (2) working with another Logo, possibly [http://pylogo.org/ PyLogo].<br />
<br />
* Priority: high as Logo is an important tool engaging children in programming<br />
* Difficultly: moderate to high, depending upon the approach chosen<br />
** Integrating Pylogo would be relatively easy, but it is a very limited implementation of Logo that would need enhancing<br />
* Experience: some Python and C if the UCB Logo approach is taken<br />
<br />
==== FoodForce2 Activity ====<br />
<br />
* Integrate story board into the game. <br />
* Make an extensible API to enable educators to add their own storyboards. <br />
* Add Speech Support into the project. <br />
* Optimise the speed and efficiency of the game.<br />
<br />
Link : http://code.google.com/p/foodforce/<br />
<br />
<br />
== Other ideas for improving Sugar Activities ==<br />
<br />
=== Broad project ideas ===<br />
*See [[MarketingTeam/Events/Sugarcamp_Boston_2008/Minutes#Items_from_the_roadmap_brainstorm|a list of project ideas]] from a brainstorming session at Sugar Camp.<br />
<br />
=== Activities Site (addons) ===<br />
<br />
* The activities http://activities.sugarlabs.org, is in need of a serious ''sugarization'', a GSOC project could be giving some love to the dressing and coding of the underlaying activities site (based on mozilla's addons).<br />
<br />
=== Packaging for specific distros ===<br />
<br />
'''Debian'''<br />
* Help in maintaining and packaging sugar and activities in debian.<br />
* Including/adapting debian-edu .debs to sugar<br />
<br />
Hello there, I am quite interested in Debian and want to help with this and all other projects. Please contact me (bjoern AT xruby DOT net) if I can be of assistance to the XO project or other things. I will start my PhD studies in April and have previously studied Computer Science. I am highly interested in helping where I can and want to bring the necessary technology to kids around the world.<br />
: from olpcwiki 2008<br />
<br />
=== Preeti's list ===<br />
<br />
Hi, I am Preeti, from New Delhi. I would like to get myself involved in this very interesting aspect of the OLPC software development. I have jotted some of my views on the same at:<br />
<br />
http://wiki.laptop.org/go/User_talk:59.178.99.172<br />
<br />
<br />
<br />
[[Category:Participate]]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Activities/Listen_Spell&diff=23018Activities/Listen Spell2009-03-19T10:34:02Z<p>Assim: /* ScreenShots */</p>
<hr />
<div>== Listen Spell ==<br />
== Idea ==<br />
The idea is to develop an activity which would help children to learn new words, improve their vocabulary and pronunciation of words. The activity would speak out a randomly selected word from a list of words and the user is expected to spell the word correctly. For voice synthesis activity would be using Speech-Dispatcher and for the list of words it will have a custom dictionary. This activity is an extension of TalknType (http://wiki.laptop.org/go/Talkntype)<br />
== Need ==<br />
To learn any language spoken out in any part of this universe we firstly need to learn its building blocks i.e. words, their pronunciation and how they are spelled. By the side, Grammar of course has its preference. This project aims to provide an activity which would help children to learn new words, their pronunciation, the way they are spelled and to some extent its meaning. This activity is very much aligned to the concept constructive learning. The activity pronounces the word which user has entered and user can "Hear" the difference between two sounds.<br />
== Use Case Scenario ==<br />
A simple use case scenario of the Test Mode is as follows<br />
* User opens the activity and enters the difficulty level of which he/she would like to hear words.<br />
* A random word would be selected and spoken out from the corresponding level-word list. e.g. "Spell Ocean" would be spoken out.<br />
* User is required to spell the word correctly. (Time limit can be optional)<br />
* The activity would speak out each letter as the user types and the whole word as user submit the word.(This will help user to "feel" the difference between his spelling and the correct one.) This option can be disabled in case of group test (explained further).<br />
* There would be an option to repeat the word and also for the hint.<br />
* The hint option will either give user the meaning of the word or its usage in the sentence or image if possible. E.g. for Ocean it can either speak out its usage "The ocean is full of water" or can print its definition on screen i.e. "One of the five large bodies of water separating the continents".<br />
* User can quit or change the level any time during the game.<br />
To make user experience more lively, sounds for different events (Like activity start, Correct answer, Wrong Answer) would be used.<br />
== Level Description ==<br />
Level of a word is decided by ranking them. The ranking algorithm has been explained in the report. An example of level has been given below.<br />
* Initial level would include three to four letter words<br />
** e.g. cat, dog, tree, cup, bear etc<br />
* Medium level would contain five to six letters words<br />
** e.g. monkey, mouse, earth, plane, toffee etc<br />
* Hard level: Seven or more letters<br />
** e.g. computer, Mississippi, dictionary etc<br />
* Professional level (If included) would have complete sentences.<br />
== Implemented features ==<br />
Following are the Implemented features for the activity<br />
* Word source: - Word source is a wordnet dictionary with about 77k words. All words have been ranked and divided into levels so that it is easy to get word list of desired level. This dictionary has been customized to a very high extent removing all the unnecessary data and keeping only the required one. This has made the size of dictionary very small. It has been stored in SQLite data format for easy access.<br />
* Implementation of "Hint": - The hint consists of word meaning, with what part of speech it has been used, its sample usage etc. All these data has been stored with the dictionary itself for easy access.<br />
* Speech-dispatcher: - The voicing has been done using speech dispatcher which would eventually be using espeak for synthesis. Espeak supports more than 30 international languages.<br />
* Voice configuration: Option to edit voice configuration like volume, pitch, rate, language of the words and voice, gender of the voice etc.<br />
* Preferences to choose level of “Hint”: i.e. to select from word usage or word definition or images if possible.<br />
* Save option: The Game can be saved into a configuration file and replayed from the previous state. <br />
== Proposed Features ==<br />
* User defined word list: - This would facilitate users to add their own word list which can help in conducting a small group test. Option to add words through mesh network would be help in large group/class test.<br />
* Multiplayer game over mesh network: - (Future Work) Users can challenge each other over the network. One XO will then act as a server which would generate the word list for all the clients. All the users would receive same word list with limited retry option for each word after which next word would be given to user. The one who spelled most correct words in limited time wins. Option to speak each letter aloud would be disabled in this case.<br />
* Memory tool (Future Work):- A tutor mode in which activity repeats the word again and again until the spelling is absorbed into child's mind.<br />
* Input Methods :- Input Methods would be exposed externally so that other input methods(Like Handwriting and Speech recognition) could be incorporated<br />
== Implementation Details ==<br />
* For the word source we have used wordnet dictionary which contains about 1.5 lakh words with their meaning, sample usage, preposition etc properly mapped. The data for “hint” is stored with the dictionary only and is fetched from there.<br />
* Before making the dictionary usable it has been properly formatted. It contains words like 10mm or double words which are not going to be used for our purpose. Also there are many words which are probably unheard of by school children. We have use aspell to do this. The whole dictionary has been passed through aspell which contains most commonly used words only and thus filtering out the unwanted words. After this All the words are ranked based upon their usage on the internet. Using Yahoo BOSS api’s we have stored the number of search result each word has with the corresponding word. Based on these data all the words have been ranked and combining the word length with its length they have been categorized into 15 different levels.<br />
* Speech-Dispatcher: Speech-Dispatcher (http://www.freebsoft.org/speechd) is a socket-connection based speech server which provides speech APIs in many languages including Python and C. I had a discussion with OLPC developers where considering the need of speech server in XO they agreed to ship this in XO once its RPM is approved by Fedora Package Maintainers. Its RPM is under review process and should get approved soon. I have already got approval for its dependency Dotconf RPM<br />
* Language of implementation: Python<br />
* GUI: All the GUI part would be done in PyGTK and Glade<br />
* Parser for configuration files and dictionary data: OLPC includes many python modules which also include expat xml parser. This module can be used to parse the data and extract the information required<br />
* To have access over mesh network:- PresenceService DBUS API would be used<br />
== Dictionary ==<br />
=== Structure ===<br />
[[Media:Database.pdf|Dictionary Structure]]<br />
<br />
== Application Structure ==<br />
The application has been designed in a very efficient way. Following diagram will clear all the things:<br />
<br />
[[File:Structure.jpg]]<br />
<br/><br />
Figure 1: Application Structure<br />
<br/><br />
Here we have used the pre-implemented wrapper for espeak that is Speech-Dispatcher. We have designed a wrapper class for managing the dictionary. All the operation performed in the dictionary is through this wrapper only thus maintaining the consistence of the dictionary. The GUI part has been kept as a separate class. All the application logic is preformed in Application Logic. GUI class only looks after updating the GUI.<br />
Possible extension<br />
One could be a tutorial for learning languages using this activity like<br />
* The activity would teach basic sounding vowels like a as in cat, e as in bed, air as in hair etc<br />
* Sounds of consonants like b as in bed, ch as in change, d as in day etc<br />
* Teaching the sound of the whole word<br />
<br />
It would be great if children enters the words and get to know how to pronounce<br />
<br />
== ScreenShots ==<br />
[[Image:Las-ss1.jpg|200px|Home View]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss2.jpg|200px|Using Hint option]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss3.jpg|200px|Voice Configuration Panel]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss4.jpg|200px|Changing Skill Level]]<br />
<br/><br />
<br />
== Code ==<br />
Code can be found here<br />
* [http://seeta.in/wiki/downloads/listen-spell.xo XO Package]<br />
* [http://seeta.in/wiki/downloads/listen-spell.zip Zip]<br />
==== Dependency ====<br />
* Speech Dispatcher is required for this activity to run. Its link can be found below<br />
==== File information ====<br />
* Dict.py – A wrapper class for dictionary<br />
* las.py – Application Logic<br />
* ListenSpell.py – Main class and the GUI class of the aplication<br />
<br />
== Resources ==<br />
<br />
# [http://www.freebsoft.org/speechd Speech Dispatcher]<br />
# [http://www.speaknspell.co.uk Speak & Spell]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Activities/Listen_Spell&diff=23017Activities/Listen Spell2009-03-19T10:33:04Z<p>Assim: /* ScreenShots */</p>
<hr />
<div>== Listen Spell ==<br />
== Idea ==<br />
The idea is to develop an activity which would help children to learn new words, improve their vocabulary and pronunciation of words. The activity would speak out a randomly selected word from a list of words and the user is expected to spell the word correctly. For voice synthesis activity would be using Speech-Dispatcher and for the list of words it will have a custom dictionary. This activity is an extension of TalknType (http://wiki.laptop.org/go/Talkntype)<br />
== Need ==<br />
To learn any language spoken out in any part of this universe we firstly need to learn its building blocks i.e. words, their pronunciation and how they are spelled. By the side, Grammar of course has its preference. This project aims to provide an activity which would help children to learn new words, their pronunciation, the way they are spelled and to some extent its meaning. This activity is very much aligned to the concept constructive learning. The activity pronounces the word which user has entered and user can "Hear" the difference between two sounds.<br />
== Use Case Scenario ==<br />
A simple use case scenario of the Test Mode is as follows<br />
* User opens the activity and enters the difficulty level of which he/she would like to hear words.<br />
* A random word would be selected and spoken out from the corresponding level-word list. e.g. "Spell Ocean" would be spoken out.<br />
* User is required to spell the word correctly. (Time limit can be optional)<br />
* The activity would speak out each letter as the user types and the whole word as user submit the word.(This will help user to "feel" the difference between his spelling and the correct one.) This option can be disabled in case of group test (explained further).<br />
* There would be an option to repeat the word and also for the hint.<br />
* The hint option will either give user the meaning of the word or its usage in the sentence or image if possible. E.g. for Ocean it can either speak out its usage "The ocean is full of water" or can print its definition on screen i.e. "One of the five large bodies of water separating the continents".<br />
* User can quit or change the level any time during the game.<br />
To make user experience more lively, sounds for different events (Like activity start, Correct answer, Wrong Answer) would be used.<br />
== Level Description ==<br />
Level of a word is decided by ranking them. The ranking algorithm has been explained in the report. An example of level has been given below.<br />
* Initial level would include three to four letter words<br />
** e.g. cat, dog, tree, cup, bear etc<br />
* Medium level would contain five to six letters words<br />
** e.g. monkey, mouse, earth, plane, toffee etc<br />
* Hard level: Seven or more letters<br />
** e.g. computer, Mississippi, dictionary etc<br />
* Professional level (If included) would have complete sentences.<br />
== Implemented features ==<br />
Following are the Implemented features for the activity<br />
* Word source: - Word source is a wordnet dictionary with about 77k words. All words have been ranked and divided into levels so that it is easy to get word list of desired level. This dictionary has been customized to a very high extent removing all the unnecessary data and keeping only the required one. This has made the size of dictionary very small. It has been stored in SQLite data format for easy access.<br />
* Implementation of "Hint": - The hint consists of word meaning, with what part of speech it has been used, its sample usage etc. All these data has been stored with the dictionary itself for easy access.<br />
* Speech-dispatcher: - The voicing has been done using speech dispatcher which would eventually be using espeak for synthesis. Espeak supports more than 30 international languages.<br />
* Voice configuration: Option to edit voice configuration like volume, pitch, rate, language of the words and voice, gender of the voice etc.<br />
* Preferences to choose level of “Hint”: i.e. to select from word usage or word definition or images if possible.<br />
* Save option: The Game can be saved into a configuration file and replayed from the previous state. <br />
== Proposed Features ==<br />
* User defined word list: - This would facilitate users to add their own word list which can help in conducting a small group test. Option to add words through mesh network would be help in large group/class test.<br />
* Multiplayer game over mesh network: - (Future Work) Users can challenge each other over the network. One XO will then act as a server which would generate the word list for all the clients. All the users would receive same word list with limited retry option for each word after which next word would be given to user. The one who spelled most correct words in limited time wins. Option to speak each letter aloud would be disabled in this case.<br />
* Memory tool (Future Work):- A tutor mode in which activity repeats the word again and again until the spelling is absorbed into child's mind.<br />
* Input Methods :- Input Methods would be exposed externally so that other input methods(Like Handwriting and Speech recognition) could be incorporated<br />
== Implementation Details ==<br />
* For the word source we have used wordnet dictionary which contains about 1.5 lakh words with their meaning, sample usage, preposition etc properly mapped. The data for “hint” is stored with the dictionary only and is fetched from there.<br />
* Before making the dictionary usable it has been properly formatted. It contains words like 10mm or double words which are not going to be used for our purpose. Also there are many words which are probably unheard of by school children. We have use aspell to do this. The whole dictionary has been passed through aspell which contains most commonly used words only and thus filtering out the unwanted words. After this All the words are ranked based upon their usage on the internet. Using Yahoo BOSS api’s we have stored the number of search result each word has with the corresponding word. Based on these data all the words have been ranked and combining the word length with its length they have been categorized into 15 different levels.<br />
* Speech-Dispatcher: Speech-Dispatcher (http://www.freebsoft.org/speechd) is a socket-connection based speech server which provides speech APIs in many languages including Python and C. I had a discussion with OLPC developers where considering the need of speech server in XO they agreed to ship this in XO once its RPM is approved by Fedora Package Maintainers. Its RPM is under review process and should get approved soon. I have already got approval for its dependency Dotconf RPM<br />
* Language of implementation: Python<br />
* GUI: All the GUI part would be done in PyGTK and Glade<br />
* Parser for configuration files and dictionary data: OLPC includes many python modules which also include expat xml parser. This module can be used to parse the data and extract the information required<br />
* To have access over mesh network:- PresenceService DBUS API would be used<br />
== Dictionary ==<br />
=== Structure ===<br />
[[Media:Database.pdf|Dictionary Structure]]<br />
<br />
== Application Structure ==<br />
The application has been designed in a very efficient way. Following diagram will clear all the things:<br />
<br />
[[File:Structure.jpg]]<br />
<br/><br />
Figure 1: Application Structure<br />
<br/><br />
Here we have used the pre-implemented wrapper for espeak that is Speech-Dispatcher. We have designed a wrapper class for managing the dictionary. All the operation performed in the dictionary is through this wrapper only thus maintaining the consistence of the dictionary. The GUI part has been kept as a separate class. All the application logic is preformed in Application Logic. GUI class only looks after updating the GUI.<br />
Possible extension<br />
One could be a tutorial for learning languages using this activity like<br />
* The activity would teach basic sounding vowels like a as in cat, e as in bed, air as in hair etc<br />
* Sounds of consonants like b as in bed, ch as in change, d as in day etc<br />
* Teaching the sound of the whole word<br />
<br />
It would be great if children enters the words and get to know how to pronounce<br />
<br />
== ScreenShots ==<br />
[[Image:Las-ss1.jpg|thumb|Home View]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss2.jpg|thumb|Using Hint option]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss3.jpg|thumb|Voice Configuration Panel]]<br />
<br/><br />
<br/><br />
[[Image:Las-ss4.jpg|thumb|Changing Skill Level]]<br />
<br/><br />
<br />
== Code ==<br />
Code can be found here<br />
* [http://seeta.in/wiki/downloads/listen-spell.xo XO Package]<br />
* [http://seeta.in/wiki/downloads/listen-spell.zip Zip]<br />
==== Dependency ====<br />
* Speech Dispatcher is required for this activity to run. Its link can be found below<br />
==== File information ====<br />
* Dict.py – A wrapper class for dictionary<br />
* las.py – Application Logic<br />
* ListenSpell.py – Main class and the GUI class of the aplication<br />
<br />
== Resources ==<br />
<br />
# [http://www.freebsoft.org/speechd Speech Dispatcher]<br />
# [http://www.speaknspell.co.uk Speak & Spell]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=File:Las-ss4.jpg&diff=23016File:Las-ss4.jpg2009-03-19T10:32:41Z<p>Assim: </p>
<hr />
<div></div>Assimhttps://wiki.sugarlabs.org/index.php?title=File:Las-ss3.jpg&diff=23015File:Las-ss3.jpg2009-03-19T10:31:30Z<p>Assim: </p>
<hr />
<div></div>Assimhttps://wiki.sugarlabs.org/index.php?title=File:Las-ss2.jpg&diff=23014File:Las-ss2.jpg2009-03-19T10:30:15Z<p>Assim: </p>
<hr />
<div></div>Assimhttps://wiki.sugarlabs.org/index.php?title=Activities/Listen_Spell&diff=23013Activities/Listen Spell2009-03-19T10:29:22Z<p>Assim: /* ScreenShots */</p>
<hr />
<div>== Listen Spell ==<br />
== Idea ==<br />
The idea is to develop an activity which would help children to learn new words, improve their vocabulary and pronunciation of words. The activity would speak out a randomly selected word from a list of words and the user is expected to spell the word correctly. For voice synthesis activity would be using Speech-Dispatcher and for the list of words it will have a custom dictionary. This activity is an extension of TalknType (http://wiki.laptop.org/go/Talkntype)<br />
== Need ==<br />
To learn any language spoken out in any part of this universe we firstly need to learn its building blocks i.e. words, their pronunciation and how they are spelled. By the side, Grammar of course has its preference. This project aims to provide an activity which would help children to learn new words, their pronunciation, the way they are spelled and to some extent its meaning. This activity is very much aligned to the concept constructive learning. The activity pronounces the word which user has entered and user can "Hear" the difference between two sounds.<br />
== Use Case Scenario ==<br />
A simple use case scenario of the Test Mode is as follows<br />
* User opens the activity and enters the difficulty level of which he/she would like to hear words.<br />
* A random word would be selected and spoken out from the corresponding level-word list. e.g. "Spell Ocean" would be spoken out.<br />
* User is required to spell the word correctly. (Time limit can be optional)<br />
* The activity would speak out each letter as the user types and the whole word as user submit the word.(This will help user to "feel" the difference between his spelling and the correct one.) This option can be disabled in case of group test (explained further).<br />
* There would be an option to repeat the word and also for the hint.<br />
* The hint option will either give user the meaning of the word or its usage in the sentence or image if possible. E.g. for Ocean it can either speak out its usage "The ocean is full of water" or can print its definition on screen i.e. "One of the five large bodies of water separating the continents".<br />
* User can quit or change the level any time during the game.<br />
To make user experience more lively, sounds for different events (Like activity start, Correct answer, Wrong Answer) would be used.<br />
== Level Description ==<br />
Level of a word is decided by ranking them. The ranking algorithm has been explained in the report. An example of level has been given below.<br />
* Initial level would include three to four letter words<br />
** e.g. cat, dog, tree, cup, bear etc<br />
* Medium level would contain five to six letters words<br />
** e.g. monkey, mouse, earth, plane, toffee etc<br />
* Hard level: Seven or more letters<br />
** e.g. computer, Mississippi, dictionary etc<br />
* Professional level (If included) would have complete sentences.<br />
== Implemented features ==<br />
Following are the Implemented features for the activity<br />
* Word source: - Word source is a wordnet dictionary with about 77k words. All words have been ranked and divided into levels so that it is easy to get word list of desired level. This dictionary has been customized to a very high extent removing all the unnecessary data and keeping only the required one. This has made the size of dictionary very small. It has been stored in SQLite data format for easy access.<br />
* Implementation of "Hint": - The hint consists of word meaning, with what part of speech it has been used, its sample usage etc. All these data has been stored with the dictionary itself for easy access.<br />
* Speech-dispatcher: - The voicing has been done using speech dispatcher which would eventually be using espeak for synthesis. Espeak supports more than 30 international languages.<br />
* Voice configuration: Option to edit voice configuration like volume, pitch, rate, language of the words and voice, gender of the voice etc.<br />
* Preferences to choose level of “Hint”: i.e. to select from word usage or word definition or images if possible.<br />
* Save option: The Game can be saved into a configuration file and replayed from the previous state. <br />
== Proposed Features ==<br />
* User defined word list: - This would facilitate users to add their own word list which can help in conducting a small group test. Option to add words through mesh network would be help in large group/class test.<br />
* Multiplayer game over mesh network: - (Future Work) Users can challenge each other over the network. One XO will then act as a server which would generate the word list for all the clients. All the users would receive same word list with limited retry option for each word after which next word would be given to user. The one who spelled most correct words in limited time wins. Option to speak each letter aloud would be disabled in this case.<br />
* Memory tool (Future Work):- A tutor mode in which activity repeats the word again and again until the spelling is absorbed into child's mind.<br />
* Input Methods :- Input Methods would be exposed externally so that other input methods(Like Handwriting and Speech recognition) could be incorporated<br />
== Implementation Details ==<br />
* For the word source we have used wordnet dictionary which contains about 1.5 lakh words with their meaning, sample usage, preposition etc properly mapped. The data for “hint” is stored with the dictionary only and is fetched from there.<br />
* Before making the dictionary usable it has been properly formatted. It contains words like 10mm or double words which are not going to be used for our purpose. Also there are many words which are probably unheard of by school children. We have use aspell to do this. The whole dictionary has been passed through aspell which contains most commonly used words only and thus filtering out the unwanted words. After this All the words are ranked based upon their usage on the internet. Using Yahoo BOSS api’s we have stored the number of search result each word has with the corresponding word. Based on these data all the words have been ranked and combining the word length with its length they have been categorized into 15 different levels.<br />
* Speech-Dispatcher: Speech-Dispatcher (http://www.freebsoft.org/speechd) is a socket-connection based speech server which provides speech APIs in many languages including Python and C. I had a discussion with OLPC developers where considering the need of speech server in XO they agreed to ship this in XO once its RPM is approved by Fedora Package Maintainers. Its RPM is under review process and should get approved soon. I have already got approval for its dependency Dotconf RPM<br />
* Language of implementation: Python<br />
* GUI: All the GUI part would be done in PyGTK and Glade<br />
* Parser for configuration files and dictionary data: OLPC includes many python modules which also include expat xml parser. This module can be used to parse the data and extract the information required<br />
* To have access over mesh network:- PresenceService DBUS API would be used<br />
== Dictionary ==<br />
=== Structure ===<br />
[[Media:Database.pdf|Dictionary Structure]]<br />
<br />
== Application Structure ==<br />
The application has been designed in a very efficient way. Following diagram will clear all the things:<br />
<br />
[[File:Structure.jpg]]<br />
<br/><br />
Figure 1: Application Structure<br />
<br/><br />
Here we have used the pre-implemented wrapper for espeak that is Speech-Dispatcher. We have designed a wrapper class for managing the dictionary. All the operation performed in the dictionary is through this wrapper only thus maintaining the consistence of the dictionary. The GUI part has been kept as a separate class. All the application logic is preformed in Application Logic. GUI class only looks after updating the GUI.<br />
Possible extension<br />
One could be a tutorial for learning languages using this activity like<br />
* The activity would teach basic sounding vowels like a as in cat, e as in bed, air as in hair etc<br />
* Sounds of consonants like b as in bed, ch as in change, d as in day etc<br />
* Teaching the sound of the whole word<br />
<br />
It would be great if children enters the words and get to know how to pronounce<br />
<br />
== ScreenShots ==<br />
[[Image:Las-ss1.jpg|thumb|Home View]]<br />
<br/><br />
Figure 2: Home View<br />
<br/><br />
<br/><br />
[[Image:Las-ss2.jpg|Using Hint option]]<br />
<br/><br />
Figure 3: Using Hint option<br />
<br/><br />
<br/><br />
[[Image:Las-ss3.jpg|Voice Configuration Panel]]<br />
<br/><br />
Figure 4: Voice Configuration Panel<br />
<br/><br />
<br/><br />
[[Image:Las-ss4.jpg|Changing Skill Level]]<br />
<br/><br />
Figure 5: Changing Skill Level<br />
<br />
== Code ==<br />
Code can be found here<br />
* [http://seeta.in/wiki/downloads/listen-spell.xo XO Package]<br />
* [http://seeta.in/wiki/downloads/listen-spell.zip Zip]<br />
==== Dependency ====<br />
* Speech Dispatcher is required for this activity to run. Its link can be found below<br />
==== File information ====<br />
* Dict.py – A wrapper class for dictionary<br />
* las.py – Application Logic<br />
* ListenSpell.py – Main class and the GUI class of the aplication<br />
<br />
== Resources ==<br />
<br />
# [http://www.freebsoft.org/speechd Speech Dispatcher]<br />
# [http://www.speaknspell.co.uk Speak & Spell]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=Activities/Listen_Spell&diff=23012Activities/Listen Spell2009-03-19T10:27:08Z<p>Assim: /* ScreenShots */</p>
<hr />
<div>== Listen Spell ==<br />
== Idea ==<br />
The idea is to develop an activity which would help children to learn new words, improve their vocabulary and pronunciation of words. The activity would speak out a randomly selected word from a list of words and the user is expected to spell the word correctly. For voice synthesis activity would be using Speech-Dispatcher and for the list of words it will have a custom dictionary. This activity is an extension of TalknType (http://wiki.laptop.org/go/Talkntype)<br />
== Need ==<br />
To learn any language spoken out in any part of this universe we firstly need to learn its building blocks i.e. words, their pronunciation and how they are spelled. By the side, Grammar of course has its preference. This project aims to provide an activity which would help children to learn new words, their pronunciation, the way they are spelled and to some extent its meaning. This activity is very much aligned to the concept constructive learning. The activity pronounces the word which user has entered and user can "Hear" the difference between two sounds.<br />
== Use Case Scenario ==<br />
A simple use case scenario of the Test Mode is as follows<br />
* User opens the activity and enters the difficulty level of which he/she would like to hear words.<br />
* A random word would be selected and spoken out from the corresponding level-word list. e.g. "Spell Ocean" would be spoken out.<br />
* User is required to spell the word correctly. (Time limit can be optional)<br />
* The activity would speak out each letter as the user types and the whole word as user submit the word.(This will help user to "feel" the difference between his spelling and the correct one.) This option can be disabled in case of group test (explained further).<br />
* There would be an option to repeat the word and also for the hint.<br />
* The hint option will either give user the meaning of the word or its usage in the sentence or image if possible. E.g. for Ocean it can either speak out its usage "The ocean is full of water" or can print its definition on screen i.e. "One of the five large bodies of water separating the continents".<br />
* User can quit or change the level any time during the game.<br />
To make user experience more lively, sounds for different events (Like activity start, Correct answer, Wrong Answer) would be used.<br />
== Level Description ==<br />
Level of a word is decided by ranking them. The ranking algorithm has been explained in the report. An example of level has been given below.<br />
* Initial level would include three to four letter words<br />
** e.g. cat, dog, tree, cup, bear etc<br />
* Medium level would contain five to six letters words<br />
** e.g. monkey, mouse, earth, plane, toffee etc<br />
* Hard level: Seven or more letters<br />
** e.g. computer, Mississippi, dictionary etc<br />
* Professional level (If included) would have complete sentences.<br />
== Implemented features ==<br />
Following are the Implemented features for the activity<br />
* Word source: - Word source is a wordnet dictionary with about 77k words. All words have been ranked and divided into levels so that it is easy to get word list of desired level. This dictionary has been customized to a very high extent removing all the unnecessary data and keeping only the required one. This has made the size of dictionary very small. It has been stored in SQLite data format for easy access.<br />
* Implementation of "Hint": - The hint consists of word meaning, with what part of speech it has been used, its sample usage etc. All these data has been stored with the dictionary itself for easy access.<br />
* Speech-dispatcher: - The voicing has been done using speech dispatcher which would eventually be using espeak for synthesis. Espeak supports more than 30 international languages.<br />
* Voice configuration: Option to edit voice configuration like volume, pitch, rate, language of the words and voice, gender of the voice etc.<br />
* Preferences to choose level of “Hint”: i.e. to select from word usage or word definition or images if possible.<br />
* Save option: The Game can be saved into a configuration file and replayed from the previous state. <br />
== Proposed Features ==<br />
* User defined word list: - This would facilitate users to add their own word list which can help in conducting a small group test. Option to add words through mesh network would be help in large group/class test.<br />
* Multiplayer game over mesh network: - (Future Work) Users can challenge each other over the network. One XO will then act as a server which would generate the word list for all the clients. All the users would receive same word list with limited retry option for each word after which next word would be given to user. The one who spelled most correct words in limited time wins. Option to speak each letter aloud would be disabled in this case.<br />
* Memory tool (Future Work):- A tutor mode in which activity repeats the word again and again until the spelling is absorbed into child's mind.<br />
* Input Methods :- Input Methods would be exposed externally so that other input methods(Like Handwriting and Speech recognition) could be incorporated<br />
== Implementation Details ==<br />
* For the word source we have used wordnet dictionary which contains about 1.5 lakh words with their meaning, sample usage, preposition etc properly mapped. The data for “hint” is stored with the dictionary only and is fetched from there.<br />
* Before making the dictionary usable it has been properly formatted. It contains words like 10mm or double words which are not going to be used for our purpose. Also there are many words which are probably unheard of by school children. We have use aspell to do this. The whole dictionary has been passed through aspell which contains most commonly used words only and thus filtering out the unwanted words. After this All the words are ranked based upon their usage on the internet. Using Yahoo BOSS api’s we have stored the number of search result each word has with the corresponding word. Based on these data all the words have been ranked and combining the word length with its length they have been categorized into 15 different levels.<br />
* Speech-Dispatcher: Speech-Dispatcher (http://www.freebsoft.org/speechd) is a socket-connection based speech server which provides speech APIs in many languages including Python and C. I had a discussion with OLPC developers where considering the need of speech server in XO they agreed to ship this in XO once its RPM is approved by Fedora Package Maintainers. Its RPM is under review process and should get approved soon. I have already got approval for its dependency Dotconf RPM<br />
* Language of implementation: Python<br />
* GUI: All the GUI part would be done in PyGTK and Glade<br />
* Parser for configuration files and dictionary data: OLPC includes many python modules which also include expat xml parser. This module can be used to parse the data and extract the information required<br />
* To have access over mesh network:- PresenceService DBUS API would be used<br />
== Dictionary ==<br />
=== Structure ===<br />
[[Media:Database.pdf|Dictionary Structure]]<br />
<br />
== Application Structure ==<br />
The application has been designed in a very efficient way. Following diagram will clear all the things:<br />
<br />
[[File:Structure.jpg]]<br />
<br/><br />
Figure 1: Application Structure<br />
<br/><br />
Here we have used the pre-implemented wrapper for espeak that is Speech-Dispatcher. We have designed a wrapper class for managing the dictionary. All the operation performed in the dictionary is through this wrapper only thus maintaining the consistence of the dictionary. The GUI part has been kept as a separate class. All the application logic is preformed in Application Logic. GUI class only looks after updating the GUI.<br />
Possible extension<br />
One could be a tutorial for learning languages using this activity like<br />
* The activity would teach basic sounding vowels like a as in cat, e as in bed, air as in hair etc<br />
* Sounds of consonants like b as in bed, ch as in change, d as in day etc<br />
* Teaching the sound of the whole word<br />
<br />
It would be great if children enters the words and get to know how to pronounce<br />
<br />
== ScreenShots ==<br />
[[Image:Las-ss1.jpg|Home View]]<br />
<br/><br />
Figure 2: Home View<br />
<br/><br />
<br/><br />
[[Image:Las-ss2.jpg|Using Hint option]]<br />
<br/><br />
Figure 3: Using Hint option<br />
<br/><br />
<br/><br />
[[Image:Las-ss3.jpg|Voice Configuration Panel]]<br />
<br/><br />
Figure 4: Voice Configuration Panel<br />
<br/><br />
<br/><br />
[[Image:Las-ss4.jpg|Changing Skill Level]]<br />
<br/><br />
Figure 5: Changing Skill Level<br />
<br />
== Code ==<br />
Code can be found here<br />
* [http://seeta.in/wiki/downloads/listen-spell.xo XO Package]<br />
* [http://seeta.in/wiki/downloads/listen-spell.zip Zip]<br />
==== Dependency ====<br />
* Speech Dispatcher is required for this activity to run. Its link can be found below<br />
==== File information ====<br />
* Dict.py – A wrapper class for dictionary<br />
* las.py – Application Logic<br />
* ListenSpell.py – Main class and the GUI class of the aplication<br />
<br />
== Resources ==<br />
<br />
# [http://www.freebsoft.org/speechd Speech Dispatcher]<br />
# [http://www.speaknspell.co.uk Speak & Spell]</div>Assimhttps://wiki.sugarlabs.org/index.php?title=File:Las-ss1.jpg&diff=23011File:Las-ss1.jpg2009-03-19T10:25:32Z<p>Assim: </p>
<hr />
<div></div>Assimhttps://wiki.sugarlabs.org/index.php?title=Activities/Listen_Spell&diff=23010Activities/Listen Spell2009-03-19T10:24:07Z<p>Assim: New page: == Listen Spell == == Idea == The idea is to develop an activity which would help children to learn new words, improve their vocabulary and pronunciation of words. The activity would speak...</p>
<hr />
<div>== Listen Spell ==<br />
== Idea ==<br />
The idea is to develop an activity which would help children to learn new words, improve their vocabulary and pronunciation of words. The activity would speak out a randomly selected word from a list of words and the user is expected to spell the word correctly. For voice synthesis activity would be using Speech-Dispatcher and for the list of words it will have a custom dictionary. This activity is an extension of TalknType (http://wiki.laptop.org/go/Talkntype)<br />
== Need ==<br />
To learn any language spoken out in any part of this universe we firstly need to learn its building blocks i.e. words, their pronunciation and how they are spelled. By the side, Grammar of course has its preference. This project aims to provide an activity which would help children to learn new words, their pronunciation, the way they are spelled and to some extent its meaning. This activity is very much aligned to the concept constructive learning. The activity pronounces the word which user has entered and user can "Hear" the difference between two sounds.<br />
== Use Case Scenario ==<br />
A simple use case scenario of the Test Mode is as follows<br />
* User opens the activity and enters the difficulty level of which he/she would like to hear words.<br />
* A random word would be selected and spoken out from the corresponding level-word list. e.g. "Spell Ocean" would be spoken out.<br />
* User is required to spell the word correctly. (Time limit can be optional)<br />
* The activity would speak out each letter as the user types and the whole word as user submit the word.(This will help user to "feel" the difference between his spelling and the correct one.) This option can be disabled in case of group test (explained further).<br />
* There would be an option to repeat the word and also for the hint.<br />
* The hint option will either give user the meaning of the word or its usage in the sentence or image if possible. E.g. for Ocean it can either speak out its usage "The ocean is full of water" or can print its definition on screen i.e. "One of the five large bodies of water separating the continents".<br />
* User can quit or change the level any time during the game.<br />
To make user experience more lively, sounds for different events (Like activity start, Correct answer, Wrong Answer) would be used.<br />
== Level Description ==<br />
Level of a word is decided by ranking them. The ranking algorithm has been explained in the report. An example of level has been given below.<br />
* Initial level would include three to four letter words<br />
** e.g. cat, dog, tree, cup, bear etc<br />
* Medium level would contain five to six letters words<br />
** e.g. monkey, mouse, earth, plane, toffee etc<br />
* Hard level: Seven or more letters<br />
** e.g. computer, Mississippi, dictionary etc<br />
* Professional level (If included) would have complete sentences.<br />
== Implemented features ==<br />
Following are the Implemented features for the activity<br />
* Word source: - Word source is a wordnet dictionary with about 77k words. All words have been ranked and divided into levels so that it is easy to get word list of desired level. This dictionary has been customized to a very high extent removing all the unnecessary data and keeping only the required one. This has made the size of dictionary very small. It has been stored in SQLite data format for easy access.<br />
* Implementation of "Hint": - The hint consists of word meaning, with what part of speech it has been used, its sample usage etc. All these data has been stored with the dictionary itself for easy access.<br />
* Speech-dispatcher: - The voicing has been done using speech dispatcher which would eventually be using espeak for synthesis. Espeak supports more than 30 international languages.<br />
* Voice configuration: Option to edit voice configuration like volume, pitch, rate, language of the words and voice, gender of the voice etc.<br />
* Preferences to choose level of “Hint”: i.e. to select from word usage or word definition or images if possible.<br />
* Save option: The Game can be saved into a configuration file and replayed from the previous state. <br />
== Proposed Features ==<br />
* User defined word list: - This would facilitate users to add their own word list which can help in conducting a small group test. Option to add words through mesh network would be help in large group/class test.<br />
* Multiplayer game over mesh network: - (Future Work) Users can challenge each other over the network. One XO will then act as a server which would generate the word list for all the clients. All the users would receive same word list with limited retry option for each word after which next word would be given to user. The one who spelled most correct words in limited time wins. Option to speak each letter aloud would be disabled in this case.<br />
* Memory tool (Future Work):- A tutor mode in which activity repeats the word again and again until the spelling is absorbed into child's mind.<br />
* Input Methods :- Input Methods would be exposed externally so that other input methods(Like Handwriting and Speech recognition) could be incorporated<br />
== Implementation Details ==<br />
* For the word source we have used wordnet dictionary which contains about 1.5 lakh words with their meaning, sample usage, preposition etc properly mapped. The data for “hint” is stored with the dictionary only and is fetched from there.<br />
* Before making the dictionary usable it has been properly formatted. It contains words like 10mm or double words which are not going to be used for our purpose. Also there are many words which are probably unheard of by school children. We have use aspell to do this. The whole dictionary has been passed through aspell which contains most commonly used words only and thus filtering out the unwanted words. After this All the words are ranked based upon their usage on the internet. Using Yahoo BOSS api’s we have stored the number of search result each word has with the corresponding word. Based on these data all the words have been ranked and combining the word length with its length they have been categorized into 15 different levels.<br />
* Speech-Dispatcher: Speech-Dispatcher (http://www.freebsoft.org/speechd) is a socket-connection based speech server which provides speech APIs in many languages including Python and C. I had a discussion with OLPC developers where considering the need of speech server in XO they agreed to ship this in XO once its RPM is approved by Fedora Package Maintainers. Its RPM is under review process and should get approved soon. I have already got approval for its dependency Dotconf RPM<br />
* Language of implementation: Python<br />
* GUI: All the GUI part would be done in PyGTK and Glade<br />
* Parser for configuration files and dictionary data: OLPC includes many python modules which also include expat xml parser. This module can be used to parse the data and extract the information required<br />
* To have access over mesh network:- PresenceService DBUS API would be used<br />
== Dictionary ==<br />
=== Structure ===<br />
[[Media:Database.pdf|Dictionary Structure]]<br />
<br />
== Application Structure ==<br />
The application has been designed in a very efficient way. Following diagram will clear all the things:<br />
<br />
[[File:Structure.jpg]]<br />
<br/><br />
Figure 1: Application Structure<br />
<br/><br />
Here we have used the pre-implemented wrapper for espeak that is Speech-Dispatcher. We have designed a wrapper class for managing the dictionary. All the operation performed in the dictionary is through this wrapper only thus maintaining the consistence of the dictionary. The GUI part has been kept as a separate class. All the application logic is preformed in Application Logic. GUI class only looks after updating the GUI.<br />
Possible extension<br />
One could be a tutorial for learning languages using this activity like<br />
* The activity would teach basic sounding vowels like a as in cat, e as in bed, air as in hair etc<br />
* Sounds of consonants like b as in bed, ch as in change, d as in day etc<br />
* Teaching the sound of the whole word<br />
<br />
It would be great if children enters the words and get to know how to pronounce<br />
<br />
== ScreenShots ==<br />
[[File:Las-ss1.jpg|Home View]]<br />
<br/><br />
Figure 2: Home View<br />
<br/><br />
<br/><br />
[[File:Las-ss2.jpg|Using Hint option]]<br />
<br/><br />
Figure 3: Using Hint option<br />
<br/><br />
<br/><br />
[[File:Las-ss3.jpg|Voice Configuration Panel]]<br />
<br/><br />
Figure 4: Voice Configuration Panel<br />
<br/><br />
<br/><br />
[[File:Las-ss4.jpg|Changing Skill Level]]<br />
<br/><br />
Figure 5: Changing Skill Level<br />
<br />
== Code ==<br />
Code can be found here<br />
* [http://seeta.in/wiki/downloads/listen-spell.xo XO Package]<br />
* [http://seeta.in/wiki/downloads/listen-spell.zip Zip]<br />
==== Dependency ====<br />
* Speech Dispatcher is required for this activity to run. Its link can be found below<br />
==== File information ====<br />
* Dict.py – A wrapper class for dictionary<br />
* las.py – Application Logic<br />
* ListenSpell.py – Main class and the GUI class of the aplication<br />
<br />
== Resources ==<br />
<br />
# [http://www.freebsoft.org/speechd Speech Dispatcher]<br />
# [http://www.speaknspell.co.uk Speak & Spell]</div>Assim