Archive for April, 2008

FLISOL 2008 in Lima was good for two reasons

OK so, for those who follow this blog, I went to the FLISOL event here in Lima, or should I say eventS as in the end I was scheduled for a talk on both sides of the city, with a one-hour interval to run from one to the other.

The first talk, happening in the Universidad Tecnológica del Perú (UTP) was good because there were non-educational people there, meaning some business people that actually wanted to know about e-learning because their companies are looking into it. 3 contacts left me their business cards, but also mentionned they were really interested, which is the kind of stuff that smells like healthy business. I also met Diego Escalante again (I think he was giving a talk on GNOME, of course, a little bit earlier). It’s a small world.

The second talk, although moot in terms of business, was really interesting technically. I had to *face* a few Moodle-savvy (not hostile though) that were comparing Dokeos to Moodle. Although I had done some research the day before about the current features set of Moodle, I was surprised that there was so many things that seem to keep them interested in Dokeos. Not that Dokeos is not as good as Moodle, but the products are different and people tending to choose between Moodle and Dokeos initially are generally reticent to open up to the Dokeos advantages (less permissions for the user, a stricter support and development infrastructure, a clearer interface, …).

During the questions/answers session, two of them mentionned a US medic had actually worked on a modified version of the new Dokeos videoconference system to plug it to Moodle, which kind of took me completely by surprise. After more than two hours of research on the internet, I still couldn’t find the forum post they were referring to, although I did find a very old thread that was mentionning that someone modified the *old* Dokeos videoconference to make it work with Moodle. Considering the incredible amount of changes that has gone through our videoconference application since then, this isn’t really interesting to me…

Anyway, so basically the two talks were nice (for me, as a speaker) and I ended up paying 17 soles for a taxi home, which could have been 12, most probably, if I had discussed the price a little more, but in his defense the taxi driver was really good (same driving style as me, actually, so even if it wasn’t really good, it felt really good to me).

Categories: Development, English

Dokeos 1.8.5 Beta – Now available

… it’s been a long (set of) week(s) working on the first really acceptable version of Dokeos 1.8.5. Initially, we didn’t really want to put so much in there. There are not so many new features, yet we’ve made it so that it adds a set of commonly asked-for features.

Just half an hour ago, I tagged the 1.8.5 Beta release, so it’s officially out there. You can download it here:

The first that comes to my mind is LDAP. I’ve personally reviewed the whole thing so now it’s just a matter of uncommenting two lines in a config file and you can pretty much configure everything from the web panel. You can even import users into the platform, a course or a session directly from LDAP.

The second is user fields. User fields allow you to add virtually any information about users. You just configure which one you want from the admin panel, and then users get additional fields in their profile page, which they can still choose not to fill if they don’t want to. For example, you could ask for a date of birth, a city of birth, a country of residence, a mother tongue, and so on. You can also export these values from (non anonymous) surveys or exercises results.

The third is a review of forums usability, we the ability to show your avatar next to your post (like in the big forums around) and attach documents to your posts.

There are many small features like that in Dokeos 1.8.5, yet we are still in Beta, so we need your help to make the stable release a thoroughly tested release.

Now for useful information…

  1. We will put a testable campus on shortly (this week-end) so you can try it out without the need for a local installation
  2. Dokeos 1.8.5 Beta is a *beta* version. It is NOT meant for production. You’ve been warned
  3. We are planning on releasing a stable in one month from now (end of May)
  4. You can report bugs that you find in Dokeos 1.8.5 Beta in the Dokeos forum, or if you are experienced in reporting bugs, you can create an account and start opening tasks in our BTS
  5. LDAP has been completely revamped, but I lack the experience with LDAP servers (particularly authenticated ones), so if you can help, please TEST, TEST, TEST, and report in the BTS or directly to me
  6. The developments that are quite new are likely to be more unstable. These include: LDAP, User Fields, HR Manager role, XLS export of survey and exercises results, audio recorder (although this one *is* still buggy), Woogie, Gradebook (not easy to understand without documentation), new Videoconference server (much easier to install)

One month is short for our manpower and the product we have to get a very stable release, so we are counting on you to help us get there!

I’ll probably make some additions over the next few days, but for now I must spend some time preparing my presentation of Dokeos, tomorrow at the FLISOL (see previous post about that).

Categories: Development, English

How to configure HTTPS on Apache 2

April 25, 2008 35 comments


Setting up several VirtualHost’s on an Apache2 server is easy.

Setting up several VirtualHost’s on an Apache 2 server, some of them using SSL (HTTPS) is considerably less easy. The main problem is the documentation, not really easy to find, with examples of such configurations.

Here, we will intend to give all the steps to get there, remaining at a minimal level of complexity.

If you want more details, I suggest you have a look at this nice article by Artur Maj. This is where most of the inspiration comes from for the current article, together with real tests on a Debian Etch server. Thanks to his article, We will allow ourselves to skip the HTTPS, SSL and TLS definitions and prerequisites. We will consider that you have already installed SSL on your server installation, but haven’t enabled it with VirtualHost’s just yet.

Generating a key

To get things started, you will need a key. This key will be used by the VirtualHost you will define, only if you ask it to.
To generate the key, create an ssl directory in your /etc/apache2/ directory (on a Debian Etch, that is)
Then move inside that directory (cd ssl) and do the following:

mkdir crt
mkdir key
openssl req -new -x509 -days 365 -keyout key/vhost1.key -out crt/vhost1.crt -nodes -subj  ‘/O=VirtualHost Website Company name/OU=Virtual Host Website department/’

This operation will create two files, crt/vhost1.crt and key/vhost1.key, that you will use in your VirtualHost definition to enable SSL encryption using that key.

Changing the VirtualHost config

Now move on to your Apache sites configuration. In most cases, you should have something like an /etc/apache2/sites-available/ and an /etc/apache2/sites-enabled directory. As sites-enabled should only contain links to sites-available, we are only interested in sites-available. So go there.

Now you should have one default file there, as well as one file that defines the configuration of the VirtualHost you would like to setup to use HTTPS.

Open the default config file. It should start with something like

NameVirtualHost *:80


NameVirtualHost *

Either way, change it to:

NameVirtualHost *:80
NameVirtualHost *:443

Now you have just told your webserver to accept both requests on port 443 and 80. *if* you restart your webserver at this point, you should get a warning message saying that no host is using the port 443. This is normal for me: I never really got around how to configure the whole thing correctly to avoid it throwing warnings at reload, but it is definitely not a big problem. Now let’s proceed to the config of the VirtualHost itself.

Open your VirtualHost config file. You should have something along the lines of:

<VirtualHost *>
DocumentRoot /var/www/vhost1
DirectoryIndex index.php
ErrorLog /var/log/apache2/vhost1-error.log
CustomLog /var/log/apache2/vhost1-access.log combined
<Location />
Options Indexes FollowSymLinks
AllowOverride All


Together with the new config, this should look like that:

<VirtualHost *:80>
DocumentRoot /var/www/vhost1
DirectoryIndex index.php
ErrorLog /var/log/apache2/vhost1-error.log
<Location />
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R]
<VirtualHost *:443>
DocumentRoot /var/www/vhost1
DirectoryIndex index.php
ErrorLog /var/log/apache2/vhost1-error.log
CustomLog /var/log/apache2/vhost1-access.log combined
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/crt/vhost1.crt
SSLCertificateKeyFile /etc/apache2/ssl/key/vhost1.key
<Location />
SSLRequireSSL On
SSLVerifyClient optional
SSLVerifyDepth 1
SSLOptions +StdEnvVars +StrictRequire


Now if you restart your web server, you should be able to make it work straight away.

Note that if you do that on a fresh server, you might receive a “Configtest failed” error message. This is most likely to be due to the Rewrite or SSL modules not being enabled. Just enable them:

sudo a2enmod rewrite

sudo a2enmod ssl

sudo /etc/init.d/apache2 restart


2012-10-15 edit: as indicated by Gerard H. Pille in the comments to this article, Apache needs to be configured to answer on port 443 as well. This is generally a default setting in Debian/Ubuntu, but if you need to enable it, just locate the “Listen 80” in your Apache configuration directory and add a “Listen 443” on the next line. Restart Apache, and you should be done with it.

Categories: English, OSS Solutions Tags: ,

Dokeos – Drupal link planning

April 23, 2008 7 comments

I had an interesting talk with Marco Antonio Villegas Vega the morning of 19th April 2008 about a possible link between Drupal and Dokeos in the medium-term future (a few months).

The idea is that Dokeos lacks one thing that Moodle has (but that we don’t want in Dokeos itself): the possibility to build a widget-based website with your content.

Dokeos has a strong structure, which Moodle lacks of, making it simpler for new users to get around and learn. And learning is about the major thing users do in Dokeos, so if they can’t understand how the platform works, they’re in a bad position to start learning the real stuff.

So, Dokeos wants to remain like that, but at the same time a considerable amount of clients are asking us to better integrate Dokeos into their website or web portal. The idea is thus to start small, by first providing a Drupal module that will allow user to:

  • log directly and automatically (if using openID at first) into Dokeos from their Drupal site
  • get a list of events from their personal agenda in Dokeos (and possibly display it in the Events module in Drupal)
  • get a list of direct links to courses they’re subscribed to (will open in a new window though, to let them continue using Drupal)
  • get a list of certificates (more a Business Network feature)
  • get a list of documents from inside the courses, to which they have access (will also open in a new window)

Dokeos would then become almost invisible for the most frequent interactions (open documents, check agenda and announcements), and would remain as a separate window/tab for the most thorough interactions.

This would most certainly imply starting to use web services as a largely-implemented feature. To do this, I’ve been thinking for quite a long time about integrating PECL’s package SCA_SDO which provides a nice way to re-use existing functions to provide web-services. This would hugely reduce implementation costs for Dokeos while providing the web services we need quickly and efficiently.

What do you think about it? Don’t hesitate to leave your comments, it’s still in discussion…

mbstring vs iconv

April 22, 2008 10 comments

I was wondering today why use mbstring rather than iconv in Dokeos, and honestly I didn’t remember exactly why I had chosen mbstring in the past, but finding information about the *differences* between the two.

mbstring is a library that deals with multi-byte character strings

iconv is also a library that deals with multi-byte character strings

However, their respective documentation doesn’t mention the other one.

Searching a bit more, I found a PPT presentation from Carlos Hoyos on Google
saying this:

PHP supports multi byte in two extensions: iconv  and mbstring
* iconv uses an external library (supports more encodings but less portable)
* mbstring has the library bundled with PHP (less encodings but more portable)

If that’s the case (I assume he’s right as he was giving that conference at NewYork PHP) then the choice I made a few years ago was the right one. We want maximum portability, so we’re going to continue using mbstring until there is a major reason not to.

Although asking for more info on the general PHP list (which has traffic of a few thousand mails per months), I only got one personal opinion answer, so I guess the difference is really boiling down to a few minor things (including the licence), making this article almost useless, or at least in the sense of comparing the libraries.

Categories: Development, English, Techie

Installing OpenLDAP on Ubuntu 7.10

For professional testing, I needed a test installation of an LDAP server.

This has never been easier on an Ubuntu (and it’s as easy on Debian Etch):

sudo apt-get install slapd

The installer asks you for a password twice (I’ve put “ldap” as it’s just a test install) and then writes a config file in /etc/ldap/slapd.conf and starts the service.

If you go into the config file, you will see that, by default (if it didn’t find any domain name definition) it will put you a cn=admin,dc=nodomain.

To use it easily, why not install phpldapadmin?

sudo apt-get install phpldapadmin

Now get your browser to http://localhost/phpldapadmin/, enter cn=admin,dc=nodomain as a connection string, and the password you gave to the package installer (in my case, ldap) and there you go, full access to your test LDAP directory. Enjoy!

Categories: English, OSS Solutions

Beta release pushed back (just a little)

April 14, 2008 1 comment

I’ve updated the 1.8.5 page, basically to mention that although I had initially planned the beta to be released last Friday, I failed on that predicament and I’m trying to make it ready for tomorrow or Wednesday the 16th. Obviously, the official release date for Dokeos 1.8.5 stable will be pushed back (a lot more, this one) as we want to have a beta, then a release candidate, then a stable release, each of them separated by at least one week to let you guys try it out and report things that are *still* not working.

%d bloggers like this: