User:Mchua/Braindumps/Development

From OLPC

Jump to: navigation, search

Contents

Individual slides

  1. Obligatory Intro Slide
  2. What we're going to talk about
  3. Why develop on the XO?
  4. Emulation: Git yerself a system
  5. Existing activities
  6. The XO is weird: things to get used to
  7. Begin the wonderful whirlwind tour of Activity platforms!
  8. Python
  9. Pippy
  10. Pygame and pyGTK
  11. Etoys and Squeak
  12. Web-based
  13. i386 executables
  14. Core components
  15. Development tools we use
  16. How to get started
  17. Q&A

Introduction

XO Software Development 101

Your software + millions of kids = awesome.

Mel Chua, 4/26/08

What we're going to talk about

  • Why develop on the XO?
  • Emulation: Git yerself a system
  • Existing activities
  • The XO is weird: things to get used to
  • Begin the wonderful whirlwind tour of Activity platforms! (Python, Pippy, Pygame/PyGTK, Etoys, Squeak, The Interwebs, i386 executables)
  • Developing on the core components
  • Tools we use
  • How to get started
  • Q&A

Why develop on the XO?

  1. Learn something. Maybe a different way of thinking, even.
  2. Awesome people.
  3. A chance to change the world.
  4. It's open-source. Heck, you may have done it already.
  5. Because of these folks.
Porto Alegre
OLPC Brazil
Galadima
OLPC Nigeria
Ban Samkha
OLPC Thailand
Porto Alegre is the capital city of Rio Grande do Sul, Brazil
Galadima is a hamlet in Abuja, Nigeria
File:Hiking02.jpg
Ban Samkha is a rural village in northern Thailand
Cardal
OLPC Uruguay
Arahuay
OLPC Peru
Khairat school
OLPC India
Villa Cardal is a small town in Uruguay
Arahuay is a small town in Peru
Khairat is a remote village in Maharashtra, India

Emulation

Linux

Ubuntu

Rating: Incredibly easy.

  1. Open Synaptic (System > Administration > Synaptic package manager)
  2. Search for "sugar"
  3. Install sugar, sugar-emulator, sugar-activities, and anything else you want

Thanks to Jani Monoses, who made the .deb packages and got them included in the Ubuntu sources!

Debian-based

Rating: Pretty darn easy.

Open up a terminal and add to your sources list...

$ sudo -s
# echo "deb http://ppa.launchpad.net/jani/ubuntu gutsy main" > /etc/apt/sources.list.d/sugar.list
# apt-get update

Then apt-get as root.

# apt-get install sugar sugar-emulator sugar-activities

RPM-based

Rating: Mildly painful, but probably getting better soon.

You can either use an emulator (moderately easy) or run sugar-jhbuild itself (hard).

Windows

Rating: Painless, but less flexible and sometimes slow.

Use the QEMU all-in-one zip-file installer - this easy install package was created by Mitra, a high school student from Illinois.

OS X

Rating: Tricky.

Emulation is currently the only sane way to go.

Existing activities

There are a lot - see Activities for a full list.

Some notables I'd like to point out:

Things to get (re)used to

  • Memory counts when you have 256MB. Memory leaks hurt.
  • Dual mode display - make things pretty in black and white.
  • Don't assume you have internet...
  • ...but we do have mesh!
  • Design for collaboration.
  • Security is a big deal, so file access is hard.
  • Design for internationalization.
  • Analog input
  • Camera
  • Tablet mode with game pads

Activity platforms

  1. Python
  2. Pippy
  3. Pygame and pyGTK
  4. Etoys and Squeak
  5. Web-based
  6. i386 executables

User:Mchua/Braindumps/Development/8 User:Mchua/Braindumps/Development/9 User:Mchua/Braindumps/Development/10 User:Mchua/Braindumps/Development/11 User:Mchua/Braindumps/Development/12 User:Mchua/Braindumps/Development/13 User:Mchua/Braindumps/Development/14

Development tools we use

  1. Make a wiki account
  2. Join the freenode channel #olpc
  3. Pick a project...

It deviates from there, but most people will make activities with Pygame for starters, so that's...

  1. Get Python
  2. Learn Python
  3. Get Pygame
  4. Learn Pygame
  5. Make a game in Pygame
  6. Make it an activity

User:Mchua/Braindumps/Development/17

Personal tools
  • Log in
  • Login with OpenID
About OLPC
About the laptop
About the tablet
Projects
OLPC wiki
Toolbox
In other languages