Posts Tagged ‘Chamilo’

Does the world’s growth go along with a Moodle sites reduction?

June 20, 2014 5 comments

In a growing world with growing education needs, one would think that systems like Chamilo or Moodle would have a continuous growth ensured, year after year.

Well, this is certainly true for Chamilo LMS (for now), as it is apparently gaining about 100,000 new users per month (average over the last 12 months), but I am a little in shock at how Moodle is (since a year or so) loosing a considerable amount of sites and users over the last 12 months. It’s a bit difficult to track, because Moodle stats site doesn’t show any evolution of amounts over time (anymore), but thanks to our beautiful internet, you can use the Wayback Machine to get the data as it was years ago.

A warning to the reader: I am an active Chamilo evangelist and this is in no way an objective, scientific analysis of the situation. This isn’t to say that I am inventing the existing data. It comes from reliable sources and should be consider as such for all intended purposes.

So, just for the sake of the data, here is how both projects are evolving in number of sites and users over the last 4 years (almost the full life of the Chamilo LMS project). This article is written in June 2014, so the last two lines are pure speculation. The rest, however, comes from real data from Moodle’s site (and the Wayback Machine) and Chamilo’s database.

Year Moodle sites Chamilo sites Moodle users Chamilo users
mid 2011  54K  1K  43M  0.5M
mid 2012  66K  2.3K  58M  1M
mid 2013  84K  6K  71.7M  6.2M
mid 2014  64K  14K  71.1M  7.6M
mid 2015? (linear projection based on last 12m) 44K 22K 70M 9M
mid 2016? (projection based on last 12m) 24K 30K 69M 10.4M
Stats: Moodle usage vs Chamilo usage from 2011 to 2014

Stats: Moodle usage vs Chamilo usage from 2011 to 2014 + projection

The last two lines are an obvious flame. There is no way this could be like this, but if it were (and it’s a linear projection based on the last 12 months from now June 2014, it could be curved projection), then these would converge in number of sites by June 2016 :-)

As always with statistics, there are important things to know about both projects, and while Moodle is a great tool, it is still somehow a friendly rival to Chamilo, but in an ever-growing world with easier installers and cloud computing, I would expect Moodle to continue to grow… pretty much endlessly. Not sot.

A few years back (in June 2012), the Moodle stats page still offered a graphical representation of the number of Moodle installations around the world, over time. You could (at that point) clearly see a Gauss curve reaching the top and starting to go down. However, the numbers here show that even then it managed to grow an additional 13M users (and 18K sites), but then between June 2013 and June 2014, it just stalled in number of users, and literally dropped 22K sites, to lower-than 2012 level in terms of sites. A little bit later than June 2012, the chart was removed (I guess they didn’t like showing the dropping Gauss curve, huh?)

Sure, that also means that most of these sites had a very low number of users (or something like that), as this only went with a loss of 600K users overall (so 30 users per site, on average).

Or maybe Moodle stats just changed their algorithm at some point, dropping thousands of sites that were not really active?

Chamilo and Moodle statistics are bound to be somewhat imprecise, anyway, as they rely on a series of relatively subjective parameters that are interpreted to try to guess if the sites are still active or not.

Plus Chamilo is still clearly not getting to the number of users Moodle has (we’re only at 10%), but the tendency is that we are growing fast enough and that, if it continues as in the last 12 months, we should be crossing

Still, this leaves you thinking… Free software (no barrier to adoption), free or very cheap hardware, growing world population… why did it drop? Will it continue to do so?

Well, that just leaves me with an excellent marketing opportunity, to tell you that, if you want to try Chamilo out, you can test our recently released version 1.9.8 on Now.

Howto: Configuring session expiry time in Chamilo 1.9

We seldom receive a request from users of Chamilo LMS saying their sessions are cut in the middle of their activity. And sure, it might so happen that you are in the middle of the redaction of a very large answer to an open question, or diserting on how the course is going to help you in the forum. And we get that it’s super-frustrating to click “submit” and then get an error page. We do, really.

Now on our side of the fence, we have to cover a series of non-trivial issues…

If you leave a session open for too long, another user might hack your session and get inside the system in your place (unless you use an unflawed SSL certificate to protect your communication).This is generally OK if you are a student, but what if you are an administrator or if you are viewing super-confidential learning content?

Another issue you might have is leaving a public computer without closing your session, and have someone else “follow you” and use your session. This leads to the same problem as above. Finally, not cleaning the sessions from time to time inevitably leads to thousands (or rather hundreds of thousands) of sessions being handled by the server, which inevitably leads to a slow server.

So in the best interest of all, it is important to have a balanced session time. We generally consider that 2 hours is a reasonnable total time. If you’ve been inactive for two hours, then it’s reasonable to get disconnected when you come back. ’cause honestly, you weren’t really studying, were you?

But even with that, we still got complaints from the users, so we decided to put it at 100 hours. OK, so that’s 4 days and 4 hours. Enough, right? That’s the default setting in Chamilo, and you can find it in your main/inc/conf/configuration.php on the line that says:

// Session lifetime
$_configuration['session_lifetime'] = 360000;

That’s the value that comes with a default installation of Chamilo 1.9.*.

Now, even if you have that, and depending on your PHP settings for session handling, you might still need to change two settings, but these are out of Chamilo’s control, directly into PHP’s configuration:

session.gc_maxlifetime = 1440

This is the number of seconds after which the garbage collector (a vacuum cleaner, kind of) of PHP considers that session files, on the server, if left untouched, will be erased, and

session.cookie_lifetime = 0

which defines the time (in seconds) that the cookie will ask to the browser to be stored for. If 0, it means that it will stay there until the browser is closed. If anything more than 0, it will stay there for that number of seconds.

Now… the funny thing here (which makes it even harder to track) is that if you use the default session handler of PHP, called “file”, the time used for the garbage collector to erase the sessions files is *not* the last time the session was accessed, but rather the last time the session was *modified*. This means that, if you have some AJAX block refreshing every 30 seconds or so, this will *not* maintain the session active, unless this AJAX refresh actually modifies something to be stored in the session.

So there are many factors to take into account. Our preferred/recommended setup?

$_configuration['session_lifetime'] = 10800; // 3h

Then, in your PHP config:

session.gc_maxlifetime = 10800
session.cookie_lifetime = 0

But now you know how it works, you can tune it as well.

Kudos to Gumbo on Stackoverflow for the missing bits:

Categories: Chamilo, English, Techie Tags: , , ,

Chamilo v10 – Big changes for a big future

This Sunday 15th of June 2014, we will be releasing version 1.9.8 of Chamilo LMS.

This will be the last big version of the 1.9 branch (version 1.9.0 was released in August of 2012, about 2 years ago). Version 1.9 has served the Chamilo community well, and BeezNest will continue providing support on 1.9.* until 2016 at least.

In the same time (from 1.9.0 to 1.9.8), the Chamilo community has grown 400% times, from less than 1 million users to more than 5 million users today, only in 1.9.* users, which we assume is a sign of appreciation from our community.

But as our community grew, so have most of the installations that use Chamilo, now reaching, for one specific case, the hundreds of thousand users.

All this growth in numbers have required many customizations and optimizations in Chamilo LMS, up to a level where it has been very difficult to integrate them in Chamilo at all, because of its database and files structure hierarchy.

As a reminder, and before we go deeper into versions, remember that Chamilo LMS (versions 1.8, 1.9, etc) and Chamilo LCMS (v2, v3, v4) are completely different software systems, and that they are developed by different teams, under different leadership, but within the context of the Chamilo association (as long as they develop under a certain set of rules protecting the open nature of the software).

So many people ask me what is so special about v10 that will really make Chamilo a better tool? It’s hard to answer that at this point (because not everything is completely certain yet), but this is a shortlist of the most important changes you will see in Chamilo LMS v10 in comparison to v1.9.

First and foremost: the interface will not change in any major way for the final user. Of course, we will have some refreshing that makes it more appealing to the users, but no major change in how elements are presented. This is the top quality of Chamilo LMS in comparison with other systems, and we don’t want to loose that. So for all of you managing a support team on Chamilo: don’t worry, no major change in the way users can use the current tools.

No major tool will be removed, either, to the specific exception of the reservations tool, which has been there for years and that apparently nobody used.

In terms of new tools or major changes to existing tools, this is what v10 will most certainly come with:

  • Super-categorized-random questions selection for exercises
  • Possibility to define new roles (this will be in beta version in v10.0 and improved based on user feedback) and permissions
  • e-mails templating
  • Multi-users, HTML5, mindmapping tool
  • Optional central repository of documents, allowing for many new learning objects view modes and sharing options
  • Integration with common web 2.0 platforms (Google Drive, Dropbox, Youtube, etc)
  • Full HTML5 online editor (moving to CKEditor 4 or superior)
  • New social network “wall” feature, to inform others about the interesting stuff you are learning
  • ODF documents reader
  • OpenBadges support
  • Open Plagiarism detector
  • Video chat (HTML5, not for IE)
  • Audio frequency analysis tool for exercises
  • and some 100 other less important improvements not listed here

And now the category for geeks:

We believe the major change you need to be aware of is that we decided to rely on a series of Symfony 2 (framework) components to manage the core of our application. This involves a series of structural changes (which will be easy to manage with our migration script) but will critically improve the extensibility of Chamilo LMS

  • Use of Doctrine as a database layer manager
  • Unique (single column) row ids in all tables (in 1.9.x, the c_* tables had a combination of course ID and id to form the unique key)
  • Integer course ID (deprecating as much as possible the use of the literal “course code”, making tables faster to search)
  • Use of a central controller, which will allow you to redefine the route to specific scripts, and use friendly URLs (partial implementation in v10)
  • Installation profiles (install with configuration presets)
  • Debian packaging (and new files structure)
  • New centralized authentication mechanism (including OAuth)
  • New web services for listing objects (enabling easier application of mobile apps)
  • Translations managed in Gettext format (and a new translation platform)
  • Full integration of the templating system (Twig), with one JQuery-mobile-enabled template
  • Dropping support for IE8 (most probably) so we can move to SVG icons everywhere
  • Support for IMS/LTI, enabling easier integration of external applications into Chamilo
  • Improvements to enable auto-scaling of Chamilo in the cloud
  • Juju Charm to auto-install Chamilo in your infrastructure
  • Extra fields for all major items (quizzes, questions, learning paths, users, courses, sessions, etc) enabling for easier plugins integration
  • Better plugins framework overall, enabling some functions “hooking” or “redefinition” in specific contexts

This list might change over time. This version is from the 12th of June 2014.

It is important to understand that the structure changes have been kept back for years (literally) to avoid changing Chamilo 1.9 in any major way, and we have now acquired a great experience into large-scale implementations, so the structure changes we are implementing now are good both for the present but also for the foreseeable future (up to 5 years from now), so we should not require any major infrastructure change anytime soon.

We are making big changes now, for what looks like a very big future for Chamilo LMS!

You can find more about our dynamic roadmap here:

Categories: Chamilo, English Tags:

Accord inter-institutionnel Alliance Française (Lima) et BeezNest

Cette année 2014, la branche péruvienne de BeezNest (nous sommes maintenant présents en Belgique, non officiellement en France, en Espagne, au Pérou et probablement très bientôt dans un nouveau pays d’Amérique Latine) a signé un accord inter-institutionnel avec l’Alliance Française de Lima, qui vise à assurer la formation du personnel de BeezNest à la langue française ainsi que la disponibilité professionnelle d’une plateforme Chamilo pour tous les étudiants de l’Alliance.

Récemment, nous avons pu constater que l’Alliance respectait avec force son engagement, promotionnant publiquement son utilisation de Chamilo.


L'Alliance Française de Lima est fière d'utiliser Chamilo

L’Alliance Française de Lima est fière d’utiliser Chamilo

Eh oui, comme on le note en bas, un des 4 arguments de promotion c’est “Plateforme Chamilo – Apprentissage en ligne”. Ce n’est d’ailleurs pas la seule affiche qui le montre.

Nous sommes généralement ouverts à ce genre de propositions donnant-donnant. N’hésitez pas à nous faire une offre!

Categories: Chamilo, French Tags: , ,

Creating new tasks in chamilo course-sessions

In the category of little scripts that can make your life easier when managing huge Chamilo portals, this is a little one that creates one tasks-folder called “ALP” for the “Assignments” (work) tool in each active course for a portal where you have thousands of sessions, with one course per session.

The script works for version 1.9.8 of Chamilo, but might need some adaptations to run on an older version, in particular considering the addDir() function from the main/work/work.lib.php library which was created there recently.

You should put the file into any “one-level” directory under the Chamilo base, so that it can find “../main/inc/”, and then run it on the command line using php5-cli, or load it from a webserver accessing it directly by its path.

The script only affects active sessions (sessions with a start and end dates that are “around” the current date).

The file is downloadable as a .doc file for safety purposes. Download it and rename it to “.php” before you open it, otherwise you’ll get an error: create_tasks

* This script creates tasks directories in each course, at the session level,
* only for sessions active at the time of running the script
* In order for the script to set the right permissions, it has to be launched
* either as www-data or root
* @author Yannick Warnier
require_once '../main/inc/';
require_once '../main/work/work.lib.php';
$date = date('Y-m-d h:i:s');
$workName = 'ALP';
$courseInfos = array();

* Get the sessions list
$sd = 'date_start';
$ed = 'date_end';
$sql = "SELECT id FROM session WHERE $sd '$date'";
$res = Database::query($sql);
if ($res === false) {
die("Error querying sessions: ".Database::error($res)."\n");
* Get the course-session couple
$sessionCourse = array();
while ($row = Database::fetch_assoc($res)) {
$sql2 = "SELECT AS cid, c.code as ccode FROM course c, session_rel_course s WHERE s.id_session = ".$row['id']." AND s.course_code = c.code";
$res2 = Database::query($sql2);
if ($res2 === false) {
die("Error querying courses for session ".$row['id'].": ".Database::error($res2)."\n");
if (Database::num_rows($res2) > 0) {
while ($row2 = Database::fetch_assoc($res2)) {
$sessionCourse[$row['id']] = $row2['cid'];
if (empty($courseInfos[$row2['ccode']])) {
$courseInfos[$row2['cid']] = api_get_course_info($row2['ccode']);
* Now create the tasks using the addDir function
foreach ($sessionCourse as $sid => $cid) {
$sql = "SELECT id, title FROM c_student_publication
WHERE filetype = 'folder'
AND c_id = $cid
AND session_id = $sid";
$res = Database::query($sql);
if ($res === false) {
echo "Error querying table c_student_publication: $sql\n";
echo "The error message was: ".Database::error($res)."\n";
if (Database::num_rows($res) > 0) {
//Task found, skip
$row = Database::fetch_assoc($res);
echo "Task ".$row['title']." already found in course $cid, session $sid\n";
$params = array(
'new_dir' => $workName,
'description' => '',
'qualification' => 0,
'weight' => 0,
'allow_text_assignment' => 0
$res = addDir($params, 1, $courseInfos[$cid], null, $sid);
if ($res === false) {
echo "Could not create task $workName in course $cid, session $sid, for some reason\n";
} else {
echo "Task $workName created in course $cid, session $sid. Task ID is $res\n";
echo "All done!\n";

Categories: Chamilo, English, php, Techie Tags: , ,

Correo de lectores – Desarrollo de modelo de negocios

October 25, 2013 Leave a comment

Un lector nos escribe:

“Queria hacerte una pregunta sobre los modelos de comercializacion para el chamilo, ya que conozco una compañia de un amigo, que quiere distribuir chamilo pero no bajo la licencia GPL. Queria saber si la empresa BeezNest, tiene algun modelo de comercializacion alternativo para el Chamilo tipo open source, licencia BSD o alguno similar en donde el cliente pague una licencia por el uso del sistema y que el codigo fuente sea opcional entregarlo.”

Mi respuesta:

“Hola estimado,

Chamilo *no se puede* distribuir bajo ninguna otra licencia que GNU/GPLv3 o superior. Es una infracción legal tratar de hacerlo de otro
modo, así que te recomiendo sugieres a tu amigo verificar sus derechos según la licencia.

Por lo tanto, tratando de modificar este modelo, tu amigo se transformaría automáticamente en un enemigo del proyecto Chamilo, lo que dudo que quiera hacer. Si desea desarrollar un modelo de este tipo, deberá apuntar a soluciones no libres, tipo e-ducativa, Blackboard, Desire2Learn, e-Doceo, etc. No se puede obtener los beneficios de un producto de software libre (por ejemplo en este caso actuar de manera independiente) y al mismo tiempo los de un producto de software privativo (en este caso vender la licencia).

Queda terminadamente prohibido por la licencia. Eso es para el aviso importante (me hizo abrir los ojos bien grandes lo que leí).

De otro lado, el proyecto Chamilo es un proyecto de software libre radical: no acepta ninguna parte que no esté bajo licencia de software libre. Acepta la inclusión de otras licencias consideradas de software libre y compatibles con GNU/GPLv3 según la Free Software Foundation, pero su calidad surge de esta visión radical: la educación no puede estar frenada por asuntos comerciales!

Aun así, BeezNest basa su modelo de negocio sobre Chamilo gracias a la provisión de servicios de distintos niveles a sus clientes, los cuales
nunca impactan el proyecto software mismo de manera negativa:

* soporte
* instalación
* capacitación
* desarrollo (la totalidad de los útiles para el público se contribuye al proyecto)
* consultoría
* diseño e implementación de infraestructura

Y tu, que opinas? La parte legal es estricta, pero te parece que Chamilo es demasiado radical?

Chamilo User Day en Latinoamérica Mayo 2013

March 28, 2013 Leave a comment
%d bloggers like this: