Difference between revisions of "Development Team/Resources"
m (moved Development Team/Resources to Walter is a wanker 12/Resources: Walter is a wanker) |
m (moved Walter is a wanker 12/Resources to Development Team/Resources over redirect: revert) |
(No difference)
|
Revision as of 20:33, 23 February 2010
Regular X applications |
Non-Python Sugar Activities (Etoys, Simcity, Mono, etc.) |
Sugar shell (desktop window, panel, Journal) |
Python Sugar Activities
| ||||
Sugar toolkit (Python-only)
| |||||||
Datastore service |
Presence service
| ||||||
Matchbox window manager
(We are in the process of switching to Metacity) | |||||||
GNOME-ish Linux desktop
X11, HAL, D-Bus, NetworkManager, GConf, Telepathy, etc |
Sugar is built on top of the GNU/Linux desktop: GTK, X11, D-Bus, Network Manager, Gconf, Telepthay, etc. We use the Matchbox window manager (but are in the process of switching to Metacity). Sugar provides a data-storage service and a presence service that are accessed through D-Bus, thus Sugar Activities can be coded in any language. The majority are written in Python, which takes advantage of binding in the Sugar-Toolkit. The Sugar shell manages the desktop and the Journal.
Tutorials
PyGTK developers will find a collection of Tutorials available, from very simple Hello World projects to an in-depth description of the development of Block Party.
Pygame developers will likely want to start with:
- Game Development Newbies -- general introduction
- Game development HOWTO -- 5-minutes to your first activity in Pygame
Etoys/Smalltalk developers will want to start with [olpc:Smalltalk_Development_on_XO|Smalltalk Development on XO]].
Other developers will want to read about Sugarizing non-Python applications.
Reference
- http://api.sugarlabs.org/ -- pointers to the various libraries' reference documentation.
- Low-level Activity API -- how to write Sugar activities without Python
- Development Team/Release -- Sugar platform release process
You can also run the pydoc script on an XO in order to have browseable pydoc documentation locally. To do this, open a Terminal activity and run:
pydoc -p 8080
then open a Web Browser activity and go to the url:
http://localhost:8080/
to view the documentation. This approach works best with Python-coded libraries which have spent some time on their docstrings (and generally requires that you know English, as most docstrings are written in English).
Resources
- The Template:Developers linkbar (just above) can be placed on any wiki page by inserting this text {{:Template:Developers}} Put on your project's wiki page to help you and collaborators while researching and documenting the code base.
- Development Team#Subpages shows the pages under the Development Team branch on the wiki.
- The Category:Developer collects everything in the wiki that's been tagged as pertaining to developers (it's a bit hard to navigate)
- Development Team/Almanac/Code Snippets a few canonical code fragments that may be of use when coding in PyGTK
Beginner's tools
Link to Andrew's course in the Overview chapter of the Extending Sugar section of the FLOSS manual for Sugar (http://en.flossmanuals.net/Sugar/Overview).
- The Byte of Python (http://www.swaroopch.com/notes/Python)
- How to Think Like a Computer Scientist: Learning with Python, 2nd edition (http://openbookproject.net/thinkcs/python2e.php)
- Python for Fun (http://www.openbookproject.net/py4fun/)
- Python Bibliotheca (http://www.openbookproject.net/pybiblio/)
- Dive into Python (http://diveintopython.org/)
- Hands-on Python Tutorial (http://www.cs.luc.edu/~anh/python/hands-on/)
- Snake Wrangling for Kids (http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/)
- PyGame (scattered throughout the site) (http://www.pygame.org/)
Please feel free to add other suggested resources to the ones already there and to add some feedback, e.g., good for beginners/experts, etc.
FAQ
The OLPC:Developers/FAQ is large enough to merit its own page in the Developer's manual.
Contributing
As with most Open Source software projects, we have difficulties with documentation. We are very interested in finding people interested in documenting the system. If you are too shy about your coding skills to write code, helping us document the code-base would be an amazing and valuable contribution.
Helping organize the wiki (the web site you are currently reading) to better document the platform and development process would also be very helpful.
Wade's handy links list
Pulling the source to an existing activity from Git:
Creating a new activity:
- OLPC:Activity_tutorial
- Development Team/Almanac/Code_Snippets
- http://dev.laptop.org/~cscott/joyride-1477-api/
- http://git.sugarlabs.org/projects/hello-world
For PyGTK activities:
- OLPC:PyGTK
- OLPC:PyGTK/Hello_World_Tutorial
- OLPC:Beyond_Hello_World
- http://www.pygtk.org/docs/pygtk/index.html
For PyGame activities:
For video playback using gstreamer:
For supporting collaboration:
Submitting to OLPC: