hosting covered by eiken & teak meubelen

I’m going to FOSDEM

I'm going to FOSDEM, the Free and Open Source Software Developers' European Meeting

memcache doesn’t necessarily speed up your Drupal sites

Sites that show up quickly on a user’s screen tend to keep the user’s attention for longer and also rank better in Google. So when listening to the excellent Lullabot Podcast 80: Top 40 Drupal Modules Revisited I was caught by Drupal experts stating that Memcache would even speed up your site if it’s not a high traffic site. It could off-load the database. I decided to give it a try on a relatively low traffic site of one of my clients. The site is already being served by nginx so the load times are already pretty good.

When setting up the experimentation I was a bit confused by the thorough but chaotic instruction to set up memcache. I ran into a problem setting up PECL memcache:

$ sudo pecl install memcache
downloading memcache-2.2.5.tgz ...
Starting to download memcache-2.2.5.tgz (35,981 bytes)
..........done: 35,981 bytes
11 source files, building
running: phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519
shtool at '/tmp/pear/temp/memcache/build/shtool' does not exist or is not executable.
Make sure that the file exists and is executable and then rerun this script.

ERROR: `phpize' failed

Since I run Debian I solved this by running apt-get install php5-memcache instead.

I restarted php-fastcgi (needed for nginx) and added $conf['cache_inc'] ='sites/all/modules/memcache/memcache.db.inc'; to settings.php.

Then I ran some tests in Hammerhead.  Not on the front page since there is an embedded Youtube video. I chose a page without any external elements. I was a bit confused at first, and ran several short tests. I forgot to log out and the memcache module was adding a lot of extra information in the bottom.  I thought that was the reason that my site was a lot slower with memcache than without it.  So I logged out and tried again:

count latest median avg
empty cache with memcache 4 1449 1449 1759
primed cache with memcache 4 1277 1186 1184
empty cache without memcache 4 1239 1283 1483
primed cache without memcache 4 1014 900 950

It could be that I’d have to tweak some memcache settings, or run longer tests, but I think these numbers are clear enough: memcache made my site slower instead of faster!

Adding Group overview to CiviCRM contact summary page

Intal’s CiviCRM needed some customizations. So I delved into CiviCRM’s templating system, which is based on smarty. Most things were pretty easy but it took some more time to figure out how to add the Group overview to the Contact Summary.

In sites/default/civicrm_custom/CRM/Contact/Page/View/Summary.tpl I added to the appropriate spot.

{include file="CRM/Contact/Page/View/GroupContact.tpl"}

In order to keep my customizations separate from the core CiviCRM code I tried adding the following lines to the template.

{php}
require_once 'CRM/Contact/Page/View/GroupContact.php';
CRM_Contact_Page_View_GroupContact::browse();
{/php}

But that did not work unfortunately.

So for now I stick with adding the following lines to CRM_Contact_Page_View_Summary extends CRM_Contact_Page_View::view() in sites/all/modules/civicrm/CRM/Contact/Page/View/Summary.php:


require_once 'CRM/Contact/Page/View/GroupContact.php';
CRM_Contact_Page_View_GroupContact::browse();

There should be a nicer solution that doesn’t require hacking core CiviCRM code…

A job?! And, time tracking in Drupal?

I’m looking for a decent time tracking tool for Drupal, both for my freelance work as well for my employer, Intal. Briefly, Intal is an NGO working with partner NGOs in many countries (and places), among which Philippines, Congo, Gaza, Cuba and Colombia, in the fields of health care, development, peace and human rights. It would be cool if there was Drupal based solution for time tracking that would integrate well with OpenAtrium so that we can replace the OpenOffice spreadsheets currently in use.

By the way, at Intal I’m also working a lot with Ubuntu, LTSP, CiviCRM and solving general office IT issues.

Drupal Camp Ghent 2009

I'm going to Drupal Camp Ghent 2009
11th and 12th of December.

Hitchwiki everywhere

Aard Dictionary is a multiplatform dictionary and offline Wikipedia reader. It runs on desktop computers, notebooks and netbooks with Windows, Linux and Mac OS X as well as Nokia Internet Tablets (N800 and N810) and anywhere Python, PyGTK and ICU are available. Aard Dictionary is light, fast, easy to use and free.”

And now it’s also possible to read Hitchwiki articles everywhere: I converted Hitchwiki dumps into .aar files.

I’ll probably set up a weekly cron on my server once I have aarddict running on the N900 that I received from Nokia during the Maemo conference in Amsterdam 3 weeks ago :)

Wanted: Wireless Researcher for project in Dharamsala, India

In 2005 I spent some time ICT volunteering for Geekcorp Mali.  And in 2001 I traveled in India and had a great time in the North.  Now, a ICT volunteer is actually needed in Dharamsala.  Contact me if you have the skills, time and you feel like an amazing experience:

AirJaldi, a nonprofit dedicated to harnessing the capabilities of the internet for the benefit of rural communities in developing countries, is looking for a highly-motivated and experienced person to take a central role in carrying out an innovative research project aimed at developing a viable Bandwidth Maximizer for rural Wireless ISPs (WISPS). The job is based in Dharamsala, HP, India. Your technical work will be supervised and monitored by AirJaldi’s CEO and CTO. You will report directly to AirJaldi’s CEO, based in Dharamsala. Responsibilities/Scope of Work:

Lead Research focusing on, amongst others:

  1. Searching and testing low-cost or Free software and hardware products for use as parts of the BwM system.
  2. Adapting and integrating hardware and software components to create the BwM system.
  3. Test and deploy a prototype BwM in the lab, on an emulated network and on a production network in Dharamsala.
  4. Document and summarize research findings and participate in preparing project reports for funding body and general circulation.
  5. Prepare Operation manuals on setting up, configuring and operating the BwM.
  6. Assist in other AirJaldi tasks as needed and required by the CEO.
  • Extensive hands-on experience with administration of GNU/Linux and Linux-based networks and
    systems. Past employment with an ISP, hosting-facility or IT department of a large enterprise a major
    plus.
  • Strong familiarity with F/OSS tools and their integration.
  • You should be very confident with the following terms, protocols, servers and environments:
    multilayer IP switching and routing, firewalls (iptables), Policy-routing, DNS management and
    debugging, SMTP (sendmail, exim), POP/IMAP, HTTP (apache), Squid, Radius, LDAP, VPNs
    (OpenVPN), etc.
  • Familiarity with NMS and network provisioning systems is essential- the job will require setup of
    advanced Nagios-based network monitoring systems for very large and complex networks.
  • Familiarity with the following tools and similar ones required: Nagios, Cacti, MRTG, RRD,
    SNMP, Munin/Orca.
  • Experience with routing protocols, QoS setups, Embedded-Linux, MS-Windows machines support
    (Samba, wins) a plus.
  • Previous knowledge of RF a plus.
  • Previous field experience, in particular in a developing country, a great asset.

Qualifications / Skills / Experience

In order to successfully carry out your work and as importantly, enjoy it and derive as much satisfaction
from it as we do, you will need to:
Be willing and able to live in a small, rural setting.
Ability to work within a multi-national multi-lingual and multi-cultural team.
Be an excellent team player – we mean this. Our team is built is based on getting the most from each of
our team members, which calls for mutual respect and support. (professional and personal). You will be
required to adhere to these principles.

More to follow: wikis without nofollow

I’ve come to realize that it’s silly that most wikis are using nofollow by default. In fact, it seems that the majority of the most visited websites are not contributing to a healthy way for spreading pagerank. Twitter, Facebook, Flickr, Youtube, Wikipedia and Delicious are all adding rel=”nofollow” to links added by their users. I’m sure it helps them in the fight against spam but it also makes it much harder for smaller sites to appear in the top at all.

It’s probably time for a more appropriate system, though it’s hard to figure out what this would look like – and it needs the support of exactly these top sites, who will probably loose by leveling the playfield for lesser websites.

In order to add my own 2 cents  I’ve installed the Nofolllow Free plugin for Wordpress on this blog.  And I’ve started de-nofollowing a couple of wikis I’m involved in. I’m curious to see the effect, whether I will be fighting more spam and if people will pick up on this by contributing more and hopefully doing likewise for their own wikis. The links on all of these wikis deserve receiving some google juice:

More to follow!

We’re working on 73 pages. If this number somehow bothers you you are very welcome to start a new page.

Cultwiki.org is a wiki about cults.

Great great fun. “Objectivism is a cult whose members have no opinions on anything. So seemingly there are no human objectivists.” “Deserts play a big role in cults. Think of Jesus, Moses and Burning Man.”

Underscores to dashes in MediaWiki (not yet)

It’s clear that dashes (-) are better than underscores (_) for search engine optimization. So people have looked for ways to make MediaWiki use -. Wikihow is one of the few MediaWiki sites that behaves this way, but unfortunately even they don’t seem to be running an extension for this.

I tried my luck at changing the MediaWiki core (Title.php) but I’ll leave this for now. I can just tell that replacing all occurrances of ‘_’ with ‘-’ doesn’t cut it – but probably only because this also changes the way wiki articles are stored in the database. One or two extended MySQL queries might fix that. I’ll try that another day.