Projects/Version support for data store

From OLPC
< Projects
Revision as of 12:55, 24 February 2010 by Sascha silbe (talk | contribs) (convert email to wiki format)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

1. Project Title & Shipment Detail

Name of Project:
Version support for data store
Number of Laptops (or other hardware) You Request to Borrow:
Two C2 production units
Two or more serial plugs (USB adapters optional as I can build them myself, but I didn't find properly mating plugs)
Power supplies with Euro plugs would be preferred
Loan Length—How Many Months:
Permanently

2. Team Participants

Name(s) & Contact Info: (include all email addresses & phone numbers)
Sascha Silbe
Past Experience/Qualifications:
Major work on Sugar, including Rainbow support
Some kernel debugging / hacking on XO-1 (some bugs, more bugs)
Kernel hacking on OpenRD (ARM based)
Data store version support prototype

3. Objectives

Project Objectives:
Add version support to the Sugar data store. Since data store performance directly impacts user experience, direct testing on the XO-1.5 with the built-in MicroSD card (=> slow write performance in general, potentially write amplification effect) would be very useful.
Additionally I'm -- as Bernie Innocenti phrased it -- "hacking all over the place", including kernel and hardware work. My offer to diagnose & repair XOs (keeping in mind that I don't have advanced equipment like a scope - got everything list for the Repair Center Kit, though) still holds as well.

4. Plan of Action

Plan and Procedure for Achieving the Stated Objectives:
Install sugar-jhbuild on Debian squeeze on XO-1.5 using an external SD card. Put data store on internal SD card for testing performance. Use it for regular work (as much as possible given the tiny screen and keyboard).
Go out, enjoying the crisp display in bright sunlight for reading academic papers about improving the computer experience for everyone in general, version support (pruning heuristics, metadata compression, automated attribute assignment) and security in particular.
Continue showing off the laptops to interested passers-by.

5. Needs

Why is this project needed?
Locally?
In the greater OLPC/Sugar community?
Quoting part of my thesis abstract:
Storing previous versions of user documents inside the Sugar data store ensures no work is accidently lost due to being overwritten.
Like more traditional environments the Sugar Learning Platform currently stores exactly one copy of a user document (called activity instance), overwriting older versions (inside Sugar this happens automatically). Especially because the target user base doesn't consist of highly trained professionals but of children this causes work to be lost.
See above/below for why I need XO-1.5s for this project.
Outside the community?
Hopefully other "desktop" projects (Gnome, KDE, ...) will learn from our experience and improve their UI and ways to store user data as well. Gnome Zeitgeist is a start, though still too much rooted in the same old Xerox PARC pioneered "desktop metaphor".
Why can't this project be done in emulation using non-XO machines?
Direct hardware access required for evaluating performance and for kernel hacking.
Why are you requesting the number of machines you are asking for?
The kernel hacking is the reason I'm applying for C2 units instead of a B2 one - I want the same units as the children are using so I can reproduce their problems. Two units so I can test and debug WLAN between identical units, ruling out interoperability issues.
Will you consider (1) salvaged/rebuilt or (2) damaged XO Laptops?
At least one of the C2s should be fully operational right from the start, but feel free to add salvaged/damaged XO-1.5 units. I can repair them over time, either lending them locally to interested teachers and/or potential developers or passing the set on to OLPC Deutschland e.V.. The XO-1s were easy enough to fix. :)

6. Sharing Deliverables

Project URL—where you'll report specific ongoing progress:
project page, sugar-devel, devel, SL Trac, OLPC Trac as appropriate
How will you convey tentative ideas & results back to the OLPC/Sugar community, prior to completion?
project page, sugar-devel, devel, SL Trac, OLPC Trac as appropriate
How will the final fruits of your labor be distributed to children or community members worldwide?
As part of the operating system / Linux distribution.
Will your work have any possible application or use outside our community?
If yes, how will these people be reached?
Sure. As to how to reach people not using Sugar I'll leave it up to Gnome, KDE & Co to figure out. IMO Sugar is going to be suited ideally to most "non-techie" computer users and that's what I'm going to try to promote.
If "our community" is meant in the narrower sense of OLPC, then projects like SoaS and USR as well as shipping Sugar as part of regular distributions are all good approaches for achieving that goal. I'm involved to at least some small degree in all of the mentioned ones.
Have you investigated working with nearby XO Lending Libraries or Project Groups?
AFAIK there are no such groups in the near vicinity yet, only in northern Germany (several hundred kms away). If you know of any, please pass on my contact details!

7. Quality/Mentoring

Would your Project benefit from Support, Documentation and/or Testing people?
Definitely. People trying out my version support branch (see instructions) would be greatly appreciated. Also anyone working on making it available to a larger set of testers (custom SoaS or USR spin, snapshot distro packages, ...) would certainly earn my gratitude.
Teachers' input into Usability?
Also more than useful obviously.
How will you promote your work?
See above for the usual channels. I'll also soon be presenting my thesis (Diplomarbeit) titled "A version support extension for the Sugar data store".
Can we help you with an experienced mentor from the OLPC/Sugar community?
My GSoC mentor was a great help. It would be nice to be working with him again.

8. Timeline (Start to Finish)

Please include a Proposed timeline for your Project life-cycle: (this can be in the form of Month 1, Month 2, etc rather than specific dates)
This month: Finish thesis.
Next month: Relax, tie up loose ends, start playing with XO-1.5 if already arrived (assuming this proposal gets accepted).
New schedule once that's done. ;)
Specify how you prefer to communicate your ongoing progress and obstacles!
See above.
[ ] I agree to pass on the laptop(s) to a local OLPC group or other interested contributors in case I do not have need for the laptop(s) anymore or in case my project progress stalls.
If I really stop doing anything useful (to OLPC and/or Sugar) with the laptops I can pass them on, sure. I have a feeling they're way outdated by then and only of historical interest, though - my primary non-XO laptop is about eight years old by now and starting to fall apart. :)