work

Launch of the new Boek.be site


Today we relaunched the new Boek.be website. With a tight deadline to bring this project online in only 3 weeks because tomorrow it's the start of 'Boekenbeurs', Belgian's famous annual book fair, we're more than happy of what we've achieved in that small period. Users can register and create their own collection of favorite books, add comments, rate and share them on facebook and/or twitter. There's more to come in the next few weeks, but it's a nice start.

I briefly want to highlight 2 main Drupal modules we use extensively in the site. The first one is Apache Solr. With over 250k of nodes (and growing), this was an obvious decision. We all know Drupal core search isn't the best in performance and decent searches. We used all hooks available to manipulate searches and as good Drupal citizens contributed some patches back to the community. There is still one left which we'd like to go in, so please review!

I'm biased for the second one, since I'm one of the maintainers, but the site (and also Stubru.be) uses modules grouped in the Display suite concept. Our themers love it, no more fiddling with node, views, user, whatever templates, just CSS. Our account managers love it, they use the interface to manipulate each context if the client asks for a little change without asking us themers or developers. And we developers love it, we have hooks :)

We're working on a document which we'll post somewhere next week on d.o with a more detailed description on how the site was built, so stay tuned!

Krimson time

Since yesterday, I joined the Krimson guys with only one goal: conquer the world with Drupal - but let's start with Europe first. One of the coolest things of my job description is that I get at least one day per week to work on what my little heart desires. Of course, since we only work with Drupal, things I can do on my spare day should include

  • working on my own contrib modules, documentation being priority number one.
  • following the D7 dev cycle way more closely so I know what's going on for the next release.
  • digg into issue queues of modules which need a port to D6 and help out testing, reviewing and/or writing patches.

That gives me more time in the evening and during the weekend to concentrate myself again on things I've been neglecting the past couple of months. In no particular order: playing music, reading, my girl, other nerd activities or just some simple time off for myself doing absolutely nothing. Fun times ahead I say!

RTBF on Drupal

After 3 months of heavy development, RTBF (Radio-Télévision Belge de la Communauté française) was launched yesterday on Drupal. And this is only the first of a few phases still to come. The first launch consists of 3 major parts:

  1. RTBF Info: a news information site with lots of multimedia like images, videos and songs available page- or article-based. In the background, a couple of xmlrpc services are set up to get info for the lotto, belganews, weather and so on. The editors at RTBF can easily add new articles and connect multimedia in every possible way they might think of.
  2. RTBF Media: simply a pool of all multimedia files. Most of them are imported with xmlrpc services making radio emissions, journals etc created at RTBF, available on the web. The Info site (and in the future all other sites from RTBF) can use items from this pool to display in multimedia blocks or an individual article.
  3. RTBF iPlayer: a major flex application which connects to the MediaServer through the amfphp and services module. You can browse all on demand multimedia and soon all streaming channels will be made available too. If you are on the site, you can launch this player by clicking on 'Plus de medias' in the video block on the homepage.

A lot of custom modules were written to get this rolling, but I made the most generic ones available on the d.o. website:

  1. Imagecrop: This module makes a javascript toolbox action available thanks to the power of Imagecache 2.
  2. Blockclone: Adds a new operation to duplicate an existing block defined by other modules.
  3. CCK comment reference: defines a cck field type for referencing a comment.

This is definitely the biggest setup I've done so far and at the same time the last one at my current work. I'm starting at a new place within two weeks, more news on that later, let's keep it as a suprise!

An italic pipe

Take a very good look at following 2 characters: | and / (*1)
If you are familiar with a keyboard and a bit of html, you'll find out soon that the first is a pipe ( | ) between <em> tags, which is used on the web to display things in italic. The second is just a plain simple forward slash. Where am I going you think ? Well, I heard a story today from a colleague who once got a question from a friend asking how he could make the pipe sign on his keyboard italic so he could finally enter a website in the address bar of his browser. After all those stressing hours today and yesterday, this was the icebreaker for me and other people at work. We have a blackboard on our wall where we simply added this:

http:<em>||</em>

People who don't understand it, don't worry. Those who do: it was so funny this afternoon when we heard about this, I guess it's probably stupid when you're reading it. Nevertheless, I think this would suit in the 'horrible questions for a helpdesk' sphere.

Oh yeah, and we also launched Expo 58 today.

*1 If you are reading this on oerwoud, this doesn't have the effect I'm aiming at, you should look at the original post

Girl Geek Dinner

So my work played host to the 3rd Girl Geek Dinner last night. My first reaction was that I didn't really want to stay untill the start of this event, so I left early at work. What a mistake to make! The evening was marked as "Robots and other smart companions" and included a live demo of the Tux Droid. Man, if I were there at that moment, Tux would be reported missing in Drongen. Anyway, I'm a few months away from my 30th year on this planet, so I expect some cool presents that day, but he/she/they who buy(s) me that droid will have his/her/theirs photo on a special place in my house forever!

The init hook enigma, part 2

I struggled a few days with some functionality on the new CarChannel site where visitors are offered a splash page the first time they visit the site. I needed to built in some exceptions, like the special msn page, the xml calls and the game pages. Testing when you are logged in always worked, but when browsing anonymous and with normal caching on, things went wrong, especially with url aliases. Reading source code and documentation - or now when you are reading this article - can save your life, so when you have an init hook and you need the know the 'q' variable, add

drupal_bootstrap(DRUPAL_BOOTSTRAP_PATH);

at the top of your hook before doing anything else. This will save you many sleepless hours and frustrating tests!

Being the only *nix sysadmin (or at least, the only guy at work who knows a little more then just opening an ssh-session) also made me very stressed out the last couple of weeks because services suddenly died without leaving any information in logs. I spent the whole afternoon yesterday setting up extra monitoring services on 2 higly imported webservers which check apache, mysql, ssh and load average every five minutes and , if needed, takes the appropriate action (restart, renice etc). It was the first night in a week I finally slept the whole night through, so fingers crossed!

Drag and drop

To all my mac-colleagues at work: I can finally stop bugging you over msn asking me to put your drag-and-dropped attachments in your e-mail into my transit. Since I switched from evolution to thunderbird, I can actually see, read and save them ... a life-saver for everybody! With this said, back to coding - which is the only thing I seem todo nowadays.