Software projects: Difference between revisions

From OLPC
Jump to navigation Jump to search
m (spelling)
 
(100 intermediate revisions by 46 users not shown)
Line 1: Line 1:
{{projects-nav}}
{{Translations}}{{RightTOC}}{{projects-nav}}
This page collects descriptions of the various active sub-projects within the OLPC project. If you are new developer looking for ideas about where you'd like to start working you can look at the current project-set and see if there's a project you'd like to join. The [[Software ideas]] page provides ideas for new projects you may want to start.
This page collects descriptions of ''some'' of the various active sub-projects within the OLPC project. If you are new developer looking for ideas about where you'd like to start working you can look at the current project-set and see if there's a project you'd like to join. The [[Software ideas]] page provides ideas for new projects you may want to start.


{{__TOC__}}
= Core =
= Core =


Line 19: Line 18:
== Presence Service (Session Initialisation) ==
== Presence Service (Session Initialisation) ==


Session initialisation mechanism for discovery and connection to other users on the (mesh) network. The presence service arranges for connections between users' running activities and sets up the connections between them.
[[Presence Service]] provides session initialisation mechanism for discovery and connection to other users on the (mesh) network. The presence service arranges for Telepathy connections between users' running activities and sets up the connections between them. Python activities use sugar calls in sugar.presence to talk to the Presence Service which in turn calls Telepathy. See [[Activity sharing]] and [[Collaboration Tutorial]]


* Lead Developer: Collabora
* Lead Developer: [http://www.collabora.co.uk/ Collabora]


* Communications Channels: ??
* Communications Channels: sugar mailing list, #sugar channel on FreeNode IRC


* Current Needs: Documentation, Sample Code, Sugar Integration (Dan Williams)
* Current Needs: Documentation


== Telepathy (Networking) ==
== Telepathy (Networking) ==


Telepathy is a multi-user and local networking mechanism. The plan is to allow access via dbus on the laptops. It is intended that most custom applications will use the Telepathy API and that where possible ported applications will be altered to channel their TCP-style connections through Telepathy connections.
[http://telepathy.freedesktop.org/wiki/ Telepathy] is a multi-user and local networking mechanism. Two connection managers are provided: telepathy-gabble for XMPP via a [[Jabber server]], and telepathy-salut for link local XMPP. Telepathy provides each Activity (via the [[Presence Service]]) with a Text Channel (XMPP MUC) for chat purposes, and a Tubes channel for data sharing via D-Bus Tubes or Stream Tubes.


Python Activities use Sugar calls to access the [[Presence Service]] which does most of the interfacing with Telepathy, although calling Telepathy directly is possible.
* Lead Developer: ??


* Lead Developer: [http://www.collabora.co.uk/ Collabora]
* Communications Channels: ??

* Communications Channels: [http://lists.freedesktop.org/mailman/listinfo/telepathy telepathy mailing list], #telepathy channel on FreeNode IRC


* Current Needs: Documentation, Sample Code, Integration Work
* Current Needs: ??


== BitFrost (Security) ==
== Bitfrost (Security) ==


[[BitFrost]] is the security infrastructure layer for the project. The system is currently a proposal up for review.
[[Bitfrost]] ([[OLPC Bitfrost|full spec]]) is the security infrastructure layer for the project. The system is currently a proposal up for review.


* Lead Developer: Ivan Krstić
* Lead Developer: Ivan Krstić
Line 47: Line 48:
* Current Needs: Proposal Review and Discussion, Plug-in Mechanism Brainstorming, Implementation
* Current Needs: Proposal Review and Discussion, Plug-in Mechanism Brainstorming, Implementation


= Activities =
= [[Activities]] =


Activities are the "applications" which are delivered by the system. They allow users to accomplish their tasks directly. They may be written custom for the OLPC Laptops or may be applications ported to the OLPC environment.
Activities are the "applications" which are delivered by the system. They allow users to accomplish their tasks directly. They may be written custom for the OLPC Laptops or may be applications ported to the OLPC environment.


A growing list of activities in development for the XO laptops, with information about current project status, is available from [[Activities|the activities page]]. Brief updates about some activities are available below.
== AbiWord (Collaborative Word Processor) ==
[[Image:Abiword_with_no_frame.png|320 px|thumb|left|Screenshot of AbiWord inside Sugar]]


== Write (Collaborative Word Processor) ==
[[Image:Activity4.png]] [http://www.abiword.com AbiWord] is an Open Source word processor that uses [[GTK]] as its GUI.
[[Image:activity_write.jpg|320 px|thumb|left|Screenshot of Write inside Sugar]]


[[Image:Write.png]] The [[Write]] activity is based on [http://www.abiword.com AbiWord], an Open Source word processor that uses [[GTK]] as its GUI.
AbiWord has a new feature to allow [http://www.abisource.com/twiki/bin/view/Abiword/AbiCollab collaborative real time editting]. This feature will be integrated with OLPC mesh and presence services to allow easy really time collaborative editing between OLPC users.

AbiWord has a new feature to allow [http://www.abisource.com/twiki/bin/view/Abiword/AbiCollab collaborative real time editing]. This feature will be integrated with OLPC mesh and presence services to allow easy real time collaborative editing between OLPC users.


===What's been done...===
===What's been done...===


* The core of AbiWord has been wrapped by python and is accessibable as a reusable rich text editor via a python interface.
* The core of AbiWord has been wrapped by python and is accessible as a reusable rich text editor via a python interface.
* This is normal PyGtk style GtkWidget. It's many features are documented on the AbiWord wiki [http://www.abisource.com/twiki/bin/view/Abiword/PyAbiWord http://www.abisource.com/twiki/bin/view/Abiword/PyAbiWord]
* This is normal PyGtk style GtkWidget. Its many features are documented on the AbiWord wiki [http://www.abisource.com/twiki/bin/view/Abiword/PyAbiWord http://www.abisource.com/twiki/bin/view/Abiword/PyAbiWord]
* The python rich text editor forms the core of the write activity.
* The python rich text editor forms the core of the Write activity.
* The use of the python widget is straight forward. It can be embedded in any gtk application just like other Gtk Widgets.
* The use of the python widget is straightforward. It can be embedded in any gtk application just like other Gtk Widgets.
* Text and images can be dragged and dropped from the sugar frame into write.
* Text and images can be dragged and dropped from the sugar frame into write.
* Text can be dragged out of write and placed on the sugar frame for other apps to use.
* Text can be dragged out of write and placed on the sugar frame for other apps to use.
* The format of this text is RTF.
* The format of this text is RTF.
* Integrate AbiCollab with the presence service and telepathy


===What's left to do...===
===What's left to do...===
*Complete user interface decisions
*Integrate AbiCollab with the presence service and telepathy
*Finish implementing table menu button
*Integrate the work being done on the [http://wiki.laptop.org/go/OLPC_Human_Interface_Guidelines/The_Laptop_Experience/The_Journal Journal] activity with Abiword applicable.


* Implement the user interface design decisions [http://wiki.laptop.org/go/Write]
DEV: http://dev.laptop.org/git.do?p=projects/abiword-olpc;a=summary
* Finish implementing table menu button
DEV: http://dev.laptop.org/git.do?p=projects/abiword-embed;a=summary
* Integrate the work being done on the [http://wiki.laptop.org/go/OLPC_Human_Interface_Guidelines/The_Laptop_Experience/The_Journal Journal] activity with Abiword applicable.

DEV: http://dev.laptop.org/git?p=projects/abiword-olpc;a=summary
DEV: http://dev.laptop.org/git?p=projects/abiword-embed;a=summary
READ: http://www.snowedin.net/ideas/AbiWord+on+OLPC
READ: http://www.snowedin.net/ideas/AbiWord+on+OLPC
READ: http://www.snowedin.net/summerofcode/
READ: http://www.snowedin.net/summerofcode/

== FoodForce 2 ==
[[Image:Foodforce.jpg|thumb|right|Early screenshot of FoodForce 2]]
[http://wiki.laptop.org/go/Projects/foodforce2 FoodForce 2] is both a classroom tool, and an outside classroom activity. It is a new kind of an educational solution, an “expanded school” which grows well beyond the walls of the classroom. The game play has been designed in a way to educate the child about certain key learning areas.

Beta version of the game has been released. Please check the download section at : http://code.google.com/p/foodforce/downloads/list.


== Develop (Software Development Environment) ==
== Develop (Software Development Environment) ==

[[Image:Develop-activity-very-early.png|thumb|right|Early screenshot of Develop]]
[[Image:Develop-activity-very-early.png|thumb|right|Early screenshot of Develop]]
The [[Develop]] Activity is the "''Activity for making Activities''" in [[Sugar]]. In the spirit of [[Constructivism]], OLPC needs a collaborative, intuitive and simple mechanism for fledgling hackers to write software in the same class as the officially supplied activities. It needs to be accessible both to educators who need to implement a solid, early computer science curriculum and to young people who simply wish to play with their computers to make things for making's sake.


DEV: http://dev.laptop.org/git?p=projects/develop-activity;a=summary
The [[Develop]] Activity is the "''Activity for making Activities''" in [[Sugar]]. In the spirit of [[Constructivism]], OLPC needs a collaborative, intuitive and simple mechanism for fledgling hackers to write software in the same class as the officially supplied activities. It needs to be accessible for both educators who need implement a solid early computer science curriculum and young people who simply wish to play with their computer to make things for making's sake.

DEV: http://dev.laptop.org/git.do?p=projects/develop-activity;a=summary


== Etoys (Scripted Media Environment) ==
== Etoys (Scripted Media Environment) ==
[[Image:EToys - new display.jpg|thumb|right|Etoys running on the OLPC display]]


[[Image:EToys - new display.jpg|thumb|right|Etoys running on the OLPC display]]
[[Image:Activity1.png]] [[Etoys]] developed in [[Squeak]] was inspired by [[LOGO]], PARC-[[Smalltalk]], Hypercard, and starLOGO. It is a media-rich authoring environment with a simple powerful scripted object model for many kinds of objects created by end-users that runs on many platforms, and is free and open source. It includes 2D and 3D graphics, images, text, particles, presentations, web-pages, videos, sound and MIDI, etc. It includes the ability to share desktops with other Etoy users in real-time, so many forms of immersive mentoring and play can be done over the Internet. It is multilingual, runs on more than 20 platforms bit-identically, and has been successfully used in USA, Europe, South America (Brazil, Colombia, Argentina), Asia (Japan, Korea, India, Nepal), and elsewhere.
[[Image:Activity1.png]] [[Etoys]], developed in [[Squeak]], was inspired by [[LOGO]], PARC-[[Smalltalk]], Hypercard, and starLOGO. It is a media-rich authoring environment with a simple, powerful scripted object model for many kinds of objects created by end-users. It runs on many platforms and is free and open source. It includes 2D and 3D graphics, images, text, particles, presentations, web-pages, videos, sound and MIDI, etc. It includes the ability to share desktops with other Etoy users in real-time, so many forms of immersive mentoring and play can be done over the Internet. It is multilingual, runs on more than 20 platforms bit-identically, and has been successfully used in USA, Europe, South America (Brazil, Colombia, Argentina), Asia (Japan, Korea, India, Nepal), and elsewhere.


DEV: http://dev.laptop.org/git.do?p=projects/etoys;a=summary
DEV: http://dev.laptop.org/git?p=projects/etoys;a=summary
LIST: http://mailman.laptop.org/mailman/listinfo/etoys
LIST: http://mailman.laptop.org/mailman/listinfo/etoys
READ: http://www.squeakland.org/school/HTML/essays/essays.html
READ: http://www.squeakland.org/school/HTML/essays/essays.html
Line 97: Line 107:
== xbook (E-Book Reader) ==
== xbook (E-Book Reader) ==


[[Image:Xbook - new_display.png|thumb|right|Pdf file being viewed on the OLPC display]]
(Manusheel Gupta) - OLPC PDF viewer


[[Image:activity-xbook.svg]] (Manusheel Gupta) - OLPC PDF viewer
DEV: http://dev.laptop.org/git.do?p=projects/xbook;a=summary

Xbook is the pdf viewer for the XO and provides a simple and an intuitive interface to view all varieties of text and image based book-like materials.
It can be used to view a pdf file both in continuous as well as pagewise display mode. Evince is the base of its development. It is integrated with the web-activity and a pdf file could be opened up and viewed from the web-browser.

: I think the [[Read]] activity replaced "xbook". -- [[User:Skierpage|Skierpage]] 05:38, 26 July 2008 (UTC)

* Developers: Manusheel Gupta, Marco Gritti, Tomeu Vizoso, Dan Williams
* Advisor: Walter Bender
* DEV: http://dev.laptop.org/git?p=projects/xbook;a=summary This link is broken [[User:MartinDengler|MartinDengler]] 21:06, 12 February 2008 (EST)


== Evince (Document (PDF) Reader) ==
== Evince (Document (PDF) Reader) ==


[[Evince]] is a free software document viewer that supports multiple [[file formats]], including Portable Document Format ([[PDF]]), PostScript and [[DJVU]] documents for the GNOME desktop environment. The goal of [[Evince]] is to replace the multiple document viewers that exist on GNOME, like GGV, GPdf, and xpdf, with a single, simple application.
[[Evince]] is a free software document viewer that supports multiple [[image file formats]], including Portable Document Format ([[PDF]]), PostScript and [[DJVU]] documents for the GNOME desktop environment. The goal of [[Evince]] is to replace the multiple document viewers that exist on GNOME, like GGV, GPdf, and xpdf, with a single, simple application.


: The [[Read]] activity uses an Evince library. -- [[User:Skierpage|Skierpage]] 05:39, 26 July 2008 (UTC)
Of that list, it seems that [[DJVU]] should be the number one addition to the basic XML/HTML support in [[Sugar]]. The [[DJVU]] compression format is specifically designed for [[scanning|scanned text]] and achieves better result than general image compression techniques.


Of that list, it seems that DJVU should be the number one addition to the basic XML/HTML support in [[Sugar]]. The DJVU compression format is specifically designed for [[scanning|scanned text]] and achieves better result than general image compression techniques.
DEV: http://dev.laptop.org/git.do?p=projects/evince-olpc;a=summary

DEV: http://dev.laptop.org/git?p=projects/evince-olpc;a=summary
MAIN: http://gnome.org/projects/evince/
MAIN: http://gnome.org/projects/evince/
WIKI: http://live.gnome.org/Evince
WIKI: http://live.gnome.org/Evince
Line 115: Line 136:
[[Image:Activity7.png]] Memory is a musical memory game written in [[CSound]] that exploits the mesh network.
[[Image:Activity7.png]] Memory is a musical memory game written in [[CSound]] that exploits the mesh network.


DEV: http://dev.laptop.org/git.do?p=projects/memorygame;a=summary
DEV: http://dev.laptop.org/git?p=projects/memorygame;a=summary


== OLPCities (Educational Games) ==
== OLPCities (Educational Games) ==

[[Image:Interface5.jpg|thumb|OLPCities snapshot in Sugar]]
[[Image:Interface5.jpg|thumb|OLPCities snapshot in Sugar]]


Line 127: Line 149:
See: [[OLPCities]] and [[:Category:OLPCities]]
See: [[OLPCities]] and [[:Category:OLPCities]]


== Productive (Real Time Strategy Game) ==

[[Image:Productive-render-screenshot.png|thumb|Playing Field Rendering of Productive]]

Simplified real-time-strategy game using [[OLPCGames]] intended for children 10+ (or so) for use in teaching strategic thought, environmental and resource awareness, and principles in political geography. It's also supposed to be a fun game.

See: [[Games/Productive]]


== PyoLogo (Graphic Programming Environment) ==
== PyoLogo (Graphic Programming Environment) ==
[[Image:screenshot01.jpg|thumb|PyoLogo snapshot]]


[[Image:screenshot01.jpg|thumb|PyoLogo snapshot]]
[[PyoLogo]] [pie-o-logo] or '''PYthon Open Logo''' is an implementation of the [[LOGO]] programing language created on top of [[Python]]. It grew out of [http://www.media.mit.edu/~arnans/ Arnan (Roger) Sipitakiat's] thesis project at the MIT Media Laboratory. [[PyoLogo]] consists of a casual Logo interpreter and a simple IDE.
[[PyoLogo]] [pie-o-logo] or '''PYthon Open Logo''' is an implementation of the [[LOGO]] programing language created on top of [[Python]]. It grew out of [http://www.media.mit.edu/~arnans/ Arnan (Roger) Sipitakiat's] thesis project at the MIT Media Laboratory. [[PyoLogo]] consists of a casual Logo interpreter and a simple IDE.


Line 136: Line 165:


== Tam-Tam (Audio Creation Environment) ==
== Tam-Tam (Audio Creation Environment) ==
[[Image:TAMTAM.jpg|thumb|A snapshot of Tam-Tam]]


[[Image:TAMTAM.jpg|thumb|A snapshot of Tam-Tam]]
[[Image:Activity8.png]] Music is often described as the purest form of mathematical representation, driven instinctively by the human mind. It connects between people in many ways, and offers ways for expressing non-verbal emotion. In that sense music is related to problem-solving and communication.
[[Image:Activity8.png]] Music is often described as the purest form of mathematical representation, driven instinctively by the human mind. It connects between people in many ways, and offers ways for expressing non-verbal emotion. In that sense music is related to problem-solving and communication.


On a more practical level, [[TamTam]] helps explore and explain ideas connected with sequences, fractions, repetition, transposition, and representation, all of which are helpful for an intuitive understanding of mathematics and many aspects of scientific enquiry. In the realm of applied physics, [[TamTam]] proposes tools to explore the phenomenon of sound and show how the manipulation of physical quantities have a direct effect on what is heard. A child's first physics lab starts with making sounds.
On a more practical level, [[TamTam]] helps explore and explain ideas connected with sequences, fractions, repetition, transposition, and representation, all of which are helpful for an intuitive understanding of mathematics and many aspects of scientific enquiry. In the realm of applied physics, [[TamTam]] proposes tools to explore the phenomenon of sound and show how the manipulation of physical quantities have a direct effect on what is heard. A child's first physics lab starts with making sounds.


DEV: http://dev.laptop.org/git.do?p=projects/tamtam;a=summary
DEV: http://dev.laptop.org/git?p=projects/tamtam;a=summary
Also: [[CSound]] - the engine used by [[TamTam]]
Also: [[CSound]] - the engine used by [[TamTam]]


== Wikidpad (Content Publishing/Editing) ==
== Wikidpad (Content Publishing/Editing) ==


[http://www.jhorman.org/wikidPad/ Wikidpad] is an open source wiki written in [[Python]] using wxWindows (officially known as [http://www.wxwidgets.org/ wxWidgets]. The main [http://www.jhorman.org/wikidPad/ Wikidpad] page offers Windows binaries as well as the [[Python]] source code to download. Wikidpad uses a backend SQL database to store the pages. Two supported datastores are the pure Python Gadfly which will run on the OLPC, and [[SQLite]], a lightweight SQL database that is simple to integrate into standalone applications. SQLite is also part of the standard library in Python 2.5 which is the basis for the OLPC's [[Sugar]] environment.
[http://www.jhorman.org/wikidPad/ Wikidpad] is an open source wiki written in [[Python]] using wxWindows (officially known as [http://www.wxwidgets.org/ wxWidgets]). The main [http://www.jhorman.org/wikidPad/ Wikidpad] page offers Windows binaries as well as the [[Python]] source code to download. Wikidpad uses a backend SQL database to store the pages. Two supported datastores are the pure Python Gadfly which will run on the OLPC, and [[SQLite]], a lightweight SQL database that is simple to integrate into standalone applications. SQLite is also part of the standard library in Python 2.5 which is the basis for the OLPC's [[Sugar]] environment.


== Amiko (System Management UI) ==
== Amiko (System Management UI) ==


[http://dev.laptop.org/wiki/Amiko Project] planning to create a system management UI using a metaphor-mapped interface of some form.
[http://dev.laptop.org/wiki/Amiko Project] planning to create a system management UI using a metaphor-mapped interface of some form.

== Kye (Puzzle Game Port) ==

Ports the PyGTK clone of the "classic" Kye puzzle game to the Sugar environment.

* Lead Developer: Chris Ball
* Source Code: git clone git://dev.laptop.org/users/cjb/kye-activity
* Installable Image: http://dev.laptop.org/~cjb/Kye-1.xo

== Voices (Cultural Content) ==

[[voices]] - A video based Culture Sharing Initiative

== Guido van Robot (Educational Programming) ==
[[Image:Gvr-xo_0.jpg|thumb|A screenshot of GvR]]
[[Image:Activity-gvr.png]]

Guido van Robot is a localized minimalistic programming language providing just enough syntax to help students learn the concepts of sequencing, conditional branching, looping and procedural abstraction. Its biggest strength is that it permits this learning in an environment that combines the thrill of problem-solving with instant visual feedback. In short, it is an interactive, introductory programming language that is excellent for learning the basic concepts of programming, applicable in any high-level language.
There are 18 lessons included which covers all the basic programming concepts.

There's a 'activity bundle' available from the download section, see below.

Status:
* The original GTK GvR version is turned into a "one window" layout for Sugar.
* Everything is functional and works properly on the XO.

MAIN:[[Guido_van_Robot]]
DEV: http://sourceforge.net/svn/?group_id=85427
Bundle: http://sourceforge.net/project/showfiles.php?group_id=85427&package_id=235998
Contact: stas dot zytkiewicz at gmail dot com or contact the GvR mailinglist
== Kumir Activity==
Kumir is a Russian educational program language. At the moment we created simple Sugar wrapper for Kumir.
MAIN: [[Kumir]]
DEV: -- will be made available soon --
== Free From Malaria==

[[Category:Activities]]
[[Category:Resources]]
[[Category:Developers]]
[[Category:Python]]
[[Category:Sugar]]
[[Category:Software development]]
{{Activity page
|icon=http://worldclassproject.org.uk/images/mosquito.svg
|genre=Teacher Tools
|short description=The Free From Malaria game tells the story of Paul, a boy who lives in a Malaria endemic country. Paul learns how mosquitoes are responsible for spreading the Plasmodium parasite which causes Malaria. He also learns how to recognise the symptoms it causes and to seek medical help if someone thinks they have the disease.
|long description=The content consists of a comic story with two games that teaches children the importance of covering up at night-time and using bed nets. The goal is to help children recognise their role in the prevention of the disease and to create a future free from Malaria
|contact person=http://worldclassproject.org.uk
|activity source=http://worldclassproject.org.uk
|language=English
|bundle URL=http://activities.sugarlabs.org/en-US/sugar/addon/4309
|activity version=1
|releases=8.1.0 (703), 8.1.1 (708), 8.2.0 (767)
|devel status=4. Beta
}}


== Inferno ==
[[Image:inferno.png]]
[[Image:inferno-apps.jpg|thumb|Inferno Applications Screenshot]]
[[Image:inferno-games.jpg|thumb|Inferno Games Screenshot]]

(Eric Van Hensbergen) - create a launcher for the hosted Inferno environment

[[Inferno]] ( http://code.google.com/p/inferno-os ) can be installed and run from the shell.
The goal is to create an OLPC package and launch environment as well as adapt the Inferno runtime and
applications to the OLPC environment.

Besides being a new runtime environment, Inferno offers a number of applications which should run out of the box:
* multimedia (audio player, mpeg player, avi player)
* games (tetris, reversi, lego mindstorms interface, etc.)
* collaboration tools (email client, chat, shared whiteboard, etc.)
* servers (web server, content addressable storage system, etc.)
* tools (vt terminal, telnet, sgml editor, debuggers, etc.)

For more information, see the [[Inferno]] page.

DEV: (pending)

== Games Creation Tool for Children (GCTC) ==

[[Image:GCTC_logo_reduced.JPG]]

(Martin A. Conaghan) - Allows simplified games creation.

[[GCTC]] [[http://lab-cs4.cs.st-andrews.ac.uk/~mac34/GCTC/ Project Homepage]] Is an application which allows children to create
their own simple computer games. It lets them design the game background, add sprites and sounds, and describe the rules
that make up the game.

It uses PyGTK for the GUI and he games it generates use the Pygame module. It is very much a work in progress and feedback would be warmly accpeted :)

Contact mac34 at st-andrews dot ac dot uk

== Sugar-openmsx ==

(Abdullah Hamed) - Reuse old educational software, play classic games.

[[Sugar-openmsx]] (http://www.magiccarpetproject.com) (https://sourceforge.net/projects/sugar-openmsx) Is just the sugarization of OpenMSX a GPL MSX emulator, which a lot of Arabic educational programs got developed in the early 90s. Which I have. It also the system where a lot of classic video games got developed, like the original metal gears.

openmsx is available through yum.
Activity is available at the site.

work done:
* An activity runs openmsx from the python script.

to be done:
* center the image, create a way to close the activity within the activity.

Any ideas and code contribution would be appreciated

Contact abdullah.f.hamed 'at' gmail 'dot' com


= Infrastructure =
= Infrastructure =
Line 159: Line 299:
* [[School server]]
* [[School server]]
* [[System Software]] includes descriptions of a number of infrastructure pieces
* [[System Software]] includes descriptions of a number of infrastructure pieces
* [[Accessibility]] we use much of the Gnome infrastructure in OLPC, but there are differences
* Proxies a) [[Apache Proxy CRCsync]] b) [[X-LC1 Proxy]]


= Support =
= Support =
Line 168: Line 310:
(Nitin Gupta) - Compressed cache for Linux.
(Nitin Gupta) - Compressed cache for Linux.


DEV: http://dev.laptop.org/git.do?p=projects/linux-mm-cc;a=summary
DEV: http://dev.laptop.org/git?p=projects/linux-mm-cc;a=summary
Home: http://linuxcompressed.sourceforge.net
(Due to some problems, this GIT repository is now completely out-of-date. Latest patches are available from project homepage instead).


== linuxbios ==
== linuxbios ==
Line 174: Line 318:
(Richard Smith) - ''no description available''
(Richard Smith) - ''no description available''


DEV: http://dev.laptop.org/git.do?p=projects/linuxbios;a=summary
DEV: http://dev.laptop.org/git?p=projects/linuxbios;a=summary


== olpcflash ==
== olpcflash ==
Line 180: Line 324:
(Richard Smith) - ''no description available''
(Richard Smith) - ''no description available''


DEV: http://dev.laptop.org/git.do?p=projects/olpcflash;a=summary
DEV: http://dev.laptop.org/git?p=projects/olpcflash;a=summary


== pyltc ==
== pyltc ==


([[User:Jacobolus|Jacob Rus) - Python bindings for LibTomCrypt
([[User:Jacobolus|Jacob Rus]]) - Python bindings for LibTomCrypt


DEV: http://dev.laptop.org/git.do?p=projects/pyltc;a=summary
DEV: http://dev.laptop.org/git?p=projects/pyltc;a=summary


== rgbpaint ==
== rgbpaint ==
Line 192: Line 336:
(Mark Tyler) - Paint program
(Mark Tyler) - Paint program


DEV: http://dev.laptop.org/git.do?p=projects/rgbpaint;a=summary
DEV: http://dev.laptop.org/git?p=projects/rgbpaint;a=summary

== Schedule of ephemerides for Mexico ==

(Hugo Gallardo) - A school shedule of ephemerides for Mexico


== soc-acdc ==
== soc-acdc ==
Line 198: Line 346:
(Arthur Wolf) - ACDC citizen network
(Arthur Wolf) - ACDC citizen network


DEV: http://dev.laptop.org/git.do?p=projects/soc-acdc;a=summary
DEV: http://dev.laptop.org/git?p=projects/soc-acdc;a=summary


== soc-eds ==
== soc-eds ==
Line 204: Line 352:
(Matthew Harrison) - External eBook data sources via [[Summer of Code]]
(Matthew Harrison) - External eBook data sources via [[Summer of Code]]


DEV: http://dev.laptop.org/git.do?p=projects/soc-eds;a=summary
DEV: http://dev.laptop.org/git?p=projects/soc-eds;a=summary


== soc-gtk ==
== soc-gtk ==
Line 210: Line 358:
([http://www.manucornet.net Manu Cornet]) - OLPC GTK+ theme and improvements via [[Summer of Code]]
([http://www.manucornet.net Manu Cornet]) - OLPC GTK+ theme and improvements via [[Summer of Code]]


DEV: http://dev.laptop.org/git.do?p=projects/soc-gtk;a=summary
DEV: http://dev.laptop.org/git?p=projects/soc-gtk;a=summary


== soc-memphis ==
== soc-memphis ==
Line 216: Line 364:
(Eduardo Silva) - Memory usage tool for developers via [[Summer of Code]]
(Eduardo Silva) - Memory usage tool for developers via [[Summer of Code]]


DEV: http://dev.laptop.org/git.do?p=projects/soc-memphis;a=summary
DEV: http://dev.laptop.org/git?p=projects/soc-memphis;a=summary


== soc-oepc ==
== soc-oepc ==
Line 222: Line 370:
(Eric Astor) - One Encyclopedia Per Child tools via [[Summer of Code]]
(Eric Astor) - One Encyclopedia Per Child tools via [[Summer of Code]]


DEV: http://dev.laptop.org/git.do?p=projects/soc-oepc;a=summary
DEV: http://dev.laptop.org/git?p=projects/soc-oepc;a=summary


== tinderbox ==
== tinderbox ==
Line 228: Line 376:
(Chris Ball) - OLPC system tinderbox
(Chris Ball) - OLPC system tinderbox


DEV: http://dev.laptop.org/git.do?p=projects/tinderbox;a=summary
DEV: http://dev.laptop.org/git?p=projects/tinderbox;a=summary


== trac-git ==
== trac-git ==
Line 234: Line 382:
([[User:SamatJain|Samat Jain]]) - A git versioning backend for the Trac versioning system
([[User:SamatJain|Samat Jain]]) - A git versioning backend for the Trac versioning system


DEV: http://dev.laptop.org/git.do?p=projects/trac-git;a=summary
DEV: http://dev.laptop.org/git?p=projects/trac-git;a=summary


== ubuntu-xen ==
== ubuntu-xen ==
Line 240: Line 388:
(Chuck Short) - Ubuntu Xen packages
(Chuck Short) - Ubuntu Xen packages


DEV: http://dev.laptop.org/git.do?p=projects/ubuntu-xen;a=summary
DEV: http://dev.laptop.org/git?p=projects/ubuntu-xen;a=summary
DEV: http://dev.laptop.org/git.do?p=projects/ubuntu-xen-2.6.17;a=summary
DEV: http://dev.laptop.org/git?p=projects/ubuntu-xen-2.6.17;a=summary


== wysiwyg ==
== wysiwyg ==
Line 247: Line 395:
(John Resig) - In-browser WYSIWYG editor for Yellow
(John Resig) - In-browser WYSIWYG editor for Yellow


DEV: http://dev.laptop.org/git.do?p=projects/wysiwyg;a=summary
DEV: http://dev.laptop.org/git?p=projects/wysiwyg;a=summary


== wysiwyg ==
[[Category:Software projects]]
Kids Blogger Tool
[[Category:Resources]]
http://wiki.laptop.org/go/Requiremientos_Para_XO <br>
[[Category:Developers]]
Sing up to work on this at: <br>
[[Category:Python]]
http://groups.google.com/group/uruguay-XO-coordination
[[Category:Sugar]]
[[Category:Software development]]
[[Category:Activity]]

Latest revision as of 15:23, 1 June 2012

  english | 日本語 | 한국어 HowTo [ID# 271200]  +/-  
Projects and proposals    +/-
Content ideas Content projects
Hardware ideas Hardware projects
Software ideas Software projects

This page collects descriptions of some of the various active sub-projects within the OLPC project. If you are new developer looking for ideas about where you'd like to start working you can look at the current project-set and see if there's a project you'd like to join. The Software ideas page provides ideas for new projects you may want to start.

Core

These projects represent the core (custom) software on the system. They provide the services that other projects can use to allow users to accomplish their tasks. Of course, the various Linux libraries are also "core" to the system; things like Video for Linux and Gstreamer are available, but they are not OLPC specific.

Sugar (GUI Shell)

Sugar is the main GUI Shell which provides the overall GUI interface for the laptop Operating System (Linux). It is a Python application which currently uses an overlay "frame" which provides access to the task-and-network-management services of the system.

  • Lead Developer: Marco Pesenti Gitti
  • Communications Channels: sugar mailing list, #sugar channel on FreeNode IRC
  • Current Needs: Documentation (Mel Wilson), Sample Code, GUI Review and Testing, Refinement Coding, System Service UIs

Presence Service (Session Initialisation)

Presence Service provides session initialisation mechanism for discovery and connection to other users on the (mesh) network. The presence service arranges for Telepathy connections between users' running activities and sets up the connections between them. Python activities use sugar calls in sugar.presence to talk to the Presence Service which in turn calls Telepathy. See Activity sharing and Collaboration Tutorial

  • Communications Channels: sugar mailing list, #sugar channel on FreeNode IRC
  • Current Needs: Documentation

Telepathy (Networking)

Telepathy is a multi-user and local networking mechanism. Two connection managers are provided: telepathy-gabble for XMPP via a Jabber server, and telepathy-salut for link local XMPP. Telepathy provides each Activity (via the Presence Service) with a Text Channel (XMPP MUC) for chat purposes, and a Tubes channel for data sharing via D-Bus Tubes or Stream Tubes.

Python Activities use Sugar calls to access the Presence Service which does most of the interfacing with Telepathy, although calling Telepathy directly is possible.

  • Current Needs: ??

Bitfrost (Security)

Bitfrost (full spec) is the security infrastructure layer for the project. The system is currently a proposal up for review.

  • Lead Developer: Ivan Krstić
  • Communications Channels: ??
  • Current Needs: Proposal Review and Discussion, Plug-in Mechanism Brainstorming, Implementation

Activities

Activities are the "applications" which are delivered by the system. They allow users to accomplish their tasks directly. They may be written custom for the OLPC Laptops or may be applications ported to the OLPC environment.

A growing list of activities in development for the XO laptops, with information about current project status, is available from the activities page. Brief updates about some activities are available below.

Write (Collaborative Word Processor)

Screenshot of Write inside Sugar

Write.png The Write activity is based on AbiWord, an Open Source word processor that uses GTK as its GUI.

AbiWord has a new feature to allow collaborative real time editing. This feature will be integrated with OLPC mesh and presence services to allow easy real time collaborative editing between OLPC users.

What's been done...

  • The core of AbiWord has been wrapped by python and is accessible as a reusable rich text editor via a python interface.
  • This is normal PyGtk style GtkWidget. Its many features are documented on the AbiWord wiki http://www.abisource.com/twiki/bin/view/Abiword/PyAbiWord
  • The python rich text editor forms the core of the Write activity.
  • The use of the python widget is straightforward. It can be embedded in any gtk application just like other Gtk Widgets.
  • Text and images can be dragged and dropped from the sugar frame into write.
  • Text can be dragged out of write and placed on the sugar frame for other apps to use.
  • The format of this text is RTF.
  • Integrate AbiCollab with the presence service and telepathy

What's left to do...

  • Implement the user interface design decisions [1]
  • Finish implementing table menu button
  • Integrate the work being done on the Journal activity with Abiword applicable.
DEV:  http://dev.laptop.org/git?p=projects/abiword-olpc;a=summary
DEV:  http://dev.laptop.org/git?p=projects/abiword-embed;a=summary
READ: http://www.snowedin.net/ideas/AbiWord+on+OLPC
READ: http://www.snowedin.net/summerofcode/

FoodForce 2

Early screenshot of FoodForce 2

FoodForce 2 is both a classroom tool, and an outside classroom activity. It is a new kind of an educational solution, an “expanded school” which grows well beyond the walls of the classroom. The game play has been designed in a way to educate the child about certain key learning areas.

Beta version of the game has been released. Please check the download section at : http://code.google.com/p/foodforce/downloads/list.

Develop (Software Development Environment)

Early screenshot of Develop

The Develop Activity is the "Activity for making Activities" in Sugar. In the spirit of Constructivism, OLPC needs a collaborative, intuitive and simple mechanism for fledgling hackers to write software in the same class as the officially supplied activities. It needs to be accessible both to educators who need to implement a solid, early computer science curriculum and to young people who simply wish to play with their computers to make things for making's sake.

DEV: http://dev.laptop.org/git?p=projects/develop-activity;a=summary

Etoys (Scripted Media Environment)

Etoys running on the OLPC display

Activity1.png Etoys, developed in Squeak, was inspired by LOGO, PARC-Smalltalk, Hypercard, and starLOGO. It is a media-rich authoring environment with a simple, powerful scripted object model for many kinds of objects created by end-users. It runs on many platforms and is free and open source. It includes 2D and 3D graphics, images, text, particles, presentations, web-pages, videos, sound and MIDI, etc. It includes the ability to share desktops with other Etoy users in real-time, so many forms of immersive mentoring and play can be done over the Internet. It is multilingual, runs on more than 20 platforms bit-identically, and has been successfully used in USA, Europe, South America (Brazil, Colombia, Argentina), Asia (Japan, Korea, India, Nepal), and elsewhere.

DEV:  http://dev.laptop.org/git?p=projects/etoys;a=summary
LIST: http://mailman.laptop.org/mailman/listinfo/etoys
READ: http://www.squeakland.org/school/HTML/essays/essays.html

xbook (E-Book Reader)

Pdf file being viewed on the OLPC display

Activity-xbook.svg (Manusheel Gupta) - OLPC PDF viewer

Xbook is the pdf viewer for the XO and provides a simple and an intuitive interface to view all varieties of text and image based book-like materials. It can be used to view a pdf file both in continuous as well as pagewise display mode. Evince is the base of its development. It is integrated with the web-activity and a pdf file could be opened up and viewed from the web-browser.

I think the Read activity replaced "xbook". -- Skierpage 05:38, 26 July 2008 (UTC)

Evince (Document (PDF) Reader)

Evince is a free software document viewer that supports multiple image file formats, including Portable Document Format (PDF), PostScript and DJVU documents for the GNOME desktop environment. The goal of Evince is to replace the multiple document viewers that exist on GNOME, like GGV, GPdf, and xpdf, with a single, simple application.

The Read activity uses an Evince library. -- Skierpage 05:39, 26 July 2008 (UTC)

Of that list, it seems that DJVU should be the number one addition to the basic XML/HTML support in Sugar. The DJVU compression format is specifically designed for scanned text and achieves better result than general image compression techniques.

DEV:  http://dev.laptop.org/git?p=projects/evince-olpc;a=summary
MAIN: http://gnome.org/projects/evince/
WIKI: http://live.gnome.org/Evince

Memory (Musical Game)

Activity7.png Memory is a musical memory game written in CSound that exploits the mesh network.

DEV: http://dev.laptop.org/git?p=projects/memorygame;a=summary

OLPCities (Educational Games)

OLPCities snapshot in Sugar

The project target is the creation of an interface having the style of the GameBoy from Nintendo (using orthogonal 3D like "Zelda", "Mario Bros." etc.) where the kid's avatar will "walk" through the "streets" of the OLPCity , finding many "activities".

The project is in alpha phase and we have now only a brazilian (language = portuguese) OLPCity (whose name is ALPHACity) having more or less 20 activities implemented in the areas of: Social Studies, History, English vocabulary etc. We hope that YOU can help us (better to say "to help the kids of poor countries") creating "Lots" or complete "OLPCities".

DEMO: http://www.dmu.com/ (only for XOs due to resolution)
See:  OLPCities and Category:OLPCities

Productive (Real Time Strategy Game)

Playing Field Rendering of Productive

Simplified real-time-strategy game using OLPCGames intended for children 10+ (or so) for use in teaching strategic thought, environmental and resource awareness, and principles in political geography. It's also supposed to be a fun game.

See:  Games/Productive

PyoLogo (Graphic Programming Environment)

PyoLogo snapshot

PyoLogo [pie-o-logo] or PYthon Open Logo is an implementation of the LOGO programing language created on top of Python. It grew out of Arnan (Roger) Sipitakiat's thesis project at the MIT Media Laboratory. PyoLogo consists of a casual Logo interpreter and a simple IDE.

DEV: -- will be made available soon --

Tam-Tam (Audio Creation Environment)

A snapshot of Tam-Tam

Activity8.png Music is often described as the purest form of mathematical representation, driven instinctively by the human mind. It connects between people in many ways, and offers ways for expressing non-verbal emotion. In that sense music is related to problem-solving and communication.

On a more practical level, TamTam helps explore and explain ideas connected with sequences, fractions, repetition, transposition, and representation, all of which are helpful for an intuitive understanding of mathematics and many aspects of scientific enquiry. In the realm of applied physics, TamTam proposes tools to explore the phenomenon of sound and show how the manipulation of physical quantities have a direct effect on what is heard. A child's first physics lab starts with making sounds.

DEV:  http://dev.laptop.org/git?p=projects/tamtam;a=summary
Also: CSound - the engine used by TamTam

Wikidpad (Content Publishing/Editing)

Wikidpad is an open source wiki written in Python using wxWindows (officially known as wxWidgets). The main Wikidpad page offers Windows binaries as well as the Python source code to download. Wikidpad uses a backend SQL database to store the pages. Two supported datastores are the pure Python Gadfly which will run on the OLPC, and SQLite, a lightweight SQL database that is simple to integrate into standalone applications. SQLite is also part of the standard library in Python 2.5 which is the basis for the OLPC's Sugar environment.

Amiko (System Management UI)

Project planning to create a system management UI using a metaphor-mapped interface of some form.

Kye (Puzzle Game Port)

Ports the PyGTK clone of the "classic" Kye puzzle game to the Sugar environment.

Voices (Cultural Content)

voices - A video based Culture Sharing Initiative

Guido van Robot (Educational Programming)

A screenshot of GvR

Activity-gvr.png

Guido van Robot is a localized minimalistic programming language providing just enough syntax to help students learn the concepts of sequencing, conditional branching, looping and procedural abstraction. Its biggest strength is that it permits this learning in an environment that combines the thrill of problem-solving with instant visual feedback. In short, it is an interactive, introductory programming language that is excellent for learning the basic concepts of programming, applicable in any high-level language. There are 18 lessons included which covers all the basic programming concepts.

There's a 'activity bundle' available from the download section, see below.

Status:

  • The original GTK GvR version is turned into a "one window" layout for Sugar.
  • Everything is functional and works properly on the XO.
 MAIN:Guido_van_Robot
 DEV: http://sourceforge.net/svn/?group_id=85427
 Bundle: http://sourceforge.net/project/showfiles.php?group_id=85427&package_id=235998
 Contact: stas dot zytkiewicz at gmail dot com or contact the GvR mailinglist

Kumir Activity

Kumir is a Russian educational program language. At the moment we created simple Sugar wrapper for Kumir.

 MAIN: Kumir
 DEV: -- will be made available soon --

Free From Malaria

Activity Summary

Icon: Sugar icon::http://worldclassproject.org.uk/images/mosquito.svg
Genre: Activity genre::Teacher Tools
Activity group: ,|x|Activity group::x}}
Short description: [[Short description::The Free From Malaria game tells the story of Paul, a boy who lives in a Malaria endemic country. Paul learns how mosquitoes are responsible for spreading the Plasmodium parasite which causes Malaria. He also learns how to recognise the symptoms it causes and to seek medical help if someone thinks they have the disease.]]
Description: [[Description::The content consists of a comic story with two games that teaches children the importance of covering up at night-time and using bed nets. The goal is to help children recognise their role in the prevention of the disease and to create a future free from Malaria]]
Maintainers: ,|x|Contact person::x}}
Repository URL: Source code::http://worldclassproject.org.uk
Available languages: ,|x|Available languages::x}}
Available languages (codes): ,|x|Language code::x}}
Pootle URL:
Related projects: Related projects,|x|Related projects::x}}
Contributors: ,|x|Team member::x}}
URL from which to download the latest .xo bundle Activity bundle::http://activities.sugarlabs.org/en-US/sugar/addon/4309
Last tested version number: Activity version::1
The releases with which this version of the activity has been tested. ,|x|Software release::x}}
Development status: Devel status::4. Beta
Ready for testing (development has progressed to the point where testers should try it out): ,|x|Ready for testing::x}}
smoke tested :
test plan available :
test plan executed :
developer response to testing :


Inferno

Inferno.png

Inferno Applications Screenshot
Inferno Games Screenshot

(Eric Van Hensbergen) - create a launcher for the hosted Inferno environment

Inferno ( http://code.google.com/p/inferno-os ) can be installed and run from the shell. The goal is to create an OLPC package and launch environment as well as adapt the Inferno runtime and applications to the OLPC environment.

Besides being a new runtime environment, Inferno offers a number of applications which should run out of the box:

  • multimedia (audio player, mpeg player, avi player)
  • games (tetris, reversi, lego mindstorms interface, etc.)
  • collaboration tools (email client, chat, shared whiteboard, etc.)
  • servers (web server, content addressable storage system, etc.)
  • tools (vt terminal, telnet, sgml editor, debuggers, etc.)

For more information, see the Inferno page.

  DEV: (pending)

Games Creation Tool for Children (GCTC)

GCTC logo reduced.JPG

(Martin A. Conaghan) - Allows simplified games creation.

GCTC [Project Homepage] Is an application which allows children to create their own simple computer games. It lets them design the game background, add sprites and sounds, and describe the rules that make up the game.

It uses PyGTK for the GUI and he games it generates use the Pygame module. It is very much a work in progress and feedback would be warmly accpeted :)

Contact mac34 at st-andrews dot ac dot uk

Sugar-openmsx

(Abdullah Hamed) - Reuse old educational software, play classic games.

Sugar-openmsx (http://www.magiccarpetproject.com) (https://sourceforge.net/projects/sugar-openmsx) Is just the sugarization of OpenMSX a GPL MSX emulator, which a lot of Arabic educational programs got developed in the early 90s. Which I have. It also the system where a lot of classic video games got developed, like the original metal gears.

openmsx is available through yum. Activity is available at the site.

work done:

  • An activity runs openmsx from the python script.

to be done:

  • center the image, create a way to close the activity within the activity.

Any ideas and code contribution would be appreciated

Contact abdullah.f.hamed 'at' gmail 'dot' com

Infrastructure

These are the projects which are related to the supporting infrastructure for the OLPC laptops, things such as the School Server, Nation-level Software (e.g. for preparing curricula for distribution), VoIP Gateways to regular phone networks. Things that don't necessarily run on the the laptops themselves, but which provide services for the laptops.

Support

Supporting libraries for the system, including lower-level core libraries and projects which provide resources to be used by various activities.

linux-mm-cc

(Nitin Gupta) - Compressed cache for Linux.

DEV: http://dev.laptop.org/git?p=projects/linux-mm-cc;a=summary
Home: http://linuxcompressed.sourceforge.net

(Due to some problems, this GIT repository is now completely out-of-date. Latest patches are available from project homepage instead).

linuxbios

(Richard Smith) - no description available

DEV: http://dev.laptop.org/git?p=projects/linuxbios;a=summary

olpcflash

(Richard Smith) - no description available

DEV: http://dev.laptop.org/git?p=projects/olpcflash;a=summary

pyltc

(Jacob Rus) - Python bindings for LibTomCrypt

DEV: http://dev.laptop.org/git?p=projects/pyltc;a=summary

rgbpaint

(Mark Tyler) - Paint program

DEV: http://dev.laptop.org/git?p=projects/rgbpaint;a=summary

Schedule of ephemerides for Mexico

(Hugo Gallardo) - A school shedule of ephemerides for Mexico

soc-acdc

(Arthur Wolf) - ACDC citizen network

DEV: http://dev.laptop.org/git?p=projects/soc-acdc;a=summary

soc-eds

(Matthew Harrison) - External eBook data sources via Summer of Code

DEV: http://dev.laptop.org/git?p=projects/soc-eds;a=summary

soc-gtk

(Manu Cornet) - OLPC GTK+ theme and improvements via Summer of Code

DEV: http://dev.laptop.org/git?p=projects/soc-gtk;a=summary

soc-memphis

(Eduardo Silva) - Memory usage tool for developers via Summer of Code

DEV: http://dev.laptop.org/git?p=projects/soc-memphis;a=summary

soc-oepc

(Eric Astor) - One Encyclopedia Per Child tools via Summer of Code

DEV: http://dev.laptop.org/git?p=projects/soc-oepc;a=summary

tinderbox

(Chris Ball) - OLPC system tinderbox

DEV: http://dev.laptop.org/git?p=projects/tinderbox;a=summary

trac-git

(Samat Jain) - A git versioning backend for the Trac versioning system

DEV: http://dev.laptop.org/git?p=projects/trac-git;a=summary

ubuntu-xen

(Chuck Short) - Ubuntu Xen packages

DEV: http://dev.laptop.org/git?p=projects/ubuntu-xen;a=summary
DEV: http://dev.laptop.org/git?p=projects/ubuntu-xen-2.6.17;a=summary

wysiwyg

(John Resig) - In-browser WYSIWYG editor for Yellow

DEV: http://dev.laptop.org/git?p=projects/wysiwyg;a=summary

wysiwyg

Kids Blogger Tool http://wiki.laptop.org/go/Requiremientos_Para_XO
Sing up to work on this at:
http://groups.google.com/group/uruguay-XO-coordination