Software projects: Difference between revisions

From OLPC
Jump to navigation Jump to search
Line 62: Line 62:
===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.
*AbiWord runs in the sugar shell
* This is normal PyGtk style GtkWidget. It's many features are document on the AbiWord wiki [http://www.abisource.com/twiki/bin/view/Abiword/PyAbiWord]
*It has a minimal interface with a custom toolbar
* The python rich text editor forms the core of the write activity.
*A new clipart toolbar has been implemented that lets kids drag and drop pictures into their documents
*Made Abiword be embeddable as a Firefox widget
* The use of the python widget is very
* 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.
* Make Abiword be embeddable as a Firefox widget.
* Make write use the Journal.
* drag images out of write and onto the sugar frame.
* Make the insert table widget use the hippo toolbar in a nice way.


===What's left to do...===
===What's left to do...===

Revision as of 02:58, 24 March 2007

Projects and proposals    +/-
Content ideas Content projects
Hardware ideas Hardware projects
Software ideas Software projects

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.

Template:TOC

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)

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.

  • Lead Developer: Collabora
  • Communications Channels: ??
  • Current Needs: Documentation, Sample Code, Sugar Integration (Dan Williams)

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.

  • Lead Developer: ??
  • Communications Channels: ??
  • Current Needs: Documentation, Sample Code, Integration Work

BitFrost (Security)

BitFrost 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.

AbiWord (Collaborative Word Processor)

Screenshot of AbiWord inside Sugar

Activity4.png AbiWord is an Open Source word processor that uses GTK as its GUI.

The current focus is on a browser-based Abiword [1].

The AbiWord project has financed an AbiWord Summer of Code project to produce a version with a user interface tailored to the OLPC hardware and the typical OLPC user. The following is the outcome of that project:

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.
  • This is normal PyGtk style GtkWidget. It's many features are document on the AbiWord wiki [2]
  • The python rich text editor forms the core of the write activity.
  • The use of the python widget is very
  • 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.
  • Make Abiword be embeddable as a Firefox widget.
  • Make write use the Journal.
  • drag images out of write and onto the sugar frame.
  • Make the insert table widget use the hippo toolbar in a nice way.

What's left to do...

  • Polish (make clipart bar look nicer, have it look for clipart somewhere intelligently)
  • Finish implementing table menu button
  • Integrate AbiCollab with Sugar shell
  • Use clipart bar to add drawings drawing app
  • Integrate the work being done on the Journal activity with Abiword applicable.
DEV:  http://dev.laptop.org/git.do?p=projects/abiword-olpc;a=summary
DEV:  http://dev.laptop.org/git.do?p=projects/abiword-embed;a=summary
READ: http://www.snowedin.net/ideas/AbiWord+on+OLPC
READ: http://www.snowedin.net/summerofcode/

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 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 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 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.

DEV:  http://dev.laptop.org/git.do?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)

(Manusheel Gupta) - OLPC PDF viewer

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

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.

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.do?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.do?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


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.do?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.

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.do?p=projects/linux-mm-cc;a=summary

linuxbios

(Richard Smith) - no description available

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

olpcflash

(Richard Smith) - no description available

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

pyltc

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

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

rgbpaint

(Mark Tyler) - Paint program

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

soc-acdc

(Arthur Wolf) - ACDC citizen network

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

soc-eds

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

DEV: http://dev.laptop.org/git.do?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.do?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.do?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.do?p=projects/soc-oepc;a=summary

tinderbox

(Chris Ball) - OLPC system tinderbox

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

trac-git

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

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

ubuntu-xen

(Chuck Short) - Ubuntu Xen packages

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

wysiwyg

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

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