Assignments in LMS: How to cope with disk space issues

In this article, we'll talk about managing an LMS when all institutional assignments handed in by students have to be handed in through the LMS, and what that means if you have several thousand students. This case is based on one of our customers which provides in-class English courses to about 55,000 students in a monthly cycle. The institution started working with us in 2012, so it's already been 5 years since we've started developing their custom Chamilo LMS setup.

Chamilo 1.11 on Raspberry Pi 3 for off-the-grid situations

This article can be considered an update of our first article on installing Chamilo (on a Raspberry Pi B+). This time, we are testing it with Raspberry 3, as of the 1st of April 2017 (no joke intended). Last time, we were testing with Chamilo 1.9, which is arguably less load-intensive, considering it doesn't include any Symfony component, and it doesn't require any .htaccess configuration.

Redirect mobile devices to alternate URL with Varnish 3.0 and Drupal 6

This is a short note for ourselves, but it might help others considering the (new for now) rules of Google indexing of non-mobile sites. Drupal 6 does not really provide all the stuff that would be really useful to switch the theme of your site depending on the browser being on a mobile device or not. There are a few modules that should help you, like switchtheme, and mobile_subdomain, but in the end, you can also do it as follows.

Setting up Apache (or web server x)

Let's assume your site is called your.site.com and you want mobile devices to see another theme. Define the m.site.co

Using php5-memcached to store sessions on distributed servers

This article is an extension of the previous article about storing sessions in Memcached with PHP. Using Memcached for sessions storage is generally a matter of speed (storing them in memory is faster than on disk) and of scalability (using a Memcached server allows you to have several web servers serving the same PHP application in a seamless way). In the previous article, we mentioned (3 years ago) that the php5-memcached extension did not seem to manage the storage of sessions quite well, or at least t

On PHP and cache slams and solutions

While reading about Doctrine's cache mechanism (which applies to other stuff than database queries, by the way), my eye was caught by a little message at the end (last section) about cache slams. I have used cache mechanisms extensively over the last few years, but (maybe luckily) never happened to witness a "cache slam". There's a link to a blog (by an unnamed author) that explains that. To make it short, you can have race conditions in APC (and

PHP's @ hurts performance

Did you know...? As a "take away" information taken from this post https://gist.github.com/nikic/6699370 (by famous PHP core developer @nikita_ppv), it appears like the @ sign in PHP (used to "hide" errors, as the "error-suppression operator" it is) also disables the "compiled variables" optimization (OpCode caching).

Nginx + CDN + GoogleBot or how to avoid many useless Googlebot hits

If you're like me and you've developed a CDN distribution for your website's content (while waiting for SPDY to be widely adopted and available in mainstream distributions), you might have noted that the Googlebot is frequently scanning your CDNs, and this might have made your website a bit overloaded. After all, the goal of the CDNs are (several but in my case only) to elegantly distribute contents across subdomains so your browser will load the page resources faster (otherwise it gets blocked by the HTTP limit or any higher limit set by your browser of simultaneous content download). Hell,

Xhprof + PHP5.4 + Ubuntu + Chamilo 1.10dev

(Read the update below before starting to copy-paste) To install Xhprof on PHP5.4 on Ubuntu (assuming you've already got PHP5.4 from Andrej or somewhere safe) in order to measure the load of Chamilo 1.10 dev (you need to have a mercurial clone, otherwise the "tests" directory will not exist), follow this procedure (all lines prefixed with # are comments):
cd /tmp
sudo apt-get install php5-dev php-pear
pecl bundle xhprof
cd xhprof
# Here you will have to apply the patch mentioned here: https://bugs.php.net/bug.php?id=61674 to your extension/xhprof.c file (otherwise it won't compile