Open Educational Resources Africa: Is it built on proprietary technologies?
Tweet
419 days ago
Some things just leave me gobsmacked. I cannot be absolutely sure of what I say, so I am willing to be proven wrong!
Today I saw a post that appeared on my Facebook profile from a FB contact about a blog post that he made about OER Africa. The site for OER Africa is - as far as I can tell - running on proprietary technologies! I could understand this if there were a scarcity of skills to build on a Free Software stack in Africa, but there is not. For example, any one of the nodes of AVOIR could build a site like that in a few days (or hours), and there are AVOIR nodes in 16 institutions around Africa. They work exclusively with African-made Free Software (open source). So why lock the so-called OERs up in proprietary technology?
More importantly, this highlights the absurdity of the notion of 'open'. It is actually utterly and totally devoid of values, so people can do stuff like this and still call it 'open'. That is why I prefer to keep the notion of Freedom in the concept, and prefer to talk about Free Educational Resources. I allow for the notion of open to be included by talking about F/OER (Free and Open Educational Resources). But surely one of the key aspects of legitimate F/OERs is that the entire stack is also Free.
OER Africa really needs to get serious about Freedom throughout the entire stack if it is to be taken seriously. Also, a key to the success of any such initiative is going to be building the ecosystem. It is always going to be easier to build an ecosystem in partnership with other initiatives that are building a compatible ecosystem. Furthermore, 'community before content' should be the mantra of any attempt to build a real 'F/OER' ecosystem. In its current incarnation, atop a proprietary software stack, and finding zero synergy with related software initiatives, I have to wonder if OER Africa deserves any further attention, or if its just another poorly conceived donor project that will die a natural death when the donor funds dry up.
I don't know, but I do feel a bit disgusted. I would prefer it otherwise.
fore OER africa
| Trackback URL No trackbacks were found for this post |
Canon 50D: using the top controls
Tweet
421 days ago
I have a Canon 50D digital SLR. Its a great camera to play with, and I am finally learning to take control of the camera. There are a few videos on YouTube that are good for working with this camera, so I will share them on here, as much for myself to find them again as any other reason.
Here are a few pictures that I have taken with this camera. I am not sure if I did the Flickr thing right, so there may be some older ones mixed in.
camera photography
| Trackback URL No trackbacks were found for this post |
New module for #Chisimba: Apture integration
Tweet
425 days ago
In my minute little bit of spare time, I created a module for Apture use in Chisimba. Apture is a Web 2.0 site that allows you to build multimedia content into your content by providing drag and drop for video, audio, media from hundreds of sites. Its pretty cool stuff. You don't use it in edit mode, you edit it after saving in the live page! Check out some of the links in this page that have little icons next to them to see Apture in action.
The module is still pretty alpha, but it is stable enough for me to risk installing it on the KIM site, as well as to use it here on dkeats.com. To use it, you need to add some code to the page template of the skin you are using. The code goes into your page template before the </body> tag, and if you have any scripts at the end of your page, you need to put this code BEFORE those scripts. The code you add is:
$objModule = $this->getObject('modules','modulecatalogue');
// See if the apture module is registered and set a param
$isRegistered = $objModule->checkIfRegistered('apture');
if ($isRegistered){
if (!isset($suppressApture)) {
$objApture = $this->getObject('apturecode','apture');
echo $objApture->getAptureScript();
}
}
You can see this functionality in the kim_wits skin, which is in the skins repository. The module will be added to the User menu, so on a live site, you should use Configure module links to remove it. I will fix this in the next version in a day or so.
To use it you need to go to [LINK] http://www.apture.com[/LINK] and click the button "Download Apture Plugin". choose "Other Platform" and then "Get started now". Go through the registration and add your site to the list of sites you are installing apture on. You can use http://localhost on a test site - it seems to work OK.
When you have saved your site, you will get a code snippet of the type
src="http://www.apture.com/js/apture.js?siteToken=6Bs4YyH"
charset="utf-8"></script>
If you don't see it, click installation instructions. The token is the bit after the equal sign in the siteToken=6Bs4YyH part of the script, and in this case it is 6Bs4YyH. Copy this.
Go to User parameters on the user menu in your chisimba site (requires Userparamsadmin), and add a parameter 'apturetoken' and make its value the token as noted above, in this case '6Bs4YyH'.
Once you have done this, and the apture module is installed, you should see a howto video popup the first time you open your enabled site. To activate it, hit the letter e (on a saved page, not in the FCKeditor). Select some text, and see what happens! Its pretty cool, no?
$permittedModules=array('blog');
to
$permittedModules=array('blog', 'yourmodule');
chisimba apture multimedia
| Trackback URL No trackbacks were found for this post |
Google SMS services: a good thing for 'Africa'?
Tweet
434 days ago
A blog post appeared yesterday on the official Google Blog entitled Extending Google services in Africa ( http://googleblog.blogspot.com/2009/06/extending-google-services-in-africa.html). The post talks about one-third of the population owning a mobile phone and many more having access to one, but that most only have voice and SMS capabilities. Google has therefore focused on SMS, and has a number of SMS based applications, including Google Trader and Google SMS Tips. The blog post talks about information poverty.
The story is reiterated on the official Google Afirca Blog under the title Google SMS to serve needs of poor in Uganda. The focus of that article is on the SMS marketplace application, which is probably one area where SMS can be useful, in that there is a business need, and the cost can be passed on to the customer through normal business practices. However, I am worried that Google seems to be suggesting that 'the poor' can be made information rich by buying prepaid SMS bundles from MTN (MTN in Uganda is currently the only service provider supporting the service).
Interstingly, while it is true that a lot of current phones only support voice and SMS, what the Google blog post fails to point out, SMS is still very expensive in most African countries. Indeed, extensive use of any of these SMS services, apparently available only in Uganda right now, is likely to cost quite a lot of money. With many African countries dealing in prepaid services at higher rates, the people who are information poor will pay significantly to alleviate their information poverty using SMS.
Indeed, I can easily imagine running up an SMS bill that would exceed the cost of a low-end phone that can do basic web browsing and run XMPP based services. This is a bit of a Catch-22 type of situation in that spending money on SMS might prevent people from accessing cheaper sources of information by keeping them from getting a better phone. For example, a phone that can support XMPP messages (most modern phones) can retrieve text based information for about 1/2000th the cost of sending an SMS. That means you can do around 2000 searches for the price of a single SMS search.
XMPP based communication is widespread in Africa, particularly in South Africa where the MXiT application is extremely popular among young people, with about 11 million subscribers. Other XMPP applications that can run on phones work just as well, you do not need to subscribe to the MXiT service.
Paul Scott of the University of the Western Cape's (UWC) Free Software Innovation Unit (FSIU) has developed some innovative services based on XMPP messages, and thanks to his work and that of Wesley Nitsckie, adding new ones within the Chisimba framework is very simple to do. The framework was developed in the African Virtual Open Initiatives and Resources (AVOIR) project to foster collaboration in Software Engineering in African institutions using Free Software (Open Source) as the vehicle. The UWC XMPP based tools in Chisimba have already been used extensively in drug counselling. Paul has built some of this into a XMPP based social networking service at http://www.peeps.co.za. For example, you can send a dictionary lookup or a Wikipedia request to Paul's service and get the results back on your phone for a tiny fraction of the cost of sending an SMS.
So the question is, are SMS-based services going to contribute to information wealth, or further entrench information poverty. The answer is probably somewhere in between, but certainly not in the space the Google marketing hype would have us believe. And I am a big fan of Google!
[COLORBOX:boxtype=bluebox] Links
More on Google SMS services http://www.google.co.ug/mobile/sms/
Paul Scott's XMPP based social network http://wwww.peeps.co.za
African Virtual Open Initiatives and Resources http://avoir.uwc.ac.za
Business Times article on drug advice services http://www.thetimes.co.za/Business/BusinessTimes/Article1.aspx?id=1017017
[/COLORBOX]
chisimba sms xmpp
| Trackback URL No trackbacks were found for this post |
My SlideShare presentations
Tweet
435 days ago
Here are all the presentations that I have on slideshare. They are all licensed under a Creative Commons, Attribution-ShareAlike license.
presentation
| Trackback URL No trackbacks were found for this post |
Learning new technologies
Tweet
441 days ago
helpdesk
| Trackback URL No trackbacks were found for this post |
A #Chisimba developer and demonstration installation and a Bash script to automate it
Tweet
444 days ago
When I set up the PHP5 development framework, Chisimba, on my laptop, I always follow a practice that I have used for development and demonstration purposes since we first created Chisimba. I have written about it before on the nextgen-online mailing list, and David Wafula published this on the AVOIR site. Hence, this has been published before, but what I am going to do here is to provide a bash script that automates most of this process.
The install takes advantage of the soft linking capabilities of GNU/Linux to allow multiple installations to run from the same code base. In that way, you can develop different functionality with different installs but you only need to maintain a single code base. In addition, you can run demonstration sites on your laptop without having to deal with the confusion of maintaining multiple checkouts or copies of the Chisimba code. This basic setup can also be used to create multiple live sites, and I use this on http://kim.wits.ac.za for my test and play sites.
I use Eclipse for development, so I check out the code using the Subversive plugin. However, here I will give the instructions for command line checkout. You can adapt them if you use a GUI for interacting with Subversion.
Firstly, I always do my Chisimba checkouts in my home directory. The reason for that is that I use RSYNC to back up my home directory quite often, so if I have done some editing and not committed the code to subversion yet, the chances are it will be in my backup. Of course, the only reason not to commit code to subversion is if it is a core module that will break everything. Since I work mainly on filters, this is the case, so I need them to be working properly before I commit. Normally, youwould just commit your code to subversion and not worry about backups.
I create a directory called chisimba in my home directory, so when I begin, I have
/home/dkeats/chisimba
I am using Ubuntu (Jaunty at the time of writing), so my webserver root is in
/var/www
So, with that bit of background, lets get on with it.
Step 1: Check out Chisimba from subversion
There are three separate sets of code to check out, the framework core, the modules and the skins (if you need them).
svn co https://cvs2.uwc.ac.za/chisimba/framework/trunk/ framework
svn co https://cvs2.uwc.ac.za/chisimba/modules/trunk/ modules
svn co https://cvs2.uwc.ac.za/chisimba/skins/trunk/ skins
This will leave you with three directories
/home/dkeats/chisimba/framework
/home/dkeats/chisimba/modules
/home/dkeats/chisimba/skins
The next step is to create the web directory, and build the symbolic links.
Step 2: Create web location and make symbolic links
First we are going to enter the webroot directory, and make a directory for our instance of Chisimba. It might be chisimba, or you might name it for the type of instance you are going to install. In this case, I am going to install a content management system (CMS) demonstration, so I call the directory cms. I chmod the directory to 777 so I can write to it, and so can the webserver. You should not do that on a real web server that is accessible on the Internet, rather use the production settings.
cd /var/www
sudo mkdir cms
chmod 777 cms -R
Now we can change to the cms directory, and create symlinks to the appropriate parts of the framework. We do the files and directories individually this way so that we do not create links that will mess up the subversion repository. This keeps the repository clean and means we can commit back code from our code base without worrying about the repository structure.
cd cms
ln -s /home/dkeats/chisimba/framework/app/*.php .
ln -s /home/dkeats/chisimba/framework/app/*.php .
ln -s /home/dkeats/chisimba/framework/app/classes/ .
ln -s /home/dkeats/chisimba/framework/app/core_modules/ .
ln -s /home/dkeats/chisimba/framework/app/cron/ .
ln -s /home/dkeats/chisimba/framework/app/installer/ .
ln -s /home/dkeats/chisimba/framework/app/lib/ .
Now we need to make a directory for the skins. While we could symlink the skins directory as above, it would create problems if we wanted to add skins from the skins repository later. Therefore, each instance of Chisimba should have its own skins directory that links to the root skins and any skins from the skins repository that you want to use. Here we only link back to the core skins, but adding other skins from the skins repository could be done the same way.
mkdir skins
cd skins
ln -s /home/dkeats/chisimba/framework/app/skins/* .
cd ..
We need to create a separate user_images directory for each instance for the same reasons. Each instance will have different user images, and also, we do not want user_images getting back into subversion. This keeps our subversion checkout clean. Therefore, we create a directory, and link in the default images from the framework core.
mkdir user_images
cd user_images/
ln -s /home/dkeats/chisimba/framework/app/user_images/* .
cd ..
Chisimba expects to find the modules that are outside of the core in the directory packages. Therefore, we create this directory, and symlink all the modules into it. Once again, we do it this way to keep the subversion repository clean, and avoid accidental contamination.
mkdir packages
cd packages
ln -s /home/dkeats/chisimba/modules/* .
cd ..
Lastly, we chmod the installation directory to 777 so that you and the webserver have write access to it, keeping in mind that using 777 on any machine on the Internet as a webserver is a recipe for getting hacked. Rather use the production settings as recommended in the Chisimba installation guide for production servers.
sudo chmod 777 cms -R
Thats it, you now have a fully operational Chisimba instance, and you can repeat this procedure for as many Chisimba instances as you would like to have on your developer machine. Now you can proceed with the install.
Step 3: Install your instance
You can now install your instance of Chisimba by opening http://yourserver.yourdomain/yourinstancename/ in the usual way. For example, in my case, I would open http://localhost/cms/ and run the installer. Before you use my automated script, you should do this manually at least once, so you have an understanding of how it works.
Automating the process
Having just done this process for the umteenth time, I decided to make very simple bash script to automate it. To make it work, you first need to edit the script and change some settings as indicated in the script itself. The lines that you need to edit are:
CHISIMBA_SVN="/home/dkeats/chisimba/framework"
MODULES_SVN="/home/dkeats/chisimba/modules"
SKINS_SVN=="/home/dkeats/chisimba/skins"
SERVER_ROOT="/var/www"
Change the above lines to correspond to your setup. If you have followed the checkout instructions, and you are running Ubuntu, you should not need to change anything.
The script is as follows:
# This script creates a developer clone of a chisimba
# subversion checkout. Do not use this on a production
# server. It is for setting up a developer machine only.
# Author: Derek Keats
# License: GPL 2
# Set the chisimba base directories for core, modules
# and skins (this assumes that all Chisimba
# files follow standard naming protocol in that directory)
# IMPORTANT: Note that there is no trailing /
CHISIMBA_SVN="/home/dkeats/chisimba/framework"
MODULES_SVN="/home/dkeats/chisimba/modules"
SKINS_SVN=="/home/dkeats/chisimba/skins"
# Set the webserver root location. This is usually /var/www
SERVER_ROOT="/var/www"
#Check if there is a supplied $1 input
if [$1 = ]; then
echo "You did not supply a directory name to create."
exit 0
fi
#Change to the server root directory
cd $SERVER_ROOT
echo "In $SERVER_ROOT, which contains"
ls -l
echo
echo
#Create the Chisimba instance directory
sudo mkdir $1
chmod 777 $1 -R
cd $1
echo "Created $1 directory"
# Create the symlinks to things that can be safely linked
ln -s $CHISIMBA_SVN/app/index.php .
ln -s $CHISIMBA_SVN/app/gateway.php .
ln -s $CHISIMBA_SVN/app/classes/ .
ln -s $CHISIMBA_SVN/app/core_modules/ .
ln -s $CHISIMBA_SVN/app/cron/ .
ln -s $CHISIMBA_SVN/app/installer/ .
ln -s $CHISIMBA_SVN/app/lib/ .
echo "Linked the core into $1, which now contains"
ls -l
echo
#Create a directory for skins and link it in
mkdir skins
cd skins
ln -s $CHISIMBA_SVN/app/skins/* .
echo "Created skins directory and linked core skins"
ls -l
cd ..
#Create a directory for user_images and link it in
mkdir user_images
cd user_images/
ln -s $CHISIMBA_SVN/app/user_images/* .
echo "Created user images directory and linked default images"
ls -l
cd ..
#Create a directory for modules and link it in
mkdir packages
cd packages
ln -s $MODULES_SVN/* .
echo "Created packages directory and linked to modules"
ls
cd ../..
#Make it all writeable and horribly insecure
sudo chmod 777 $1 -R
echo "Chmodded it all to VERY INSECURE."
echo "All done. Bye....."
You can download the script from here.
You need to run it as root, so put it somewhere, change to that directory, and run it as:
sudo sh clone-chisimba.sh DIRECTORY
where DIRECTORY is the name of the directory you want to create. For example
sudo sh clone-chisimba.sh cms
Using this script, you can have a new Chisimba demo installed and up and running in less than 3 minutes. As I have been writing this, it has just occurred to me that I could actually turn it into a full install by adding the SVN checkout to it. I will do that another time, test it and make another blog post about it.
chisimba developer
| Trackback URL No trackbacks were found for this post |


