Talk:Contributors program archive

From OLPC
Revision as of 20:11, 24 June 2008 by Sj (talk | contribs) (...)
Jump to navigation Jump to search

Thoughts on providing at-cost hardware to developers

The developers program is usually able to send one free XO per developer. We would like to allow individual developers, and larger organizations like software companies and research labs, to purchase additional XOs at cost independently of the G1G1 program.

As a start, game console manufacturers are an example of organizations which must distribute proprietary hardware on a limited basis to developers. Their programs generally look something like this:

Development studios who would like development hardware (say XBox360 devkits) must first apply to become part of the developers program. This involves providing credentials (a publishing contract for example), and then signing a NDA. They are then given access to a private development area, forums, support group, etc., and are allowed to purchase hardware through the developers program. The hardware is not theirs, they must agree to send it back in 5 years or so when no longer needed, but if it breaks it will be fixed without charge.

This could be adjusted to fit OLPC's open nature as follows:

Developers who would like an XO must first apply to become part of the developers program. This involves providing credentials (a resume), contact information and a project plan. They are then sent one free XO, and are allowed to purchase a fixed number (3?) of additional XOs at cost after signing and returning an agreement not to resell XOs acquired through the developer program. The XOs are theirs to keep. Development groups (e.g. research labs) may apply using the same system, and will be granted a larger (9?) fixed purchase amount. Larger purchase requests will be handled on an individual basis.

Questions

  • Can we legally hold people to not resell XOs they receive through the developers program? I'm concerned after seeing G1G1 XOs on EBay for $400, some people might try to take advantage of the developer program.

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

See Community approval process for an alternative proposal on how to distribute contributor/pilot/other machines. Originated by SJ, posted by Mel.

We are reaching consensus that this is the right way to proceed. --Sj talk 14:28, 6 May 2008 (EDT)

Sample form for the full contributor's program

Project intro and descriptions

Please describe yourself and any personal information needed to get in touch with you.

  1. name [text]
  2. email address [text]


Please describe the projects you are developing, or planning on developing, in decreasing order of awesome.

  1. name
    1. description [textarea]
    2. project duration [text]

Hardware to hack on

XOs : for hardware, software, or content development that would be easier with an XO

  1. # of XOs
  2. keyboard desired, if it matters
  3. power-adapter desired (plug type)
    How much does this matter? [text]

Networking

  1. # of active antennas


Hosting for code and content

Mailing lists, subdomains, &c

Feature requests for projectdb

After going through a round of applications in the projectdb as an admin, I've got a few feature requests that would be awfully handy.

  • Do people automatically get notified of their project status/etc. being updated? Can we add this?
  • Can we track the history of a project - for instance, this edit was made by this person at this time, this suggestion was made by this person at this time?
  • I'd like to be able to merge projects (for instance, multiple partners working together submitted separate applications for exactly the same project).
  • Automatic "click a button" spreadsheet generation of all approved projects that have not yet been spreadsheeted.

Mchua 16:16, 22 May 2008 (EDT)

Current distribution process

  • Review latest round of submissions to the projectdb, approve those that qualify
  • Export approved projects into csv files, one per destination country (one line per project per country)
    • The csv files should contain the following fields:
CustOrdNbr	 ShipName	 ShipAddr1	 ShipAddr2	 ShipCity	 ShipState	 ShipZip	 ShipPhone
    • Details:
      OrdNbr should be DE90000000 + the project number
      Addr fields should be no longer than 30 characters
      State should never be empty but should contain an "x" if there is no state;
      Phone should contain only digits, no + symbols; and should use "011" before international country codes