Talk:Contributors program archive

From OLPC
Revision as of 15:08, 30 January 2008 by Mchua (talk | contribs) (Community driven implementation proposal)
Jump to: navigation, search

Please add reference to Development Wiki

Perhaps you could say something like this:

If your interest is primarily on doing some systems level or applications level coding, then join one of the projects on our Hosting Wiki.

photos

You might want to add a link to this photo gallery. It shows how one developer set it up inside an old 286 case. There appear to be two boards in the photos but one is a photo explaining all the interface connectors.

http://daemons.gr/gallery/v/100laptop/

Hosting Wiki moved - please fix

The hosting wiki has moved to another machine. Please fix the link on the main page. I fixed it above. sakai

LAPTOP.ORG PEOPLE, please fix hosting link!!!

done Walter 14:16, 7 July 2006 (EDT)


Hardware Developers' Program

Are there any intellectual property restrictions to a private firm beginning production of these machines? Are the details of the Hardware specification available in machine-readable format?

I would like to start a Production Commons to begin independent development of this hardware (including modified versions) as soon as possible. Are the design specifications Free as in Freedom so that we may proceed? Ownut

BIOS section should be revised for LinuxBIOS

This page should contain a link to Upgrading_to_LinuxBIOS rather than saying that people shouldn't mess with their BIOSes.

SELinux

SELinux vs 0-day attacks is uninteresting. Attacks which would normally succeed will still succeed under SELinux control, with limited privileges; some possibilities:

  • Burn CPU until power goes out (but it dies as well)
  • Kill other user processes (i.e. the Web browser being used to take a test)
  • Infect the user's account (i.e. if we break in through Firefox or something) and start on every log-in
  • Destroy user data
  • Constantly write to flash, until it starts to suffer infant mortality (several weeks/months of this maybe, but still bad; plus we're killing power)

Deploying other enhancements like stronger address randomization and stack smash protection will help this in general. Ptmalloc (in glibc) is hardened against heap corruption and double-free() already.

What you can use SELinux for is execmem,execmod,execheap,execstack protections to control memory execution; but this won't work entirely without an NX bit. Port the emulation from Exec Shield (weak, stack only--usually, sometimes no protection) or PaX (Strong, fine-grained per-page, but more CPU intensive and likely to be a pain due to the very few TLB entries); or run full PaX and possibly GrSecurity.

Background

s/Machine are also being allocated/Machines are also being allocated/

Goals

s/and most easily done/and is most easily done/

More Talk

Please link to the USB ethernet adaptors page in the paragraph where USB ethernet adaptors are mentioned. -- probono


Regarding the serial cable, please do `s/DB9/DE9/`, and also state whether the connector is Male or Female. A DB9 (D-shell, size B, 9 pins) would be the size of a Parellel port... as opposed to DE9 (D-shell, size E, 9 pins) which is the size of a VGA connector (aka DE15). Sladen 09:33, 31 May 2006 (EDT)

done Walter 17:10, 13 June 2006 (EDT)

I wondered what FOSS means and went to http://www.yahoo.com and looked it up.

It means Free and Open Source Software.

http://en.wikipedia.org/wiki/FOSS


I found the reference to OOM killer obscure. It seems to refer to "Out of Memory Killer," but I don't know what will make it less naive, more sophisticated for OLPC needs.

Details at:

http://linux-mm.org/OOM_Killer http://kerneltrap.org/node/142

Fbkintanar 00:20, 13 June 2006 (EDT)

Right now, the heuristic used by the kernel to choose what to shoot has no information provided by user space: it makes some guesses. Something much better is clearly possible. - jg

I'd say the better thing is to set vm.overcommit_memory=0 and be done with it. - Slamb 12:17, 5 August 2006 (EDT)

"IPv6 support, and service discovery, which are very important to us." I am interested in helping with IPv6, even if just testing for now. Any suggestions where to get started? Specifically, is there any ongoing effort to address service discovery? Is there any interest in instrumenting the stack for systems management? Please point me to an appropriate place, if this is off topic.

Fbkintanar 00:20, 13 June 2006 (EDT)

I think both Marcelo and our SOC student have interest in the stack area.

We're using the Avahi library to do mdns/zeroconf stuff. You can test it on IPv6, and there are missing pieces to connect it with dns for higher scaling. Get in touch with blizzard. -jg


The distribution of the boards with serial numbers on them resonated with an art project which is on the internet.

http://www.autonomousorange.com/EN/index.html


In the Background section is the following.

..., which is aimed at individual FOSS developers or research organizations.

Yet in the How to apply section is the following.

3. Employer

Could you please consider rewording this to say

3. Employer (if any)

or to

3. Employer (if this application is related to any employment you may have)

as at present it does provide the possible interpretation that an applicant must have an employer and that the employer is involved in the application.

I feel that this is important as otherwise the project could come by custom and practice to have a "not representing an organization" discrimination ambience.

fixed. Thanks.


Ideas to Extend Developers Program

Some of these ideas pertain more to a grassroots organization than the OLPC NGO.

Engineers in developing nations need more financial incentives to participate in Open Source projects than engineers in the developing world require (often none), typically due to the financial pressures placed on them by their families. We need to convince both student developers and their teachers that they should switch their academic focus from J2EE to Python.

Benefits for Core Developers:

  • Certificate from an internationally recognized technical university -- ideally MIT.
    • Other possibilities are the MIT Media Lab or Open Source Lab at Oregon State. Certificates are a big deal in the developing world.
    • Certificates could be based on amount of code contributed to dev.laptop.org, participation in code reviews, hardware development etc.
  • Discounted internet access and possibly provide extra UPS -- this benefit would vary country by country and a grassroots organization would have to coordinate it.
  • Discounted or free examinations for related IT certifications for accomplished developers
    • Red Hat Certified Engineer (RHCE)
    • A Python programming certification -- I know this doesn't exist but OLPC is a good enough reason to start one
  • Internships -- We intend to offer internships at OLPC Nepal but this may not be feasible in a country without an active OLPC organization.

Events to Stimulate Interest in OLPC


  • Regional and international events to stimulate interest in development, should emphasize commercial value of skills learned from working on OLPC, for example: "learn Python and you could eventually work for Google, Red Hat, etc."
    • Regional and national programming contests with significant prize money, for example in Nepal $2000 USD would be a substantial prize and huge incentive
      • Separate contests for Activity Development, hardware development, and power systems development, could be organized similar to CSIDC
      • Pie-in-the-sky idea -- regional Google Summer of Code style summer camps focused exclusivelyon OLPC
    • Regional or national programming hackfests and sprints

-- User:Berrybw

poor firmware/filesystem update info

It's not really clear what version I should be using for what purpose. I'm guessing that some revisions are best for app development, others best for sugar development, and a few will brick the machine. The wiki doesn't even have a changelog. According to the tinderbox data, which looks too awful to really believe (broken script?), all the recent versions are very bad.

I got build 239 with the B2. I was about to update to that when I noticed I already had it. Is that about the best for app development?

A version of gcc with -mcpu=geode would be good. (kids should have it too BTW)

AlbertCahalan 01:08, 9 March 2007 (EST)

Article is now linked from sidebar. Cleanup needed.

The article is now liked from the sidebar, dramatically increasing its visibility. Thus it needs cleanup. Until a moment ago, it didn't have an intro paragraph. It was written before sugar-jhbuild existed, and so only talks about emulation. The hardware release notes linked to are for BT-2. Etc. Basically, this seems an "old and moldy" page which has now gone high profile, and so needs work. MitchellNCharity 00:25, 17 August 2007 (EDT)

Fold into the Developer's Handbook, focus this page on its topic

This page is rapidly molding away to obsolescence.

My intention is to make the sidebar link to the Developer's handbook. This page, then will be solely about the actual "Developer's Program", the program that gives access to hardware and project support services.

A fine plan. We're also revisiting the developers program process, to make that more transparent and share the vetting process and the project ideas it generates with the community.

The hardware build discussion stuff will likely move to a separate page (e.g. Hardware or Hardware/Prototypes). The general introduction stuff should be using the general introduction to the machine, figure out where that is...

Perhaps a page of OLPC:getting started?

I'll likely be working on this on Wednesday, so if you have an objection, make it soon and loud. I'm guessing I'll need an admin to do the actual side-bar changes.

True enough. We need more wiki admins... feel free to nominate the good editors you know. adminship is no big deal; it's just a way to help everyone edit effectively. --Sj talk to me 19:39, 24 December 2007 (EST)

Community driven implementation proposal

The current infrastructure for the devel program (in terms of getting machines) isn't a long-term sustainable thing, especially given the bottlenecks already occurring and the growth rate we're experiencing. SJ has put forth a proposal for a community-driven implementation of "developer's program" machine distribution; this is my current understanding based on our 1/29/08 discussion. Mchua 14:08, 30 January 2008 (EST)

Similarities and differences from GM

The developers program (DP) is separate from GM. GM laptops are paid for by the recipient; DP XOs are donated to the recipient by OLPC.

However, both programs have applications that go through some sort of approval process for laptop distribution (in other words, people don't just get handed laptops unless someone thinks they'll do good things for OLPC's core mission with them.)

The current system for "application approval" for DP and some proposals are outlined below.

Misconceptions

  • "Give Many is a way to purchase laptops." In reality, Give Many (GM) is not fully implemented. When it is implemented, GM will not be a conventional "purchase" in the sense that anyone who hands over $X will get Y laptops; there is no SKU number, etc. Although recipients eventually pay for their GM laptops, they must still apply to get them.

Possible systems

This section describes systems that can be used to get projects that have been proposed laptops (in order of their priority and need).

Current system

  1. A Proposer - let's call him Peter - wants XOs for his grassroots group / cool project / pilot.
  2. Peter writes up a description of what he'd like to do, who he'll be working with, his experience, how they'll carry out the plan - basically, a project proposal.
  3. Peter sends his proposal to a closed mailing list of admins. Peter's proposal is not posted publicly.
  4. The admins look at Peter's proposal. If they don't think it creates enough value to OLPC to warrant what he's asking, they send him back feedback on the same, or a "sorry, we can't do this" letter.
  5. If the admins /do/ like Peter's proposal, they tell Shipping (Julia) to mail laptops to Peter straight out of 1cc, and the process closes.
  6. Alternatively, if the admins become aware that someone needs an XO, they can decide to ask Julia to send her a donated laptop even without a proposal being submitted.

Pros: In place and "working" now. Decisions of who gets how many laptops are made by people in-the-know whom we trust. Cons: Bottleneck - doesn't scale, and currently has lots of lag time. Things go on behind closed doors; feedback and discussion on project proposals which may potentially improve said proposals doesn't happen.

Community system proposal

The community system proposal involves the entire global OLPC community collaboratively working on a priority ordering of outstanding projects and suggests how many laptops should be allocated to each program/project. Over time, this community refines the heuristics for evaluating which projects are / will be most successful at improving education through OLPC.

There will be a group at Brightstar or some other distributor (we'll call it "the shipping center" here) that describes what is possible (in terms of parts available, etc), and updates people when laptops actually go out, but does not have administrative control over who gets laptops.

There is a group called "the Amenders" with access to this db with veto power who can nix proposals outright regardless of community feedback.

There is also a group called "the Choosers" who can approve a proposal outright regardless of community feedback (or create a proposal for a third party who needs a laptop on short notice - for instance, VIPs or last-minute demos). (Choosers will, however, be strongly encouraged or even required to find alternative sources for these non-community-approved allocations.)

This is probably clearest explained in an example.

  1. A Proposer - let's call him Peter - wants XOs for his grassroots group / cool project / pilot.
  2. Peter writes up a description of what he'd like to do, who he'll be working with, his experience, how they'll carry out the plan - basically, a project proposal.
  3. Peter submits his proposal via a website that feeds into a "proposals database," in order to keep Peter's contact information private and preserve the original state of his submission, including a summary paragraph.
  4. Peter's proposal (with details on background, timeline, relationships to other projects, etc) is automatically posted to a wiki page and linked to from a "Projects review" page that includes summaries of and links to all projects currently under review.
  5. Discussion ensues on the proposal's talk page about how well the project fits the criteria that the community is looking for (in terms of being conducive to OLPC's mission, etc). and people can offer to help out, comment on ways to improve the program, discuss how many laptops should be allocated, etc.
  6. When consensus is reached, if this consensus involves sending the project one or more XOs, a revised summary is posted to a section of a "Waiting for laptops" wikipage along with an indication of priority and how many laptops it's getting.
  7. Discussion continues on this page - no longer about whether a project should get laptops and how many, but on how high on the priority list for sending laptops they should be (this will change as situations change, for instance whether there's a local chapter nearby that can look after XOs, or whether core development is sorely needed in the area of the proposal, etc).
  8. The Shipping Center keeps an eye on this "Waiting for laptops" page (or possibly a database synced to it), and when laptops are available, they ship them out to projects according to priority listed on the page.
  9. Local groups and individual owners can also keep their eye on the "Waiting for laptops" page and offer to share/lend/donate their machines to projects, so that the Shipping Center is not the only place where people can get XOs for their projects.
  10. When Peter gets his laptops through whatever means, his project is moved into a page of "Current projects" with summary, date, laptops sent, and links to project pages with updates and such, and contact information from Peter.
  11. When Peter has finished using the laptops, or someone else thinks Peter is no longer utilizing them properly, Peter can send the laptops back to be recycled into someone else's project (or the person can start a community determination process that can culminate in Peter being requested to return his computers).
  12. At any time during the process, the Amenders can nix a proposal and remove it from the database.
  13. At any time during the process, the Choosers can add a proposal for donation to a third party, and push a proposal to the front of the priority "Waiting for a laptop" queue.

PROS:

  • Openness and community involvement,
  • removes much of the current bottleneck while still allowing a few trusted people to admin the process veto anything that is obviously not helpful or gaming the system, if problems come up.

CONS:

  • Trust issues - is it possible to abuse this system?
    In a way that noone else in the community notices and makes a fuss about? Less likely than the possibility of abusing a system with a small number of overworked reviewers.
  • Learning/adoption curve - how to get people to use and understand it?
    If this is just filling out a form, similar to getting people to use and understand the current process (fill out a form and send it to a given email address). A common first resopnse to a request can now be "please work through steps 3 and 4, to give more info to the community about your work" rather than hanging out in limbo b/c an app was vague
  • Not clear on how the timeline of community reviewing will work - is there a cutoff date, will apps go stale?
    The same question applies to the status quo. There are many apps never acted upon that are now 8 months old. They are also lost in a stack of papers and not visible anywhere.
  • What is the determinant of whether and when consensus is reached?
    Edge cases are always tricky. Rules of thumb are helpful; a class of contributors (moderators?) trusted to assess consensus could be used one day. As a first pass, see how this is handled for featured articles on wp. Contentious project proposals could be considered not there yet, any serious complaint that is not addressed being enough reason not to add a project to the list.

Criteria for choosing projects

  1. Is it generative? Can more people use the result to do future new things?
  2. How many people are interested in helping out?
  3. Is it naturally multilingual/alingual?
  4. Is it suitable for children of all ages?
  5. Is there a working prototype?

Current work being done

  • Crazy-chris and aaron kaplan have been working on a db that can take in all needed info for project applications, and will soon be able to interface with the Brightstar database.