Posts Tagged ‘Dokkeos’

Exit Dokkeos, Enter Chamilo

January 19, 2010 14 comments

Those of you watching closely the Dokeos code will have noticed… I stopped contributing to the project in December 2009, along with my team of 12 and all of our fellow community members. The only changes we sent were actually customer requirements, so no way to avoid that. But that’s it.

I officially stopped working with Dokeos on January 1st, 2010. As many huge actors in the open-source (MySQL/MariaDB,, …) and PHP development world at the end of 2009, it was time for a big change. On one side I think it is just sad to let go of something you’ve been involved in with so much of your love, sweat and personal motivation. On another side, there was no possible compromise between a company that strengthened its fist around the open-source software neck a little bit more each year.

I started working with Dokeos for a reasonable hourly fee in 2004, and continued working (for the same fee all along, that is) until the very end of 2009. But I accepted the conditions were somehow something I could accept in exchange for the possibility to work on free open-source software full-time. Well… It wasn’t really full time at first (more or less 10 hours a week), then it became full time in 2006 and became an unbearably high load in 2007, then I started hiring people to help me.

Hiring people is not easy. You have to find the right ones… the chosen ones. The ones that would do the things exactly like you under the same conditions, or that would do them differently, but with the same results. Or even without the same results but for the same reasons. Anyway… it is a wonderfully complicated process. Even more when you want to achieve something for the software you are desperately involved in. That’s what I did. That’s why we are now a 12-people strong company that’s producing more FLOSS than any other company here in Perú (and possibly than a whole lot of supposedly open-source companies around Latin America). That’s where following a dream can lead you, and that’s also why accepting conditions opposed to your dreams is not an option when you reached that level.

Dokeos was a very simple application when I started working on it. And I was a very unskillful developer at that time. In 6 months time, I managed to get much more qualified and understand the complex processes of PHP and HTTP. In one year time I was Zend Certified and started writing articles about PHP and web development. In two years time I had become Dokeos’ lead developer.

In 4 years time I had become the leader of a development company that would represent Dokeos and spread the Dokeos trademark and quality image throughout Latin America, injecting all benefits into the open-source software. Then, apparently, the Dokeos company considered this wasn’t as good enough for them, so instead of them embracing the opportunity I was offering (of showing off a very productive international extension), I was asked to contribute a fee to use the trademark (that we had been developing ourselves since 2007 – see Google Trends).

Then, right in the middle of 2009, we reached breaking point. We argued (me and the Dokeos leadership) about the very principle of using and developing FLOSS and the fact that it wasn’t worth upsetting the community by removing a bunch of useless features to appear in a “professional” version rather than “adding” true, worthy features in a special compilation.

The problem was an ethical problem all along: removing existing features, be they only in the beta version of Dokeos, implied people from the community had already contributed to these features through feedback or patches, and we were just stealing their work to get a few more lines on a marketing folder about the pro version. Just not worth it in my point of view. I remember commenting (I don’t know if in June or later in September) that if he really wanted to move things like that, then I couldn’t see why I should follow him, and that I would probably launch a fork to avoid the software dying this way (which was an unweighted comment at the time – obviously not that far out).

A little bit later, and in an unrelated aspect, as a group of three main providers for the Dokeos company, we asked for better communication and planning in our work with Dokeos. All denied. It became worst. Less communication, less planning. We wouldn’t know when someone new was joining the team or leaving it, except by talking with the person itself. We wouldn’t know when a customer was a  customer. No information about what type of contract he had or the remaining amount of hours of support. This became a nightmare to manage.

In response to our requests (or should I say suggestions), the Dokeos company asked for all the developments to be planned and a budget to be established. Sadly, this implied bigger investments still, to work for Dokeos (where I don’t object about planning and budgeting, we had so far pretty much tried to get full agile, developing and reporting frequently, with less long-term planning, as a reflection of what customers needed). Several of us calculated the cost of providing services to Dokeos were actually higher than what we charged (in short, we were investing in Dokeos instead of providing profitable services).

This would all have been more acceptable to me if we had received some kind of guarantee that we would have our word to say on the future of Dokeos as a free software, and that we wouldn’t be working our asses off for a trademark that belonged to someone else, to be finally kicked out when it so appealed to the owner.

And so emerged two possibilities: keep doing the same and bend to the rules of someone with whom I didn’t share opinions (and I had already started bending for a while), or find another way to both continue doing what we were doing best, as well as kicking that trademark problem away. After many discussions, with many people involved both inside the Dokeos community and inside other professional communities, it appeared to me that, all in all, we had nothing to lose, and that our community of users and, more importantly, our own customers, would be better served by a split (actually, we were already doing 95% of the technical work, organizing yearly and monthly events much more successfully – in terms of attendance – than the ones organized by Dokeos, writing our own documentation, having our own localized support service, contributing to the Dokeos community much more than the Dokeos ever did, etc).

However, I was hesitant. Mostly because changing the name of a product you’ve worked so hard to promote is just like burning your house down right after you built it. But if this house had a fundamental flaw that made it unstable? We couldn’t live in there, neither could we invite our clients for lunch. Just too dangerous.

So, during the long months from September to December 2009, I gave an agreed period of three months (from a meeting on the 11th of September in Brussels) to the Dokeos company to propose a change in its structure. I reminded the expiry date to Dokeos a few days before it happened, but I was ignored, pretty much the same way so many of the users that ask Dokeos for quotes regularly are ignored because they don’t look professional enough… At this point (is was the 11th of December), I decided it was time to move on.

We stopped submitting code patches and new features to Dokeos that same day (so the current Dokeos was still one month back in terms of developments in comparison to the Chamilo version when it was released in January 2010). I professionally announced my intentions and the ones of my company and finished the pending tasks we had been assigned, and officially stopped working for Dokeos on the 1st of January 2010.

The sad thing about Dokeos was that the project lost, in just a few months, all of its full-time developers, its lead developer (myself), all of its development community and most of its active forum contributors. The good thing is that they were now all gathered inside the Chamilo project. Dokeos was also now free to free itself from its community chains (which apparently is what it wanted).

What does this mean? This means that if you were a community member of Dokeos in the past (not only a customer), you will be better at home in the Chamilo community now (or at least from the end of January 2010, when the website will be [editor note: now “was”] much better equipped to host a series of interesting services). If you were a Dokeos customer… well you can hold to your hosting contract in Dokeos. Maybe you will be upgraded to a free Chamilo version within 6 months, or maybe there will be a new Dokeos version within that time, with half the features there are in Chamilo (but hey, some people say that less is better) and double the bugs… The only thing I can assure you is that if you were happy with my work in the past (which basically means the leadership of versions 1.6.5, 1.8.0, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6 and of Dokeos – or all of them in the last 4 years), you will be happy to follow the Chamilo project.

To let you get a taste of what’s inside this new (minor) version, you can have a look at our demo portal:

We have already received a lot of e-mails to support us in our initiative, and I thank you for that. Not having collected the authorizations to publish them in full with names, I’m just quoting a few:

“Hi Yannick, I think you’ve done well. Greetings and all my support to you in this new project” – from Italy

“… and as much as I was telling you this for the Dokeos project, I would like to contribute in the limits of my abilities to the Chamilo project” – from Spain

” Congratulations with this important step!  I think this will help this nice electronic learning environment much better.” – from The Netherlands

“… sounds exceptional to me…” – from Argentina

“Best of luck with this new branch-project!” – from Mexico

“I’m starting to collaborate with Chamilo and I’m happy for your enthusiasm in the the new enterprise. I hope I will be carried away by the enthusiasm.” – from Italy

It goes without saying that we didn’t use the Dokeos database to send this e-mail (that would have been an ethical mistake in my opinion). We rather contacted about 1000 contacts we made through events, blog posts, social networks, bug reports, etc.

Now let’s go to the practical topics…

What about Dokeos Pro and Dokeos Medical? Will they have equivalents in the Chamilo project?

The short answer is NO. Chamilo will be a free package. Additional extensions might be sold separately in case they require important investments that need to be covered, but the politics will be specific to Chamilo providers.

That question, though, has been worrying a lot of people since the creation of these “versions”. The truth is… it’s very easy to understand. In Chamilo, we want software to be free and accessible. If you want the videoconference or Oogie, you can get them from the sources of Dokeos. Any competent developer + sysadmin should be able to install it and get it running. Obvioulsy a lot of people have done so. You can find very cheap services on the internet of people that will do it for you. Furthermore, the Chamilo administration documentation will include clear installation instructions for all these, where the Dokeos installation documentation hid them to mark the difference between the free and the professional packages.

The software, however, is not everything in an e-learning project, and if I have to work for you, then I will charge you. On one side because I need to pay my bills, on another side because I couldn’t help everybody at the same time if I were helping for free. Easy enough to understand, I think.

Now the second point is that, as much as we’d like everything to be free, there are some things that nobody is actually willing to pay, like the development of a new tool that *we* think that will improve your e-learning experience, but that *you* don’t want to pay for (because you want to see it before you buy it). In this case, we’ll develop the extension and charge for it until the expenses are covered. This way, we allow people to get the exclusive use of a tool for a reasonable period of time (ahead of their challengers). This means that there *will be* professional versions of Chamilo, yes, but they will not be based on software options, but rather on a set of services (training, invitations to events, unlimited support, free course content and much more that we will soon detail on our website).

Whether these professional version of Chamilo will be endorsed by the association is something we still have to discuss, but we (BeezNest Latino aka Dokeos Latinoamérica) will definitely be at the cutting edge of e-learning technology, and will provide both new developments for the free version and productivity-improving packages that will first need to be covered financially to ensure more innovation comes faster in the future. This being said, most of our business will be generated from services, and we will not redirect development resources towards non-free products.

On a side note, the Chamilo Association, defending the open-source project and the safe use of the Chamilo project name, will be promoting contributions to the open-source software through the allocation of grants. These will be considered part of the financial cover for our possible non-free modules (i.e. you will not have to pay yourself to get high value solutions delivered to your door, as long as you support the association).

Will the videoconference and Oogie tools be free in Chamilo?

As explained a few weeks ago, they have always been. What isn’t free is the service to install them, but the code of both tools is GPL, and as such is public. I have personally contributed considerably to both, so in virtue of the General Public License, I am free to re-use it and re-distribute it. So as far as I’m concerned, the tools will be made available more obviously when time allows (the change of name is considerably time-costly, so you’ll have to be patient).

This being said, “Oogie” is a trademark, so we won’t be using that name either. Rather something like Chamilo-Office.

Why would you work so much for something that is free? Wouldn’t it be easier to just abandon and work for Microsoft?

Points of views are things that might change quickly over time, but personal beliefs tend to be more permanent. It is my belief that the open-source model works (sell the services, not the software), and it is my intention to be a personal proof of that. Now that doesn’t mean it’s easy money, and I’m certainly not doing it to become rich. I believe that by getting involved deeply in the open-source software development, I can help people and do my “social responsibility” move as well as develop a stable and comfortable professional career. Comfortable is not exactly the correct adjective for my current situation, as I’m working an awful lot of overtime to kick-start this project, but I think that getting through 2009 with a company of 12 and without a single budget-based lay-off shows just how strong we could be in a strong economic context. 75% of our work has been open-sourced in 2009. We hope we can maintain that rate through 2010. And yes… it would be easier (but more boring) to work for Microsoft, certainly.


Now is time to give you a nice and short conclusion:

  • we were many unhappy amongst the Dokeos community
  • 90% (at least) of the active contributing community agrees and is moving with us to the Chamilo project
  • the Chamilo trademark is defended and shared by an association, as part of its goals, so the same split will not happen again
  • we (my company and I) used to develop the Dokeos software for 65% in 2008 and 2009, and it reached 85% with other developers coming along with us
  • if you were our customer, the service to you will only get better
  • if you were part of the Dokeos community, you will feel a bit lonely staying there, most probably
  • I will not work for the Dokeos company in the future, unless deep structural and philosophical changes are made

I hope to see you join the Chamilo community soon. The best you can do right now is register on our website: and let us know that you are willing to give us a hand, or just let us know you are supporting the initiative, morally (that’s good enough for us). You will receive notifications later this month on how to best contribute to the project and make it a success. If you are our customer, don’t contact us, we will contact you very soon with more details.

This blog will continue existing for the sake of continuity, but I will be slowly moving on to the more professional BeezNest’s blog soon: as I should probably have done since the very beginning… :-)

2012-07 update

  • The Chamilo project is now used in 180 countries around the world
  • Our community reached 1,000,000 (self-registered) users this month (we do count reductions in numbers as well)
  • We have customers with Chamilo campuses ranging from 200,000-employees to 50-customers
  • We have been interviewed *many* times by radios, podcasts and magazines (printed and web)
  • We are organizing around 10 events per year (both in-person and virtual) and participate to around 50 others per year, promoting Chamilo and how to use or contribute to the project
  • Chamilo received 2 open-source awards in 2011 (Packt Publishing and Portal Programas)
  • The Dokeos project closed its development repository to the public less than two months after we left and created Chamilo (in an attempt to prevent us from re-using fixes they would possibly develop – in the end we returned the system and they are now re-using most of our fixes and ideas, because we remained open to all). This also removed the possibility for us to “compare” our development speed with them through tools like Ohloh’s.
  • Chamilo now has local national (and official) groups in Belgium, Spain and Peru (and is currently preparing one in France and one in Venezuela)
  • Chamilo now integrates key usability features for the teachers directly from the browser: recording your voice, generating voice from text, drawing, photo retouching, drag & drop of documents, etc.

In terms of what our first goals were in 2010, we certainly reached them. The business around Chamilo took time to launch though, but we have now reached a step where our customers come pretty much on their own. The future is bright.

Style broken when installing Dokkeos on one local computer then seeing it from another

December 7, 2009 2 comments

A frequent question I’ve been asked is why, when installing Dokeos on a local computer, then trying to see it from another computer, the styles are broken (the homepage appears as a list of links from top to bottom).

This is all a question of Name Resolution (or DNS).

How you did it

The initial problem lies on how you did the installation on your local computer: you downloaded Dokeos, then took the easy way and installed it on “http://localhost/dokeos/”, or “”, or even your local IP “” for example. Didn’t you?

Well, Dokeos remembers that, and asks you, during the installation process, what URL you want to access your portal with. You remember that?

Why this is a problem

As Dokeos remembered it, it will now serve the future pages as if they were starting with http://localhost, or whatever name you gave it during the first install. You can check that, from the other computer, by pressing CTRL-U in your navigator. You will see links like this for the query to the stylesheet (CSS): http://localhost/dokeos/main/css/dokeos_blue/default.css. Well, guess what… “localhost” for the secondary computer is not equal to “localhost” for the main computer. In fact, “localhost” on the secondary computer is pretty much itself, so he’s trying to look like this: http://myself/dokeos/main/css…

This means that the secondary computer is expecting Dokeos to be installed locally as well, which, in general, is not the case. If it was the case, you would probably get even more problems in the current situation anyway.

How you should do it

The *best* solution is to give the first computer (the server) a public name. This public name can be a public subdomain name (like for example), but this implies an access to defining such a name. This name will be permanent and equal for all, so everybody will know where the computer is and you will define this subdomain name at the moment you install Dokeos, then use it with all the other computers. If you don’t have a permanent internet connexion, however, and you use an external domain name server (the one from your internet service provider for example), this configuration will not work.

The second best solution is to have a local name server and define a name for the Dokeos server on that local domain name server. This works like above except you don’t need an internet connexion for that to work. Sometimes, the router can act like a name server (see your router’s documentation).

The third solution (which is not one of the best one, but still works in a closed environment) is to make sure the server has a fixed, permanent IP address, and define a unique name for the Dokeos server (like say: “www.dokeos.local”) then define this name on every computer (including the server).

Under Linux, this is done by defining a line with the fixed IP address of the Dokeos server, a space, and the given local domain name (www.dokeos.local for example) in the /etc/hosts file (you need root permissions to edit this file).

Under Windows, the same file exists with the same format, but you have to look a bit deeper to find it: C:\Windows\System32\drivers\etc\hosts.

Don’t hesitate to report if you found a better solution.

Instalar Dokkeos en un hosting con CPanel

November 3, 2009 10 comments
  1. Descargar, en su máquina, la última versión de Dokeos desde, por ejemplo,
  2. Descomprimir el archivo
  3. En CPanel, crear un subdominio (es más limpio pero a veces no se puede, depende de su cuenta de host). Por ejemplo, si usted posee el dominio “”, declarar un subdominio “” dentro del menu Dominios -> Subdominiossubdominio
  4. En FTP, subir los archivos de Dokeos dentro de la carpeta /public_html/dokeos (relacionada al punto anterior con el subdominio). Este paso puede tomar mucho tiempo. Sea paciente. Si la conexión se corta en el medio, es muy probable que resulte en errores más tarde con su instalación de Dokeos. Prueba evitarlo a todo costo y, si es necesario, de subir los archivos desde otra conexión a internet para evitar el corte.
  5. Ir con su navegador en su subdominio (ej. Si todavía no se ha acabado la descarga de archivos, verá una lista con título “Index of”. Esto indica que todavía no están presentes todos los archivos necesarios. Mejor espere, todavía.indexof
  6. Crear una nueva base de datos en la opción MySQL Base de datos, “Crear nueva base de datos” (indicar por ejemplo “dokeos”, que estará modificado para agregar un prefijo, por ejemplo “somoslatinos_dokeos”).mysql-db
  7. Crear un usuario que tenga acceso a esta base de datos, dentro de la opción “MySQL Base de datos”. Por ejemplo, un usuario “dokeos” con una contraseña diferente y difícil de adivinar. El usuario será modificado a “somoslatinos_dokeos”. Finalizar agregando este usuario a la base de datos somoslatinos_dokeos, usando la opción “añadir Usuario a Base de Datos”. En este paso se le pedirá que permisos tiene. Seleccionar todos. NO OLVIDARSE de este paso, es muy importante.
  8. A este punto, debería poder conectarse a la pagina principal del subdominio (en este ejemplo: y ver la página de bienvenida de la instalación de Dokeos. install-welcome Un manual de instalación le permitirá ir adelante con la instalación (de la cual el más complicado y importante paso es la configuración de la base de datos, donde se tiene que escojer, en las opciones avanzadas – ver sección desplegable de parámetros avanzados -, de usar una sola base de datos: la que usted acaba de crear).

Posible problemas

No se ven las imágenes

Esto puede ser debido a un problema de permisos de acceso a los archivos de imágenes, o a un problema de configuración de .htacess. Por ejemplo, usted podría haber instalado Dokeos dentro de una subcarpeta de su public_html/ (en la carpeta public_html/dokeos/, por ejemplo). En ciertos casos, el CPanel puede haber construido un .htaccess en la base del public_html/ que esté impidiendo a las imágenes de ser usados directamente dentro de subcarpetas.

En un caso que ví hace poco, el .htaccess de la base estaba definiendo reglas del módulo Rewrite de Apache que estaban bloqueando las imágenes. Fue suficiente crear un archivo .htaccess en la base de Dokeos indicando solamente “RewriteEngine Off” para desactivar el efecto negativo. No obstante, esto solo es *un* caso particular. No puede ser usado siempre.

El .htaccess puede contener todas las opciones de Apache, que son cientos de opciones, por lo que no hay una forma breve de aconsejarlos si esto es el problema, y por lo cual proponemos servicios de soporte con costo para ayudarles, así que un servicio de alojamiento a US$50/mes con backup y seguridad, para que no tengan que preocuparse de estos problemas. Para más información sobre estas fórmulas:

No se puede crear cursos

O mejor dicho, se puede crear cursos pero no se puede entrar en ellos. Esto también está debido a un problema de permisos sobre la carpeta “courses”, o a una regulación de seguridad del servidor que implica que las carpetas deben ser creadas con ciertos permisos para poder ser vistas (no los permisos más amplios). Para cambiar los permisos de las nuevas carpetas de cursos, puede usar la sección “Seguridad” de la página de administración de Dokeos. En general, es tan simple como cambiar un 0777 a un 0755, por ejemplo (que impide a los demás usuarios del sistema modificar este recurso pero sí leerlo).

Dokkeos presente en el IV FOSD | Freedom & Open Source Day – USMP

El IV FOSD | Freedom & Open Source Day – USMP, es el primer y mas reconocido evento de Software Libre y Open Source del Peru, agrupa a las comunidades universitarias y no universitarias que siguen la filosofia del FOSS a realizarse en la USMP el 24 de octubre.

Dokeos Latinoamérica como de costumbre se hace presente en este tipo de eventos con las siguientes exposiciones:

Expositor: Yannick Warnier
Tema: Fallas en el modelo SL

Resumen: En un mundo dominado por el capitalismo y la ganancia personal, el software libre beneficia a las comunidades solo cuando se reúnen criterios de ganancia financiera o de entretenimiento personal. ¿Está bien eso? En esta presentación inédita, estaremos analizando cuales son las razones de apoyar a un software libre, como hacerlo, y cual es el papel de una comunidad en el desarrollo sostenible de sus mejores herramientas.

Expositor: Ronny Velásquez
Tema: Open C2C – Sistema e-comerce C2C peruanoResumen: ¿Qué es OpenC2C?,¿qué permite? Y ¿qué es la licencia Affero GPL? OpenC2C es un sistema escrito en PHP usando un framework MVC que incluye, manejan muy bien traducciones y pruebas unitarias. OpenC2C permite al intercambio o ventas en multi-monedas, multi-idiomas, multi-precios, multi-versiones, multi-usuarios, multi-permisos, multi-productos, multi-descripciones, etc.

Mas información en

Categories: eventos, Spanish Tags:

Chamilo Medical

Hola, soy Carlos Vargas, la semana pasada Dokeos Latinoamérica participó en una importante feria donde se muestran las últimas novedades en tecnologías de la salud, nos hicimos presentes, pues fue oportuna la ocación para mostrar una de las soluciones no gratuitas de Dokeos, que tienen mucho éxito en Europa tanto en hospitales, compañías farmacéuticas, asociaciones y escuelas o facultades de medicina. Me refiero a Dokeos Medical.


Read more…

Chamilo en Tecnosalud 2009

Dejo algúnas imagenes de la presencia de dokeos en la 5ta convención internacional de productos para la salud y ciencias afines, estamos en el centro de convenciones del Jockey Plaza Stand 4

Categories: eventos, Spanish Tags: ,

Chamilo Medical será expuesto en la feria TECNOSALUD 2009

Del 14 al 16 de Octubre se llevará a cabo la 5ta convención internacional de productos para la salud y ciencias afines TECNOSALUD 2009, en el centro de convensiones del Jockey Plaza (Lima – Perú). Esta es la principal feria del sector de la medicina y la salud, esta perfectamente diferenciada por rubros dentro de la cual se presenta un amplio abanico de nuevos productos, dispositivos, sistemas y servicios para la asistencia clinica y hospitalaria y hasta una plataforma de e-learning.


Dokeos Latinoamérica participará activamente en el evento con un stand en la cual daremos exposición de la solución Dokeos Medical, ideal para la capacitación a distancia y educación para este rubro y sus ramas. Además en uno de los auditorios Yannick Warnier estará dando a conocer las bondades y novedades de esta solución.

Dokeos Medical es una de las soluciones mas completas que ofrecemos, tienes las siguientes características.

  • Sistema de delineación de radiografías para ejercicios.
  • Sistema de scenarización de ejercicios para formular caminos de ejercicios prácticos con un camino de aprendizajeSistema de indexacion permitiendo busqueda de textos dentro de documentos.
  • Soporte de imagenes DICOM (próximamente).
  • Gestión de certificados personalizados.
  • Limitado a 10 000 usuarios 500 cursos.
  • Disponible: Ahora con un plazo de 2 semanas para instalación.

Ademas de la herramienta Oogie, la video-conferencia y el estilo y los certificados personalizados que son bondades de la versión Pro.

Categories: eventos, Spanish Tags: ,

Why using partial strings for translations is not a good idea

October 4, 2009 4 comments

This article is clearly at level “piece of cake” for those of you working day to day with UTF-8 and unicode headaches, but I have plenty of problems with my own team to explain why they should never put a string like this:

$SomeString = “This value must not be inferior to”;

in the Dokeos translations system, but they never learn :-)

This would later appear in the code as something close to:

echo get_lang(‘SomeString’);

and this would make it available in all the supported languages (if translated by a good will in his own language).

So here is an attempt at explaining clearly  what it’s all about, and why this kind of expression should be avoided at all cost in a translation system.

First of all, let’s delve a bit deeper into the string above, to make sure we all start on the same bases. The idea is to have a final string in the user interface which will look like this:

This value must not be inferior to 25

OK, you all get the point?

Now where is the problem in that? Well, the problem is that not all languages work the same or, better said, have the same sentence construction rules. The same sentence would be translated in the following ways:

French: Cette valeur ne peut pas être inférieure à 25

Spanish: Este valor no puede ser inferior a 25

Dutch: Dit waarde macht niet minder dan 25 zijn

Did you see what just happened? Yes, “25” was not the last word of the sentence! So, how do you fix that now with your string, huh? You’re pretty stuck now, aren’t you? Well, that’s why I’m writing this. Dutch is not the only language with this kind of structural change. Japanese would most probably put 25 (ni-juu-go) right in the middle of that sentence.

Now, I hope you already learnt something right now. And I hope that what you learnt is that you have to think a bit more and be a little less egoistic when programming. A lot of people might use your program (particularly if it’s open-source), and a huge lot of these will not speak a work of English or French or even Spanish, so you will have to find new ways to do things properly.

One of these new ways is to use the nice sprintf() function in PHP (in our case, of course), and pass parameters in the form of %s (string) or %d (decimal) inside your string.

For example, the previous string could now be stored in a language file this way:

$SomeString = “This value must not be inferior to %d”;

When translating this string to Dutch, I would write:

$SomeString = “Deze waarde mag niet minder dan %d zijn”;

Did you see that? Now the translation is completely up to the translator. No more problem of positionning the number at the end of the string.

Then you would call it from your script not this way:

echo sprintf(get_lang(‘SomeString’),’25’);

Et voilà! Now you know why I’m upset when I see a partial string translation… So let’s make it a better world for all translators around! Let’s give them multilingual-ready strings to translate!

Note: Purists will tell me that I should use printf() instead of echo + sprintf(), and also that I should use %d and not %s, and I would agree, but I’m just trying to show a one-simple-step change between the previous form and this one.

Thanks for reading.

Herramienta de Evaluaciones (Aprovechemos el campus al máximo)

October 2, 2009 73 comments

Hola, soy Carlos Vargas otra vez, y como lo he venido anunciando, iba a hacer otro post para enseñarles a usar mejor la plataforma y asi aprovecharla al máximo. Pues bien antes quiero agradecerles por tomar en cuenta el post anterior, pues ahora veo que se esta dando mas uso a la red social, sin embargo hay otra herramienta muy util para la educación que el equipo de desarrolladores de BeezNest Latinoamerica, la hicimos con mucho esfuerzo y dedicacion y que tampoco es muy usada, me refiero a la herramienta de Evaluaciones. Esta herramienta fue un pedido de la Universidad San Ignacio de Loyola (Lima-Perú) quienes usan bastante su plataforma Chamilo.


La herramienta de “Evaluaciones” sirve para llevar un control de las puntuaciones o calificaciones obtenidas por los alumnos en el curso, tomando en cuenta, el desarrollo de los ejercicios, al entrega de tareas, el uso de las lecciones, la participación en los foros y hasta una calificacion particular fuera del campus. La herramienta tambien puede preparar un informe de las habilidades de los alumnos matriculados en el curso. Cada evaluación puede ser ponderada y al final sacar un promedio del curso y hasta tener la posibilidad de que el alumno pueda descargar un certificado de participación en el curso. Como vemos con esto Chamilo es lo máximo. A continuación paso a explicar en detalle como se debe usar.

Antes que nada quiero recalcar que el uso de esta herramienta es exclusivo de los profesores son ellos quienes deben programar las evaluaciones y de acuerdo a su gestion los alumnos veran sus resultados en el curso, sin embargo es importante que los alumnos lean este post para que sepan como se esta evaluando su participacion en el campus y de donde obtuvieron la nota final.Como lo digo en el manual (que muy pronto estará disponible), existen dos tipos de prueba que pueden ser evaluados:
• Las pruebas del curso presencial (Pueden utilizarse para aumentar las calificaciones y para incluirlas, en el promedio general).
• Las pruebas en línea:

o Los ejercicios tomados por los alumnos.
o Las tareas presentadas por los alumnos al profesor.
o Las lecciones (caminos de aprendizaje), seguidas por los alumnos.
o Las contribuciones de los participantes a los temas de discusión (foros).72

Quiza aun no esté claro eso de “Las pruebas del curso presencial”, quiza no es el término adecuado, pero si ya vamos entendiendo para que sirve la herramienta nos damos cuenta que es un cuaderno de calificaciones o libreta de notas en la que se van a promediar los puntajes obtenidos en el curso, pero Chamilo ofrece tambien la opcion de añadir evaluaciones que NO sean de Chamilo por ejemplo, la nota que el alumno obtuvo en clase por intervension oral, examen parcial, examen final etc, esa nota la tenemos en el registro o en nuestro cuaderno (cuaderno fisico real) entonces esa nota la podemos incluir en la herramienta y Chamilo la promediará con las evaluaciones de la plataforma, el resultado sera una nota final.

Para añadir una evaluacion haz clic en “Nueva evaluación y te saldrá un recuadro asi”:


Debes darle un nombre como: examen parcial, nota oral, nota de concepto, etc lo que creas conveniente

Tambien debes darle un peso. El peso significa el valor que tendra en el promedio, pues para promediar las notas Chamilo NO suma todos los punatajes y los divide entre el numero de evaluaciones, sino que a cada una le da un peso y sobre eso se saca el promedio, al final todos los pesos deben sumar 100, pero eso lo explicare mas adelante,

Luego debes llenar la nota máxima, este campo nos es automatico porque cada pais tiene su tipo de calificacion, por ejemplo en Perú la nota máxima es sobre 20, en México es sobre 10 y asi cada pais tiene su estilo, por eso ahi se debe especificar.

Luego se debe escoger la visibilidad, es decir si los alumnos podrán ver la evaluacion en su sesion, normalmente se recomienda activarla, aunque otros prefieren dejar esto hasta al final del curso, pues al principio lo alumnos veran notas vacias o desaprobadas.

Una vez creada la evaluación debes llenar la calificacion para cada usuario, si deseas hacer esto inmediatamente activa la casilla añadir resultados, si deseas hacerlo en otro momento no la actives.

Esta es la pantalla de como lo llenaras:


Luego siguen las evaluaciones en el curso: para ello primero debes crear la herramienta por su lado ya sean: ejercicios, foros, lecciones o tareas, no es obligatorio que hagas todo solo lo que deseas evaluar.

Ahora, tu pudiste crear 10 ejercicios o 5 tareas o 4 foros o 2 lecciones, Chamilo  no va a evaluar todas, sino las que tu elijas, y para añadirlas al cueaderno haz clic en “Añadir enlace”. Aparecrea una pantalla asi:


Arriba debes elegir el tipo de enlace (foro, ejercicio, leccio, tarea) y darle su peso respectivo

Como dije antes todos los pesos deben sumar 100 (esto se puede modificar, pero no es recomendable aun, pues se pueden complicar las cosas, asi que dejemos 100 que vendria a ser el 100% y asi cada evaluacion tiene un porcentaje)


Por su lado, los alumnos deberan: resolver los ejercicios, participar en los foros, seguir las lecciones y enviar sus tareas, conforme esto pase, la herramienta de evaluaciones trabajará.

Por ejemplo si un alumno hizo un ejercicio de 100 puntos y solo contesto bien la mitad, tiene el 50% de la nota, y en las evaluaciones al ejercicios yo le di un peso de 20 (y 20 es el 20% de 100) entonces el alumno ya tiene un 10% (Creo que me han entendido)

Otro ejemplo Si un alumno sigue una leccion y solo completa el 75% y como a la leccion le di 20 de peso entonces el puntaje del alumno en la leccion es de 15.

En realidad es cuestion de hacerlo y acostumbrarse, recuerden que las herramientas de foros, tareas y ejercicios te preguntan antes sobre cuanto quieres calificar la evaluacion, asi cada pais es libre de evaluar como acostumbra


Bueno haganlo y comenten este post, los que si entendieron ayuden a los que y asi nos ayudamos todos. jejeje

Bueno Chamilo presenta un informe de las evaluaciones y este puede ser exportado a otros formatos.

Lo pueden exportar a un PDF


O a un Excel


Dependiendo del adminsitrador de la plataforma Chamilo podrá generar graficos estadisticos (En esta opcion no esta hablitada por lo mismo que dije hace un rato que cada pais califica de forma distinta asi que voy a llegar a un acuerdo con Yanncik Warnier para añadir esta posiblidad y que les sirva a todos)


Cuando decia que Chamilo es lo maximo, es porque en realidad Chamilo es lo maximo, pues hasta tiene la posiblidad de que el alumno pueda descargar un certificado de participación en el curso.


Los campos se llenan deacuerdo a la configuración de la plataforma, en una instalación propia estaría el nombre de la institucion, del campus, como ven el nombre del curso, del alumno, la calificación obtenida y la fecha. Trataremos de activar estas ultimas opciones para el campus, aunque hay muchas opciones mas que se verían en una instalación propia, asi que si les insteresaría tener un Chamilo para su propia institución no duden en contactarme que los puedo orientar en los servicios que brindamos, y recuerden que es mejor porque una gran parte del equipo de desarrolladores de Chamilo estamos Latinoamérica.


Hoy (5 de Octubre) actualzo este post, pues con un servicio particular que podemos ofrecer es posible modificar ese certificado al gusto del cliente como por ejemplo de esta manera:


En la versión PRO, el certificado puede ser personalizado al gusto total del profesor. Para mas informes sobre las versiones no gratutitas de Chamilo, pueden contactarme.


Hoy (7 de Octubre) actualizo de nuevo el post, para mostrar que asi como se puede modificar el certifado, como esta arriba, con solo unos pequeños cambios se puede modificar asi, (claro que en una instalacion propia)



Bueno espero haberlos ayudado, no solo lean este post, sino tambien escriban sus comentarios y los que lo manejan mejor ayuden a los que no.

Mas adelantes escribire otro post, mas bien sugieran temas para ver en que los podemos ayudar.


Ing. Carlos Vargas
Desarrollador y Ejecutivo de Ventas
BeezNest Latinoamerica

PclZip and gzopen64()

September 30, 2009 Leave a comment

I have updated my system early to Ubuntu 9.10 (Karmic Koala) and, to my surprise, there is a little change that could cause dramatic problems in Zlib (library dealing with compressed data). The gzopen() function has been changed to gzopen64(). This means that all calls to gzopen() in the PHP bindings for that library should probably be modified to use gzopen64().

In Dokeos, we use PclZip 2.6, which doesn’t use gzopen(), apart from a check to see if the zlib extension is installed or not. I have reported the problem to PHPConcept (the guys in charge of the PclZip development) to report the problem. Meanwhile, if you are using PclZip in your PHP app and it needs to run with a recent version of zlib (I have zlibc  0.9k-4), you will probably have to edit the PclZip library file and change gzopen() to gzopen64().

%d bloggers like this: