<?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>Spreading Funkyness &#187; posty</title>
	<atom:link href="http://spreadingfunkyness.com/category/posty/feed/" rel="self" type="application/rss+xml" />
	<link>http://spreadingfunkyness.com</link>
	<description>RIAbilitating the Internet with web apps, ria, iphone and ipad apps.</description>
	<lastBuildDate>Tue, 06 Jul 2010 21:37:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
<cloud domain='spreadingfunkyness.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>Posty in Adobe staff pick</title>
		<link>http://spreadingfunkyness.com/posty-in-adobe-staff-pick/</link>
		<comments>http://spreadingfunkyness.com/posty-in-adobe-staff-pick/#comments</comments>
		<pubDate>Sun, 31 May 2009 15:27:05 +0000</pubDate>
		<dc:creator>Cesare</dc:creator>
				<category><![CDATA[adobe]]></category>
		<category><![CDATA[posty]]></category>

		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=272</guid>
		<description><![CDATA[Posty is listed in the Staff Picks on Adobe&#8217;s website. Here is a screenshot. I am happy!]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin: 0px 10px 0px 0px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspreadingfunkyness.com%2Fposty-in-adobe-staff-pick%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspreadingfunkyness.com%2Fposty-in-adobe-staff-pick%2F&amp;source=_funkyboy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://spreadingfunkyness.com/posty">Posty</a> is listed in the <a href="LINK HERE">Staff Picks</a> on Adobe&#8217;s website.</p>
<p>Here is a screenshot.</p>
<p><a href="http://spreadingfunkyness.com/wp-content/uploads/2009/05/postystaffpick.gif"><img src="http://spreadingfunkyness.com/wp-content/uploads/2009/05/postystaffpick.gif" alt="Posty in Adobe staff" title="Posty in Adobe staff" width="600" height="284" class="aligncenter size-full wp-image-274" /></a></p>
<p>I am happy!</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://spreadingfunkyness.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://spreadingfunkyness.com/posty-in-adobe-staff-pick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I won the Adobe Student RIA contest!</title>
		<link>http://spreadingfunkyness.com/posty-won-an-award/</link>
		<comments>http://spreadingfunkyness.com/posty-won-an-award/#comments</comments>
		<pubDate>Wed, 20 May 2009 12:59:43 +0000</pubDate>
		<dc:creator>Cesare</dc:creator>
				<category><![CDATA[adobe]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[posty]]></category>
		<category><![CDATA[ria]]></category>

		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=270</guid>
		<description><![CDATA[I am glad to announce that Posty won an award! You might know I am an Adobe student rep for Rich Internet Applications. A while ago I submitted Posty to the RIA application contest. Now I received the notification that &#8230; I won! Here is a screenshot from the Education Developer Center. Thanks Adobe!]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin: 0px 10px 0px 0px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspreadingfunkyness.com%2Fposty-won-an-award%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspreadingfunkyness.com%2Fposty-won-an-award%2F&amp;source=_funkyboy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>I am glad to announce that Posty won an award! You might know I am an Adobe student rep for Rich Internet Applications. A while ago I submitted <a href="http://spreadingfunkyness.com/posty/">Posty</a> to the RIA application contest. Now I received the notification that &#8230; I won!<br />
Here is a screenshot from the <a href="http://www.adobe.com/devnet/edu/">Education Developer Center</a>.</p>
<p><a href="http://spreadingfunkyness.com/wp-content/uploads/2009/05/postyaward.gif"><img src="http://spreadingfunkyness.com/wp-content/uploads/2009/05/postyaward.gif" alt="Award Winner" title="Award Winner" width="619" height="208" class="aligncenter size-full wp-image-271" /></a> </p>
<p>Thanks Adobe!</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://spreadingfunkyness.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://spreadingfunkyness.com/posty-won-an-award/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Air vs Titanium (shallow comparison)</title>
		<link>http://spreadingfunkyness.com/air-vs-titanium-shallow-comparison/</link>
		<comments>http://spreadingfunkyness.com/air-vs-titanium-shallow-comparison/#comments</comments>
		<pubDate>Thu, 14 May 2009 12:17:22 +0000</pubDate>
		<dc:creator>Cesare</dc:creator>
				<category><![CDATA[adobeair]]></category>
		<category><![CDATA[microblogging]]></category>
		<category><![CDATA[posty]]></category>
		<category><![CDATA[ria]]></category>

		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=268</guid>
		<description><![CDATA[Air is Adobe&#8217;s proposal to build Rich Internet Applications by means of Html/Js, Flex or Flash. There are alternatives and one caught my attention since a while: Titanium. It is still in a preview release stage but it showcases good features and possibilities. For example the clone of Tweetie built on Titanium is a stunning ...]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin: 0px 10px 0px 0px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspreadingfunkyness.com%2Fair-vs-titanium-shallow-comparison%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspreadingfunkyness.com%2Fair-vs-titanium-shallow-comparison%2F&amp;source=_funkyboy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Air is Adobe&#8217;s proposal to build Rich Internet Applications by means of Html/Js, Flex or Flash. There are alternatives and one caught my attention since a while: <a href="http://titaniumapp.com/">Titanium</a>. It is still in a preview release stage but it showcases good features and possibilities. For example <a href="http://vimeo.com/4320245">the clone of Tweetie built on Titanium</a> is a stunning demo.<br />
Since I suspect that memory consumption will be a problem for every ria SDK which aims at being crossplatform, I had a look at the Tweetanium application in the <a href="http://titaniumapp.com/demos">demo section</a>. Downloaded, installed and loaded three timelines: home, friends and replies. I did the same with <a href="http://spreadingfunkyness.com/posty/">Posty</a>.<br />
Below is a screenshot comparing memory consumption.<br />
<a href="http://spreadingfunkyness.com/wp-content/uploads/2009/05/postyvstweetanium.gif"><img src="http://spreadingfunkyness.com/wp-content/uploads/2009/05/postyvstweetanium.gif" alt="Posty and Tweetanium memory usage" title="Posty and Tweetanium memory usage" width="404" height="72" class="aligncenter size-full wp-image-269" /></a></p>
<p>I am aware it is a shallow approach, but Tweetanium is much more hungry than Posty, in spite the fact that Tweetanium supports just one service (Twitter) whereas Posty includes Twitter, Jaiku, Tumblr, Friendfeed and Identi.ca. That said I list few items which can help to contextualize the comparison:</p>
<ul>
<li>Disclosure: I am the author of Posty, though I think the comparison is pretty fair. Anyway I am open to criticism.</li>
<li>Titanium is a prerelease version. It can improve.</li>
<li>The Air framework is a bit &#8216;older&#8217; than Titanium, probably more time has been spent to improve memory consumption</li>
<li>Posty&#8217;s memory usage <a href="http://spreadingfunkyness.com/garbage-collection-with-flex-and-adobe-air/">has been optimized</a>, whereas Titanium (I think) has been built to show how easy is to build a Twitter client with the SDK, so probably not much effort has been put in optimizing memory consumption.</li>
<li>Air&#8217;s is made by Adobe, a company. Probably this means more money and time invested in a project (though I am clearly aware that more money does not mean a better product)</li>
<li>The comparison regards only memory consumption. I am sure there are many other aspects that can be put on the table before saying &#8220;this is better than that&#8221;.</li>
</ul>
<p>This is why I think this post has just to provoke a discussion. I will be glad to hear your opinion.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://spreadingfunkyness.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://spreadingfunkyness.com/air-vs-titanium-shallow-comparison/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New release &#8211; Posty 1.8</title>
		<link>http://spreadingfunkyness.com/new-release-posty-18/</link>
		<comments>http://spreadingfunkyness.com/new-release-posty-18/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 10:30:24 +0000</pubDate>
		<dc:creator>Cesare</dc:creator>
				<category><![CDATA[adobeair]]></category>
		<category><![CDATA[friendfeed]]></category>
		<category><![CDATA[identi.ca]]></category>
		<category><![CDATA[jaiku]]></category>
		<category><![CDATA[microblogging]]></category>
		<category><![CDATA[posty]]></category>
		<category><![CDATA[tumblr]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=260</guid>
		<description><![CDATA[A new release of Posty is available. Download it from the Posty home page. Please find the change log below. PS: Posty has now a new signed certificate. The automatic update from previous versions might fail. You might need to uninstall the old version before installing the new one. CHANGE LOG post panel always visible ...]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin: 0px 10px 0px 0px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspreadingfunkyness.com%2Fnew-release-posty-18%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspreadingfunkyness.com%2Fnew-release-posty-18%2F&amp;source=_funkyboy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>A new release of Posty is available. Download it from the <a href="http://spreadingfunkyness.com/posty/">Posty home page</a>.<br />
Please find the change log below.</p>
<p><br/><br />
PS: Posty has now a new signed certificate. The automatic update from previous versions might fail. You might need to uninstall the old version before installing the new one.</p>
<p><br/><br />
CHANGE LOG</p>
<ul>
<li>post panel always visible at the bottom</li>
<li>custom panel: configurable to show the timelines you like</li>
<li>added &#8220;check for updates now&#8221; button</li>
<li>fixed double monitor bug</li>
<li>hide show commands on rollover</li>
<li>added options in twitter/friendfeed search</li>
<li>solved tumblr login bug</li>
<li>tweaked blue and green theme</li>
<li>toggle buttons to choose the service to be updated</li>
<li>new timelines: twitter and identi.ca favorites</li>
</ul>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://spreadingfunkyness.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://spreadingfunkyness.com/new-release-posty-18/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Guide to unfollow uninteresting Twitterers</title>
		<link>http://spreadingfunkyness.com/guide-to-unfollow-uninteresting-twitterers/</link>
		<comments>http://spreadingfunkyness.com/guide-to-unfollow-uninteresting-twitterers/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 13:13:09 +0000</pubDate>
		<dc:creator>Cesare</dc:creator>
				<category><![CDATA[microblogging]]></category>
		<category><![CDATA[posty]]></category>
		<category><![CDATA[socialnetworks]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=218</guid>
		<description><![CDATA[There are many suggestions on who to follow on Twitter, enable also by tools like Twubble and Twitdir. As far as I know there are much less posts about un-following. Here is my take. Continues on Louis Gray&#8217;s blog. Thanks Louis for the opportunity!]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin: 0px 10px 0px 0px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspreadingfunkyness.com%2Fguide-to-unfollow-uninteresting-twitterers%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspreadingfunkyness.com%2Fguide-to-unfollow-uninteresting-twitterers%2F&amp;source=_funkyboy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>There are many <a href="http://www.speedofcreativity.org/2007/11/13/deciding-who-to-follow-on-twitter/">suggestions</a> on <a href="http://www.pronetadvertising.com/articles/twitter-who-to-follow.html">who to follow on Twitter</a>, enable also by tools like <a href="http://www.crazybob.org/twubble/">Twubble</a> and <a href="http://twitdir.com/">Twitdir</a>.<br />
As far as I know there are much less posts about un-following. Here is my take.<br />
<br/><br />
Continues on <a href="http://www.louisgray.com/live/2008/12/posty-authors-guide-to-unfollow.html">Louis Gray&#8217;s blog</a>.<br />
<br/><br />
Thanks Louis for the opportunity!<br />
<br/></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://spreadingfunkyness.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://spreadingfunkyness.com/guide-to-unfollow-uninteresting-twitterers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Posty 1.7 Released</title>
		<link>http://spreadingfunkyness.com/posty-17-released/</link>
		<comments>http://spreadingfunkyness.com/posty-17-released/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 12:44:54 +0000</pubDate>
		<dc:creator>Cesare</dc:creator>
				<category><![CDATA[adobeair]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[microblogging]]></category>
		<category><![CDATA[posty]]></category>
		<category><![CDATA[socialnetworks]]></category>
		<category><![CDATA[tumblr]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=227</guid>
		<description><![CDATA[A new release of Posty is out today. On time to be put under the Christmas tree. Here is the change log. Enjoy! nine new graphical themes to customize the look and feel new Panel layout to quicken the choice between tabs a new tab, Friends, to read in one shot the updates from your ...]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin: 0px 10px 0px 0px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspreadingfunkyness.com%2Fposty-17-released%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspreadingfunkyness.com%2Fposty-17-released%2F&amp;source=_funkyboy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>A new release of Posty is out today. On time to be put under the Christmas tree.<br />
Here is the change log.<br />
Enjoy!<br/><br/></p>
<ul>
<li>nine new graphical themes to customize the look and feel</li>
<li>new Panel layout to quicken the choice between tabs</li>
<li>a new tab, Friends, to read in one shot the updates from your Twitter and Identica</li>
<li>improved notification of new tweets. (drag the window to position it as you prefer)</li>
<li>possibility to choose the font from the list of installed fonts</li>
<li>possibility to delete sensible data (usernames and passwords)</li>
<li>better memory management. less memory consumption</li>
</ul>
<p><br/><br />
To download it go to the <a href="http://spreadingfunkyness.com/posty/">Posty home page</a>.<br />
<br/></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://spreadingfunkyness.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://spreadingfunkyness.com/posty-17-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Posty &#8211; Poll results</title>
		<link>http://spreadingfunkyness.com/posty-poll-results/</link>
		<comments>http://spreadingfunkyness.com/posty-poll-results/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 14:34:23 +0000</pubDate>
		<dc:creator>Cesare</dc:creator>
				<category><![CDATA[microblogging]]></category>
		<category><![CDATA[posty]]></category>

		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=224</guid>
		<description><![CDATA[This is the result of the poll on desiderata for the next version of Posty. I have sort of foreseen Ui customization and I already implemented it. Still deciding what to work on: Facebook or the friends tabs. Will let you know soon. If you like to have news about Posty you can also follow ...]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin: 0px 10px 0px 0px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspreadingfunkyness.com%2Fposty-poll-results%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspreadingfunkyness.com%2Fposty-poll-results%2F&amp;source=_funkyboy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>This is the result of the poll on desiderata for the next version of Posty.</p>
<p><center><br />
<a href="http://spreadingfunkyness.com/wp-content/uploads/2008/12/poll.png"><img src="http://spreadingfunkyness.com/wp-content/uploads/2008/12/poll.png" alt="" title="Posty&#039;s Poll Results" width="495" height="232" class="alignnone size-full wp-image-225" /></a><br />
</center><br />
<br/><br />
I have sort of foreseen Ui customization and I already implemented it. Still deciding what to work on: Facebook or the friends tabs.</p>
<p>Will let you know soon. </p>
<p>If you like to have news about Posty you can also follow it on <a href="http://twitter.com/_posty">twitter</a>.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://spreadingfunkyness.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://spreadingfunkyness.com/posty-poll-results/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Posty &#8211; Poll on new features</title>
		<link>http://spreadingfunkyness.com/posty-poll-on-new-features/</link>
		<comments>http://spreadingfunkyness.com/posty-poll-on-new-features/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 12:05:49 +0000</pubDate>
		<dc:creator>Cesare</dc:creator>
				<category><![CDATA[microblogging]]></category>
		<category><![CDATA[posty]]></category>

		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=200</guid>
		<description><![CDATA[I created a small poll to understand which are the most &#8220;urgent&#8221; features for the next release of Posty, which will be ready around the end of the year. What is the next feature you would like to see in Posty? ( polls) If the list does not include what you&#8217;d like to see in ...]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin: 0px 10px 0px 0px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspreadingfunkyness.com%2Fposty-poll-on-new-features%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspreadingfunkyness.com%2Fposty-poll-on-new-features%2F&amp;source=_funkyboy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>I created a small poll to understand which are the most &#8220;urgent&#8221; features for the next release of Posty, which will be ready around the end of the year.</p>
<p><br/><br />
<center><br />
<script type="text/javascript" language="javascript" src="http://s3.polldaddy.com/p/1025091.js"></script><noscript> <a href ="http://answers.polldaddy.com/poll/1025091/" >What is the next feature you would like to see in Posty?</a>  <br/> <span style="font-size:9px;"> (<a href ="http://www.polldaddy.com">  polls</a>)</span></noscript><br />
</center><br />
<br/></p>
<p>If the list does not include what you&#8217;d like to see in the next version of Posty, please drop a line in the comments.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://spreadingfunkyness.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://spreadingfunkyness.com/posty-poll-on-new-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using a Url Shortening service in Adobe Air</title>
		<link>http://spreadingfunkyness.com/using-a-url-shortening-service-in-adobe-air/</link>
		<comments>http://spreadingfunkyness.com/using-a-url-shortening-service-in-adobe-air/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 08:31:46 +0000</pubDate>
		<dc:creator>Cesare</dc:creator>
				<category><![CDATA[adobeair]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[posty]]></category>

		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=82</guid>
		<description><![CDATA[Url shortening services are getting popular, especially now that microblogging networks are extensively used. Since the length of a microblogging post is usually limited, a shortened url comes handy for it saves precious characters. A shortened url is a sort of &#8220;compressed&#8221; url. For example if you point your browser to: http://is.gd/2 you will be ...]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin: 0px 10px 0px 0px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspreadingfunkyness.com%2Fusing-a-url-shortening-service-in-adobe-air%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspreadingfunkyness.com%2Fusing-a-url-shortening-service-in-adobe-air%2F&amp;source=_funkyboy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Url shortening services are getting popular, especially now that microblogging networks are extensively used. Since the length of a microblogging post is usually limited, a shortened url comes handy for it saves precious characters.</p>
<p>A shortened url is a sort of &#8220;compressed&#8221; url. For example if you point your browser to: <a href="http://is.gd/2">http://is.gd/2</a> you will be redirected to google.com, this way saving seven characters. How comes? Because there are services which can build a shortened url given the original one. Every time you enter a shortened url they redirect your browser to the original. Maybe the case of google.com is not representative, because you save &#8220;only&#8221; seven characters. Think of posting a google maps address like this: </p>
<p><br/><br />
<a href="http://maps.google.com/maps?f=q&#038;hl=en&#038;geocode=&#038;q=manhattan&#038;ie=UTF8&#038;z=17&#038;iwloc=addr">http://maps.google.com/maps?f=q&#038;hl=en&#038;geocode=&#038;q=manhattan&#038;ie=UTF8&#038;z=17&#038;iwloc=addr</a><br />
<br/><br/><br />
Its shortened version is: <a href="http://is.gd/3k7B">http://is.gd/3k7B</a><br />
<br/><br />
Can you count how many characters do you save? Many!</p>
<p>Since I recently implemented a very similar feature in <a href="http://spreadingfunkyness.com/posty/">Posty</a>, I will now show how to use a simple url shortener service in <a href="http://www.adobe.com/products/air/">Adobe Air</a>.</p>
<p>The interface will be made of:</p>
<ul>
<li/> a text input, where we can type the original url, to be shortened
<li/> a button, to trigger the shorten service
<li/> a text area to show the result
</ul>
<p>We put these three widgets in a VBox as in the following snippet of code.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:VBox<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:TextInput</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;originalURL&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Button</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;shorten&quot;</span> <span style="color: #000066;">label</span>=<span style="color: #ff0000;">&quot;Shorten&quot;</span> <span style="color: #000066;">click</span>=<span style="color: #ff0000;">&quot;shortenLink()&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Text</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;result&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:VBox<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>The service which we&#8217;ll use is <a href="http://is.gd/">http://is.gd/</a> which is very reliable and simple to interact with. The api documentation is reported <a href="http://is.gd/api_info.php">here</a>. As you can see it is very easy to use the api. All it is needed is the url, provided as a parameter named <code>longurl</code>. For example, to shorten google.com, we have to call the following url:<br />
<br/><br />
    <code><a href="http://is.gd/api.php?longurl=www.google.com">http://is.gd/api.php?longurl=www.google.com</a></code><br />
<br/><br />
When we click the button we trigger the <code>shortenLink()</code> function (line 3), which is defined as follows:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> loader:URLLoader = <span style="color: #000000; font-weight: bold;">new</span> URLLoader<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> shortenLink<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">var</span> request:URLRequest = <span style="color: #000000; font-weight: bold;">new</span> URLRequest<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;http://is.gd/api.php?longurl=&quot;</span>+originalURL.<span style="color: #0066CC;">text</span><span style="color: #66cc66;">&#41;</span>;
    loader.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">COMPLETE</span>, shortenSuccess, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
    loader.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>IOErrorEvent.<span style="color: #006600;">IO_ERROR</span>, shortenError, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
    loader.<span style="color: #0066CC;">load</span><span style="color: #66cc66;">&#40;</span>request<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> shortenSuccess<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
    loader.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">COMPLETE</span>, shortenSuccess<span style="color: #66cc66;">&#41;</span>;
    loader.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span>IOErrorEvent.<span style="color: #006600;">IO_ERROR</span>, shortenError<span style="color: #66cc66;">&#41;</span>;
    result.<span style="color: #0066CC;">text</span> = originalURL.<span style="color: #0066CC;">text</span> + <span style="color: #ff0000;">&quot; shortened is &quot;</span> + <span style="color: #0066CC;">e</span>.<span style="color: #006600;">currentTarget</span>.<span style="color: #0066CC;">data</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> shortenError<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:IOErrorEvent<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
    loader.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">COMPLETE</span>, shortenSuccess<span style="color: #66cc66;">&#41;</span>;
    loader.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span>IOErrorEvent.<span style="color: #006600;">IO_ERROR</span>, shortenError<span style="color: #66cc66;">&#41;</span>;
    result.<span style="color: #0066CC;">text</span> = <span style="color: #ff0000;">&quot;Error in shortening &quot;</span> +originalURL.<span style="color: #0066CC;">text</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>As you can see in the code, we prepare a request to load the url (line 4) specified in the API documentation and we append the url inserted by the user.<br />
The url shortener is a web service. You call it, but you do not get an immediate response. It takes a while, few seconds or milliseconds. This is why you need to set listeners, which are triggered when the service responds. We set up two listeners, one in case of success (line 5) and one triggered when there is some error in the process (line 6). In case of success, the listener function shows the shortened link (line 13). It notifies failure in case of error (line 19).</p>
<p>The only thing left is to couple logic and graphics by importing the actionscript file. Now our mxml file looks like this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Script</span> <span style="color: #000066;">source</span>=<span style="color: #ff0000;">&quot;ShortenerController.as&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:VBox<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:TextInput</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;originalURL&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Button</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;shorten&quot;</span> <span style="color: #000066;">label</span>=<span style="color: #ff0000;">&quot;Shorten&quot;</span> <span style="color: #000066;">click</span>=<span style="color: #ff0000;">&quot;shortenLink()&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mx:Text</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;result&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mx:VBox<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>And we can run the code to get the response from the web service.<br />
<br/><br />
The source code for this post is available <a href='http://spreadingfunkyness.com/wp-content/uploads/2008/10/urlshortener-src.zip'>here</a>.</p>
<p><br/><br />
ps:<br />
In principle the same code works for Flex, but if you try to run it you&#8217;ll get a Sandbox violation message, because the Flash player is not allowed to load data from a different domain, unless the server specifies a <a href="http://www.adobe.com/devnet/flashplayer/articles/cross_domain_policy.html">cross-domain policy</a> file.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://spreadingfunkyness.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://spreadingfunkyness.com/using-a-url-shortening-service-in-adobe-air/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Posty 1.6 is out</title>
		<link>http://spreadingfunkyness.com/posty-16-is-out/</link>
		<comments>http://spreadingfunkyness.com/posty-16-is-out/#comments</comments>
		<pubDate>Sat, 18 Oct 2008 12:59:16 +0000</pubDate>
		<dc:creator>Cesare</dc:creator>
				<category><![CDATA[adobeair]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[microblogging]]></category>
		<category><![CDATA[posty]]></category>
		<category><![CDATA[pownce]]></category>
		<category><![CDATA[tumblr]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://spreadingfunkyness.com/?p=175</guid>
		<description><![CDATA[A new version of Posty has been released today. This is the best release of Posty ever with a lot of new features! Automatic updates. Upon confirmation Posty downloads and installs new versions. Improved usability of login forms (which show up when needed) Clickable in-text links Url shortening (via http://is.gd/) Support to Twitter Direct Messages ...]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin: 0px 10px 0px 0px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspreadingfunkyness.com%2Fposty-16-is-out%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspreadingfunkyness.com%2Fposty-16-is-out%2F&amp;source=_funkyboy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>A new version of Posty has been released today. This is the best release of Posty ever with a lot of new features!<br />
<br/></p>
<ul>
<li>Automatic updates. Upon confirmation Posty downloads and installs new versions.</li>
<li>Improved usability of login forms (which show up when needed)</li>
<li>Clickable in-text links</li>
<li>Url shortening (via <a href="http://is.gd/">http://is.gd/</a>)</li>
<li>Support to <a href="http://www.twitter.com/">Twitter</a> Direct Messages</li>
<li>Support to <a href="http://identi.ca/">Identi.ca</a> Direct Messages</li>
<li>Configurable notifications of new <a href="http://www.twitter.com/">Twitter</a> updates</li>
<li>Support to Retweet</li>
<li>Support to <a href="http://www.twitter.com/">Twitter</a> favorites</li>
<li>Support to <a href="http://identi.ca/">Identi.ca</a> favorites</li>
<li>Memorization of services to update, preselected on startup</li>
<li>Choice of active services to be displayed on startup</li>
</ul>
<p><br/><br />
To download it go to <a href="http://spreadingfunkyness.com/posty/">Posty home page</a>.<br />
<br/><br />
Special thanks to beta testers who helped identifying bugs and collaborated by sending details. </p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://spreadingfunkyness.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://spreadingfunkyness.com/posty-16-is-out/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
