290 likes | 422 Views
Programming for Children. Edward Mokurai Cherlin Earth Treasury October 28, 2007. Author. Edward Mokurai Cherlin גרשון בן יסעף Эдуард Георгеевич Черлын 장영구/ 張永久 法雲默雷 / धर्ममेघशब्दगर्ज. Experience. Mathematician Peace Corps, Korea Buddhist training, Japan, US, UK
E N D
Programming for Children • Edward Mokurai Cherlin • Earth Treasury • October 28, 2007
Author • Edward Mokurai Cherlin • גרשון בן יסעף • Эдуард Георгеевич Черлын • 장영구/張永久 • 法雲默雷/धर्ममेघशब्दगर्ज
Experience • Mathematician • Peace Corps, Korea • Buddhist training, Japan, US, UK • Self-taught, Computer Science • High-tech market researcher • Free Software development • Senior Tech Writer • Simputer Evangelist • MBA Student, Presidio SOM • Founder, Earth Treasury
Origins • Inspired by Simputer from Bangalore • MIT Asian Media Lab • MIT $100 Laptop project • Spun off as non-profit, One Laptop Per Child • Funding from Google, Red Hat, eBay, others • Design help from MIT, Google, Red Hat, AMD, Quanta, Free Software community, others
One Laptop Per Child • Education program, not laptop program • Designed to meet stringent requirements of poor children • Not dependent on electric system • Usable by illiterates • No moving parts • Extremely rugged, extremely green
What We Need • For each language • Text-to-speech • Speech recognition • Content • For each standard school subject • Domain-specific software; the tools of the trade • Free textbooks integrated with software
Content • Schools not on Internet will have local copy of Wikipedia in English and local languages. • Children's books • Literature and History • Math and Science • Selection of other freely licensed materials
Extra Content • Earth Treasury proposes to link schools with laptops, and teach the children how to go into business together. • Genuine Free Market Economics, and how to get it • Business skills • Dealing with governments • Trade law • etc.
Hardware • No moving parts; flash storage • 3 USB 2, sound, SD card slot • Screen rotates to tablet mode • Camera built in; microscope attachment • Wireless mesh networking • Daylight readable screen, 1200 x 900 • Extremely low power
Software • Red Hat Fedora Rawhide 7 Linux • Sugar User Interface • Activities designed for children • Smalltalk, Python, Perl, Forth, other languages • SCIM (Smart Common Input Method) • Pango and Cairo (Unicode screen and printer rendering)
Marketing • Quanta requires orders for 5 million units to start manufacturing at $188 • $1 profit per unit for OLPC • Minimum order, 2006: 1 million units @ $189 • Minimum order, 2Q 2007: ¼ million units • Minimum order, 4Q 2007: 100 @ $299 • Someday, retail.
Hot Prospects • Nigeria • Peru • Rwanda • Thailand • Uruguay • Argentina • Brazil • Cambodia • Ethiopia • Libya • Mexico
Initial Languages • Igbo • Kinyarwanda • Portuguese Portuguesa • Spanish Español Castellano • Thai ภาษาไทย • Yorùbá • Amharic አማርኛ • Arabic عربي • Cambodian ភាសាខ្មែរ • English • French Français • Hausa هَوْسَ
Linux Localization • Done by any language community • Provided to whole community at no cost • More languages than Macintosh or Windows • Almost all software has separate .po file of string data • Documentation in man, info, help files
XO Programming Languages • Squeak dialect of Smalltalk provided in UI as eToys • Squeak includes Logo capabilities • Python used to create UI and apps • Perl for scripting • Forth for low-level programming • Other languages can be installed: LISP/Scheme, APL, C, C++, etc.
Open FirmWare • Forth programming language • Equivalent of BIOS; created at Sun • Press game key while booting, then Esc (top left) • At ok prompt, you can type test-all to test all of the hardware interfaces • More information at http://wiki.laptop.org/go/Open_Firmware
Activities, Not Apps • Packaged as resource bundle • Full screen • Sharable • Instance per file • Instant resume
Building Sugar Activities • http://wiki.laptop.org/go/Sugar • Install Sugar on Linux, Mac, or Windows • Read the human interaction guidelines • Get an overview of the architecture • Check out the code snippets library • Understanding Sugar code organization • Write your own activity
Human Interaction Guidelines • Users are young, inexperienced, international • 256M RAM, no swap; write efficient code. • Make everything simple and discoverable. • Security is vital for the children. • Adapt to different screen modes, network states. • Children must be able to recover from errors easily.
Architecture • See http://wiki.laptop.org/go/API • Resources include: • Third-party applications • Python scripts • Libraries
Code Snippets Library • Icons • Toolbar • Files • Images • Audio • Processes • Garbage collection
Code Organization • Launch Sugar, Start Sugar shell, Initialize • Libraries, services, and utilities • Network Manager • User ID and colors • Main loop • Shutdown • http://wiki.laptop.org/go/Understanding_sugar_code
Write Activity • This is normal Python programming, with some Sugar-specific startup and shutdown. • Keep human interface guidelines in mind. • Use resources provided as needed. • No code bloat.
Sugarizing Non-Python Apps • Very small amount of interface code required to run within Sugar. • See eToys source code for example. • Full Sugarizing requires support for sharing, other Sugar capabilities
References • OLPC http://laptop.org/ • OLPC Wiki http://wiki.laptop.org/ • On the Wiki, search for Sugar, eToys, Activities, OFW, Software, Hardware, or any other topic of interest • XO Live CD: http://wiki.laptop.org/go/LiveCd • Earth Treasury http://wiki.laptop.org/go/Earth_Treasury