<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>Affinitive's Social Media Playground &#187; development</title>
	<atom:link href="http://www.socialmediaplayground.com/tag/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.socialmediaplayground.com</link>
	<description>Welcome to Social Media Playground, a place to discuss all things related to word of mouth (WOM) and social media marketing. Brought to you by Affinitive, a word of mouth and social media marketing, technology and strategic solutions firm located in New York City and San Francisco.</description>
	<lastBuildDate>Fri, 10 Feb 2012 18:37:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Facebook: An Angel for Marketers, the Devil for Developers</title>
		<link>http://www.socialmediaplayground.com/technology/facebook-an-angel-for-marketers-the-devil-for-developers/2010/01/29/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=facebook-an-angel-for-marketers-the-devil-for-developers</link>
		<comments>http://www.socialmediaplayground.com/technology/facebook-an-angel-for-marketers-the-devil-for-developers/2010/01/29/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 20:42:00 +0000</pubDate>
		<dc:creator>Pavel Shub</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[socialmedia]]></category>
		<category><![CDATA[wiki]]></category>
		<guid isPermaLink="false">http://www.socialmediaplayground.com/?p=720</guid>
		<description><![CDATA[Anyone who has developed Facebook apps, or any kind of Facebook integration, knows that Facebook development can be a less than pleasant experience. How often does an API need a live status? Even though we all know the way Facebook has opened up their platform has been revolutionary, an already amazing source of revenue and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.socialmediaplayground.com/wordpress/wp-content/uploads/2010/01/error_count.png"><img style="float: left; margin-right: 15px; margin-bottom: 15px;" title="Error Count" src="http://www.socialmediaplayground.com/wordpress/wp-content/uploads/2010/01/error_count-300x274.png" alt="Facebook Platform Error Count" width="300" height="274" /></a>Anyone who has developed Facebook apps, or any kind of Facebook integration, knows that Facebook development can be a <em>less than pleasant</em> experience.  How often does an <a href="http://en.wikipedia.org/wiki/Api" target="_blank">API</a> need a <a href="http://developers.facebook.com/live_status.php" target="_blank">live status</a>?  Even though we all know the way Facebook has opened up their platform has been revolutionary, an already amazing source of revenue and outlet for marketing for brands, developers, and Facebook itself, it is still immature. As a platform it is still evolving rapidly and there&#8217;s promise of a better future, but if you intend to dive into the world of Facebook development, be prepared for some things you might not expect.</p>
<p>One of the more commonly used functions is <em>getInfo()</em>, which returns almost any piece of information from a user&#8217;s profile page; gender being one of them.  The value returned for gender is either “Male” or “Female,” which is fine &#8211; but they are <a href="http://en.wikipedia.org/wiki/Language_localization" target="_blank">localized</a> in the user’s language.  So does this mean you have to check for “Female” if the user is using Facebook in English and “<a href="http://translate.google.com/#auto|en|Weiblich" target="_blank">Weiblich</a>” if the user chose German?  Yes.  It also means you have to check for imaginary languages.  “Lass” is what you get if the user has his language preferences set to <a href="http://www.talklikeapirate.com/" target="_blank">Pirate</a> (English).  You can see the headache this causes a developer if they are asked to report on the demographic of users of your app.</p>
<p>Another problem plaguing developers is the lack of organization for the documentation. The bulk of documentation exists on their <a href="http://wiki.developers.facebook.com/index.php/Main_Page" target="_blank">developer wiki</a>.  This works well enough if you know exactly what you’re looking for, but if you don’t know the name of a function you’re better off using Google. A wiki format is more conducive to separate pages.  So for a new developer stumbling on to the wiki, aside from a few copy-paste tutorials, there is no clear path of where to go.  Only recently, with the release of their Javascript SDK, have they created a <a href="http://developers.facebook.com/docs/?u=facebook.jslib">concise page containing documentation</a>. Facebook officially supports 5 client libraries.  For some of the libraries, documentation exists on the wiki and is shared amongst one another.  All of the functions are typically the same for every language, so only one wiki page exists.  PHP as well as Connect for the iPhone use the wiki pages, while the ActionScript library documentation is housed on <a href="http://code.google.com/p/facebook-actionscript-api/" target="_blank">Google code</a>.  This is because a lot of these libraries were contributed by the community and not officially created by Facebook, but this can be a large annoyance if you automatically assume that the function you’re using in a particular language is described by the wiki.  Forcing people to scour multiple sites and forums for documentation is never a good idea if you are trying to build a good developer community around your platform.</p>
<p>The Facebook Platform status usually states “Facebook Platform is Healthy”.  Occasionally it displays messages about performance issues, but that doesn’t help you much.  Chances are, if you’re looking at Facebook platform status, you noticed the performance issues on your application.  Looking at the “Average API Response Time” and “Error Count” doesn’t reveal much because there are no units on the y-axis.  However looking at Developer Updates and Top Life Platform Bugs mights shed a light on the current status of Facebook.  So what is the state of Facebook?  Developer Update states they are changing profile picture sizes.  So everyone who ever uses a profile picture in their application should go and double check that the new sizes will work.  Existing Facebook applications constantly need to be updated to simply work.  The bug list is as expected; there are a few major bugs, e.g. suggest to friends does not work (opened 29 December).  And less critical but still annoying ones, e.g. request-form action opens a new window (opened 07 April 2009).  The platform is in a state of constant flux with backwards incompatible updates being released and bugs for old features being introduced.  If you create a Facebook app, you can&#8217;t just “set it and forget it.”  You must monitor for changes to the platform and update your app as needed.  You must also expect that there will be periods where your app won&#8217;t operate due to internal problems with Facebook&#8217;s system.</p>
<p>So where does this developer hell leave us?  It actually promises a <em>brighter future</em>.  The reason the API is broken is due to Facebook constantly working on it and bringing more enhancements to users and developers.  They are rolling out new features such as allowing applications to gather a user’s email if given permission and giving more control to users over their privacy settings.  Yes the platform is immature, but it’s certainly not stagnant.  So what can a developer do to make things smoother?  There are certainly enough complaints out there, so that path won’t lead anywhere. Trying to write more on the wiki and help the community won’t be very fruitful, because the API changes quickly enough that your notes may be soon outdated.  In fact, the abundance of notes like this on the wiki makes it confusing as to who is right.  Here are some suggestions for developers to cope with the situation:</p>
<ol>
<li>Manage your client&#8217;s expectations.  Make them aware that Facebook encounters issues periodically and this is out of your control.  Give them the link to the <a href="http://developers.facebook.com/live_status.php">Platform Live Status</a> page so they can check that before coming screaming at you.</li>
<li>Subscribe to the <a href="http://developers.facebook.com/live_status.php">Platform Live Status Feed</a>, <a href="http://developers.facebook.com/news.php?tab=blog">Developers News Feed</a>, and <a href="http://www.facebook.com/FacebookPages">Facebook Pages Notes</a>.  This way you should always be aware of a problem or an upcoming change before your client.  The feeds are available via RSS or email except for the Pages Notes which seems to only be RSS.</li>
<li>Stay up to date with the <a href="http://wiki.developers.facebook.com/index.php/Developer_Roadmap">Developer Roadmap</a> in the wiki.  You can create an account in the wiki and “watch” this page to get notified of changes.</li>
<li>If the client library you&#8217;re using has a svn repository, you can check the log to read about changes.  For example, this command works for the PHP library &#8211; svn log -v http://svn.facebook.com/svnroot/platform/clients/php/trunk/.  The ActionScript library on Google code page has a web interface for browsing changes &#8211; http://code.google.com/p/facebook-actionscript-api/source/list.  There are some tools for automatically getting notified of an update to the code: <a href="http://www.svnmonitor.com/default.shtml">SVN-Monitor</a>, <a href="http://tools.tortoisesvn.net/CommitMonitor">CommitMonitor</a>, and <a href="http://svnnotifier.tigris.org/">SVN Notifier</a>.  Unfortunately, these are all Windows programs.  Leave a comment if you know of one for Mac or Linux (yes, we know you can easily write a cron script to do it <img src='http://www.socialmediaplayground.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ol>
<p>In summary, at this stage if someone says “We want to do this and that with Facebook,” the best thing to do is say “I can try but I make no guarantees” instead of “Sure, it’s totally possible” because with Facebook you never know if what is available today will be still available by the time your application is ready to launch.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.socialmediaplayground.com/technology/facebook-an-angel-for-marketers-the-devil-for-developers/2010/01/29/feed/</wfw:commentRss>
		<slash:comments>1035</slash:comments>
		</item>
	</channel>
</rss>

