Data Management

September 27th, 2007

Data lies at the heart of today’s campaigns. It needs to be collected, imported, sorted, merged, exported, and even encrypted. This is why people spend so much money on campaign services. An excel spreadsheet will get you started, but the bigger the campaign, the bigger and more elaborate a database you’ll need.

Keep in mind that you may have more than one database, such as a database of contributors, one for supporters, and one for registered voters. You could merge these databases or choose to keep them separate.

Separate databases can get messy when it comes time to use that information. For instance, depending on how you’re letting supporters sign up for email newsletters, when it comes time to send an email broadcast you may have to import those addreses into your mailer software. You may also have to add your contributors to that list.

That means your email subscription form should feed the names into your mail list software. The same goes for your contributor data and your field operations data.

The best solutions store information about all your contributors, supporters, volunteers, and voters in one central server, which will allow you to select different combinations when retrieving data. I.e. suppose you want a list of all supporters who haven’t yet contributed to the campaign – if all these tables can be accessed simultaneously you can pull this list up with one try. If those databases are spread out onto 2 or more computers it will be much more challenging.

Server-Side List Managers

September 27th, 2007

The best solution is to run a server side mail list manager that runs as a part of your website, using an online database. This is the optimal way to do it, especially because you’ll have the capability of cross-referencing this list with your online contributions database.

My favorite in this group is the PHPList mailer program, which is fairly easy to install and configure. More challenging to install is Dada Mail which runs via the perl scripting language.

Most CMS engines have modules for sending email to a list. Drupal has several, and I’ve used the simplenews module which is convenient, but extremely limited. There’s also a massmailer module which uses the phplist engine to send mail. The advantages of having your list manager as a module in the CMS is that your subscribe pages look exactly like the rest of your website without any extra tweaking.

Above all, if you plan on sending your own email broadcasts, you should know what your hosting provider’s email usage parameters are. N.B. Even though some hosting companies have stated limits to the amount of mail you can send, this isn’t a guarantee—what happens is that when you run your broadcast software it hogs the server’s resources. Most companies will have a background process running, sometimes called “Carnivore” which is designed to kill any scripts which use too much of the server’s resources. You may be able to throttle back the rate at which you’re sending emails in order to keep carnivore at bay. I didn’t have much luck in this department and it’s the primary reason why I deployed my own server.

If you’re launching a major campaign and will be using your own dedicated server, there are a few programs which use perl and sendmail to get the job done, like Majordomo and Mailman. These require a unix system administrator to install them.

If you really want to pay money, there are a ton of services which can send thousands of emails for you, at about .02¢ apiece in bulk. Email services will be provided for free with any good turnkey solution, but most will charge up to a couple of cents per email. This can quickly add up.

Growing to Suit Your Needs

November 4th, 2006

I don’t want to see anyone get stuck with services that are too expensive or not robust enough to handle their needs. Oftentimes on this site I refer to scalability, which does not mean the capacity to handle large loads. Scalability means the ability to increase capacity to keep up with the load and site traffic.

Here I’ll describe the process of growing your website as your needs require. We start with the Easy Bake recipe, using a web hosting service to handle DNS, the website, and our email. For email broadcasts, we’ll use Mail Merge.

Then let’s say we find that using mail merge is cumbersome because it requires us to manually add each new subscriber to the Excel email list spreadsheet. It also takes hours and hours to run the email broadcast and, frankly, we need our computer back. So the first step to growing is to start running a web-based email broadcaster like phplist.

This worked good for a while, but now with 10,000 names it takes a whole day for the broadcast to run, we need a faster solution. At this point we can outsource the mailing to a company that will charge about 0.02ยข per email – but that’s $200 for one mailing! So it’s time to find a new webhost who will allow a burst of email bandwidth. Get ready to pay for this, but remember it’s cheaper than outsourcing.

Once we’ve found a good one, we’ll go to our DNS registrar and point the “A” record to the IP address of our new webhost. Leave the mail, or “MX” record alone – we’ll continue to use the old service to handle the individual email accounts – it’s cheap, it still works, it saves a headache, and it ensures there won’t be an interruption to service.

Dedicated Hosting

Here’s a potential problem: Your website is a huge success, you have tens of thousands of supporters on your email list, and now things are starting to run slow. But … but … you’re supposed to be getting a terabyte of transfer per month and you’re not even approaching the limit. What gives?

Here’s the scam: Your hosting provider may get, for example, 50 TB of data transfer per month, and they’ll typically exceed 100 clients per machine. So the bandwidth has been over-promised. Not everyone can hit their capacity, but normally most don’t even come close. Just to make sure things don’t get out of hand, they will throttle your per-second usage to something like 3megabits, and that amounts to apx. 900 GigaBytes per month, if you’re running at full capacity for 24 hours a day. But generally your site is only that busy for 16 hours a day, resulting in 600 GB at the end of the month. What a gyp!

As a rule, you will pay more and get less throughput per month with a dedicated server, but you also won’t get capped at a measly 3mbps either.

For example, one terabyte of throughput at a 1&1 shared website is $5 per month. A Dedicated host with the same throughput costs $110 per month.

Dedicated Hosting, or a Dedicated Server, what’s the Difference?

Dedicated hosting is when you are the only client on the machine. It’s just like the setup you had on a shared host, except it’s yours, and no one else shares that IP address. It’s fully outfitted with web based control panels, and is managed by your hosting provider who may even do regular backups.

If you have to go the dedicated route, this is the first option.

Dedicated servers are when you build your own server from the ground up, or a provider supplies you with root access to a freshly installed system. While essentially the same as before, this is what’s become known as having a co-located server. No one but you has access to it.

So you’ve decided to get a dedicated server

Are you sure you really need to do this? How big is your campaign? Are there any alternatives, such as splitting off your multimedia files to a subdomain? No. You’re certain this needs to be done.

Let me repeat, are you sure you really need to do this? You WILL need a system administrator to babysit it. You HAVE to read the log files, perform regular system upgrades (hoping they don’t break your site) and possibly handcraft the firewall.

It takes me about 2 weeks to build up a production-ready server, or a day if I’m doing it a second time and following a prewritten script. That’s a lot of work, and I don’t come cheap. So an attractive option is a prebuilt dedicated hosted server.