Boost Wordpress Audio w/ Amazon S3

The Simple Storage Service (S3) from Amazon is an easy way to serve information. Its high availability and low cost make it a no-brainer when it comes to hosting.

Recently, a friend moved his website (the astropope) from my server to that of a hosting company (for which he presently works). Along with his account comes 3 GB of storage, except he currently uses about 5 GB. To help with the transition, we decided to move the majority of content over to S3.

In order to do this, we got an account, uploaded everything, made a DNS record, and then ever-so-slightly modified a Wordpress plugin.

The steps we took are detailed for your convenience:

1. Sign up for an S3 account.

2. Download, install & configure the S3Fox plugin for Firefox.

3. Amazon uses a bucket as a means for organizing information. You may refer to a bucket as a unique, top-level directory. Many directories may exist within a bucket, but the most absolute of those contained within is a ‘bucket’. Create a bucket named s3.[yourdomain].com. In that bucket, make an audio directory. So now we have something along the lines of s3.[yourdomain].com/audio.

4. Using S3Fox, upload your mp3 files to the newly created audio directory within the bucket.

5. Right-click the audio directory and specify an ACL with read access for public requests. Note: Without specifying an ACL w/ public read access, it won’t work.

6. Within Wordpress, install the Audio Player plugin.

7. Once installed, modify the plugin as such:

edit audio-player.php

Under // Options Default add:
add_option(’s3_url’, ”, “Amazon S3 URL”, true);

Under // Global variables change $ap_audioURL to:
$ap_audioURL = get_settings(’s3_url’) . get_option(”audio_player_web_path”);

Under // Update plugin options add:
update_option(’s3_url’, $_POST['s3_url']);

edit options-panel.php

<tr>
<th width=”33%” valign=”top”><label for=”ap_audiowebpath”>Audio files directory:</label></th>
<td>
<input type=”text” id=”ap_audiowebpath” name=”ap_audiowebpath” size=”40″ value=”<?php echo( get_option(”audio_player_web_path”) ); ?>” /><br />
Recommended: <code>/audio</code>
</td>
</tr>
<!– snipit starts here –>
<tr>
<th width=”33%” valign=”top”><label for=”s3_url”>Amazon S3 URL:</label></th>
<td>
<input type=”text” id=”s3_url” name=”s3_url” size=”40″ value=”<?php echo( get_option(”s3_url”) ); ?>” /><br />
<?php $string = get_option(”siteurl”);
$url2 = substr($string, 7);
echo “(e.g. http://s3.” . $url2 . “)”; ?>
</td>
</tr>
<!– snipit ends here –>

Alternately, you can upload/replace with these pre-modified files:
wp-content/plugins/audio-player.php
wp-content/plugins/audio-player/options-panel.php
(be sure to rename from .ph_ to .php)

Login to Wordpress, then go to Settings -> Audio player and add http://s3.[yourdomain].com to the new field below the audio files directory.

8. Add a cname (alias) at your domain registrar:
S3 -> bucketname.s3.amazonaws.com
(e.g. s3.[yourdomain].com.s3.amazonaws.com)
where S3 points to bucketname.s3.amazonaws.com. (TTL of 1 hr is acceptable.)

9. Post a song according to the directions for the plugin.

Did it work for you? Did you run into any trouble? (I’d be happy to help you set this up if you’d like assistance.)

Setup Openfire Chat Server and Configure Asterisk-IM Plugin

In this session, I will show you how to setup the Openfire real-time collaboration server from Ignite Realtime. This free, open source application is a great way for organizations to leverage chat capabilities.

Also, we’re going to configure the Asterisk-IM plugin to interface with our Asterisk PBX. This plugin can be configured to display Caller ID information, and view the phone status of other users.

We’ll be using Spark as the chat client, also from Ignite Realtime.

Installing Openfire on Fedora is simple:

rpm -ivh openfire-3-5-2-1.i386.rpm

When the transaction has completed and Openfire has started, access http://hostname:9090 to finish the remaining portion of the setup process.

In this demo, I used a domain name for the system that would be considered inadequate in most cases. It is always best to use the FQDN (fully qualified domain name) of your system. Also, don’t forget to allow client traffic through your firewall (TCP 5222-5223), with each client as well. Did you run into configuration issues or problems? How did this install go for you?

Create an Encrypted Flash/Removable Volume With TrueCrypt 6

I constantly push to implement a solid backup plan for clients. Some opt to get their data off-site, which is always a smart thing to do. You can’t ever have too much backup. Only thing is–there’s no easy way to get a 30 gig Exchange database off-site regularly over a WAN connection… unless you use an external disk. For this, I carry my trusty Seagate, but what if it fails? What if it were lost or stolen? Huge amounts of private information could be exposed. NOT good. We need security.

I copy these super sensitive files to an encrypted volume on my external disk. I created this volume with TrueCrypt, a free encryption utility that runs on Windows, Linux, and Mac OS X.

There are a few ways to go about encrypting a removable volume. (Before we begin, make sure you’ve downloaded and setup TrueCrypt.)

Part 1: Create an encrypted container on a flash drive

This works pretty good on flash drives, though a few caveats exist. First of all, Windows XP & Vista don’t support multiple partitions on removable drives. Because of this, we must create a container file that resides on one partition.

Note: Some flash drive manufacturers (such as Lexar) have created utilites that allow you to set the removable media bit, effectively fooling windows into thinking the flash drive is a real hard drive. Unless you know of a way to do this on your flash drive, a container file is the way to go.

Part 2: Create an encrypted volume on an external disk

Notice how we’ve previously created one large encrypted partition, and one smaller unencrypted partition. This can be done within the Disk Management subset of Computer Management (when right-clicking My Computer > Manage). The traveler files will live on this smaller partition.

Any type of TrueCrypt volume will secure your data with very strong encryption (using a password of at least 20 characters). Attempting to break this would bring the best cryptographers and supercomputers to certain resignation. This is real government-grade security (and certainly good enough for 007).

Make Firefox 3 Swap Memory When Minimized

Ever have nine Firefox windows open, with 5+ tabs in each?  This could easily chew up 250 megs of memory or more, even if you suddenly reduce to one window with no tabs. On a system with less than 1 gig of memory, these are valuable system resources we’re talking about here.

There is a setting that will make Firefox swap its memory when minimized, which, if you’re low on memory to begin with, could mean a tremendous performance boost.

In Firefox’s location bar, type: about:config and agree to clear the warning message.

Right-click anywhere and create a new boolean value called:

config.trim_on_minimize

Then select true for the value. Click Ok and restart Firefox.

When firing up the browser again, we should see immediate improvements in memory consumption when the browser is minimized, as the memory it ties up will be swapped to the disk instead.

Delete MySQL Rows Older Than Date

I ran into a problem recently where I needed to delete all rows in a MySQL table that were older than three months. This I was able to accomplish with the following statement:

DELETE FROM [table] WHERE [column] < DATE_SUB(NOW(), INTERVAL 3 MONTH);

Substitute table and column, and a proper date option. The date_sub function subtracts a time period from the date specified. In this statement, NOW() grabs the current date from which INTERVAL 3 MONTHS is subtracted (along with the < operand).

Next Page »

Add this site to your Firefox Search Bar

Recent Entries

Categories

Archives

This site is optimized for Firefox.