MySQL error 22 (when using alter table to add an index)

Today, I have spent a couple of hours attempting to do some analysis on a large table. I say attempting, because every time I tried to add an index to the table after importing it, MySQL would crap out, and CHECK TABLE would report "got error: 22 when reading datafile". Really weird stuff! Luckily for me, I managed to track down the cause, so I'm writing it down for the next time I run into this difficult to solve problem.

Sendmail on Development Machines

Lately, I've been working a lot with mail scripts, which may use PHP's mail() function, or in some cases may even talk directly to sendmail. In order to make sure I don't accidentally email any customers, I use Rob Allen's script to reformat emails so they always go to my mailbox, and nowhere else.

iOS Mail and Self-Signed Certificates

I've recently been getting warnings on my iPhone and iPad telling me that my email server is using a self-signed certificate. Now, normally this wouldn't be a problem, I'd just tap the button to "Trust" my certificate and carry on. Strangely, there is no longer an option to do this. I'm not sure when this changed, or if indeed it has changed.

There are a bunch of folks discussing it on the Apple Support Forums, with various fixes and workarounds, none of which worked for me. I did, however, find a way to fix my particular problem...

Plex with multiple networks

I have two Macs, and I tend to store most of my video files on the Mac Pro as it has much more drive space available. I also use Plex to stream videos to my MacBook which gets connected to the TV. Plex is a rather elegant solution, sporting an automated media library with images, synopses and more. There's also a remote app for iOS devices, allowing you to browse the libraries and start shows/stream them to your iOS device. Very smart.

Running MySQL (mysqld) as a user other than 'mysql' under Ubuntu 10.04 (Lucid Lynx)

On Monday afternoon, I upgraded my work machine's Linux install to Ubuntu 10.04 (Lucid Lynx). I've been working in Windows mostly for a the last few months, and keeping all my MySQL data in a TrueCrypt volume as sometimes I need to hold customer data, and we can't store it in plain text.

Relative URLs in Javascript - A Solution

I've previously written about absolute and relative paths in web development, and this follow-up post is here to show the method I've been using to get around the problem.

The secret sauce is the old HTML <base> tag. Simply output this in the <head> section of your template, with the href attribute set to the full URL of your site's root, then you can use a simple helper function like the one below to build full URLs in your javascript!

Relative and absolute paths in Web Development

I've been working on multiple computers for some time now, and there's one problem that keeps cropping up now and then, and sometimes when going from development to production, or when a folder changes name... Whatever.

The problem I'm talking about is relative/absolute paths in non-server-side processed files. For example, creating an AJAX loading image from a JavaScript file. What path should you use? "/images/file.gif" will point to the root, and "file.gif" will look in the current directory. The script doesn't always know the path relative to the current document, and it won't (easily) know what directory the images are in from the docroot. So what to do in this case?