Surprisingly good position in Dokeos-Moodle-ILIAS comparison

July, 4 2008

I was playing around a little bit with a code metrics tool on the Ohloh website and, although I’m sure there’s some kind of arguable element there as some included libraries add a lot of “noise” in code contributions, I was happily surprised to see that Dokeos isn’t doing bad at all and is starting to get back at Moodle, in terms of code, contributors and global activity. I’ll let you check that by yourselves (following the “code metrics tool” link, or just looking at the screenshots below).

Before you start thinking that this must be a distorted comparison as it is made by a Dokeos developer, I just want to let you know that Ohloh.net is totally independent in this case. I just ran a comparison because there was a tool to do that automatically, and thought the results were interesting and at the advantage of Dokeos and, as such, might be interesting to post here. I totally realise that there is no obvious conclusion to be taken out of these results.

In the screenshots below, Dokeos is marked as red, Moodle as green and ILIAS as blue. Claroline, which I have left out of the comparison because I can only compare three projects at a time, has about the same level in the three graphs as ILIAS (in blue).

The first graph is about the codebase (number of lines of code). The second is about activity in terms of code submissions. The third one is about the number of active contributors. As you will see, when Dokeos is not on top, it’s getting there, slowly. Lines of code for the three projects are all increasing at about the same rate though…

Dokeos-Moodle-ILIAS code comparison
Dokeos-Moodle-ILIAS code comparison
Dokeos-Moodle-ILIAS activity comparison
Dokeos-Moodle-ILIAS activity comparison
Dokeos-Moodle-ILIAS active contributors comparison
Dokeos-Moodle-ILIAS active contributors comparison

The Dokeos position in that race is not surprising because I feel like crap, instead, it is surprising because it is generally much more heard of Moodle as an active open-source project than Dokeos, so theoretically, Moodle really ought to be on top of these three graphs… go figure!

From the graphs, it looks like 2006 has been a tremendous year for Moodle, and then it started slowing down a little. I don’t know much about ILIAS’ history, but I recently heard from a colleague that had had to compare Dokeos and ILIAS that ILIAS was no match (big flame wars starting here ;))

Anyway, the story of Dokeos still has a bunch of nice surprises to come as well. I hope the same is true for our competitors.

Just for the fun, if you want to compare Dokeos to Claroline and Ganesha, follow this link.


Dokeos in Peru

July, 4 2008

In case it would be of any interest to you, I am currently developing a kind of “branch” of Dokeos (although nothing legally-binding about the branch stuff) in Latin America, and more specifically in Peru.

Peru is still what I would call a developing country, so at the same time it is hard to get used to (living there) and possibly excellent for future business opportunities. Of course, “developing” comes from “development”, and “development” means investments, which means a lot of money could be made (theoretically) from being in the right place at the right time.

Although I feel I’m still a bit ahead of “the right time”, I’ve invested a considerable amount of my time in developing the presence of Dokeos locally, and until now (about a year on) it’s not been very rewarding.

As I’m writing these lines, however, I just finished my first installation of Dokeos, or rather its videoconference module, on a Fedora 7 system. It ended up working nicely, but there wasn’t really any other expected outcome.

However, the interesting bit here is that it’s my first contract in Peru (most of my work so far has been a continuation of my work in Belgium) and it comes with a lot of simultaneous requests for information. I don’t know exactly why it’s all starting at the same time, but it is. So I might only have finished my first Peruvian job, but I’m still with 4 very serious leads for large-scale installations and training sessions, and a few more of unqualified leads, plus a bunch of people that know they can act as resellers of my (or should I say “our” as we’re a company of three now) services and take a nice commission.

So today, I might only being up to my first install, I am really positive about the future!

One of my serious leads is actually for software development, and is a request for a quote about the development of an add-on to the videoconference tool that will enable teachers to pass the video and voice to the user to ask a question. The feature has been requested a few times in the past, but we never managed to suggest a development time that satisfied the customers. However, now we have a much more reliable videoconferencing system (thanks to Arnaud Ligot and Frédéric Burlet), this might be much easier to work on (and so, cheaper). If you have an interest in this feature and would like to contribute to make it possible, just give me a shout. Otherwise, there is still a possibility that this client will not be able to finance the development and that we just leave it for another client, later on…

It always surprises me, though, how people are happy to pay 10u a year for a finished product, but reluctant to pay 2u for the development of the only missing feature in a product that costs 1u… (values provided for demonstration purposes, it doesn’t match anything).

Well, anyway, the point of this article was to let you know a little bit about my stuff, locally. The next articles will be a bunch of incredibly technical stuff, so this was just a big breath before the dive.


Installing the videoconference - missing data in documentation

June, 27 2008

We just realised that through an unfortunate series of events, I had removed a line that Arnaud had added in the documentation on the videoconference installation process. It was missing the part where you download the dokeos-conference.war file and copy it to your webapps directory. The audiorecording is there, but not the videoconference.

In any case, the documentation on our website is correct (except one occurence of the name of the file but that’s obvious) and we have updated our code sources:

http://www.dokeos.com/doc/installation_guide.html

Sorry about that…


Improved SCORM content migration from 1.6.5 to 1.8.6

June, 26 2008

I’ve had to review the SCORM content migration from 1.6 to 1.8 just today, and really, this is not something I’m enjoying. The complexity of migrating the old structure is enormous due to the lack of structure we had in 1.6, that lead many to launch a SCORM content through a simple link, rather than importing the SCORM content through the SCORM tool (yes, 1.6 allowed that and no, we are not going to allow this again because it makes a mess of the internal structure).

So basically, what have I done?

First, I made sure the links from the course introductions *and* the course links were both treated as possible sources of learning paths. There was something checking those links before, but they were only treated if there was a corresponding correctly-added learning path in the tool.

Second, I realised that, when checking if one of these links really pointed to a SCORM file, I didn’t actually take into account the fact that the old repository was placed, for the time of the migration, into another directory. So I was checking into the receiving courses directory (which at this point of the migration process is still empty) for a file that was in the old courses directory. This, of course, prevented the migration of such SCORM contents to be succesful. This has now been fixed.

These change comes a bit later than the official 1.8.5 stable release, so you won’t benefit from them if you download a stable version from the website now. However, you can still download the file and apply it on the main/install/ directory of the 1.8.5 package *before* you upgrade from 1.6.5 to 1.8.5.

Et voilà, I hope this helps the million of people out there still having held on before migrating from 1.6 to 1.8.

While doing all this, I also realised that some of the courses tools were not correctly moved from the Production section to the Interaction section, but I didn’t find how to fix it. The SQL query is there, it is apparently not working. This is just a matter of executing a little script afterwards though, or updating the database (I’ve seen the problem for the forum and the announcements tools).

You can fix it (in every course database) by issuing:

mysql> update tool set category=’interaction’ where name = ‘announcement’;

You can check out the script itself by clicking the “download” link in our subversion repository


Dokeos single database - don’t let yourself get tricked

June, 26 2008

I wanted to write this post for two reasons:

  1. to remind everybody that we (the Dokeos company) continue to vaguely support this mode because we understand it is still more practical when installing it on a free/cheap hosting server
  2. to help you avoid the tricky issue in the installation process when deciding which main db name to use

As the first point is pretty much complete, I’ll go straight to the second point. In the Dokeos installation process, the database configuration screen asks you for a prefix and a database name. It’s all OK, but the tricky thing is that the default value that are given are “dokeos_” for the prefix and “dokeos_main” for the main database.

This might lead you to think that the database created will actually be called “dokeos_main”, while in this context of leaving the options by default, it will be called “dokeos_dokeos_main”. Yes, the prefix is added in front, as any prefix is.

I know, it’s not very intuitive so I’ll try improving that for the next version, but at least you’ve been warned!


First annoying bug in 1.8.5: learning path theme feature

June, 24 2008

Yes, we have our first annoying bug in Dokeos 1.8.5. It has a very restricted scope, and only happens once you voluntarily activate a new function, but it is there…

When you *upgrade* your portal from anything to a 1.8.5, there is a missing bit of SQL in the upgrade process that mean you will not have a column called “theme” inside your courses’ lp tables.

First, let me tell you that you can fix it pretty easily before upgrading, by adding this line to the end of main/install/migrate-db-1.8.4-1.8.5.pre.sql:

ALTER TABLE lp ADD theme varchar(255) not null default ”;

And the conditions to reproduce the bug are these:

  1. upgrade to 1.8.5 (the bug doesn’t appear on fresh installs)
  2. in a course that existed before the upgrade, go to the course settings
  3. activate the option to set a CSS theme by learning path
  4. go to the learning paths page
  5. edit a learning path’s properties by clicking the pencil icon
  6. change the theme used for this learning path
  7. click ok

That will display a horrible SQL error (that is, if you left your PHP settings on display_errors=on) that will tell you that the field “theme” does not exist in that table.

You can fix it by manually updating the database (using the field definition above) or writing a script that will update all courses databases to add the field. The writing of this script is left to the reader as an exercise ;-)


Dokeos, new course, error about group permissions

June, 24 2008

There is a common problem appearing when installing a new Dokeos portal that I have seen a lot recently, so I thought I’d share the details here.

The problem

When installing Dokeos on a cPanel-kind-of-hosting, it might happen that you complete the installation, but when you want to enter a newly-created course, an ugly error appears. Something of the likes of:

Internal Server Error

or, if you are lucky

/…/courses/COURSECODE/index.php cannot be displayed because it is writable by the group.

Either way, those two error message precisely when the URL of your browser shows http://your-domain-name/courses/YOURCOURSECODE/index.php mean that you have a “secured” version of Linux.

This implies that for any PHP script that you want to execute, this message will appear if the script is writable by any other user than the owner of the file.

In a cPanel system, you will see that this file (and possibly the directory it’s in) have write permissions for the group.

The permissions syntax

I’m reviewing basic stuff here, so if you know about UNIX permissions, just skip to the next section.

This is represented by the permissions indicator

-rwxrwxr–

which can be translated as: the owner can read, write and execute this script, the owner *group* can read, write and execute this script, and all other users can read the script, but not write or execute it.

The write permission gives you the right to edit the file, but you need a write permission on the containing *folder* to actually create or remove this file.

Anyway, so the risk is that, by letting too many people access this script, it could be used (and modified) by a cracker (an evil hacker) to execute his code instead of yours on your server.

Fixing the problem now on the server

Now the quick fix is to read carefully the error message and change the permissions accordingly. The server tells us that this script cannot be opened because it is writable by the group. So all we need to do is remove the write permission on this file. Just click on whatever option allows you to change the permissions on that cPanel and remove the write permission for the group.

This should result in your file’s new permissions to look like this:

-rwxr–r–

If the server bothers you with write permissions about the directory, you need to set the directory’s permissions to

- rwxr-xr-x

Execution permissions are needed to read inside this directory (and get to index.php).

This should solve your problem for this course. Now you want to avoid doing that for all courses to come, don’t you? Read on…

Fixing the problem for the future from inside Dokeos

Since Dokeos 1.8.4 (or was it a little before?), we added some settings inside the database that lets you mention what type of permissions you want new files and directories to use. Well, this is precisely one case for which we did that.

You want to head towards your “Portal Administration” tab, “Platform” section, “Dokeos configuration settings” link, then “Security”, then the “Permissions for new directories” and “Permissions for new files” settings. By default, these are set to 0777 and 0666. Considering you want the groups not to have write permissions, and considering 0777 is representing rwxrwxrwx and 0666 is representing rw-rw-rw-, you just want to change these to 0555 and 0444 respectively.

That’s it, you can now create a new course without having to worry about files permissions!


Video activity report for Dokeos

June, 22 2008

There’s some new stuff on the net in terms of code analysis. If you already knew about the CIA project and the Ohloh.net website, and you liked it, you might get a good interest in code_swarm, a java tool that uses SVN logs to generate a (good-looking) video of the project activity in terms of code development.

I played with it a little bit for you, and this is what it looks like…

The video itself doesn’t look too great once it has been processed by YouTube, but you can get a better quality one from here (about 7MB): http://www.dokeos.com/download/dokeos-activity2.avi


No security flaw so far…

June, 19 2008

It might seem kind of weird to mention it, but I had somewhat of a big scare when Secunia sent us an e-mail entitled “Security Patches in Dokeos 1.8.5″. If my fears had been right, it would have meant that we would have needed to re-package 1.8.5 only two days after the official release. Not something I would have liked to do…

However, it was just a basic “request for information” e-mail asking what security improvements had been added to Dokeos 1.8.5 as we mentioned so in our changelog.

The answer is that we integrated Dokeos 1.8.4 SP1, SP2 and SP3, as well as improved input filtering all over (more than anything in the survey and forum tools).

So we still have a robust 1.8.5, which makes me very happy.


Dokeos 1.8.5 released!

June, 13 2008

Dokeos 1.8.5 has been released, after a long 8 months development! Check it out on http://www.dokeos.com/download.php

There’s a lot to say, so I won’t comment about the release itself in this post. You can find out more about this release and what it brings you on the official website, by following the link on the right panel.

We are sorry to have kept you waiting for so long for a new version, but we’re sure you’ll understand why when using it!