Dougal Campbell's geek ramblings

WordPress, web development, and world domination.

Plugin conflict

Tracked down and reported a conflict with the WPTouch plugin that affected Formattd’s mobile post format setting feature.

New Theme (in progress)

Welcome to my new theme. It’s not done yet, but I’m making it available so that others can help me improve it. Read more about the details to learn what features it includes, what remains to be done, and how you can help, if you’re so inclined. Continue reading

Competitors “Taking Aim”

Open source CMS projects like WordPress, Drupal, and Joomla! provide web publishing tools that give users the freedom to modify the system and own their data in ways that proprietary systems don’t offer. BC Gurus, a consultancy specializing in Adobe’s Business Catalyst (a hosted turnkey web publishing product), “took aim” at Open Source CMS’s, kicking off a proposed series of articles with a video showing two BC Gurus people at a firing range, using WordPress, Drupal, and Joomla! logos as targets. The communities for these projects were, understandably, not happy about it. Continue reading

Snowpocalypse 2011

Atlanta’s first snow of 2011, and the second of the season, since we had a White Christmas.

 

Installing node.js on a Mac

For anyone else who might be interested, here are some quick-and-dirty instructions for how to install node.js and npm (node package manager) on Mac OS X, from the terminal. This assumes that you’ve already installed the XCode tools, and git:

# Fetch and build node.js
git clone git://github.com/ry/node.git
cd node
./configure
make
sudo make install

# Now install the node package manager, npm:
sudo chgrp -R staff /usr/local/{share/man,bin,lib/node}
sudo chmod -R g+w /usr/local/{share/man,bin,lib/node}
curl http://npmjs.org/install.sh | sh

# Use npm to install some modules:
npm install vows
npm install oauth
npm install oauth-client

If you don’t feel comfortable doing the directory permission and ownership changes used above for npm, see the npm website for alternative installation methods.

If you haven’t already heard of node.js, it is a network server framework which you program in server-side javascript. If you are already familiar with asynchronous networking frameworks like Python’s twisted, it is similar to that. Because of its asynchronous event-based structure, it is able to handle high volumes of connections without resorting to forking or complicated process threads.

A quick Hello World example:

/* helloworld.js */
var sys = require('sys'),
  http = require('http');
http.createServer(function(req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write('
  <h1>Hello World</h1>
  '); 
  res.end(); 
  sys.puts('Served connection from ' + req.connection.remoteAddress); 
}).listen(8080); 
sys.puts('Server running on port 8080');

This will create an HTTP server listening on port 8080 (on all IP addresses available, since we didn’t limit it to a specific one). For every request, it will output a ‘Hello World’ message to the client. Additionally, it will log the IP address of the client on the console.

WordPress and Drupal: Convergence?

If there was a perfect Content Management System, some sort of CMS Nirvana, what would it be like? It would be very easy to use, and yet have a powerful feature set and a strong underlying architecture for developers to build upon. WordPress and Drupal are both trying to be that tool, though they have approached it from different directions. Let’s see what we can learn from each other. Continue reading

WordPress Care Package

Around the time of the Thesis GPL debates, WordPress founder Matt Mullenweg made an offer to send people free t-shirts. When I talked to him at WordCamp Savannah, he said that he had gotten about 300 requests. I got my care package right after I returned from the WordCamp. In addition to the shirt, it included some Gravatar and WordPress stickers, and a nice certificate, proclaiming that I am “One of the Three Most Important People in WordPress”. Of course, so are the other 300 people who got a certificate in their care packages. Awesomesauce. 🙂