Now that we have our fancy new VPS and are allowed to create multiple user accounts, I’ve run into a problem with basic linux permissions that you really only find when you have multiple users working in the same space. In my case, we need multiple users to have access to all of our online property web roots. I started by using chown to force the entire web root under the ownership of www-data:www-data and adding everyone who needed access to the secondary www-data group. This works fine until people start making changes. Each new file they write becomes owned by only them and their primary group.

Continue reading »

Movable Type 4.2 introduced (among other things) built-in pagination. When you have a set of entries published to a dynamic index, you can auto-paginate them with some magical tags and it works wonderfully. That is, it works unless you wanted to use Movable Type’s built-in caching system for dynamic content. Movable Type’s cache entries are unique to a given relative URL excluding the request parameters. In the case of pagination, request parameters make all the difference on what should be cached. If you’re not following, this means that the following URLs are identical as far as the MT cache is concerned:

/
/?limit=10&offset=10
/?whatever_its_all_the_same_to=MT

Continue reading »

WiFi radio with LCD Finding a good, cheap sound card should have been as easy as ordering the one mentioned on the mighty ohm for $10, but I thought I’d save eight bucks and order the cheapest possible one on ebay. When it arrived, the right channel was totally non-functional and to say the sound quality was poor would be an understatement. It was impressive though, that anyone could manufacture and deliver to my door a brand new USB sound card even counting the defects for only two dollars. But that’s all beside the point.

Continue reading »

movable type close up Lately, I’ve been in the business of migrating between hosting providers. We’re moving away from the classic web host CentOS. The reason that CentOS became the web host OS of choice in the middle of the decade still eludes. I just imagine a some RHEL fan club being told to implement a linux web host solution with no budget and CentOS was the fruit of that effort. Our new host is of the new ultra-trendy VPS type. We chose slicehost on some recommendations from friends. I host my own blog and some other stuff on a VPS at vpslink.com. I fired it up with Intrepid Ibex (of course) and started migrating stuff over the Ubuntu way.

That’s all well and good, but the reason I’m writing this is because I found a great way to move our largest system which is a family of blogs related to fresnobeehive.com. We’d been using movable type to publish blogs since version 2.x, and the new systems are running 4.x. Back then, the only publishing option was to physically build every page for the entire system ahead of time. That system works great when you have only a few hundred entries, but when you start getting into the 10s of thousands of entries, static publishing begins to break down a little. It takes most of a day to publish the entire site if you make a global template change. Combine this with the fact that we’re attempting to redesign the blogs during the move, and we’ve got a lot to juggle.

Continue reading »

Since 2008, Debian has had a movabletype-opensource package available in the repository. That’s good news for people who like to make short work of system administration. Unfortunately, the package in the repository isn’t the very latest and greatest. Even so, there are big benefits to using aptitude to install movable type, the main one being that it automatically installs all the various dependencies and offloads your job (maintaining those packages) to someone else. Plus the file locations are well-thought-out. Rather than throwing everything right into the web root the package maintainer put the cgi files into a common cgi-bin folder, the shared files into /usr/shared, the perl modules into the shared perl library, and the configuration files into /etc.

Because I imagine I’ll be upgrading my install of MT from time to time, I wrote this script so I can be even more lazy in the future, and I’ll put it here in case anyone else wants to use it. It’s only been tested on a brand new Ubuntu 8.10 install and the MTOS-4.23-en.zip package.

Continue reading »