Leveraging the Sharing Culture
It is inevitable that piracy occur. My age group, the college student or young professional, almost exclusively acquires media through illegitimate channels. It doesn’t make sense to pay for what we can get for free, especially when downloading requires less effort and gives more immediate gratification. A trip to the record store: 30 minutes of your time gone. A download of a new album: 5 minutes of computer time gone. So, the clear choice is casual music piracy, a fact of modern American youth culture that the RIAA has yet to properly address.

- The problem: not selling records.
- The solution: not selling records.
As piracy leads to the commodization of popular music, revenue cannot be generated from sale of albums. Rather, popular music will be created for relicensing and branding. Commercial deals, inclusion in movie soundtracks, elevator music, radio royalties will be the primary source of income for records. Eventually there will be a “song” or “band” of Coca Cola company, ties between musicians, labels, and other corporations that deliver content to the public. It is these ties, not the content itself, which can be negotiated for money.
Conversely, selective cooperation with music piracy could lead to labels and artists reaping greater profits. As the revenue a song or album brings in becomes tied to its popularity, leaking a hot single before an album release becomes smart. Take, for example, the widely-released new single from Justin Timberlake, Sexy Back. It was released on MySpace, leaked to the torrent sites, and played all over the radio. While releasing singles before albums is not a new strategy, letting the internet believe they’ve stolen something hot, secret, and new will improve its appearance with the masses.
A song sampled in stolen solitude seems a lot better than something the industry is force feeding its market.
Bandwidth & Connections Limiting: A How To Guide for Linux
I wanted to host for my brother the latest WoW patch, but at a hefty 450 MB, I didn’t want to blow all my bandwidth on it either. I am setting a limit for the download at 2.5 TB of bandwidth, and limiting it to 5mbs at 10 connections a second. My hardware is RHEL 4 running on a P4 with Plesk 8. In the guide to follow, you’ll see a few steps that wouldn’t be needed on a non-plesk system. To setup bandwidth limiting for the host, we need to be able to compile a new apache module against our system, and then install and configure it.
Step 1: The prereqs
First I needed to setup a yum repository for FC4. This can be accomplished by issuing an RPM command:
rpm -ivh http://rpm.livna.org/livna-release-4.rpm
Now that you can access the RPM packages, we need to install http-devel using yum:
yum install httpd-devel
If all went well, we can now extract, compile, and install mod_cband for apache:
cd /tmp
wget http://cband.linux.pl/download/mod-cband-0.9.7.4.tgz
tar xzvf mod-cband-0.9.7.4.tgz
cd mod-cband-0.9.7.4
./configure
make
make install
If all went well, restart apache with the new module (you can check httpd.conf to make sure the module is going to be loaded):
/etc/init.d/httpd restart
Step 2: Configuration
Here’s where the Plesk part gets annoying. We can’t just edit our vhosts file, because plesk writes over it all the time. Instead, we edit a /home/httpd/vhosts/*/subdomains/*/conf/vhost.conf file. Mine looks like this:
CBandScoreboard /var/www/scoreboard
CBandPeriod 4W
CBandDefaultExceededCode 509
CBandLimit 2500G
CBandSpeed 5000 5 10
CBandRemoteSpeed 1600 3 1
<Location /cband-status>
SetHandler cband-status
</Location>
<Location /cband-status-me>
SetHandler cband-status-me
</Location>
What does this mean? (1) Use /var/www/scoreboard to log usage and limits (2) Reset the limit count every 4 weeks (3) Throw a 509 error when the limits are exceeded (4) Allow 2.5TB per period (5) Allow 5mbs with 5 requests a second and 10 connections at a time oeverall (6) Allow 1.6mbs with 3 requests a second and 1 connections at a time per client (7) Allow us to access a page at /cband-status to view the status.
You’ll also need to issue commands to make the scoreboard directory, and to allow apache to own it:
mkdir /var/www/scoreboard
chown apache:apache /var/www/scoreboard
Finally, Plesk requires you to inform it of your work:
/usr/local/psa/admin/sbin/websrvmng -u --vhost-name=yourdomain.com
If you restart Apache now, everything should work!
/etc/init.d/httpd restart
Step 3: An Example
You can take a peek at my status page right now if you’d like. It looks a bit like this:

Update: Fixed a little formatting.
Azureus Torrent Download Speed Tips
If your torrents are downloading too slowly and you want to improve your download speed in Azureus, you’ve come to the right place. Azureus is a bittorrent client, namely, a program you can use to download files at high rates across the internet from a variety of peers. It’s a p2p (peer to peer) filesharing program, and may get you in trouble with legal authorities (RIAA, MPAA) if you use it illegally. However, it has plenty of non-infringing uses, as well.
Today I downloaded a torrent at 1.12 MB/s:

On a regular 10 Mb/s LAN that’s the best you’re going to be able to do, but only if your bit torrent program is configured properly. There are a few things you can do to improve performance in Azureus, and here they are:
1) Uncap the Windows XP SP2 Connections Limit
Service pack 2 limited the TCP/IP stack to 10 half-open connections–there rest are queued–to reduce virus spread rate. Unfortunately, this cripples a p2p program. Open those connections with this patch: EvID4226Patch223d-en.zip. Install at your own risk, but it works great for me with the limit increased from 10 to 100 or 200. You could go as high as 500 if you wanted, but that might be overkill.
2) Setup Port Forwarding
You need a path from your p2p program to the peers, and if you’re using a home firewall, make sure you forward the port that Azureus uses to your computer. This tutorial will help you–you can find the find the Azureus port in the first Options screen:

3) Setup Advanced Network Settings
Go to Options->Connection->Advanced Network Settings. You’ll see a screen like this:

You want a lot of simultaneous connections, so set the “max simultaneous outbound connection attempts” field to something just under what you set the Windows XP connection limit to in the hack in #1. I had 100 XP connections, so I set 64 in Azureus.
4) Upload Transfer
Go to Options->Transfer. You’ll see this screen:

You should set the “global max upload speed” 100-300KB/s, so that you can spend most of your connection bandwidth on downloading, and not uploading. However, the bit torrent protocol requires you to upload, so you should not set this less than 100 KB/s unless you’re on a very slow connection.
Additional Resources