Hasselt University

3 December, 2009

This is the brief version of my actual master thesis proposal, which is attached in PDF format.

Introduction {#introduction}

My bachelor thesis was about making Drupal web sites load faster. 80 to 90% of the response time (as observed by the end user) is spent on downloading the components of a web page. Therefor this is also the part where optimizations have the largest effect.

To be able to prove the positive impact of optimizing the loading of the components of a web site — thereby proving that the work I was going to have done had a positive impact — I researched existing page loading profiling tools. Episodes (which refers to the various episodes in the page loading sequence) came out as a clear winner.

Also as part of my bachelor thesis, I wrote a simple Drupal module1 that could create simple charts to compare the average page loading time per day per geographic region.

26 August, 2009

In this very brief article, I highlight the key properties of CDNs: what differentiates them and which technical implications you should keep in mind.


A content delivery network (CDN) is a collection of web servers distributed across multiple locations to deliver content more efficiently to users. The server selected for delivering content to a specific user is typically based on a measure of network proximity.

It is extremely hard to decide which CDN to use. In fact, by just looking at a CDN’s performance, it is close to impossible (see “Content Owners Struggling To Compare One CDN To Another” and “How Is CDNs Network Performance For Streaming Measured?”)!

25 August, 2009

In this article, I explain what was required to integrate the Episodes page loading performance monitoring system with Drupal.
Episodes was written by Steve Souders, whom is well-known for his research on high performance web sites and has authored multiple books on this subject.


The work I am doing as part of bachelor thesis on improving Drupal’s page loading performance should be practical, not theoretical. It should have a real-world impact.

To ensure that that also happens, I wrote the Episodes module. This module integrates the Episodes framework for timing web pages (see the “Episodes” section in my “Page loading profiling tools” article) with Drupal on several levels — all without modifying Drupal core:

24 August, 2009

In this article, seven distinctly different page loading profiling tools are compared: UA Profiler, Cuzillion, YSlow, Hammerhead, Apache JMeter, Gomez/Keynote/WebMetrics/Pingdom, Jiffy and Episodes. “Profiling” must be interpreted rather broadly: some of the tools cannot measure actual performance but are useful to gain insight in page loading performance characteristics.


If you can not measure it, you can not improve it.
— Lord Kelvin

The same applies to page loading performance: if you cannot measure it, you cannot know which parts have the biggest effect and thus deserve your focus. So before doing any real work, we will have to figure out which tools can help us analyzing page loading performance. “Profiling” turns out to be a more accurate description than â€śanalyzing”:

24 August, 2009

I’ve been so caught up in work and reducing the amount of work (by lowering the number of projects I’m involved in), that I had not yet posted my results.

I finished my bachelor degree on July 7, 2009, with honors! (It’s actually honors over the entire course of the bachelor degree: it is calculated over all three years.) Most importantly though, I received an extremely high score for my bachelor thesis: 19/20! It’s the highest score possible (a perfect score of 20/20 is never given) and was the highest of my year. My bachelor thesis was considered of the level of a master thesis! (And for a master thesis, you get twice as much time to write it.)

22 May, 2009

Finally, my bachelor thesis has come to an end! I now have a very strong feeling of relief (because I managed to finish it in time!) and accomplishment (because it wasn’t always trivial to see the ligt at the end…). Now I can start studying for my upcoming exams, of which there are fortunately only two!

For those who don’t know yet, there are basically three big components:

  1. Drupal Episodes module
  2. the daemon, which performs the discovery, processing and syncing of files (it still doesn’t have a proper name — your suggestions are welcome!)
  3. Drupal CDN integration module

For more information, I’d like to refer you to the bachelor thesis text draft that I’ve attached to this blog post and possibly even to the blog post in which I announced what my bachelor thesis would be about.

10 February, 2009

I went to FOSDEM on Sunday. I got up at 6 AM but went to bed at 2 AM (because I still had to review my presentation) … so I only had 4 hours of sleep! I met up with Jo Vermeulen and Tim Dupont at 7 AM in Hasselt’s station. Jo is a PhD student and Tim is a teaching assistant at Hasselt University.
I hesitated at first because both of them have teached me a course either this year or last year, so it’d be a bit weird. But getting to know people is virtually always more fun than pain, so what the heck, I traveled with them anyway!

28 November, 2008

It has bothered me since day one at university that I can only use the university’s SMTP server. I got by, by just letting sent messages fail, because then I’d get a pop-up which would let me pick another SMTP server. This was of course far from perfect: sometimes I thought a message was sent while it really wasn’t … so it would sit in my outbox for a day.

Possible solutions {#possible-solutions}

The only real solution is for the university’s network to be improved: they should find a way to limit network traffic and abuse in ways that don’t affect the user so severely. (On the bright side: the wireless network was incredibly unreliable the first 2 years but is superb since this year!)
Until that happy day, I needed an interim solution. The best solution would involve an SSH tunnel to keep using the correct SMTP server. It also requires you to have a server somewhere with SSH access. I don’t want to maintain that too, so I chose for a simpler solution.

22 October, 2008

For several courses at the university, we’ve got projects going on (actually, 5 simultaneously…) and for most of them, we have to write fairly large documents. We also have to work in groups of 2, 3 or 5. So collaborative writing becomes a necessity. Finally, in the group of 5, we work on 4 different operating systems. So whichever solution we pick, it must seamlessly work on any platform as well.

We chose LyX.

  • LyX is a WYSIWYM GUI to write LaTeX documents.
  • LyX is written in Qt, a cross-platform GUI toolkit (the most awesome one, if you ask me!), which makes it possible to use it on Windows XP, Windows Vista, Mac OS X and Linux.
  • To make LyX collaborative, we use the SVN version control system (which is also cross-platform).

This is how we started. But some problems emerged:

18 October, 2008

I’ve alluded to it before, but now it’s also been officially approved: I’ll be doing my bachelor thesis on Drupal! I will focus on integrating Drupal with CDNs. Yay! :)

Don’t know what a CDN is? It’s short for Content Delivery Network; a network of (static file or streaming media) servers that are located around the globe. These servers all mirror each others’ files. When a user requests a certain file from the CDN, the server that is the closest to the user will serve the file.
By using a CDN to serve the static components on your web site (CSS, JS, images, fonts), your web site will load much faster: the latency will be lower and the throughput will be greater.