Posts tagged with linux

mahara e-portfolio for moodle

One of the items Moodle is working on for its 2.0 release is the inclusion of a portfolio which contains all the data for a specific user. A personal area, if you will, including course progress, files, user information, important dates and other similar items. Other software already does this in quite an effective way, and one of these pieces of software, Mahara, developed in New Zealand, the land of Moodle, is the one I chose to look at and install. From the reviews I saw, and reading briefly through its documentation it seems to integrate perfectly into moodle with single sign on galore. These are the steps I took to install it on my Ubuntu Intrepid Box, though the instructions should be similar for other distros.

This assumes you have Moodle already installed, for which I have instructions in an earlier thread.

To begin with, download the latest Mahara release. The Intrepid repositories have version 1.0.4, while at the time of writing the latest sources are 1.06, and are likely to evolve pretty fast so I suggest downloading from the mahara.org website.

First create the Mahara Database from the command line:

mysql -u root -p
[enter password]
create database mahara;
grant all on mahara.* to 'username'@'localhost' identified by 'password';

Obviously change username and password for something else. Untar and unzip the downloaded file, and then move it to the web directory:

tar -xjvf mahara-1.0.6.tar.bz2
sudo mv -f mahara-1.0.6 /var/www/mahara

Then you need to make an extra directory outside the web directory (we will use the same system moodle uses and put that in /var/lib/) for storing files and edit config.php to contain the right connection details (make sure you replace password with your password, and localhost with your domain:

sudo mkdir /var/lib/mahara
sudo chmod 777 /var/lib/mahara
sudo cp /var/www/mahara/htdocs/config-dist-php /var/www/mahara/htdocs/config.php
sudo sed -ie 's/postgres8/mysql5/' /var/www/mahara/htdocs/config.php
sudo sed -ie "35 s/''/'mahara'/" /var/www/mahara/htdocs/config.php
sudo sed -ie "36 s/''/'mahara'/" /var/www/mahara/htdocs/config.php
sudo sed -ie "37 s/''/'password'/" /var/www/mahara/htdocs/config.php
sudo sed -ie 's/'http:\/\/myhost.com/mahara/http:\/\/localhost\/mahara/' /var/www/mahara/htdocs/config.php
sudo sed -ie 's/\/path\/to\/uploaddir/\/var\/lib\/mahara/' /var/www/mahara/htdocs/config.php

Next add a crontab for mahara:

crontab -e

and add the following line:

* * * * * www-data php /path/to/mahara/htdocs/lib/cron.php

You should now be able to navigate to your mahara installation at http://localhost/mahara and login with admin and password mahara.

Now its time to link the networking between mahara and moodle. First login to both mahara and moodle with the admin user. For both mahara and moodle, choose networking and turn it to On. Then we go to Mahara's Single Sign on Option, located under manage institutions. Edit the default if you will only be serving one moodle install. Switch XMLRPC to on for shared authentication and edit the institution name. When u switch on XMLRPC and press add you'll get a pop up window, where you have to make sure "They SSO in", "Update user info on login", and "we autocreate users" have the tickboxes ticked. Also point wwwroot to your moodle installation (mine is at http://localhost/moodle)

Finally we go back into our Moodle installation and from the Site Administration menu, choose
Networking >> Peers, and add a new host, in my case I chose http://localhost/mahara/htdocs. Pressing add should bring up a page with the sitename and public key. You can edit the site name to reflect whatever feels right and then press save changes to continue. Next click on the services tab on the same page. Under SSO identity provider choose Publish, and under SSO service provider choose subscribe. In the Site Administration panel, click on Users and choose Authentication from the menu. Choose manage authentication and enable the Moodle Network Authentication plugin.

The final step is to give your users the permission to roam to other sites in the Moodle Roles system. Choose Users >> Permissions >> Define Roles from the Site. Edit the "authenticated user" role and allow roaming for remote moodle sites.

To turn on Mahara access in moodle, with Admin editting turned on, choose a Network Servers Block, and the Mahara site should just appear.

That's it, you now have single sign on access between moodle and mahara, so users can just login to Moodle and from there get their mahara portfolio. Far more items are shared between users, it just a matter of experimenting to see what's available and possible.

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)



Creating a (low) fat Client environment for LTSP

For more detailed instructions please look here: http://www.nubae.com/ltsp-linux-terminal-server-project-netbooted-fat-client-for-ubuntu-hardy-and-intrepid

LTSP stands for the Linux Terminal Server Project and is about the coolest and most cost effective technology out there. I've been fortunate and privileged enough to be working with this technology in schools and businesses. Generally LTSP reuses older hardware that runs as a terminal connected to a powerful server. In this way, older penitum and pentium 2 machines can run at practically the same speed as the server feeding them. This is because the processor and ram of the server are actually being used, with only the screen, keyboard and mouse being used on the terminal end. This is great for older machines and dedicated thin clients (which can cost as little as 50 euros), but for newer intel core 2 duo machines, running them as thin clients would be a waste. That said, the benefits of having a centralised location for the computer image and management of users is extremely helpful to an Administrator. This is where a low fat netbooted client comes in. Instead of running the programs on the server, the entire environment is run in the client, hence the term fat. This also relieves the server cpu and ram, as well as the bandwidth of the network slightly, and is ideal for multimedia systems that require Flash, Video, and Audio streaming. Installing the fat client is very easy and requires you downloading the script from here for Ubuntu Intrepid Ibex.

/usr/share/ltsp/plugins/ltsp-build-client/Ubuntu/030-fatclient

You then build your fat client by doing:

ltsp-build-client --chroot (name-of-chroot) --fatclient Ubuntu --highfat

Not the capital U in Ubuntu. The usage of --highfat is an extra option that builds a full multimedia sytstem and is quite resource intensive. A normal fat client has only the base educational games and programs, along with a basic internet suite. The --chroot (name-of-chroot) option is not required, it is only used if you already have a thin client environment under the default i386, which is under /opt/ltsp/i386, so name-of-chroot here would be something like fati386, which would correspond to the location /opt/ltsp/fati386/.

You can see an image here of the thin client in action:

Rate It! (Average 4.00, 1 votes)



eggdrop IRC bot with logging to website

After playing around a bit with the php bot logging to mysql, I turned to a little more industrial solution, which involved installing an eggdrop bot and a script which lives inside the bot to convert its log files to html. This turned out to be the easiest solution, albeit a time consuming one. First it was necessary to install an eggdrop bot, which on Debian and Ubuntu can be done like so:

apt-get install eggdrop

This installs the eggdrop to its global area, and if like me you want to run it from a specific user's home you need to copy the configuration file (eggdrop.conf) to the home dir of your choice (example: /home/logbotuser/eggdrop.conf) You must thoroughly go through the configuration file, and uncomment various locations that stop you from executing the bot without reading through ALL the configuration options. The important stuff is at the top, like the botnick, the channel, etc, but there is also important stuff further down, like which irc servers to connect to and the like. When you are done, you should start the bot doing:

eggdrop -m eggdrop.conf

you use the -m option only the first time, as this tells it to create a new user list, after which you can msg the bot hello from irc, or telnet into it and type NEW as the username. The bot should now be happily running on the channel of your choice. One other thing you can do is setup a cron job that makes sure your bot is running always. Basically the crontab checks every 10 minutes to see that the bot is still active, if it isn't it relaunches it. To set it up, move the botchk script from /usr/share/eggdrop/scripts/ to your user directory:

mv /usr/share/eggdrop/scripts/botchk /home/user/eggdrop/

Then you need to edit the bothck script which has some self explanatory settings corresponding to what you already configured in eggdrop.conf, but something that is not mentioned is the need to replace the 3 entries that have the string ./ $botdir to:

/path/to/eggdrop/dir/ $botdir

In the example above that would be /home/username/eggdrop/ $botdir

You then need to do the final part which is add the crontab entry like so:

crontab -e

Here you add the following line:

0,10,20,30,40,50 * * * *   /path/to/botchk

Now you can now download the logs2html script from here.

To install it, unzip it and follow the readme instructions. One thing not mentioned is that the actual compiled module is in the precompiled/eggdrop 3/ directory.You need to move this to /usr/lib/eggdrop/modules/

Then you must edit the logs2html.conf script and the chan.list file. You must also re-edit the eggdrop.conf file and add a line in the end that contains:

source logs2html.conf

When you are done, you should be able to view your irc logs on a website as defined in chan.list. There is an example here: www.nubae.com/logs


Rate It! (Average 0, 0 votes)