It’s Time to Refocus

As spring turns to summer and the graduation season is upcoming, I’m making adjustments as well. As far as this weblog is concerned, that means time to re-focus. My posts over the past years (I’ve been doing this, on one server or another, for at least 7 years) have been on a wide variety of topics. From here on out, I’m mainly focus on my hobbies, Photography and Motorcycling, and cut back on other subjects. I’m sure I won’t get entirely away from other topics — Faith; Computers; TV, Music & Movies — but those will just be side dishes.

A Python-MySQL Project

I assigned myself a project for the weekend, writing a little program that I could use to disable comments on blog posts based on their age. Python’s already installed on the Mac, so I figured it’d be pretty easy to use that to make updates to my WordPress database.

The first thing needed is the connecter to allow Python to talk to a MySQL datbase, mysql-python. The setup program for the newest version, 1.2.2, didn’t want to run for me and the hints I found around the ‘net didn’t seem to apply, so I downloaded version 1.2.1_p2. There was still some work to do to get it to install though.

To install the connector, MySQL needed to be installed locally first. Sun now owns MySQL but fortunately there’s a Community version available for download free of charge for personal use.

Once that’s installed, it’s back to the MySQL-Python connector installation. Several sites had notes which helped me find that tries to call mysql_config but can’t find it, so I edited the line from ...popen("mysql_config... to ...popen("/usr/local/mysql/bin/mysql_config...

The setup program gave me another error, this time because I don’t have gcc installed – to complete the build it needs to be able to call the C compiler. Back when I set up my PowerBook I’d not installed that part of the developer tools, so I had to dig out my OS X disks and do that. Then finally the setup worked cleanly:

python clean
python build
python install

Now that all the bits are in the right places, I’m finally ready to start getting some code going. I added permission to my databases, creating a new user that has remote access, and used that.

# use the connector library
import MySQLdb
# connect to the database, using the correct username and password
conn = MySQLdb.connect (host = "", user = "my_db_username", passwd = "my_db_password", db = "my_database") # look in your wp-config.php file to find the right database
# update the fields, using an SQL call
conn.query("""UPDATE wp_posts SET comment_status = 'closed' WHERE year(post_date) < 2008 """) # close the database connection conn.close ()

It's not long or fancy, but it does exactly what was needed at the moment. I'll build more of a wrapper around it later, to make it more flexible, add error checking etc.

An evening of forensic work while watching a movie with my family, followed by some light development this morning... success. And, perhaps more importantly, it gets my system back to a place where I can start digging into larger projects I've been thinking about.

On the Weblog Software

I upgraded WordPress to version 2.3.2 this morning.

WordPress 2.3.2 is an urgent security release that fixes a bug that can be used to expose your draft posts. 2.3.2 also suppresses some error messages that can give away information about your database table structure and limits and stops some information leaks in the XML-RPC and APP implementations.

I had seen some odd messages about databases, those have gone away. I didn’t (knowingly) experience any other problems, but in any case 2.3.2 seems good so far.

There hasn’t been a (visible) upgrade to Akismet recently though. If you’re using it for comment-spam blocking, have you seen an increase in spam getting through? I certainly have – I cleared everything on Friday and today I had 1 message that Akismet had blocked (they sit in a quarantine-like area for inspection) but 11 that it had let through to my moderation queue. Eleven-to-one.

Talk About Value, not Technology

Jon Udell, in Talking to everyone, asks

How do you talk to everyone about the transformative benefits of the technologies we’re so excited about, in ways that don’t make people flip the bozo switch and tune you out? How do you tell stories that make the benefits of the technology come alive for people, in ways they can understand, without overwhelming them with technical detail, but at the same time without dumbing down your explanation of the technology?

I think the answer is that the first thing we’ve got to do is to listen. Pay attention to their comments, see what their needs are.

Maybe you want to tell your family all about the wonders of RSS and “end-user” publication, but why would they care – they get their news from the paper and TV and don’t see what they could possibly publish that would be of interest to anyone.

But hey, grandma sure loves to see pictures of the little ones as they grow up. So rather than printing pictures and mailing them to her, filling her AOL mailbox with JPGs, or sending URLs that she may not know what to do with, buy her a picture frame that uses RSS. Point it at your flickr account and make sure you post new pictures of the grandkids each week.

By the time you visit again, all the other family members are going to be asking how it works, how they can get their kids’ pictures on grandma’s wall. That’s your opening to talk, in general terms, about the ways you are “publishing content,” how it’s distributed and the value that they can share with others.


For several years now I’ve been a very happy customer of, using them for my family’s sites and recommending them to friends and anyone else that asked. Their service is normally quick, friendly and efficent.

As of early this morning, though, my site was being redirected to a “suspended” page. When my credit card number changed — geez, how long ago was that? — I failed to update their billing site, and they had an old email address for me as well.

The thing is that, in today’s world, those things happen. Credit card numbers change just about every two years now, and people change email addresses (I’ve changed almost exclusively to an email address that goes through my site, on thier server – one with which I’ve corresponded to their service folks many times). Other companies find ways to get their records updated without stopping service.

I’d even used the web-based Support Center twice since the card expired, but apparently their billing software or support personnel aren’t connected enough to have told me then that I had past-due invoices.

HostingMatters also had my telephone number and postal address on file, in the same database record as the expired email address, yet they never tried to reach me using either of those methods – they just took the easy way out, turning off my account. “We do not, and never have, provided telephone service, nor do we chase down clients to beg they pay their bills,” says Stacy the support person via email, “this is not really up for debate.”

I’ll keep using — and recommending — HostingMatters because of the excellent uptime and technical support, but I’m disappointed in this matter. At no time did I ask for a debate, I just asked why a reasonable attempt wasn’t made to provide good service. A simple postcard, less than $.50 expense, saying “hey we appreciate you being our customer, you’ve got an invoice due but the card seems to have expired.” Is that really too much to ask from a company who’s motto includes “superior serivce?”

No Pod-People

USA Today, page 1D: Get an earful of the offbeat

The surprise about podcasting isn’t that millions are listening — the surprise is that millions are listening to some pretty arcane stuff.

No, the surprise — a pleasant one — is that a paper which is so mind-numbingly generic, purposefully so in order to reach the widest possible audience, would publish such an article. It’s good that the author, one Maria Puente, recognizes that the world is full of niches. People may be the same all over but individuals are, well, individual.