Hi,

thanks Nicolas for this exhaustive report. I would like to witness this
adventure it in a more pessimistic way, so that people willing to host
such a sage days know what kind of problems will appear, and which
workarounds are realistic.

Being free software is definitely not a sufficient condition for being
usable in "developping countries". The main reason is that free software
and internet are closely interdependent (none could have been developped
without the other). Compare http://www.ipligence.com/worldmap/ and
http://sagemath.org/development-map.html

If you plan to have a workshop in a place with no onternet connection
nor recent machines, you will experience a lot of problems. We had a
preparatory workshop at the same place one year ago (with only 20 local
participants) that went much less smoothly (one could even say
catastrophic) than that one. A small report was done on the page
http://wiki.sagemath.org/days34.5#line-19

= Feedback =

== Windows users ==
- virtualbox is not a solution. People running Windows usually have the
  last version (not XP), which has the effect of taking all the RAM,
  even on some not so old laptops. Adding a layer makes things worse.
- the existing live CD installed on a USB key is a good option, but :
  - The .exe file that installs the live-cd on the hard disk of a
    windows install does not work at all (tested on various machines
    without success).
  - Moreover there is no easy way for the participants to spread it
    afterwards, you need a recent version of unetbootin or some
    knowledge of sfdisk/hdparm/mkfs/syslinux to make it bootable to some
    other key.

== GNU/Linux users ==
- People under GNU/Linux mainly run Ubuntu, but do not necessary run the
  last version (not even some older LTS version). Unfortunately, the
  only available sage binary for Ubuntu is the last LTS.
- Moreover, the Ubuntu Sage binary we get from the Sage repository needs
  some additional packages (libgfortran3 for example). The solution of
  such a problem is not as easy when you have to go to some cyber-cafe
  to download a package and hope that is will be the last missing one
  (Sage tells you about another dependency only when the previous one is
  satisfied), especially when the university is far from downtown.
- The compilation of the Ubuntu Sage binary was made on some recent
  hardware, at least the sse2 set of instructions is needed whereas some
  Pentium 3 do not know sse2 instructions. As explained by Nicolas,
  requiring a build which is able to run on a Pentium 3 is overkill if
  participants bring their laptops, it is not the case if you plan to
  work on a local computer room (the one of ISEA had 1/3 Pentium 3 and
  2/3 Pentium 4). A possible reason for this sse2 dependency may be the
  following bug of the atlas package: if you set SAGE_FAT_BINARY='yes',
  the architecture will be Hammer (why such a choice ?), without taking
  the SAGE_ATLAS_ARCH variable in consideration, and atlas won't run on
  Pentium 3. See http://trac.sagemath.org/sage_trac/ticket/13706
- Installing GNU/Linux on the participants machines is dangerous.
  Participants do not have backups. Because of a problem of gparted to
  understand correctly windows extended partition system (at least in
  november 2011, gparted attributed the labels of 7 extended partitions
  of one participants above the four primary partitions uncorrectly,
  letting you erase the wrong primary partition), because we didn't have
  enough backup space to backup the whole disk, and because we were
  tired after one week of workshop, we lost the personal data (in
  particular some important latex files) of one participant, and spend
  one week at trying to recover some data between the new Linux
  filesystem and sage binaries.


= Workarounds to still distribute sage despite all those problems =

As Nicolas explained, you should consider a multiple strategies
approach. Here are the remaining realistic ones. I started a wiki page
with the following text to help future sage-days organisers, don't
hesitate to update it :
http://wiki.sagemath.org/HowToSpreadSageDuringAWorkshop

== The autoclone USB live ==

I built a live Debian Sage USB key wich is able to clone itself on
another key, indefinitely. I will make the prototype (and the source
code) available when i will be back home with a good internet
connection. Other features of the key are : personal data persistence,
no personal data is duplicated, possibility for the user to share
additional data from her key to the cloned one (pdf lecture notes,
worksheets, pictures of the workshop,...), lot of softwares (geogebra,
latex, editors, gimp, vlc, libreoffice,... there is no need to be small
since the bandwith limit is the size of the key).

If you have 200 euros to spend, buy one USB key of >= 4GB for each
participant plus 10% to saturate the market (some people will have to
bring one back to their boss/friend/other). Build a few keys and let the
participants clone the other keys (it takes about 16 minutes per key
times the logarithm of the number of participants, which is much faster
than building each one by yourself in linear time, moreover they will
learn how to do it when going back in their university).

== Minimal Autonomous Sage Build ("batteries included ?") ==

To sage binary maintainers: please reconsider having libgfortran
distributed with the binaries. Some problems also appeared with openssl.
We definitely need to maintain a build that is able to run on any
GNU/Linux distro (no dependency except libc6) and old hardware (no
sse2). I can help in such a task since i consider it much more important
than maintaining many distro-specific builds (8 builds for OSX, 5 for
Linux x64).

=== Server side ===
It is do-able. Here is an attempt of describing how i did (partially):
- build a minimal live Debian system (with only build-essential gfortran
  m4 binutils openssl libssl-dev)
- run it on a real Pentium 3 (using qemu is much slower)
- add some swap (using mkswap and swapon) since the build of the html
  reference manual costs a lot of RAM (about 1GB) and may not be built
  otherwise.
- export variables SAGE_FAT_BINARY='yes' SAGE_ATLAS_ARCH='PIII'
  SAGE_BINARY_BUILD='yes'
- modify atlas spkg according to the track ticket #13706 (or wait until
  it is fixed).
- run make (takes about 19 hours)
- copy /usr/lib/libbgfortran.so.3* and /usr/lib/libcrypto.* and
  /usr/lib/libssl.so* in the ${SAGE_ROOT}/local/lib/ directory
- run sage -bdist and md5sum
I guess it shouldn't be hard to distribute imagemagick dvipng ffmpeg in
the sage binaries as well.

=== Client side ===
This will be possibly harder. Concerning the browser java stuff, i do
not know how to let the browser know how to pick a jre which is located
in the sage binaries. Maybe we should build a firefox extension that
installs the equivalent of default-jre and icedtea6-plugin in a portable
way ? No idea for howto do this.


== GNU/Linux + Sage install ==

Some participants will want to have GNU/Linux installed on their
machine. Unlike Nicolas, i consider this as a long-term saving time
point if we want not having to consider windows-related problems in the
future.

The participants will want GNU/Linux to be installed (as dual boot) on
their laptop only at the end of the workshop (this happened both this
year and last year), once they are convinced than GNU/Linux beats
Windows everywhere :) If you plan to help in installing GNU/Linux, ask
the participants to apply earlier, some installs take more time than
planned.

Bring huge empty haddisks (> 1TB). Participants won't have backup.
Backup the whole filesystem (or even the whole device), not only the
interesting files, windows has some strange capabilities. dd is your
best friend. If you have to resize a windows ntfs partitions (for dual
boot):
- boot on windows
- defragment the disk 
- run checkdisk
- reboot on a live GNU/Linux CD/USB
- resize the partitions (e.g. with gparted)
- reboot on windows to let it know the sizes have changed
- reboot on your GNU/Linux installer and start the install

Bring the install binaries of some recent distro (the one you are used
to), and all the necessary to make upgrades and to install missing
dependencies without internet connection (you must get prepared to wait
for 3 hours for a 22MB download, or even to have no internet connection
at all). Bring both a USB and a CD of the installer (some computer are
not able to boot on USB). If you use a Debian-based distro, apt-cacher
will be helping a lot for the upgrades and the installation of missing
dependencies offline. Note that by default apt-cacher only caches the
packages, not the headers (they change with time). Those headers look
small but are big if the internet connection is weak. If you have no
internet connection, modify the expire_hours variable in
/etc/apt-cacher/apt-cacher.conf to something bigger than the number of
hours that are remaining until the end of the sage days, and run a full
upgrade from a place with a good internet connection to fill the cache.

Bring sage sources a well as the autonomous binary.

== Serve a notebook on a LAN ==

Bring a powerful computer and a wifi router to be able to serve a
notebook for the remaining people for which previous solutions did not
work (bios not able to boot on USB, participants not willing to install
Linux on their machine). Unless you have a very strong server, it is
usually not enough for all participants.

Ciao,
Thierry





On Tue, Nov 13, 2012 at 05:23:11AM -0800, Mike Zabrocki wrote:
> >I could hope for 4-5 that will use Sage in the long run, and 20 that 
> > definitely see the point but will get stuck by lack of infrastructure 
> > and expertise. 
> These sound like great numbers.
> 
> >>    I think to break the barrier and make a true sage days really 
> >>    productive, I think that you would need to partner with some 
> >>    organization like OLPC (one laptop per child) or arrange to 
> >>    minimize the problems with your hardware. 
> 
> > Well, I have a good contact for that: dad :-) We actually already used 
> > Sage on our home OLPC, although only through a remote Sage server. I 
> 
> I just mentioned OLPC because that was an organization I had heard of.
> I didn't know your dad was associated, but what an awesome contact to 
> have.
> 
> I don't yet see how to overcome infrastructure problems.
> I would summarize my experience as:
> 1. don't use the internet (you can't count on it anyway)
> 2. most computers have some old version of Windows
> 3. a few students will have their own laptops
> 4. Most students will have little or no computer experience
> 5. Most want to learn computers and see the point, a few choose to be 
> luddites and can afford to because the infrastructure is so unreliable
>  
> > Of course, the real thing would be to integrate a resource-optimized 
> > version of Sage within the Sugar activities. This probably won't be a 
> > priority for OLPC, since their main target population is children of 
> > age 6-12, but as you say we could explore other organizations as well. 
> 
> At the events I have been involved with, our highest priority was to
> minimize the infrastructure difficulties.  AIMS in South Africa sounds
> like it might be a good place to organize an event since you could
> potentially rely on computer access.
> 
> -Mike
> 
> On Monday, 12 November 2012 04:52:27 UTC-5, Nicolas M. Thiery wrote:
> >
> > On Sun, Nov 11, 2012 at 08:07:06PM -0800, Mike Zabrocki wrote: 
> > >    Wow! Nicolas fantastic report.  That was a challenge to do. 
> >
> > Thanks :-) 
> >
> > > I hope you managed a convert or two in Africa. My experience with 
> > > computer classes as part of a summer school (in Ghana, Kenya, 
> > > Tanzania and Madagascar) is similar except I never had a wifi 
> > > network and most of my students didn't have regular computer access. 
> > > Most of my students were complete novices to the computer, but 
> > > willing to learn.  Installing sage was several steps beyond what we 
> > > tried.  I would say that most of the infrastructure that we had 
> > > access to would not support sage (most computers were dated 
> > > pre-python, though I did not have the expertise to make this work). 
> >
> > I could hope for 4-5 that will use Sage in the long run, and 20 that 
> > definitely see the point but will get stuck by lack of infrastructure 
> > and expertise. 
> >
> > But as you said: �if our problem was only network, we were in pretty 
> > good shape to start with�. We had a selection of students that were 
> > definitely computer-literate (somehow, the main difficulty was to 
> > prevent them from running to facebook&all and eat up all the bandwidth 
> > whenever the network was working :-) ), even though most did not have 
> > programming experience. 
> >
> > >    I think to break the barrier and make a true sage days really 
> > >    productive, I think that you would need to partner with some 
> > >    organization like OLPC (one laptop per child) or arrange to 
> > >    minimize the problems with your hardware. 
> >
> > Well, I have a good contact for that: dad :-) We actually already used 
> > Sage on our home OLPC, although only through a remote Sage server. I 
> > doubt the old models can support running Sage locally, but for the 
> > upcoming models we certainly will have a shot (at least running in a 
> > terminal). 
> >
> > Of course, the real thing would be to integrate a resource-optimized 
> > version of Sage within the Sugar activities. This probably won't be a 
> > priority for OLPC, since their main target population is children of 
> > age 6-12, but as you say we could explore other organizations as well. 
> >
> > Cheers, 
> >                                 Nicolas 
> > -- 
> > Nicolas M. Thi�ry "Isil" <nth...@users.sf.net <javascript:>> 
> > http://Nicolas.Thiery.name/ 
> >
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sage-devel" group.
> To post to this group, send email to sage-devel@googlegroups.com.
> To unsubscribe from this group, send email to 
> sage-devel+unsubscr...@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-devel?hl=en.
> 
> 

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To post to this group, send email to sage-devel@googlegroups.com.
To unsubscribe from this group, send email to 
sage-devel+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.


Reply via email to