blog repatriation

I decided to move my blog hosting back onto the North side of the border. There were a couple of reasons, but by far the largest was the ongoing poor server performance I’ve been having at Dreamhost. It seemed like there was nothing I could do to improve performance, or at the least reduce bottlenecks. Enough was enough, and it was time to move. CanadianWebHosting.com has some good prices – a touch more expensive than Dreamhost, and not with the insane (i.e., infinite and imaginary) limits on bandwidth and drive space. It felt like Dreamhost was overextended, at least on the server I was on. Whereas my old Dreamhost server had typical loads (as indicated by top) around 50, my CanadianWebHosting server has a more sane 0.1 average. In initial testing, dynamically generated page loads went from 20-60 seconds down to 400ms or so. I can live with that, especially with static page caching enabled so most accesses should be almost instantaneous.

The other factor was repatriating my hosting back onto Canuck soil. There are a couple of sub-factors here. First, the Patriot Act and DMCA scare the hell out of me. It’s not like I’m writing anything that could invoke either, but just having them hanging over me felt uncomfortable. Although CSIS can strongarm access to any server in the country anyway, it’s not a legislated standard operating procedure.

Subfactor 1.2: a slight move toward local hosting. Sure, CanadianWebHosting.com is located in Richmond, which isn’t exactly “local”, but that’s a full 2000 km north of Dreamhost’s LA datacentre. And it’s kinda nice knowing at least my data is able to live in Lotusland.

Dreamhost to CanadianWebHosting.com

CanadianWebHosting (B) is just a scootch closer to home (C) than Dreamhost’s LA datacentre (A).

I feel a little bad, having recommended Dreamhost so highly, and being at least partially responsible for a few people moving onto it. Hopefully, they’re happy with the service – when it worked for me, Dreamhost was really great. It’s just that I somehow hit the ceiling, and it was much lower than it should have been.

OpenID plugin borkage

My blog was down for much of the morning, and after contacting Dreamhost tech support ninjas, they told me that my account was sucking the RAM out of the server, and that wasn’t cool. They gave some tips on how to reduce memory usage (didn’t work), and then I rolled up my sleeves to debug my WordPress site to see wtf was going on.

I started by SSHing into the server, and moving my wp-content/plugins out of the way and creating a new, empty plugins directory.

mv wp-content/plugins wp-content/plugins-dis
mkdir wp-content/plugins
cd wp-content/plugins-dis
ls

Then, I reloaded the blog in a browser, and it worked! Aha! Something wonky with a plugin. So… To debug with plugin was the culprit…

I started having flashbacks to debugging MacOS 7/8/9 systems, where you got to reboot a dozen times, each with a different set of control panels/extensions enabled, until you figured out which one was borking the system. Same thing here, but with plugins. I moved them back into the active plugins directory, one at a time, until it borked again. Something like Conflict Catcher might be handy here…

mv plugin-1 ../plugins/
(reload browser)
mv plugin-2 ../plugins/
(reload browser)
...

Looks like the OpenID plugin I use, which allows folks to leave comments using their OpenID credentials, started borking my blog for some reason. I’ve been using that plugin for several weeks (months?) with no problems, but now, it reliably kills my blog. Frack.

For now, I’ve disabled the OpenID plugin I had been using, and am trying out a different one to see if/how it works out. Simple OpenID is now enabled.

Update: I had to disable Simple OpenID as well. It was borking violently on comment submissions. If only OpenID was integrated into WordPress, as it has been for Drupal 6…

WordPress Performance Tuning

My blog often has fits of sucktacular performance. After digging around, and bugging DreamHost support for some ideas, I’ve made some progress.

I had been running wp-cache to enable file-based caching, thinking that would help optimize performance of the site (fewer database calls should equal better performance) – except that DreamHost apparently uses NFS-mounted storage for accounts. As a result, filesystem access is a bit laggy, so the file-based caching was actually (apparently) slowing the site down (as suggested by 4+1 ways to speed up wordpress). Disabled wp-cache and set define('WP_CACHE', false); in wp-config.php

I also noticed that there were 2 requests for linked files that were returning 404 errors, which in turn trigger my fancy schmancy 404 page and so add significant lag to the page load. Turns out the OpenID Delegation plugin had bad references to openid.js and openid.css so I fixed that, and page loads are at least cosmetically snappier now.

One other modification I made was to (temporarily?) disable the “Similar Posts” plugin and sidebar display. I really like the functionality that provides, but it was adding too much processing time to generating individual post pages. It works by using the MySQL full text index on the blog posts table, which gets a bit slow with lots of posts and MyISAM tables (table-level locking and lots of extra queries means slower site responses). I’ll look into optimizing that a bit and re-enabling in the future.

Also, I had the Mandigo theme set to automatically rotate through a set of banner images, meaning WordPress was having to crunch through the blogbanner/wide directory itself in order to pick up a banner image. Instead, I just set up my .htaccess file to intercept the URL for the default Mandigo banner image, and Redirect it to rotator.php so it should be a bit better now.

It’s still not running as fast as I’d like, but it’s just a blog. I could always trim out more plugins and pick a simpler theme, but I’m pretty happy with the functionality I have at the moment. At least it’s performing better than Twitter…

Update: I turned off the General Stats widget (but left the plugin active) – there’s no need to count every word of every comment and post when displaying every page on the blog. That info is available on the Archives page, where it belongs. That removed several very heavy queries from the typical page generation load.  I also updated Mandigo, which mentioned some optimizations in the changelog. The blog feels snappy enough now for me to stop worrying for awhile…

Dreamtube

Dreamhost rocks. I mean, they just keep piling on awesome new features into their hosting package. Recently, it was essentially infinite bandwidth and storage. Yesterday, they added an automatic Flash video transcoder and presenter, ala YouTube. But, within any Dreamhost site.

All I have to do is upload a video file (.avi, .mov, .mp4) to my site, tell Dreamhost I want it converted to Flash video (using the panel.dreamhost.com site that’s used for managing everything else as well), and their magic elves do their work and email me a javascript snippet to embed a flash player in any web page (or blog post). Like, for instance, this one:

Get the Flash Player to see this player.

It seems to choke on some video formats (it didn’t like my screencast at all – perhaps it’s not able to deal with the H.264 video encoding or AAC audio encoding…)

Now, if only Dreamhost would solve the intermittent MySQL performance suckage, things would be perfect!

Dreamhost rocks. I mean, they just keep piling on awesome new features into their hosting package. Recently, it was essentially infinite bandwidth and storage. Yesterday, they added an automatic Flash video transcoder and presenter, ala YouTube. But, within any Dreamhost site.

All I have to do is upload a video file (.avi, .mov, .mp4) to my site, tell Dreamhost I want it converted to Flash video (using the panel.dreamhost.com site that’s used for managing everything else as well), and their magic elves do their work and email me a javascript snippet to embed a flash player in any web page (or blog post). Like, for instance, this one:

[flv:http://www.darcynorman.net/video/banffdaylight_640x320.flv 640 320]

It seems to choke on some video formats (it didn’t like my screencast at all – perhaps it’s not able to deal with the H.264 video encoding or AAC audio encoding…)

Now, if only Dreamhost would solve the intermittent MySQL performance suckage, things would be perfect!

Eduglu reloaded

I’ve been meaning to get off my butt and finish mocking up an Eduglu prototype. I’ve been dabbling with a Drupal site, powered by Organic Groups and Aggregator2. I had it basically working on my desktop box, and just tried reproducing the basic pattern here on my Dreamhost server. The whole thing took maybe 15 minutes to set up. Except that it doesn’t work. Dreamhost has disabled the curl in PHP, so the Aggregator2 feed update functions just fail silently. curl, foiled again! (it borked the del.icio.us plugin as well). Instead of spending my time fighting with Dreamhost and porting modules to not use curl, I’ll just finish mocking things up on my desktop or another server.

The recent talk about Northern Voice 2007 was probably the kick in the pants I needed to get back on the case. It was the day before Moose Camp 2006 (this February, which is in turn the day before Northern Voice) where the ideas for Eduglu really gelled for me, and I vowed to try to do something to bring it to fruition. Then promptly returned to being swamped and burned out, so nothing concrete came of it. Doh. OK, to be fair, “vowed” is probably too strong. I didn’t swear an oath, or write a manifesto or anything, but it was something that I said I thought was important, and I didn’t follow through.

I’ll be working on it more over the next few weeks. Once I’ve figured out a stable-ish location (even if it winds up being (temporarily) on my desktop in the office), I’ll share the link. It’s not going to be earth shattering. Really, it’s just SuprGLU with a couple of concepts added (Ozmozr has added the concept of Groups, but what is really needed instead is the concept of Class, Cohort, Semester, etc…)

I’ve been meaning to get off my butt and finish mocking up an Eduglu prototype. I’ve been dabbling with a Drupal site, powered by Organic Groups and Aggregator2. I had it basically working on my desktop box, and just tried reproducing the basic pattern here on my Dreamhost server. The whole thing took maybe 15 minutes to set up. Except that it doesn’t work. Dreamhost has disabled the curl in PHP, so the Aggregator2 feed update functions just fail silently. curl, foiled again! (it borked the del.icio.us plugin as well). Instead of spending my time fighting with Dreamhost and porting modules to not use curl, I’ll just finish mocking things up on my desktop or another server.

The recent talk about Northern Voice 2007 was probably the kick in the pants I needed to get back on the case. It was the day before Moose Camp 2006 (this February, which is in turn the day before Northern Voice) where the ideas for Eduglu really gelled for me, and I vowed to try to do something to bring it to fruition. Then promptly returned to being swamped and burned out, so nothing concrete came of it. Doh. OK, to be fair, “vowed” is probably too strong. I didn’t swear an oath, or write a manifesto or anything, but it was something that I said I thought was important, and I didn’t follow through.

I’ll be working on it more over the next few weeks. Once I’ve figured out a stable-ish location (even if it winds up being (temporarily) on my desktop in the office), I’ll share the link. It’s not going to be earth shattering. Really, it’s just SuprGLU with a couple of concepts added (Ozmozr has added the concept of Groups, but what is really needed instead is the concept of Class, Cohort, Semester, etc…)

Domain squatters suck

I’ve been trying to move domain registration and DNS hosting for darcynorman.net from GoDaddy to Dreamhost for a couple of months. It’s been a long and frustrating process, involving faxing my driver’s license to Arizona to somehow prove I am who I say I am.

I just logged into my Dreamhost account to check on the status (still hasn’t finalized – they sure did set it up in a hurry, but it takes a looooong time to switch off of GoDaddy). On a lark, I tried adding registration for darcynorman.com. But Dreamhost’s registration utility complained that the domain was already taken.

Mwaaaah? Another D’Arcy Norman out there? Lemme check that out. A quick whois darcynorman.com turned up this:

   Domain Name: DARCYNORMAN.COM
   Registrar: GO DADDY SOFTWARE, INC.
   Whois Server: whois.godaddy.com
   Referral URL: http://registrar.godaddy.com
   Name Server: CNS1.CANADIANWEBHOSTING.COM
   Name Server: CNS2.CANADIANWEBHOSTING.COM
   Status: REGISTRAR-LOCK
   Updated Date: 16-mar-2006
   Creation Date: 16-mar-2006
   Expiration Date: 16-mar-2007

Oh, wait. No. It’s a domain squatter. Sitting on my name, assumedly hoping for a portion of the mad cash this blog generates. Mad cash, I tell you. Some lame squatter leech decided to register my name in the hopes I’d pay a ransom to get it back. At least the squatter is using a Canadian service provider to park the DNS for the domain. I guess that’s better than having it offshored to Moscow or something.

The combination of cheap domain registrations and “secure/private” registrations where you can hide behind a proxy make this practice possible. When I register domains, I need to go through CIRA verification, accept agreements about usage, etc… But these roaches can register other people’s names and park them for ransom. Rules (like locks) are for the honest people.

Screw you, squatter. I just went and registered darcynorman.ca – the only other variant of the domain I’d care about. Go ahead and squat on the rest, you rat bastage.

I’ve been trying to move domain registration and DNS hosting for darcynorman.net from GoDaddy to Dreamhost for a couple of months. It’s been a long and frustrating process, involving faxing my driver’s license to Arizona to somehow prove I am who I say I am.

I just logged into my Dreamhost account to check on the status (still hasn’t finalized – they sure did set it up in a hurry, but it takes a looooong time to switch off of GoDaddy). On a lark, I tried adding registration for darcynorman.com. But Dreamhost’s registration utility complained that the domain was already taken.

Mwaaaah? Another D’Arcy Norman out there? Lemme check that out. A quick whois darcynorman.com turned up this:

   Domain Name: DARCYNORMAN.COM
   Registrar: GO DADDY SOFTWARE, INC.
   Whois Server: whois.godaddy.com
   Referral URL: http://registrar.godaddy.com
   Name Server: CNS1.CANADIANWEBHOSTING.COM
   Name Server: CNS2.CANADIANWEBHOSTING.COM
   Status: REGISTRAR-LOCK
   Updated Date: 16-mar-2006
   Creation Date: 16-mar-2006
   Expiration Date: 16-mar-2007

Oh, wait. No. It’s a domain squatter. Sitting on my name, assumedly hoping for a portion of the mad cash this blog generates. Mad cash, I tell you. Some lame squatter leech decided to register my name in the hopes I’d pay a ransom to get it back. At least the squatter is using a Canadian service provider to park the DNS for the domain. I guess that’s better than having it offshored to Moscow or something.

The combination of cheap domain registrations and “secure/private” registrations where you can hide behind a proxy make this practice possible. When I register domains, I need to go through CIRA verification, accept agreements about usage, etc… But these roaches can register other people’s names and park them for ransom. Rules (like locks) are for the honest people.

Screw you, squatter. I just went and registered darcynorman.ca – the only other variant of the domain I’d care about. Go ahead and squat on the rest, you rat bastage.

Dreamhost ups account limits

Woah. Dreamhost is celebrating their 9th birthday, and decided to party by increasing limits on accounts. Account holders now get 200 GB (200 gigabytes – a fifth of a terabyte) of disk space. And 2 TB (2 terabytes) of bandwidth per month.

That’s insane. Three things must have happened, in order for them to be able to offer this at $7.95/month.

  1. bandwidth costs have come waaaay down over the years
  2. the cost of hard drive space has come waaaay down over the years
  3. almost nobody comes even close to using their full allotment of either

It’s awesome that Dreamhost is doing this. It’s pretty cool knowing I’ve got 200GB backing my account, and that I’ll never have to worry about bandwidth. Now, if only the performance of the MySQL server would get a boost…

So… Why hasn’t the decreasing cost of bandwidth affected my home DSL connection at all?

Woah. Dreamhost is celebrating their 9th birthday, and decided to party by increasing limits on accounts. Account holders now get 200 GB (200 gigabytes – a fifth of a terabyte) of disk space. And 2 TB (2 terabytes) of bandwidth per month.

That’s insane. Three things must have happened, in order for them to be able to offer this at $7.95/month.

  1. bandwidth costs have come waaaay down over the years
  2. the cost of hard drive space has come waaaay down over the years
  3. almost nobody comes even close to using their full allotment of either

It’s awesome that Dreamhost is doing this. It’s pretty cool knowing I’ve got 200GB backing my account, and that I’ll never have to worry about bandwidth. Now, if only the performance of the MySQL server would get a boost…

So… Why hasn’t the decreasing cost of bandwidth affected my home DSL connection at all?

Power issues at Dreamhost (i.e., blog outage)

It’s a total non-issue for me, but Dreamhost (the cool company that’s hosting my blog) is going through some rough times in their data centre at the moment. Apparently the heat wave in California is wreaking havoc on their power situation, causing a power outtage. The generators kicked in, but there was a short. And a fire. Hell broke loose. (the mention of the fire has disappeared from their Dreamhoststatus.com blog, so maybe it wasn’t that bad…) So, my blog was down for awhile. Really no big deal. If you can read this, it’s back up. I’m guessing there may be periodic outtages while it’s sorted out.

David noticed and emailed me within minutes of the blackout – well before I would have. Actually, he seems to notice every outtage or hiccough on my server well before I do…

btw, Dreamhost is so unbelievably cool as a hosting company. I accidentally discovered that they have installed Appleshare services on my server (perhaps it’s standard on all of their servers?) – I can have my hosted directory mounted on my desktop, and take advantage of Finder-y goodness rather than resorting to FTP or shell connections for everything. Nice. So, I have a 20GB (that’s GigaBytes) volume, accessible anywhere, via FTP, AFP, or shell connections. They also offer WebDAV for directories (which I don’t use), and Subversion, and one-click installs of every web app I could ever want. And the shell account is fully enabled, with access to emacs, cron, rsync, lynx, etc… not like the silly locked down accounts some providers offer (what? we had no idea you’d want to edit files. we have to enable emacs for you… mysql command line access? really? why would you want that? etc…)

I’m babbling. Dreamhost is an insanely cool hosting company. I’m extremely happy with the service they offer, and this minor downtime is trivial (and unavoidable, given the fragility of the North American power grid – does this scare the crap out of anyone else? A fuse can blow in southern Ontario, and drop the entire Eastern seaboard into darkness. Prime targets. yikes.)

It’s a total non-issue for me, but Dreamhost (the cool company that’s hosting my blog) is going through some rough times in their data centre at the moment. Apparently the heat wave in California is wreaking havoc on their power situation, causing a power outtage. The generators kicked in, but there was a short. And a fire. Hell broke loose. (the mention of the fire has disappeared from their Dreamhoststatus.com blog, so maybe it wasn’t that bad…) So, my blog was down for awhile. Really no big deal. If you can read this, it’s back up. I’m guessing there may be periodic outtages while it’s sorted out.

David noticed and emailed me within minutes of the blackout – well before I would have. Actually, he seems to notice every outtage or hiccough on my server well before I do…

btw, Dreamhost is so unbelievably cool as a hosting company. I accidentally discovered that they have installed Appleshare services on my server (perhaps it’s standard on all of their servers?) – I can have my hosted directory mounted on my desktop, and take advantage of Finder-y goodness rather than resorting to FTP or shell connections for everything. Nice. So, I have a 20GB (that’s GigaBytes) volume, accessible anywhere, via FTP, AFP, or shell connections. They also offer WebDAV for directories (which I don’t use), and Subversion, and one-click installs of every web app I could ever want. And the shell account is fully enabled, with access to emacs, cron, rsync, lynx, etc… not like the silly locked down accounts some providers offer (what? we had no idea you’d want to edit files. we have to enable emacs for you… mysql command line access? really? why would you want that? etc…)

I’m babbling. Dreamhost is an insanely cool hosting company. I’m extremely happy with the service they offer, and this minor downtime is trivial (and unavoidable, given the fragility of the North American power grid – does this scare the crap out of anyone else? A fuse can blow in southern Ontario, and drop the entire Eastern seaboard into darkness. Prime targets. yikes.)

Blog move to Dreamhost now finalized

My various online bits are now living at Dreamhost. It took only a few minutes to install my stuff, copy over the files, and get up and running. It’s taken a bit longer to have DNS changes propagate, but I think that process is pretty much over now. Wordpress seems pretty happy there, and I’ve installed copies of Drupal, Mediawiki and Lace (the cool ajax chat app), as well as a Quicktime streaming server and Jabber server. The last two were autoinstalls, so I just flicked them on to see what they did. Actually, everything but Lace could have been automatically installed, with subdomains and databases created automatically, but I opted to do the manual install because I already have copies of the apps configured.

So far, things seem to be working pretty well. They give an insane amount of disk space (20 GB to use as I need) and monthly bandwidth (1 TB/month, plus an extra 8 GB added each week), as well as SSH and FTP access.

I’m looking forward to playing around with Rails a bit, and have a place to host it.

The Dreamhost support team is also pretty darned responsive. I’ve had to contact them twice (once when their account creation form barfed on the apostrophe in my name, and once when the stats weren’t being displayed). Very helpful, those Dreamhost folks. They also have 2 blogs that they use to communicate about status and other stuff. The off-site dreamhoststatus.com blog is a good way to keep up on pending changes or outtages. And their general blog is just plain entertaining – with a category dedicated to rants! It’s good to see a decade-old hosting company that’s grown rather large still be able to have a sense of humour.

Update: One of the things I’m loving about hosting at Dreamhost is that backups are trivial. I have a script in my hosted account that I can trigger via SSH, and it will rsync my entire home directory (including all files needed to host my domain and any subdomains) to my desktop box on campus for backup. And, because rsync is so cool, it only takes a few seconds, since only changed files are sent. So, I can make sure all of my 300+MB of files are backed up in about 10 seconds. Add a scripted mysqldump into the mix, and all data backups are up to date as well.

My various online bits are now living at Dreamhost. It took only a few minutes to install my stuff, copy over the files, and get up and running. It’s taken a bit longer to have DNS changes propagate, but I think that process is pretty much over now. WordPress seems pretty happy there, and I’ve installed copies of Drupal, Mediawiki and Lace (the cool ajax chat app), as well as a Quicktime streaming server and Jabber server. The last two were autoinstalls, so I just flicked them on to see what they did. Actually, everything but Lace could have been automatically installed, with subdomains and databases created automatically, but I opted to do the manual install because I already have copies of the apps configured.

So far, things seem to be working pretty well. They give an insane amount of disk space (20 GB to use as I need) and monthly bandwidth (1 TB/month, plus an extra 8 GB added each week), as well as SSH and FTP access.

I’m looking forward to playing around with Rails a bit, and have a place to host it.

The Dreamhost support team is also pretty darned responsive. I’ve had to contact them twice (once when their account creation form barfed on the apostrophe in my name, and once when the stats weren’t being displayed). Very helpful, those Dreamhost folks. They also have 2 blogs that they use to communicate about status and other stuff. The off-site dreamhoststatus.com blog is a good way to keep up on pending changes or outtages. And their general blog is just plain entertaining – with a category dedicated to rants! It’s good to see a decade-old hosting company that’s grown rather large still be able to have a sense of humour.

Update: One of the things I’m loving about hosting at Dreamhost is that backups are trivial. I have a script in my hosted account that I can trigger via SSH, and it will rsync my entire home directory (including all files needed to host my domain and any subdomains) to my desktop box on campus for backup. And, because rsync is so cool, it only takes a few seconds, since only changed files are sent. So, I can make sure all of my 300+MB of files are backed up in about 10 seconds. Add a scripted mysqldump into the mix, and all data backups are up to date as well.