<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Salpy&#039;s Blog</title>
	<atom:link href="http://salpy.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://salpy.wordpress.com</link>
	<description>Migrating to a code blog</description>
	<lastBuildDate>Fri, 16 Dec 2011 06:25:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='salpy.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Salpy&#039;s Blog</title>
		<link>http://salpy.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://salpy.wordpress.com/osd.xml" title="Salpy&#039;s Blog" />
	<atom:link rel='hub' href='http://salpy.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Moved&#8230;</title>
		<link>http://salpy.wordpress.com/2011/11/21/moved/</link>
		<comments>http://salpy.wordpress.com/2011/11/21/moved/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 17:29:48 +0000</pubDate>
		<dc:creator>salpy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://salpy.wordpress.com/?p=117</guid>
		<description><![CDATA[I&#8217;ve moved this over to http://www.salpy.ca/blog/ Any updates (if any) will be seen there.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=salpy.wordpress.com&amp;blog=4888170&amp;post=117&amp;subd=salpy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve moved this over to http://www.salpy.ca/blog/  Any updates (if any) will be seen there.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/salpy.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/salpy.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/salpy.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/salpy.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/salpy.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/salpy.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/salpy.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/salpy.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/salpy.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/salpy.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/salpy.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/salpy.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/salpy.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/salpy.wordpress.com/117/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=salpy.wordpress.com&amp;blog=4888170&amp;post=117&amp;subd=salpy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://salpy.wordpress.com/2011/11/21/moved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dc2c22594dfdc1f9b83a2d3922a73a4f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">salpy</media:title>
		</media:content>
	</item>
		<item>
		<title>Sharing in Facebook without meta tags on your page</title>
		<link>http://salpy.wordpress.com/2011/10/07/sharing-in-facebook-without-meta-tags-on-your-page/</link>
		<comments>http://salpy.wordpress.com/2011/10/07/sharing-in-facebook-without-meta-tags-on-your-page/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 16:14:38 +0000</pubDate>
		<dc:creator>salpy</dc:creator>
				<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook share]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[share]]></category>

		<guid isPermaLink="false">http://salpy.wordpress.com/?p=100</guid>
		<description><![CDATA[Typically when you decide to share a link on Facebook it reads through the meta tags on the page the link points to in order to obtain thumbnails and other information to display in the post. Unfortunately it&#8217;s hard to meta tag each and every HTML page if you a) have a flash site or [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=salpy.wordpress.com&amp;blog=4888170&amp;post=100&amp;subd=salpy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Typically when you decide to share a link on Facebook it reads through the meta tags on the page the link points to in order to obtain thumbnails and other information to display in the post. Unfortunately it&#8217;s hard to meta tag each and every HTML page if you a) have a flash site or b) a site where everything is being generated on the fly &#8211; e.g. everything runs off of index.php</p>
<p>After much digging (I take no credit for this) the following JavaScript based share allows you to specify everything for your share:</p>
<p>function shareFacebook(title,summary,image, link){<br />
     http://www.facebook.com/share.php?s=100&amp;p[title]=&#8221;+encodeURI(title)+&#8221;&amp;p[summary]=&#8221;+encodeURI(summary)+&#8221;&amp;p[images][0]=&#8221;+encodeURI(image)+&#8221;&amp;p[images][1]=&#8221;+encodeURI(image)+&#8221;&amp;p[url]=&#8221;+encodeURI(link)<br />
}</p>
<p>For some reason if you need to share one thumbnail, you need to specify images at index 0 &amp; 1. For more thumbs, just continue to add more images to the [images] array.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/salpy.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/salpy.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/salpy.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/salpy.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/salpy.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/salpy.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/salpy.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/salpy.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/salpy.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/salpy.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/salpy.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/salpy.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/salpy.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/salpy.wordpress.com/100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=salpy.wordpress.com&amp;blog=4888170&amp;post=100&amp;subd=salpy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://salpy.wordpress.com/2011/10/07/sharing-in-facebook-without-meta-tags-on-your-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dc2c22594dfdc1f9b83a2d3922a73a4f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">salpy</media:title>
		</media:content>
	</item>
		<item>
		<title>RIM &#8211; my 2 cents on what&#8217;s so wrong</title>
		<link>http://salpy.wordpress.com/2011/06/16/rim-my-2-cents-on-whats-so-wrong/</link>
		<comments>http://salpy.wordpress.com/2011/06/16/rim-my-2-cents-on-whats-so-wrong/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 12:19:00 +0000</pubDate>
		<dc:creator>salpy</dc:creator>
				<category><![CDATA[mobile technology]]></category>
		<category><![CDATA[PlayBook]]></category>
		<category><![CDATA[RIM]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[investor]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[wrong]]></category>

		<guid isPermaLink="false">http://salpy.wordpress.com/?p=97</guid>
		<description><![CDATA[Reading through a business article today, this quote stood out for me &#8220;some of the analysts were loudly wondering just when Mr. Balsillie and his co-CEO, Mike Lazaridis, would step aside and hand the reins to someone else.&#8221; Now I&#8217;m not a business person, but I do work with various tablet devices as part of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=salpy.wordpress.com&amp;blog=4888170&amp;post=97&amp;subd=salpy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Reading through a business article today, this quote stood out for me <a href="http://www.theglobeandmail.com/globe-investor/the-apple-effect-calls-grow-for-a-shakeup-at-rim/article2062511/" target="_blank">&#8220;some of the analysts were loudly wondering just when Mr. Balsillie and his co-CEO, Mike Lazaridis, would step aside and hand the reins to someone else.&#8221;</a> Now I&#8217;m not a business person, but I do work with various tablet devices as part of my job. As one of the developers out there to receive a &#8220;free&#8221; PlayBook, here&#8217;s my critique on what went wrong. </p>
<p>When I received my PlayBook I couldn&#8217;t help but notice the glaringly bad looking green loading circle. Why in the world does it look like someone cropped out a poor resolution gif and animated it? Also, why doesn&#8217;t it match the feel of any of the other components? Already, one point against RIM. Next up, poor user experience. As I&#8217;m trying too add someone to my chat the keyboard slides up for me to enter their name, as it slides away it shows a button under the text field which I assume is the submit or done button. Boy was I wrong, that&#8217;s the CANCEL button, the next button is for some reason up in the top left corner in a completely different section of the screen. This goes against all intuition on how to navigate a device. Then again, should I be surprised? RIM&#8217;s traditional software is one of the most unintuitive things I&#8217;ve ever seen. </p>
<p>What I don&#8217;t understand is why RIM farmed out core pieces of its PlayBook software to various developers. When your main competition is Apple, a company known for having a strong focus on design and user experience, why in the world would you not hire an inside team to make sure everything was done consistently, properly, and with a high level of polish? Users aren&#8217;t engineers! They don&#8217;t care what the device has inside of it if they can&#8217;t use it. If RIM&#8217;s decision to parcel out software development of their core PlayBook applications was for cost reasons, they would have been much better off cutting their CEO&#8217;s and CFO&#8217;s salaries a tad and invested wisely in an in house team. Though RIM&#8217;s products seems innovative and great in the late 90s, they can&#8217;t claim the same now when they are faced with a sea of competition that actually pays attention to the user. </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/salpy.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/salpy.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/salpy.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/salpy.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/salpy.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/salpy.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/salpy.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/salpy.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/salpy.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/salpy.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/salpy.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/salpy.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/salpy.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/salpy.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=salpy.wordpress.com&amp;blog=4888170&amp;post=97&amp;subd=salpy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://salpy.wordpress.com/2011/06/16/rim-my-2-cents-on-whats-so-wrong/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dc2c22594dfdc1f9b83a2d3922a73a4f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">salpy</media:title>
		</media:content>
	</item>
		<item>
		<title>FaceBOOOOk!</title>
		<link>http://salpy.wordpress.com/2011/04/29/facebooook/</link>
		<comments>http://salpy.wordpress.com/2011/04/29/facebooook/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 21:01:35 +0000</pubDate>
		<dc:creator>salpy</dc:creator>
				<category><![CDATA[facebook]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[OAuth 2.0]]></category>
		<category><![CDATA[tab]]></category>

		<guid isPermaLink="false">http://salpy.wordpress.com/?p=94</guid>
		<description><![CDATA[Facebook pain strikes again. An older app of mine was stuck in an endless refresh loop that I couldn&#8217;t figure out for the life of me. Seems that when Facebook moved to their new signed_request stuff, they didn&#8217;t bother changing settings for older apps. Seems that you need to go into your app settings and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=salpy.wordpress.com&amp;blog=4888170&amp;post=94&amp;subd=salpy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Facebook pain strikes again. An older app of mine was stuck in an endless refresh loop that I couldn&#8217;t figure out for the life of me. Seems that when Facebook moved to their new signed_request stuff, they didn&#8217;t bother changing settings for older apps.</p>
<p>Seems that you need to go into your app settings and select a new option for OAuth 2.0 for Canvas<br />
&#8220;Select on &#8220;OAuth 2.0 for Canvas&#8221; in Edit application settings-&gt;Advanced&#8221;</p>
<p>That fixed it for me. Here&#8217;s the forum thread:</p>
<p>http://forum.developers.facebook.net/viewtopic.php?id=96342</p>
<p>In other news, I couldn&#8217;t get a signed_request in a tab page all because when I typed in the link for the tab in the app settings, I forgot the slash at the end. http://myapp.domain.com/tab doesn&#8217;t work. http://myapp.domain.com/tab/ does! *smacks forehead*</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/salpy.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/salpy.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/salpy.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/salpy.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/salpy.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/salpy.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/salpy.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/salpy.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/salpy.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/salpy.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/salpy.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/salpy.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/salpy.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/salpy.wordpress.com/94/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=salpy.wordpress.com&amp;blog=4888170&amp;post=94&amp;subd=salpy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://salpy.wordpress.com/2011/04/29/facebooook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dc2c22594dfdc1f9b83a2d3922a73a4f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">salpy</media:title>
		</media:content>
	</item>
		<item>
		<title>The Wildly Inconsistent Facebook</title>
		<link>http://salpy.wordpress.com/2011/04/08/the-wildly-inconsistent-facebook/</link>
		<comments>http://salpy.wordpress.com/2011/04/08/the-wildly-inconsistent-facebook/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 12:39:36 +0000</pubDate>
		<dc:creator>salpy</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[graph API]]></category>

		<guid isPermaLink="false">http://salpy.wordpress.com/?p=87</guid>
		<description><![CDATA[When developing for Facebook, you&#8217;re bound to run into issues you would never dream of because they are inherently problems within their system. What follows is a laundry list of issues I&#8217;ve ran into, mostly with the graph API, that have caused many wasted hours and many rage / swear filled minutes: Paging Data: Of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=salpy.wordpress.com&amp;blog=4888170&amp;post=87&amp;subd=salpy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When developing for Facebook, you&#8217;re bound to run into issues you would never dream of because they are inherently problems within their system. What follows is a laundry list of issues I&#8217;ve ran into, mostly with the graph API, that have caused many wasted hours and many rage / swear filled minutes:<span id="more-87"></span></p>
<ul>
<li><strong>Paging Data</strong>: Of all things, I think this really bothers me. Something as simple as how data is set up for retrieval is inconsistent. Between different calls (e.g. requesting photos the user is tagged in, or grabbing user statuses) the previous/next links in the returned paging data can lead to very different results. One call may lead to a duplicate entry on the next page of data, the other may not. Some calls, even the most basic such as an inquiry into basic user information, throw a stream error in Internet Explorer. Other calls will throw this error only when reaching the end of their data while in other browsers it will show up with an empty data set only. Recently an application of mine broke and I couldn&#8217;t figure out why until I found out that the in the final page of data for a certain request, the paging data &#8220;next&#8221; link was pointing back to the page it originated from, leading to an endless loop.  I find for every new project, I&#8217;m forced to manually check through sets of data to see how the previous/next links behave and to see how reaching the end of the dataset is indicated. Countless wasted hours for something that I would expect even the most junior programmer to have set up consistently.</li>
<li><strong>Crossdomain Policy</strong>: Typically the crossdomain policy for the graph API is fine, that is until you run into any users who may not have set a profile picture. These standard profile picture placeholders are hosted on some other random domain causing security violations when in Flash. One of our clients had kept complaining the application was breaking and it wasn&#8217;t until I logged in with their account that I saw what the issue was. Now I check if a security violation has occurred and then display our own locally hosted version of a placeholder picture. Mind you, I can&#8217;t tell if the user if male or female if they haven&#8217;t decided to share that information so I typically just throw up a generic silhouette.</li>
<li><strong>Erroneous Data</strong>: Recently I was fetching friend statuses through the graph API, and since I wanted to organize the posts by time posted I was also fetching the updated_time parameter. My list kept showing up only partially organized and after looking through my code I realized that the incorrect time was actually what Facebook was sending back. The times would appear to be hours or days into the future, even though these were people in the same timezone as myself and had correct times shown for their status on their Facebook page. When fetching the same data through their in-the-process-of-being-deprecated Facebook Query Language (FQL) the date was utterly absolutely perfectly correct. How in the world do you store the date properly on your servers, but somehow mangle it in the process of sending it through the graph API?</li>
<li><strong>OAuth Tokens</strong>: Requesting and validating a token is the core of any application. So how can this possibly go wrong? After countless wasted hours I realized that one of the accounts our client had sent over as having problems using the application we built for them was having its token magically go poof. For those of you interested, here&#8217;s the bug entry <a href="http://bugs.developers.facebook.net/show_bug.cgi?id=15933" target="_blank">http://bugs.developers.facebook.net/show_bug.cgi?id=15933</a> Strangely, half way through testing the problematic account it started to work on its own. In my case the application was receiving a valid token, so it would try to load up, but when it would try contacting the graph API for more data the token was seen as no longer valid. How can a session be valid for all of one second?</li>
</ul>
<p>Problems like the preceding are why Facebook initiatives like &#8220;Operation Developer Love&#8221; make my blood boil. When a company is outright careless, sloppy, and obviously clueless to any concept of code standards or of quality assurance, they cannot possibly think they&#8217;re doing developers a service. When you code for your own use you&#8217;re the only person staring at your inconsistent mess. When you code within a team, you have team members who will ream you out for your sloppy inconsistent mess. When you develop an API that&#8217;s used by thousands of other developers, we all suffer. Facebook development team, you need to get your act together. Hire some senior people, maybe people with management skills who can enforce consistency and performance. Tear it all down and start again. Or if you can&#8217;t manage to do that, just don&#8217;t allow any applications to be built on your &#8220;platform&#8221;. That way only your team is suffering.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/salpy.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/salpy.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/salpy.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/salpy.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/salpy.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/salpy.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/salpy.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/salpy.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/salpy.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/salpy.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/salpy.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/salpy.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/salpy.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/salpy.wordpress.com/87/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=salpy.wordpress.com&amp;blog=4888170&amp;post=87&amp;subd=salpy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://salpy.wordpress.com/2011/04/08/the-wildly-inconsistent-facebook/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dc2c22594dfdc1f9b83a2d3922a73a4f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">salpy</media:title>
		</media:content>
	</item>
		<item>
		<title>Fixing fonts not rendering in Flash Builder</title>
		<link>http://salpy.wordpress.com/2011/04/01/fixing-fonts-not-rendering-in-flash-builder/</link>
		<comments>http://salpy.wordpress.com/2011/04/01/fixing-fonts-not-rendering-in-flash-builder/#comments</comments>
		<pubDate>Fri, 01 Apr 2011 14:36:26 +0000</pubDate>
		<dc:creator>salpy</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flash builder]]></category>
		<category><![CDATA[flex builder]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[font embed]]></category>
		<category><![CDATA[font manager]]></category>
		<category><![CDATA[font rendering]]></category>
		<category><![CDATA[fonts]]></category>

		<guid isPermaLink="false">http://salpy.wordpress.com/?p=85</guid>
		<description><![CDATA[Ok. So you may know of the additional compiler argument -managers=flash.fonts.AFEFontManager  to fix the &#8220;my font doesn&#8217;t show up&#8221; problem.  Flash Builder has multiple font managers, some being much better than others. For those of you who are as lazy as I am, here&#8217;s a way to make sure it always defaults to the right [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=salpy.wordpress.com&amp;blog=4888170&amp;post=85&amp;subd=salpy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ok. So you may know of the additional compiler argument  -managers=flash.fonts.AFEFontManager  to fix the &#8220;my font doesn&#8217;t show  up&#8221; problem.  Flash Builder has multiple font managers, some being much better than others. For those of you who are as lazy as I am, here&#8217;s a way to make sure it always defaults to the  right font manager.</p>
<p>Look for the file flex-config.xml under &#8220;Adobe Flash Builder  4\sdks\4.0.0\frameworks&#8221; . You might have to ensure you have read/write  permissions for the user when in windows before you try editing this  file. Look for &#8220;managers&#8221; and you&#8217;ll find a list that looks like this:<br />
&lt;!&#8211; Compiler font manager classes, in policy resolution order&#8211;&gt;<br />
&lt;managers&gt;<br />
&lt;manager-class&gt;flash.fonts.JREFontManager&lt;/manager-class&gt;<br />
&lt;manager-class&gt;flash.fonts.BatikFontManager&lt;/manager-class&gt;<br />
&lt;manager-class&gt;flash.fonts.CFFFontManager&lt;/manager-class&gt;<br />
&lt;manager-class&gt;flash.fonts.AFEFontManager&lt;/manager-class&gt;<br />
&lt;/managers&gt;</p>
<p>Make sure the AFEFontManager is the LAST one in the list. For some  reason Flash Builder works backwards for finding font managers.</p>
<p>Save and restart Flash Builder.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/salpy.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/salpy.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/salpy.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/salpy.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/salpy.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/salpy.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/salpy.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/salpy.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/salpy.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/salpy.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/salpy.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/salpy.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/salpy.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/salpy.wordpress.com/85/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=salpy.wordpress.com&amp;blog=4888170&amp;post=85&amp;subd=salpy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://salpy.wordpress.com/2011/04/01/fixing-fonts-not-rendering-in-flash-builder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dc2c22594dfdc1f9b83a2d3922a73a4f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">salpy</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting around the Facebook bottleneck that is the graph API</title>
		<link>http://salpy.wordpress.com/2011/03/25/getting-around-the-facebook-bottleneck-that-is-the-graph-api/</link>
		<comments>http://salpy.wordpress.com/2011/03/25/getting-around-the-facebook-bottleneck-that-is-the-graph-api/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 18:12:01 +0000</pubDate>
		<dc:creator>salpy</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook application]]></category>
		<category><![CDATA[facebook flash application]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[status]]></category>
		<category><![CDATA[statuses]]></category>

		<guid isPermaLink="false">http://salpy.wordpress.com/?p=58</guid>
		<description><![CDATA[Recently we had a client who wanted a Facebook application that revolved around fetching the recent status of all the user&#8217;s friends. Since the graph API has a user connection named statuses (https://graph.facebook.com/{user_id}/statuses) , I figured this wouldn&#8217;t be much of a problem. What I didn&#8217;t think of was the limit Facebook places on the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=salpy.wordpress.com&amp;blog=4888170&amp;post=58&amp;subd=salpy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recently we had a client who wanted a Facebook application that revolved around fetching the recent status of all the user&#8217;s friends. Since the graph API has a user connection named statuses (https://graph.facebook.com/{user_id}/statuses) , I figured this wouldn&#8217;t be much of a problem. What I didn&#8217;t think of was the limit Facebook places on the number of simultaneous calls to the graph API. For a user with approximately a hundred friends, it would take up to two minutes to load their most recent status. Obviously this wasn&#8217;t going to work since no one wants to stare at a loader for that long. The solution: Facebook&#8217;s Query Language (fql)  &#8212; SQL like calls that allow to to grab data exposed by the graph API.</p>
<p>For those of you who just want the query without getting into the rest of the code, here it is:</p>
<pre>SELECT status,uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1= me())
AND (strlen(status.message) &gt; 0) ORDER BY status.time DESC</pre>
<p>Breaking it down:</p>
<ul>
<li>The <strong>SELECT uid2 FROM friend WHERE uid1=me()</strong> bit grabs your list of friends. Essentially you&#8217;re querying the<br />
<strong>friend</strong> table and selecting users (uid2) who are friends with the current user (uid1).</li>
<li>Looking at the start of this query: <strong>SELECT status,uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1= me())</strong> says to grab the status and user id (uid) from the <strong>user</strong> table where the user exists in your friends list.</li>
<li>So far we&#8217;ve grabbed the user id and current status for all the user&#8217;s friends. Since the <strong>status</strong> table is limited to the last 30 days, you might get some empty results. To filter these out we check if the <strong>message </strong>column in the table has an entry that is longer than zero characters with: <strong>AND (strlen(status.message) &gt; 0)<br />
</strong></li>
<li>Finally we are ordering the statuses by most recent date to oldest with: <strong>ORDER BY status.time DESC</strong></li>
</ul>
<p>We&#8217;re only using data from the uid, time and message columns of the status table, but there are a couple more columns you can gather information from :</p>
<ul>
<li><strong>uid</strong>: id of the user who posted the message</li>
<li><strong>status_id</strong>: id of the status message</li>
<li> <strong>time</strong>: time in seconds that has elapsed from January 1 1970 (Note: seconds, NOT milliseconds)</li>
<li><strong>source</strong>: the application that posted the status originally</li>
<li><strong>message</strong>: the status text</li>
</ul>
<h6>Source <a href="http://developers.facebook.com/docs/reference/fql/status/">http://developers.facebook.com/docs/reference/fql/status/</a></h6>
<p>That&#8217;s all for the actual fql call. The next two sections will show how to execute the call and how to import that data into flash in an easily readable format.<span id="more-58"></span></p>
<h4>PHP</h4>
<p>Facebook has a php API that you&#8217;ll require for the following. Now I&#8217;m no php whiz, so I&#8217;m sure this could have been done in a more elegant fashion but here goes:</p>
<pre>&lt;?php
require_once('facebook-php-sdk/src/facebook.php');
define('APP_ID', 'your app id');
define('SECRET', 'your app secret');
define('APP_URL','your app url');
define('DOMAIN', 'your app domain');
<pre>//your app permissions</pre>
<p>define('PERMISSIONS','read_stream, publish_stream, user_status, friends_status');<br />
define('CHANNEL', 'your app channel url');</p>
<p>define('CANCEL_URL', 'your app cancel url');<br />
function doLogin(){</p>
<p>$url = $GLOBALS['facebook']-&gt;getLoginUrl(array(</p>
<p>'req_perms' =&gt; PERMISSIONS,</p>
<p>'canvas'=&gt; 1,</p>
<p>'fbconnect'=&gt; 0,</p>
<p>'cancel_url'=&gt; CANCEL_URL,</p>
<p>'next'=&gt; APP_URL</p>
<p>));<br />
echo ("&lt;script type='text/javascript'&gt;top.location.href = '$url';&lt;/script&gt;");</p>
<p>}<br />
$facebook = new Facebook(array(</p>
<p>'appId' =&gt; APP_ID,</p>
<p>'secret' =&gt; SECRET,</p>
<p>'cookie' =&gt; true,</p>
<p>'domain' =&gt; DOMAIN,</p>
<p>'channel' =&gt; CHANNEL</p>
<p>));<br />
/**</p>
<p>*</p>
<p>* This will generate a json file called resultsXXXXX.json where the XXXXX represents</p>
<p>* the user id.  Note fql2.php requires modification of the app info.</p>
<p>* Could be rewritten as a class with a function you pass</p>
<p>* the php $facebook object into. Results are returned as a json object with an array named posts.</p>
<p>* Within the posts array, each json object has: userID, updated_time (in ms since 1970), message.</p>
<p>* The results only contain friends that have a current status.</p>
<p>*/<br />
$session = $facebook-&gt;getSession();<br />
if ($session){</p>
<p>// echo ("&lt;script type='text/javascript'&gt;alert('got the session')&lt;/script&gt;");<br />
/**there's a session, now test if the session is valid for the current user by trying</p>
<p>* to access the user through the keyword 'me'**/<br />
try{</p>
<p>$response = $facebook-&gt;api('/me');</p>
<p>//        echo("session and user good");</p>
<p>}</p>
<p>catch(FacebookApiException $e){</p>
<p>//        echo("user not logged in");</p>
<p>}<br />
/**At this point we know that there's a Facebook session valid for the current user**/</p>
<p>if ($response){<br />
$me = $response['id'];<br />
$fql = "SELECT status,uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1= me())</p>
<p>AND (strlen(status.message) &gt; 0) ORDER BY status.time DESC";<br />
$param  =   array(</p>
<p>'method'     =&gt; 'fql.query',</p>
<p>'query'     =&gt; $fql,</p>
<p>'callback'    =&gt; ''</p>
<p>);</p>
<pre>//execute the fql query and save the results in the variable $statusResult
$statusResult   =   $facebook-&gt;api($param);</pre>
<p>//create an array named posts to save the responses into</p>
<p>$posts = array();<br />
//loop through all the results in $statusResult</p>
<p>for ($counter=0; $counter&lt;count($statusResult); $counter++){</p>
<p>$userID = $statusResult[$counter]['uid'];</p>
<p>//each status is held in a array named status, so we store that array in the variable $item</p>
<p>$item = $statusResult[$counter]['status'];</p>
<p>//get the time the status was posted and convert to milliseconds</p>
<p>$time = $item['time']*1000;</p>
<p>//get the message for the status</p>
<p>$message = $item['message'];</p>
<p>//store an array in $posts with the parameters userID, updated_time, and message</p>
<p>$posts[]=array('userID'=&gt; $userID, 'updated_time'=&gt; $time, 'message'=&gt;$message);</p>
<p>}<br />
//use your posts array to write a json file to your server.</p>
<p>//Here I'm using the user's id as for a unique filename.</p>
<p>$response = array();</p>
<p>$response['posts']=$posts;</p>
<p>$fp = fopen('json/results'.$me.'.json','w');</p>
<p>fwrite($fp,json_encode($response));</p>
<p>fclose($fp);<br />
echo "done";<br />
}</p>
<p>else{</p>
<p>//user logged in but the session is invalid</p>
<p>doLogin();</p>
<p>}<br />
}<br />
else{</p>
<p>//user wasn't logged in</p>
<p>doLogin();</p>
<p>}<br />
?&gt;</pre>
<h4>Importing the JSON file to Flash</h4>
<p>So now we have a json file containing an array named posts. Within the array there is a json object for every friend that had a current status (I&#8217;ll call this the status object).  Status object example:</p>
<p>{&#8220;userID&#8221;:&#8221;111111111&#8243;,</p>
<p>&#8220;updated_time&#8221;:1300965518000,</p>
<p>&#8220;message&#8221;:&#8221;the status message that was posted&#8221;}</p>
<p>Make sure you have the <a title="Corelib download" href="https://github.com/mikechambers/as3corelib" target="_blank">as3 corelib</a> as part of your flash project because you&#8217;ll need the serialization classes in it to decode the json file.</p>
<pre>package ca.salpy.utils
{
 import com.adobe.serialization.json.JSON;
 import flash.events.Event;
 import flash.events.EventDispatcher;
 import flash.events.IOErrorEvent;
 import flash.net.URLLoader;
 import flash.net.URLRequest;

 public class StatsLoader extends EventDispatcher
 {

      private var retrieveStatsCall:URLLoader;
      private var id:String; //the id of the person using the application
      private var resultsObj:Object={}; //an object I'm returning containing the statuses
      private var jsonURL:String; //where the json file is

 public function StatsLoader(id:String, jsonRootURL:String)
 {
      this.id = id;
      this.jsonURL = jsonRootURL;
 }

 public function get results():Object{
      return resultsObj;
 }

//instantiate this class, add an Event.COMPLETE listener and then call load
 public function load():void{
     retrieveStatsCall= new URLLoader();
     retrieveStatsCall.addEventListener(IOErrorEvent.IO_ERROR, onError);
     retrieveStatsCall.addEventListener(Event.COMPLETE, onStatsLoad);
     retrieveStatsCall.load(new URLRequest(jsonURL+"results"+id+".json"));
 }

 private function onError(e:Event):void{
      trace("error loading stats");
 }

 private function onStatsLoad(e:Event):void{
      retrieveStatsCall.removeEventListener(IOErrorEvent.IO_ERROR, onError);
      retrieveStatsCall.removeEventListener(Event.COMPLETE, onStatsLoad);

      //decode the json data (stored in the data property of the loader)
      var json:Object = JSON.decode(retreiveStatsCall.data);

      //loop through all the status objects in the posts array
      if (json.posts!=null &amp;&amp; json.posts.length&gt;0){
        for (var i:int = 0; i&lt;json.posts.length; i++){
             var item:Object = json.posts[i];
             var userID:String = item.userID;
             /**here I'm creating a userID property (one of the user's friends) on the
               *resultsObj object and then storing the status for that friend as an object
               *with updated_time and message parameters. Since we converted the Facebook
               *time into milliseconds, we can just create a new AS3 Date object with it.**/
             resultsObj[userID]={updated_time: new Date(item.updated_time), message: item.message};
           }
       }
     else{
         trace("couldn't find any statuses, sorry <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> ");
      }
 dispatchEvent(new Event(Event.COMPLETE));
 }

 }
}</pre>
<h3>The End</h3>
<p>So that&#8217;s it for getting every friends&#8217; status. Though it seems to be quite a lot of work, loading time is cut down from minutes to a few seconds.</p>
<p>P.S. Apologies for the poor code formatting. Cutting and pasting into something that has syntax highlighting will help with the readability.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/salpy.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/salpy.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/salpy.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/salpy.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/salpy.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/salpy.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/salpy.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/salpy.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/salpy.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/salpy.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/salpy.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/salpy.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/salpy.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/salpy.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=salpy.wordpress.com&amp;blog=4888170&amp;post=58&amp;subd=salpy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://salpy.wordpress.com/2011/03/25/getting-around-the-facebook-bottleneck-that-is-the-graph-api/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dc2c22594dfdc1f9b83a2d3922a73a4f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">salpy</media:title>
		</media:content>
	</item>
		<item>
		<title>Moving towards code</title>
		<link>http://salpy.wordpress.com/2011/03/25/moving-towards-code/</link>
		<comments>http://salpy.wordpress.com/2011/03/25/moving-towards-code/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 16:22:45 +0000</pubDate>
		<dc:creator>salpy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flash builder]]></category>

		<guid isPermaLink="false">http://salpy.wordpress.com/?p=53</guid>
		<description><![CDATA[This blog had started as a multimedia blog while I was in school, but that was a couple years ago and I figure it&#8217;s time to start blogging about what I actually do work wise &#8212; actionscript 3 mostly.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=salpy.wordpress.com&amp;blog=4888170&amp;post=53&amp;subd=salpy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This blog had started as a multimedia blog while I was in school, but that was a couple years ago and I figure it&#8217;s time to start blogging about what I actually do work wise &#8212; actionscript 3 mostly.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/salpy.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/salpy.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/salpy.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/salpy.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/salpy.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/salpy.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/salpy.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/salpy.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/salpy.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/salpy.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/salpy.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/salpy.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/salpy.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/salpy.wordpress.com/53/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=salpy.wordpress.com&amp;blog=4888170&amp;post=53&amp;subd=salpy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://salpy.wordpress.com/2011/03/25/moving-towards-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dc2c22594dfdc1f9b83a2d3922a73a4f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">salpy</media:title>
		</media:content>
	</item>
	</channel>
</rss>
