This site is deprecated: in other words, I’m not posting here anymore, feel free to use what you find but I won’t be maintaining it or posting here any longer. I’m sorry if some of the downloads and samples aren’t available, you can read my post from December 2011 (not coincidentally the last time I posted here) which explains a bit of the ugly story.
You can read about why I made this change and I hope you’ll follow my new adventures at http://joelcochran.com (no WWW, which still directs to this site for the time being). As always, I thank you for reading.
DevelopingFor.net started in December of 2006 as a way for me to archive code samples, bug fixes, and other items of interest. We created the site on an old machine that was literally just lying around. Using LAMP and WordPress it was quick and easy to deploy and before you knew it a blog was born.
Death of a server
Fast forward 5 years and the site was still self-hosted on the same equipment that was old when we started. I started noticing intermittent issues like dropped connections to the MySQL server, random reboots, web server crashes, you know little things like that. I realized I should move the site but I kept putting it off in favor of happier pursuits. After all, Linux never dies, right? Well, Linux may never die but hardware certainly does.
Does the term “catastrophic server failure” mean anything to you? It does to me, at least now. Both the CPU fan and the server fan quit working. No idea when these things happened but one or the other is most likely responsible for the weird issues. When both failed it was sayonara server. We tried replacing the fans but it was too late: either the CPU or the motherboard is fried and we have a DNR order on file. Goodbye server.
Surely you have a backup?
As a matter of fact, I do. Many of them. I’ve been faithfully using a backup utility in WordPress, running it after every blog post. A copy is stored on the server, on my laptop, on my portable hard drive, and in DropBox. I also have backups of all the images, code libraries, and the custom DevelopingFor theme I created. Verily verily, I say, I HAVE backups.
Knowing that I had all these backups made it easier to ignore the hardware because I knew I could recover if the worst ever happened. It wasn’t until that “if” became “did” that I realized I was still not properly prepared.
I have come to the decision over the years that self-hosting is a poor choice: I needed to find a hosted solution. I won’t enumerate all the moving parts in this decision, but the fastest way for me to get the blog up and running again was to host it on WordPress.com. I created the necessary account, set up the blog and went to import the backup. That’s when I learned that the backup utility was not what I should have been using.
When is a Backup not a Backup?
Somewhere along the way, WordPress created a custom import/export based on the RSS XML spec called WXR. Instead of the old backup utility, which backs up the MySQL database into a .sql file, I should have been using the built in Export tool. Had I done so, the site would have been back up in a matter of hours instead of days. I toyed with a few options, including writing a WordPress MySQL to BlogML converter so I could import to Orchard. I may continue down that path, but I ran into issues on my hosted account getting Orchard to work properly (a topic for another time).
Ultimately, I appealed to WordPress.com directly. They took pity on me and converted my .sql backup file to a WXR file. It took about a week overall but I was finally able to import the old posts into the site this morning. The good news is it’s back from the dead. The bad news is there are going to be some changes around here.
The resurrection has left some changes that will take me some time to work through and some that will probably never be fixed. The biggest issue at the moment is that any screen shots or images they have most likely will be showing the big red ‘X’. This is because I was previously FTP’ing the images directly to the site, so they have path references that no longer exist. As I find them I will try to correct them, but the law of diminishing returns inclines me to think it’s not worth the effort.
The second big deal is I can not import my custom theme since the site is now on WordPress.com. A new look is fine, but it means I’ll have to put in some time to recreate some of the navigation and shortcuts that were there before. All in all the important stuff should work but there may be issues with some of the links as I sort through this conversion.
Every tragedy is a learning experience. In the immortal words of Dr. Frankenstein, “It is ALIVE!” There’s breath in the old girl yet. That being said this occurrence has forced me to come to grips with a couple of issues. First, I need to be more proactive: had I paid more attention I could have prevented this by transitioning before the failure. Second, I need to do some succession planning, so to speak. Third, I realize I’m not happy with my web presence overall: it’s time to make some changes. Finally, I need to gain more comfort and familiarity with hosting solutions and environments, at least until Azure has a free edition.
Oh, and when you make a backup, be sure it is really a backup.
I have made a few updates to the site. Nothing big, but I wanted to go ahead and log them as a point of reference.
I’ve been having an issue recently with my MySQL server. It appears that on occasion it will shut down access because of too many failed login attempts. Of course, it makes me wonder who or what is causing the problem, but for now I just have to catch it and clear the hosts file to reset it.
Unfortunately, when it is happening the site is completely unavailable. If you see the site having trouble in the future, like a database connection isn’t working, please DM or @ me on Twitter and I’ll fix it.
I’ve also been having some connection issues with Akismet. The plug-in is reporting that 2 of the servers will connect but 2 others won’t. See updates below for more…
I updated today to WordPress 2.8.2. The update seemed to hang for a log time on a blank screen, something that has not been an issue in previous updates. I was getting nervous for a while but it finally flashed up and appears to have completed normally.
I found the WP-SpamFree plugin, which promises to eliminate Comment Spam. Akismet has been doing fine, but I still have to moderate a few everyday. We’ll see if this new plug-in fares any better.
On the same note, the plug-in also includes a spam free Contact page. I’ve enabled it, so if you wish to send contact me through the site, go to the Contact Me page (listed on the right under ‘Pages’).
So I noticed in my BlogLines page that the Feed for DevelopingFor was no longer showing. I guess after so long of being unavailable it automatically deleted it. So I clicked on the RSS Feed to subscribe, and lo-and-behold, the missing articles showed up! These were the articles that were written after the last backup, and a couple of good ones to boot.
So I am going to copy and paste them to repost. I cannot guarantee the quality as they are not entered properly through WordPress, but at least the general content should be recovered… if nothing else, it will be interesting to see how it turns out.
Posts marked with [REPOST] are ones that were done in this fashion. If anyone has linked to any of them, I’m sure the links will fail, but I may be able to recapture those thanks to WP 2.5′s Permalink editor. It will also take a little while to get all the categories straightened out, but overall I am very happy. Who knew?
[UPDATE] Amazing! Bloglines retained the entire HTML, so all the source code samples and all formatting was recaptured by simply copying it from their online feed!
[UPDATE 2] I was able to get all the old post permalinks reset, and I just wanted to share how to do it in case any of you find yourselves in this strange situation. Here are the steps (for each post):
- After creating the post and copy and pasting the contents, save the post (since this is the most important step we want to make sure it gets done)
- Go to the Bloglines feed and look at the link – this will tell you what the original Category was. Now go edit the Category on the post and Save the post.
- Click the Edit link next to the Permalink. Paste the link in from Bloglines. Remove the parts of the link up to and including the category and the “.html” suffix.
- Now, in order for this to take, you must press “Save” again!
And Viola, restored Permalinks.
You may have experienced an odd occurrence on the site today, and if so I apologize. For some inexplicable reason, the site encountered the dreaded WordPress Blank Page issue. Last I checked, which I think was yesterday afternoon, the site loaded just fine. Today, however, I noticed that the front page would not load. The index.php page produced only a blank return: a completely empty HTML document. Then I confirmed that the Admin page would load correctly.
I checked and even restarted the web server: all was well and restarting did not help, which I expected since all the other sites seemed fine. Next, I deactivated all the plugins, but since that made no difference I reactivated them immediately. I then tried reloading 2.5, but that did not change anything. Finally, I went to the admin page and changed the Theme to the WordPress Default. All of a sudden, the site showed up. I changed back to the regular site theme, and sure enough it would not load. Fortunately, I keep a copy of the Theme on my PC, so I uploaded it again and the site came back.
After going through this, I think I’ve done this once before. Maybe next time I’ll remember the solution without all the gyrations. Of course, it would be nice to not have the problem ever again. I expect to potentially have this sort of problem immediately following an update, but since it has been a couple of weeks since upgrading to 2.5 I really don’t understand the sudden problem.
This morning I the site upgraded to WordPress 2.5, and I am very impressed! I know it is not .Net, but I think there are plenty of you who might be interested. So here is my list of top 7 cool new WP features:
- Permalink editing: you can now preview and edit the Permalink of a blog post. Previously, it was always based on the title, which can be annoying and not always SEO friendly.
- Improved Dashboard: a better layout, more relevant information, easier navigation.
- “Top Post” information added to the Dashboard.
- The WordPress Blog feed has been downsized and moved.
- A Plugin feed has been added to the Dashboard.
- Integrated Stats (may require Stats plug-in) on the Dashboard.
- Improved WYSIWYG editor and interface.
They say that the new interface no longer messes with your code in posts, but we’ll see the next time I post some samples. They also say you are supposed to be able to configure the Dashboard yourself, but I haven’t found that feature yet.
I will say they made a couple of changes I don’t care for, mostly on the “Write Post” screen. They moved most of the advanced features below the post instead of in the right hand sidebar, so even to select a Category I have to scroll down now (which was not previously the case). I’m not sure what the benefit is: the right sidebar is still present, so there is no increased posting space, you simply have fewer options in the sidebar. Actually, it makes the page seem a little lopsided. For most of the features this is not an issue, but selecting a category is pretty important and should have been left where it was.
But I’m nitpicking. Otherwise it looks as though the team at WP has done another fantastic job.