<?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>rob's blog &#187; programming</title>
	<atom:link href="http://banagale.com/category/programming/feed" rel="self" type="application/rss+xml" />
	<link>http://banagale.com</link>
	<description>because, it is better.</description>
	<lastBuildDate>Sat, 24 Jul 2010 18:40:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Creating Compelling App Descriptions for iTunes and the iOS App Stores</title>
		<link>http://banagale.com/character-and-formatting-tips-for-copy-writing-in-itunes-and-the-ios-app-store.htm</link>
		<comments>http://banagale.com/character-and-formatting-tips-for-copy-writing-in-itunes-and-the-ios-app-store.htm#comments</comments>
		<pubDate>Sat, 24 Jul 2010 01:25:31 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[selling]]></category>

		<guid isPermaLink="false">http://banagale.com/?p=618</guid>
		<description><![CDATA[When you submit an iOS application for review, you&#8217;ve got to make sure your ad copy is tight.  The app description may be the last thing holding back a tap to buy your app. Apple doesn&#8217;t give much guidance on this important chunk of text. &#8220;Write your Application Description with a focus on what makes [...]]]></description>
			<content:encoded><![CDATA[<p>When you submit an iOS application for review, you&#8217;ve got to make sure your ad copy is tight.  The app description may be the last thing holding back a tap to buy your app.</p>
<p>Apple doesn&#8217;t give much guidance on this important chunk of text. &#8220;Write your Application Description with a focus on what makes the functionality or design of your app unique.&#8221; was a tip from this past June from the App Store Tips blog.</p>
<p>We know that 4000 characters is the limit.  And App descriptions are made up of simple text, including <a href="http://en.wikipedia.org/wiki/Unicode_symbols">unicode symbols</a> like checkboxes (✔) and more (♣☢☂).  Apple takes your unicode text and formats it for display on the web via Web Preview, in iTunes and on the iOS devices themselves (the app store).</p>
<p>Since you probably have very specific points you want to get across, and users have a very short attention span, you need to pay attention to how Apple will format what you write.  In this entry I discuss how to create app descriptions that look great everywhere Apple publishes your app description.</p>
<p><span id="more-618"></span></p>
<p><strong>Word Wrap and the Fold</strong></p>
<p>Word wrap occurs in app descriptions when enough characters fill up a line.  Each line has a maximum number of characters and when a word goes over that, it is bumped to the next line.  This is important because one word of word wrap can waste an entire line of potential ad copy.  This is important: the length of your lines in your app description affects the placement of the <em>fold</em>.</p>
<p>The fold is the point where iTunes, Web Preview or the iPad App Store app decide to make the user click or tap the <strong>More&#8230;</strong> button.  Everything below the fold is out of sight, out of mind.  Without the data to prove it, my hunch is that at least half the time, users are not bothering to click <strong>More&#8230;</strong> before deciding whether they are installing an app or not.</p>
<p>All this means is that you must use the space above the fold as effectively as possible.</p>
<p>All app purchase vectors limit the top of fold line display to three lines.  Two important rules here:</p>
<ol>
<li>Blank lines count as lines.</li>
<li>Lines over 120 characters in length will lead to word wrap and the use of an additional line above the fold line.</li>
</ol>
<p><strong>App Description Formatting on iTunes and Web Preview</strong></p>
<p>Web Preview and iTunes behave in a similar way, Web Preview is just that, a summary of your app description and screenshots along with a link to view the app in iTunes.  The final step on a computer is to have iTunes open to the page where the user clicks purchase to download the app.  A history of Web Preview and SEO implications may be found <a href="http://theappleblog.com/2010/03/10/app-store-seo-the-impact-of-itunes-web-preview/">here</a>.</p>
<p>Both iTunes and Web Preview show the same number of lines from your app description before the &#8220;break&#8221; point.  A break point is where all text is hidden below the fold, and the user must click the More&#8230; link to display the rest.</p>
<p>Let&#8217;s look at some examples. The following three shots were taken from Web Preview.  iTunes displays the same amount of information as Web Preview, however only Web Preview has fixed width.  Resize the iTunes app window, allows longer word-wrapping lines but ultimately the same amount of information above the fold as Web Preview.</p>
<p><em>Note: Click any images to see the full size.</em></p>
<p><a href="http://banagale.com/blog/wp-content/uploads/2010/07/desc_flirate.png"><img class="alignleft size-full wp-image-619" style="border: 1px solid black;" title="app description" src="http://banagale.com/blog/wp-content/uploads/2010/07/desc_flirate.png" alt="App description itunes app store seo fold line wrap" width="692" height="124" /></a></p>
<p>Here the app publisher has chosen to highlight two specific sentences and put a line of space between them for readibility.  Note that if the first line was longer than 120 characters, top of fold would be a complete and a partial line (due to the wrap) and the third would simply be a blank space.</p>
<p><a href="http://banagale.com/blog/wp-content/uploads/2010/07/desc_picturizr.png"><img class="alignleft size-full wp-image-620" style="border: 1px solid black;" title="Pictureizer" src="http://banagale.com/blog/wp-content/uploads/2010/07/desc_picturizr.png" alt="Apple app store iTunes submission app description" width="706" height="126" /></a></p>
<p>Here the app publisher has one long line of text with no carriage returns.  This means that all three allowable lines of text are the result of one word wrapped line.  This is the maximum amount of information you can cram into the top of fold, but it does not read very well here.  Wait until you see how ad copy like this looks in the iPhone&#8217;s App Store.  For your reference, this one line of text is about <strong>343 characters in length</strong>.</p>
<p><strong>Looking at the devices</strong></p>
<p>Currently there are two different sizes in the iOS hardware family.  The long one, (iPhone and iPod Touch devices), and the wide one, (iPad devices).  In addition, there are three types of binaries, iPhone only apps, iPad only apps and Universal apps, which work on both iPhone (iPod Touch too) and iPad.</p>
<p>If your app is only for iPhone you need to focus on how it is displayed in the iPhone&#8217;s app store.  If it is only for iPad, you need to look at it there.  In either case you also need to look at how Apple&#8217;s relatively new Web Preview page displays your app description too.</p>
<p><strong>App Description Formatting on the iPhone</strong></p>
<p>Often users install apps directly on their device, rather than using iTunes and syncing a purchase.  It is certainly less clunky and you have instant satisfaction of getting to run the app right away.  That means your app description marketing copy should be influenced by how the lines of text look when displayed on each of these devices.</p>
<p>Here are some screenshots of how word wrapping of text affects readability on the iPhone App Store app.  Note that the iPhone app store app only supports portrait orientation.</p>
<p><img class="size-full wp-image-622 alignnone" title="iphone_app_store_ibooks" src="http://banagale.com/blog/wp-content/uploads/2010/07/iphone_app_store_ibooks.png" alt="app description hacking paragraph line spacing" width="320" height="480" /></p>
<p>Interestingly, a long line of text looks like a nice paragraph on the iPhone.  Also, Apple uses the bullet character to bullet features.</p>
<p><a href="http://banagale.com/blog/wp-content/uploads/2010/07/iphone_app_store_echofon.png"><img class="alignnone size-full wp-image-623" title="iphone_app_store_echofon" src="http://banagale.com/blog/wp-content/uploads/2010/07/iphone_app_store_echofon.png" alt="iPhone sdk binary uploader application category" width="320" height="480" /></a></p>
<p>Note here that the long lines make the display of this text awkward and difficult to read.  (I use it anyhow!)</p>
<p><a href="http://banagale.com/blog/wp-content/uploads/2010/07/rock_show_app_store.png"><img class="alignnone size-full wp-image-642" src="http://banagale.com/blog/wp-content/uploads/2010/07/rock_show_app_store.png" alt="Rock Show iPhone iPad iPod Touch platform app description" width="320" height="480" /></a></p>
<p>Note a few things here:</p>
<ol>
<li>The first and third lines are used so Web Preview and iTunes display both lines top of fold.</li>
<li>The bulleted lists do not word wrap, (the max char per line is 45).</li>
<li>Unicode goodness makes it look crisp.</li>
<li>Attention goes to lines 17 and 18 in the app description.  They are the final ones before the user would scroll down to see the screen shots.</li>
</ol>
<p>Here&#8217;s Rock Show&#8217;s Web Preview:</p>
<p><a href="http://banagale.com/blog/wp-content/uploads/2010/07/Screen-shot-2010-07-23-at-10.54.55-PM.png"><img class="alignnone size-full wp-image-650" style="border: 1px solid black;" title="Screen shot 2010-07-23 at 10.54.55 PM" src="http://banagale.com/blog/wp-content/uploads/2010/07/Screen-shot-2010-07-23-at-10.54.55-PM.png" alt="apple app description itunes store ios" width="719" height="146" /></a></p>
<p><strong>App Description Formatting on the iPad</strong></p>
<p>The iPad app store app supports both landscape and portrait modes.  It also brings back the idea of the fold and its exposing link, &#8220;More&#8230;&#8221;  In this way, the iPad&#8217;s app store application is formated more like iTunes&#8217; traditional display.  See for yourself by comparing iBooks Web Preview with the landscape view of the iPad App Store app. iBooks also happens to have a fancy custom background that 3rd party developers generally won&#8217;t have access to:</p>
<p><a href="http://banagale.com/blog/wp-content/uploads/2010/07/photo-2.png"><img class="alignnone size-full wp-image-643" title="photo 2" src="http://banagale.com/blog/wp-content/uploads/2010/07/photo-2.png" alt="" width="500" height="667" /></a></p>
<p><strong>Conclusion</strong></p>
<p>There isn&#8217;t an easy way to preview how your app&#8217;s text will look in all these different store fronts until after it is published , but you can at least know what you&#8217;re up against.</p>
<p>Experiment with your language and line length.  Every opportunity for a new installation of your software on an iOS device holds not only immediate, but residual value.  Since potential users may view your value proposition from a few different angles, pay attention to the quirks and write accordingly.</p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/character-and-formatting-tips-for-copy-writing-in-itunes-and-the-ios-app-store.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reprogrammed Animatronic Bear Band Plays MGMT Cover</title>
		<link>http://banagale.com/516.htm</link>
		<comments>http://banagale.com/516.htm#comments</comments>
		<pubDate>Mon, 21 Jun 2010 06:39:47 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[entertainment]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[remix]]></category>

		<guid isPermaLink="false">http://banagale.com/?p=516</guid>
		<description><![CDATA[Aaron Fechter the President of Creative Engineering, Inc has been reprogramming a working animatronic bear-band set up.  It looks like the company created it for a line of restraunts similar to Chuck E. Cheese.  He&#8217;s currently taking cash bids to do syncing or &#8220;choreography&#8221; for the band members. The way the performance is filmed and presented [...]]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/MGWJbcTvL_M&amp;feature" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/MGWJbcTvL_M&amp;feature"></embed></object></p>
<p>Aaron Fechter the President of <a href="http://www.starsof.com/fans/page3.html">Creative Engineering, Inc</a> has been <a href="http://blogs.laweekly.com/westcoastsound/lists/top-5-cover-songs-by-chuck-e-c/">reprogramming</a> a working animatronic bear-band set up.  It looks like the company created it for a line of restraunts similar to Chuck E. Cheese.  He&#8217;s currently taking cash bids to do syncing or &#8220;choreography&#8221; for the band members.</p>
<p>The way the performance is filmed and presented are awesome.  Shakey prolonged shots, quick pulls outward.  The overall video quality is low and the colors look a bit washed out.  Everything is blurry and the bear with the guitar has a spooky shadow.   Great media.</p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/516.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using an HTML Web View with a Transparent Background in iPhone SDK&#8217;s Interface Builder and Xcode</title>
		<link>http://banagale.com/using-an-html-web-view-with-a-transparent-background-iphone-interface-builder.htm</link>
		<comments>http://banagale.com/using-an-html-web-view-with-a-transparent-background-iphone-interface-builder.htm#comments</comments>
		<pubDate>Fri, 26 Jun 2009 16:32:36 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mobile computing]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[background]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[transparency]]></category>
		<category><![CDATA[uitextview]]></category>
		<category><![CDATA[uiwebview]]></category>

		<guid isPermaLink="false">http://banagale.com/?p=340</guid>
		<description><![CDATA[Something almost every iPhone application needs is an About and Help view that allows the user to learn a little bit about the application they&#8217;re using and  how it should be operated.  The problem with a UITextView in Apple&#8217;s XCode and Interface Builder SDK is that you can not use rich-text styling or even bold [...]]]></description>
			<content:encoded><![CDATA[<p>Something almost every iPhone application needs is an About and Help view that allows the user to learn a little bit about the application they&#8217;re using and  how it should be operated.  The problem with a UITextView in Apple&#8217;s XCode and Interface Builder SDK is that you can not use rich-text styling or even bold one line over another.</p>
<p>One solution to this problem would be to create image files containing stylized text and then rasterize them and allow the user to page through them.  The problem with this is that you can&#8217;t have tappable URLs or links embedded in the text.</p>
<p>David Peixotto, coding ninja and my business partner for <a href="http://www.neutrinosllc.com">Neutrinos</a>, suggested we look at using a Webview or HTML view and put an imageview in the background.  The trick is telling the iPhone to display a UIWebView with a transparent background.  I looked around for the solution to this and came across <a href="http://www.iphonedevsdk.com/forum/iphone-sdk-development/4918-uiwebview-render-speeds-white-background.html#post24796">this helpful post</a> in the iPhone Developer SDK forums.</p>
<p>Step one of getting a transparent web view in interface builder is to create HTML in the controller.m for the view containing the webview that contains the CSS line: &lt;body style=&#8221;background-color:transparent&#8221;&gt; Inside the &lt;head&gt; &lt;/head&gt; sections of the html.</p>
<p>Step two is to set the background color of the webview to clear or transparent:  myWebView.backgroundColor = [UIColor clearColor];<span id="more-340"></span></p>
<p>Step three is to make sure that the &#8220;Opaque&#8221; box on the inspector of properties of the WebView is unchecked.</p>
<p>That should be all you need to do.  Drop a UIImageView behind the newly transparented web view object and you should be able to use a scrollable rich text with hyperlinks.  Horray.</p>
<p>If this helped you or confused you more, please post in the comments!  We do have it working on 3.0 much to the happiness of our client.</p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/using-an-html-web-view-with-a-transparent-background-iphone-interface-builder.htm/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Display a Simple Loading Message and Animated Loading Gif Using JavaScript</title>
		<link>http://banagale.com/display-a-simple-loading-message-and-animated-loading-gif-using-javascript.htm</link>
		<comments>http://banagale.com/display-a-simple-loading-message-and-animated-loading-gif-using-javascript.htm#comments</comments>
		<pubDate>Wed, 20 May 2009 19:57:28 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[action cueing]]></category>
		<category><![CDATA[dynamic webpages]]></category>
		<category><![CDATA[visual feedback]]></category>

		<guid isPermaLink="false">http://banagale.com/?p=310</guid>
		<description><![CDATA[Some pages require an inordinate amount of time to load.  For most sites, this is a big problem.  Webmasters and SEO specialists know the value of a quick landing page load, because they know that netizens have short attention spans. Dynamically built webpages, (especially applications), require time to load and visual feedback that something is happening. [...]]]></description>
			<content:encoded><![CDATA[<p>Some pages require an inordinate amount of time to load.  For most sites, this is a big problem.  Webmasters and SEO specialists know the value of a quick landing page load, because they know that netizens have short attention spans.</p>
<p>Dynamically built webpages, (especially applications), require time to load and visual feedback that <em>something</em> is happening.  The most famous example is the gmail loading page:</p>
<p><img class="aligncenter size-full wp-image-312" title="Loading Message and Animated Gif Example Javascript" src="http://banagale.com/blog/wp-content/uploads/2009/05/loading_animated_gif_javascript1.jpg" alt="Loading Message and Animated Gif Example Javascript" width="480" height="243" /></p>
<p>Gmail uses a more sophisticated progress bar to represent the loading of the webpage.  I found <a href="http://yensdesign.com/2008/11/how-to-create-a-stylish-loading-bar-as-gmail-in-javascript/">an article on yensDesign</a> that gives some great advice on how to do this, if you want to get really fancy.</p>
<p>If you have a dynamically built page that you&#8217;d like to give a loading message to that doesn&#8217;t require a full progress bar, I recommend simply displaying a message and an animated gif.</p>
<p><strong>The Method</strong></p>
<p>The trick to accomplishing this is a small mix of JavaScript and CSS.  You don&#8217;t have to be using &lt;div&gt;&#8217;s to display your content, but you should.  My example uses &lt;div&gt;&#8217;s.<span id="more-310"></span></p>
<p>Let&#8217;s begin by assuming you have the majority of your page&#8217;s content within a series of nested DIV&#8217;s, where the outermost DIV is called &#8220;container.&#8221;</p>
<pre>
 &lt;div id="container"&gt;
    &lt;div id="heading"&gt;
       ...heading content...
     &lt;/div&gt;
     &lt;div id="body"&gt;
       ...body content...
     &lt;/div&gt;
  &lt;/div&gt;</pre>
<p>Normally, the dynamic content in your container would be rendered by the browser after it has downloaded and performed the main JavaScript routines.  What we want to do is hide the container when the page is first loaded and instead display a DIV that contains a waiting message and a little animated gif icon.</p>
<p>Begin by using the CSS <em>display </em>property to hide the container DIV like so:</p>
<pre>  &lt;div id="container" style="display:none"&gt;</pre>
<p>Next, you need to add a new DIV that contains your &#8220;Please Wait, loading&#8230;&#8221; message.  I chose to include an animated gif icon of a twirling circle, which I easily created using the <a href="http://www.ajaxload.info/">AjaxLoad.info</a>, a site created by <a href="http://www.kath.fr/">Catherine Roman</a>.   If you want to download my animated loading gif, you can <a href="http://banagale.com/portfolio/images/ajax-loader.gif">get it here</a>.</p>
<p>Here is an additional set of nested DIV&#8217;s that contain the loading content.  This should be placed outside the container DIV:</p>
<pre>      &lt;div id='siteLoader'&gt; 
        &lt;div id='siteDetailLoader'&gt; 
        &lt;img src='/path/to/your/animated/gif/loading.gif' border='0'&gt; 
        Please wait while the page loads...&lt;br /&gt; &lt;br /&gt; 
        &lt;/div&gt; 
      &lt;/div&gt; </pre>
<p>You&#8217;ll note that the display property is not set on siteLoader because it is visible by default.  This is what we want.  The trick now is to make the siteLoader DIV dissappear once the dynamic page content is done loading while simultaneously displaying the container DIV with the real page content.</p>
<p>This is handled using the global event handler <a href="http://javascript.about.com/library/blonload.htm">onLoad</a>.  There a few ways to make use of the onLoad event, I recommend including an external JavaScript file.  Do this by saving a new text file called actions.js in the same directory as the page you&#8217;re changing.  Just after your &lt;title&gt; tag on your document include this external JavaScript  file using:</p>
<p><span style="font-family: 'Courier New'; line-height: 18px; white-space: pre;">&lt;script src=&#8221;actions.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;</span></p>
<p>Inside actions.js, you need to include a function based on window.onload as follows:</p>
<pre>window.onload = function() {
   document.getElementById("siteLoader").style.display = "none";
   document.getElementById("container").style.display = "block";
}</pre>
<p>What this is doing is saying to the browser, &#8220;as soon as you&#8217;re done loading the webpage, you should hide the &#8216;please wait&#8217; stuff and show the meat and potatos of my webpage.&#8221;</p>
<p>To view all of this in action, have a look at my recently <a href="http://www.banagale.com/portfolio">updated online portfolio</a> which of course, talks up what a great person I am. <img src='http://banagale.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   I hope this has been helpful, as always&#8211;please post your comments!</p>
<p>For further reading on busy indicators and the important visual feedback and attention cueing needed to be successful with the display of heavy dynamic webpages, have a look at the article series on SAP Design Guild by Gerd Waloszek called &#8220;<a href="http://www.sapdesignguild.org/community/design/busy_feedback_3.asp">Waiting at the Computer: Busy Indicators and System Feedback</a>.&#8221;   There is a wonderful table giving guidelines on the type of feedback that should be displayed based on user wait time.</p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/display-a-simple-loading-message-and-animated-loading-gif-using-javascript.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Custom Styling the ShareThis Button Using CSS Without API Calls</title>
		<link>http://banagale.com/custom-styling-the-sharethis-button-using-css-without-api-calls.htm</link>
		<comments>http://banagale.com/custom-styling-the-sharethis-button-using-css-without-api-calls.htm#comments</comments>
		<pubDate>Wed, 06 May 2009 17:34:41 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[sharethis]]></category>

		<guid isPermaLink="false">http://banagale.com/?p=302</guid>
		<description><![CDATA[I was just doing a ShareThis icon for a client I&#8217;m working with and found that how to properly style the button is poorly documented.  In order to replace the whole icon and text, you are supposed to use the developer API. I only wanted to style the text, so I was hunting for some [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-303" style="float:right" title="ShareThis CSS Style Classes Button" src="http://banagale.com/blog/wp-content/uploads/2009/05/sharethis-logo.jpg" alt="ShareThis CSS Style Classes Button" width="150" height="150" /></p>
<p>I was just doing a ShareThis icon for a client I&#8217;m working with and found that how to properly style the button is poorly documented.  In order to replace the whole icon and text, you are <a href="http://support.sharethis.com/developers/developers-faq/stapi/62">supposed to use</a> the developer API.</p>
<p>I only wanted to style the text, so I was hunting for some CSS to style the text and could not find the right classes to call.  Some hunting turned up the following:<span id="more-302"></span></p>
<p><strong>.stbuttontext</strong> &#8211; This class will allow you to change the look of the text, ShareThis.  You can style it with any normal styling like color or font-family but text-decoration does not seem to work. :p</p>
<p><strong>.stico_default</strong> &#8211; This class allows you to style the icon itself.  An example on how to replace the ShareThis icon with your own site&#8217;s favicon <a href="http://www.webmonkey.com/tutorial/Share_Your_Site_With_ShareThis">webmonkey</a> is: </p>
<pre>{
	background: transparent url(http://www.banagale.com/favicon.ico) no-repeat scroll 0px 0px !important;
}</pre>
<p>I&#8217;m interested in any other css that can be used to style the ShareThis button without requiring API calls (if there are any).   if you know of additional classes, or this helped you please post a reply.</p>
<p><a href="http://www.twitter.com/jetsetter">Follow me on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/custom-styling-the-sharethis-button-using-css-without-api-calls.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Contact Us Javascript Form Validation and Custom Fields in SalesForce</title>
		<link>http://banagale.com/contact-us-javascript-form-validation-and-custom-fields-in-salesforce.htm</link>
		<comments>http://banagale.com/contact-us-javascript-form-validation-and-custom-fields-in-salesforce.htm#comments</comments>
		<pubDate>Thu, 09 Apr 2009 03:56:13 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[salesforce]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[crm]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[lead development]]></category>

		<guid isPermaLink="false">http://banagale.com/?p=268</guid>
		<description><![CDATA[The web Contact Us form serves as an important starting point for people interested in a product or service.  For a big company, handling inbound leads over the course of a long sales process requires a strong CRM.  SalesForce is a fully featured CRM plaform, however in my experience it has somehow ignored an important [...]]]></description>
			<content:encoded><![CDATA[<p>The web Contact Us form serves as an important starting point for people interested in a product or service.  For a big company, handling inbound leads over the course of a long sales process requires a strong CRM.  SalesForce is a fully featured CRM plaform, however in my experience it has somehow ignored an important source for sales leads: contact us forms on the company website.</p>
<p>Salesforce does not explain how its clients should go about crafting a quality Contact Us web page.</p>
<p><strong>What is a quality Contact Us web page?  </strong></p>
<p>Generally you’ll find the same type of fields on Contact Us pages across the web.  You are asked for your first and last name, job title, complete address and something specific about your query, like Where did you hear about us? Or What model Range Rover are you interested in?</p>
<p> What’s the use of having their name if you don’t have their phone number?  Usually, a company will want to set specific form fields to required. Checking whether a potential customer has filled out a required answer is called form validation.<span id="more-268"></span></p>
<p><strong>An Overview of Form Validation</strong></p>
<p>There are two ways to validate form data, client side and server side.  While doing both client and server side validation may be a <a href="http://wiki.answers.com/Q/Client_side_form_validation_vs_server_side_form_validation">best practice</a>, my experience is that only one method is chosen.</p>
<p>In general, Javascript is used to validate forms on the client side (in browser).  When a potential customer forgets to enter their phone number, javacript pops a small dialog box reminding them they screwed up.  The user fixes their error and tries submitting again.</p>
<p>Server side validation occurs when the potential customer submits a form and a new page loads, typically with a warning in red saying what information they forgot to enter.  The user then clicks back to return and complete the form.</p>
<p><strong>Limitations of Data Validation on Salesforce Powered Contact Us Forms</strong></p>
<p>Salesforce does not allow server-side data verification.  My understanding is that all users of Salesforce submit form data to the same encrypted URL: https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8</p>
<p>A unique customer ID accompanies all data posted to Salesforce which routes it into your personal silo of the great CRM cloud in the sky.  Since you don’t control this servlet page on salesforce.com, you can’t do anything once the form is submitted.</p>
<p>This means that a client side check, using javascript, is your only real alternative for validating forms used to feed data into Salesforce.</p>
<p><strong>Implementation</strong></p>
<p>There are many examples on the web of how perform simple form validation with Javascript.  If you want to get really fancy, here’s<a href="http://banagale.com/blog/wp-content/uploads/2009/04/salesforce_javascript.txt"> the javascript SalesForce uses</a> for validating its own forms.  It includes checking for the email address to be formed properly and if the phone number is valid.  A screenshot of the page the above jscript was taken from is below.</p>
<p><img class="alignright size-full wp-image-282" title="salesforce_web_to_lead" src="http://banagale.com/blog/wp-content/uploads/2009/04/salesforce_web_to_lead.jpg" alt="salesforce_web_to_lead" width="480" height="359" /></p>
<p>Keeping it simple, you can simply ensure something was typed into individual fields like so:</p>
<blockquote><p>&lt;script type=&#8221;text/javascript&#8221;&gt;</p>
<p>function validate_required(field,alerttxt) {</p>
<p>with (field)</p>
<p>{</p>
<p>if (value==null||value==&#8221;")</p>
<p>{alert(alerttxt);return false;}</p>
<p>else {return true}</p>
<p>}</p>
<p>}</p>
<p>function validate_form(thisform)</p>
<p>{</p>
<p>with (thisform)</p>
<p>{</p>
<p>if (validate_required(first_name,&#8221;Please fill out your first name.&#8221;)==false)</p>
<p>  {first_name.focus();return false;}</p>
<p>}</p>
<p>}</p>
<p>&lt;/script&gt;</p></blockquote>
<p>The matching form element would be:</p>
<blockquote><p>&lt;label for=&#8221;first_name&#8221;&gt;First Name: *&lt;/label&gt;</p>
<p>&lt;input  id=&#8221;first_name&#8221; maxlength=&#8221;40&#8243; name=&#8221;first_name&#8221; size=&#8221;25&#8243; type=&#8221;text&#8221; /&gt; </p></blockquote>
<p>And finally the &lt;form&gt; tag needs to run the javascript:</p>
<blockquote><p>&lt;form action=&#8221;https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8&#8243; onsubmit=&#8221;return validate_form(this)&#8221; method=&#8221;post&#8221;&gt;</p></blockquote>
<p>Voila.  You have performed client-side data validation.  </p>
<p><strong>Caveats and Other Madness</strong></p>
<p>This example uses the standard Salesforce field “first name” and its associated id, first_name.  If you use custom fields in Salesforce, you’re going to have to deal with weird id’s, like 000004fsx02.  In these cases you will need to construct form elements with different ID and Name values, since the javascript that I used did not accept DOM names that began with numbers.  </p>
<p><a href="http://www.startupcto.com/front-end-tech/xhtml/id-vs.-name-in-form-fields">My research</a> suggests that this is against convention, but you do what you’ve got to do.  Maybe you can write better javascript that will take these funky salesforce custom field id’s.  If you can, please post your solution here.</p>
<p>I should also mention that occasionally you want to hard code data for passing into custom fields in Salesforce.  In these cases you must still use the form data spit out by web-to-form, only set the only response to what you want and set the item to hidden.</p>
<p><strong>Suggestions for Salesforce</strong></p>
<p>Salesforce disowns anything you do with the HTML that the web to form functionality kicks out for you.  They do not support creation of contact us forms, and provide no advice on technologies or methods to validate data inbound to their CRM.  Asking their customer support staff  if their CRM has the ability to perform server side validation will be met with confusion.</p>
<p>Salesforce needs to provide better support for this important aspect of lead origin into its client’s sales processes.  Undoubtedly, SF likely has elegant methods for working with data using its SDK.  If it is going to actually reach startups and smaller businesses with a $9 per user subscription plans, it needs to better support the most basic functionality of passing data into the system.</p>
<p>If Salesforce does not better address the down market, it will lose against startups like Zoho that offers a similarly priced CRM and a comprehensive set of other web applications and that has a <a href="http://blogs.zoho.com/general/add-a-contact-us-form-using-zoho-creator">user community willing to create</a> how-to videos for things like Contact Us form creation.</p>
<p>At a minimum an explanatory page should be available in Salesforce’s online help to explain the basic methods for building and validating web form data.</p>
<p>I hope this has been helpful, please post your experience!</p>
<p>Follow me on <a href="http://www.twitter.com/jetsetter">twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/contact-us-javascript-form-validation-and-custom-fields-in-salesforce.htm/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Apple Touch Platform Applications Approval Process Stirs Concern</title>
		<link>http://banagale.com/apple-touch-platform-applications-approval-process-stirs-concern.htm</link>
		<comments>http://banagale.com/apple-touch-platform-applications-approval-process-stirs-concern.htm#comments</comments>
		<pubDate>Sat, 13 Sep 2008 14:28:09 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[legal]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sdk]]></category>

		<guid isPermaLink="false">http://banagale.com/apple-touch-platform-applications-approval-process-stirs-concern.htm</guid>
		<description><![CDATA[In the past I&#8217;ve written about the Facebook platform as being the wild west of software development.  The reasoning was that 3rd party developers like myself were watching the platform shift and change on a daily basis.  The result was that functions were being introduced in beta, or replaced and deprecated frequently. Developers working on [...]]]></description>
			<content:encoded><![CDATA[<p>In the past I&#8217;ve written about the Facebook platform as being the wild west of software development.  The reasoning was that 3rd party developers like myself were watching the platform shift and change on a daily basis.  The result was that functions were being introduced in beta, or replaced and deprecated frequently.</p>
<p>Developers working on emerging software platforms are a flexible bunch.  They&#8217;re used to having theirapplications break so long as the platform overall is being improved.  A better platform means more users, which means greater opportunity for 3rd party developers.  One thing developers do not like, however is having their software tools gobbled up an encorporated into the core of the platform.</p>
<p>I wrote about how this was happening in my blog post, <a href="http://banagale.com/nationalization-or-expropriation-facebook-application-developers-continue-to-face-uncertainty.htm" rel="bookmark" title="Permanent Link: Nationalization or Expropriation?  Independent Facebook Application Developers Continue to Face Uncertainty">Nationalization or Expropriation?  Independent Facebook Application Developers Continue to Face Uncertainty</a>.  Something entirely different is happening right now on the Touch platform, however.</p>
<p><span id="more-166"></span></p>
<p>It all started with the an application called, &#8220;Pull My Finger,&#8221; which allowed people to touch illustrated fingers in order to play back audio of flatulence.  You see, Apple, unlike Facebook, will only allow applications to become available to run on the Touch Platform devices (the iPhone and iPod Touch) <em>after</em> they have been reviewed by hand by an Apple employee.</p>
<p>Let&#8217;s take a look at the normal application development cycle for getting an application up onto the Apple Touch platform:</p>
<p align="center"><img src="http://banagale.com/blog/wp-content/uploads/2008/09/good_iphone_development_flow.png" alt="iphone touch platform approval process good" /></p>
<p>Now let&#8217;s take a look at the alternate scenerio:</p>
<p align="center"><img src="http://banagale.com/blog/wp-content/uploads/2008/09/bad_iphone_development_flow.jpg" alt="a flowchart of an iphone touch platform approval process gone bad" /></p>
<p>As you can see, the developer has two choices when their application is rejected from the iTunes store.  A redesign scenerio could occur when their application breaks a minor rule.  For instance, early on Apple was rejecting applications that mis-used the vibration function on the iPhone.  A developer could rectify this problem by taming down their application&#8217;s vibration and re-submitting.</p>
<p>The give-up scenerio is based on a different type of rejection from Apple.  There have been two well-documented cases of Touch Platform application rejections by Apple because the fundamental basis of applications was rejected.  As mentioned, the Pull My Finger application <a href="http://latimesblogs.latimes.com/funny_pages_20/2008/09/flatulence-appl.html">was rejected</a> because &#8220;[Apple] determined that this application is of limited utility to the broad iPhone and iPod touch user community, and will not be published to the App Store.&#8221;</p>
<p>More recently another rejection was delivered to someone who had created a podcasting application.  In this case Apple rejected it &#8220;s<span style="font-style: italic">ince <span class="blsp-spelling-error" id="SPELLING_ERROR_1">Podcaster</span> assists in the distribution of <span class="blsp-spelling-error" id="SPELLING_ERROR_2">podcasts</span>, it duplicates the functionality of the Podcast section of <span class="blsp-spelling-error" id="SPELLING_ERROR_3">iTunes</span>.&#8221;</span></p>
<p>The problem faced by developers is uncertainty.  How can they know what is and what is not ok before investing development time and resources into creating an application.  The problem for Apple is that if they define exactly what the rules are for approval, there will always be exceptions.  Plus, Apple may still not know what their rules are.</p>
<p>Some of the blame lies with developers and their desire to play on the edges of what a reasonable and rational iPhone application idea might be. For instance, designing low-brow flatulence applications or tools that replicate existing functionality does not show a lot of creativity on the developer&#8217;s part.</p>
<p>In addition, the I&#8217;m Rich application made it past Apple&#8217;s application approval group initially, but when it made headlines, it was an embarassment for Apple.  Can we really blame them for being more careful now?</p>
<p>But just as Facebook application developers grew angry over the integration of functionality they had developed into the Facebook core, Touch platform developers deserve great communication from Apple on what is and is not ok, in order to avoid wasted effort.  Developers have indicated that applications that violate non-Apple trademarks have successfully been approved and listed for sale in iTunes.</p>
<p>One developer <a href="http://speirs.org/2008/09/12/app-store-im-out/">fed up with Apple&#8217;s approval ambiguity</a> has given a number of suggestions for improving the situation, including Apple hiring a a 3rd party developer champion or evangelist, someone who can perform official coaching or pre-approval on application ideas prior to beginning a development effort in earnest.</p>
<p>For now, developers will have to stick to common sense in coming up with ideas for new applications for  the Touch platform.</p>
<p>[<strong>Update 9/20/08</strong>: I found a more detailed flowchart on the approval process <a href="http://www.gadgettastic.com/2008/09/17/apples-iphone-apps-approval-process/">here</a>.  Also, I made a minor edit to  second flowchart to reflect the possibility that the app is approved]</p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/apple-touch-platform-applications-approval-process-stirs-concern.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developing within iPhone NDA Muffle aka The Cone of Silence</title>
		<link>http://banagale.com/developing-within-iphone-nda-muffle-aka-the-cone-of-silence.htm</link>
		<comments>http://banagale.com/developing-within-iphone-nda-muffle-aka-the-cone-of-silence.htm#comments</comments>
		<pubDate>Fri, 15 Aug 2008 01:47:56 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[legal]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://banagale.com/developing-within-iphone-nda-muffle-aka-the-cone-of-silence.htm</guid>
		<description><![CDATA[ Neutrinos just wrapped its second iPhone application, it is a 20 questions trivia game called iQ.  It is great step from our first app, TipTotaler.  For iQ, I took on the user interface design for the application in addition to my normal website design and marketing. The amount of graphic design and image handling [...]]]></description>
			<content:encoded><![CDATA[<p align="left"><img src="http://banagale.com/blog/wp-content/uploads/2008/08/iq_iphone_application_trivia.png" alt="iphone application IQ Game Trivia" align="right" /></p>
<p align="left">Neutrinos just wrapped its second iPhone application, it is a 20 questions <a href="http://neutrinosllc.com/products/iphone/applications/iq/">trivia game called iQ</a>.  It is great step from our first app, TipTotaler.  For iQ, I took on the user interface design for the application in addition to my normal website design and marketing.</p>
<p align="left">The amount of graphic design and image handling in iPhone development is extensive and I&#8217;ve already blogged about a tool to assist in the <a href="http://banagale.com/iphone-developer-resource-preview-application-icon-3d-effect.htm">3d iPhone application icon design</a>.  But the most interesting stuff is happening in Interface Builder and in xCode that I&#8217;m not supposed to talk about here.</p>
<p align="left">Apple has an NDA up with all developers that they can not talk about their experience with the SDK.</p>
<p align="left"><span id="more-164"></span></p>
<blockquote>
<p align="left">5. Confidentiality<br />
5.1 Information Deemed Confidential<br />
You agree that the SDK licensed hereunder, the terms and conditions of this Agreement, and any<br />
other non-public information that You learn about Apple’s products, designs, research,<br />
development, know-how, or Apple’s business, finances or personnel, or non-public third party<br />
information, in connection with this Agreement or in connection with Your use of any part of the<br />
SDK will be deemed “Apple Confidential Information” under this Agreement.</p>
</blockquote>
<p align="left"> Here&#8217;s a shout to <a href="http://www.robteel.com/">Rob Teel</a> who would appreciate the intersection of tech and law here.  Anyhow, there are a lot of people speaking up about the gag order that has been imposed on people who are developing for the iPhone.  ARS Technica <a href="http://arstechnica.com/news.ars/post/20080728-iphone-nda-doing-more-harm-than-good.html">condemned it</a> with an article with weird images in it.  The leading macrumor right now is that it has to do with <a href="http://forums.macrumors.com/showthread.php?t=539952">multi-touch patents</a>.</p>
<p align="left">Whatever the reason, the NDA hasn&#8217;t kept some people from <a href="http://discussions.apple.com/forum.jspa?forumID=727">posting insights</a> and portions of source code they aren&#8217;t supposed to.  Yet, Apple isn&#8217;t closing the threads and I haven&#8217;t read any reports of people being kicked out for it.  The drama of coding within a new platform was there when I started working with Facebook applications.  But Facebook didn&#8217;t have this secrecy thing going on, which makes this a little cooler.  Analyst expectations that Apple will sell 4.47 milliion more 3G iPhones makes it hot.</p>
<p align="left">If you or someone you know has an iPhone&#8211;tell them about  <strong><a href="http://neutrinosllc.com/products/iphone/applications/iq/">iQ</a></strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/developing-within-iphone-nda-muffle-aka-the-cone-of-silence.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone Developer Resource: Preview Application Icon 3D Effect</title>
		<link>http://banagale.com/iphone-developer-resource-preview-application-icon-3d-effect.htm</link>
		<comments>http://banagale.com/iphone-developer-resource-preview-application-icon-3d-effect.htm#comments</comments>
		<pubDate>Tue, 29 Jul 2008 05:02:37 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[bevel]]></category>
		<category><![CDATA[graphic design]]></category>
		<category><![CDATA[icon]]></category>
		<category><![CDATA[icon making]]></category>
		<category><![CDATA[sheen]]></category>

		<guid isPermaLink="false">http://banagale.com/iphone-developer-resource-preview-application-icon-3d-effect.htm</guid>
		<description><![CDATA[My friend Dave Peixotto is in charge of coding and software repository work on our iPhone application development.  I am in charge of the marketing and business aspects of our software company, Neutrinos, LLC. One of my tasks with the release of our recently submitted iPhone application, TipTotaler was to select an icon for our [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.neutrinosllc.com/products/iphone/applications/tiptotaler/images/tiptotaler_icon_iphone_appl.jpg" alt="TipTotaler Icon" align="right" height="57" width="57" />My friend Dave Peixotto is in charge of coding and software repository work on our iPhone application development.  I am in charge of the marketing and business aspects of our software company, <a href="http://neutrinosllc.com/">Neutrinos, LLC</a>.</p>
<p>One of my tasks with the release of our recently submitted iPhone application, <a href="http://neutrinosllc.com/products/iphone/applications/tiptotaler/">TipTotaler</a> was to select an icon for our app.  As you may be aware from Apple&#8217;s iPhone application submission guidelines, you must include a flat 57 x 57 pixel and 512 x 512 pixel image for use on the iPhone and iPod Touch home screen and for the iTunes store.</p>
<p><img src="http://banagale.com/blog/wp-content/uploads/2008/07/alien_icon.gif" alt="alien_icon.gif" align="left" hspace="5" />There are a couple of challenges for iPhone Application icon graphic designers:  First, it isn&#8217;t always easy to tell what will look good at both 512&#215;512 and 57&#215;57.  Second, having the developer rebuild and send updated screenshots is laborious as is monkeying around in Photoshop to eyeball how the images look at lower resolution with 3D effects.</p>
<p><span id="more-158"></span></p>
<p>In order to speed up the process, I put together an Adobe Photoshop macro aka &#8216;action&#8217; that will quickly take any square image and apply similar 3D effects that Apple uses.  The 3D effects used on buttons on the iPhone home screen and the iTunes store application pages include rounded corners and a light sheen over rounded across the top third to one half of the button.  My macro automatically transforms any image into a 3D iPhone Application icon with these characteristics.</p>
<p><img src="http://banagale.com/blog/wp-content/uploads/2008/07/spider_icon.gif" alt="spider_icon.gif" align="right" />I&#8217;ve recorded a screen cast demonstration of how to use the macro using Jing.  You can <a href="http://www.screencast.com/users/robots/folders/Jing/media/ef6f782d-e292-41ee-9974-42583f7e341d">view the screencast here</a>.  Click the link below to download a zip file containing the Photoshop action macro and iPhone gallery image to test out your 3D button on.</p>
<p>Remember, your starting image must be a perfect square of any size prior to running the macro.  Questions? Watch the screencast above or post a comment.</p>
<p>-&gt;  <a href="http://banagale.com/blog/wp-content/uploads/2008/07/iphone-app-icon-previewer.zip">Download iPhone Application Icon Preview Macro</a></p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/iphone-developer-resource-preview-application-icon-3d-effect.htm/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Nationalization or Expropriation?  Independent Facebook Application Developers Continue to Face Uncertainty</title>
		<link>http://banagale.com/nationalization-or-expropriation-facebook-application-developers-continue-to-face-uncertainty.htm</link>
		<comments>http://banagale.com/nationalization-or-expropriation-facebook-application-developers-continue-to-face-uncertainty.htm#comments</comments>
		<pubDate>Sat, 29 Mar 2008 23:39:17 +0000</pubDate>
		<dc:creator>rob</dc:creator>
				<category><![CDATA[api]]></category>
		<category><![CDATA[ethics]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://banagale.com/nationalization-or-expropriation-facebook-application-developers-continue-to-face-uncertainty.htm</guid>
		<description><![CDATA[There is some interesting discussion going on in the Facebook Developer&#8217;s forum. The gist is that Facebook has made changes that are causing some developers to feel disenfranchised. A few developers are upset enough that they are speaking of creating a union of independent Facebook application developers. What might the goals of a union of [...]]]></description>
			<content:encoded><![CDATA[<p>There is some interesting discussion going on in the Facebook Developer&#8217;s forum.  The gist is that Facebook has made changes that are causing some developers to feel disenfranchised.  A few developers are upset enough that they are speaking of creating a union of independent Facebook application developers.</p>
<p>What might the goals of a union of Facebook application developers be?  It would help to look at what has stirred the pot recently.  About two weeks ago <a href="http://forum.developers.facebook.com/viewtopic.php?id=12101&amp;p=1">someone posted a complaint</a> that Facebook had unfairly bent the rules to give CBS&#8217;s Sports NCAA bracket application advantages for faster viral spread across the Facebook user base. Adding insult to injury, the thread also pointed out that the CBS Sports NCAA bracket application had a poor user rating.</p>
<p>Two days ago another developer posted a thread titled, &#8220;<a href="http://forum.developers.facebook.com/viewtopic.php?id=12563">Facebook has stolen my idea!</a>&#8221; which describes the recently added &#8220;<a href="https://register.facebook.com/findfriends.php?expand=pymk&amp;ref=hpb">Do you know these people?</a>&#8221; page on Facebook.  The developer suggests he feels &#8220;cheated&#8221; because the new Facebook page duplicates his own application&#8217;s functionality.  The developer&#8217;s application was forced to comply with platform development rules that required an obstructive approval process in order work correctly.</p>
<p>Facebook&#8217;s &#8220;Do you know these people?&#8221; page circumvents this approval process because it is not subject to the rules independent application developers must follow.   Facebook made a better version of the application a part of the Facebook experience by bending the rules that crippled the original developer&#8217;s work.<span id="more-150"></span></p>
<p>These examples illustrate that Facebook considers it a duty to nationalize or expropriate functionality if it is considered good for Facebook.  Rather than something that needs to be declared, Facebook makes this right clear in the <a href="http://developers.facebook.com/terms.php">Facebook Developers Terms of Service</a>:</p>
<p>&#8220;&#8230;You hereby grant us a worldwide, perpetual, irrevocable, non-exclusive right and license, with the right to sublicense, to: (a) access, <em>reproduce, display, distribute, perform, and store on our servers your Facebook Platform Application</em> a<em>nd any Facebook Platform Application Content, and to create derivative works of Facebook Platform Application Content, as may be necessary or desirable</em> to make such Facebook Platform Application and Facebook Platform Application Content available to Facebook Users in accordance with the terms of this Agreement and the <a href="http://developers.facebook.com/documentation.php">Facebook Platform Documentation</a> and the <a href="http://developers.facebook.com/guidelines.php">Facebook Platform Application Guidelines</a>; and (b) otherwise access, use and <em>analyze any Facebook Platform Application Content for our internal business purposes</em> (e.g., for the purposes of targeting delivery of advertisements or other content to persons who have viewed particular types of Facebook Platform Application Content).&#8221;</p>
<p>This paragraph basically says that Facebook can duplicate and meet parity or run with your application&#8217;s functionality and then integrate it into the basic Facebook experience.  The second part basically says that Facebook reserves the right to monitor how much your application would be worth if Facebook were to take your idea.</p>
<p>I think a lot of independent developers get to sleep at night with the belief that Facebook wouldn&#8217;t expropriate their applications.  These developers comfort themselves with the idea that &#8220;it happens occasionally&#8211;but only to applications with functionality that obviously belongs in the platform.&#8221;</p>
<p>The board of directors for the copper companies were probably counting the same sheep prior to the sweeping expropriation of copper mines by the Chilean government in the early 1970s.   The <a href="http://books.google.com/books?id=ObzimhWiz30C&amp;pg=PA93&amp;lpg=PA93&amp;dq=chilean+copper+mines+nationalization+united+states+sanctions&amp;source=web&amp;ots=mChwZoCOyV&amp;sig=iAqRJGuCvjGVK21OR4Gee2uRC5k&amp;hl=en#PPA101,M1">result of that disagreement</a> was that the United States pushed for and succeeded achieving economic sanctions against Chile.  But the Facebook development community doesn&#8217;t exactly have sanctions on its list of tools of influence.  What does it have?</p>
<p>For one, it would have to be part of a greater independent community of developers for all open social platforms.  Only by having a union of developers that canvas&#8217;s all major platforms could it hold sway against any particular one.  Such an organized group might hold sway by steering technical offerings, such as beginner guides, away from platforms that have a history of expropriating applications functionality unfairly.  A strong independent application developer union might also be able dissuade or at least condemn social platforms that repeatedly expropriate functionality.</p>
<p>Representation at the table would help, when the biggest social networking application companies, <a href="http://en.wikipedia.org/wiki/RockYou%21">RockYou!</a>, are getting all of the attention.  RockYou! has funding from Sequoia Capital, a company that wouldn&#8217;t take wholesale expropriation of their software lightly.</p>
]]></content:encoded>
			<wfw:commentRss>http://banagale.com/nationalization-or-expropriation-facebook-application-developers-continue-to-face-uncertainty.htm/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
