WordPress: Movable Type and TypePad Import Plugin + Image Downloader

A coworker of mine has been keeping a blog with Typepad for several years now. As of recently he decided he wanted to switch to using WordPress on one of our servers. This is usually easy; you export your blog from the original site and import it using the appropriate plugin. WordPress provides great plugins for importing a blog from various other sources, so an import usually doesn’t require too much work. The current Typepad plugin has one big flaw though; it doesn’t import your photos! To make matters worse my coworker’s blog is a photography website with several hundred posts and even more photos. The photos are essentially stuck on Typepad’s servers since manually linking each picture through WordPress would be an incredibly grueling process.

I decided the only way to make this work was to modify the plugin and add the much needed image downloading functionality. Thanks to some of WordPress’ excellent building functions and a lightweight open source HTML parsing library I was able to do this with relative ease. Here’s how it works...

Continue reading »

Database Tips: Indexing Is Essential!

Indexing can make or break a database. Queries that selects with multiple criteria are often not indexed at all and they need to be! If you were to query a large table for a specific record, having the record’s criteria handy is not going to save you any time unless you directly query the record’s index. The larger a database is the slower you are going to get results from a non-indexed query. Creating a few helpful indexes that coincide with your applications queries is not only a life-saving measure, it's essential!

Continue reading »

Database Tips: Follow a standard naming convention

I cannot stress how important it is to follow a standard naming convention. When I first came to work at my current job the guy who initially set up many of the databases named things out of pure randomness. This made troubleshooting a lot more stressful than it had to be. There were databases named after animals (GrizzlyBear was a municipal tax code database), databases after the date they were created on (2005_11 was a GIS database containing business records) and a few databases that were simply named DB1, DB2, and so on...

The first thing I had to figure out when I started working was what each database was for, and without a standard naming convention and little documentation to go on it took quite some time to get everything straightened out!

Using proper naming conventions is something that should apply to all forms of computer usage. If you’re naming a file, function, or database choose a name that makes sense so people don’t have to scratch their heads figuring out what you were talking about.

Continue reading »

Talk at Mid-Atlantic Chapter of URISA tomorrow

I'll be giving a talk at tomorrow's MAC URISA conference titled Designing an intuitive web mapping interface: Municipal Outreach Project within the Meadowlands. Come check it out from 3:30pm - 5:00pm

Mailing Lists: A call to hacker-proof unsubscribe links, and make it easy for people to opt-out!

Subtitle: Mailing lists are DEAD. I understand companies spam everyone, but developers are also to blame!


So you have a mailing list, and you want to make sure hackers out there don’t sneak in and remove your subscribers. AND, you also want to make sure it’s still quick and easy for a subscriber to remove his/herself? No problem, simply implement unsubscribe keys and keep the process user friendly!

Preliminary: Unsubscribe Keys

Creating account specific unsubscribe keys is an easy way to provide a heightened level of security for the remove/unsubscribe functionality in a mailing list system. Developers can use these keys as an extra required field to authenticate against if a user is trying to unsubscribe from a mailing list. This helps prevent a hacker from flushing everyone out of your list, and doesn’t require a lot of changes to your system. Continue reading »