Difference between revisions of "Development Team/Resources"

From Sugar Labs
Jump to navigation Jump to search
m (Robot: Automated text replacement (-Sugar Code Snippets +DevelopmentTeam/Almanac/Code Snippets))
 
(22 intermediate revisions by 10 users not shown)
Line 1: Line 1:
<noinclude>{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}{{TeamHeader|DevelopmentTeam}}</noinclude>
+
<noinclude>{{TeamHeader|Development Team|roadmap_link={{Upcoming Stable Release}}/Roadmap}}</noinclude>
  
{{:DevelopmentTeam/Sugar_Architectual_Diagram}}
 
  
= Tutorials =
+
{{Note/important|Please note|See this [http://developer.sugarlabs.org/ developer documentation website] for the '''sugar-build''' development environment.}}
  
[http://wiki.laptop.org/go/Developers/Stack#Python/PyGTK PyGTK] developers will find a collection of [http://wiki.laptop.org/go/Tutorials Tutorials] available, from very simple Hello World projects to an in-depth description of the development of [http://wiki.laptop.org/go/Block_Party Block Party].
 
  
[http://wiki.laptop.org/go/Developers/Stack#OLPCGames Pygame] developers will likely want to start with:
+
'''Are you looking for [[Activity_Team/Resources|documentation on how to create Sugar Activities]]?'''
  
* [http://wiki.laptop.org/go/Game_Development_Newbies Game Development Newbies] -- general introduction
+
{{:Development Team/Sugar_Architectural_Diagram}}
* [http://wiki.laptop.org/go/Game_development_HOWTO Game development HOWTO] -- 5-minutes to your first activity in [http://wiki.laptop.org/go/Pygame Pygame]
 
  
[http://wiki.laptop.org/go/Developers/Stack#Etoys Etoys]/Smalltalk developers will want to start with [http://wiki.laptop.org/go/Smalltalk_Development_on_XO Smalltalk Development on XO].
+
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.
  
Other developers will want to read about [http://wiki.laptop.org/go/Sugarizing Sugarizing] non-Python applications.
+
== Tutorials ==
  
= Reference =
+
[[olpc:Developers/Stack#Python/PyGTK | PyGTK]] developers will find a collection of [[olpc:Tutorials |Tutorials]] available, from very simple Hello World projects to an in-depth description of the development of [[olpc:Block_Party|Block Party]].
  
* [[API Reference]] -- pointers to the various libraries' reference documentation.
+
[[olpc:Developers/Stack#OLPCGames| Pygame]] developers will likely want to start with:
 +
 
 +
* [[olpc:Game_Development_Newbies| Game Development Newbies]] -- general introduction
 +
* [[olpc:Game_development_HOWTO |Game development HOWTO]] -- 5-minutes to your first activity in [http://wiki.laptop.org/go/Pygame Pygame]
 +
 
 +
[[olpc:Developers/Stack#Etoys|Etoys]]/Smalltalk developers will want to start with [olpc:Smalltalk_Development_on_XO|Smalltalk Development on XO]].
 +
 
 +
Other developers will want to read about [[olpc:Sugarizing|Sugarizing]] non-Python applications.
 +
 
 +
== Reference ==
 +
 
 +
* http://api.sugarlabs.org/ -- pointers to the various libraries' reference documentation.
 +
* [[Development Team/Low-level Activity API|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:
 
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:
Line 24: Line 34:
 
   pydoc -p 8080
 
   pydoc -p 8080
  
then open a [[Web|Web Browser]] activity and go to the url:
+
then open a [[OLPC:Browse|Web Browser]] activity and go to the url:
  
 
   http://localhost:8080/
 
   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).
 
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 [[:Category:Developers | Developer's Category]] collects everything in the wiki that's been tagged as pertaining to developers (it's a bit hard to navigate)
 
* [[DevelopmentTeam/Almanac/Code Snippets]] a few canonical code fragments that may be of use when coding in PyGTK
 
  
 
== Beginner's tools ==
 
== Beginner's tools ==
Line 39: Line 44:
 
Sugar section of the FLOSS manual for Sugar
 
Sugar section of the FLOSS manual for Sugar
 
(http://en.flossmanuals.net/Sugar/Overview).  
 
(http://en.flossmanuals.net/Sugar/Overview).  
 
  
 
# The Byte of Python (http://www.swaroopch.com/notes/Python)
 
# The Byte of Python (http://www.swaroopch.com/notes/Python)
Line 49: Line 53:
 
# Snake Wrangling for Kids (http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/)
 
# Snake Wrangling for Kids (http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/)
 
# PyGame (scattered throughout the site)  (http://www.pygame.org/)
 
# 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
 
Please feel free to add other suggested resources to the ones already there and to add some
Line 56: Line 59:
 
== FAQ ==
 
== FAQ ==
  
The [[Developers/FAQ|Developer's FAQ]] is large enough to merit its own page in the Developer's manual.
+
The [[OLPC:Developers/FAQ]] is large enough to merit its own page in the Developer's manual.
  
= Contributing =
+
== 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.
 
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.
+
[[Category:Development Team]]
 
+
[[Category:Resource]]
== Wade's handy links list ==
 
 
 
Pulling the source to an existing activity from Git:
 
 
 
* [[Git]]
 
 
 
Creating a new activity:
 
 
 
* [[Sugar_Activity_Tutorial]]
 
* [[DevelopmentTeam/Almanac/Code_Snippets]]
 
* http://dev.laptop.org/~cscott/joyride-1477-api/
 
 
 
For PyGTK activities:
 
 
 
* [[PyGTK]]
 
* [[PyGTK/Hello_World_Tutorial]]
 
* [[Beyond_Hello_World]]
 
* http://www.pygtk.org/docs/pygtk/index.html
 
 
 
For PyGame activities:
 
 
 
* [[Pygame]]
 
* http://pygame.org/docs/ref/index.html
 
 
 
For video playback using gstreamer:
 
 
 
* http://pygstdocs.berlios.de/pygst-reference/index.html
 
 
 
For supporting collaboration:
 
 
 
* [[Shared Sugar Activities]]
 
 
 
Submitting to OLPC:
 
 
 
* [[Project hosting]]
 
* [[Importing your project]]
 
 
 
[[Developers/Communication|Previous]] [[Developers/FAQ|Next]]
 
 
 
 
 
[[Category:DevelopmentTeam]]
 

Latest revision as of 16:33, 22 July 2014

Team Home   ·   Join   ·   Contacts   ·   Resources   ·   FAQ   ·   Roadmap   ·   To Do   ·   Meetings


Notification.png
Please note
See this developer documentation website for the sugar-build development environment.


Are you looking for documentation on how to create Sugar Activities?

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:

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

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

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

  1. The Byte of Python (http://www.swaroopch.com/notes/Python)
  2. How to Think Like a Computer Scientist: Learning with Python, 2nd edition (http://openbookproject.net/thinkcs/python2e.php)
  3. Python for Fun (http://www.openbookproject.net/py4fun/)
  4. Python Bibliotheca (http://www.openbookproject.net/pybiblio/)
  5. Dive into Python (http://diveintopython.org/)
  6. Hands-on Python Tutorial (http://www.cs.luc.edu/~anh/python/hands-on/)
  7. Snake Wrangling for Kids (http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/)
  8. 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.