Why is pandora’s business model not working

editWeb 2.0comments1 Comment »
August 4th 2009

pandoraDon’t get me wrong, I have been in love with pandora since its inception. This might just be my gripe.

Pandora has always had the song skipping limit in the past, which was fine if you understand the whole royalty pay-per-song arrangement the company had with the record companies. However, you could always get around by go to another station or another quick mix. Lately, the song skipping limit has become time restricted so it doesn’t matter if you switch station or create new quick mix. Another piece of news, pandora is also starting subscription for the “heavy users” who listen to more than 40 hours a month. The rate is not bad itself, 99 cents for the rest of month overage or upgrade to pandora one for $36, the premium non-ad pandora.

Once again, the reason for the overage charge and subscription is understandable. In the end, no one likes the big record company anyways, right? What it begs the question that pandora is not monetizing as well as they could. These are just some of the initial signs to come.

Here are some reasons why pandora’s business model is not working.

  1. It is at the mercy of the big record company. Unlike another popular free media provider Hulu which is formed/backed by major telecom corporations, pandora started out as a private venture, which limited its corporate backing and bargain power
  2. Its advertisement is not effective. Unlike hulu, which can advertise with 15 or 30 second video spot, pandora lacks the visual elements. People often ignore the ads and just continue to work, therefore making video ads ineffective. Furthermore, pandora is as equally popular on mobile devices, which lacks advertising potentials.
  3. Its lack of offering for upgrade to Pandora one subscription service. Pandora one offers ads free, a desktop application and 192 kb streaming quality. That’s good and all, once again, most computers have web browsers,  desktop app offers nothing new. Most people can’t notice difference between 192kb streaming quality from 128kb (or whatever quality it’s streaming on) unless you have high quality audio devices.

Here are some suggestion I have, of course what do I know?

  1. More effective advertisement, more radio style advertisement. Pandora has a huge listener base, if it can just figure out how to isolate and broadcast radio styled local ads for listeners in different geographic area, they can definitely generate more revenue. That way it can leverage its huge listener base better.
  2. Revenue sharing, sell songs. It can track users favorite songs, package them into “digital albums” and sell them to the listeners. That way the listeners can build a good song collection and come back to pandora and discover more. In the process Pandora can charge a percentage of the revenue of the sale.
  3. Add more features to the subscription service. For example, maybe they can offer songs that free users can’t listen such as remixes, live concert performances, etc.

In the end, it must strike the balance between maintaining its image of the free music provider, not alienate its free listener base. At the same time, it have generate enough revenue and profit to stay afloat.

Adding javascript to specific node/url in drupal

editDrupal / Open source development / phpcomments1 Comment »
July 28th 2009

This was in one of the module I’ve written in Drupal and I thought it would be useful to share.

The Problem: I wanted to dynamically add javascript file to a specific url under Drupal. The benefit would been that I did not have to include the .js file for the whole site therefore optimize the performance of site. Not to mention that it by including the javascript file in a specific url, it will not interfere with other scripts, etc.

To review, the function to add javascript in drupal is

drupal_add_js() (http://api.drupal.org/api/function/drupal_add_js/)

However, this function will add a javascript file or script to the head section on all of the drupal path/urls, making it clunky.

The Solution:


// The function passes in a parameter which is the url you want to check
// It will return true if the url the user is browsing matches the url you are trying to
// act on
function module_name_helper_is_page($check_url)
{
	global $base_url;

	$page_url = module_name_helper_get_curl_url();

	if(!stristr($page_url, $check_url))
	{
		return FALSE;
	}
	else
	{
		return TRUE;
	}
}

/*
 * This function simply returns the current url of the web page
*/
function module_name_helper_get_curl_url()
{
	$pageURL = 'http';
	if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
	$pageURL .= "://";
	if ($_SERVER["SERVER_PORT"] != "80") {
	$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
	} else {
	$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
	}

	return $pageURL;
}

To put it into action, say we wanted to only add a javascript file to the user registration page, here would be what it looks like. (By the way, module_name stands for the module you are writing)

if(module_name_helper_is_page($base_url . 'user/register'))
{
     drupal_add_js(drupal_get_path('module', 'module_name') .'/yourjavascript.js', 'module', 'header');
}

Cheers!

Custom 403 module on Drupal.org

editDrupal / Open source development / php / programmingcommentsNo Comments »
June 22nd 2009

custom_403_screen_shotThis is a module I have worked on a while back. I have recently had the time to finish it and it is now released and hosted on drupal.org, which is very exciting.

You can view the module project page here, to see a demo page, please visit here

The module was made with one thing specifically in mind, giving the users more information when they encounter a 403 on a website. Since drupal uses various role based node access privileges, I thought a module that provides custom information based on the roles allowed or disallowed on any specific node will be more helpful.

The module works with the content access module to give the visitors information on what roles are allowed to access the nodes and maybe the admins can also give more information on how to obtain these roles. Anyways, please enjoy the module, if you have questions and comments, please let me know

Cheers!

Add a Database

editprogramming / Visual BasiccommentsNo Comments »
June 30th 2008

Chapter3_Prog1_001
The first step in adding a database to visual basic project is going to Project -> Add New Item…

Select SQL Database

Right Click Tables -> Add New Table
Chapter3_Prog1_002
Add the colums and their data types

Primary key – foreign key relationship can be found under the menu-relationship
Chapter3_Prog1_003

After adding the database connection to the data source, you can now drag tables or do other manipulation with the data

Chapter3_Prog1_004
To download the source code for this program, click here

Lessons learned: code optmization

editphp / programmingcommentsNo Comments »
June 25th 2008

Have you ever written a piece of code that works, but the amount of redundancy and inefficiency drove you nuts? Always had the itch to go back and pretty it up? Well, that’s exactly what I did. I recently wrote a script for a people directory, it contained 3 parts

  1. An database storing the information of the people (i.e. name, states, country, etc etc.)
  2. the html input file (see example below)
  3. The data processor using PHP

input file (input.html)

The idea is that you will be able to select a last name or a state and find the corresponding results. For example, finding someone in the state of Virginia, finding someone with last name start with W, or a combination of both.

This was the first attempt for selecting the matching last name:

HERE

HERE

By using arrays, here are the code for selecting the matching last name and state and generate the SQL query

HERE

HERE