<?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>Snipe.Net &#187; facebook</title>
	<atom:link href="http://www.snipe.net/tags/facebook/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.snipe.net</link>
	<description>Bitterness never tasted so sweet</description>
	<lastBuildDate>Thu, 29 Jul 2010 05:03:36 +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>Introducing FBMHell.Com</title>
		<link>http://www.snipe.net/2010/07/introducing-fbmhell-com/</link>
		<comments>http://www.snipe.net/2010/07/introducing-fbmhell-com/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 00:09:32 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook application development]]></category>
		<category><![CDATA[facebook applications]]></category>
		<category><![CDATA[fbml]]></category>
		<category><![CDATA[static fbml]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=3161</guid>
		<description><![CDATA[Good news, everyone! My compulsive need to make websites and write content has struck again, this time resulting in my new site, FBMHell.Com, which I hope will evolve into a great resource for Facebook developers, whether you&#8217;re an app developer or fan page designer. It&#8217;s literally just been launched, so I&#8217;m looking for your help. [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.snipe.net%2F2010%2F07%2Fintroducing-fbmhell-com%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.snipe.net%2F2010%2F07%2Fintroducing-fbmhell-com%2F&amp;source=snipeyhead&amp;style=normal&amp;service=bit.ly&amp;service_api=R_92bd97f4f8b9fa8a40675b36ea291223" height="61" width="50" /><br />
			</a>
		</div>
<p>Good news, everyone! My compulsive need to make websites and write content has struck again, this time resulting in my new site, <a href="http://fbmhell.com">FBMHell.Com</a>, which I hope will evolve into a great resource for Facebook developers, whether you&#8217;re an app developer or fan page designer.</p>
<p><span id="more-3161"></span>It&#8217;s literally just been launched, so I&#8217;m looking for your help. I&#8217;ll be going through some older posts and rounding up the questions that seem to come up often and writing up answers for the new site, but if there&#8217;s a burning question you&#8217;ve had for a while and haven&#8217;t been able to find an answer for, let me know in the comments.</p>
<p><a href="http://fbmhell.com"><img class="aligncenter size-large wp-image-3162" title="fbmhell" src="http://www.snipe.net/wp-content/uploads/2010/07/fbmhell-560x500.png" alt="" width="560" height="500" /></a></p>
<p>One that comes up often is whether or not you can include an IFRAME in a tab, so don&#8217;t ask that one <img src='http://www.snipe.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  It&#8217;s already on deck.</p>
<p>I&#8217;m looking for all kinds of questions, ranging from the complicated to the more basic, so don&#8217;t be afraid to ask. More complicated tutorials (similar to what I&#8217;ve posted in the past regarding app development and complex mini-sites on tabs) will take a little longer, so be patient, and remember to <a href="http://feeds.feedburner.com/snipe/fbmhell">subscribe to the RSS feed</a> so you&#8217;ll get all the latest posts.</p>
<p>Categories will be added as content demands, of course.</p>
<p>I really want this site to be a great resource for everyone (including myself, as a repository of stuff I know works), so I&#8217;m looking forward to your feedback!</p>
<p>Also keep your eyes peeled for the launch of <a href="http://fbmlwizard.com">FBMLWizard</a>, a drag+drop Facebook fan page tab builder.  I&#8217;ll update you here when it&#8217;s ready.</p>


<p>Possibly related posts:<ol><li><a href='http://www.snipe.net/2008/09/introducing-tehawesomenet/' rel='bookmark' title='Permanent Link: Introducing TehAwesome.Net'>Introducing TehAwesome.Net</a> <small>While Snipe.Net covers lots of tech topics and reviews, I&#8217;ve...</small></li>
<li><a href='http://www.snipe.net/2010/05/facebook-fan-pages-10k/' rel='bookmark' title='Permanent Link: Want to Set a Default Landing Tab on Your Facebook Fan Page? It&#8217;ll Cost You'>Want to Set a Default Landing Tab on Your Facebook Fan Page? It&#8217;ll Cost You</a> <small>You&#8217;re gonna love this. And by love I mean be...</small></li>
<li><a href='http://www.snipe.net/2009/10/mini-site-facebook-static-fbml/' rel='bookmark' title='Permanent Link: Extending Facebook Static FBML Tabs with Dynamic Content'>Extending Facebook Static FBML Tabs with Dynamic Content</a> <small>This tutorial walks you through how to use DynamicFBML to...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2010/07/introducing-fbmhell-com/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Want to Set a Default Landing Tab on Your Facebook Fan Page? It&#8217;ll Cost You</title>
		<link>http://www.snipe.net/2010/05/facebook-fan-pages-10k/</link>
		<comments>http://www.snipe.net/2010/05/facebook-fan-pages-10k/#comments</comments>
		<pubDate>Thu, 20 May 2010 02:25:00 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook application development]]></category>
		<category><![CDATA[facebook applications]]></category>
		<category><![CDATA[facebook fan page]]></category>
		<category><![CDATA[facebook fan pages]]></category>
		<category><![CDATA[fbml]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=3057</guid>
		<description><![CDATA[You&#8217;re gonna love this. And by love I mean be filled with rage. I started receiving emails from people today, frustrated that they could no longer set a specific tab as their default landing tab in Facebook. Everyone assumed it was a bug. It&#8217;s not. UPDATE May 20, 10:45AM: Facebook has actually apologized and done [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.snipe.net%2F2010%2F05%2Ffacebook-fan-pages-10k%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.snipe.net%2F2010%2F05%2Ffacebook-fan-pages-10k%2F&amp;source=snipeyhead&amp;style=normal&amp;service=bit.ly&amp;service_api=R_92bd97f4f8b9fa8a40675b36ea291223" height="61" width="50" /><br />
			</a>
		</div>
<p>You&#8217;re gonna love this. And by love I mean be filled with rage. I started receiving emails from people today, frustrated that they could no longer set a specific tab as their default landing tab in Facebook. Everyone assumed it was a bug. It&#8217;s not.</p>
<p><span id="more-3057"></span><br />
<strong>UPDATE May 20, 10:45AM:</strong> Facebook has actually apologized and done a complete 180 in the last 12 hours and they have reversed this decision. <strong>I&#8217;m leaving the original post up for reference, but as of right now, they have reverted back to the original way it worked, where any page admin can set default tabs, regardless of the size of their fan base.</strong></p>
<p>From <a href="http://forum.developers.facebook.com/viewtopic.php?pid=228104#p228104">their developer forums</a>:</p>
<blockquote><p>
As of last night, we&#8217;ve removed the recently-added authentication requirement for setting custom landing tabs on Pages. The requirement was instituted as part of a Pages quality initiative, and we apologize for the inconvenience this caused to our developer and business community. We are re-investigating the situation, and will not make any further changes without first giving our community standard notice and lead-time.</p>
<p>Thanks for all your feedback,<br />
Matt Trainer</p></blockquote>
<hr />
<strong>Original Post: </strong><br />
According to <a href="http://forum.developers.facebook.com/viewtopic.php?id=58864&#038;p=1">this post on the Facebook Developer forums</a>, Facebook has struck yet another critical blow to smaller companies who are trying to use the Facebook platform to grow their business without a lot of startup capital.  The thread had started by someone asking why they could no longer edit the Facebook Fan Page settings to specify which application tab they wanted to set as the default landing page.</p>
<p>The Facebook platform is known for being exceptionally buggy, so most &#8220;me too&#8221;ers assumed it was a bug and patiently awaited a bug fix confirmation from Facebook. The question went unanswered for a day, until finally a Facebook employee <a href="http://forum.developers.facebook.com/viewtopic.php?pid=227722#p227722">dropped this bombshell</a>.</p>
<blockquote><p>Hello all,</p>
<p>We apologize for not messaging this earlier. Facebook recently made a change requiring that Pages be authenticated before enabling the ability to set a landing tab beyond Wall or Info. To be eligible for authentication, a Page must have greater than 10k fans or the Page admin must work with their ads account manager. If you are already working with an account representative, please contact that representative to begin the authentication process. If you do not work with an account representative, you can use this contact form to inquire about working with an account representative.</p>
<p>Also, for advertisers who don’t have a representative or 10k fans, and want to run ads and land users on a specific tab, you can still do so with standard Facebook ads by making their Destination URL as the URL incl. your tab.  Unfortunately, this currently will not work with &#8220;Fan&#8221; ads.</p>
<p>Thanks,<br />
Matt Trainer</p></blockquote>
<p><strong>What this means is that Facebook Fan Page admins can no longer specify a default landing tab for their fan page UNLESS they have 10k or more fans, OR they &#8220;have an account manager&#8221;. </strong>Having an account manager sounds great, right? The thing is, you have to spend at least $10k in Facebook advertising before they&#8217;ll even talk to you, let alone give you an account manager. That contact form leads to the &#8220;how much money are you willing to spend with us&#8221; form, and if your answer is less than $10k, don&#8217;t expect them to help you.</p>
<p>So once again, the little guy gets screwed. It started in November with their <a href="http://www.dailyglobal.com/2009/11/facebook-contest-is-no-longer-free/">charges to their contest/promotional guidelines</a>, which were also rolled out quietly with little or no notification to developers or users, which dictated something very similar. Certain types of promotions now have to be approved by an account manager. Only you don&#8217;t get an account manager unless you spend upwards of $10k in media buys. </p>
<p>Note that it appears as though this is only effective moving forward.<strong> If you&#8217;ve already set a default tab on your Facebook Fan page, they&#8217;re not going to take it away from you.</strong> At least not at this point. But as of yesterday, if you hadn&#8217;t already set a default tab, you won&#8217;t be able to do so without meeting one of the 10k requirements mentioned above.</p>
<p>I&#8217;m not even going to talk about the recent Facebook privacy issues. This isn&#8217;t the post for it, and honestly, I don&#8217;t have the energy to open that gigantic can of worms right now. But with those recent changes on top of <em>this</em>, I have to ask WTF they are thinking over there. Fuck you, Facebook.</p>


<p>Possibly related posts:<ol><li><a href='http://www.snipe.net/2009/06/fb-fanpages-fbml-box/' rel='bookmark' title='Permanent Link: Static FBML: Not Every Facebook Fan Page Needs An Application'>Static FBML: Not Every Facebook Fan Page Needs An Application</a> <small>You don&#8217;t always need a custom application for your Facebook...</small></li>
<li><a href='http://www.snipe.net/2002/06/google-style-page-numbering-with-x-per-page-and-y-page-numbers-displayed/' rel='bookmark' title='Permanent Link: Google Style Page Numbering (with x per page and y page numbers displayed)'>Google Style Page Numbering (with x per page and y page numbers displayed)</a> <small>With just a few modifications, we can create a piece...</small></li>
<li><a href='http://www.snipe.net/2010/01/facebook-lite-default/' rel='bookmark' title='Permanent Link: Unclutter Your Facebook Feed: Set FB Lite As Your Default'>Unclutter Your Facebook Feed: Set FB Lite As Your Default</a> <small>Whether you&#8217;re on Facebook for fun or for work, chances...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2010/05/facebook-fan-pages-10k/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Taking Your Static FBML Microsite to the Next Level</title>
		<link>http://www.snipe.net/2010/05/static-fbml-microsite-next-level/</link>
		<comments>http://www.snipe.net/2010/05/static-fbml-microsite-next-level/#comments</comments>
		<pubDate>Wed, 19 May 2010 09:18:08 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[clicktohide]]></category>
		<category><![CDATA[clicktoshow]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook fan page]]></category>
		<category><![CDATA[fbjs]]></category>
		<category><![CDATA[fbml]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=3041</guid>
		<description><![CDATA[In a previous tutorial, you learned how to Extend Facebook Static FBML Tabs with Dynamic Content, and now we&#8217;re back to show you how to take it even further by creating sub-nav tab navigation within your Static FBML microsite using only DynamicFBML. The previous tutorial, I walked you through how to use clicktohide and clicktoshow [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.snipe.net%2F2010%2F05%2Fstatic-fbml-microsite-next-level%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.snipe.net%2F2010%2F05%2Fstatic-fbml-microsite-next-level%2F&amp;source=snipeyhead&amp;style=normal&amp;service=bit.ly&amp;service_api=R_92bd97f4f8b9fa8a40675b36ea291223" height="61" width="50" /><br />
			</a>
		</div>
<p>In a previous tutorial, you learned how to <a href="http://www.snipe.net/2009/10/mini-site-facebook-static-fbml/" target="_self">Extend Facebook Static FBML Tabs with Dynamic Content</a>, and now we&#8217;re back to show you how to take it even further by creating sub-nav tab navigation within your Static FBML microsite using only DynamicFBML.</p>
<p><span id="more-3041"></span></p>
<p>The <a href="http://www.snipe.net/2009/10/mini-site-facebook-static-fbml/" target="_self">previous tutorial</a>, I walked you through how to use clicktohide and clicktoshow to enhance your Facebook Fan Page tab. By utilizing these built-in Facebook functions, we can get creative and make image galleries, slide shows, or micro-sites within a single Facebook Fan Page tab. This is especially handy if you&#8217;re trying to fit a lot of content into a single tab, but don&#8217;t want to have one long scrolling mess of a tab. While hand-written FBJS is always an option, Facebook makes it really easy to accomplish this with only the most basic coding skills. </p>
<p>(That said, if you haven&#8217;t read the first tutorial, it will probably be helpful for you to read that one first before continuing with this one &#8211; I assume you understand the concept of clicktohide and clicktoshow here.)</p>
<p>So what you&#8217;ll end up with is a single Facebook Fan Page tab that has a &#8220;main&#8221; navigation that switches content within that single tab, and an additional subnavigation menu that switches content within that one section of the tabbed content. It sounds more confusing than it actually is &#8211; <strong><a href="http://www.facebook.com/pages/SnipeNet/116633947708?v=app_17037175766" target="_blank">click here for a demo</a></strong>.</p>
<p>This is what we created in the previous tutorial:</p>
<p><img src="http://www.snipe.net/wp-content/uploads/2009/10/snipe_tab-560x295.jpg" class="aligncenter size-large wp-image-3042" /></p>
<p>And this is what we&#8217;re going to create in this one:</p>
<p><img src="http://www.snipe.net/wp-content/uploads/2010/05/snipenet-demo-560x290.png" alt="" title="snipenet-demo" width="560" height="290" class="aligncenter size-large wp-image-3042" /></p>
<p>Similar to the example in the first tutorial, we&#8217;re going to do all of this magic simply by using CSS, HTML and the <em>clicktohide</em> and <em>clicktoshow</em> functions. In fact, what we&#8217;re doing here isn&#8217;t that different at all from what we did the first time, but I get a metric-assload of emails asking me how to to it, so here it is. </p>
<pre class="brush: html">&lt;!-- Now set the main tab navigation --&gt;
&lt;a href=&quot;#&quot; clicktoshow=&quot;nav1&quot; clicktohide=&quot;nav2,nav3&quot;&gt;Home&lt;/a&gt;
&lt;a href=&quot;#&quot; clicktoshow=&quot;nav2&quot; clicktohide=&quot;nav1,nav3&quot;&gt;Demo Tab&lt;/a&gt;
&lt;a href=&quot;#&quot; clicktoshow=&quot;nav3&quot; clicktohide=&quot;nav1,nav2&quot;&gt;Locations&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;!-- start the div for the first main nav tab - nav1 --&gt;
&lt;div id=&quot;nav1&quot;&gt;
	&lt;p&gt;Home content&lt;/p&gt;
&lt;/div&gt;
&lt;!-- end the div for the first main nav tab - nav1 --&gt;

&lt;!-- start the div for the second main nav tab - nav2 --&gt;
&lt;div id=&quot;nav2&quot; style=&quot;display: none;&quot;&gt;
	&lt;h1&gt;Example Tabbed Subnav in Microsite&lt;/h1&gt;
	&lt;hr /&gt;
	&lt;a href=&quot;#&quot; clicktoshow=&quot;tab2subnav1&quot; clicktohide=&quot;tab2subnav2,tab2subnav3&quot;&gt;Subnav One&lt;/a&gt;
	&lt;a href=&quot;#&quot; clicktoshow=&quot;tab2subnav2&quot; clicktohide=&quot;tab2subnav1,tab2subnav3&quot;&gt;Subnav Two&lt;/a&gt;
	&lt;a href=&quot;#&quot; clicktoshow=&quot;tab2subnav3&quot; clicktohide=&quot;tab2subnav1,tab2subnav2&quot;&gt;Subnav Three&lt;/a&gt;
	&lt;hr /&gt;
	&lt;br /&gt;

	&lt;!-- start the div for the first subnav tab - tab2subnav1 --&gt;
	&lt;div id=&quot;tab2subnav1&quot;&gt;
		&lt;p&gt;Subnav one content&lt;/p&gt;
	&lt;/div&gt;
	&lt;!-- end the div for the first subnav tab - tab2subnav1 --&gt;

	&lt;!-- start the div for the second subnav tab - tab2subnav2 --&gt;
	&lt;div id=&quot;tab2subnav2&quot; style=&quot;display: none;&quot;&gt;
		&lt;p&gt;Subnav two content&lt;/p&gt;
	&lt;/div&gt;
	&lt;!-- end the div for the second subnav tab - tab2subnav2 --&gt;

	&lt;!-- start the div for the third subnav tab - tab2subnav3 --&gt;
	&lt;div id=&quot;tab2subnav3&quot; style=&quot;display: none;&quot;&gt;
		&lt;p&gt;Subnav three content&lt;/p&gt;
	&lt;/div&gt;
	&lt;!-- end the div for the third subnav tab - tab2subnav3 --&gt;
&lt;/div&gt;
&lt;!-- end the div for the second main nav tab - nav2 --&gt;

&lt;!-- start the div for the third main nav tab - nav3 --&gt;
&lt;div id=&quot;nav3&quot; style=&quot;display: none;&quot;&gt;
	&lt;h1&gt;Locations&lt;/h1&gt;
	&lt;p&gt;Locations content&lt;/p&gt;
&lt;/div&gt;
&lt;!-- end the div for the third main nav tab - nav3 --&gt;</pre>
<p>And that&#8217;s it. That&#8217;s the whole code snippet. For clarity, I have stripped out all of the extra styling, text and fancy button treatments. If you want the exact code used for the demo, scroll down further in the page &#8211; I&#8217;ve included that as well.</p>
<p>I&#8217;ve commented the code pretty liberally, but just to recap what we&#8217;ve done, we created the normal main microsite divs, nav1, nav2, and nav3. These are the &#8220;buckets&#8221; that contain the top-level &#8220;tabs&#8221;, same as we did in the first tutorial. What we&#8217;ve added is a second, smaller set of buckets and corresponding nav. We use the exact same method of clicktohide and clicktoshow &#8211; the only different is what we&#8217;ve name the smaller bucket divs, and where they live. The div structure works out to be something like this:</p>
<blockquote><p><strong>[nav1 div]</strong><br />
&#8211; nav 1 content<br />
[/nav1 div]</p>
<p><strong>[nav 2 div]</strong><br />
&#8211; [subnav 1 div]<br />
&#8211; subnav 1 content<br />
&#8211; [/subnav 1 div]</p>
<p>&#8211; [subnav 2 div]<br />
&#8211; subnav 2 content<br />
&#8211; [/subnav 2 div]</p>
<p>&#8211; [subnav 3 div]<br />
&#8211; subnav 3 content<br />
&#8211; [/subnav 3 div]</p>
<p><strong>[nav3 div]</strong><br />
&#8211; nav 3 content<br />
[/nav3 div]</p></blockquote>
<p>As promised, here&#8217;s the exact code snippet, line by line, that was used to create the demo page.</p>
<pre class="brush: html">&lt;!-- let&#039;s set the style for those fancy buttons --&gt;
&lt;style type=&quot;text/css&quot;&gt;
.awesome, .awesome:visited {
	background: #222 url(http://www.snipe.net/wp-content/uploads/2009/10/alert-overlay.png) repeat-x;
	display: inline-block;
	padding: 5px 10px 6px;
	color: #fff;
	text-decoration: none;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
	-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
	text-shadow: 0 -1px 1px rgba(0,0,0,0.25);
	border-bottom: 1px solid rgba(0,0,0,0.25);
	position: relative;
	cursor: pointer;
}

.awesome:hover {
background-color: #111; color: #fff;
}

.awesome:active {
top: 1px;
}

.awesome, .awesome:visited, .medium.awesome, .medium.awesome:visited {
font-size: 13px;
font-weight: bold;
line-height: 1;
text-shadow: 0 -1px 1px rgba(0,0,0,0.25);
background-color: #630030;
}

.large.awesome, .large.awesome:visited {
font-size: 14px;
padding: 8px 14px 9px;
}

h1 {
color: #a9014b; font-size: 26px;
}

p {
font-size: 15px;
}
&lt;/style&gt;

&lt;!-- Now set the main tab navigation --&gt;
&lt;strong&gt;&lt;a href=&quot;#&quot; clicktoshow=&quot;nav1&quot; clicktohide=&quot;nav2,nav3&quot; class=&quot;large awesome&quot;&gt;Home&lt;/a&gt;&lt;/strong&gt;
&lt;strong&gt;&lt;a href=&quot;#&quot; clicktoshow=&quot;nav2&quot; clicktohide=&quot;nav1,nav3&quot; class=&quot;large awesome&quot;&gt;Demo Tab&lt;/a&gt;&lt;/strong&gt;
&lt;strong&gt;&lt;a href=&quot;#&quot; clicktoshow=&quot;nav3&quot; clicktohide=&quot;nav1,nav2&quot; class=&quot;large awesome&quot;&gt;Locations&lt;/a&gt;&lt;/strong&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;!-- start the div for the first main nav tab - nav1 --&gt;
&lt;div id=&quot;nav1&quot;&gt;
	&lt;img src=&quot;http://www.snipe.net/wp-content/uploads/2009/10/alison-fixed1.jpg&quot; align=&quot;right&quot;/&gt;
	&lt;h1&gt;Default Content &lt;/h1&gt;
	&lt;p&gt;Click on the &quot;Demo Tab&quot; above  to see an example of
	multi-level tabbing in a purely FBML microsite.
	With a little practice and patience, you could
	recreate a fairly large website using this method.
	(The content of these subnavs are quotes from
	Monty Python and the Holy Grail, for your entertainment.)&lt;/p&gt;
&lt;/div&gt;
&lt;!-- end the div for the first main nav tab - nav1 --&gt;

&lt;!-- start the div for the second main nav tab - nav2 --&gt;
&lt;div id=&quot;nav2&quot; style=&quot;display: none;&quot;&gt;
	&lt;h1&gt;Example Tabbed Subnav in Microsite&lt;/h1&gt;
	&lt;hr /&gt;
	&lt;strong&gt;&lt;a href=&quot;#&quot; clicktoshow=&quot;tab2subnav1&quot; clicktohide=&quot;tab2subnav2,tab2subnav3&quot; class=&quot;medium awesome&quot;&gt;Subnav One&lt;/a&gt;&lt;/strong&gt;
	&lt;strong&gt;&lt;a href=&quot;#&quot; clicktoshow=&quot;tab2subnav2&quot; clicktohide=&quot;tab2subnav1,tab2subnav3&quot; class=&quot;medium awesome&quot;&gt;Subnav Two&lt;/a&gt;&lt;/strong&gt;
	&lt;strong&gt;&lt;a href=&quot;#&quot; clicktoshow=&quot;tab2subnav3&quot; clicktohide=&quot;tab2subnav1,tab2subnav2&quot; class=&quot;medium awesome&quot;&gt;Subnav Three&lt;/a&gt;&lt;/strong&gt;
	&lt;hr /&gt;
	&lt;br /&gt;

	&lt;!-- start the div for the first subnav tab - tab2subnav1 --&gt;
	&lt;div id=&quot;tab2subnav1&quot;&gt;
		&lt;p style=&quot;color: red; text-weight: bold;&quot;&gt;Hey, this
		is the content for &lt;strong&gt;Subnav One&lt;/strong&gt;!
		You can put photos, text, even videos in here.&lt;/p&gt;
		&lt;p&gt;Bravely bold Sir Robin rode forth from Camelot.
		He was not afraid to die, oh brave Sir Robin.
		He was not at all afraid to be killed in nasty ways,
		brave, brave, brave, brave Sir Robin.
		He was not in the least bit scared to be mashed
		into a pulp, or to have his eyes gouged out,
		and his elbows broken. To have his kneecaps
		split, and his body burned away, and his limbs
		all hacked and mangled, brave Sir Robin.
		His head smashed in and heart cut out, and his
		liver removed, and his bowels unplugged, and
		his nostrils raped and his bottom burned off and his penis... &lt;/p&gt;
	&lt;/div&gt;
	&lt;!-- end the div for the first subnav tab - tab2subnav1 --&gt;

	&lt;!-- start the div for the second subnav tab - tab2subnav2 --&gt;
	&lt;div id=&quot;tab2subnav2&quot; style=&quot;display: none;&quot;&gt;
		&lt;p style=&quot;color: blue; text-weight: bold;&quot;&gt;Hey,
		this is the content for &lt;strong&gt;Subnav Two&lt;/strong&gt;!
		You can put photos, text, even videos in here.&lt;/p&gt;
		&lt;p&gt;When I first came here, this was all swamp. Everyone
		said I was daft to build a castle on a swamp,
		but I built in all the same, just to show them. It sank
		into the swamp. So I built a second one.
		That sank into the swamp. So I built a third.
		That burned down, fell over, then sank into
		the swamp. But the fourth one stayed up. And that&#039;s
		what you&#039;re going to get, Lad, the strongest castle in
		all of England. &lt;/p&gt;
	&lt;/div&gt;
	&lt;!-- end the div for the second subnav tab - tab2subnav2 --&gt;

	&lt;!-- start the div for the third subnav tab - tab2subnav3 --&gt;
	&lt;div id=&quot;tab2subnav3&quot; style=&quot;display: none;&quot;&gt;
		&lt;p style=&quot;color: green; text-weight: bold;&quot;&gt;Hey,
		this is the content for &lt;strong&gt;Subnav Three&lt;/strong&gt;!
		You can put photos, text, even videos in here.&lt;/p&gt;
		&lt;p&gt;Follow. But. Follow only if ye be men of valour,
		for the entrance to this cave is guarded by a
		creature so foul, so cruel that no man yet has fought
		with it and lived. Bones of full fifty men
		lie strewn about its lair. So, brave knights, if you
		do doubt your courage or your strength,
		come no further, for death awaits you all with
		nasty, big, pointy teeth. &lt;/p&gt;
	&lt;/div&gt;
	&lt;!-- end the div for the third subnav tab - tab2subnav3 --&gt;
&lt;/div&gt;
&lt;!-- end the div for the second main nav tab - nav2 --&gt;

&lt;!-- start the div for the third main nav tab - nav3 --&gt;
&lt;div id=&quot;nav3&quot; style=&quot;display: none;&quot;&gt;
	&lt;img src=&quot;http://www.snipe.net/wp-content/uploads/2009/10/alison-grr.jpg&quot; align=&quot;right&quot;/&gt;
	&lt;h1&gt;Locations&lt;/h1&gt;
	&lt;p&gt;This is the locations &quot;page&quot;. You can put text, images, even video here.&lt;/p&gt;
&lt;/div&gt;
&lt;!-- end the div for the third main nav tab - nav3 --&gt;</pre>
<p>The above is the <em>exact</em> code snippet I used to create that demo page, specifically. (In other words, please don&#8217;t email or comment asking me for the source. This is ALL there is, including the yummy button styling.)</p>
<p>As long as you properly nest your divs (and use valid HTML with no wonky or open tags), this will work every single time. The names of the divs don&#8217;t matter, as long as they match the clicktohide/clicktoshow div names you&#8217;re specifying in the nav. </p>
<p>If it doesn&#8217;t work when you try it, and you&#8217;re 100% sure you copy+pasted exactly from this tutorial, try again later. Sometimes Facebook has issues, and the only way to work around it is to wait until they&#8217;re not having issues.</p>
<p>I&#8217;d like to once again remind you that you&#8217;re not at all restricted to using the clicktohide and clicktoshow functions in the way I&#8217;ve outlined them here. My goal isn&#8217;t to show you the only things that are possible , but rather to get you familiar with the concepts so that you can use your own imagination and apply them in unique and exciting ways. </p>
<p>If you&#8217;ve done something cool with clcicktohide/clicktoshow (and let&#8217;s not forget clicktotoggle from the last tutorial), make sure you drop a link in the comments. I love to see what other people are working on. It makes my own raging Facebook development Hell a little easier to bear.</p>


<p>Possibly related posts:<ol><li><a href='http://www.snipe.net/2009/10/mini-site-facebook-static-fbml/' rel='bookmark' title='Permanent Link: Extending Facebook Static FBML Tabs with Dynamic Content'>Extending Facebook Static FBML Tabs with Dynamic Content</a> <small>This tutorial walks you through how to use DynamicFBML to...</small></li>
<li><a href='http://www.snipe.net/2009/06/fb-fanpages-fbml-box/' rel='bookmark' title='Permanent Link: Static FBML: Not Every Facebook Fan Page Needs An Application'>Static FBML: Not Every Facebook Fan Page Needs An Application</a> <small>You don&#8217;t always need a custom application for your Facebook...</small></li>
<li><a href='http://www.snipe.net/2006/06/creating-a-multi-level-listbox-in-phpmysql/' rel='bookmark' title='Permanent Link: Creating a Multi-Level Listbox in PHP/mySQL'>Creating a Multi-Level Listbox in PHP/mySQL</a> <small>This lets you create a nested multi-level category menu through...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2010/05/static-fbml-microsite-next-level/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>Using Google Analytics on Facebook Fan Pages</title>
		<link>http://www.snipe.net/2010/04/google-analytics-on-facebook-fan-pages/</link>
		<comments>http://www.snipe.net/2010/04/google-analytics-on-facebook-fan-pages/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 19:56:17 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook fan pages]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[reporting]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=3008</guid>
		<description><![CDATA[Can you use Google Analytics on Facebook fan pages and fan page walls? You betcher sweet ass you can. If you&#8217;ve ever created a Facebook fan page, you&#8217;ve probably realized that the &#8220;reporting&#8221; that Facebook provides is basically useless. Because Facebook limits the Javascript you can use on Fan Pages, you cannot implement your own [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.snipe.net%2F2010%2F04%2Fgoogle-analytics-on-facebook-fan-pages%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.snipe.net%2F2010%2F04%2Fgoogle-analytics-on-facebook-fan-pages%2F&amp;source=snipeyhead&amp;style=normal&amp;service=bit.ly&amp;service_api=R_92bd97f4f8b9fa8a40675b36ea291223" height="61" width="50" /><br />
			</a>
		</div>
<p>Can you use Google Analytics on Facebook fan pages and fan page walls? You betcher sweet ass you can.</p>
<p><span id="more-3008"></span></p>
<p>If you&#8217;ve ever created a Facebook fan page, you&#8217;ve probably realized  that the &#8220;reporting&#8221; that Facebook provides is basically useless. Because Facebook limits the Javascript you can use on Fan Pages, you  cannot implement your own analytics packages on fan pages. Or at least, that&#8217;s what they want you to believe.</p>
<p>For Facebook applications, there is an FBML tag that will allow you <a href="http://wiki.developers.facebook.com/index.php/Fb:google-analytics" target="_blank">place your Google Analytics code on the canvas page</a> &#8211; but <strong>this FBML will not work on fan pages, application tabs, or <em>anywhere</em> other than the canvas page</strong>.</p>
<p>Fortunately, implementing Google Analytics on your Facebook fan page is possible, with a little PHP trickery. The basic gist of the workaround is to include your Google Analytics code as an image instead of placing the javascript into the FBML code.</p>
<p>Rather than writing something from scratch, it makes more sense to direct you to <a href="http://www.webdigi.co.uk/blog/2010/google-analytics-for-facebook-fan-pages/" target="_blank">a post on the Webdigi blog</a> that offers a free set of PHP scripts that will let you do exactly that.</p>
<p>The long and short of what the guys over at Webdigi are doing with their scripts is simply to call a PHP script instead of an actual image file in the &lt;img src&gt; code. This is not unlike the &#8220;tracking pixels&#8221; that are often used in email newsletters, since Javascript is not an option there either. So the concept isn&#8217;t new, but it&#8217;s not common knowledge that it works on Facebook.</p>
<p>The PHP script they are calling contains the Google Analytics code, and accepts parameters so that you can re-use the script on multiple fan pages (or different pages in an application) simply by setting different parameters.</p>
<p>When your Static FBML tab, application tab or non-canvas app page loads, it loads that &#8220;image&#8221; as part of the page. That &#8220;image&#8221; then pings the PHP script, which pings Google Analytics. This could be adapted for other reporting systems as well, using the same concepts.</p>
<p>The guys do a nice job with their script, and they even offer a <a href="http://ga.webdigi.co.uk/" target="_blank">wizard</a> that helps you figure out what you need to put where.</p>
<p>I had rigged up a script a few months ago, but I never really had the  time to package it for the general public, make it easy to configure,  and so on, so go ahead and check out their script package.</p>
<p>Using this method, you’ll even be able to <strong>set up funnels and goals</strong> for your Facebook fan page stats, and Webdigi offers a great breakdown  on how to<strong> <a href="http://www.webdigi.co.uk/blog/2010/tracking-user-engagement-on-facebook-fan-pages/" target="_blank">tell the difference between fan and non-fan activity</a></strong> on your fan pages in your reporting.</p>
<p>Enjoy!</p>


<p>Possibly related posts:<ol><li><a href='http://www.snipe.net/2009/06/fb-fanpages-fbml-box/' rel='bookmark' title='Permanent Link: Static FBML: Not Every Facebook Fan Page Needs An Application'>Static FBML: Not Every Facebook Fan Page Needs An Application</a> <small>You don&#8217;t always need a custom application for your Facebook...</small></li>
<li><a href='http://www.snipe.net/2008/11/let-me-google-that-for-you/' rel='bookmark' title='Permanent Link: No, No &#8211; Let Me Google That For You'>No, No &#8211; Let Me Google That For You</a> <small>Have you ever had someone ask you the answer to...</small></li>
<li><a href='http://www.snipe.net/2008/06/compare-website-stats-using-google-trends/' rel='bookmark' title='Permanent Link: Compare Website Stats Using Google Trends'>Compare Website Stats Using Google Trends</a> <small>Google Trends has a newly-added ability to show unique visitor...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2010/04/google-analytics-on-facebook-fan-pages/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Use Your Own Domain for OpenID Logins</title>
		<link>http://www.snipe.net/2010/02/use-your-own-domain-for-openid-logins/</link>
		<comments>http://www.snipe.net/2010/02/use-your-own-domain-for-openid-logins/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 03:04:10 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[myspace]]></category>
		<category><![CDATA[openid]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=2902</guid>
		<description><![CDATA[I&#8217;m a big fan of OpenID, and the concept of a unified login system, but the implemention of OpenID on many of the websites that use it is often miserable. This article can simplify your OpenID login experience. NOTE: If you want to skip all my chatter and explanation and just get to the code, [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.snipe.net%2F2010%2F02%2Fuse-your-own-domain-for-openid-logins%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.snipe.net%2F2010%2F02%2Fuse-your-own-domain-for-openid-logins%2F&amp;source=snipeyhead&amp;style=normal&amp;service=bit.ly&amp;service_api=R_92bd97f4f8b9fa8a40675b36ea291223" height="61" width="50" /><br />
			</a>
		</div>
<p>I&#8217;m a big fan of <a href="http://openid.net/">OpenID</a>, and the concept of a unified login system, but the implemention of OpenID on many of the websites that use it is often miserable. This article can simplify your OpenID login experience.<br />
<span id="more-2902"></span></p>
<p>NOTE: If you want to skip all my chatter and explanation and just get to the code, check out <a href="http://blog.stackoverflow.com/2009/01/using-your-own-url-as-your-openid/" target="_blank">Jeff Atwood&#8217;s post on the StackOverflow blog</a>. It&#8217;s much less verbose, but probably not ideal for people unfamiliar with OpenID.</p>
<h3>What is OpenID?</h3>
<p>OpenID is &#8220;a decentralized authentication protocol that makes it easy for people to sign up and access web accounts&#8221;. That means if you create an account on any website using OpenID (such as Google, Yahoo, Flickr, MySpace, AOL, WordPress.Com, LiveJournal, Get Satisfaction, and more recently Facebook, to name just a few), you can use that account to login to any website using OpenID. It attempts to simplify logging into websites by using one account, and therefore not having to create a new username and password set for every website on which you wish to create an account.</p>
<p>Many studies have shown that the average web user feels overwhelmed by the number of usernames and passwords they have to remember, which means they often end up using very simple paswords that are easy to remember, and often use the same password for multiple websites. </p>
<p>This is, of course, a big no-no. If one of the websites gets compromised and user login data is exposed, malicious parties now potentially have access to all of the websites for which the user has used the same password. So if my BigButtPorn.Com account gets hacked, and I use the same login for my bank, my banking login credentials are now compromised. Unifying a login makes user registrations easier, so people will arguably be more apt to use a strong password for that one OpenID account. (I should mention that I have no idea if BigButtPorn.Com exists, or if it uses OpenID. As such, the example above should not be considered an endorsement for BigButtPorn.Com, or any other kind of butt porn, for that matter.)</p>
<p>Incidentally, in this day and age, there is absolutely no reason for anyone to still be using the same password for ANY two websites. Thanks to applications like <a href="http://agilewebsolutions.com/products/1Password" target="_blank">1Password</a>, hard-to-guess passwords are automatically generated and stored for easy access, and every popular web browser allows you to store passwords. Remembering passwords isn&#8217;t even something people should be concerned with.</p>
<h3>How Does it Work?</h3>
<p>If I have a Livejournal account where my journal address is snipeyhead.livejournal.com and I want to use my LiveJournal OpenID to login to a different website, I would enter <em>snipeyhead.livejournal.com</em> in the OpenID url field of the site:</p>
<p><img class="aligncenter size-large wp-image-2920" title="snipeyhead" src="http://www.snipe.net/wp-content/uploads/2010/02/snipeyhead-560x218.png" alt="" width="560" height="218" /></p>
<p>(Alternatively, if the OpenID provider&#8217;s icon is listed, as LiveJournal&#8217;s is above, I could login without knowing my OpenID url. Most OpenID logins will give you the option of selecting which service you&#8217;d like to use, or manually entering your OpenID url.)</p>
<p>If this is the first time I&#8217;m using this OpenID account to login to this particular website, I&#8217;ll be taken to my OpenID provider&#8217;s website (in this example, Livejournal.Com) and I&#8217;ll be asked if I want to allow the website to use my OpenID account to authenticate. I will then confirm this, and be taken back to the original website I&#8217;m trying to login to.</p>
<p>Pretty simple, right? Unfortunately, this is often not as straightforward as it seems, not because of OpenID itself, but because of the way many websites implement their OpenID system.</p>
<h3>Where it Gets Wonky</h3>
<p>The way many websites implement OpenID can be utterly maddening, if you have more than one OpenID account &#8211; which you probably do.</p>
<p><strong>I was recently on the <a href="http://uxexchange.com/" target="_blank">UXExchange</a> website and was nearly apoplectic with rage as I tried OpenID after OpenID account.</strong> I know I have an account there. I have had an account there since the day they launched. But I have NO idea which OpenID I created my account with.</p>
<p>After the 5th try, I gave up and realized I&#8217;d have to create a new account. This pissed me off for a few reasons, not the least of which being that in this particular community, prior community engagement (the number of questions you&#8217;ve posted and answered, etc) establish your rank. By creating a new account, I&#8217;m effectively seen by the community as a newbie, and I&#8217;m enough of a nerd that stuff like that matters to me. </p>
<p>Ironically, UXEchange is a <em>usability and information architecture</em> community. I know that I can email them to consolidate my accounts, and I probably will, but this experience really helped underline how easy it is to screw up the user interface for OpenID. </p>
<p>In short, the problem becomes remembering which out of the collection of OpenIDs you have is the one you&#8217;ve used to initially create an account with a particular website.</p>
<h3>Making it a Little Easier</h3>
<p><strong>To use OpenID without losing your mind, you have a few options. </strong>The easier would be to decide that you will only ever use one specific OpenID to login to third-party websites, and leave it at that. The problem I have with that is that mainstream adoption of OpenID has happened over a very long period of time, so I may have started off with only LiveJournal as an OpenID account, but then gradually Google, Blogger, Myspace, etc added OpenID support, so I decided that I&#8217;d rather use one of the newer ones instead of my LiveJournal account. This is how things got fragmented and confusing for me, and I would assume other people as well.</p>
<p><strong>Fortunately, there is a little known feature of OpenID called <em>delegation</em> that can help save your sanity. </strong>If you have your own website with it&#8217;s own domain name, you can delegate your own domain name to act as your OpenID.</p>
<p><strong>I decided to start from scratch.</strong> I don&#8217;t know if I&#8217;ll always have my LiveJournal account, I don&#8217;t know how much I trust Google anymore, I hate MySpace, I don&#8217;t use Blogger, and so on. I created an account at <strong><a href="https://www.myopenid.com/" target="_blank">myopenid.com</a></strong>, a very simple OpenID provider that is easy to remember and offers persona managament.</p>
<p>A 20-second registration later, I was set up with <strong>snipe.myopenid.com</strong> as my new OpenID identifier.</p>
<p>To enable my domain, snipe.net, to act as a delegate for MyOpenID.Com, I added the following to the header of Snipe.Net:</p>
<pre class="brush: html">&lt;link rel=&quot;openid.server&quot; href=&quot;http://www.myopenid.com/server&quot;  /&gt;
2.&lt;link rel=&quot;openid.delegate&quot; href=&quot;http://snipe.myopenid.com/&quot; /&gt;
3.&lt;link rel=”openid2.provider” href=”http://www.myopenid.com/server” /&gt;
4.&lt;link rel=”openid2.local_id” href=”http://snipe.myopenid.com/” /&gt;</pre>
<p>Now, instead of trying to remember which OpenID provider I used, I use &#8216;snipe.net&#8217; as my OpenID manual url, and it automatically knows to use my account at MyOpenID to authenticate. Since I&#8217;m the only one that has control over Snipe.Net, I&#8217;m the only one that can delegate Snipe.Net as snipe.myopenid.com.</p>
<p><img src="http://www.snipe.net/wp-content/uploads/2010/02/snipenet-560x220.png" alt="" title="snipenet" width="560" height="220" class="aligncenter size-large wp-image-2922" /></p>
<p>So that&#8217;s all there is to it. I have heard that delegating using Google and Yahoo is tricky, if not impossible, but I haven&#8217;t looked into it. I personally prefer to avoid letting either of those companies have too much of a reach over what I&#8217;m commenting on and where.</p>


<p>Possibly related posts:<ol><li><a href='http://www.snipe.net/2009/05/new-facebook-phishing-attempts/' rel='bookmark' title='Permanent Link: New Facebook Phishing Attempts'>New Facebook Phishing Attempts</a> <small>Looks like a new round of phishing attacks are well...</small></li>
<li><a href='http://www.snipe.net/2007/02/my-forum-domain-banlist/' rel='bookmark' title='Permanent Link: My forum domain banlist'>My forum domain banlist</a> <small>I keep my list of banned email addresses and domains...</small></li>
<li><a href='http://www.snipe.net/2008/10/is-imappop3-gmail-or-gtalk-periodically-rejecting-your-password/' rel='bookmark' title='Permanent Link: Is IMAP/POP3 Gmail or Gtalk periodically rejecting your password?'>Is IMAP/POP3 Gmail or Gtalk periodically rejecting your password?</a> <small>I have run into this many times: my Gtalk password...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2010/02/use-your-own-domain-for-openid-logins/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Unclutter Your Facebook Feed: Set FB Lite As Your Default</title>
		<link>http://www.snipe.net/2010/01/facebook-lite-default/</link>
		<comments>http://www.snipe.net/2010/01/facebook-lite-default/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 07:44:54 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Life Tools]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=2778</guid>
		<description><![CDATA[Whether you&#8217;re on Facebook for fun or for work, chances are your newsfeed is crammed full of inane application notifications that make it hard to actually find the real content you actually want to see from your friends. UPDATE: Sadly, in April 2010, Facebook shut down FB Lite so this article is now moot. It [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.snipe.net%2F2010%2F01%2Ffacebook-lite-default%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.snipe.net%2F2010%2F01%2Ffacebook-lite-default%2F&amp;source=snipeyhead&amp;style=normal&amp;service=bit.ly&amp;service_api=R_92bd97f4f8b9fa8a40675b36ea291223" height="61" width="50" /><br />
			</a>
		</div>
<p>Whether you&#8217;re on Facebook for fun or for work, chances are your newsfeed is crammed full of inane application notifications that make it hard to actually find the real content you actually want to see from your friends.</p>
<h2><span id="more-2778"></span>UPDATE: Sadly, in April 2010, <a href="http://www.macworld.com/article/150741/2010/04/facebooklite.html?lsrc=rss_main" target="_blank">Facebook shut down FB Lite</a> so this article is now moot. It was a good run while it lasted. <img src='http://www.snipe.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </h2>
<p>Your Facebook friends are total tools with entirely too much free time on their hands. So are mine. If you want to continue to use Facebook but bypass all of the crap that fills your Facebook homepage newsfeed, you&#8217;re in luck.</p>
<h3>Facebook Lite?</h3>
<p>A few months ago, Facebook introduced Facebook Lite &#8211; a pared down version of Facebook for people who were frustrated with the ever-sluggish load time of the normal Facebook homepage. This lite version loads fewer javascript libraries and is blazing fast compared to to dismal experience that regular Facebook.</p>
<p>The speed increase is great &#8211; but there is an awesome added bonus that isn&#8217;t widely publicized:</p>
<p><strong>Using Facebook Lite, you will never see another application notification again.</strong></p>
<p>That&#8217;s right. Facebook Lite does not display application notifications. At all. Which is awesome-covered awesome with awesome filling.</p>
<p>To see it in action, just point your browser to <a href="http://lite.facebook.com">http://lite.facebook.com</a>.</p>
<p><strong>But wait &#8211; there&#8217;s more.</strong></p>
<h3>Kiss Those Application Notifications Goodbye For Good</h3>
<p>Even more awesome, there is a way to <strong>set Facebook Lite as your default view</strong>, so that every time you go to your Facebook homepage newsfeed, it loads the Lite version instead of the Clusterfuck version. Here&#8217;s how to do it:<br />
<strong> </strong></p>
<ol>
<li><strong>Go to <a href="http://lite.facebook.com/settings/defaultsite/">http://lite.facebook.com/settings/defaultsite/</a>.</strong></li>
<li><strong>Select Facebook Lite from the radio boxes.</strong></li>
<li><strong>Click &#8220;Save&#8221;.</strong></li>
<li><strong>Rejoice.</strong></li>
</ol>
<p><strong> </strong></p>
<div id="attachment_2780" class="wp-caption aligncenter" style="width: 469px"><a href="http://lite.facebook.com/settings/defaultsite/"><img class="size-full wp-image-2780" title="fb-lite" src="http://www.snipe.net/wp-content/uploads/2010/01/fb-lite.jpg" alt="" width="459" height="194" /></a><p class="wp-caption-text">Set Facebook Lite as your default in your settings</p></div>
<p>That&#8217;s all there is to it. Honest. You&#8217;re free. You&#8217;re welcome.</p>
<p>Granted, this trick won&#8217;t stop your friends from posting a thousand pictures of their cat (yeah, guilty) or drunkenly updating their status in horrifyingly graphic detail that makes you want to claw your eyes out &#8211; but I don&#8217;t think there&#8217;s an app for that yet.</p>


<p>Possibly related posts:<ol><li><a href='http://www.snipe.net/2010/05/facebook-fan-pages-10k/' rel='bookmark' title='Permanent Link: Want to Set a Default Landing Tab on Your Facebook Fan Page? It&#8217;ll Cost You'>Want to Set a Default Landing Tab on Your Facebook Fan Page? It&#8217;ll Cost You</a> <small>You&#8217;re gonna love this. And by love I mean be...</small></li>
<li><a href='http://www.snipe.net/2008/12/planning-a-facebook-application-part-two/' rel='bookmark' title='Permanent Link: Planning a Facebook Application: Part Two'>Planning a Facebook Application: Part Two</a> <small>I know I promised you that we&#8217;d get into some...</small></li>
<li><a href='http://www.snipe.net/2008/09/planning-a-facebook-application/' rel='bookmark' title='Permanent Link: Planning Your Facebook Application'>Planning Your Facebook Application</a> <small>This is part one of a series &#8211; the technical...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2010/01/facebook-lite-default/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Death in the Digital Age</title>
		<link>http://www.snipe.net/2009/12/death-in-the-digital-age/</link>
		<comments>http://www.snipe.net/2009/12/death-in-the-digital-age/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 23:34:10 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Geek Life]]></category>
		<category><![CDATA[Life Tools]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[death]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[myspace]]></category>
		<category><![CDATA[social networking]]></category>
		<category><![CDATA[social networks]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=2726</guid>
		<description><![CDATA[Because it&#8217;s New Years Eve, and I&#8217;m kind of a morbid asshole, I thought I&#8217;d harsh your alcohol-induced buzz with some grim reality by asking the question: What happens to your online content when die? Sure, there are online memorials through which your family can set up a memorial site that will be hosted until [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.snipe.net%2F2009%2F12%2Fdeath-in-the-digital-age%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.snipe.net%2F2009%2F12%2Fdeath-in-the-digital-age%2F&amp;source=snipeyhead&amp;style=normal&amp;service=bit.ly&amp;service_api=R_92bd97f4f8b9fa8a40675b36ea291223" height="61" width="50" /><br />
			</a>
		</div>
<p>Because it&#8217;s New Years Eve, and I&#8217;m kind of a morbid asshole, I thought I&#8217;d harsh your alcohol-induced buzz with some grim reality by asking the question: <em>What happens to your online content when die?</em><br />
<span id="more-2726"></span><br />
Sure, there are online memorials through which your family can set up a memorial site that will be hosted until the end of time (or until the company hosting it goes out of business), but what about the online content you yourself have created? For some of you, &#8220;online content&#8221; might only mean your Facebook, FriendFeed, Twitter or (God forbid) Myspace accounts. For others who are more tech savvy and prolific, this could mean literally dozens of websites with hundreds or thousands of blog posts, tutorials, e-books (hah!), photos, slideshows, and so on.</p>
<p>Because I am not aging gracefully, and because what I would consider my life&#8217;s work lives almost entirely online in the ether, I think about this a lot. Probably more than is healthy, but that&#8217;s what booze is for. </p>
<p>This question is more complex than it seems, and becomes increasingly complicated if you have your own independent websites, as I&#8217;ll discuss later in this post.  </p>
<h3>Social Networking Sites</h3>
<p>In the case of social networking sites, in most cases, your account will simply linger online with no new posts unless you have given a friend or family member your login information through which they could post a death notice and/or delete your account. In the case of MySpace, there are websites such as <a href="http://www.mydeathspace.com/">MyDeathSpace</a> that allows you to memorialize a recently deceased friend or family member&#8217;s MySpace account.</p>
<p>The exception to this (so far) is Facebook. When you join the choir invisible, friends or family can <a href="http://www.facebook.com/help/contact.php?show_form=deceased">fill out a form to report a profile as deceased</a>, which requires knowledge of the person’s date of birth, email address used for the account, network, and full name. Once a profile has been set to &#8216;deceased&#8217;, friends may continue to post memorial notes on your wall, but you will not (or should not, anyway &#8211; I have found this to be buggy) show up in Facebook application invites, etc.</p>
<p>If you have a paid account of any kind, for example with Flickr or LiveJournal, your account will obviously revert to unpaid when the yearly renewal fee is not paid. Even so, unless you have provided instructions and your login information to someone still alive, the accounts will remain available and untouched unless a family member petitions to have them deleted.</p>
<h3>Emails from Beyond the Grave</h3>
<p>If you&#8217;re the kind of control freak that wants to have a say in who gets notified about your death and what that message says (no shame in it &#8211; I *am* that freak), services such as <a href="http://www.greatgoodbye.com/">GreatGoodbye.Com</a> or <a href="http://www.mylastemail.com/our_services.asp">MyLastEmail</a> will let you prepare a message (including photos and video) and recipients in advance. A code is generated that you give to a trusted friend or family member, and when you finally lay down for your eternal dirtnap, that person activates the code and the emails get sent.</p>
<p>I&#8217;m a little torn on this. While I want to make sure that I get a chance (even if posthumously) to tell the people I love how much I loved them, not all of my loved ones have email, and frankly, it still comes off a little creepy to me. </p>
<p>Of course, if you&#8217;re a passive-aggressive dick, you could use a service like this to get the final digs in on someone you weren&#8217;t very fond of. You will absolutely have the last word, although honestly, if that kind of thing is worth the cash to you, the world is probably better off without you. </p>
<h3>Dead Man&#8217;s Switch</h3>
<p>A digital dead man&#8217;s switch works exactly like the dead man&#8217;s switches in movies, only instead of blowing yourself and the hostages up if your finger comes off the button, your carefully crafted post-death plan is triggered. </p>
<p>As Tony Geis explains in an interesting article from NPR entitled <em><a href="http://www.npr.org/blogs/alltechconsidered/2009/06/dead_mans_switch.html">Dead Man&#8217;s Switch: CC Me From The Other Side</a></em>:</p>
<blockquote><p>&#8220;I concocted the idea one day when I was almost hit by a car. A program running on a couple of my servers supervises my online presence in various ways. It notices if I post on Facebook, Twitter, my blog, etc., log into any of my servers, send an e-mail, etc. Things like that. If it becomes apparent that I haven&#8217;t been around in quite some time, it &#8216;unlocks&#8217; and a trusted individual can activate it. When it is activated, various trusted individuals will be sent e-mails explaining the situation and be granted access to my accounts.&#8221;</p></blockquote>
<p>Geis rigged his own system as an alternative to using a service like GreatGoodbye, but not everyone will have that level of technical skill, so perhaps a service like GreatGoodbye (or others) would be a good idea if only to email your selected, trusted contacts your login information and instructions in the event of your passing.</p>
<p><a href="http://redirectingat.com/?id=92X363&#038;url=http%3A%2F%2Fwww.msnbc.msn.com%2Fid%2F11129851">According to Forbes magazine</a>, if you&#8217;re serious about keeping your online presence going you should appoint an executor, somebody who&#8217;ll handle your affairs when you&#8217;re gone. Leave him or her your logins and other key information, and if there&#8217;s stuff you&#8217;d rather the family didn&#8217;t see you can arrange for the executor to delete specific content from your computer or online accounts.</p>
<p>Speaking of deleting your social media profiles, website <a href="http://suicidemachine.org/">SuicideMachine</a> helps you do just that. It was <a href="http://lifehacker.com/5439905/web-20-suicide-machine-offs-your-online-identity">recently featured on Lifehacker.Com</a>, so if it&#8217;s not responding quickly &#8211; or at all &#8211; that&#8217;s why. Just give it a little time and check back when the crushing force of the Lifehacker effect has subsided. </p>
<p>Incidentally, although we&#8217;re discussing the topic of actual IRL death it should be noted that SuicideMachine&#8217;s name refers to killing off on your social networking profiles. It&#8217;s not advocating suicide (that I know of) and isn&#8217;t positioned to be a tool to delete your profiles after you&#8217;ve passed on, but the combination of SuicideMachine and the Dead Man&#8217;s Switch might work in a will to make it easier for your family to delete your online presence if that is your final wish. It works with most of the popular social networks, and can really cut down the time it takes to nuke them all. Sadly, Facebook is being douchey and <a href="http://www.cio.com/article/512565/Facebook_Blocks_Web_2.0_Suicide_Machine_">blocking their IP</a>, so the Facebook integration aspect isn&#8217;t functioning right now.</p>
<h3>Challenges</h3>
<p>As I mentioned, I&#8217;ve thought about this a lot. While some of the solutions mentioned above are better than nothing, I think they overlook some less-obvious issues &#8211; or at least issues that come up when your online presence is a little more complicated.</p>
<h4>Multiple-Personalities</h4>
<p>In my case, I have a robust online &#8220;persona&#8221; on Twitter and other social networks (even this blog) that are very true to my personality. I&#8217;m snarky, occasionally funny and mean, and I see my interaction online as a bit of a performance art. I also, however, run a very serious non-profit organization that I founded 8 years ago. Clearly, the messaging I might wish to send to my Twitter friends would likely be different than the messaging I would send to my colleagues through my non-profit work. (Probably slightly less swearing. Probably.) In short, I maintain a professional appearance for the benefit of my organization, as one would expect of the President of any serious company. Trying to sort out the nuances of which group gets what messaging would be complicated and challenging, and the very last thing I would want would be to screw that up and send a message intended for my personal friends to my organization&#8217;s list. I can see it now: &#8220;See you in hell, bitches! I&#8217;ve brought the beer, you bring the hookers and blow!&#8221;</p>
<h4>Real-Life Friends? Online Friends?</h4>
<p>Another interesting challenge is that with social networks evolving to the point where they are used to connect with people you didn&#8217;t know before, the lines between &#8220;real life friends&#8221; and &#8220;online friends&#8221; becomes more and more blurred. Twitter is a great example of this. The followers on Twitter that I interact with frequently have become as much a part of my life (if not more so) as the &#8220;real life&#8221; friends I have known for decades but to whom I rarely manage to talk. I don&#8217;t even have most of their email addresses, and who knows if we&#8217;ll still be in touch by the time I actually kick the bucket. I certainly hope we will, but lives change, priorities change &#8211; the same things that make people spend less time with each other in real life get in the way of people spending time with their online friends.</p>
<p>Honestly, I wonder if the terms &#8220;online friends&#8221; and &#8220;real life friends&#8221; are even valid anymore. They&#8217;re friends. However, because we know each other through a venue that doesn&#8217;t provide email addresses, a simple email solution just won&#8217;t work if I want to include those friends in my final messages. </p>
<p>But because I know people from all of these different online communities and networks, many of whom are not in my address book, the solution here isn&#8217;t necessarily a technical one. Sure, I could create a Facebook/Twitter/MySpace application that allows a trusted family member to trigger your last wishes messaging to your friends in those communities, but what about the Godsmack forums, of which I have been a moderator for 8 years. Or the stone carving listserv I&#8217;m on, or the forums for my martial arts school? You get the picture.  I would certainly want to include an announcement to them, but those systems don&#8217;t have an API that can be tapped into. </p>
<p>Parts of this process would still have to be very manual, which means putting that responsibility on someone I care about, just hours or days after I&#8217;ve died.</p>
<h4>Passwords and Friends Change</h4>
<p>The biggest challenge I see in the automated services solutions is that I change my password often, and use distinct passwords for just about every website I join. I also add new contacts to my address book, friends groups (and friends lists) weekly. Using the automated email workflow concept, I would have to manually update these contact lists every week for the rest of my life. Even as morbid as I am, I don&#8217;t want to be reminded of my own mortality that precisely every week for the rest of my life. Even setting website logins aside, the FTP account information for the dozens of websites I run or manage are frequently changed. Which brings me to the most difficult challenge for me, personally.</p>
<h4>Non-Technical Friends and Family</h4>
<p>As I mentioned, I&#8217;m a prolific (one might say habitual) website developer and writer. I can think of at least 10 websites I run that have content that requires constant curating, and probably 15 more that are static that I don&#8217;t want to disappear after I&#8217;m gone. </p>
<p>FTP login information could be granted to a trusted person by firing off an email with the login to my computer, and then instructions on how to login to my KeePass application that contains the usernames and passwords to my FTP and MySQL sites. But then what? I do not have any close friends or family that even know what FTP is, let alone how to handle creating a new post/page/whatever on each of the proprietary apps I&#8217;ve built. It certainly could be done, but that&#8217;s a metric assload of work to generate that much documentation, especially when you consider that I may well end up completely changing the software that powers these sites several times before I die. I don&#8217;t know about you, but I just don&#8217;t have that kind of time.</p>
<h4>Moar Monies!</h4>
<p>Naturally, hosting costs money. In order for my vast, craptacular works to live on beyond me, someone would have to be paying for it. I currently have it stated in my will that I wish for x amount of money to be allocated towards hosting fees to keep them alive for a specified amount of time. </p>
<h4>Relevance and After Life Lifetime</h4>
<p>This is less of a challenge than just something to consider while you&#8217;re making these types of plans. As much blood, sweat and tears as I&#8217;ve devoted to Snipe.Net over the past decade, will it really be relevant enough to keep alive 10 years from now? My tech tips, programing snippets and observations on social media will most likely not be relevant anymore. Keeping that in mind, if I died tomorrow, how long would be appropriate to keep this site alive? A few years maybe? Technology changes so quickly, it&#8217;s likely that anything I&#8217;ve written here will become obsolete within 6 months, let alone 10 years.</p>
<h4>Privacy</h4>
<p>In the example I gave above, I would be giving my laptop password to a trusted friend or family member (either informally, or formally by way of an executor), with instructions to access my KeePass file to unlock my other accounts. This also inherently means that the person I entrust with this information has access to all of my files, all of my past emails, all of my social networking private messages, and all of my pr0n. Uhm.. did I say pr0n? I meant banking information. Right. </p>
<p>So short of encrypting large sections of your drive, handing someone the keys to your hard drive is effectively handing them the keys to your entire life, including the bits you may not want to be made available to people you love. Speaking as someone whose step-father once asked her to help him cancel his porn account and remove the malware he got from a porn site, I can tell you there are parts of your private life that really, really, really should follow you to your grave. </p>
<h3>Hmmm</h3>
<p>As upcoming generations rely more and more on online services and communities and become closer to friends they only know from online who may have no connection to their &#8220;real life&#8221; friends, I think we&#8217;ll see more of this kind of thinking. </p>
<p>Perhaps more importantly, the generation of people whose entire life&#8217;s work is purely digital is starting to get older (like me), we will need a more organized, integrated way to handle our online legacies. The most significant, important things I have accomplished in my life so far will disappear if I don&#8217;t have a system in place &#8211; and right now, that system is kludgey at best, impossible to execute by the technically challenged people I love most at worst.</p>
<p>I do not have children (thank God), and do not want children. My digital creations, self-indulgent and rambling though they may be, are my legacy. They are the only thing I have that has a chance of living on beyond me. </p>
<p>As I&#8217;m writing this, I realize that there is currently no solution that does exactly what I need and want. Anyone with some VC capital want to start a company? I&#8217;ve already got a plan. Drop me an email if you&#8217;ve got some cash to blow. <img src='http://www.snipe.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h3>Your Responsibility?</h3>
<p>Is it weird to think about this? I don&#8217;t think so. I personally feel that just as it is responsible to have a will, it is responsible to leave your last wishes and instructions for your social networking profiles. Having had a few friends pass away in this digital age, I wish they had considered their social networking profiles in their last wishes. To your friends and family, it can be heartbreaking (and more than a little creepy) to see haunted by your profile on their friends list after you&#8217;ve passed. I lost a friend to suicide this time last year, and it took 4 months for Facebook to finally get the memorial status of his profile set up correctly. It was a painful daily reminder to say the very least. Not to mention that neglecting to make formal plans for your eventual death puts the burden of deciding what to do with your social networking accounts on the very people who are already grieving. </p>
<p>Happy New Year to you all. Stay safe, and consider adding a posthumous persona management plan to your resolutions list. What are your thoughts on this? Is it going too far? Not far enough? Do you already have a plan in place, or a pre-recorded &#8220;screw you, world!&#8221; video set to be published when you kick it? I&#8217;d love to hear about it in the comments.</p>


<p>Possibly related posts:<ol><li><a href='http://www.snipe.net/2009/05/new-facebook-phishing-attempts/' rel='bookmark' title='Permanent Link: New Facebook Phishing Attempts'>New Facebook Phishing Attempts</a> <small>Looks like a new round of phishing attacks are well...</small></li>
<li><a href='http://www.snipe.net/2008/06/my-favorite-blogging-tools/' rel='bookmark' title='Permanent Link: My favorite blogging tools'>My favorite blogging tools</a> <small>With all the social networks out there, how do you...</small></li>
<li><a href='http://www.snipe.net/2008/07/what-exactly-is-the-point-of-twitter/' rel='bookmark' title='Permanent Link: What Exactly is the Point of Twitter?'>What Exactly is the Point of Twitter?</a> <small>Since this question has come up at least three times...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2009/12/death-in-the-digital-age/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Big Changes to the Facebook Platform</title>
		<link>http://www.snipe.net/2009/10/upcoming-changes-to-the-facebook-application-platform/</link>
		<comments>http://www.snipe.net/2009/10/upcoming-changes-to-the-facebook-application-platform/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 18:00:22 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook application development]]></category>
		<category><![CDATA[facebook applications]]></category>
		<category><![CDATA[fbml]]></category>
		<category><![CDATA[social networks]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=2472</guid>
		<description><![CDATA[Last night, during a webcast, Facebook announced some upcoming significant changes to the Facebook platform. Most are good, a few may be frustrating, but here they are. These changes will start to be rolled out in November &#38; December and will continue into the first and second quarter of 2010. If you develop Facebook applications, [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.snipe.net%2F2009%2F10%2Fupcoming-changes-to-the-facebook-application-platform%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.snipe.net%2F2009%2F10%2Fupcoming-changes-to-the-facebook-application-platform%2F&amp;source=snipeyhead&amp;style=normal&amp;service=bit.ly&amp;service_api=R_92bd97f4f8b9fa8a40675b36ea291223" height="61" width="50" /><br />
			</a>
		</div>
<p>Last night, during a webcast, Facebook announced some upcoming significant changes to the Facebook platform. Most are good, a few may be frustrating, but here they are. These changes will start to be rolled out in November &amp; December and will continue into the first and second quarter of 2010.</p>
<p><span id="more-2472"></span></p>
<p>If you develop Facebook applications, I <em>strongly</em> encourage you to check out their <strong>new <a href="http://wiki.developers.facebook.com/index.php/Developer_Roadmap">Facebook Developer Roadmap</a></strong>, which breaks down upcoming changes in detail and let&#8217;s you know when to expect these changes to roll out.</p>
<p>I for one am <em>thrilled</em> to see Facebook finally trying to work <em>with</em> developers to give them a clear idea of what to expect and when. As someone who has spent the past two years writing Facebook applications and being frustrated by surprise platform changes, this is a giant step in the right direction from my point of view. Previously, it was not uncommon to get only a day or two&#8217;s notice &#8211; or no notice at all &#8211; regarding critical application functionality. If you&#8217;re the developer for one application, that&#8217;s inconvenient and annoying at best, if you&#8217;re obligated to maintain a dozen or so applications it can be utterly traumatizing.</p>
<p>From the look of things, Facebook is trying to streamline the way applications communicate with users, and is adding some features specifically designed to improve the flow of turn-based gaming and make it easier for users to find games amid the sea of applications in the app directory.</p>
<p>Overall, these changes bring new features to the application developer&#8217;s toolbelt, but changes to the newsfeed and Stream API also mean that several of the ways you were previously able to send messages to a user&#8217;s newsfeed/stream (the one you <a href="http://www.snipe.net/2009/04/changes-to-facebooks-newsfeed/">just updated in April</a> to comply with their last round of newsfeed changes) will no longer be supported.</p>
<p>To put a finer point on it, if you don&#8217;t feel like extending your current applications to take advantage of the new features, you will still need to update them to get them to function as they currently do.<strong> If you do not update your application to use the Stream API, your application will NO LONGER send any messages to your users&#8217; stream.</strong> More on this down below.</p>
<p>So here&#8217;s a quick run-down of what to expect in the next few months &#8211; I&#8217;m covering the issues that will affect current applications first, and then we&#8217;ll get into the good stuff that talks about new features and functionality, so you know what you have to update to keep your existing functionality before worrying about extending it.</p>
<h3>Big changes to the Stream, old API not supported, templates disappear, new format</h3>
<p>As I mentioned above, if you don&#8217;t care enough (or your clients are not paying you enough) to update your current applications with the new functionality these updates bring, you&#8217;re still going to have to spend some time in the code just to get them not to break.</p>
<p>As of December 20, 2009, when Facebook.showFeedDialog and feed templates are discontinued, <strong>if your application hasn&#8217;t been updated </strong>to use <a href="http://wiki.developers.facebook.com/index.php/Stream.publish">Stream.publish</a>, <a href="http://wiki.developers.facebook.com/index.php/Facebook.streamPublish">Facebook.streamPublish</a>, or <a href="http://wiki.developers.facebook.com/index.php/FB.Connect.streamPublish">FB.Connect.streamPublish</a>, <strong>your application will no longer be able to send newsfeed messages</strong>.</p>
<p>These <a href="http://wiki.developers.facebook.com/index.php/Using_the_Open_Stream_API">Stream API functions</a> will be the only way to send messages to users&#8217; streams and they are available right now, so I encourage you to start making the switch now so you have plenty of time to test and troubleshoot any issues that come up.</p>
<p>But wait &#8211; there&#8217;s more!</p>
<p><strong>Stream stories will be rendered slightly differently, with only one image and few lines of text.</strong> Only the first image and first few lines of text will be rendered by default. A user can choose to expose the rest of the images and text by clicking a &#8220;See More&#8221; link.</p>
<p><strong>Only one action link will be rendered, and it must be 25 characters long or less.</strong> &#8220;Formatting&#8221;-style characters (like &#8220;|&#8221;, &#8220;[", "]&#8220;, and others) will not be rendered.</p>
<p><a href="http://wiki.developers.facebook.com/index.php/Roadmap_Stream"><img class="aligncenter size-full wp-image-2492" title="Roadmap_Stream" src="http://www.snipe.net/wp-content/uploads/2009/10/Roadmap_Stream.jpg" alt="Roadmap_Stream" width="526" height="399" /></a></p>
<p><strong>Key Policy Change:</strong> In order to encourage intentional behavior, <strong>you will no longer be able to automatically pop up a Feed form for a user</strong> unless that user has explicitly indicated that he or she wishes to share this information. According to Facebook, &#8220;a user should never be surprised by a Feed form&#8221;. You can continue to render Feed forms through FB.Connect.streamPublish and Facebook.streamPublish.</p>
<p>In the Stream Roadmap page, they outline when it is appropriate to open a feed form:</p>
<ul>
<li>When the user has clicked a button that says &#8220;Share this&#8221;.</li>
<li>When a user has indicated via your user interface that they want to share. For example, if a user wrote a review within your application, and they checked a box that said &#8220;Share with friends&#8221; next to your &#8220;Publish this review&#8221; button. If you pre-checked a &#8220;Share with friends&#8221; box and they unchecked it, a Feed form should not pop up.</li>
</ul>
<p>Perhaps more importantly, <strong>they also outline when you should NOT prompt the user with a feed form</strong> (and therefore NOT allow your user to post the action to their stream):</p>
<ul>
<li>When a user takes an action that is a normal part of using your application, for example, achieving a new high score.</li>
<li>When you present a user with a result or new information, for example, completing a quiz.</li>
</ul>
<p>These last two will directly impact how a LOT of Facebook apps and games currently function. While it will no doubt have an adverse impact on monthly active users for the applications that currently trigger stream entries on these actions, it is most likely a response of Facebook users complaining about the tremendous influx of stupid quizzes that have been flooding their newsfeeds for the past several months.</p>
<p>Hopefully, the other changes detailed below will offset the impact of apps not appearing in the stream as often and will more than compensate for any loss in virality.</p>
<p>Check out the <strong><a href="http://wiki.developers.facebook.com/index.php/Roadmap_Stream">Stream Roadmap page on the Facebook Developers site</a></strong> for full details.</p>
<h3>No more Profile boxes or Boxes tab</h3>
<p>That&#8217;s right. Poof. Going forward (in the short term) <strong>application tabs will be the only way applications can integrate into Profiles</strong>. We will be removing profile boxes, application info sections, and the Boxes tab. Facebook says they are exploring additional ways to enable developers to integrate into Profiles.</p>
<p>Please note that it does NOT appear that Facebook will be moving application content currently in Profile boxes or the Boxes tab into Profile tabs for you. From the <a href="http://wiki.developers.facebook.com/index.php/Roadmap_Profile">Profile Roadmap page on the Facebook Developer&#8217;s Wiki</a>:</p>
<blockquote><p><strong>Where will users&#8217; profile boxes go?</strong><br />
Profile boxes will not exist in the near future. Application tabs will be the only way developers can integrate into the profile. If integrations on the profile are an important part of your application, we encourage you to focus development and transition to application tabs.</p></blockquote>
<p>(Timing: Late 2009/Early 2010)</p>
<p>So it looks like if you don&#8217;t make this change to your application yourself and you rely on Profile boxes or Boxes tab boxes for your application to work, your app will effectively just disappear from user profiles when this change goes live.</p>
<p><strong>Application tabs will shrink from 760 pixels wide (today) to <del datetime="2009-12-16T18:39:55+00:00">510 pixels</del> 520 pixels wide to accommodate a slightly revised design.</strong> Boxes, info sections, and the Boxes tab will be removed in the near future. This kind of sucks, in my opinion, but I assume they&#8217;re doing it to accommodate a new design with either larger ads or some sort of right-rail navigation. Still, that&#8217;s a <del datetime="2009-12-16T18:39:55+00:00">250</del> 240 pixel loss of real estate. Bummer.</p>
<p>Update as of Dec 15, 2009: According to a <a href="http://wiki.developers.facebook.com/index.php/Roadmap_Profile">recently updated roadmap page</a>, they will be shrinking the tabs down to 520 instead of 510. This, along with other profile changes, is set to roll out early 2010 by their last estimate.</p>
<p><strong>Slight Application Canvas page layout change. </strong>In order to make it clearer to users when they are using an application created by a third party developer, Facebook is going to slightly modify how the top-navigation is rendered on canvas pages:</p>
<p><a href="http://wiki.developers.facebook.com/index.php/Roadmap_Canvas"><img class="aligncenter size-large wp-image-2496" title="Roadmap_Canvas" src="http://www.snipe.net/wp-content/uploads/2009/10/Roadmap_Canvas-559x341.png" alt="Roadmap_Canvas" width="559" height="341" /></a></p>
<p>Looks like they&#8217;re still tinkering with ideas on the new layout of Application Canvas pages, but overall this shouldn&#8217;t impact most applications too much. They encourage developers to <a href="http://wiki.developers.facebook.com/index.php/Roadmap_Canvas">periodically check the Canvas Roadmap page for updated designs</a>.</p>
<p>Now then &#8211; we&#8217;ve covered all of the stuff that impacts your current applications as they are now. Let&#8217;s look ahead to some of the great new functionality ahead.</p>
<h3>Email</h3>
<p>Developers will be able to ask users to share their primary email addresses. This is a big deal because it was previously verboten to collect a user&#8217;s email address without specifically asking them to type it into a form and submit it. (Timing: Nov 2009)</p>
<h3>New Application Counter (woot!)</h3>
<p><a href="http://wiki.developers.facebook.com/index.php/Roadmap_Counter"><img class="alignright size-full wp-image-2477" title="Roadmap_Counter" src="http://www.snipe.net/wp-content/uploads/2009/10/Roadmap_Counter.jpg" alt="Roadmap_Counter" width="256" height="324" /></a>The <strong><a href="http://wiki.developers.facebook.com/index.php/Roadmap_Counter">application counter</a></strong> is one of my favorite improvements laid out in this roadmap and is just one of many steps Facebook is taking to position itself as a gaming platform.</p>
<p>You will have the opportunity to increment your count to indicate to a user that they should take an action in your application, for example, take their turn in a game, or see a comment from another user on content they created within that application.</p>
<p>The count can be incremented by your application, and when a user clicks through to the application, the count will be reset to zero.</p>
<p>As we continue to see an influx applications leveraging Facebook as a platform for RPG and turn-based gaming, it seems Facebook is getting behind the idea and beginning to provide specific features to encourage growth in this area. (Timing: November/December 2009)</p>
<h3>Games/Applications Dashboards</h3>
<p>In fact, apps that are games will be separated by category from apps that are&#8230; well, applications. Plus, users have access to <strong><a href="http://wiki.developers.facebook.com/index.php/Roadmap_Dashboards">two different Dashboards</a></strong>, one for Games and one for Applications.</p>
<p>The Games dashboard will have a number of features that encourage users to find games their friends and playing, and to stay active in games they&#8217;ve started, including:</p>
<p><strong>Recent games:</strong> Facebook will prominently display games that a user has recently played, showing the application icon and application name. Clicking on a game will take the user to the game&#8217;s canvas page.</p>
<p><strong>Game News: </strong>There will be a text field next to each game on the dashboard where developers can set Game News. This area is free form and targetable by user, e.g. &#8220;You are ranked 17th among your friends. Austin&#8217;s score is the next highest at 28,400. Can you beat him?&#8221; or, &#8220;Your pumpkins are wilting &#8211; water them soon!&#8221;</p>
<p><strong>Your friends are playing:</strong> Facebook will display some of the games that your friends are playing along with information about relevant activities in the game.</p>
<p><a href="http://www.snipe.net/wp-content/uploads/2009/10/Roadmap_Games_Dashboard.png"><img class="aligncenter size-large wp-image-2482" title="Roadmap_Games_Dashboard" src="http://www.snipe.net/wp-content/uploads/2009/10/Roadmap_Games_Dashboard-560x327.png" alt="Roadmap_Games_Dashboard" width="560" height="327" /></a></p>
<p>According to Facebook, an app cannot appear in both the Games directory and the Applications directory, and they&#8217;ll be reviewing Games listed in the Games directory to make sure they belong there.</p>
<p>All non-game applications will have similar functionality (your recent applications, application news messages, and applications your friends are using) in the Application Dashboard.</p>
<h3>Application Notifications</h3>
<p><strong>Facebook is removing application-to-user notifications and user-to-user notifications</strong>. Instead, they encourage you to use other channels to communicate directly with your users, and to enable them to communicate with each other about your application.</p>
<p><strong>Communication between you and your users:</strong></p>
<p>They encourage you to use Email (once the user has opted to share their email address with you) for things like product announcements, newsletters, or billing and transactional communication.</p>
<p>If you want to notify users about an action they should take with your application (like taking their turn in a game), incrementing the Application Counter will be a good way to notify them.</p>
<p>The application news in the Application Dashboard will be a great way to share a brief message with a user while they&#8217;re exploring the Dashboards. You&#8217;ll be able to target these on a per-user basis.</p>
<p><strong>Communication between your users and their friends:</strong></p>
<p>The stream is the most powerful way to enable users to share their experiences with all of their friends.</p>
<p>The new Share flow will give your users the ability to send messages directly to their friends&#8217; Inboxes, with attachments predetermined by you. This will be the best way to encourage one-to-one and one-to-few messages between users, and is intended to replace requests.</p>
<p>Users will still be able to invite their friends to check out your application.</p>
<p>The estimated timing on this is approximately 30 days after you are able to start requesting a user&#8217;s email address. (Latest estimate: November/December 2009)</p>
<h3>Open Graph API: Incredible potential, or not at all?</h3>
<p>The info on Facebook&#8217;s Developer page for this is a little vague at best. They state:</p>
<blockquote><p>The Open Graph API will allow any page on the Web to have all the features of a Facebook Page. Once implemented, developers can include a number of Facebook Widgets, like the Fan Box, or leverage any API, which enable the transformation of any Web page so it functions similar to a Facebook Page.</p>
<p>For example, AwesomeTees might decide that strategically they would like to locate their brand identity at www.awesometees.com. AwesomeTees will install the Fan Box widget, which will allow any Facebook user to &#8220;Become a Fan&#8221; of AwesomeTees, thereby establishing an official connection to AwesomeTees. The user will then have AwesomeTees listed in their list of connections on their profile as Pages are represented today.</p></blockquote>
<p>This isn&#8217;t that different than how it currently works, so that&#8217;s not really news. What is interesting is this one line n their description, further down:</p>
<blockquote><p>Additionally, any content that AwesomeTees publishes on AwesomeTees.com will show up in the stream on Facebook like it normally would.</p></blockquote>
<p>Wait, say what? It sounds like they&#8217;re saying that news updates that would normally appear on a website, and would have to be manually cross-posted to a brand&#8217;s Facebook fan page will somehow automagically appear. I would have to assume they will require some sort of XML or JSON standardized format that website news announcements will have to be published in, but there&#8217;s little detail out on this just yet. This feature is a ways off though, with initial versions not expected until the second quarter of 2010.</p>
<h3>And finally &#8211; Verification goes away as a brand, becomes universal for all apps</h3>
<p>According to the <a href="http://wiki.developers.facebook.com/index.php/Roadmap_Principles_Policies_and_Verification">Principles, Policies and Verification roadmap</a>, Facebook is doing away with paid Verification and is extending it out to all applications.</p>
<blockquote><p>On December 1st, 2009 we&#8217;ll retire the Verification brand, as we scale what was a voluntary program into a universal requirement. There is no longer a submission process or fee, and there won&#8217;t be distribution boosts as the product will move towards more intentional user sharing. Starting today, we will suspend the processing of Verification submissions. <strong>All apps must meet Verification Checklist expectations and will be subject to review at any time.</strong></p></blockquote>
<p>So this means while you no longer have to shell out big bucks for your app to be verified, it also means that Facebook will probably be more aggressive about making sure all developer applications do meet their verification criteria, and will yank your app with ir without notice if it feels like your app isn&#8217;t up to snuff.</p>
<h3>Full Timeline</h3>
<p>To give you a little more perspective, here is the timeline of the upcoming Platform changes, based on Facebook’s Developer Roadmap and originally compiled by <a href="http://www.insidefacebook.com/2009/10/29/mark-your-calendars-planning-for-facebooks-platform-changes-over-the-next-3-6-months/">InsideFacebook.Com</a>:</p>
<p><strong>Late October 2009</strong></p>
<ul>
<li>Simplified policies posted, verification program ended, and “extending verification standards to all applications”</li>
<li> Platform Live Status tool launching, which will show “updates on platform stability and load”</li>
</ul>
<p><strong>November 2009</strong></p>
<ul>
<li> New email permission API (developers can ask users to share their email address)</li>
<li> Access point to invites will be moved “to either a filter in Inbox or surfaced in the Application and Games Dashboards”</li>
<li>User-to-user Inbox APIs will be launched</li>
<li>Stream story formatting changes (1 image shown by default, few lines of text, 1 action link)</li>
<li>New “add bookmark” button</li>
</ul>
<p><strong>November/December 2009</strong></p>
<ul>
<li>Notifications API (both app-to-user and user-to-user) will be removed (note: Facebook says this will happen “30 days after email permission is available”)</li>
<li>Feed forms cannot be popped open without “explicit user intent” (note: this is a new Facebook policy)</li>
<li>Application bookmarks moving from the bottom menu bar to the left side of the home page</li>
<li>Counter API launching (counts can appear on home page application bookmarks)</li>
<li>Applications and Games dashboards launching</li>
<li>New application branding on canvas pages launching</li>
</ul>
<p><strong>December 2009</strong></p>
<ul>
<li> All stream publishing APIs beside Stream.publish, Facebook.streamPublish, and FB.Connect.streamPublish will no longer be supported (December 20)</li>
<li>Revamped developer site launching</li>
</ul>
<p><strong>Late 2009 / Early 2010</strong></p>
<ul>
<li> Requests API will be removed (note: Facebook says this will happen “30 days after launching new Inbox sharing”</li>
<li>Profile boxes will be removed (application tabs will be the only way to integrate into the profile page at that point)</li>
<li>Improved analytics and APIs launching</li>
</ul>
<p><strong>Early 2010</strong></p>
<ul>
<li> Open Graph API launching</li>
</ul>
<h3>Conclusion</h3>
<p>So it feels like Facebook might finally, really be getting their shit together. This is arguably one of the biggest rounds of changes to the platform that we&#8217;ve seen in quite some time, and for the first time, they&#8217;re actually giving developers a head&#8217;s up and being very transparent about timing and impact.</p>
<p>All in all, the vast majority of these changes are great news for application developers. We&#8217;re getting tons of new features, new integration points and opportunities for viral engagement. The trade-off in what we&#8217;re losing seems to be well worth it, if all of these improvements come to fruition.</p>


<p>Possibly related posts:<ol><li><a href='http://www.snipe.net/2009/04/facebook-application-tabs/' rel='bookmark' title='Permanent Link: %$#^%$* Facebook Application Tabs'>%$#^%$* Facebook Application Tabs</a> <small>So this is new. And by new I mean painfully...</small></li>
<li><a href='http://www.snipe.net/2009/04/changes-to-facebooks-newsfeed/' rel='bookmark' title='Permanent Link: Changes to Facebook&#8217;s Newsfeed/Wall'>Changes to Facebook&#8217;s Newsfeed/Wall</a> <small>With the most recent API changes, specifically the one that...</small></li>
<li><a href='http://www.snipe.net/2008/09/planning-a-facebook-application/' rel='bookmark' title='Permanent Link: Planning Your Facebook Application'>Planning Your Facebook Application</a> <small>This is part one of a series &#8211; the technical...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2009/10/upcoming-changes-to-the-facebook-application-platform/feed/</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>Extending Facebook Static FBML Tabs with Dynamic Content</title>
		<link>http://www.snipe.net/2009/10/mini-site-facebook-static-fbml/</link>
		<comments>http://www.snipe.net/2009/10/mini-site-facebook-static-fbml/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 06:16:00 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[fbjs]]></category>
		<category><![CDATA[fbml]]></category>
		<category><![CDATA[static fbml]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=2335</guid>
		<description><![CDATA[This tutorial walks you through how to use DynamicFBML to do simple content replacement that will allow you to fit more content into your tabs. You can create image or video galleries, or even an entire micro-site inside your Static FBML tab without a lot of complicated scripting. If you&#8217;re not sure what Static FBML [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.snipe.net%2F2009%2F10%2Fmini-site-facebook-static-fbml%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.snipe.net%2F2009%2F10%2Fmini-site-facebook-static-fbml%2F&amp;source=snipeyhead&amp;style=normal&amp;service=bit.ly&amp;service_api=R_92bd97f4f8b9fa8a40675b36ea291223" height="61" width="50" /><br />
			</a>
		</div>
<p>This tutorial walks you through how to use DynamicFBML to do simple content replacement that will allow you to fit more content into your tabs. You can create image or video galleries, or even an entire micro-site inside your Static FBML tab without a lot of complicated scripting.<br />
<span id="more-2335"></span><br />
<strong>If you&#8217;re not sure what Static FBML is, check out my <a href="http://www.snipe.net/2009/06/fb-fanpages-fbml-box/">previous tutorial</a> that shows you how powerful the <a href="http://www.facebook.com/apps/application.php?id=4949752878&#038;ref=search&#038;sid=615120040.2195135..1">Static FBML application</a> can be, and how you can create very compelling, highly branded Facebook Fan page tabs without the hassle of building a custom Facebook application. </strong></p>
<p>At its most basic, the functionality we&#8217;re discussing is simply one or more text or image links that, when clicked, cause content in a set space to change. Some potential uses:</p>
<ul>
<li><a href="http://www.facebook.com/pages/SnipeNet/116633947708?v=app_11007063052" target="_blank">Dynamic image gallery</a> where the user clicks on a thumbnail to see a larger version of the image</li>
<li><a href="http://www.facebook.com/vitaminwater?v=app_17037175766" target="_blank">Video gallery</a> that allows you to include thumbnails on the video that loads the selected video into a single player space. This can be particularly helpful in tightly designed Static FBML pages where you have limited space to display a lot of content.</li>
<li>Or even <a href="http://www.facebook.com/pages/SnipeNet/116633947708?v=app_7146470109" target="_blank">using your Static FBML tab as a mini-site</a>, replacing the entire tab&#8217;s content with new content to simulate multiple pages</li>
</ul>
<p>We&#8217;re going to explore a few examples in this article, but it&#8217;s basically the same code regardless of how you apply it. First, let&#8217;s look at creating a micro-site within a Facebook Static FBML tab &#8211; <strong><a href="http://www.facebook.com/pages/SnipeNet/116633947708?v=app_7146470109" target="_blank">see a live demo of the tab we&#8217;re going to create here</a></strong>. </p>
<p><strong>Notice the navigation within the tab itself (Home, Specials, Locations, About).</strong> Clicking on them displays new content in the entire tab without actually reloading the page. This is an example of Facebook&#8217;s DynamicFBML, and you won&#8217;t believe how easy it is to implement. Seriously, you won&#8217;t. </p>
<p><a href="http://www.facebook.com/pages/SnipeNet/116633947708?v=app_7146470109" target="_blank"><img src="http://www.snipe.net/wp-content/uploads/2009/10/snipe_tab-560x295.jpg" alt="snipe_tab" title="snipe_tab" width="560" height="295" class="aligncenter size-large wp-image-2370" /></a></p>
<p>So, okay&#8230; maybe that tab isn&#8217;t the fanciest thing you&#8217;ve ever seen, but it gives you a clear idea of how this works. How plain or sophisticated the design is depends entirely on you and how comfy you are in a graphics program. </p>
<p>If you dig the cool-looking button CSS in the test page, you can learn how to get that effect by visiting <a href="http://www.zurb.com/article/266/super-awesome-buttons-with-css3-and-rgba" target="_blank">ZurbBlog&#8217;s post on Super Awesome Buttons with CSS3 and RGBA</a>.</p>
<p>But here&#8217;s the great part: the code needed to create that tab is basically this:</p>
<pre class="brush: html">&lt;!-- navigation elements --&gt;
&lt;a href=&quot;#&quot; clicktoshow=&quot;nav1&quot; clicktohide=&quot;nav2,nav3,nav4&quot;&gt;Home&lt;/a&gt;
&lt;a href=&quot;#&quot; clicktoshow=&quot;nav2&quot; clicktohide=&quot;nav1,nav3,nav4&quot;&gt;Specials&lt;/a&gt;
&lt;a href=&quot;#&quot; clicktoshow=&quot;nav3&quot; clicktohide=&quot;nav1,nav2,nav4&quot;&gt;Locations&lt;/a&gt;
&lt;a href=&quot;#&quot; clicktoshow=&quot;nav4&quot; clicktohide=&quot;nav1,nav2,nav3&quot;&gt;About&lt;/a&gt;

&lt;!-- Content to display when user clicks on the Home tab --&gt;
&lt;div id=&quot;nav1&quot;&gt;
	Homepage text
&lt;/div&gt;

&lt;!-- Content to display when user clicks on the Specials tab --&gt;
&lt;div id=&quot;nav2&quot; style=&quot;display: none;&quot;&gt;
	Specials text
&lt;/div&gt;

&lt;!-- Content to display when user clicks on the Locations tab --&gt;
&lt;div id=&quot;nav3&quot; style=&quot;display: none;&quot;&gt;
	Locations text
&lt;/div&gt;

&lt;!-- Content to display when user clicks on the About tab --&gt;
&lt;div id=&quot;nav4&quot; style=&quot;display: none;&quot;&gt;
	About text
&lt;/div&gt;</pre>
<p><strong>Seriously. That&#8217;s it. That&#8217;s ALL there is to it. </strong>Naturally, I stripped out the extraneous text, images and styles from my demo for simplicity&#8217;s sake, but that&#8217;s honestly it. </p>
<p>This is arguably the one thing that is <strong>exactly as easy as it appears to be</strong> with regard to developing anything for Facebook.</p>
<p>This code is fairly straightforward, but let&#8217;s take a look at what&#8217;s happening here.</p>
<p>In the first part, we&#8217;re setting our links. For the micro-site, these are our navigation links. Everything here looks like pretty standard HTML except for the extra &#8220;clicktoshow&#8221; and &#8220;clicktohide&#8221; elements. (Note: The links<em> do not</em> have to be set before the content divs &#8211; you&#8217;ll set them wherever they make sense in your design. You&#8217;ll see an example of this further down the article in the image gallery sample.)</p>
<pre class="brush: html">&lt;!-- navigation elements --&gt;
&lt;a href=&quot;#&quot; clicktoshow=&quot;nav1&quot; clicktohide=&quot;nav2,nav3,nav4&quot;&gt;Home&lt;/a&gt;
&lt;a href=&quot;#&quot; clicktoshow=&quot;nav2&quot; clicktohide=&quot;nav1,nav3,nav4&quot;&gt;Specials&lt;/a&gt;
&lt;a href=&quot;#&quot; clicktoshow=&quot;nav3&quot; clicktohide=&quot;nav1,nav2,nav4&quot;&gt;Locations&lt;/a&gt;
&lt;a href=&quot;#&quot; clicktoshow=&quot;nav4&quot; clicktohide=&quot;nav1,nav2,nav3&quot;&gt;About&lt;/a&gt;</pre>
<p>The <strong>clicktoshow</strong> element allows you to specify the id&#8217;s of the elements you wish to <em>show</em> when the link is clicked. Conversely, the <strong>clicktohide</strong> element allows you to specify the ids of the elements you wish to <em>hide</em> when the link is clicked.</p>
<p>In our navigation elements, since the div that contains the homepage text is set as nav1 in our HTML, we want the <strong>clicktoshow for the Home link to be nav1</strong> (since we want that div to show when we click on it.) Likewise, since we&#8217;re completely replacing whatever div is currently visible with the nav1 div contents, we want to specify <strong>everything that isn&#8217;t nav1 in the clicktohide</strong>.</p>
<h2>Combining divs in hide/show</h2>
<p>What&#8217;s particularly fun about the clicktoshow and clicktohide (other than their sheer ease of use) is the fact that unlike a more complicated true JavaScript version, showing and hiding two or more divs at the same time on the same click is simply a matter of specifying them in the clicktohide or clicktoshow parameters.</p>
<pre class="brush: html">&lt;!-- set up our text links --&gt;
&lt;a href=&quot;#&quot; clicktoshow=&quot;nav1&quot; clicktohide=&quot;nav2,nav3&quot;&gt;Oh&lt;/a&gt;
&lt;a href=&quot;#&quot; clicktoshow=&quot;nav2&quot; clicktohide=&quot;nav1,nav3&quot;&gt;Hai&lt;/a&gt;
&lt;a href=&quot;#&quot; clicktoshow=&quot;nav1,nav2&quot; clicktohide=&quot;nav3&quot;&gt;Oh Hai&lt;/a&gt;
&lt;a href=&quot;#&quot; clicktoshow=&quot;nav1,nav2,nav3&quot;&gt;Oh Hai SRSLY!&lt;/a&gt;

&lt;!-- Content to display when user clicks on the Home tab --&gt;
&lt;div id=&quot;nav1&quot;&gt;
	Oh
&lt;/div&gt;

&lt;!-- Content to display when user clicks on the Specials tab --&gt;
&lt;div id=&quot;nav2&quot; style=&quot;display: none;&quot;&gt;
	Hai
&lt;/div&gt;

&lt;!-- Content to display when user clicks on the Locations tab --&gt;
&lt;div id=&quot;nav3&quot; style=&quot;display: none;&quot;&gt;
	SRSYLY!
&lt;/div&gt;</pre>
<p>In the snippet above, we&#8217;re using only three divs with four nav elements. By specifying multiple ids in the clicktoshow parameter, we can show multiple divs at once, so when you click on &#8220;Oh Hai SRSLY!&#8221;, you&#8217;re looking at nav1, nav2 and nav3 all being shown at once. Piece of pie.</p>
<p><a href="http://www.facebook.com/pages/SnipeNet/116633947708?v=app_6009294086" target="_blank"><img src="http://www.snipe.net/wp-content/uploads/2009/10/snipe_tab_funky-560x220.jpg" alt="snipe_tab_funky" title="snipe_tab_funky" width="560" height="220" class="aligncenter size-large wp-image-2379" /></a></p>
<h2>Example Image Gallery</h2>
<p>One more example that will hopefully get your creative juices going &#8211; let&#8217;s look at how to do an image gallery using only clicktoshow and clicktohide. </p>
<p>In this gallery, we have a set of thumbnails with one large space set aside in our design where the fullsize image will display. You can see a <a href="http://www.facebook.com/pages/SnipeNet/116633947708?v=app_11007063052" target="_blank">simple demo of this gallery here</a>.</p>
<p><a href="http://www.facebook.com/pages/SnipeNet/116633947708?v=app_11007063052" target="_blank"><img src="http://www.snipe.net/wp-content/uploads/2009/10/gallery-560x511.jpg" alt="gallery" title="gallery" width="560" height="511" class="aligncenter size-large wp-image-2389" /></a></p>
<p>Now take a look at the sourcecode below. Notice that <strong>we&#8217;re using the exact same code as we used in the other examples </strong>- we&#8217;ve just changed the names of the divs so they make more sense semantically in a gallery. </p>
<pre class="brush: html">&lt;!-- set the divs for the fullsize images --&gt;
&lt;div id=&quot;image1&quot;&gt;
	&lt;img src=&quot;http://www.snipe.net/wp-content/uploads/2009/10/full-1.jpg&quot;/&gt;
&lt;/div&gt;

&lt;div id=&quot;image2&quot; style=&quot;display: none;&quot;&gt;
	&lt;img src=&quot;http://www.snipe.net/wp-content/uploads/2009/10/full-2.jpg&quot;/&gt;
&lt;/div&gt;

&lt;div id=&quot;image3&quot; style=&quot;display: none;&quot;&gt;
	&lt;img src=&quot;http://www.snipe.net/wp-content/uploads/2009/10/full-3.jpg&quot;/&gt;
&lt;/div&gt;

&lt;div id=&quot;image4&quot; style=&quot;display: none;&quot;&gt;
	&lt;img src=&quot;http://www.snipe.net/wp-content/uploads/2009/10/full-4.jpg&quot;/&gt;&lt;br /&gt;
&lt;/div&gt;

&lt;!-- set up our thumbnails --&gt;
&lt;a href=&quot;#&quot; clicktoshow=&quot;image1&quot; clicktohide=&quot;image2,image3,image4&quot;&gt;
	&lt;img src=&quot;http://www.snipe.net/wp-content/uploads/2009/10/thumb-1.jpg&quot;/&gt;
&lt;/a&gt;

&lt;a href=&quot;#&quot; clicktoshow=&quot;image2&quot; clicktohide=&quot;image1,image3,image4&quot;&gt;
	&lt;img src=&quot;http://www.snipe.net/wp-content/uploads/2009/10/thumb-2.jpg&quot;/&gt;
&lt;/a&gt;

&lt;a href=&quot;#&quot; clicktoshow=&quot;image3&quot; clicktohide=&quot;image1,image2,image4&quot;&gt;
	&lt;img src=&quot;http://www.snipe.net/wp-content/uploads/2009/10/thumb-3.jpg&quot;/&gt;
&lt;/a&gt;

&lt;a href=&quot;#&quot; clicktoshow=&quot;image4&quot; clicktohide=&quot;image1,image2,image3&quot;&gt;
	&lt;img src=&quot;http://www.snipe.net/wp-content/uploads/2009/10/thumb-4.jpg/&gt;
&lt;/a&gt;</pre>
<p>By the way &#8211; if you dig the images used in that sample gallery, <strong>be sure to check out the <a href="http://www.snipe.net/2009/10/the-great-pumpkin-roundup/">Great Pumpkin Roundup post</a></strong> that shows examples of some of the most amazing pumpkin carving you&#8217;ve ever seen in your whole life.</p>
<p>In a <a href="http://www.facebook.com/vitaminwater?v=app_17037175766" target="_blank">project for vitamin water</a>, I needed to create what appeared to be a dynamic video player, using only the default Facebook media player, which doesn&#8217;t support options like having a playlist where people can click on a gallery of thumbnails and load the video into a single player. See below:</p>
<p><a href="http://www.facebook.com/vitaminwater?v=app_17037175766" target="_blank"><img src="http://www.snipe.net/wp-content/uploads/2009/10/new_moon_tab-560x533.jpg" alt="new_moon_tab" title="new_moon_tab" width="560" height="533" class="aligncenter size-large wp-image-2339" /></a></p>
<p>The code used to pull this off is almost identical to the image gallery example above. No foolin&#8217;.</p>
<h2>But wait &#8211; there&#8217;s more!</h2>
<p>An additional DynamicFBML function that you may find useful is <a href="http://wiki.developers.facebook.com/index.php/Clicktotoggle" target="_blank">Clicktotoggle</a>, which is very similar to Clicktoshow and Clicktohide, except instead of turning visibility on and off by clicking on on different links, you toggle visibility on and off by clicking the same link.</p>
<h2>Your takeaway</h2>
<p>While I certainly hope that the code presented here will be useful to you, the concept of what you can do using clicktoshow and clicktohide is more important. You&#8217;re not limited to creating a micro-site or an image gallery. Get creative and have some fun with this. Not many people are being adventurous in their Static FBML tabs yet, so you have an opportunity to really wow your users with your newfound skills.</p>
<h2>Additional Resources</h2>
<ul>
<li>Facebook Developers Wiki &#8211; <a href="http://wiki.developers.facebook.com/index.php/DynamicFBML/Visibility" target="_blank">DynamicFBML/Visibility</a></li>
<li>Facebook Developers Wiki &#8211; <a href="http://wiki.developers.facebook.com/index.php/Clicktoshow" target="_blank">Clicktoshow</a></li>
<li>Facebook Developers Wiki &#8211; <a href="http://wiki.developers.facebook.com/index.php/Clicktohide" target="_blank">Clicktohide</a></li>
<li>Facebook Developers Wiki &#8211; <a href="http://wiki.developers.facebook.com/index.php/Clicktotoggle" target="_blank">Clicktotoggle</a></li>
</ul>


<p>Possibly related posts:<ol><li><a href='http://www.snipe.net/2010/05/static-fbml-microsite-next-level/' rel='bookmark' title='Permanent Link: Taking Your Static FBML Microsite to the Next Level'>Taking Your Static FBML Microsite to the Next Level</a> <small>In a previous tutorial, you learned how to Extend Facebook...</small></li>
<li><a href='http://www.snipe.net/2009/06/fb-fanpages-fbml-box/' rel='bookmark' title='Permanent Link: Static FBML: Not Every Facebook Fan Page Needs An Application'>Static FBML: Not Every Facebook Fan Page Needs An Application</a> <small>You don&#8217;t always need a custom application for your Facebook...</small></li>
<li><a href='http://www.snipe.net/2009/04/facebook-application-tabs/' rel='bookmark' title='Permanent Link: %$#^%$* Facebook Application Tabs'>%$#^%$* Facebook Application Tabs</a> <small>So this is new. And by new I mean painfully...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2009/10/mini-site-facebook-static-fbml/feed/</wfw:commentRss>
		<slash:comments>250</slash:comments>
		</item>
		<item>
		<title>Static FBML: Not Every Facebook Fan Page Needs An Application</title>
		<link>http://www.snipe.net/2009/06/fb-fanpages-fbml-box/</link>
		<comments>http://www.snipe.net/2009/06/fb-fanpages-fbml-box/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 10:31:48 +0000</pubDate>
		<dc:creator>snipe</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook application development]]></category>

		<guid isPermaLink="false">http://www.snipe.net/?p=2015</guid>
		<description><![CDATA[You don&#8217;t always need a custom application for your Facebook fan page to look amazing. Save yourself time and money by using the Static FBML application instead. If you&#8217;ve played around with Facebook pages at all, you know that layout-wise, you don&#8217;t have a lot of options. It&#8217;s one of the reasons some people prefer [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.snipe.net%2F2009%2F06%2Ffb-fanpages-fbml-box%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.snipe.net%2F2009%2F06%2Ffb-fanpages-fbml-box%2F&amp;source=snipeyhead&amp;style=normal&amp;service=bit.ly&amp;service_api=R_92bd97f4f8b9fa8a40675b36ea291223" height="61" width="50" /><br />
			</a>
		</div>
<p><span>You don&#8217;t always need a custom application for your Facebook fan page to look amazing. Save yourself time and money by using the Static FBML application instead.</span></p>
<p><span id="more-2015"></span>If you&#8217;ve played around with Facebook pages at all, you know that layout-wise, you don&#8217;t have a lot of options. It&#8217;s one of the reasons some people prefer MySpace, where you can have custom font colors and sizes and custom backgrounds, and one of the reasons I personally have to be paid to logon to MySpace.</p>
<p>A current misconception seems to be that in order to have any custom content or display elements in a Facebook page, such as a custom tab or profile box with a specific promotion or branded look and feel, you need a Facebook application.</p>
<p><strong>This is not true at all</strong>, and hopefully, I can save you a lot of time, headache and money by letting you in on a little secret.</p>
<p>There is a Facebook application called <strong><a href="http://www.facebook.com/apps/application.php?id=4949752878" target="_blank">Static FBML</a></strong> that could potentially save you a lot of hassle. This application was put out by Facebook, and it allows you to create custom HTML/FBML boxes and tabs on your Facebook fan page.</p>
<p>At its most sophisticated, the Static FBML app can allow you pull FBML elements into a profile box, boxes tab box, or an entire tab, At its most basic, you can use it to create custom HTML boxes in those same places that you can completely design and brand to your liking.</p>
<p>For example, I recently worked on the <a href="http://www.facebook.com/sunkistsoda" target="_blank">Facebook fan page for Sunkist Soda</a>. While we do use a custom application to display recent Twitter posts by the <a href="http://twitter.com/sunkist_soda">Sunkist Soda Twitter account</a>, there is an entire branded tab that is simple HTML. The &#8220;Team&#8221; tab on this page isn&#8217;t a custom application &#8211; it&#8217;s simply a Static FBML box with custom HTML.</p>
<p><a href="http://www.snipe.net/wp-content/uploads/2009/06/Picture-13.png"><img class="aligncenter size-large wp-image-2018" title="Sunkist Soda Fan Page - Static FBML Box" src="http://www.snipe.net/wp-content/uploads/2009/06/Picture-13-546x560.png" alt="Sunkist Soda Fan Page - Static FBML Box" width="546" height="560" /></a></p>
<p>We also use a Static FBML box on the main page&#8217;s profile, with a small box that includes promotions for various campaigns.</p>
<p><strong>The general rule of thumb is &#8211; if you don&#8217;t actually need to use any scripted languages like PHP or ASP, and you don&#8217;t need to access the API to get the user&#8217;s information for any reason, you probably don&#8217;t actually need an application.</strong> In our Sunkist Soda tab example, we&#8217;re not accessing the API, and we&#8217;re not doing anything database-related. We&#8217;re just displaying a nice background image and some thumbnails that link out.</p>
<p>The end result is a beautifully designed and branded tab or box that looks exactly the way you want it to look. When you need to update the content, just login to Facebook and make your changes in the Static FBML box.</p>
<h3>Times When Static FBML is Enough</h3>
<p>As I mentioned, if you&#8217;re not accessing the API and you&#8217;re not doing anything fancy, Static FBML will usually cut it. Also bear in mind that you can use Mock Ajax and FBJS in these boxes, so you could actually have a fairly dynamic tab/box, including expandable onclick elements, etc &#8211; without an application.</p>
<p>It basically behaves like a stand-alone webpage within your Facebook fan page.</p>
<p>Some suggestions on where beefing up your fan page with Static FBML can really help:</p>
<ul>
<li>Promotional text/graphics that click through your Facebook application or website</li>
<li>HTML version of your latest newsletter in its own tab (with signup box!)</li>
<li>A shortcut to important links on your website</li>
<li>Any other place where you want a custom look and feel within your fan page</li>
</ul>
<p>Figuring this out sooner rather than later can save you thousands of dollars if you&#8217;re considering hiring someone to help you. A contractor is going to have a vested interest in not mentioning this option to you, because it turns a specialized, several-thousand-dollar project into something any jackhole who knows basic HTML can handle themselves.</p>


<p>Possibly related posts:<ol><li><a href='http://www.snipe.net/2009/10/mini-site-facebook-static-fbml/' rel='bookmark' title='Permanent Link: Extending Facebook Static FBML Tabs with Dynamic Content'>Extending Facebook Static FBML Tabs with Dynamic Content</a> <small>This tutorial walks you through how to use DynamicFBML to...</small></li>
<li><a href='http://www.snipe.net/2010/05/static-fbml-microsite-next-level/' rel='bookmark' title='Permanent Link: Taking Your Static FBML Microsite to the Next Level'>Taking Your Static FBML Microsite to the Next Level</a> <small>In a previous tutorial, you learned how to Extend Facebook...</small></li>
<li><a href='http://www.snipe.net/2009/04/facebook-application-tabs/' rel='bookmark' title='Permanent Link: %$#^%$* Facebook Application Tabs'>%$#^%$* Facebook Application Tabs</a> <small>So this is new. And by new I mean painfully...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.snipe.net/2009/06/fb-fanpages-fbml-box/feed/</wfw:commentRss>
		<slash:comments>291</slash:comments>
		</item>
	</channel>
</rss>
