[sugar] OLPC News 2007-11-03
Walter Bender
walter.bender at gmail.com
Sat Nov 3 12:38:18 EDT 2007
1. Reggio Emilia: Italian Prime Minister Romano Prodi reconfirmed his
commitment of 50,000 laptops for Ethiopia while at a town meeting of
over 600 people where Nicholas presented OLPC. The importance of the
funding is its exemplary nature—it is model for other European
countries and the EU itself to follow. The clarity with which both the
press and the audience understood children as our mission, versus a
market, was refreshing.
2. Rome: Nicholas joined Antonio Battro and Matt Keller for a
whirlwind one-day tour of the Eternal City. The day started with an
interview on Radio Vatican, followed by an address to the Food and
Agriculture Organization (FAO) of the UN, a speech received by over
200 UN staffers. After meeting with members of the City of Florence
Council, Nicholas addressed over 300 members of Catholic Orders at the
Vatican. (The Catholic Orders educate 50-million children in schools
worldwide, many in the poorest countries.) The event, organized by
Matt and Tom Rocheford of the Jesuit order included a presentation by
Cardinal Poupard on the Encyclica "Populorum Progressio" as a mission
towards education in developing countries and Antonio introduced the
fundamental principles of OLPC. Throughout the day, they were shadowed
by a Time Magazine reporter (See
http://www.time.com/time/world/article/0,8599,1678273,00.html).
3. New York City: Nicholas gave the keynote address at the 10th
anniversary of Mouse.org, accompanied by Chancellor Joel Klein of the
NYC public school system. Mouse is working with OLPC and, among other
things, will help document the XO. Mouse is an organization that has
students who helps other students (and teachers and schools) run their
computer systems.
4. Cambridge: The first of what will become monthly learning workshops
will be held this coming week; attendees are coming from the countries
expecting to launch in the coming weeks and months. Lindsay Petrillose
has done a fantastic job organizing all aspects of the meeting.
5. Mass production (MP): John Watlington continued to chase down our
remaining suspend/resume problems. Many tests were tried, with most of
them failing to cause any laptop crashes. (We now only see very rare
crashes upon resume.) A production-line test for suspend/resume was
developed and tested. The kernel and firmware teams have been
invaluable in supporting this testing process.
Richard Smith has arrived in Changshu to continue testing the C2
motherboard and provide support the first days of production while
John returns to Cambridge with a batch of motherboards for more
intensive hardware analysis. Another batch is going to Terry Su
(Quanta) in Taiwan for parallel debugging. Mary Lou Jepsen, Richard,
Arnold Kao, Gary Chiang, and Matt Huang are in Changshu right now.
Chris Ball is already back.
This unusual level of testing is due to our quest for an
extraordinarily robust laptop with extraordinary low power
consumption.
Regarding mechanical, this weekend, among other things, we are fixing
a cosmetic blemish on the left and right hand side keyboard-base green
"bumpers." The tooling is being modified presently. Other work
includes online manufacturer-server setup and testing plans,
fulfillment reporting, logistics, etc.
6. Embedded controller (EC): Richard finally figured out what was
going on with the NiMH batteries in secure-boot mode. API differences
between the EC commands and Open Firmware. This was fixed in Q2D03.
7. Schedule: Friday was Feature Freeze Day for "Update.1." At this
point it is recommended that activity developers branch their
builds—only high-priority fixes should be made to this branch—they can
continue in development for future features on their mainline branch.
In order to stabilize the Update.1 branch, we are asking that
developers make recommendations about blocking or very-high-priority
bugs; but no more code check-ins until they are confirmed with Jim
Gettys or Kim Quirk.
8. Testing: Ricardo Carrano and Yani Galanis have been tracking down
some issues associated with Access Point association, network manager,
wireless drivers, and presence service. They continue to add to the
knowledge base of how to debug and test in these areas (Please see
http://wiki.laptop.org/go/Test_Network_Configuration and
http://wiki.laptop.org/go/Test_Config_Notes).
Alex Latham has developed a one-hour smoke/regression test that anyone
can run as we begin testing of Update.1, which is scheduled to be out
at the end of the month (See
http://wiki.laptop.org/go/1_Hour_Smoke_Test). Please review and make
comments (and start using it next week).
9. Sugar: Marco Pesenti Gritti spent most of the week on Update1 bug
fixes. He fixed several regressions from Ship.1 (Trial-3); as a
result, the Sugar core is getting back to a state of stability: the
Totem video player is working again and mime-type handling is much
improved. Journal previews are now generated reliably, but they are
still too slow. Bernardo Innocenti is working on improved performance.
Marco started looking into rainbow with Michael Stone to plan proper
integration with Sugar for Update.1. Marco and Chris Ball started
looking into the sound issues that crept into the Joyride builds—there
was a race in the gstreamer code that prevents the device from being
freed; a fix is in the build.
Reinier Heeres has joined the Sugar team as a 3-month intern. He is
the author of the Calculate activity in current builds. Marco helped
Reinier to integrate with the team.
Tomeu Vizoso fixed some issues with special characters when copying
entries to USB sticks (tickets #3498 and #4558: Mount removable
devices as UTF8). He also implemented "expanding" of bundled journal
entries. This will allow restoring individual entries from the backup
in the school server and, in a future milestone, sharing entries
between XOs (See http://wiki.laptop.org/go/Journal_entry_bundles for
more details).
Tomeau also removed an active loop in the DataStore that had caused it
to wake up every 2.5ms; eliminating this wake-up will help keep power
consumption low. Tomeu improved the flushing strategy in the
DataStore. We now flush either every 20 changes or one minute after
the last unflushed change. This should prevent data loss in most
cases, such as when the power goes off completely.
Simon Schampijer continued to work on the Sugar control panel, which
is now included in the latest builds (See
http://wiki.laptop.org/go/Sugar_Control_Panel for details.)
Some improvements have been made to the browser as well. The browser
can now scale its contents. Simon introduced a view toolbar with
buttons for zoom in and zoom out, full-screen, and and to hide or show
the tray. Key bindings for zoom in (CTRL+) and zoom out (CTRL–) have
been added as well. Walter Bender and Eben Eliason made a new activity
as a derivative of the browser that launches Gmail directly from the
taskbar. Other Google Apps may follow.
Chris Ball released a new version of Pippy, which has new examples,
including Guess (from Pilar Saenz).
Muriel de Souza Godoi released a new version of the Memorize activity.
This version allows children to create their own games, using text,
pictures and audio from the Record activity, which are then saved in
the Journal. When someone joins the activity, these data are copied
into the Journal of the other XO using the author's colors.
Arjun Sarwal worked on the Measure activity with Cody Lodridge; they
optimized the rendering code: the frame-rate and response time has
improved significantly. This has largely been possible due to reduced
calls to X for re-drawing the background in each frame update. Arjun
also reintroduced the show values option, which displays the RMS and
average values of the signal; and he fixed a bug that prevented
Measure and Record from working together.
Scott Ananian added AcousticMeasure, Wikibrowse, and Gmail activities
to Joyride.
10. Presence service: Sjoerd Simons has been working on stabilizing
(and freezing) the telepathy-salut chatroom/activity protocol, now
officially named "Clique" (previously it didn't really have a name),
for Update.1.
Simon McVittie made some related changes that will deliberately break
compatibility with the multicast DNS announcements used in Ship.1
(Trial-3), so that Update.1 XOs will not be able to see Ship.1
activities, and Ship.1 XOs will not be able to see Update.1
activities. This is actually a a good thing: if you put an Update.1 XO
and a Ship.1 XO in the same activity, the Ship.1 telepathy-salut would
abort with an assertion failure whenever the Update.1 version sent
messages, and the Update.1 telepathy-salut would be unable to
understand messages sent by the Ship.1 version.
Simon synchronized with Sjoerd's latest changes and it seems to work,
so he has pushed it into Koji for Joyride inclusion. There are likely
to be some issues to sort out early next week, but he thinks we're
done with major changes—we do not plan to change the wire protocol
again for the foreseeable future.
Morgan Collett has been working on Presence Service reliability
improvements, which track activities and Telepathy connection managers
and recover from them crashing. Morgan also updated HelloMesh, the
Tubes demo activity, incorporating Simon's Sugar API improvements,
which reduce the code necessary to set up Tubes. Activity authors
should look at the changes in Connect and HelloMesh to see how they
can reduce the existing code. (The old method will still work, so
there is no urgency to update.)
Simon and Guillaume Desmottes worked on Stream Tubes, which implement
TCP/IP over XMPP; Simon implemented this for the Read activity. Stream
Tubes provide one-to-one connections that are much better for data
transfer or streaming as opposed to the signal and method calls
provided by D-Bus Tubes; Stream Tubes can be used in conjunction with
D-Bus Tubes in an activity which needs both.
11. X Window System: Bernie Innocenti has been restructuring our i18n
(internationalization) and keyboard configuration scripts, along with
the OLPC Display Manager (olpc-dm). There's still some work to do, but
the resulting scheme is simpler, writes less to system files and,
hopefully, also speeds up boot a little. Bernie has also been chasing
a performance regression in taking screen shots for the Journal that
slows us down when switching between activities. Walter Bender sent
the Nepali keyboard out for review from the manufacturer; a Pashto
keyboard is being reviewed by the community; the West African keyboard
is also getting extensive review by Don Osborn, Paa Kwesi Imbeah,
Dwayne Bailey, Adel El Zaim, and Albert Cahalan.
12. Kernel: Andres Salomon spent Sunday through Tuesday hunting down a
bizarre bug that turned out to be something in the kernel scheduler.
He ran out of time for debugging, but signs were pointing to it being
a vserver bug. The instability of the VServer kernel patches has made
us remove this from our builds for Update.1. We will likely revisit
use of light-weight containerization for security in future releases.
We are pursuing alternate approaches to activity isolation for our
first releases.
Andres also did some debugging of USB and DCON (display controller)
code and attempted to reliably reproduce a Libertas transmit timeout
bug. Chris Ball worked on OHM (Open Hardware Manager) to implement
power management: results to follow.
13. New build system: We have established an independent build system
for OLPC, that allows greater flexibility for testing builds. Scott
Ananian spent time on Koji/mock integration work and discussions with
the Fedora koji team. Scott created new Kernel/Xtest/Sugar/Rainbow
branches for stabilization and testing of Joyride. Scott and John
Palmieri released stable builds 623, and 624 to Quanta. for mass
production. They pplied pilgrim patches to close or address numerous
trac tickets: #4600, 4259, 4473, 3937, 4063, 2661, 4032, 3643, 3977,
2840, 4457, and 4400, among others. Scott also patched olpcrd with
initial partition support.
Scott also helped Red Sox win the World Series by wearing clothing
with appropriate logos and dressing his dog in same as well.
14. Wireless: We spent most of the week trying to consistently
reproduce the wireless loss of functionality issue described in ticket
#4470. The only consistent pattern that emerged is that newer builds
expose the behavior more quickly and that there is a strong
correlation with traffic volume (Michail Bletsas hasn't been able to
reproduce the bug at home for the entire week). Given that the
wireless firmware keeps running, the most probable cause is data-flow
management in the Libertas driver. There was one patch submitted this
week that fixes silent discard of frames by the driver that could also
have an effect on the behavior seen in #4470. The other major blocking
bug (#3341) is addressed by that fix and some firmware changes
implemented in a private release to Scott, so that he can move on with
his wireless update development.
QMI produced the first Active Antenna board samples and send them to
OLPC for testing this week. Marvell is working on the firmware update
tool on them that will be released the last week of November.
15. Suspend on idle CPU: John Gilmore has been exploring automatic
suspend-on-idle; these issues have become a lot clearer in his mind,
but it is still easy to get confused. You can join the discussion in
the wiki (See http://wiki.laptop.org/go/Suspend_and_resume).
16. Localization: Xavier Alverez and Alfonso de la Guarda have
established a Pootle server for localization of Sugar, activities, and
other OLPC-related localization needs. Sayamindu Dasgupta is working
with them. They are making good progress, but could use as much help
as they can get (See http://solar.laptop.org:5080/projects/xo_core/).
Support your favorite language now!
17. Security: Ivan Krstić and Michael Stone gave a heads up to
activity developers that we will be landing portions of our security
system for Update.1. We will be requiring: (1) file-path compliance;
(2) a cryptographic signature; and (3) a permissions declaration.
File-path compliance means that you must ensure your activity does not
write to any path outside of that contained in the environment
variable SUGAR_ACTIVITY_ROOT; specifically subdirectories called
"data," "conf," and "tmp" within the SUGAR_ACTIVITY_ROOT directory.
(We are working with the Sugar team to provide helper functions for
easily getting those three directory paths for those of you using
Python. Until then, please depend on the environment variable
directly.)
Please note that if you are using the DataStore for your file I/O, you
still must write the file somewhere before asking the DataStore to
check it in; if you choose a temporary filename that's outside of
SUGAR_ACTIVITY_ROOT, you will be non-compliant.
File path compliance is a requirement for inclusion in Update.1.
Please do your best to make sure you are not writing to paths outside
of SUGAR_ACTIVITY_ROOT; we'll try to help you catch any such writes
that you miss.
We will be posting more details regarding cryptographic signatures and
permissions declarations—these will be required in near future. As a
summary, when we say signatures, we mean that you as the activity
authors will use a set of tools we provide to make your own keys and
sign your activities; the purpose of this is simply to allow secure
activity upgrades once they are on the machines. Permission
declarations will enumerate which special permissions (camera access?
microphone access? non-Tubes network access? etc.) your activity may
need for its normal operation.
-walter
--
Walter Bender
One Laptop per Child
http://laptop.org
More information about the Sugar
mailing list