Archive for September, 2008

7 Useful Applications on Facebook

Thursday, September 11th, 2008

Facebook Logo (tm) Facebook has been continually altering the face of their website, bringing us closer to the launch of their redesign. One major change recently has been the location of the application presence, moving from the profile to tabs, the left hand navigation to the header and now to the status bar. As Facebook moves towards a more OS like experience, it made me wonder, just how many applications out there add any true value to the users beyond entertainment? This list is applications I found interesting in my survey of successful (according to Facebook) apps to be interesting. These applications are not focused on entertainment. So immediately quizes, games, poking and wall applications are out.

Note: I also did not include applications that I have worked on, you should evaluate those yourself.

CausesCauses
This is a fantastic application for finding and spreading the word about a cause through grass roots organizing. Any non-profit in the US (and abroad) should be taking note. The application itself is simple. You create a profile of the causes you support. Support is more loosely defined that it would be by a traditional non-profit. For example, to be a member/supporter of most non-profits, you need to contribute money. However, with causes, anyone can be a supporter - significantly increasing the likelihood for adoption. Then you tell your friends (if you wish) about it. You can contribute money directly as well and Causes keeps 4.75% of the fee to cover bank costs etc. The money is handled by NetworkForGood.

Visual BookshelfVisual Bookshelf
The application is part of a suite of applications by LivingSocial including Reading Social (aka Visual Bookshelf), Tune Social, Reel Social, Dining Social, Gaming Social, and Brew Social (aka Drinking Social). The application suite provides folks with a clean interface for managing their digital library (or movie collection etc). The value here is in the sharing. LivingSocial is quickly creating a huge asset tracking system as well as allowing you to see what your friends are reading etc. Helpful conversation starters if you’ve read some of the same books etc. The app tightly integrates the Amazon affiliate engine. This application adds a nice filter to the raw Amazon dataset even if a search for a popular book returns all the editions as matches. If you like to read - I highly recommend checking out this application.

Birthday Calendar Birthday Calendar
This app isn’t all that complex and doesn’t do all that much, but it provides functionality that is just handy. It provides a simple calendar view of the next 2 months of birthdays for people you know on Facebook. You can also add birthdays of other people manually - although I have Apple’s iCal for that. The application provides ample time to send a physical card through the mail. Unlike the Facebook newsfeed notification that might let you miss someone if you take a 3 day vacation from Facebook. Developers if you’re listening - an iCal export filtered by Friend List would be handy…

Where I\'ve BeenWhere I’ve Been
Much like the LivingSocial applications, this app allows you to keep a digital log of places you’ve visited. Furthermore, it provides a nice interface for exploring the globe. Noticably missing is a nice way to research other locations. I’d love to get a nice feed of what others who match my demographics or are in my friend list think of Ft. Lauderdale for example. The application does what it promotes well and despite heavy promotion of the Travel Channel is a good application.

PicnikPicnik
This web based photo editor aims to give you basic photo retouching tools right in the facebook experience. The app lets you correct red-eye, adjust colors, and add silly borders etc. I still prefer using a desktop application for real adjustments. However, this is really handy for tweaking the photos you’ve uploaded from your camera phone directly to Facebook. Picnik is also a free standing website and they’ve integrated the application with Flickr as well.

Lil Green Patch (Lil) Green Patch
I had a hard time adding this application to the list but I have a particular soft spot for saving the planet. At it’s heart it’s a viral gifting application. However, there’s a twist - they donate money to save the environment. They appear to have contributed via Causes to the Nature Conservancy and have contributed $54,560 so far. However, I wasn’t able to find any sort of balance sheet for them and there are a significant number of ads on their site - including a huge integration with OfferPal media. I would expect they gross at minimum $20K per month so clearly there’s a huge expense to running their business - don’t feel too good about yourself using this app.

Are YOU Interested Are YOU Interested?
I’m not one for online dating, but if I weren’t married with children, I’d probably give this application a try. The premise is simple. Rate people attractive. If they rate you attractive as well, you’re given the opportunity to connect. Quite possibly the simplest dating application around.

Is there a great non-entertainment focused application I’ve missed? Leave it in the comments and I’ll check it out.

PHP Development Tips

Tuesday, September 9th, 2008

Hammer and Screwdriver If you develop code in PHP or any other language take 5 minutes to read this. It raises excellent points regardless of the language you author in despite it’s focusing on PHP. I particularly liked #7 Use a PHP Framework & #8 Don’t use a PHP Framework. It harkens back to point #1 Use PHP Only When You Need It. Hammers are good at driving nails, but they make terrible screwdrivers. The same can be said of frameworks which are not the panacea that many tout them to be. There is a good tool for each job - the roll of technology folks is to accurately select and implement the correct tool for the task - because not everything is a nail.

Updated JavaScript UUID Generator v.0.3

Friday, September 5th, 2008

The JavaScript UUID Generator class has been refreshed again and is even more efficient than the 0.2 version due largely in part to heavier reliance on built in JavaScript functions. It’s still not a “REAL” UUID, but it’s good enough for most projects. The changes are as follows:

  • A leaner and more efficient returnBase(val, base) method for conversion to base16 strings. The original version from irt.org has been replaced with built in JavaScript methods. Some testing for your target platforms should be performed to ensure compatibility with your engine.
  • The change from randrange(min, max) in v.0.1 to rand(max) in 0.2 introduced a bug where the maximum value provided would never be matched. This has been fixed to correct for that issue.

Special thanks go out to Robert Kieffer for pointing out these issues and providing the updated code for the base 16 conversion.

Download the latest version.

View Code JAVASCRIPT
/*
uuid.js - Version 0.3
JavaScript Class to create a UUID like identifier
 
Copyright (C) 2006-2008, Erik Giberti (AF-Design), All rights reserved.
 
This program is free software; you can redistribute it and/or modify it under 
the terms of the GNU General Public License as published by the Free Software 
Foundation; either version 2 of the License, or (at your option) any later 
version.
 
This program is distributed in the hope that it will be useful, but WITHOUT ANY 
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
PARTICULAR PURPOSE. See the GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License along with 
this program; if not, write to the Free Software Foundation, Inc., 59 Temple 
Place, Suite 330, Boston, MA 02111-1307 USA
 
The latest version of this file can be downloaded from
http://www.af-design.com/resources/javascript_uuid.php
 
HISTORY:
6/5/06 	- Initial Release
5/22/08 - Updated code to run faster, removed randrange(min,max) in favor of
          a simpler rand(max) function. Reduced overhead by using getTime() 
          method of date class (suggestion by James Hall).
9/5/08	- Fixed a bug with rand(max) and additional efficiencies pointed out 
	  by Robert Kieffer http://broofa.com/
 
KNOWN ISSUES:
- Still no way to get MAC address in JavaScript
- Research into other versions of UUID show promising possibilities 
  (more research needed)
- Documentation needs improvement
 
*/
 
// On creation of a UUID object, set it's initial value
function UUID(){
	this.id = this.createUUID();
}
 
// When asked what this Object is, lie and return it's value
UUID.prototype.valueOf = function(){ return this.id; }
UUID.prototype.toString = function(){ return this.id; }
 
//
// INSTANCE SPECIFIC METHODS
//
 
UUID.prototype.createUUID = function(){
	//
	// Loose interpretation of the specification DCE 1.1: Remote Procedure Call
	// described at http://www.opengroup.org/onlinepubs/009629399/apdxa.htm#tagtcjh_37
	// since JavaScript doesn't allow access to internal systems, the last 48 bits 
	// of the node section is made up using a series of random numbers (6 octets long).
	//  
	var dg = new Date(1582, 10, 15, 0, 0, 0, 0);
	var dc = new Date();
	var t = dc.getTime() - dg.getTime();
	var h = '-';
	var tl = UUID.getIntegerBits(t,0,31);
	var tm = UUID.getIntegerBits(t,32,47);
	var thv = UUID.getIntegerBits(t,48,59) + '1'; // version 1, security version is 2
	var csar = UUID.getIntegerBits(UUID.rand(4095),0,7);
	var csl = UUID.getIntegerBits(UUID.rand(4095),0,7);
 
	// since detection of anything about the machine/browser is far to buggy, 
	// include some more random numbers here
	// if NIC or an IP can be obtained reliably, that should be put in
	// here instead.
	var n = UUID.getIntegerBits(UUID.rand(8191),0,7) + 
			UUID.getIntegerBits(UUID.rand(8191),8,15) + 
			UUID.getIntegerBits(UUID.rand(8191),0,7) + 
			UUID.getIntegerBits(UUID.rand(8191),8,15) + 
			UUID.getIntegerBits(UUID.rand(8191),0,15); // this last number is two octets long
	return tl + h + tm + h + thv + h + csar + csl + h + n; 
}
 
 
//
// GENERAL METHODS (Not instance specific)
//
 
 
// Pull out only certain bits from a very large integer, used to get the time
// code information for the first part of a UUID. Will return zero's if there 
// aren't enough bits to shift where it needs to.
UUID.getIntegerBits = function(val,start,end){
	var base16 = UUID.returnBase(val,16);
	var quadArray = new Array();
	var quadString = '';
	var i = 0;
	for(i=0;i<base16.length;i++){
		quadArray.push(base16.substring(i,i+1));	
	}
	for(i=Math.floor(start/4);i<=Math.floor(end/4);i++){
		if(!quadArray[i] || quadArray[i] == '') quadString += '0';
		else quadString += quadArray[i];
	}
	return quadString;
}
 
// Replaced from the original function to leverage the built in methods in
// JavaScript. Thanks to Robert Kieffer for pointing this one out
UUID.returnBase = function(number, base){
	return (number).toString(base).toUpperCase();
}
 
// pick a random number within a range of numbers
// int b rand(int a); where 0 <= b <= a
UUID.rand = function(max){
	return Math.floor(Math.random() * (max + 1));
}
 
// end of UUID class file

Shift Needed Measuring Application Success on Social Networks

Friday, September 5th, 2008

Mobsters, Likeness, Top Friends, Super Wall, Own Your Friends, Bumper Stickers, Movies and Poker - this is just a sampling of the highest engagement applications on Facebook and MySpace. What these applications all have in common is a mass market appeal. They are general enough that just about everyone can find something cute or fun about these applications for at least a day or two. The applications measure success in installs, page views and virility. However, another classification of application, specific to much smaller audiences, is emerging as a stronger player in the application space which requires a different measurement separate than the categorical classification that application developers can choose to place themselves in.

The goal of these other applications is not monetize via CPC, CPM or CPI advertising, nor to be bought by the large application shops RockYou, Slide, Zynga or SGN. Instead, these applications exist primarily to provide a service to their users. These applications will fail when measured using the traditional methods of installs, daily active users and day over day growth. The audiences are much too small. They require a new metric to measure their success. Success within this category isn’t reaching 22%1 of Facebook’s user base. Success for these applications is defined as increased affinity for a product, service or company. It needs to be measured and reported differently.

This might be measurable through acquisitions, loyalty, usage or retention. Using Twitter as an example, it’s certainly capable of becoming a mainstream product, but hasn’t reached mainstream adoption - at least not yet. Twitter currently reaches an estimated 2.2 million users a month2. It’s regarded by some as having moved beyond the early adopters3 and easing into the early majority on the technology adoption lifecycle. The Twitter application launched May 25th along with the Facebook platform. It currently boasts 64.5K monthly users of which is hardly chart topping - in fact, it’s really quite dismal - it’s not even one of the top 500 applications. What the application does though is provide enhanced user experience by integrating status updates between the two sites.

The Twitter application is valued by Adonomics at approximately $105K. However, this number means nothing! The goal of the application isn’t to sell it or even monetize the traffic. Even the overall ranking of the application is irrelevant. A better way to measure the ROI of the application is to measure the interaction and retention. This metric that can accurately quantified by answering a series of questions.

  1. Does the application impact the retention and interaction of users for Twitter?
  2. Does the application increase usage of Twitter?
  3. What overlap in the userbase exists between Facebook and Twitter?

Lacking quantitative data from Facebook and Twitter, you’ll have to settle for my observations.

Does the application impact the retention and interaction of users for Twitter? Yes. I suspect if we could peek into Twitter’s database, we’d see that interactions for users continue for longer periods if they’ve installed the Facebook application. Why do I think this? Read on…

Does the application increase usage of Twitter? Yes. I know from personal experience that I’ve continued using Twitter longer than I had expected to because of the integration. At times I’ve used it only as a status update tool. Sending a SMS or using a phone specific tool is easier than the mobile facebook application available for my phone. Other times I use it as a conversational tool. The main point here - I continue to use it.

What overlap in the user base exists between Facebook and Twitter? Again, this is an estimate but nearly 100%4 of the people I follow on Twitter have Facebook accounts. However, only about 20% of my friends on Facebook have (or use) a Twitter account. While Twitter clearly has the potential to be a mainstream tool, it doesn’t have the presence that a MySpace or Facebook does.

The Twitter application likely has positive reprecusions for Facebook as well. By integrating the status update directly from Twitter, Facebook continues to get more content contributing to the “virtuous cycle of sharing” Mark Zuckerberg spoke about at F8 ‘08. Wouldn’t this classify the application as a success? As of this writting, Twitter doesn’t have an official application for MySpace. I expect we’ll see if MySpace allows applications to update the users status.

The question remains, how can we take these difficult to obtain numbers such as audience overlap and integrate it with the more available metrics? We need a metric that holistically evaluates an application. Measuring mass alone is no longer sufficient to define success. I propose they’re measured by interactions, retention and perception. Mix into that formula monthly reach and install and we’ll be able to arrive at a value that more accurately ranks and sorts applications on the whole.


1 Slide FunSpace reached 22.3 million Facebook users according to the monthly active user count on September 5, 2008

2 Compete reports 2,218,330 visitors to Twitter.com in July of 2008.

3 Robert Scoble stated April 9, 2008, “Anyone who joins Twitter after today is not an early adopter. So, not interesting for me to follow.”

4 Conducted using PollDaddy and an analysis of people I follow.

© 1998-2008 AF-Design, All rights reserved.