Nell: Difference between revisions
Jump to navigation
Jump to search
(cjb week 1) |
|||
(11 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{TOCright}} |
{{TOCright}} |
||
= Overview = |
|||
= Demo script, draft 1 = |
|||
Nell is the name of the XO-3 Narrative Software effort. |
|||
Nell is a tablet-oriented education platform for children in |
|||
1) First thing seen is a login screen, with pictures of all the |
|||
the developing world. A modular narrative system guides |
|||
avatars of the users of the machine. The kid, plus their siblings, |
|||
learning, even for children far from educational infrastructure, and |
|||
parents, and alter-egos. We click on the 'new' button. |
|||
provides personalized instruction which grows with the child. |
|||
Nell's design builds on experience with the Sugar Learning |
|||
Platform. |
|||
We've written a [http://cscott.net/Publications/OLPC/idc2012.pdf short paper describing Nell's design] (pdf). |
|||
We then see a randomly generated avatar, in their "closet". You can |
|||
swap out features and colors to make it look like you. (We don't ask |
|||
you to type the name of your avatar yet, because we don't want to |
|||
presume typing and literacy ability yet, but we could ask you to speak |
|||
a name.) |
|||
= Demo plan (briefly) = |
|||
When you exit the "closet" and achievement message pops up: you've |
|||
# Section 1 of the IDC'12 paper: draw letters and we tell you a story as they come to life |
|||
customized your avatar! You might want to... |
|||
# "Tom Riddle's Diary": talk with an AIML [[chatbot]] by handwriting in your diary |
|||
# Wide Ruled Tutorial: story model editor that walks you through [http://users.soe.ucsc.edu/~jskorups/wiki/_media/wide_ruled/tutorial_wideruled2.pdf a tutorial] of using it to write a story. |
|||
= More information = |
|||
Exiting the closet also brought you to your "map". These are hex |
|||
See the subpages for more information. |
|||
tiles with paths and "stuff". The map has a single tile, your |
|||
"closet", and paths leading off in all directions but fading out. |
|||
You choose a direction. |
|||
= Subpages = |
|||
(You might also create a 'friend' who appears beside your avatar; you |
|||
{{Special:PrefixIndex/{{PAGENAME}}/}} |
|||
can switch between friends and maybe there are different tiles |
|||
available. You might also add a friend from somewhere else...) |
|||
[[Category:XO-3]] |
|||
2) Touching the south tile, your character moves to it and a basic |
|||
[[Category:Software]] |
|||
literacy app opens. Another achievement pops up, congratulating you |
|||
on trying the alphabet book and suggesting you try to.... |
|||
This book is a simple alphabet book. There are pictures of an Apple |
|||
for A, etc. When you touch the apple, it says and shows its name. |
|||
You can trace the A in the name, and it shows your traced version on |
|||
top of the correct letter (and an achievement bubble pops up). |
|||
There are pictures of other things, one of which also begins with A. |
|||
When you touch the other thing which begins with A, you move on to B |
|||
(and an achievement bubble pops up). There's a task bar marked |
|||
"alphabet" which is gradually filling up. (This should perhaps be a |
|||
shorter tinkerbook-style lesson, that you can actually finish in the |
|||
brief demo.) |
|||
You back out of the literacy app, and you're back on the map. Your |
|||
avatar suggests continuing through the new alphabet-ville tile to |
|||
explore a newly available unexplored tile. You touch there and.. |
|||
3) You're in "Castle TurtleArt". Your avatar suggests trying to draw |
|||
a square. When you assemble the tiles to accomplish this, an |
|||
achievement bubble pops up, and you're given another suggested task. |
|||
After a few of these, you back and and find yourself on your map |
|||
again. |
|||
4) This time you try going northeast. A sugar app opens. Southwest: |
|||
wikipedia. Southeast: a web browser. Then you drag and rearrange |
|||
your tiles to put wikipedia and the web browser near your home. |
|||
You check out your stats, change your clothes, and check the list of |
|||
new things to do. You can also flick to a journal to see the things |
|||
you've worked on today. |
|||
= Implementation plan = |
|||
== Weeks 1-2 == |
|||
=== Bring up Firefox (Mobile?) === |
|||
cjb: https://nightly.mozilla.org/ has nightly builds of the desktop, Mobile-Android and Mobile-Linux (fennec) clients. |
|||
The Fennec client for i686 works on my desktop at home, but the ARM download segfaults immediately on XO-1.75, because it's linked against maemo/libhildon. |
|||
I first tried building on koji2, since the linking step needs about 2G RAM, but building armv7 binaries on an armv5 host isn't supported -- for example, configure will try to run conftest binaries it generates, and they'll fail with SIGILL. |
|||
Then I tried cross-compiling, but ran into a bunch of cases where system libraries were being linked to instead of host libraries. I don't think cross-compiling Firefox is well tested/supported. |
|||
Then I moved to native compiling on an XO, using 3G swap on a USB stick. The build takes several hours, but it eventually worked. Here is my mozconfig file: |
|||
<nowiki> |
|||
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-arm |
|||
ac_add_options --enable-application=browser |
|||
#ac_add_options --enable-application=mobile |
|||
ac_add_options --disable-crashreporter |
|||
ac_add_options --disable-necko-wifi |
|||
ac_add_options --disable-tests |
|||
# You'd think defining the autoconf macros or the CFLAGS would work, but there are occasions |
|||
# where gcc's invoked outside of a normal shell profile. |
|||
ac_add_options --with-arch=armv7-a |
|||
ac_add_options --with-fpu=vfpv3-d16 |
|||
ac_add_options --with-float-abi=softfp |
|||
export CFLAGS="-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp" |
|||
export CXXFLAGS="-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp" |
|||
ac_add_options --with-arm-kuser |
|||
</nowiki> |
|||
I also needed this ugly patch, which I haven't fully investigated. Without it, there is an error linking to an undefined arm_private::neon_enabled. Our CPU does not support NEON. |
|||
<nowiki> |
|||
diff -r d0700bfeda63 xpcom/glue/arm.h |
|||
--- a/xpcom/glue/arm.h Mon Oct 03 18:08:17 2011 -0700 |
|||
+++ b/xpcom/glue/arm.h Wed Oct 05 12:53:53 2011 +0000 |
|||
@@ -170,7 +170,8 @@ |
|||
inline bool supports_neon() { return true; } |
|||
#elif defined(MOZILLA_MAY_SUPPORT_NEON) \ |
|||
&& defined(MOZILLA_ARM_HAVE_CPUID_DETECTION) |
|||
- inline bool supports_neon() { return arm_private::neon_enabled; } |
|||
+// inline bool supports_neon() { return arm_private::neon_enabled; } |
|||
+ inline bool supports_neon() { return false; } |
|||
#else |
|||
inline bool supports_neon() { return false; } |
|||
#endif |
|||
</nowiki> |
|||
After applying these, ''make -f client.mk'' produces a build, and ''make package'' in objdir produces a tarball of it. These are at: |
|||
http://dev.laptop.org/~cjb/firefox/fennec-10.0a1.en-US.linux-gnueabi-armv7l.tar.bz2 |
|||
http://dev.laptop.org/~cjb/firefox/firefox-10.0a1.en-US.linux-gnueabi-armv7l.tar.bz2 |
|||
=== Benchmark Firefox, gfx and js performance === |
|||
cjb: |
|||
=== Storyboarding === |
|||
cscott: |
|||
=== App repository/launcher, start on JS framework === |
|||
cscott: |
|||
== Week 3 == |
|||
=== Did "Ice Cream Sandwich" come out? If so, consider rebasing === |
|||
=== Hex tile system, app repository/launcher === |
|||
== Week 4 == |
|||
=== Avatar customization app === |
|||
== Weeks 5-6 == |
|||
=== Achievements system === |
|||
=== "Test suite" integration via DOM === |
|||
== Weeks 7-9 == |
|||
=== Basic literacy app === |
|||
=== Paint app === |
|||
=== TurtleArt, Wikipedia? === |
|||
== Weeks 10-13 == |
|||
=== Triage/cutoff for features === |
|||
=== Performance === |
|||
=== Bug fixes === |
|||
=== Bringup in Taipei === |
Latest revision as of 20:23, 12 April 2012
Overview
Nell is the name of the XO-3 Narrative Software effort.
Nell is a tablet-oriented education platform for children in the developing world. A modular narrative system guides learning, even for children far from educational infrastructure, and provides personalized instruction which grows with the child. Nell's design builds on experience with the Sugar Learning Platform.
We've written a short paper describing Nell's design (pdf).
Demo plan (briefly)
- Section 1 of the IDC'12 paper: draw letters and we tell you a story as they come to life
- "Tom Riddle's Diary": talk with an AIML chatbot by handwriting in your diary
- Wide Ruled Tutorial: story model editor that walks you through a tutorial of using it to write a story.
More information
See the subpages for more information.