Creating a Child Theme in WordPress

A couple of days ago I updated Lightword, the theme that I’ve been using on this blog for quite a while now. Unfortunately when I did the update I lost all of my customizations, including my logo and Adsense code.  So I went looking for a solution.

Little did I know, WordPress has supported a feature called “child themes” for some time now.  The idea is that you create a new theme, which is as simple as creating a new directory with a single CSS file called style.css, and add a comment to the new CSS file specifying the name of the parent theme.  You can read all about how to create a child theme here.

Kill It With Fire! How Facebook is Assimilating and Destroying the Internet

It began as a trickle.  An email from Windows Live on behalf of my friend Tricia.  An hour later three more arrive from something called Flixter on behalf of three other friends who signed up for whatever it is the site has to offer. As more websites adapt the new Facebook for Website’s interface in a grab for a slice of their 300 million users, Facebook will quickly become the glue that holds the Web together.  And that’s not a good thing.

The Thing About Glue Is…

Dan Yoder at already outlined 10 Reasons You Should Stop Using Facebook, but let me break it down for you. Facebook is not a responsible steward of your private information and online relationships. As I said, Facebook aims to be the glue that holds the Web together.  But glue–like many building materials–contains formaldehyde, a known respiratory irritant and carcinogen.  In other words it rots your guts from the inside out. Facebook seems to be doing the same to the Web.

If you stay logged into Facebook, any website that implements the new Facebook for Websites API can communicate back to Facebook and perform various actions on your behalf including but not limited to: posting to your wall, and emailing your friends on your behalf. That’s email, not Facebook messages which is an important distinction, especially considering the stringent email archiving requirements of today’s businesses and corporations.  In other words, Facebook and other websites are now sending me emails I have absolutely no control over, and because I work at a school those emails are becoming part of public record.

The Repercussions

I’ve long accepted that anything I do on a social network is public knowledge.  If you don’t want it to be public, then don’t post it online.  This is the law of the land when it comes to Facebook, but do you accept those same conditions for every other website that you visit?

Do you want your coworkers to see a stream of wall posts on your behalf throughout the workday?

Do I want everyone knowing what I rented from Netflix?

For the sake of argument, lets say you’re a closeted atheist/democrat/homosexual/whatever your parents hate.  A stream of your Internet activity would almost certainly out you, were the sites you visit and the news you read to be posted to Facebook.  How would you feel if Facebook came out of the closet for you?  Perhaps angry, perhaps liberated, perhaps thirsty for a lawsuit.

The Internet was never supposed to work like this.  Cookies, the technology that websites use to store data about you as you surf, are “sandboxed” for a reason.  That is, a website can only read cookies that that website has created.  It’s both a safety precaution and a barrier to innovation.  Facebook has breached that barrier and in the process torn that safety net wide open.

What to Do?

Perhaps I’m alone in my reasonable expectation of privacy.  Perhaps not.  But unless something changes, I will be deleting my Facebook account and I won’t be looking back. If you are concerned with privacy and how Facebook uses what used to be personal information about you and your personal relationships, I urge you to do the same.

Should Schools Have a Facebook Page?

As the developer responsible for my employer’s website (a technical school for high school students and adults) I was also made responsible for creating and cultivating membership to the school’s Facebook page.  Our school is different from a high school in that we aren’t guaranteed enrollment from year-to-year, and so we’re constantly looking to improve our marketing. Facebook was the perfect candidate, but what was initially viewed as a great marketing and communications tool is quickly devolving into an administrative mess.

Should I disable commenting, image, and video posting?  Should our school even have a Facebook page at all?  Facebook is by nature very open and everyone from our Quality Management Team to our instructors to our Administrative director find something wrong with just about every comment posted, whether it be an inappropriate tone or improper grammar.  Policing the page takes no small amount of time an effort.  Disabling the interactive features of the page defeats the purpose of having it.

What do you think?  Should a school have a Facebook page and, if so, how should it be regulated?

6 Reasons I Chose A2Hosting

FTC Disclaimer: I’m a satisfied, four-year customer of A2Hosting and a proud member of their Affiliate Program. I’ll make a buck or two if  you purchase hosting via my site,  so if you have a moral objection to helping me pay my monthly Netflix subscription, then by all means don’t click my links. Either way, check out A2Hosting.

Anti-Disclaimer: My blog has had a long and proud tradition of sounding off about products that suck. Just this once I decided to get behind a product that I’m truly proud of and tell you all why I recommend A2Hosting’s Shared Hosting package above the competitors.


If one goes searching this vast Internet of ours for recommendations about cheap web hosting, one will be sure to drown in oceans of fake ratings and user reviews, not to mention affiliate links from folks who have never actually sampled a company’s services or those of any of their competitors.

I’ve dealt with several cheap, shared web hosts from the largely unknown Global Internet Solutions (name intentionally left unlinked for your protection) to Danika Patrick’s host-of-choice GoDaddy.  But when I have the choice, I host with  This personal choice and my recommendation to my readers comes not from the promise of affiliate payments, but from four years of positive experiences with this company. Below are 6 reasons why I stand behind A2Hosting.

6. A2Hosting Watches & Listens

Up until just a few months ago I was running a now-defunct personal project called Sudoku Madness.  This marginally-popular website was hosted on A2Hosting and hosted hundreds of thousands of unique Sudoku puzzles in a PostgreSQL database. My site became a small hit (especially with my sister’s seventh-grade math class), which turned out to be a problem for other users who shared my server:  my scripts were opening a new database connections on each request and not returning them for use by other users.  A2Hosting didn’t knock me offline as they had every right to do, but they immediately notified me that my PHP was running amock and proposed a fix.

A2Hosting solved a problem of my own creation and suggested a solution that kept me and their other customers online and happy. Plus they kept me earning literally tens of cents per week in affiliate income from that project! (Look for my money-making infomercial coming soon to QVC!)

5. A2Hosting Supports PostgreSQL

Many shared web hosts support only the typical LAMP development stack; but in addition to the traditional Mysql offering, A2Hosting also supports PostgreSQL.  Attempting to debate the pros and cons of the two platforms is both out of this article’s scope and risks inciting a religious war, but suffice it to say that Oracle’s purchase of Sun Microsystems leaves MySQL’s future uncertain so a choice in open database platforms can’t be a bad thing.

I chose to use PostgreSQL on several of my projects, most notably on my Sudoku Madness site.  That particular database housed hundreds of thousands of records and used home-brewed PGSQL procedures to speed up searches and puzzle creation. The site ran for several years largely unchanged, and speed and storage never became a factor.

My one complaint: A2Hosting’s automatic backups include your MySQL databases, but at least as of a year ago, not your PostgreSQL databases. To the best of my knowledge, you’ll need to set up your own backup schedule if you choose PostgreSQL (a good idea regardless).

4. A2Hosting’s Server Rewind Feature

Whether you only host your own projects or resell hosting to clients, the day can and will come when you’ll need a backup. There is nothing more embarrassing and damaging to your credibility than losing a client’s site or database and not having a recent backup.  Nobody is perfect. That’s why pencils have erasers and decent web hosts provide backups.

I’ve tested A2Hosting’s backup system on numerous occasions.  The first was when my account was migrated to a new server and one of my databases was missed during the restoration (again, darn that lack of PostgreSQL backups!). With the help of A2Hosting’s support department I was able to recover one of my manually created SQL dump files from the Server Rewind app and quickly get my site up and running again.

More recently a site which I inherited from another developer was hacked.  The code for this site only worked when a certain directory under the web root had full write access by the Apache process and the client refused to pay for a rewrite.  Suffice it to say, they eventually got theirs.  I was able to recover both their site and their back-end database  using Server Rewind, available through my management panel.

3. A2Hosting Supports Subversion

The day comes when a developer outgrows manually updating their websites via FTP.  Fortunately A2Hosting supports Subversion over SSL, which provides you with secure version control of your code.  They also offer CVS and Git hosting if Subversion isn’t your thing.

I personally use A2Hosting’s Subversion hosting for all of my projects that aren’t based on another project (WordPress, etc), even development projects that aren’t hosted on A2Hosting.  After committing my code to Subversion I SSH into my server and run a script that pulls the latest changes from the repository. Using version control to manage your sites saves you time and bandwidth by only uploading changed files, and it gives you the power to quickly undo a bad update.

2. A2Hosting Has Never Eaten My Domains

Granted, I’ve never given them the option. I’ve previously lost domains to other shared web hosts who offered me cheap domain registration but refused to release my domains after I became disgusted with their service and wanted to move.

On the other side of the coin, I’ve transferred a number of domains to A2Hosting and they’ve always offered assistance in this frustrating process when they can.

1. A2Hosting’s Support is Unmatched

I can’t begin to explain how helpful A2Hosting has been to me over the past few years.  They’ve always responded quickly to my support requests no matter how inane, and they’ve saved my ass from embarrassment and lost clients on a number of occasions.

When I developed my first site using PostgreSQL, I uploaded my scripts to A2Hosting only to find that they had not enabled the pdo_pgsql extension which my code was completely dependant upon.  Their support people had the issue resolved within hours, which I consider more than acceptable for a shared host, when other hosts have rejected my requests across the board for common PHP extensions in the past.

More recently I had an issue with mail from my domains being rejected.  This is the sort of issue which truly tests a company’s metal because there are so many possible points of failure. Many companies will play the blame game for days or even weeks with email issues, insisting that the problem is “on the other end.” A2Hosting has never been afraid to dive in, and resolved this issue by the end of the day.


Though A2Hosting remains competitive in price, speed and options, their edge comes from their fanatical support.  Though I award them zero points for originality by naming their support wing the Guru Crew, those are the folks who have made me a committed and loyal customer of A2Hosting. Choosing a web host is a lot like choosing car insurance:  you can pay your premiums for years and have no concept of a company’s quality.  You find out when it’s too late, and that’s when A2Hosting truly shines.

PHP On Windows 7

Last week I decided to take the plunge and install the release candidate of Windows 7 on my office workstation where I happen to do a lot of web development and testing.  My development stack consists of Netbeans IDE, PHP 5.2.8, and IIS 7.  There are plenty of other quality tutorials out there explaining how to get PHP working on IIS 7 so I won’t bother beating that particular dead horse.  However there was one quirky difference between installing PHP on Vista and installing PHP on IIS 7 that developers may want to be aware of before they follow my lead.

The Problem : Editing php.ini as a Standard User

During the process of installing PHP on Windows 7 you will be required to copy php.ini into the C:\Windows directory, and  later point you’ll most likely need to edit this file to suit your needs.

On Windows Vista I simply wasn’t allowed to edit files under the \Windows directory (specifically php.ini) when logged in as a Standard User. Windows 7 was more than happy to allow me to modify and save this file in the same location, logged in with the same credentials. But even after restarting IIS my configuration changes never took effect.

The problem was caused by something called the Virtual Store, an application compatibility feature that existed in Windows Vista but works a little bit differently in Windows 7.  Where Vista wouldn’t let me edit this file at all, Windows 7 happily lets me modify it but transparently saves the changes in a different location. The updated php.ini was stored in %UserProfile%\AppData\Local\VirtualStore\Windows\php.ini.  The service account which IIS runs under can’t see this updated file

The Solution: Run As Administrator

When editing php.ini, don’t simply double-click it and make changes.  You must run your text editor as an administrator to edit the file, otherwise the changes will be saved to the Virtual Store.