Summer of Code/Ideas: Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
 
(214 intermediate revisions by more than 100 users not shown)
Line 1: Line 1:
This is a list of ideas for '''Summer of Code 2009''' projects for OLPC. This is a pool of ideas for potential students to browse to find what they might want to work on; and for developers to use as a place to prioritize and brainstorm about what work would be most useful, or most rewarding.
== Ideas ==
=== School Server ===
==== Design of the admin interface ====


* '''Mentors''': please note below which projects you are interested in mentoring; or add projects you would be glad to mentor.
*The school server needs a graphical admin interface to configure/set all the services.
* '''Sugar Labs''': this year there is a [http://sugarlabs.org/go/DevelopmentTeam/ProjectIdeas similar ideas page on the Sugar Labs wiki] for Sugar-specific projects. Some ideas below are appropriate for one project or the other. Students with crossover project ideas may apply to more than one organization.


You can find a list of the student project descriptions in [[:Category:GSoC_proposals]]. Students are encouraged to create a wiki page for their project proposal and put in that category in order to get feedback from the wider OLPC community.
=== Core Software ===


==== Java ====
Package and integrate the IcedTea open source bootstrap of OpenJDK Java with browser plugin for the XO. Deliverables would include:
* Binary, source and rpm dependencies for icedtea and icedtea browser plugin
* Java enabled xo os image
* Integration of packages into autobuild branch


<div style="float:right; font-size:90%">
==== Print Support ====
__TOC__
Print support in Sugar would be useful in many scenarios. The ideal project deliverables would include
</div>
* Integration of a printing infrastructure (CUPS ??) into the XO-1 software images
* Modification of Sugar Control Panel to set up the printer (add/select default printer?)
* Modification of at least one activity (Write ?) to support printing
* Making a printing activity, that follows sugar GUI guidelines?


== School Server ==
==== Integration of Speech Synthesis Technology into Sugar ====
{{:XS project ideas}}
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.


=== Interface design ===
Desirable Features for Sugar Speech Synthesis Plugin:


Admin interface : The school server needs a graphical admin interface to configure some aspects of the services it offers, and to help diagnostics. Mentor: Martin Langhoff.
* Provide Sugar Speech Synthesis Configuration Management Tool
*''Hi! My name is Andrey. I want to join your project and help with school server. [[User:Grad|Grad]]. [[XS AdminUI]].''
* Karaoke Style Coloring in Sugar Environment
* UI for configuration Control
* Accent gets set on the basis of locale


=== Journal Sharing support ===
=== Auto memory/disk tuning ===
Incorporate the Distribute activity into the shell
At the basic level this will require:
* A way to initiate a transfer (a button in the Journal, a contextual option on an object, a drag'n'drop operation)
* Notification to the receiver
* Some method to indicate progress to sender and receiver, with a way to cancel
* A journal entry for the receiver containing the resulting file


Automagic tuning: The school server may have different memory and disk relationships. Provide alternative configurations for key daemons (apache, postgresql/mysql, ejabberd, java-based daemons, etc) for different memory sizes. Learn a lot about scalability and performance tuning for servers. Provide a web based report of memory and disk traffic. Mentor: Martin Langhoff.
Necessary future support:
* Transparent support for interrupted connections


=== Mesh Networking ===
=== Package web-based elearning ===
==== Tools development ====
As we reach for increasingly larger numbers of nodes participating in mesh network testbed, it is evident that sophisticated methods and tools for monitoring, logging and debugging will become necessary. Project deliverables include:
* Maintain our mesh network testbed
* Review different methods for controlling and monitoring large numbers of machines (control over wireless vs. control over ethernet, stored logs vs. online logging, etc)
* Implementation of network application + GUI to remotely control, configure and analyze logs from mesh network experiments on large testbed


If you are familiar with good e-learning web applications that are aimed towards users from kindergarden to 16 year-old teenagers, propose an app to customise and package for the school server! Mentor: Martin Langhoff.


Hello Mentor,
Myself K.Vikranth Reddy I am studing B.Tech Final Year And Iam Interested in Involving myself in Your Project.Presently i am working on my project Titled Online Virtual Training System which is an elearning project. Iam doing the project using PHP and MySql
: I want to take part in this project and i want to share my ideas with you.
my mail id is vikranthreddyk@gmail.com ThanQ, vikranth reddy


=== Health Software ===
====twexter on moodle====
<font size="+1" color="black" >Twext es un idea para ayudarnos a aprender lenguajes.</font>
<font size="-2" color="silver">twext is an idea to help us to learn languages</font>
<font size="+1" color="black" >El software Twexter ya tiene un demo que maneja</font>
<font size="-2" color="silver">twexter software now has ¡alpha! that works with</font>
<font size="+1" color="black" >el UniCode para que twexteamos en muchas idiomas.</font>
<font size="-2" color="silver">global text so that we can twext in many languages</font>
* [http://olpcnews.com/content/localization/learning_language.html kids teach kids]
* <font size="+1">[http://test.twext.com alpha demo]</font>
* [http://moodle.org moodle me]
* <font size="+1">[http://more.read.fm/wiki_test mediawixi]</font>
* [http://twext.com twext]
* <font size="+1">[http://github.com/tudisco/twexter code]</font>
<font color="silver">this fixed font twext 'roughly' aligns when you CTL+ or CTL- to adjust font size :)</FONT><font color="gray">
hola Martin como'tas? vas a CONSOL 2009? muchos saludos! duke@tuba.net</font>


=== Networked Blogging Project ===
* Helping building software to interact with the different health peripherals.
* Uruguay is developing an Educational Blogger Project. This needs design, coding and configuration of Moodle (moodle.org) and drupal.<br>
* The software has to be able to display and interpret different bio-signals (e.g EKG. EMG..)
*: See further definition below, and requirements at [[Requiremientos_Para_XO]].
* Integration of other FLOSS software like OpenMRS.


=== Libraries ===
== Core Software ==


==== pygame/sdl ====
=== Extending Gnash ===
Extend Gnash to read more data formats, in particular those at [http://olpc.tv/ OLPC.tv], and [[Mary Lou Jepsen]]'s [http://scribemedia.blip.tv/file/682463/ presentation] at the [[Greener Gadgets]] Conference. Integrate Supat's SSS code and move it upstream.
Add as much support as possible using the Geode graphics processor.


==== xo3d ====
=== Speech Synthesis integration ===
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, and Hemant Goyal's work on this last summer of code.


Desirable Features for Sugar Speech Synthesis Plugin:
Develop the xo3d library based on work started by [[User:Wade]]. This is a flat shaded software 3D renderer with support for objects, lighting & clipping, exposed to Python. It also features a matrix and vector math library.


* Provide Sugar Speech Synthesis Configuration Management Tool
=== Activities ===
* Karaoke Style Coloring in Sugar Environment
This list of desirable activities is largely a grab-bag, meant to spark ideas. There are plenty more at [[:Category:Software ideas]]. Part of the work of doing your SoC application would be to do a preliminary evaluation of existing open source options in a domain and their adaptability to OLPC. Python and/or GTK-based programs are the easiest to adapt. Also present in the platform are Javascript, C/C++ (of course), and Smalltalk (squeak). See [[Sugar]] and [[Developers/Stack]] for further info.
* UI for configuration Control
* Accent gets set on the basis of locale


=== Expressed interest from XO schools ===
Applications should show serious thought about what can be achieved in the short time available. Whether you are starting from scratch or adapting an existing app, fewer well-implemented/adapted features are far preferable to many poorly-implemented ones. In either case, but especially in the case of an adaptation, a solid foundation makes it easy to add (back) in more features later.
==== Java ====
Package and integrate the IcedTea open source bootstrap of OpenJDK Java with browser plugin for the XO. Deliverables would include:
* Binary, source and rpm dependencies for icedtea and icedtea browser plugin
* Java enabled xo os image
* Integration of packages into autobuild branch


==== My FilmCity(@INDOKLEY) ====
==== Print Support ====
Print support in Sugar would be useful in many scenarios. The ideal project deliverables would include
Record your songs and upload.
* Integration of a printing infrastructure (CUPS ??) into the XO-1 software images
Download the songs that is give by the "Music" Teacher.
* Modification of Sugar Control Panel to set up the printer (add/select default printer?)
Make Playlist from the list of Songs(here we can resirict the list of songs according to the MUSIC TEACHERS)
* Modification of at least one activity (Write ?) to support printing
Upload Video
* Making a printing activity, that follows sugar GUI guidelines?
Download Video


:I am highly interested in working on this project. Would the project leader mind contacting me at bmw.stx@gmail.com?


==== Flash Card ====
==== JavaScript-Python Communication ====
JavaScript Python Communication through the following strategies: PyXPCom, hulahop, and xulrunner.


The student and mentor would evaluate open source flash card programs together, and then either port or adapt one to XO. The flash card program would be developed with a Sugar-specific UI and features. It would feature one of the well known flash card memorization algorithms for tracking student progress through each deck of cards. (see [[Drill and test software]])


: 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: [[User_talk:59.178.99.172]] (work on this is happening at [[JS-Python]])
==== Master Mind ====


Regards, Preeti
Implement the well known board game: http://en.wikipedia.org/wiki/Mastermind_(board_game)


==== Mono/.NET ====
The use of Mono could really enhance the number of Sugar developers due to the huge existing .NET community.
Thanks to Torello Querci, developing a Sugar activity in Mono is already possible using the Mono/Sugar bindings Sugar.dll (more [http://sugarlabs.org/go/Mono here]).


The idea for this GSOC project is to greatly enhance this binding:
==== Typing Turtle ====
* Better integration with the Sugar look & feel,
* Binding to telepathy API,
* WinForm compatibility,
* MonoDevelop integration,
* ...


Contact http://wiki.laptop.org/go/User:llaske if you're interested by this project.
A game-like typing tutor activity would be developed by the student. Existing open source projects would be evaluated for ideas. Features would include adapting to student progress, support for all XO keymaps (take a look at [[Keyboard#Languages_other_than_English]] for information on supported keyboard layouts) and written languages, progress tracking graphs, the ability to locally customize the program, etc.


==== Board & Card Games ====
==== Android Emulator ====
* Not for developing, but for installing the thousands of Apps that are available in the Android ecosystem.
* There are literally thousands of free educational apps that are available to Android users.


A suite of board and/or card games would be developed by the student including things like Chess, Checkers, Othello, Mancala. They would all be built on a common framework so that more games could be developed easily. Features would include multiplayer tournaments (including chat & spectator support), good computer AI, interactive game teaching, game recording & playback, etc.

==== Finance ====

The student would develop a simple financial planning program, basically the simplest possible version of Quicken. It would provide a simple income / expense register, monthly tracking, budget planning, expense & income categories, and a loan calculator.

This activity idea came from a request by the Nepal deployment.

==== 3D Software Renderer & Game ====

A simple flat shaded 3D graphics library would be developed by the student for the XO platform, with an accompanying game. The game would be something exciting and multiplayer but non-violent, I'm thinking about a first person firefighting simulator (where you shoot water at animated fires and rescue victims) or something like that. The game would be designed by the student with direction from the mentor.

==== Micropolis (SimCity) ====

I have a long list of interesting ways to develop [[Micropolis]] (aka SimCity), which I have written about on [http://www.DonHopkins.com my blog]!

The source code is on [http://code.google.com/p/micropolis Google Code],
and I've been working on finishing up all the grunt work that requires familiarity with the code and would be hard for other people to do, to enable other people to work on the higher level stuff that depends on that.

There are two Micropolis projects:

* The old "micropolis-activity" which is the original TCL/Tk version of SimCity for Unix, which I ported to Linux and adapted to the OLPC.

* The new "MicropolisCore" C++/SWIG/Python module that I've cleaned up and I have started developing a user interface.

It would be best to put effort into developing the new MicropolisCore code for the long term, although there are some small tasks that could be done with the old TCL/Tk code for the short term.

[[User:dhopkins|-Don Hopkins]]

==== Inferno ====

There's a variety of work that is left to be done in [[Inferno]] on OLPC, things that might be best done by a student include:

* fontfs - mapping OLPC fonts to inferno native fonts
* metafs - mapping file system permissions to OLPC model
* camera/audio support
* new window manager for Inferno which better matches OLPC paradigm
* integration with OLPC collaboration framework
* integration with OLPC internationalization mechanisms
* edutainment applications written in Limbo for OLPC

[[User:ericvh|-Eric Van Hensbergen]]

==== Language Learning Activity ====

A tool to learn foreign languages would be a great addition for the XO. At it's most rudimentary form, it can be a dictionary, but something advanced would be preferred, perhaps in the lines of [http://lingoteach.sourceforge.net/ LingoTeach]. From Ivan Krstić's blog entry, [http://radian.org/notebook/astounded-in-arahuay Astounded in Arahuay]:
<blockquote>
“The kids really want an activity to learn English, but there isn’t one on the laptops” responds Mr. Navarro. “The 1st and 2nd graders all use an online dictionary, but the Internet connection gets slow with that many users. It’d be nice if a dictionary was on the XO directly.
</blockquote>
=====Embed twexter into activities=====
[http://twext.com/embed twexter] software formats twin text ([[twext]]) for language learners.. twexter can work with all kindsa tools/activities like [[moodle]] or [[scratch]] or [[Summer_of_Code/2008/Ideas#Mediawiki_stuff|mediawiki]] or [[wixi]] so we can grow [http://olpcnews.com/content/localization/learning_language.html multilingual].. <font color="silver">twexter can also annote same language text, for example by translating complex english to "basic english"</font>
<!--
=====synxi=====
[[synxi]] wants to make it easier to add timed text [[SLS]] to video..
# speech to text
# closed captioning
# timed text (syllabic level karaoke)
# sync w/ audio video
<font color="gray">synxi will help us 2.) learn language, 1.) teach language, 0.) share language</font>
-->
==== Document reader with annotation capability ====


=== Updates to core Activities ===
==== Port Browse to WebKit ====
==== Port Browse to WebKit ====
[[http://webkit.org/ Webkit]] is somewhat lighter than the current Xulrunner engine powering the Browse activity. Porting Browse to use Webkit might see some performance benefits.
[[http://webkit.org/ Webkit]] is somewhat lighter than the current Xulrunner engine powering the Browse activity. Porting Browse to use Webkit might see some performance benefits.

** I would like to know further about this project and if there is an expected port such as the Qt version or some webkit derivative in mind. Also on expected skills of the student. I have high interest in talking to someone and cannot find an e-mail submission page, I see most people just commenting here. A (very) little about me: I am currently a Junior/Senior student with C++ and Java programming skills. e-mail: jlukas79@gmail.com
==== [[GIS]] activity for XO ====
[http://www.ewb.org/ Engineers Without Borders], [http://www.timepedia.org/ Timepedia], and [http://isde5.pbwiki.com/One-Laptop-Per-Child International Symposium on Digital Earth] want to work with OLPC to create community-based mapping data collection systems that will feed to global mapping and analysis projects, which will then feed back to the children and their communities. Environment, health, agriculture...


==== Enhancements for Measure ====
==== Enhancements for Measure ====
Line 170: Line 123:
* Sensor based input into games. For example control a game character based on light intensity
* Sensor based input into games. For example control a game character based on light intensity


==== Make activities programmable ====
=== Make activities programmable ===
More generally, support snap-together programming of XO [[activities]] in the manner that [[Turtle Art]] and [[Etoys]] provide internally.
More generally, support snap-together programming of XO [[activities]] in the manner that [[Turtle Art]] and [[Etoys]] provide internally.


== Book and Document readers ==
==== Improve DrGeo ====
* A port of Calibre to the XO would be very interesting.

* Improvements to our fbreader activity would be welcome and widely used.
The [[DrGeo]] activity (interactive geometry) port need to be finished and improved in different areas.
: Potential mentor: [[user:sayamindu|sayamindu]] 12:49, 16 March 2009 (UTC)

=====Parts to be written=====
* implementation of the macro-construction system. It is a system to record a set of constructions as a function the user can save and use repeatably. See [http://documentation.ofset.org/drgeo/fr/using_macro.html the original implementation].
* implementation of the script system. A script within [[DrGeo]] is code hooked to an interactive sketch, it is used to perform calculus. See [http://documentation.ofset.org/drgeo/fr/drgenius_56.html the original implementation in Scheme]. The script language will be Smalltalk based.

=====Parts to improve=====
* Improve the load time, the load time is now unacceptable for the user and make [[DrGeo]] unadapted for the OLPC.
* Define a journal type entry to save/load.
* Improve the user interface, particularly the access to the construction tools.
* Improve the locus sampling, it is by now suboptimal.

Other suggestions for improvements, see [https://gna.org/bugs/index.php?go_report=Appliquer&group=istoa&func=browse&set=custom&msort=0&report_id=100&advsrch=0&status_id=1&resolution_id=0&assigned_to=0&category_id=101&bug_group_id=0&history_search=0&history_field=0&history_event=modified&history_date_dayfd=2&history_date_monthfd=2&history_date_yearfd=2008&chunksz=50&spamscore=5&boxoptionwanted=1#options the DrGeo tracker].

==== Email activity ====

Develop a light, functional and usable email client

inlight of the kids it should log them on automatically.

it would also be nice if the app created an email automatically based on the user name of the system, on a free site. Like gmail.

Also because of connectivity the app should be able to keep things on the system. I want to be able to write an email when I'm not connected and have it sent when I become connected

==== Mind mapping activity ====
Ivan Krstic reports on his blog that a teacher in Arahuay requested a mind-mapping activity. [[User:Homunq|Homunq]] 13:23, 7 March 2008 (EST)

==== Speech Synthesis related activities ====

===== Listen and Spell =====

A simple game to help children learn to spell words correctly using speech synthesis technology.
Words will be spoken, and the child will be expected to correctly spell it.

The game can have the following features:-

* Difficulty Level - Easy/Medium/Hard
* Multiple Dictionary Sources
* Contextual Dictionary Lookups - The application can lookup words related to specific keywords, speak out a small description of the word, and then expect the child to spell it.
* Mesh Challenge - Children can collaborate over the Mesh Network and challenge each other in a mulptiplayer game. The child will type the word on his XO, this will be spoken on the other XO, and the player must spell it correctly.

A very basic activity draft that can be suitably scaled is available at [[talkntype]]

=== Misc ===

==== Eclipse based development environment for Activities ====

An [[http://www.eclipse.org/ Eclipse]] plugin which would allow software developers to easily write Python based activities for Sugar. Some of the features can be
* Integration with an Xnest/Xephyr window which would run the activity being developed in Sugar
* Easily accessible developer documentation

==== Sugar Factory ====
[[Sugar Factory]] is an automated method for Sugarizing non-Python applications. Albert Cahalan has some of this working now.

==== Extending Gnash ====
Extend Gnash to read more data formats, in particular those at [http://olpc.tv/ OLPC.tv], and [[Mary Lou Jepsen]]'s [http://scribemedia.blip.tv/file/682463/ presentation] at the [[Greener Gadgets]] Conference. Integrate Supat's SSS code and move it upstream.

==== Mediawiki stuff ====
I have seen a fair amount of discussion of the possibility of having school-level wikipedias. The issues involved are offline browsing (static content, caching, at 2 levels: global<->school server<->xo) and editing (multilevel synchronization - a problem that probably cannot be "solved" but can be attacked). This person would need to have architectural vision and PHP skills. If there were such a proposal, I would suggest that they could spend a little extra time supporting/mentoring my Summer of Content proposal for a [[Summer of Content 2008 Proposals#Multilingual wiki|multilingual wiki]]. [[User:Homunq|Homunq]] 12:18, 2 March 2008 (EST)

==== Sugar adaption for the Nasa Colombian ethnic community ====
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)
== Sugar Debian packaging ==
* Help in maintaining and packaging sugar and activities in debian.

=== Interested Student -GSoC 2008- ===
I am very keen to participate for various ACTIVITIES listed on this page like Boardgames,Email Client and few others..developing them will be a great opportunity to benefit society !Looking forward to be mentored by interested mentors..
thanking you ..
Rajan Vaish
IRC:vaish
GTALK : vaish.rajan@gmail.com

@INDOKLEY
We can add one more activity.Name of the activity is "MY Music World".
In this we can add some inspiration songs.
Right now i am just talking about music but we can extend that link into "My FilmCity".


=== Collection generators ===
In this ,child record his/her voice and able to upload and can share with other friends circle.
Scripts for generating collections out of Gutenberg, IACL, and other libraries are needed for [re]generating collections at the Internet Archive, and automatically producing xol [[content bundles|bundles]] and other useful formats out of existing sources.
We can also provide some download links that are uploaded by "Music" Teachers.
: Potential mentors: [[user:sayamindu|sayamindu]], [[user:rcollins|rcollins]]
i think u like my IDEA...


== Activities and more ==
OLPC Team can contact me on Gtlak ,Yahoo,MSN and orkut
''see the [[Activity ideas]] page''
Gtalk: indokely@gmail.com
Yahoo: mundel@yahoo.co.in
MSN : indokely@gmail.com
Orkut: http://www.orkut.com/Profile.aspx?uid=9779335716818819883


== Sugar packaging in other distros ==
>>> I want to help OLPC by developing the finance application. In addition to what all has been mentioned in the ideas section for finance, I would like to add another feature where-in a OLPC user will have an online identity in a separate Finance portal meant separately for the OLPC users. Here OLPC user can keep a track of the loans he/she has taken from a friend , and thus the loan data may also be visible to other OLPC finance users. This will make money-lending more reliable and simpler. The idea can later be extended to include proper bank transactions. Also I have an idea for implementing a model barter system, the details of which I will file in my OLPC GSoC application.
''see the Sugar Labs project page''
Thank You,
Debjit Saha
mail and messenger: dkd903@gmail.com
messenger only: dkd903@yahoo.co.in
IRC Nick: dkd903/dkd903_/dkd903__


[[category:Software ideas]]
I would love to be involved in the production of the typing turtle application or with the board games. I attend the University of Glasgow and have produced an Othello AI already, I would love to produce more and to try and standardise setting up of more games. I would also love to try and help epople to type correctly and would use this to learn about other keyboard layouts and how they work. If you would like to contact me, please do by email or on MSN trancendenz(@)gmail.com
[[category:projects]]
[[Category:GSoC proposals]]

Latest revision as of 18:14, 28 May 2013

This is a list of ideas for Summer of Code 2009 projects for OLPC. This is a pool of ideas for potential students to browse to find what they might want to work on; and for developers to use as a place to prioritize and brainstorm about what work would be most useful, or most rewarding.

  • Mentors: please note below which projects you are interested in mentoring; or add projects you would be glad to mentor.
  • Sugar Labs: this year there is a similar ideas page on the Sugar Labs wiki for Sugar-specific projects. Some ideas below are appropriate for one project or the other. Students with crossover project ideas may apply to more than one organization.

You can find a list of the student project descriptions in Category:GSoC_proposals. Students are encouraged to create a wiki page for their project proposal and put in that category in order to get feedback from the wider OLPC community.


School Server

Moodle

Moodle is a very popular Course Management System / Learning Management System. It is the "main face" of the webbased tools that the School Server offers. More info on moodle

Work on Moodle is split on

  • Making Moodle better for young children. Moodle is originally designed for tertiary and secondary levels. Improving the UI for children is a priority.
  • Making moodle better for learning based on Social Constructivism practices - see http://docs.moodle.org/en/Philosophy
  • Integrating Moodle with other tools

To understand some of these tasks, you probably need to install and explore Moodle:

Skills: Web app programming, PHP, SQL (PostgreSQL/MySQL), JS, XHTML

Moodle: What you paint is what you get

Most of online (webbased) interaction is via forms -- a text-heavy approach. Young children find it easier to paint and draw.

If we can switch the WYSISWYG HTML editors in forms with a paint here facility, then we make webbased tools easier for them.

Technical notes:

  • Moodle is using a WYSIWYG editor called TinyMCE - that is a possible integration point.
  • Implementation idea: write a vector-based "paint" facility in JS that runs in the browser.
  • Implementation idea: write a vector or bitmap paint facility in Flash, bearing in mind that OLPC ships Gnash instead of Adobe's Flash.
  • Performance matters - the OLPC XO has a relatively low power CPU, so image editing has to be tuned / optimised to be responsive.

The complexity of this project is high.

Moodle - blog-style course format

In Moodle, the most important page is the "course page", which acts as a hub in a hub-and-spoke navigation strategy. The structure and user workflow with the page is controlled by a pluggable bit of code, called a course format.

The default course format is good for courses where the teacher can plan ahead. For day-to-day teaching, as is often done in primary schools, a different format is preferrable. The goal of this project is to deliver a blog-style day-to-day format as described here: http://wiki.laptop.org/go/XS_Moodle_design#Topics-style_course_format.2C_geared_for_a_year-long

The complexity of this project is medium-low.

Moodle - simpler workshop module

The 'Workshop' module in Moodle is excellent from a Social Constructivist point of view, and we would like to be able to use it for OLPC.

This module is specially nice in that helps a teacher ask students to perform an open ended task, and then get students to assess and help eachother.

It suffers however of 2 problems

  • The code is old and unclear.
  • It is overburdened with options.

A newly implemented module that implements a subset of the Workshop functionality and follows current coding practices would be hugely popular with OLPC users and Moodle users.

The complexity of this project is medium-high.

Moodle - offline implementation using GoogleGears

See http://moodle.org/mod/forum/discuss.php?d=107920

The complexity of this project is medium-high.

Moodle - other projects

For generally interesting projects, see http://docs.moodle.org/en/Projects_for_new_developers - they are of varying relevance to OLPC.

WWWOFFLE

WWWOFFLE is an "offline proxy" for servers that have intermittent connectivity. This covers many School Servers in OLPC deployments...

Skills: C, Linux network programming, autoconf, make

Teach WWWOFFLE to speak rproxy

See the rproxy notes on this page. This project is to add support to WWWOFFLE for the HTTP extension that rproxy implements, so that WWWOFFLE can talk with an "upstream" rproxy.

Most intermittent connections are also very low bandwidth connections...

Teach WWWOFFLE to support asynchronous searches

See http://www.nilshettich.com/olpcblog/?p=29

Make WWWOFFLE work for disconnected schools

The Wizzy Digital Courier project has some useful patches that extend WWWOFFLE to support sneakernet.

  • Review and apply the patches
    • Work on them so that they are acceptable to merge into the WWWOFFLE project proper?
  • Integrate the workflow with Moodle and the XS, so that
    • User management is done via Moodle
    • USB key handling integrates with the automatic USB key handling on the XS
    • Logs, status, pendind requests and other reports are visible in Moodle
    • Alerts ("content you requested has arrived!") appear for Moodle users

rproxy

rproxy is a proof-of-concept proxy developed by Andrew tridge Tridgell (of Samba and rsync fame). It extends the HTTP protocol with rsync-like smarts. This has an enormous impact for users on bandwidth constrained connections.

The existing rproxy implementation works, and is good for simple single-user usage. For OLPC we are looking for a more mature HTTP proxy that is reliable, fits in limited memory, etc.

More about rproxy

Skills: C, Linux network programming

rproxy: revive and polish

The rproxy code can be taken forward. From conversations with Tridge, the situation is as follows

  • The "stable" branch of rproxy works well for single user, it would need to...
    • learn how to "stream" content through -- currently it only serves content to the client once it has completed fetching it
    • to be ported to use the current librsync (as its built against an old librsync)
    • tested and tuned for multi-user environments, probably memory usage needs to be limited somehow
    • tested with current HTTP services -- as it was created and used in an era before AJAX and the likes of Gmail
  • there is an incomplete "development" branch of rproxy with an incomplete port to a more modern librsync

The complexity of this project is high.

rproxy: integrate into a mature http proxy

Take rproxy as a reference implementation, and add support for the HTTP extension it implements to

  • Apache's mod_proxy/mod_cache
    • An interesting subproject would be to implement a "filter" style module. Martin Poole outlined it here, though at the time Apache 1.3.x did not support filters.
  • Squid
    • Currently, Squid has severe memory footprint issues that make it unsuitable for long-term usage for OLPC. Work on Squid would necessitate resolving these issues.

The complexity of this project is high.

ejabberd - Erlang

ejabberd is the leading Jabber/XMPP server. The OLPC School Server uses ejabberd for its integration with the XOs.

Some draft project ideas - poke Martin for more...

  • Extend mod_ctlextra to provide more control
  • Integrate mod_xmlrpc to expose the same facilities as mod_ctlextra, write a PHP library that wraps around all the mod_xmlrpc functionality

Skills: Erlang, parallel programming, network programming


SchoolTool - Proyecto Alba

It would be nice to add an administration tool for the school principal / teacher to manage courses, grades. grade cards, student lists, etc....

SchoolTool - Only for ubuntu, we should check if we can integrate it, but it should not be an issue. Proyecto Alba - Only spanish up to where I know.

Interface design

Admin interface : The school server needs a graphical admin interface to configure some aspects of the services it offers, and to help diagnostics. Mentor: Martin Langhoff.

  • Hi! My name is Andrey. I want to join your project and help with school server. Grad. XS AdminUI.

Auto memory/disk tuning

Automagic tuning: The school server may have different memory and disk relationships. Provide alternative configurations for key daemons (apache, postgresql/mysql, ejabberd, java-based daemons, etc) for different memory sizes. Learn a lot about scalability and performance tuning for servers. Provide a web based report of memory and disk traffic. Mentor: Martin Langhoff.

Package web-based elearning

If you are familiar with good e-learning web applications that are aimed towards users from kindergarden to 16 year-old teenagers, propose an app to customise and package for the school server! Mentor: Martin Langhoff.

Hello Mentor, Myself K.Vikranth Reddy I am studing B.Tech Final Year And Iam Interested in Involving myself in Your Project.Presently i am working on my project Titled Online Virtual Training System which is an elearning project. Iam doing the project using PHP and MySql

I want to take part in this project and i want to share my ideas with you.

my mail id is vikranthreddyk@gmail.com ThanQ, vikranth reddy

twexter on moodle

Twext es un idea para ayudarnos a aprender lenguajes.
twext     is   an   idea    to       help us          to learn          languages
El software Twexter ya tiene un demo que maneja
twexter software                  now  has      ¡alpha!       that   works with
el UniCode para que twexteamos en muchas idiomas.
global text       so that  we can twext             in   many        languages
* kids teach kids
* alpha demo
* moodle me
* mediawixi
* twext
* code
this fixed font twext 'roughly' aligns when you CTL+ or CTL- to adjust font size :)
hola Martin como'tas? vas a CONSOL 2009? muchos saludos! duke@tuba.net

Networked Blogging Project

  • Uruguay is developing an Educational Blogger Project. This needs design, coding and configuration of Moodle (moodle.org) and drupal.
    See further definition below, and requirements at Requiremientos_Para_XO.

Core Software

Extending Gnash

Extend Gnash to read more data formats, in particular those at OLPC.tv, and Mary Lou Jepsen's presentation at the Greener Gadgets Conference. Integrate Supat's SSS code and move it upstream.

Speech Synthesis integration

Integrate speech synthesis with all activities, not just Speak, and provide for karaoke coloring. See Mokurai's article on adapting Same Language Subtitling for literacy to the XO, and Hemant Goyal's work on this last summer of code.

Desirable Features for Sugar Speech Synthesis Plugin:

  • Provide Sugar Speech Synthesis Configuration Management Tool
  • Karaoke Style Coloring in Sugar Environment
  • UI for configuration Control
  • Accent gets set on the basis of locale

Expressed interest from XO schools

Java

Package and integrate the IcedTea open source bootstrap of OpenJDK Java with browser plugin for the XO. Deliverables would include:

  • Binary, source and rpm dependencies for icedtea and icedtea browser plugin
  • Java enabled xo os image
  • Integration of packages into autobuild branch

Print Support

Print support in Sugar would be useful in many scenarios. The ideal project deliverables would include

  • Integration of a printing infrastructure (CUPS ??) into the XO-1 software images
  • Modification of Sugar Control Panel to set up the printer (add/select default printer?)
  • Modification of at least one activity (Write ?) to support printing
  • Making a printing activity, that follows sugar GUI guidelines?
I am highly interested in working on this project. Would the project leader mind contacting me at bmw.stx@gmail.com?

JavaScript-Python Communication

JavaScript Python Communication through the following strategies: PyXPCom, hulahop, and xulrunner.


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: User_talk:59.178.99.172 (work on this is happening at JS-Python)

Regards, Preeti

Mono/.NET

The use of Mono could really enhance the number of Sugar developers due to the huge existing .NET community. Thanks to Torello Querci, developing a Sugar activity in Mono is already possible using the Mono/Sugar bindings Sugar.dll (more here).

The idea for this GSOC project is to greatly enhance this binding:

  • Better integration with the Sugar look & feel,
  • Binding to telepathy API,
  • WinForm compatibility,
  • MonoDevelop integration,
  • ...

Contact http://wiki.laptop.org/go/User:llaske if you're interested by this project.

Android Emulator

  • Not for developing, but for installing the thousands of Apps that are available in the Android ecosystem.
  • There are literally thousands of free educational apps that are available to Android users.


Updates to core Activities

Port Browse to WebKit

[Webkit] is somewhat lighter than the current Xulrunner engine powering the Browse activity. Porting Browse to use Webkit might see some performance benefits.

    • I would like to know further about this project and if there is an expected port such as the Qt version or some webkit derivative in mind. Also on expected skills of the student. I have high interest in talking to someone and cannot find an e-mail submission page, I see most people just commenting here. A (very) little about me: I am currently a Junior/Senior student with C++ and Java programming skills. e-mail: jlukas79@gmail.com

Enhancements for Measure

  • Feed generated data from simulations or the software synthesizer into the Measure activity.
  • Add sensor support to Activities such as TamTam that would allow musical pitch, tempo etc to be controlled by sensors
  • Make a video context analogous to the audio context that currently exists. Along with showing a real time video stream, show RGB values, a histogram etc.
  • Make triggered logging possible (similar to triggered logging in Oscilloscopes)
  • Some more immediate plans here Measure/Plans
  • Sensor based input into games. For example control a game character based on light intensity

Make activities programmable

More generally, support snap-together programming of XO activities in the manner that Turtle Art and Etoys provide internally.

Book and Document readers

  • A port of Calibre to the XO would be very interesting.
  • Improvements to our fbreader activity would be welcome and widely used.
Potential mentor: sayamindu 12:49, 16 March 2009 (UTC)

Collection generators

Scripts for generating collections out of Gutenberg, IACL, and other libraries are needed for [re]generating collections at the Internet Archive, and automatically producing xol bundles and other useful formats out of existing sources.

Potential mentors: sayamindu, rcollins

Activities and more

see the Activity ideas page

Sugar packaging in other distros

see the Sugar Labs project page