Life could be a dream

March 3rd, 2006

Illudium is now on Dreamhost. They give me an insane 1 TB of bandwidth and 30 GB of storage. It's so much bandwidth that I haven't bothered to route media requests through Coral yet. Here's the interesting part for podcasters: Every week, I get another 160 MB of storage and another 8 GB of bandwidth. Must be expensive, right? Wrong. It's $9.95 a month (paid annually). You can save even more by signing up for two years. But it gets better. I have a discount code for you that will save you $75 on your order. Just use the code ILLUDIUM75 when you place your order (you'll see a box for it in the checkout). Do note that the 1 TB and 30 GB is a special offer that could end at any time. If you're not sure, take advantage of their 97 day money-back offer.
I don't think there could be an easier way to set up your own blog. One click in the control panel installs WordPress. Click the WordPress setup URL, hit the button, and it's done.

Podcasting should not be expensive - Part 3

November 25th, 2005

In Part 2, I set up my site's .htaccess file to redirect requests from my media directory to the Coral Content Distribution Network. As I monitored my logs, I saw that Coral requested my first podcast about twice a day. That's because my site wasn't telling Coral how long it was safe to cache the file. Coral could also request the file more often than expected if it was flushed from the cache by other files, but there's nothing I can do about that.

Coral is sort of an opt-in cache, in that I am redirecting my users to the cache. There are many other caches on the web though. ISPs use them to speed up their customers' access to popular sites. Many businesses that use a proxy server for web access also turn on the proxy's cache, so that when everyone goes to the popular sports and news sites they doesn't clog the internet connection. This type of cache is called a transparent cache because it sits between the end user and the internet and substitutes cached resources for requested remote resources. There's nothing you can do about these caches, but you can help them help you by telling them how long your files are valid.

Once again, an .htaccess file comes into play. I put the following .htaccess file in my media directory:

ExpiresActive On
ExpiresDefault "access plus 1 year"

The first line turns on expiration headers. The second line sets the default expiration time for files in the directory to the time of last access plus one year. You could use 1 month or 1 day if you're more comfortable with that. I don't expect the files in my media directory to change. I didn't see any point in setting the expiration any longer than a year, because it's doubtful any cache would keep a file that long if nobody requested it. I also expect people to download files from links on my pages or feeds, so if I do need to replace a file, I can simply rename it and change my link. You can check that the expiration headers are being sent by using a program that shows you the headers. Most download managers do this. You should see something like this in the headers:

cache-control: max-age=31536000
expires: Thu, 23 Nov 2006 00:17:49 GMT

Note that the time on the first line is in seconds. You may need to ask your hosting provider to include the mod_expires module so you can use expiration headers. So far, my host Dragonfort has had everything I've needed available. Here's a link to the documentation for mod_expires on the Apache website.

You might wonder why I haven't set up expiration headers for things like my main page. I will, but there's something else I need to do first. Also, I said above that I don't expect the files to change, but I didn't say they were going to stay on my server. Stay tuned.

Podcasting should not be expensive - Part 2

November 18th, 2005

Popularity can be both a blessing and a curse. It's great to have thousands of subscribers—Until you get the bill for your bandwidth. I don't want Illudium to become about raising money to run To avoid that I'm using the Coral Content Distribution Network. Coral is a free caching service that offloads your file requests to a geographically distributed array of cache servers. The result is that your users don't have problems getting your files and you don't get problems when your ISP bill arrives. To use Coral I just added the following to my .htaccess file:

# BEGIN CoralizeDirectories

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} !^CoralWebPrx
RewriteCond %{QUERY_STRING} !coral-no-serve$
RewriteRule ^media/(.*)$ http://%{HTTP_HOST}$1 [R,L]

# END CoralizeDirectories

Make sure this is outside of the # BEGIN WordPress/# END WordPress section.
This comes almost straight from the example at The main change is that I used %{HTTP_HOST} instead of, so this redirect isn't specific to my site. The two conditions are necessary to ensure that requests from the cache servers themselves aren't redirected. My media files are in This rule redirects all requests for files in the media directory to the cache address. For example, will redirect to Try it if you don't believe me. The file is a minute of silence, so you might want to kill the download after you see the redirect. You should be able to adapt this if your podcasts are in a directory as mine are by changing the rewrite rule to match your directory. I don't know how to set it up for a subdomain (e.g. Perhaps someone who uses subdomains can comment on this. I'm not going to write a how-to on something I haven't done. Test your downloads after you set Coral up by using something that will show you the redirects. Most download managers do this.

Podcasting should not be expensive - Part 1

November 15th, 2005

Update: Dragonfort is no more. I currently recommend Dreamhost. See my "Life could be a dream" post for more information.

I hate to see podcasters talking about their hosting and bandwidth charges. Yes, it can be expensive, particularly if you use a one-stop solution. Here's why I feel bad: My charges are $1 a month. My host is One dollar gets me 500MB of storage and 10GB of transfer. I don't expect to ever hit that, because I'm using The Coral Cache, and older podcasts will be moved to Dragonfort is not a ready-to-use blog. You get a virtual host with MYSQL, PHP, and other requisite stuff. It's up to you to install Wordpress or whatever you want to use. It wasn't hard to do, and I can't say I used any geek-fu more advanced than using FTP and following directions until I had been up and running for 4 days and decided to start messing with the footer and the sidebar. If folks are interested, I'll approach James at Dragonfort about the possibility of me creating a template so that you can request Wordpress preinstalled (or install it with one click). If you sign up, I'd appreciate if you mentioned

Bad Behavior has blocked 161 access attempts in the last 7 days.

Creative Commons License