Developers/Getting Started: Difference between revisions

From OLPC
Jump to navigation Jump to search
(Sketch out a developer's "Getting Started" page.)
 
(Added translation templates)
 
(12 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Developers}}
This document attempts to guide you through the first steps towards using your new XO as a development platform, and to point you to resources for project ideas and programming APIs.
{{Translations}}


This document attempts to guide you through the first steps towards using your new XO as a development platform, and to point you to resources for project ideas and programming APIs.
== Step 1: Request a developer key ==
The XO contains hardware and software theft-deterrence features, which sometimes get in the way of a prospective hardware or software hacker. The first step in joining the developer community is to request a developer key to allow you to turn these off if needed. Depending on where you are in the world, getting your developer key may take up to two weeks (!) so putting in the request should be the absolute first thing you do. There are many things you can hack around with even without a developer key, but you might as well get the process started so it won't be an impediment when you need one.


== Request a developer key ==
(Since the developer key turns off the theft-deterrence features, a deployment needs to verify that your laptop has not been reported stolen before granting the key. Depending on the deployment and its communications infrastructure, this could take a while, and we try to set the "wait time" to an appropriate interval for each deployment. If you feel like the wait is excessive, please email help at laptop.org -- but try not to burden them unduly.)


If your XO laptop has security enabled, request your [[developer key]] so that it will be promptly available in the future should you ever want it, for example, to help improve development builds. (Why use a developer key? See our [[developer key philosophy|philosophy]] page.)
Instructions for requesting and installing a developer key are at [[Activation and developer keys]] on our wiki.


== Communicate! (by mail, irc, etc.) ==
When you've received your developer key, there are two ways you can use it:
# You can invoke 'disable-security' from the Open Firmware prompt to skip all key checking (until you invoke 'enable-security' again). This also turns off "pretty boot" allowing you to see all the start up messages when you boot.
# You can install your developer key in /security/develop.sig, where it can be managed with the Security control panel (<trac>6428</trac>).


See [[Developers/Communication]].
Although the choice is up to you, we hope you'll chose the latter option, since that exercises the key-checking and "pretty boot" code. Although we hope these never break, bugs do happen, and having our developers regularly testing this code ensures that problems are quickly discovered and fixed. Better you finding the bugs than some poor 6-year-old in Peru!


== Find a project ==
The Security control panel (will) also let you easily enable/disable the 'unlocking' performed by the developer key, so you can test your code in "secured" mode if necessary. (You can do the same with 'enable-security' from the Open Firmware prompt, but there's less safety checking performed, so it's easier to inadvertently lock yourself out of your machine that way.)


The easiest way to find a project to work on is to "dance around the edges", looking at existing projects that people are working on, observing how development is carried out, learning from the development that other people are doing, and identifying significant bugs or missing features that aren't getting attention. Soon enough you'll find a number of ways to contribute. Here are some hints on how you might get started:
== Step 2: Join some mailing lists! ==


* [[Developers/Communication|Communication]]: Watch our communication on IRC and on the mailing lists. Figure out what we're working on, what are our current challenges, watch how we solve specific issues and learn how that fix was made.
The most important mailing list at OLPC is the [http://lists.laptop.org/listinfo/devel devel] list; it is the canonical list for all development work. If you're uncertain where your question or patches should go, devel is not a bad choice. The devel list is pretty high volume, though, so not everyone reads every post, which sometimes means that your question or patch might get lost in the noise. There are a number of more focused lists where you might be able to get more attention and/or avoid drowning in the flood of posts:
* Testing: take our latest development software image, install it on your XO, look for bugs and issues. Report those issues as bugs, attempt to fix them, watch how they are solved by others and attempt to understand the solution and the processes used to get the solution shipped in our software.
* [http://lists.laptop.org/listinfo/devel-announce devel-announce] is a low-volume list for announcement of interest to developers: typically new code releases and testing instructions. Not for general discussion!
* Trac: http://dev.laptop.org is a gold-mine for interesting looking projects and unsolved bugs. It also contains many stale tickets which should be closed or reclassified. Looking for projects or starting a cleanup effort will probably result in you coming across something of interest.
* [http://lists.laptop.org/listinfo/sugar sugar] is the primary list for high-level user interface development.
* Possibly stale, [[Projects and proposals]] and related pages list some interesting projects.
* [http://lists.laptop.org/listinfo/server-devel server-devel] is for school server development
* [http://lists.laptop.org/listinfo/support-gang support-gang] is where all the helpful people hang out
* [http://lists.laptop.org/listinfo/security security] is for discussion of linux and bitfrost security, activity isolation, 'rainbow' (our security subsystem), and theft-deterrence measures.
* And see http://lists.laptop.org/listinfo/ for even more!


== Report some bugs ==
Click on any of the links above to subscribe to the list or view archives. In most cases you must be subscribed to a list in order to post to it. Please do take a moment to review the archives of a list before posting, to verify that your question or patch is on topic.
You'll probably find some stuff that doesn't work right. Our [[Reporting bugs]] page tells how to let us know about it. If you're in a hard-core mood, our bug-reporting site is http://dev.laptop.org (we use the Trac bug-tracking tool), and most of our source code can be found at http://dev.laptop.org/git. Have at it!


== Step 3: Find a project ==
== Have fun! ==
All work and no fun makes Jack a dull boy. Hook up with [[XO roadshows]], contribute to a [[Presentations|developer miniconference]], write yourself a [[Profiles|profile]], and have yourself some fun. If you can think of something it would be great for us to have, go ahead and make it. One Laptop per Child relies on thriving local communities to succeed.
You may already have in mind something you'd like to hack on. If you need ideas, though, we've begun trying to keep a list of projects we'd like help on, or like to see someone tackle:
* You're reading a wiki! That means that you can help editing this page (or others on this site) and keeping information up to date or contributing helpful articles. That's always helpful. You can start with this page and flesh it out -- but try to keep it relatively short so we don't drown newcomers.
* We could use more "how to" and "tutorial" articles. There are a number listed under [[Tutorials]]; we can use more! Also, fixes to tutorials as they drift out of date are always welcome.
* Lots more projects are listed at [[Projects and proposals]] and related pages.
* The mailing lists are always a good source of ideas as well: find the list that best matches what you'd like to work on, and ask if anyone needs some help. Be aware that offers of help greatly out-number actual contributions of helpful code, so if you don't seem to be getting attention, try including some code -- even simple proofs of concept are useful as a way to focus attention on specifics. But, on the other hand, beware of spending 6 months working on your beautiful idea in a cave without talking to anyone: you may find that when you finally unveil your masterpiece that it doesn't actually fit into OLPC's larger plan for the platform. Seek the balance between discussion with the larger community and private hacking to flesh out specifics.
* This page is relatively "code hacker" centric, but there are lots of opportunities for less-coding sorts of help, from [http://lists.laptop.org/listinfo/support-gang support-gang], to library content, to educator groups.


[[Category:Participate]]
== Step 4: Have fun! ==
All work and no fun makes Jack a dull boy. Hook up with [[OLPC meetups|XO roadshows]], contribute to a [[Presentations|developer miniconference]], write yourself a [[Profiles|profile]], and have yourself some fun. If you can think of something it would be great for us to have, go ahead and make it. One Laptop per Child relies on thriving local communities to succeed.

Latest revision as of 04:52, 22 May 2011

  english | Copy "{{subst:requesttranslation}}" to español HowTo [ID# 256293]  +/-  


This document attempts to guide you through the first steps towards using your new XO as a development platform, and to point you to resources for project ideas and programming APIs.

Request a developer key

If your XO laptop has security enabled, request your developer key so that it will be promptly available in the future should you ever want it, for example, to help improve development builds. (Why use a developer key? See our philosophy page.)

Communicate! (by mail, irc, etc.)

See Developers/Communication.

Find a project

The easiest way to find a project to work on is to "dance around the edges", looking at existing projects that people are working on, observing how development is carried out, learning from the development that other people are doing, and identifying significant bugs or missing features that aren't getting attention. Soon enough you'll find a number of ways to contribute. Here are some hints on how you might get started:

  • Communication: Watch our communication on IRC and on the mailing lists. Figure out what we're working on, what are our current challenges, watch how we solve specific issues and learn how that fix was made.
  • Testing: take our latest development software image, install it on your XO, look for bugs and issues. Report those issues as bugs, attempt to fix them, watch how they are solved by others and attempt to understand the solution and the processes used to get the solution shipped in our software.
  • Trac: http://dev.laptop.org is a gold-mine for interesting looking projects and unsolved bugs. It also contains many stale tickets which should be closed or reclassified. Looking for projects or starting a cleanup effort will probably result in you coming across something of interest.
  • Possibly stale, Projects and proposals and related pages list some interesting projects.

Report some bugs

You'll probably find some stuff that doesn't work right. Our Reporting bugs page tells how to let us know about it. If you're in a hard-core mood, our bug-reporting site is http://dev.laptop.org (we use the Trac bug-tracking tool), and most of our source code can be found at http://dev.laptop.org/git. Have at it!

Have fun!

All work and no fun makes Jack a dull boy. Hook up with XO roadshows, contribute to a developer miniconference, write yourself a profile, and have yourself some fun. If you can think of something it would be great for us to have, go ahead and make it. One Laptop per Child relies on thriving local communities to succeed.