Dougal Campbell's geek ramblings

WordPress, web development, and world domination.

Blog Archives

Vagrant Quickref Cards

I recently started using Vagrant for managing virtual machines. A coworker and I are planning to introduce this to the development workflow for our IT team (along with a bunch of other improvements to our development life-cycle). Since I’m still new to Vagrant, I wanted a quick-reference card for the commands, instead of having to go back to the main documentation web site in my browser, and navigate to the details for an individual command. … Continue reading

WordPress 10th Anniversary Blogging Project

The official 10th anniversary of the release of WordPress is May 27, 2013. It has been an amazing 10 years, during which WordPress evolved from a simple blogware to a very full-featured CMS (Content Management System), used to power some of the biggest and most popular web sites on the internet. All over the world, people are planning celebrations. As much as I like a good party, I thought this would also be a good … Continue reading

Improve Apache thread memory usage

Thing I learned today at CoderFaire Atlanta: If you are using Apache with the worker MPM model (or the experimental event worker) under Linux, you can probably improve your memory usage. By default, there is an 8MB stack size per thread, which turns out to be overkill. If you change the size to 1MB, you can save a ton of memory: <IfModule mpm_worker_module> StartServers 8 MaxClients 512 MinSpareThreads 64 MaxSpareThreads 128 ThreadsPerChild 32 ThreadLimit 512 … Continue reading

CodePoet Interview

I was recently honored to do an interview for We discuss how I got involved with web development and WordPress, community, and the difference between web development as a job versus as a hobby. Continue reading

Digispark Arduino-compatible development board

Say hello to my little friend! This is the¬†Digispark: “The micro-sized, affordable, Arduino enabled, usb development board.” This board has 6 I/O lines, which doesn’t sound like much, until you consider that it supports I2C, which is a 2-wire serial bus capable of addressing many peripherals at once. This is my first venture into Arduino-land, and I’m still climbing the learning curve. But I have many ideas for projects, and I’m sure that more will … Continue reading


An interaction between various social networking services I use recently caused a cross-posting loop, and I ended up spamming Twitter and Facebook with a ton of self-referencing links. Learn what happened, what I did to fix it, and who I blame for the problem. Continue reading


As the end of my current contract job comes near, I’ve begun putting out feelers for a new job. Looking over some of the descriptions and skill requirements for job openings, I see a pretty common thread: big companies are (still) asking for Java and .NET programmers, while smaller firms tend to look for developers using PHP, Python, Ruby on Rails, etc. This got me thinking about “Enterprise” platforms, and so I posed a question … Continue reading

WordPress Community Summit: Brain Overload

Today was the first ever WordPress Community Summit (hopefully, the first of many) — a by-invitation event bringing together a diversity of voices from the WordPress community, with the approximately 100 attendees nominated and selected by the community itself. The event had an unconference format. In the morning, we proposed topics for discussion (about half or more of the attendees championed topics). We then found areas where topics overlapped, and combined similar ones, so that … Continue reading

Server is back up

Some handful of you that see this might have tried to visit the site over the past few days and found that my server was down. On Friday, Oct 12, I attempted to upgrade the operating system to Ubuntu 12.04. However, after the reboot into the new system, I started seeing filesystem errors, the root disk partition would only mount read-only, and my blog was giving the “white screen of death”. I spent what time … Continue reading