Coding the web since 1999
About this blog
Why I care about the Drupal drama
There’s been a lot said and written about the most recent drama in the Drupal community, quite a few people have asked m...
A vote of no confidence in the Drupal Association leadership
I have had many differences with the Drupal Association in the past, starting with the many clashes we had with their er...
Now on Drupal 8
Once again, this blog has moved to a new technilogical platform.
Drupal is still a gated community
One of the things the Drupal community prides itself on, is how open the community is. And that is generally true, but t...
Presenting the Opening Hours Module
Do you need to tell your visitors when you are open for business? Your office hours, when the service desk is open? Th...
How to configure Octopress for Drupal Planet syndication
Since I moved my blog to Octopress, I’ve been struggling with my blog posts not getting picked up by Planet Drupal...
Shave a couple of stubborn of DIV-wrappers off your Drupal site
One of the more annoying things about theming Drupal sites is having to wade through the staggering amounts of wrapping ...
Using Database-level Foreign Keys in Drupal 7
If you use a good database system, foreign keys is an actual concept on the server that is used to enforce data integrit...
How to install multicore Apache Solr on FreeBSD with Jetty
If you use Apache Solr with your Drupal site, you have probably come across the need to have more than one Solr instance...
del.icio.us – can the Drupal community do better?
As you may know, Yahoo! is in trouble, and has decided to jettison the social bookmarking service del.icio.us (Delicious...
Relauching my blog on Drupal 7
More than a year ago, I was agitating for a move to Drupal 7 for all the blogging developers. As is rather obvious now, ...
Protecting your users from phishing with Apache rules and HSTS
HTTP Strict Transport Security or HSTS is a new security feature in browsers that enables you tell the browser “always u...
A tip for using PostgreSQL with Drupal 6
If you are using PostgreSQL for hosting your Drupal sites, you might have noticed a lot of warnings in your logs like th...
Attention all Drupal Git-mirror users
A long-standing issue with the Git mirrors of Drupal’s CVS has been fixed thanks to Damien Tournoud. The problem i...
Going to the edge with Drupal 7...
So, my fellow Drupallers, we are only inches away from the code freeze. Are we afraid yet? A common trend amongst Drupal...
How to create and maintain your own cache table in Drupal
There’s a lot of good documentation for how to use the caching system already set up, in particular a very nice wr...
Drupal debugging tip – use the logging console
I recently ran across a feature of Drupal’s devel.module that might not be all that well known, namely that it has...
Introducing the Stack Overflow module for Drupal
As an avid user of Stack Overflow (and Server Fault, to some degree), I am well pleased to announce the stackoverflow.mo...
Things that should be objects in Drupal #1: Content types
Currently, defining the simplest content type in Drupal requires ~54 lines of 100% standard boilerplate code. The reason...
The new spam
I just came across a new kind of spam, very cleverly made: It’s a clever ploy, posting praise with hidden images...
Code and slides from DrupalCamp Cologne
The code from my CCK-presentation with Danish postal code is available on Github. The rest is attached. I’ve made ...
Typogrify under new maintainership...
So, I’ve finally taken the step up (in responsibility, that is) to become a module maintainer. I’ve been wan...
Snippet: node type specific CSS files
I just wrote a fun little bit of code for answering a question on our Danish Drupal community site. The user in question...
Upgraded to Drupal 6
So, I finally got around to upgrading my personal blog to Drupal 6. This was my first Drupal site, started almost two ye...
Preparing for Drupal 7 by changing the way to make parameters for db_query.
After attending DrupalCon in Szeged and following the new database stuff, I thought a bit about how to make the transiti...
DrupalCamp 2008 slides and code
Just a public service announcement – here are my slides and the small twitter-like module I created for my “Drupal...
Drupal and Varnish HTTP accellerator
For many reasons, it’s a good idea to have a HTTP accelerator/reverse proxy on your webserver to take some of the ...
Drupal database performance: MySQL and PostgreSQL compared.
As a long time open source user and a chronic challenger of own assumptions, I often test out the alternatives to my cur...
I'm starting my own Drupal shop
So, I’m finally able to break the news. I’ve been planning this since before DrupalCon, but there’s be...
My six months with Mollom
As many Drupallers know, Mollom has been out for a while now, six months in fact, and I just wanted to share my enthusia...
Thank you, DrupalCon
So, DrupalCon is now over. I’m sitting here in the shuttle bus to Budapest with Dries, Webchick, Addison Berry, Ti...
We still don't know what we're doing...
Drupal’s popularity has really taken off on these parts – the last year has seen amazing growth, from a few hobbyi...
A Git mirror for Drupal CVS
For some weeks, I have on-and-off been trying to create my own mirror of cvs.drupal.org in Git, and now it seems I&rsquo...
A hidden gem for theme developers
I was doing some work on a site today, and I found me in a bit of a jam. I’d rather not spend a lot of time (as I ...
Of new designs, updates and monstrous printers
As you might have discovered by now, I’ve changed the theme for this website. I downloaded a theme named niftyCorn...
Moving to greener fields
So, I’ve changed webhosting-companies. Now I use TextDrive. I won’t go into a long story about what has driv...
Fed up with Joomla!...
Yes, I finally got fed up with Joomla!. Joomla! is a very nice and shiny system, but that simply doesn’t change th...