Posts tagged with sugar

LTSP and collaborated netbooks (not just xos)

We recently held a olpc / LTSP presentation in Vienna, which had the enormous turnout of 11 people. Though the turnout was pretty bad, it did give us the opportunity to be experimental and check the wonderful world of using sugar on various platforms via LTSP.

We hooked up 2 acers, a thin can (artec), a laptop acting as LTSP and ejabberd server, along with 2 traditional xos. Before going into the details of the experiment some explanation is due. LTSP stands for Linux Terminal Server Project, and refers to the use of a mainframe like infrastructure, where minimal systems without hardrives and little cpu and ram can be used as diskless terminals. The idea is that everything runs from the server, with the client netbooting the environment and using the little ram and cpu it has to load the kernel and connect its display session to the server.

Usually older computers (pentium 200hz+ with 64 MB ram) are re-used in this way, though there are various dedicated thin terminals that are mobile phone sized and are highly energy efficient. LTSP terminals usually have no moving parts, making them hard to break. Whereas the XO, and rightly so, has been marketed as the guerrilla
educational device for the 3rd world, it is a little tied in with a specific company and a specific set of hardware. Sugar on the other hand is not, and in my view the more hardware can run sugar natively and flawlessly, the closer we get to a solution that can really feed the masses. As the politics of OLPC grow and change, such as dropping
sugar support, or moving to windows (these are just speculations), Sugar's growth and deployment should not be affected. If anything gives sugar and Sugar Labs a firm grounding its its ability to run on multiple systems and scenarios. I am aware that Sugar Labs is in communication with various vendors and distributors, and it is only a matter of time before some interesting deals are struck.

In our presentation case, for a mobile server, we used a dual core 1.8ghz with 2 gigs of RAM. Setting up the server on the laptop was pretty straight forward, and involved installing LTSP on top of a base Ubuntu system, and then
adding ejabberd as well as Sugar sessions for all newly created users. One can choose other sessions of course, but our interest was to test collaboration on all the machines, in which case Sugar was our environment of choice, and the login session for all our users. Installing ejabberd on the ltsp server was the only requirement for sharing across all machines. I followed the instructions as layed out on the laptop.org wikipedia and nubae.com site. There are still some issues installing ejabberd, such as permissions of the /etc directory, but it has generally become much simpler to install for anyone. Without ejabberd the machines did see each other via xmpp-local, including seeing shared activities, but they tended to fall of the network neighborhood. With ejabberd the machines were visible continuously and were very responsive to connections.

For testing purposes we tried sharing chat across all the machines, which worked flawlessly. The applications in general seemed to load much faster than with the xo hardware, both on the thin can and the acer ones. It was nice to see that a dual core laptop with 2 gigs of ram was more than happy to serve 6 thin terminals at once. This makes
the perfect mobile school, with all the machinery fitting into one backpack!

The laptop server was set up to get wireless internet, and then hand out LTSP through the wired interface, using a gigabit switch as a connector. One of the things that still requires a lot of work, and perhaps this
is due to using Ubuntu, is getting all the activities to work. I tested various activities like puzzle slider and jigsaw puzzle, which just left the activity icon cursor flashing on the screen and eventually fell back to the main screen. Another problem was that turning off or restarting the session was nonreactive. Also many, of the items in the control panel either crashed sugar out completely (date/time) or didn't work. These problems have recently been turned into bug reports, so we hope by the next release of Ubuntu, the environment works as it should.

LTSP and sugar are a great combination and much wished for in schools in the developing and developed world. We will talk a little more about the advantages of LTSP, Sugar and scaling, as well as wireless LTSP and Fat clients in another article.

Rate It! (Average 0, 0 votes)



windows xp XO vs Linux XO

Recently there's been a bit of speculation about how one kid using 2 xo laptops, one being windows xp based, and the other linux based, reacted when using the machines. Although the conclusion of the article was that the kid doesn't care which OS they are using, as long as its unique, novel, and fun, the experiment really missed the mark a bit. The article, found here, http://news.cnet.com/8301-13860_3-10074298-56.html?part=rss&subj=news&tag=2547-1_3-0-20 takes one user and shows the user experience on some very limited uses of the laptops. Reading it, one gets the feeling that the experiment was done without much planning or research.

As has already been pointed out by education specialists, without setting up a learning environment with a group of kids, using collaboration as it was intended, it is not an educational experience, just a computer user experience. Sugar was created specifically for collaboration, allowing users to share the educational computer experience amongst peers and a teacher. In this way they can work together on assignments, get feedback from each other and the teacher, and collaboratively create something unique and wonderful. Sugar is radically different and novel to the way computers have been used until now for education.

An experiment of this kind should have involved children using windows and linux xos to collaborate and create audio, video, documents, and journal/blog the experience. It is not hard to set up something like that, and would bring new methods of teaching one step closer to the general public.

Of course, most people involved in OLPC, Sugar and collaborative teaching already know all this, and its most likely preaching to the choir, but to be effective, this message needs to get across to everyone including parents, students and teachers. They need to realize that there are other methods of learning, methods that will break the rigid boundaries that currently focus usage of computers in the most rudimentary direction.

Computers and the collaborative experience can be so much more, some examples of which might be:

- using an astronomy program collaboratively in the field while actually looking at the skies
- experiments in recording and cataloging nature and really doing scientific field work like the scientists they might one day become.
- making music in groups with each person focusing on a particular part of the song, then remixing, tweaking and re-releasing, like real musicians.
- playing educational games in groups where team building becomes a natural element, just like in online/lan games.
- creating teaching materials that can be distributed and shared across groups, classes and schools, thereby facilitating an easily transferable repository of teaching content.
- online discussions about particular moments in history, sensitive laws, todays culture, and the politics of life, all which encourage interaction and sharing of ideas.
- the uses of sensors to measure the environment, be it measurements, temperature, ph levels, or atmospheric pressure, and recording these.

Not only are all these activities fun, but they are practical real time user experiences that allow children and teachers to trace their educational progress.

Rate It! (Average 0, 0 votes)



Sugar on LTSP Ubuntu Intrepid Ibex with ejabberd and collaboration

With the announcement that the Sugar packages were finally up to date in Ubuntu, it was time to try something I've been wanting to do for a while, run a sugar environment on Ubuntu LTSP terminals with collaboration. With the help of some sugar devs I managed to get it all working quite nicely:

Installing Sugar

The base sugar and activities all seem to work wonderfully, although at the time of writing some of the other sugar activties are not working yet. By the time Intrepid is released this will probably be fixed.

sudo apt-get install sugar sugar-activities

You can search for what other sugar activites you can install like this:

sudo apt-cache search sugar

Then change the default session to sugar like this:

sudo nano /home/$username/.xsession

(where $username is the user for whom you want sugar to be the default shell.)

And add the following to the .xsession file:

export SUGAR_LOGGER_LEVEL=debug
export GABBLE_DEBUG=all
export GABBLE_LOGFILE=/home/$user/.sugar/default/logs/telepathy-gabble.log
export PRESENCESERVICE_DEBUG=1
export LM_DEBUG=net
exec ck-launch-session dbus-launch --exit-with-session sugar-shell

A quick explanation of the file is in order. The export lines are actually for debugging, and aren't needed if you don't intend to look at the log files. Remember $user should be the user home folder. The ck-launch-session is for making sugar exit properly when exiting from the menu. The --exit-with-session is for making sure there are no lingering sessions on ctrl-alt-backspace, currently the only way to exit, as ck-launch-session doesn't seem to work.

Finally, make sure you have your server hostname in place of olpc.collabora.co.uk:

sudo sed -ie "s/olpc.collabora.co.uk/hostname/" /home/username/.sugar/default/config

There are now 2 ways to install ejabberd, as the ejabberd packages in debian are up to date so installing ejabberd from scratch only really helps for non debian distros.

Installing Ejabberd from the repositories

sudo apt-get install ejabberd
sudo dpkg-reconfigure ejabberd

You need to add the user (usually admin) and the fully qualified domain name where ejabberd will be running. You can find what this is by doing hostname -f.

Patch /etc/ejabberd.cfg by downloading the olpc based patch and applying it:

wget http://dev.laptop.org/~morgan/ejabberd/ejabberd.cfg.patch
sudo patch /etc/ejabberd/ejabberd.cfg  ejabberd.cfg.patch
sudo /etc/init.d/ejabberd restart

skip the installing ejabberd from source and continue where it says installing the SSL certificate

Installing Ejabberd from source

The first step involves downloading the source package like this:

mkdir ejabberd
cd ejabberd
wget http://www.process-one.net/downloads/ejabberd/2.0.0/ejabberd-2.0.0.tar.gz
tar xfz ejabberd-2.0.0.tar.gz

We then need to download the patches from olpc that allow ejabberd to perform proper collaboration, and install the patches:

wget http://people.collabora.co.uk/~robot101/olpc-ejabberd/shared_roster_push2.diff
wget http://people.collabora.co.uk/~robot101/olpc-ejabberd/shared_roster_recent.diff
wget http://people.collabora.co.uk/~robot101/olpc-ejabberd/shared_roster_online.diff
wget http://people.collabora.co.uk/~robot101/olpc-ejabberd/mod_ctlextra.diff
wget http://people.collabora.co.uk/~robot101/olpc-ejabberd/ejabberd.cfg
cd ejabberd-2.0.0/
patch -p1  ../shared_roster_push2.diff
patch -p1  ../shared_roster_recent.diff
patch -p1  ../shared_roster_online.diff
patch -p1  ../mod_ctlextra.diff
cd src
./configure
make
sudo make install

We also edit /etc/ejabberd/ejabberd.cfg and replace jabber.laptop.org with the actual server hostname and the user "jtest" with "admin" (although u can use a different user if you like):

cd ../..
sudo cp ejabberd.cfg /etc/ejabberd/
sudo sed -ie "s/{hosts, ["jabber.laptop.org"]}./{hosts, ["hostname"]}./" /etc/ejabberd/ejabberd.cfg
sudo sed -ie "s/{acl, admin, {user, "jtest","jabber.laptop.org"}}./{acl, admin, {user, "admin","hostname"}}./" /etc/ejabberd/ejabberd.cfg

Remember to change hostname for the actual server hostname.

Installing the SSL certificate

You must also install an SSL certificate, which is required for collaboration to work (this is an important step.)

openssl req -newkey rsa:1024 -keyout ejabberd.pem -nodes -x509 -days 3650 -out ejabberd.cer
echo "" >> ejabberd.pem
cat ejabberd.cer >> ejabberd.pem
sudo cp ejabberd.pem /etc/ejabberd/ejabberd.pem
sudo chown ejabberd:ejabberd /etc/ejabberd/ejabberd.pem
sudo chmod 400 /etc/ejabberd/ejabberd.pem

Finally we add the user@hostname to /etc/ejabberd/ejabberdctl.cfg remembering to change hostname for your real server hostname:

echo "ejabberd@hostname" | sudo tee -a /etc/ejabberdctl.cfg /dev/null

Then you can turn ejabberd on with

sudo ejabberdctl start

See if ejabberd is running properly:

sudo ejabberdctl status

which should produce the following output:

Node ejabberd@hostname is started. Status: started
ejabberd is running

Then add the admin user:

sudo ejabberdctl register admin hostname xx

This should now allow you to login to the web ejabberd control panel:

Go to http://yourserver:5280/admin/
Log in as your ejabberd's administrative user. Your username is a Jabber address e.g. "admin@yourserver".
Select Virtual Hosts, then your server hostname, then Shared Roster
Add a group called Online with the following settings:
o Name: Online
o Members: @online@
o Displayed Groups: Online

It is recommended you register a user via your favorite jabber program and as the sugar users log in, you'll be able to see them in the Online group.

If you run into problems you can check the logs in /var/log/ejabberd/ to see what could be wrong. And for Sugar logs, you can look at /home/$user/.sugar/default/logs/

Enjoy your terminal session sugar experience!

Rate It! (Average 0, 0 votes)