Changes

3,511 bytes removed ,  10:44, 6 June 2011
no edit summary
Line 1: Line 1: −
'''School Server Wish List'''
      
This is a first attempt to organize my thoughts based on the XS Wish List. It attempts to organize  
 
This is a first attempt to organize my thoughts based on the XS Wish List. It attempts to organize  
Line 13: Line 12:     
'''XS in 25 words or less'''
 
'''XS in 25 words or less'''
  −
      
XS is a LAMP stack.  
 
XS is a LAMP stack.  
Line 20: Line 17:  
'''Build Options'''
 
'''Build Options'''
   −
The current intent is to use SUSE Open Build System to all a deployment to select  
+
The current intent is to use SUSE Open Build System to allow a deployment to select the
 
architecture (i386, X_64) and packaging (Fedora, Debian) at build time. Whichever of these options is chosen  
 
architecture (i386, X_64) and packaging (Fedora, Debian) at build time. Whichever of these options is chosen  
 
obviously affects the XC build.  
 
obviously affects the XC build.  
   −
The overall functionality similar to XS-0.6 with some changes and addtions discussed below.
+
The overall functionality is similar to XS-0.6 with some changes and additions discussed below.
    
'''Base system'''
 
'''Base system'''
   −
Fedora: 15
+
*Fedora: 15
Apache:
+
*Apache:
MySQL:
+
*MySQL:
PHP:
+
*PHP:
      Line 37: Line 34:       −
Python 2.?
+
*Python 2.x
Python 3.?
+
*Python 3.x
    
including python-devel to support 'python setup.py install'
 
including python-devel to support 'python setup.py install'
   −
Note: my take is that Python 2. must be supported because the packages in XC do not currently support Python 3.
   
Python 2 is probably required and Python 3 a build option.
 
Python 2 is probably required and Python 3 a build option.
   Line 49: Line 45:  
This is not a complete list but some examples include:
 
This is not a complete list but some examples include:
   −
idmgr - registration of XOs
+
*idmgr - registration of XOs
Journal backup and restore
+
*Journal backup and restore
XO lease-activation
+
*XO lease-activation
   −
'''Network'''
+
'''XS configuration'''
   −
Currently each component of XS is configured as it is added. It might be nice to configuration clearly separated so that it is easy to see what to do for local customization.
+
Currently each component of XS is configured as it is added. It might be nice to configuration clearly separated so that it is easy to see what to do for local customization. This is particularly important for the network setup.
   −
This is particularly important for the network setup.
+
'''Network'''
    
The default is that an XS install configures the baseboard (RJ45) port for the LAN (172.18.0.1). A separate script
 
The default is that an XS install configures the baseboard (RJ45) port for the LAN (172.18.0.1). A separate script
such as netsetup.sh should be available to configure the WAN network.
+
such as netsetup.sh should be available to configure the WAN network. This script should not be required unless the schoolserver has a WAN connection. It would be easier if the script were a file on the XS install key rather than a file in the XS build. This would make it possible for a deployment to edit the script without modifying the XS build.
    
The network install and/or the netsetup.sh script should support access by the schoolserver using a gsm network.
 
The network install and/or the netsetup.sh script should support access by the schoolserver using a gsm network.
Line 78: Line 74:  
'''Basic Self Tests'''
 
'''Basic Self Tests'''
   −
XS is componsed of stable production upstream packages. The sugar-specific packages may need some  
+
XS is composed of stable production upstream packages. The sugar-specific packages may need some  
sort of self-test; howver, at the end of the day these are developer tests.  
+
sort of self-test; however, at the end of the day these are developer tests.
 +
 
 +
The questions in deployment are 'is the XS build ok' and 'has it been correctly installed on a specific
 +
server'.  
   −
The question in the deployment is the XS build ok and has it been correctly installed on a specific
+
In Nepal, this is satisfied by  
server. In Nepal, this is satisfied by  
+
#mkusbinstall works,  
(1) mkusbinstall works,  
+
#the install works, and  
(2) the install works, and  
+
#it is possible to access the server from an XO via SSH.
(3) it is possible to access the server from an XO via SSH.
     −
It would be desirable to have the second ethernet port before netsetup.sh configured for a direct SSH connection  
+
It would be desirable to have the second ethernet port configured in XS for a direct SSH connection  
 
(patch cable) to test problems with the LAN network and router configuration (easily the most common problems  
 
(patch cable) to test problems with the LAN network and router configuration (easily the most common problems  
 
are httpd not started or the router not configured correctly).
 
are httpd not started or the router not configured correctly).
 +
 +
There should be a netsetup.sh script to configure the WAN network (second port). This should only have to be run when the school server has a connection to the internet. Currently this script is in the XS build. It would be easier for a support person to find and use if it were on the XS usb drive as a separate file. This way it could be edited on an XO.
    
"It would be great to have basic self
 
"It would be great to have basic self
Line 108: Line 108:  
IMO this is a 'holy grail'. Anyone who has used Microsoft diagnostic wizards knows the frustration and uselessness of trying to anticipate and provide automated corrections of problems.  
 
IMO this is a 'holy grail'. Anyone who has used Microsoft diagnostic wizards knows the frustration and uselessness of trying to anticipate and provide automated corrections of problems.  
   −
XS has proven very stable. In a normal school evnvironment new releases are probably only needed (or desired) one
+
XS has proven very stable. In a normal school evvironment new releases are probably only needed (or desired) one
 
time per year, prior to the start of the new school year. This suggests that the critical requirement is extensive testing of the build prior to deployment.
 
time per year, prior to the start of the new school year. This suggests that the critical requirement is extensive testing of the build prior to deployment.
   −
New packages:
+
'''New packages:'''
    
*systemd: a replacement for SysVinit and Upstart that acts as a system
 
*systemd: a replacement for SysVinit and Upstart that acts as a system
Line 124: Line 124:  
forwarding enabled on the Internet gateway, eases accessing the
 
forwarding enabled on the Internet gateway, eases accessing the
 
schoolserver from anywhere on the Internet.
 
schoolserver from anywhere on the Internet.
  −
*MySQL: a relational database server, and a de-facto backend for many
  −
services. Also it would be good to ditch PostgreSQL for Moodle. MySQL
  −
management is easy than PostgreSQL and there is more documentation,
  −
community support and human resource for MySQL.
  −
  −
*PHP with required extensions: a powerful server-side HTML embedded
  −
scripting language. OLE Nepal?s digital library ?E-Pustakalaya? runs
  −
on PHP and MySQL. Also we might need some PHP extensions like
  −
php-mysql, php-gd, php-xml.
  −
  −
*Python 2.x and Python 3.x: an interpreted, interactive,
  −
object-oriented, extensible programming language. Python 2.x should be
  −
included for backward compatibility as many python scripts and
  −
applications still use the 2.x version. Python 3.x should be included
  −
for forward compatibility ? more apps would be coded in 3.x version in
  −
coming days.
      
*Expect: a Unix automation and testing tool and used to automate
 
*Expect: a Unix automation and testing tool and used to automate
Line 152: Line 135:  
framework).
 
framework).
   −
*Java: Adding a Java Runtime Environment (JRE) would add support for
+
'''< OLPC'''
running java based applications (e.g. Tomcat, Fedora Commons, etc.)
+
 
tzdata and extensions: Adding timezone data and its wrapper libraries
+
There are two scenarios. One, a student with a defective laptop gets a replacement. The records on the schoolserver need to be updated to reflect the change. Two, students are in two shifts. The afternoon shift on Monday is the morning shift on Tuesday. In this case two students, one in each shift, could share a laptop (0.5 LPC). In Rwanda this would have allowed 100,000 laptops to service 200,000 students. This requires (1) a login to identify the student using the laptop, (2) two datastores - with a symbolic link at login, and (3) A and B backup folders on the school server.
in various languages will help the support for timezone data in
+
 
applications hosted on XS (e.g. SchoolTool needs pytz).
+
'''XC in 25 words or less'''
 +
XC provides all of the software and content required in the school server but not included in XS.
 +
 
 +
'''Library'''
 +
 
 +
In Nepal this is Pustakalaya (www.pustakalaya.org). It is supported by Java, Fedora Commons and Fez. This installation is in XC.
 +
 
 +
There is a project to develop a library based on Django. This would be an alternate in XC.
 +
 
 +
'''Wiki4Schools'''
 +
 
 +
XC in Nepal includes the Wiki4Schools (2008 version - which apparently is the most recent). This is based on mediawiki.
 +
 
 +
There is a project to provide the same capability using openZim, this could be an alternate in XC.
 +
 
 +
 
 +
'''Dictionary'''
 +
 
 +
XC in Nepal includes Wiktionary and a Nepali dictionary (Sabdakos). This will clearly be very deployment-specific.
 +
 
 +
'''Sugar Activities'''
 +
 
 +
XC includes a repository of Sugar Activities. This allows students to download and install activities of their choosing from the school server.
 +
 
 +
'''Dan's Guardian'''
 +
 
 +
Web filtering requires lots of disclaimers. Whoever is the authority for deploying a schoolserver needs to sign off that the filtering offered is accepted as adequate. This is part of XS in Nepal but moving it to XS might make the XS build easier.
 +
 
 +
'''Moodle'''
 +
 
 +
This is installed in XS in Nepal but could be installed in XS. It is dependent on the configuration of the LAMP stack in XS (Apache, MySQL or PostGreSQL). This might be a good time to move to Moodle 2. AFIK no deployment is currently using Moodle so there would be a minimum of issues with backward compatibility.
 +
 
 +
'''SchoolTool'''
 +
 
 +
While not directly related to the OLPC mission, one of the first uses of computers in schools is to automate the administration (attendance lists, academic calendar, and so on). There is a possibility to integrate SchoolTool with Moodle.
 +
 
 +
'''Mothership or Content Update'''
 +
 
 +
The model in Nepal and Rwanda is that the central development group provides the same software and content to each school. The school is not expected to make any changes and, if it did, they would be erased on the next update.
 +
 
 +
It is unlikely that schools will have sufficient broadband access to support concurrent browsing for every XO.
 +
However, there should be a mechanism where each school server can connect with the mothership (e.g. cron job) and receive updates and upload changes (e.g. email). The mothership could then include this information in the next connection opportunity for the other schools. There would have to be a parallel mechanism using usb keys (e.g someone from the school goes to town with the usb drive and connects from an internet cafe).
   −
*SchoolTool: a free administrative software for schools around the
+
The schoolserver, in turn, provides updates to the XOs.
world. It provides a good administrative interface and facilities.
  −
I?ve already packaged SchoolTool for Fedora and tested it on XS. OLE
  −
Nepal is also in transition to pilot SchoolTool to a few schools. Also
  −
that a integration of Moodle and SchoolTool is being worked out.
  −
Moodle 2.x: a Course Management System (CMS), also known as a Learning
  −
Management System (LMS) or a Virtual Learning Environment (VLE). The
  −
moodle on current XS is outdated. Moodle 2.x hosts improved interface
  −
and additional features than its previous versions. With Moodle, a few
  −
other features would be interesting:
  −
Using MySQL instead of PostgreSQL
  −
Integration with SchoolTool: See
  −
http://docs.moodle.org/en/Development:SchoolTool_Integration for
  −
details.
  −
A mechanism to consolidate Moodle data. The scenario would be like XS
  −
would be shipped with some sample data, teachers and students at the
  −
school would create some data, and additional data would be pushed
  −
periodically through content updates. So there should be a mechanism
  −
to consolidate all the data and retain it, without losing the previous
  −
data while doing content update.
     −
*Content Updates
+
'''Socializing/Communication'''
XO laptops with a limited storage can not hold much content, so heavy
  −
content (e.g. E-Pustakalaya) is offloaded to the school server. Also
  −
that the XS hosts sugar activity updates. In Nepalese deployment, we
  −
generate content bundles including E-Pustakalaya and E-Paath along
  −
with new releases of sugar activities every three month, and the
  −
deployment team would generally visit each schools and update the
  −
content. Nepalese XS is equipped with scripts to handle headless
  −
content updates. Additionally we are also doing content update through
  −
network/internet wherever feasible. Content update through network can
  −
be really troublesome with deployment scenario of schools having
  −
limited connectivity to internet and/or having only LAN level access
  −
among schools. Devising content update would involve creating a
  −
unified format for content bundles and devising a way to deploy
  −
content updates easily through network with a minimal payload on the
  −
content server. I would suggest a torrent based mechanism to handle
  −
content deployment ? it will offload content through local peers and
  −
handle data checksums and all. Meanwhile a mechanism to support
  −
loading content on a USB harddisk would be great as it will help to
  −
deliver the content to the XS with no internet connectivity.
     −
*Web content filtering
+
Open Atrium is based on Drupal. Providing a way for teachers to communicate with the central support group and with each other is very important.
XS with internet access are configured as a internet gateway for XO
  −
laptops and other devices connecting to the network. This poses one
  −
problem ? children can be subjected to websites related with vandalism
  −
and pornography. A content filtering mechanism for web browsing would
  −
solve this problem. Additionally some file extensions and websites can
  −
be blocked, so as to help traffic shaping. I would suggest
  −
Dansguardian as a tool for this purpose. We have been using
  −
Dansguardian on NE-XS (the Nepalese clone of OLPC XS), and has been
  −
successfully using it. Dansguardian supports message/information
  −
templates in case a extension or a website is blocked. Also that it
  −
supports unicode message. Hence using a Dansguardian with customized
  −
message templates in local languages would help a great for content
  −
filtering, meanwhile displaying appropriate message in case of site
  −
blockades.
     −
*Journal Backup on a shared model distribution
+
Moodle may offer an alternate way to do this.  
I am aware that OLPC projec emphasizes the laptop distribution model
  −
having 1:1 child-laptop ratio, that is to say each kid owns a laptop,
  −
but sharing a laptops among few kids (say one laptop to be shared
  −
among 3 kids) can be beneficial sometimes. For developing countries
  −
like Nepal, it might take some time to arrange funds for mass OLPC
  −
deployments. In such a scenario, where mass deployments might take
  −
time, grounding on in available resources (XOs) would seem appropriate
  −
than to wait to gather enough resources for mass deployments. This
  −
focuses on having the XOs shared and utilized rather than keeping them
  −
unused. Having said that, physically sharing a laptop among few kids
  −
might seem no-brainer, but the complexity lies in how the XS interacts
  −
with the school server and how services are provided/consumed. One
  −
important aspect of this is Journal backup. XS has a service call
  −
id-manager (idmgr) which registers a laptop with school server. The
  −
registration uses the XO serial number as a unique key to maintain the
  −
list and various service like ds-backup is provided based upon the
  −
key. In the laptop-sharing scenario, the journal created on a laptop
  −
might actually belong to more than one user, and managing journal
  −
backups and restore can be troublesome. Meanwhile, multiple users
  −
using one laptop means that more journal entries would be created and
  −
hence the frequency for journal backup would increase inherently. To
  −
solve this problem, the idmgr and the ds-backup service somehow needs
  −
to recognize the user creating the journal entry rather than just
  −
based upon the XO serial. Unfortunately, I do not know how to force
  −
user logins on sugar; and forcing user logins consequently is going to
  −
confuse the kids. Another way might be to use one folder per user per
  −
XO serial. But then we need to tell idmgr and ds-backup on which
  −
journal entry should go into which folder. I don?t yet have a clear
  −
idea on how to implement this, but I would definitely like to have
  −
this feature included with the XS
     −
*Socializing/Communication Platform
+
WordPress and Planet may also be an option.
I have always been looking forward to implementing a socializing and
  −
communication platform on the XS that will help users to socialize and
  −
communicate. By this I mean inter-school and intra-school
  −
communication. Also that this framework can be used to send messages
  −
and notifications to users (teachers, administrators, and students).
  −
Implementing an offline mail queue which keeps mail lined up and sends
  −
them when it has internet connectivity would be a great features.
  −
Schools in Nepal have sparse Internet connectivity, and such a mail
  −
queue might help inter-school communication. I?m looking forward to
  −
use Open Atrium as a tool for this purpose. Also a multi-node system
  −
of Open Atrium, if it can be implemented, with a inter-node
  −
communication, would ease the task a lot.
     −
These were some of the customizations I envision would help a great
+
In any case, these tools need support from the mother ship.
deal with the XS. I?m not even sure if items off my wishlist are
  −
feasible at this time. What is your XS wishlist?
   
_______________________________________________
 
_______________________________________________
184

edits