Unsigned Musician Sean Fournier Draws Over 25,000 Downloads in One Weekend

December 2nd, 2008 1 Comment »

FrostWire™ is positively on the news this morning showing how P2P can achieve great things when artists have an open mind when it comes to sharing some of their work for free.

As of FrostWire™ 4.17.0, we can promote legal content, or important information using the FrostWire™ welcome screen. We’ve vowed to never use this screen for spam or evil purposes of any kind, only to help content creators of all kinds (musicians, film makers, writers, software programers, photographers, video game shops and independent professionals) that are willing to share some of their work for free, or under creative commons licenses get their message across our ever growing network.

Sean Fournier is the first musician to do so, in only 4 days his 6 track album “Oh-my” was shared via FrostWire™ by over 25,000 users, at the time of this writing the download count by the torrent tracker is 27,923, saving Sean almost 1 Terabyte of data sent, plus having his music on tens of thousands of computers and who knows into how many portable music players.

You can read the full story on FrostClick.com, our initiative towards the distribution of 100% free and legal content over FrostWire™.

Here’s a press release we found this morning on the news:

Milford, CT (PRWEB) December 2, 2008 — Musician Sean Fournier harnesses the power of Peer-to-Peer networking to distribute his free album, ‘Oh My’, to hundreds of thousands all over the world via FrostWire’s welcome screen. Within the first weekend, this exposure returned over 25,000 complete downloads for this independent singer/songwriter.

sean_fournier_featured_frostwire_torrent_download
FrostWire Welcome Screen Featuring Sean Fournier

Spread it like the plague.
Fournier’s ‘Oh My’ is the first free album download to be featured on FrostWire’s Welcome Screen, which is a new feature designed to help musicians and content owners share their media for free on the FrostWire network.

‘Oh My’ is a six-track album which was created to be 100% free. Sean encourages his listeners to download it, share it, give it friends and family - and do anything within their power to “Spread it like the plague.”

Aside from it’s recent exposure on FrostClick.com, listeners can get their hands on ‘Oh My’ at Sean Fournier’s Official Website.

If you’re a professional content creator willing to share some of your work for free to get more exposure and thus increase your sales, contact us at FrostClick.com

Related Links

Sean Fournier’s Blog - FrostWire related Post #1

Sean Fournier’s Blog - FrostWire related post #2

FrostClick.com - Sean Fournier’s “Oh My” - A great Free Album

Leave a Reply

Geek T-Shirt Collection #5 - Last.fm

December 2nd, 2008 Add a Comment »

This T-shirt I got thanks to my wife, it was sitting at their office for some reasons I should probably not disclose.

The thing is that I’ve been a fan of last.fm for a very long time (my account says it has 5800 plays since 2005) and I wear this t-shirt with a lot of pride.

I actually had the chance to meet Michael Breidenbruecker one of the founders of Last.fm in 2006 during the Plone code-sprint in Austria. Michael and his team (some of which I also met during that sprint) are now working on RJDJ, a very interesting music application for the iPhone.

About Last.fm
From Wikipedia:

Last.fm is a UK-based Internet radio and music community website, founded in 2002. It claims over 21 million active users based in more than 200 countries. On 30 May 2007, CBS Interactive acquired Last.fm for £140m ($280m USD).

Using a music recommendation system called “Audioscrobbler”, Last.fm builds a detailed profile of each user’s musical taste by recording details of all the songs the user listens to, either on the streamed radio stations or on the user’s computer or some portable music devices. This information is transferred to Last.fm’s database (”scrobbled”) via a plugin installed into the user’s music player. The profile data is then displayed on the user’s profile page. The site offers numerous social networking features and can recommend and play artists similar to the user’s favourites.

Users can create custom radio stations and playlists from any of the audio tracks in Last.fm’s music library, and are able to listen to some individual tracks on demand, or download tracks if the rights holder has previously authorised it. Registration is required to acquire a profile but is not necessary to view any part of the site or to listen to radio stations.

Leave a Reply

Python Script to Update Wordpress in One Step

November 26th, 2008 Add a Comment »

During the past week, I think I had to update all my wordpress instances twice, and it’s become really annoying doing this manually. I’ve written a python script which I’ll share with you.

How I keep my wordpress updated by hand
I tend to keep my wp-content folder outside of my wordpress installation for 2 reasons:

1. I don’t like to loose my themes, plugins and customizations
2. I like to keep all my customization changes under subversion

So, if I had my wordpress installation say at:
/home/user/public_html/blog

I’d keep my wp-content folder for that here:

/home/user/public_html/wp-content-for-blog

So when I upgrade my blog, I always remove the original wp-content folder that comes along wordpress, and I symlink my hard worked on wp-content folder that lives outside to the freshly unzipped wordpress folder.

user@machine:~/public_html/blog$ ls -l
...
lrwxrwxr-x 1 user www    54 2008-11-26 09:29 wp-content -> /home/user/public_html/wp-content-for-blog
...

So what I endup doing all the time, is downloading the latest.zip to ~/public_html/, it will unzip under ~/public_html/wordpress, and then I’ll copy the current ~/public_html/blog/wp-config.php to ~/public_html/wordpress, then I’ll remove the default ~/public_html/wordpress/wp-content and symlink the outer wp-content with all my customizations, themes and plugins to it. Once done, I’ll make a backup of the old wordpress folder, and then I’ll rename wordpress folder to the name of the blog folder, and it’s all done.

It’s simple, but when you have to do it for 5 blogs, every week, it’s not fun anymore.

The Update Script

So here’s a script to do it in one step. If you’re not using my symlinked technique, this will do it for you, you only need to specify the full path to the folder where you want to keep your current wp-content folder outside the new installation before you apply the update, and the name of the folder where your current blog lives. The script below will have its configuration variables towards the beginning set so that they are in line with the example I’ve been talking about.

#!/usr/bin/python
#########################################################################################
#
# upgrade_wordpress.py - Script to automatically upgrade your wordpress installation.
#
# Requirements:
#   - Python 2.4 or older
#   - Wordpress should already be installed
#   - CURL (sudo apt-get install curl)
#
# Author: Angel (Gubatron) Leon
# LICENSE: See the GPL2 license.
# 2008
#########################################################################################
import os

#########################################################################################
#Config (relative to the folder where this script will be run from)
#########################################################################################

#The current folder where the blog lives
BLOG_FOLDER='blog'

#
# The first time you run the script, it will try to make a copy of your
# current wp-content folder outside. Copy here the location of where
# the wp-content folder with your themes and plugins should exist.
#
# After it unzips, it will remove the default wp-content folder from
# the new installation, and it will symlink the external wp-content
# That way you don't ever have to worry about loosing your customizations
# and plugins.
#
WP_CONTENT_OUTSIDE_COPY_FOLDER="/home/user/public_html/wp-content-for-blog"

#This is where a backup of your current blog will be
BLOG_FOLDER_BACKUP_FOLDER=BLOG_FOLDER+'.old'

#Where to download the wordpress latest.zip from
WORDPRESS_LATEST_ZIP_URL='http://wordpress.org/latest.zip'

#### DO NOT MODIFY AFTER THESE LINES ####

def downloadWordpress(url=WORDPRESS_LATEST_ZIP_URL):
    if os.path.exists('latest.zip'):
        print "Removing old latest.zip"
        os.remove('latest.zip')

    #Try to download with CURL
    print "Attempting to download latest.zip from wordpress.org"
    os.system('curl %s -o latest.zip' % url)

    if not os.path.exists('latest.zip'):
        os.system('wget ' + url)

    return os.path.exists('latest.zip')

def dirExists(dirName):
    return os.path.exists(dirName) and os.path.isdir(dirName)

def backupBlog(currentBlogFolder=BLOG_FOLDER,
               wpContentOriginalFolder=WP_CONTENT_OUTSIDE_COPY_FOLDER,
               backupFolder=BLOG_FOLDER_BACKUP_FOLDER):

    #Remove any previous backups
    if os.path.exists(backupFolder) and os.path.isdir(backupFolder):
        print "Removing previous backup folder"
        os.system('rm -fr ' + backupFolder)

    #Copy the current blog folder into a backup folder just in case.
    #We won't do any database backups for now.
    print "Creating new backup folder"
    os.system('cp -r %s %s' % (currentBlogFolder,backupFolder))

    #Check for the copy of wp-content outside the blog, if it doesn't exist
    #we'll make it for the first time.
    if not dirExists(wpContentOriginalFolder):
        print "Creating outside copy of wp-content"
        os.system('cp -r %s %s' % (os.path.join(currentBlogFolder,'wp-content'),
                                   wpContentOriginalFolder))

    #Copy the latest wp-config.php outside to the current folder
    print "Copying your latest wp-config.php outside"
    os.system('cp %s .' % (os.path.join(currentBlogFolder,'wp-config.php')))

    backupFolderExists = dirExists(backupFolder)
    wpContentFolderExists = dirExists(wpContentOriginalFolder)
    configFileExists = os.path.exists('wp-config.php')

    return backupFolderExists and wpContentOriginalFolder and configFileExists

def upgradeBlog(currentBlogFolder=BLOG_FOLDER,
                backupFolder=BLOG_FOLDER_BACKUP_FOLDER,
                url=WORDPRESS_LATEST_ZIP_URL,
                wpContentOriginalFolder=WP_CONTENT_OUTSIDE_COPY_FOLDER):

    if not downloadWordpress(url):
        print "Could not download latest.zip, aborting."
        return False

    if not backupBlog(currentBlogFolder,wpContentOriginalFolder,backupFolder):
        print "Could not backup blog or wp-config.ph, aborting."
        return False

    if currentBlogFolder == 'wordpress':
        print "The current blog folder cannot be 'wordpress, aborting."
        return False

    #1. If a wordpress/ folder exists, wipe it.
    if dirExists('wordpress'):
        print "Removing old wordpress folder"
        os.system('rm -fr wordpress')

    #2. Unzip new copy
    os.system('unzip latest.zip')

    if not dirExists('wordpress'):
        print "Could not unzip the wordpress installation, aborting."
        return False

    #1. Copy wp-config.php into the new installation
    os.system('cp wp-config.php wordpress/')

    #2. Remove the default wp-content folder
    os.system('rm -fr wordpress/wp-content')

    #3. Symlink the original wp-content that lives outside
    os.system('ln -s %s wordpress/wp-content' % (wpContentOriginalFolder))

    #4. Verify symlink was created
    if not (os.path.exists('wordpress/wp-content') and os.path.islink('wordpress/wp-content')):
        print "Could not create symlink to wp-content, aborting."
        return False

    #5. Move original folder to folder.delete, and make this wordpress folder the current folder.
    os.system('mv %s %s.delete' % (currentBlogFolder,currentBlogFolder))

    if not dirExists(currentBlogFolder + ".delete"):
        print "Could not rename current folder for later deletion, aborting."
        return False

    #6. Rename the new installation as the current blog
    os.system('mv %s %s' % ('wordpress',currentBlogFolder))

    if dirExists('wordpress'):
        print "ALERT: The wordpress folder still exists."
        return False

    if not dirExists(currentBlogFolder):
        print "ALERT: The blog doesn't exist, recover from the backup folder %s please" % (backupFolder)
        return False

    #7 Cleanup
    os.system('rm -fr %s.delete' % (currentBlogFolder))

    return True

if __name__ == '__main__':
    upgradeBlog()

Requirements

  • shell access to the machine where you have your wordpress installed
  • a python interpreter installed
  • curl (sudo apt-get install curl) to download the zip. If you don’t have it it’ll attempt to use wget
  • Installation

  • Right outside your wordpress installation folder, create a new file called upgrade_wordpress.py
  • Copy and paste the script inside that file
  • Edit the configuration variables to point to the name of your wordpress installation folder, and give it a full path to where you want to keep your wp-content folder (including the name of the folder, so if you want to name it the same way, you could do for example /home/user/wp-content and it’ll be saved right under your home)
  • Usage:

    python upgrade_wordpress.py

    The script is very fault proof, it will always try to abort in case something is not going the way it’s expected. At the end of the day it’ll also leave a backup copy of your current blog in case something goes bad, you can always recover.

    Leave a Reply

    Cola: Real-Time Remote Pair coding

    November 25th, 2008 Add a Comment »

    This is not new, but I hadn’t seen it, so maybe you didn’t either, I’ll let the video speak for itself, I’m speechless.

    Thanks to Daniel Chang for sharing this with me.


    Cola: Real-Time Shared Editing from Mustafa K. Isik on Vimeo.

    Leave a Reply

    Geek T-Shirt Collection #4 - SpamTShirt.com/”Healthy Semen”

    November 25th, 2008 Add a Comment »

    Geek T-Shirt - SpamTShirt.com - Healthy Semen (front)

    This is one of the oldest self made t-shirts. I was constantly pissed at the amount of spam email I was receiving, and I thought some of the subjects were really eye catching for t-shirts.

    For a few months I thought maybe I could make money on the creativity of spammers by mocking them with t-shirts, called, SpamTShirts, but nobody caught on my joke, and I desisted from the business idea.

    Geek T-Shirt - SpamTShirt.com - Healthy Semen (back)

    If you can appreciate it, the icon/logo of the website is a Trash can, honoring junk mail.

    I believe I made this t-shirt at cafepress.com

    Leave a Reply

    My new XBOX Live Avatar

    November 25th, 2008 Add a Comment »

    Tada!


    That’s me on Xbox live, my gamer tag is of course “GUBATRON”

    Check out the Xbox Live Upgrade experience screenshot by screenshot.

    What’s your avatar like?

    Leave a Reply