Writing a Google Voice App

Google Voice is great. Sure its not full of features yet, but seeing as last  week I got my invite after more than a year of waiting, I’ve been pretty excited to start using it. One thing that is lacking about Google Voice is an API. Chad Smith has developed a Firefox Plugin that integrates Google Voice with web browsing. That’s great, but I’ve migrated to Chrome and I’d like to see more applications developed to use the service. Chad has provided some basic documentation of how exactly to access and use Google Voice. You can read that here.

I’ve been playing around with placing calls from Javascript. It’s fairly simply all you need to do is post a JSON request to the proper URL. Below is basic code to make a call. It works, though not 100% of the time. (HTTP Requests to foreign servers are disabled in firefox and seem to be finicky in Chrome). Hopefully this jumpstarts some creative people out there to create a new app for Google Voice.

<script type=”text/javascript” src=”http://www.json.org/json2.js”></script>

<script type=”text/javascript”>

function call(){

var callURL=”https://www.google.com/voice/call/connect/”;

var data=”outgoingNumber=+1##########

&forwardingNumber=+1##########&subscriberNumber=undefined

&remember=0&_rnr_se=(grab this string in the google voice page source)”;

dialer = new XMLHttpRequest();

dialer.open(“POST”, callURL, true);

dialer.setRequestHeader(‘Content-Type’, ‘application/x-www-form-urlencoded;charset=utf-8′);

dialer.setRequestHeader(‘Referer’, ‘https://www.google.com/voice/#inbox’);

dialer.setRequestHeader(‘Content-Length’, data.length);

dialer.send(data);

}

</script>

The Freemium Model

The Freemium revenue model for web services is in essence an extension of the free trial. Sites like Pandora and Flickr have used this model as a supplemental revenue source. Freemium allows consumers to use a basic version of a web service for free, paid users get the added utility of an extended feature set. Most sites, like Pandora, allow paid users to remove advertisements in addition to the upgraded feature set. Pandora is on target to make around $40 million in revenue from its primary model of ad inventory sales. Pandora’s 10 million monthly users could generate a substantial amount of  additional income if just a small percentage opt in to the paid service option. Even at a meager $25 per year and a 2% user participation the company would be generating an additional $50 million in revenue.

The Freemium model is great for companies that have a stellar product. The better the offering, the more users will opt to pay for ad removal and additional features. One sector in particular that could benefit from employing this tactic is the News Industry. Already most news sites give up recent content for free, but require paid subscriptions to view archived content. I’d like to see the feature division between the two widen. News papers should allow paid users to interact with reporters, remove ads, and customize the content they see based on interests. If they did, in addition to offering great content, they could find away out of their financial issues. These companies need to look to the web to generate income, as more and more print news sources are being dissolved.

Free trials are great, but Freemium has the added benefit of keeping the users who like the service but won’t pay for it trafficking the site and viewing ads ($$$). Until someone finds a better way to monetize the internet, Freemium seems like a sure bet for great sites to generate revenue.

Freelist Twitter Experiment Update

The Craigslist Feed / Twitter experiment I implemented a while back has gotten more popular. To date there are 61 Followers (although I have gotten more emails from Twitter than that – is it an accurate count?)

Business and Individuals are following the updates, but what’s more interesting is that the more followers, the more new followers join. It seems there’s a Twitter snowball effect in play.

Why I can’t wait for Joomla 1.6

I was reviewing the Joomla 1.6 Feature roadmap today, Joomla 1.5 is a great tool, but Joomla 1.6 is really going to take open source CMS to another level.

Here is the list of new features and my thoughts on some of them:

  • Implement a new JForm library package [complete].
  • Implement a simple way of providing translation in JavaScript [complete].
  • Implement new controller dispatchers for more robust request routing [complete].
  • Implement a new access control system that needs to at least emulate what is in 1.5, allow adding of new groups and access levels, and allow you to set new “view” rules for at least articles [nearly complete].
  • Finally managing premium content will be a real and useful experience in Joomla, not just three levels anymore.

  • Implement and standardise several new event triggers [in progress].
  • Implement a JContent class that will be used by content plug-ins and views [in progress].
  • Upgrade to Mootools 1.2 [in progress].
  • Finish the new extension updater work [in progress].
  • Menu manager re-work — added since it’s broken in 1.6 [in progress].
  • Implement unlimited depth categories (but not multi-mapping).
  • This will be incredibly useful, for instance when making a finance site you can create North America->United States->Markets

  • Refactor the user management system and make it more extensible (eg, allow custom user fields).
  • No more third party fixes or CommunityBuilder reliance

  • Implement a comments system (including pings and track-backs).
  • Look out Wordpress blogging in Joomla just became much more realistic

  • Implement queued redirects (allows you to, for example, return to the previous page you were on after you edit something).
  • Refactor parameters and make them more extensible (for example, plugins could allow you to add additional custom parameters to articles).
  • Finish MVC-ing the Administrator components (we need lots of help here).
  • Implement CAPTCHA helpers for any form.
  • Implement systems whereby external authentication systems, such as LDAP, can map to our new Joomla user groups.
  • Re-implement the ability to select multiple categories for some views in com_content (was in 1.0, got dropped in 1.5).
  • At one point I developed a solution for this, but out of the box integration will be fantastic

  • Implement a database driven installation log.
  • Refactor JError.
  • Examine the PDF generation system in detail and see if we can make it work properly (otherwise we will look at dropping it if we can’t make it work well).
  • Localise the Invalid Token messages.
  • Drop the Polls component because the quality of that extension is pretty bad and there are much better third-part alternatives available.
  • Convert all layouts to semantic, XHTML Strict.
  • Convert of ini-based “params” fields to use JSON instead of INI format (huge technical and performance improvements).  Note, the language files will remain in INI format.
  • Web 2 Anyone?