Bringing Back the Blog

May was a big month for changes. Kelsey and I celebrated our eighth wedding anniversary, I graduated with a PhD in Science and Technology Studies from Rensselaer Polytechnic Institute (RPI), I left my job at Fingerpaint, where I had been working for over four years, and I started a new job as a Principal Software Developer with Alley Interactive, working remotely.

Being done with PhD studies and eliminating my commute has left me with a bit more time in my schedule, so I figured I would try to start blogging on a semi-regular basis. We’ll see how it goes!

WordPress Multisite & ScholarPress

After getting ready to install the fourth instance of WordPress on my host, I decided to give the whole multisite thing a go. It actually wasn’t all that difficult to set up, although it requires editing an .htaccess file and wp-config.php, so you have to be comfortable with that. I have SSH access to my server, so it’s easy enough to just SSH in and use VIM to edit the files on the server directly.

One of the motivations for moving to multisite was to stand up a ScholarPress installation at http://courses.kevinfodness.com. Another motivation was to be able to have http://www.kelseyandkevin.com on the same WordPress installation as this site, so I could keep upgrades / plugins / etc consolidated, and not update things in a ton of different locations. Well, both of these things failed.

ScholarPress runs on BuddyPress, which is a network-only plugin. If you’re running it on an individual site, you don’t notice any difference from any other plugin. However, if you are running it on a multisite installation, you have to have the plugin enabled for all of your sites or none of your sites. There is no way to say, “I want BuddyPress enabled on these sites but not these sites,” within the same multisite installation. Therefore, I had to create http://courses.kevinfodness.com as a separate WordPress installation to isolate the BuddyPress install. I’ve got it up and running with ScholarPress, so we’ll see how that goes for managing my TA responsibilities.

WordPress multisite (for some reason) only lets you manage subdomains or subdirectories off of a primary domain – so I can add all of the subdomains off of kevinfodness.com that I want, but I can’t add http://www.kelseyandkevin.com. (Technically, I can, but it’s hacky and requires editing the database directly, including for all of the subdomains I would want to add.) So, it looks like one install for this site, one for the courses site, and one for K&K, with the option to add subdomains off of K&K and this site whenever I want.

In concept, multisite is great, but they’ve got a few kinks to work out. I’m sure there are plenty of other folks like me that want to manage multiple domains on the same installation.

To Hell with VMWare Server

I had planned on doing a whole writeup on how to move from VMWare Fusion 2 on the Mac to VMWare Server 2 on Ubuntu, but instead, I’m writing about how I got fed up with the process and moved to VirtualBox OSE. In many ways, this was actually the superior move – VirtualBox is open source, whereas VMWare Server (while free) is not open source. Additionally, VirtualBox has much better integration with the OS than VMWare Server has. For instance, VirtualBox on Ubuntu is managed through a thick client, whereas VMWare Server is managed through a (rather clunky) web interface.

The two things that really turned me off VMWare Server were the lack of an OS-native client and the terrible console support. In order to get console support working at all, I had to downgrade my edition of Firefox from 3.6 to 3.5, and then the console was all but unusable. Attempts to connect via RDP and VNC were an utter failure, so I decided to move to VirtualBox instead.

I tried migrating my VMs from VMWare Server to VirtualBox – which is supposedly possible – but ended up failing. To be honest, I didn’t spend a lot of time doing this, so it might be possible. However, I had built my VMs on VMWare Fusion 1, upgraded them to VMWare Fusion 2, then moved them to VMWare Server 2 on Ubuntu using the VMWare Converter, and decided that after all that moving around, they probably weren’t that stable and/or efficient any longer. Therefore, I decided on rebuilding them from scratch under VirtualBox. The only annoying thing is spending the time building out three XP VMs and installing all of the patches and software all over again. The plus side is that I’m going to build out an Ubuntu VM as a webserver, so I can keep my configuration isolated, and leverage snapshots when making configuration changes.

Subscribe2

I’m attempting to install and configure Subscribe2 for managing email subscriptions to my websites, and so far, it’s been a little frustrating. Documentation is sparse – perhaps because they want you to buy Subscribe2 paid edition in the WordPress app store. Hopefully this post will send an email to my email account with the post information.

New Host

I’ve migrated to a new host: BlueHost. I left 1&1 after some careful consideration that boiled down to the following:

  1. 1&1 is running Apache 1, which is no longer supported, and doesn’t play nice with modern software. Most notably, you have to hack Gallery 3 to work with it, and mod_deflate is only available on shared hosting platforms through the official release for Apache 2. (mod_deflate gzips your files before they get sent to the browser, dramatically speeding up download times.)
  2. 1&1 doesn’t have a lot of utilities installed for you, such as ImageMagick, meaning that you have to install them yourself.
  3. The support is terrible. In almost all of my support calls, the support staff didn’t know much of anything about the way shared hosting was set up, so support calls were long and frustrating. During one call, the support analyst was about to overwrite an .htaccess file for a production site without my consent, despite the fact that the phone call was about the development environment.
  4. The undocumented zombie-process-killer application they have running on their servers. Despite having the script timeout set to unlimited, any script that runs for longer than 60 seconds will eventually get unceremoniously killed by a zombie-process-killer application that they have running on their serves, which is not documented anywhere. Not only is it not documented, the support staff don’t know about it, because an hour plus long conversation with a support analyst about my long-running script dying on me without a word of explanation yielded a bunch of unhelpful suggestions about logging my own PHP errors (as if that would catch the contents of an HTTP 500).

I’ve been pretty happy with the service so far. BlueHost uses cPanel for administration, which is standardized, so it’s familiar to anyone who has used cPanel on other hosting installations before. The prices are significantly better, also. We were paying $11.99 / month over at 1&1, and we are now paying $6.95 / month for BlueHost. 1&1 gave us three free domain registrations per year, whereas BlueHost only gives us one, but the extra domain is still only $10 / year – so we are saving $50.48 overall. Plus, BlueHost gives you unlimited storage space and bandwidth, and we were limited to 250 GB on 1&1 (not like we were using that much space anyway, though).

My one major complaint with BlueHost is actually a criticism of cPanel, as far as I can tell. When you sign up, the first domain you assign to your account is the primary domain, and all of the files for the primary domain are located in /public_html. The problem is that you can’t change this path for the primary domain. All additional domains and subdomains have their files put in /public_html/somefolder, which means that you can access those sites by going to http://www.primarydomain.com/somefolder, and you can’t keep your domains siloed. For sites that I create myself, I prefer to keep all of my controllers, views, models, and functions outside of the web-accessible path – the web-accessible path has an index.php that calls controllers (using mod_rewrite), and other than that, it contains images, PDFs, CSS files, JS files, and other non-PHP content. Isolating your PHP files in a non-web accessible directory in cPanel seems to be possible, but an absolute pain to maintain. Additionally, when you register a second domain (in this case, http://www.kelseyandkevin.com), it automatically creates a subdomain on your primary domain (in this case, kelseyandkevin.kevinfodness.com) which you can’t delete. It does this “for your convenience,” but it would be significantly more convenient if I had a choice as to whether this subdomain was created or not. 1&1 did not have this problem – it let you put your files wherever you wanted, and let you set specific directories for your sites.

I don’t have any problem with being forced to put all of my web content in public_html, but I would certainly like to be able to set my primary domain to pull its files from a subdirectory of public_html, and I would certainly like to be able to control what subdomains exist on my account for all of my domains, and be able to delete them at will.

I saw a suggestion on one of my searches about creating a ‘www’ subdomain for the primary domain, and redirecting content from domain.com (minus the www) to the www domain, which I will explore. However, that’s kind of a ‘hacky’ solution, because I would have to write a redirect for the non-www domain, and I would also have to write redirects for the subdomains I don’t want. Grumble, grumble.

Anyhow, I’ve implemented GZIP compression, cache control, and some other useful things that I got from Google’s Page Speed Firebug plugin to speed up the display of both kevinfodness.com and kelseyandkevin.com. I’ll be adding more performance enhancements in the coming weeks also.

In other news, I will be working on my department’s website this semester, and implementing performance enhancements, accessibility features (following the WCAG 2.0), and updating content. I’ll be blogging about my experiences working on that project, particularly the accessibility stuff, in the coming months.