<?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>dorianroy.com­­/blog</title>
	<atom:link href="http://dorianroy.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://dorianroy.com/blog</link>
	<description>just another developer blog</description>
	<lastBuildDate>Mon, 28 May 2012 19:49:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>SoundCloud-AS3-API: Small Update and new URL</title>
		<link>http://dorianroy.com/blog/2010/10/soundcloud-as3-api-small-update-and-new-url/</link>
		<comments>http://dorianroy.com/blog/2010/10/soundcloud-as3-api-small-update-and-new-url/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 17:19:33 +0000</pubDate>
		<dc:creator>Dorian</dc:creator>
				<category><![CDATA[Soundcloud]]></category>

		<guid isPermaLink="false">http://dasflash.com/?p=253</guid>
		<description><![CDATA[This is just a quick note that I&#8217;ve uploaded some minor changes to the SoundCloud-AS3-API on github. I finally added a method to retrieve a signed URLRequest for any API resource. This comes in handy when you want to access the stream of a private track. Here&#8217;s a simple example: I also fixed an issue with [...]]]></description>
			<content:encoded><![CDATA[<p>This is just a quick note that I&#8217;ve uploaded some minor changes to the <a href="http://github.com/dorianroy/Soundcloud-AS3-API">SoundCloud-AS3-API</a> on github. I finally added a method to retrieve a signed URLRequest for any API resource. This comes in handy when you want to access the stream of a private track. <span id="more-253"></span><br />
Here&#8217;s a simple example:</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">
<pre class="brush: as3; title: ; notranslate">&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot; style=&quot;position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;&quot;&gt;var urlRequest:URLRequest = scClient.getSignedURLRequest(myTrack.stream_url);&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot; style=&quot;position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;&quot;&gt;var sound:Sound = new Sound(urlRequest);&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot; style=&quot;position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;&quot;&gt;sound.play();&lt;/div&gt;
&lt;div id=&quot;_mcePaste&quot; style=&quot;position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;&quot;&gt;</pre>
</div>
<pre class="brush: as3; title: ; notranslate">

var urlRequest:URLRequest = scClient.getSignedURLRequest(somePrivateTrack.stream_url);

var sound:Sound = new Sound(urlRequest);

sound.play();
</pre>
<p>I also fixed an issue with GET parameters not being added. Thanks to Jesse for pointing this out  - check out his <a href="http://jessewarden.com/2010/10/product-2-soundcloud-for-androidtm.html">SoundCloud App for Android</a> built with the AS3-API!</p>
<p>I&#8217;m trying to add support for SoundCloud&#8217;s new OAuth 2.0 API  in the next release. I&#8217;m not sure if this will bring any benefits but the guys at SoundCloud are asking every week for it ;) However, they will continue to support the &#8220;old&#8221; API.</p>
<p>Note that the project now has a new URL because I changed my github username to &#8220;dorianroy&#8221;: <a href="http://github.com/dorianroy/Soundcloud-AS3-API/">http://github.com/dorianroy/Soundcloud-AS3-API</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://dorianroy.com/blog/2010/10/soundcloud-as3-api-small-update-and-new-url/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Scup Source Code Released</title>
		<link>http://dorianroy.com/blog/2010/07/scup-source-code-released/</link>
		<comments>http://dorianroy.com/blog/2010/07/scup-source-code-released/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 19:32:06 +0000</pubDate>
		<dc:creator>Dorian</dc:creator>
				<category><![CDATA[Scup]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Soundcloud]]></category>
		<category><![CDATA[Soundcloud-API]]></category>
		<category><![CDATA[Swiz]]></category>

		<guid isPermaLink="false">http://dasflash.com/?p=239</guid>
		<description><![CDATA[If you want some more sample code for the SoundCloud-AS3-API, look no further: I just pushed the Scup repository to github: http://github.com/dorianroy/Scup. Before you can play around with the code, you&#8217;ll need to install the SoundCloud-AS3-API, the Swiz framework and get an application key from SoundCloud first. See the readme file for details. I decided [...]]]></description>
			<content:encoded><![CDATA[<p>If you want some more sample code for the SoundCloud-AS3-API, look no further: I just pushed the <a href="http://scup.dasflash.com" target="_blank">Scup</a> repository to github: <a href="http://github.com/dorianroy/Scup" target="_blank">http://github.com/dorianroy/Scup</a>. <span id="more-239"></span></p>
<p>Before you can play around with the code, you&#8217;ll need to install the <a href="http://github.com/dorianroy/Soundcloud-AS3-API" target="_blank">SoundCloud-AS3-API</a>, the <a href="http://github.com/swiz/swiz-framework" target="_blank">Swiz framework</a> and get an <a href="http://soundcloud.com/you/apps/new" target="_blank">application key from SoundCloud</a> first. See the readme file for details.</p>
<p>I decided to release the code under GNU license to make sure that any improvements and modifications will have to be open-source,  too. Let me know if you&#8217;d like to contribute to the next release and want your modifications to be included in the next &#8220;official&#8221; release.</p>
]]></content:encoded>
			<wfw:commentRss>http://dorianroy.com/blog/2010/07/scup-source-code-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scup 1.1 released &#8211; now runs on Linux as well</title>
		<link>http://dorianroy.com/blog/2010/07/scup-1-1-released-now-runs-on-linux-as-well/</link>
		<comments>http://dorianroy.com/blog/2010/07/scup-1-1-released-now-runs-on-linux-as-well/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 10:45:32 +0000</pubDate>
		<dc:creator>Dorian</dc:creator>
				<category><![CDATA[Scup]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Soundcloud]]></category>

		<guid isPermaLink="false">http://dasflash.com/?p=231</guid>
		<description><![CDATA[I&#8217;ve just released a minor update for Scup. If you have already installed Scup, you should get the update automatically the next time you launch it. If not, get it here. The new version 1.1 adds the new set type &#8220;Sample Collection&#8221;, enables bulk editing of the track type parameter and fixes a few issues [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just released a minor update for Scup. If you have already installed Scup, you should get the update automatically the next time you launch it. If not, get it <a href="http://dorianroy.com/scup/" target="_blank">here</a>.</p>
<p>The new version 1.1 adds the new set type &#8220;Sample Collection&#8221;, enables bulk editing of the track type parameter and fixes a few issues (thanks for your bug reports!). <span id="more-231"></span>Most important is a workaround for an annoying AIR bug under Linux that prevented Scup from opening the authentication page in the browser with the right parameters. I could only test it with AIR 2.0 on Ubuntu 10.04, but I&#8217;m confident that Scup now runs on other Linux distributions as well.</p>
<p>I know that there are some feature requests that didn&#8217;t make it into this release as I&#8217;m quite busy with another project and could only spend a few hours on Scup this time.  I hope to have more time for the next update.</p>
<p>The <a href="http://getsatisfaction.com/scup" target="_blank">feedback forum</a> for Scup has got an update as well, I&#8217;ve switched from Getsatisfaction to Uservoice because they offer different categories for issue reports. So now you can report a problem as a problem, and a question as a question. Makes sense, huh?</p>
]]></content:encoded>
			<wfw:commentRss>http://dorianroy.com/blog/2010/07/scup-1-1-released-now-runs-on-linux-as-well/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Make A Friendly Facebook Like Button</title>
		<link>http://dorianroy.com/blog/2010/04/how-to-make-a-friendly-facebook-like-button/</link>
		<comments>http://dorianroy.com/blog/2010/04/how-to-make-a-friendly-facebook-like-button/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 18:48:18 +0000</pubDate>
		<dc:creator>Dorian</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://dorianroy.com/blog/?p=10</guid>
		<description><![CDATA[First I was very excited when I saw the new Facebook Like Button. But when I checked the code to see how it works, I noticed that this button actually allows Facebook to track all the Facebook users on your site, no matter if they click it or not (see my previous post on how this [...]]]></description>
			<content:encoded><![CDATA[<p>First I was very excited when I saw the new <a href="http://developers.facebook.com/docs/reference/plugins/like">Facebook Like Button</a>. But when I checked the code to see how it works, I noticed that this button actually allows Facebook to track all the Facebook users on your site, no matter if they click it or not (see my <a href="http://dorianroy.com/blog/2010/04/how-facebooks-like-button-works/">previous post</a> on how this works).</p>
<p>As a publisher, you might not want to annoy the visitors of your site with that. So I hacked together an alternative like button, that only connects to Facebook if you click it. <span id="more-10"></span>Once you have clicked it, it looks and behaves the same as the original button (actually, it&#8217;s replaced by the original button when you click it). This way users can decide if they want to let Facebook know that they have visited your site. Try it here:</p>
<link rel="stylesheet" href="http://static.ak.fbcdn.net/rsrc.php/zD5ZK/hash/4146lpfk.css" type="text/css" />
<script type="text/javascript">
	var fbURL = "http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdorianroy.com%2Fblog%2F2010%2F04%2Fhow-to-make-a-friendly-facebook-like-button%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light";
	function insertLikeButton() {
		var container = document.getElementById('flbCont');
		var w = container.style.width;
		var h = container.style.height;
		fbFrame = document.createElement("IFRAME"); 
		fbFrame.setAttribute("src", fbURL);
		fbFrame.setAttribute("scrolling", "no");
		fbFrame.setAttribute("frameBorder", 0);
		fbFrame.setAttribute("allowTransparency", true);
		fbFrame.style.border = "none";
		fbFrame.style.overflow = "hidden";
		fbFrame.style.width = w; 
		fbFrame.style.height = h; 
		container.replaceChild(fbFrame, document.getElementById('flb'));
	}
</script></p>
<div id="flbCont" class="connect_widget">
	<a id="flb" class="connect_widget_like_button clearfix like_button_no_like" onclick="insertLikeButton();" style="cursor:pointer;-moz-outline-style:none;text-decoration:none"><span class="liketext" style="line-height:1">Show Facebook Likes</span></a>
</div>
<p>Here is how you can put this button on your website:</p>
<ol>
<li>Copy the code snippet from <a href="http://gist.github.com/378594" target="_blank">here</a> and put it in the HTML code of your page where you want the button to appear.</li>
<li>Go to this <a href="http://developers.facebook.com/docs/reference/plugins/like" target="_blank">code-generator on Facebook</a> and configure the button (usually you only need to enter your URL).</li>
<li>When you&#8217;re done, click &#8220;Get Code&#8221; on the Facebook-page.</li>
<li>From the iframe-field, copy only the characters from the first to the second quotation mark. Make sure you don&#8217;t miss the quotation marks, as shown here:<a href="http://dorianroy.com/blog/wp-content/uploads/2010/04/Screen-shot-Facebook-Snippet.png" rel="prettyPhoto[10]"><img class="size-full wp-image-40 alignnone" style="margin-top: 8px; margin-bottom: 8px;" title="Screen-shot-Facebook-Snippet" src="http://dorianroy.com/blog/wp-content/uploads/2010/04/Screen-shot-Facebook-Snippet.png" alt="Screenshot from the Facebook code generator" width="496" height="311" /></a></li>
<li>Paste this text into the code you&#8217;ve inserted in your page in step 1: just replace the string &#8220;PASTE_FACEBOOK_URL_HERE&#8221;. Keep the trailing semicolon after the end of the string.</li>
</ol>
<p>That&#8217;s it! You should see the button expand when you click it and load the real like button.</p>
<p>If you want to change the text of the button: it&#8217;s located in the next to last line of the code. Just change it to whatever you like. The button will resize to the length of the text.</p>
<p>This code basically just displays a button and applies a stylesheet from Facebook to it, so it looks exactly like the real like button. Of course you can replace it with your own customized button. Just make sure that the ids of the button and its container stay the same (&#8220;flb&#8221; and &#8220;flbCont&#8221;) and that it calls insertLikeButton() when clicked. This function replaces your button with an iframe that sends your parameters and the user&#8217;s cookie to facebook and loads the actual like button and friends info.</p>
<p>If you have problems with the width and height of the expanded button, you should give the container div named &#8220;flbCont&#8221; a size that fits your needs. The loaded iframe will be resized to these dimensions.</p>
]]></content:encoded>
			<wfw:commentRss>http://dorianroy.com/blog/2010/04/how-to-make-a-friendly-facebook-like-button/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>How Facebook&#8217;s Like Button Works</title>
		<link>http://dorianroy.com/blog/2010/04/how-facebooks-like-button-works/</link>
		<comments>http://dorianroy.com/blog/2010/04/how-facebooks-like-button-works/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 08:36:59 +0000</pubDate>
		<dc:creator>Dorian</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[iframe]]></category>
		<category><![CDATA[social media]]></category>

		<guid isPermaLink="false">http://dorianroy.com/blog/?p=60</guid>
		<description><![CDATA[Facebook has introduced a new Like Button together with some other &#8220;social plugins&#8221; at their f8 conference last week. Everybody can put it on their website so that visitors can &#8220;like&#8221; a page and add it to their Facebook profile without leaving the site. This button actually allows Facebook to track all visitors of the external [...]]]></description>
			<content:encoded><![CDATA[<p>Facebook has introduced a new <a href="http://developers.facebook.com/docs/reference/plugins/like" target="_blank">Like Button</a> together with some other &#8220;social plugins&#8221; at their f8 conference last week. Everybody can put it on their website so that visitors can &#8220;like&#8221; a page and add it to their Facebook profile without leaving the site.</p>
<p>This button actually allows Facebook to track all visitors of the external site, no matter if they click it or not (as long as they are Facebook users &#8211; but who isn&#8217;t?). <span id="more-60"></span>Facebook can do that because they use an iframe to display the button. An iframe is something like an embedded browser window within a page. The difference between using an iframe and a simple image for the button is that the iframe contains a complete web page &#8211; from Facebook. There is not much going on on this page, except for the button and the information about how many people have liked the current page. <a href="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdevelopers.facebook.com%2F&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=450&amp;amp;action=like&amp;amp;colorscheme=light" target="_blank">Click here</a> to open a like button page in a new window.</p>
<p>So when you see a like button on cnn.com, you are actually visiting a Facebook page at the same time. That allows Facebook to read a cookie on your computer, which it has created the last time you&#8217;ve logged in to Facebook. The cookie remains on your computer for months, even when you didn&#8217;t check the &#8220;keep me logged in&#8221;-option in the login form. It contains your Facebook user-id. A fundamental security rule in every browser is that only the website that has created a cookie can read it later on. And that is the advantage of the iframe: it allows Facebook to read your Facebook-cookie even when you are visiting a different website. That&#8217;s how they recognize you on cnn.com and display your friends there.</p>
<p>What I don&#8217;t like about this is that it is not opt-in. You&#8217;re not asked to be tracked on external sites by Facebook, and there is also no opt-out in the Facebook privacy settings. Honestly, you can&#8217;t blame Facebook for that, because there is no way they could check your privacy settings before they know who you are. The only way you can avoid being tracked by Facebook on other sites is to logout of Facebook before visiting any other site. That will delete the cookie.</p>
<p>(If you have a website or blog and want to include the like button, but do not want it to track the users without their consent, have a look at <a href="http://dorianroy.com/blog/2010/04/how-to-make-a-friendly-facebook-like-button/">this post</a> where you can see how to make a like button with opt-in)</p>
]]></content:encoded>
			<wfw:commentRss>http://dorianroy.com/blog/2010/04/how-facebooks-like-button-works/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SoundCloud Uploader Scup 1.0 released</title>
		<link>http://dorianroy.com/blog/2010/04/soundcloud-uploader-scup-1-0-released/</link>
		<comments>http://dorianroy.com/blog/2010/04/soundcloud-uploader-scup-1-0-released/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 14:41:45 +0000</pubDate>
		<dc:creator>Dorian</dc:creator>
				<category><![CDATA[Scup]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Soundcloud]]></category>
		<category><![CDATA[Soundcloud-API]]></category>

		<guid isPermaLink="false">http://dasflash.com/?p=208</guid>
		<description><![CDATA[That&#8217;s right, Scup is now out of beta! You can grab the 1.0-release from the newly designed website dorianroy.com/scup. If you have already installed Scup, you should get the update automatically the next time you launch it. And if you haven&#8217;t heard of Scup before, here&#8217;s what it&#8217;s all about. The new version allows you [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dorianroy.com/scup/"><img class="size-full wp-image-219 alignleft" title="http://dorianroy.com/scup/" src="http://dorianroy.com/blog/wp-content/uploads/2010/04/scup-web.jpg" alt="http://dorianroy.com/scup/" width="180" height="172" /></a>That&#8217;s right, Scup is now out of beta! You can grab the 1.0-release from the newly designed website <a href="http://dorianroy.com/scup/">dorianroy.com/scup</a>. If you have already installed Scup, you should get the update automatically the next time you launch it.</p>
<p>And if you haven&#8217;t heard of Scup before, <a href="http://dorianroy.com/blog/2009/11/introducing-scup/">here&#8217;s</a> what it&#8217;s all about. <span id="more-208"></span></p>
<p>The new version allows you to enter extended track settings like BPM, video-URL, label name, song type, tags and more. I&#8217;ve also included a button to copy all fields from the set to all if its tracks, so you don&#8217;t have to fill-in common fields like label name and license for each track of the set. Besides the new features, I&#8217;ve also added many little improvements (e.g. a signout-button) and bugfixes(removed tracks are now deleted on the server). The interface got some polish, too (smoother fonts, iPhone-like buttons).</p>
<p>Let me know what you think of it in the comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://dorianroy.com/blog/2010/04/soundcloud-uploader-scup-1-0-released/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>New Tutorial and Updates for the SoundCloud AS3 API</title>
		<link>http://dorianroy.com/blog/2010/02/new-tutorial-and-updates-for-the-soundcloud-as3-api/</link>
		<comments>http://dorianroy.com/blog/2010/02/new-tutorial-and-updates-for-the-soundcloud-as3-api/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 22:44:10 +0000</pubDate>
		<dc:creator>Dorian</dc:creator>
				<category><![CDATA[Soundcloud]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[Soundcloud-API]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://dasflash.com/?p=125</guid>
		<description><![CDATA[I just wrote a new tutorial for the SoundCloud AS3 API, &#8220;How to Go Through OAuth Authentication in a Single Browser Window&#8221;. This tutorial explains how to set up a web-based Flash application in a way that the user stays in the same browser window during the OAuth authentication and does not need to copy [...]]]></description>
			<content:encoded><![CDATA[<p>I just wrote a new tutorial for the SoundCloud AS3 API, <a href="http://github.com/dorianroy/Soundcloud-AS3-API/wiki/Tutorial:-How-to-Go-Through-OAuth-Authentication-in-a-Single-Browser-Window-/" target="_blank">&#8220;How to Go Through OAuth Authentication in a Single Browser Window&#8221;</a>. This tutorial explains how to set up a web-based Flash application in a way that the user stays in the same browser window during the OAuth authentication and does not need to copy /paste the verification code manually. <span id="more-125"></span></p>
<p>For example, this could be a good solution for a music player that lets users listen to their favourite SoundCloud playlists. It works without any backend services by using some Javascript and the Local Shared Object aka &#8220;Flash Cookie&#8221;. The tutorial requires some basic knowledge of how to pass variables to Flash, a little bit of JavaScript and intermediate AS3 skills.</p>
<p>The basic concept of the solution applies to every other API using OAuth 1.0a as well, so you also might find this tutorial interesting if you use Flash clients to access the API&#8217;s of Google Apps, Twitter or MySpace.<!--more--></p>
<p>You can find the tutorial on the <a href="http://wiki.github.com/dorianroy/Soundcloud-AS3-API/tutorial-how-to-go-through-oauth-authentication-in-a-single-browser-window" target="_blank">GitHub wiki pages of the SoundCloud AS3 API</a>. It includes the full code of an example application made with Flash CS4. If you have questions or comments regarding this tutorial, please leave a comment here on this post.</p>
<p>Recently I have also corrected an error in the documentation of the AS3 API: You can&#8217;t compile the sources without the Flex framework, because the OAuth library that I use needs some Flex utility classes. I wasn&#8217;t aware of this dependency before (thanks to Marc for giving me the hint!). So if you want to include the SoundCloud API in a Flash CS4 project you have to use the pre-compiled SWC file instead of the .as sources. I have updated the docs and Flash example files accordingly.</p>
<p>The AS3 API repository on GitHub was apparently corrupted after the last update, which seems to have been caused by a <a href="http://help.github.com/egit-corruption/" target="_blank">known bug of the egit plugin for Eclipse</a> (thanks to Matas for pointing this out ;) I have just fixed the repo and use SmartGit now to push updates to GitHub. I hope this will prevent such issues in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://dorianroy.com/blog/2010/02/new-tutorial-and-updates-for-the-soundcloud-as3-api/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>We don&#8217;t need Flash on the iPad, we need better tools to build HTML5 sites</title>
		<link>http://dorianroy.com/blog/2010/01/we-dont-need-flash-on-the-ipad-we-need-better-tools-to-build-html5-sites/</link>
		<comments>http://dorianroy.com/blog/2010/01/we-dont-need-flash-on-the-ipad-we-need-better-tools-to-build-html5-sites/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 14:46:29 +0000</pubDate>
		<dc:creator>Dorian</dc:creator>
				<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone OS]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://dasflash.com/?p=150</guid>
		<description><![CDATA[The recent discussion about whether the web needs Flash or not was overdue. My opinion is this: Yes, we need an alternative to Flash Player, and HTML5 could soon replace it in most cases. But most of all we need a good IDE to develop content for modern browsers. Flash has two critical shortcomings that make it [...]]]></description>
			<content:encoded><![CDATA[<p>The recent discussion about whether the web needs Flash or not was overdue. My opinion is this: Yes, we need an alternative to Flash Player, and HTML5 could soon replace it in most cases. But most of all we need a good IDE to develop content for modern browsers.</p>
<p>Flash has two critical shortcomings that make it hard to use for many projects, not only on mobile devices: <span id="more-150"></span></p>
<ol>
<li><strong>Flash Player is an alien in the browser.</strong> You just need to look at the strange code that is necessary to embed it to know that. You can&#8217;t use your browser&#8217;s &#8220;Find&#8221; function to search its text. The browser can&#8217;t save passwords you&#8217;ve entered in a Flash form or even fill out a form with the data you&#8217;ve entered on other sites. Flash wouldn&#8217;t trigger special input tools of a device like mobile Safari&#8217;s Picker UI or work with the tap-to-zoom feature. You can&#8217;t use the browser&#8217;s controls to increase the font size used inside Flash Player. And there are many other examples. I wouldn&#8217;t create a complex UI for the browser with Flash anymore because of this.</li>
<li><strong>Flash needs too many system resources.</strong> Thats&#8217;s something I always thought would get better over time with faster CPUs, but it never did. I don&#8217;t know if it is because of <a href="http://www.wired.com/epicenter/2010/01/googles-dont-be-evil-mantra-is-bullshit-adobe-is-lazy-apples-steve-jobs" target="_blank">Adobe&#8217;s laziness</a> or because content keeps getting heavier as well (more pixels per videoframe, more complex video codecs, more 3D objects, bigger screen sizes etc). All I know is that a site that makes heavy use of Flash burns my 2.4 GHz Core 2 Duo today just as it did with Flash Player 4 and my 500MHz Pentium III ten years ago. And that&#8217;s why I think Flash Player will never really work on a mobile device.</li>
</ol>
<p>But today, using HTML5/Canvas for rich clients instead of Flash is no option either as it is <a href="http://a.deveria.com/caniuse/" target="_blank">not widely adopted by the browsers</a> yet. You would end up in browser hell again. So what can you do as a Flash Developer to solve this situation in the next years? I think it depends on the type of project you are creating:</p>
<p><!--more--></p>
<ul>
<li><strong>If you create one of these FWA CPU burners:</strong> Don&#8217;t care at all, make it full Flash as always. Nobody could enjoy it on a mobile device anyway because of the smaller screen size. Wear your <a href="http://www.365tshirtdesigns.com/2010/01/blue-lego-block-of-ambiguity-tm-t-shirt.html" target="_blank">blue lego shirt</a> with pride! ;)</li>
<li><strong>If you build a video/audio player</strong>, a slideshow or interactive charts: Use the <a href="http://www.alistapart.com/articles/understandingprogressiveenhancement/" target="_blank">Progressive Enhancement</a> technique. Build a Canvas/JavaScript/CSS-based solution and implement a switch to replace it at runtime with a Flash version, if the browser doesn&#8217;t support the tags you&#8217;re using. Yes, that means extra work, but you can tell your client that he gets an &#8220;iPad version&#8221; for free! He will love it.</li>
<li><strong>If you develop games:</strong> Most Flash games can&#8217;t be simply ported to mobile devices, even if they run Flash Player. That&#8217;s because you have different input controls. You don&#8217;t have a keyboard on the iPhone for example (btw: HTML5 games like <a href="http://www.watersheep.org/~markh/html_canvas/game.html" target="_blank">this one</a> suffer from the same problem). So you have to decide which platform you want to build for anyway. Or try to design your game to work without a keyboard and mouse over gestures etc. In that case you can hopefully run it on Android with the upcoming 10.1. player and probably port it to the iPhone as a standalone app with the upcoming <a href="http://theflashblog.com/?p=1513" target="_blank">Flash CS5 exporter</a>.</li>
<li><strong>If you develop a regular website:</strong> Try not to use Flash at all. Especially don&#8217;t use Flash only because you can. I did that a lot in the past and instantly regretted it when the Eee PC and the iPhone came out. If you have to integrate media content that can only be displayed on IE with Flash, use Progressive Enhancement. It&#8217;s the only way to ensure a good experience across all devices and browsers without creating a special version for each platform.</li>
</ul>
<p>So chances are you have to learn some JS/CSS/HTML5. But probably you&#8217;d have to learn that anyway in the next years. And it can be fun, because nowadays JavaScript-Frameworks like jQuery will do the dirty DOM-work for you. The only problem is that you won&#8217;t be able to continue working with the tools you&#8217;ve got used to. There&#8217;s no IDE for building HTML/CSS/JS-based interfaces that is as easy to use as FlashBuilder/Catalyst or the Flash IDE. Today, I&#8217;d say the best thing about Flash (besides AIR, which is a totally different story) is AS3 and the IDE. And the biggest problem most Flash developers will face when they start to create HTML5 is probably JavaScript and the lack of a truly integrated IDE.</p>
<p>If Adobe wants to keep their customers happy they should stop whining about the iPad and start creating a great IDE for developing HTML5 apps. And by that I don&#8217;t mean <a href="http://blogs.adobe.com/jnack/2009/10/sneak_peek_ai_fl_dw_canvas.html" target="_blank">copy/pasting SVG snippets from Illustrator to Dreamweaver</a>. What about coding with AS3 and converting it to JavaScript in a cross-compiler manner, like the Google Web Toolkit does? What about introducing concepts like Skin States or the Timeline to HTML5 development? What about drawing your SVG graphics and cropping images within your coding environment? Automatically creating CSS sprites from your designs?</p>
<p>I definitely want that more than a Flash Player for the iPad.</p>
]]></content:encoded>
			<wfw:commentRss>http://dorianroy.com/blog/2010/01/we-dont-need-flash-on-the-ipad-we-need-better-tools-to-build-html5-sites/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Introducing Scup</title>
		<link>http://dorianroy.com/blog/2009/11/introducing-scup/</link>
		<comments>http://dorianroy.com/blog/2009/11/introducing-scup/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 08:45:00 +0000</pubDate>
		<dc:creator>Dorian</dc:creator>
				<category><![CDATA[Scup]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Soundcloud]]></category>
		<category><![CDATA[Soundcloud-API]]></category>
		<category><![CDATA[Spark Components]]></category>
		<category><![CDATA[Swiz]]></category>

		<guid isPermaLink="false">http://dasflash.com/?p=140</guid>
		<description><![CDATA[Today I&#8217;ve released a little AIR tool for all SoundCloud heavy-users. It&#8217;s called Scup, which is short for SoundCloud Uploader &#8211; and it does just that. You can upload tracks from your desktop by simply dragging them on the program window and then create a set (i.e. a playlist) consisting of these tracks. Grab it [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dorianroy.com/scup/"><img class="alignleft size-full wp-image-141" title="Scup" src="http://dorianroy.com/blog/wp-content/uploads/2009/11/scup_128.png" alt="Scup" width="128" height="128" /></a>Today I&#8217;ve released a little AIR tool for all <a href="http://soundcloud.com" target="_blank">SoundCloud</a> heavy-users. It&#8217;s called Scup, which is short for SoundCloud Uploader &#8211; and it does just that. You can upload tracks from your desktop by simply dragging them on the program window and then create a set (i.e. a playlist) consisting of these tracks. <a href="http://dorianroy.com/scup/">Grab it here!</a> I hope you&#8217;ll find it useful. <span id="more-140"></span></p>
<p>I&#8217;ve built Scup as a demo application for the <a href="http://github.com/dorianroy/Soundcloud-AS3-API/" target="_blank">SoundCloud AS3 API</a> and also as a learning project for myself, because it&#8217;s the first project I&#8217;ve done with the <a href="http://swizframework.org/" target="_blank">Swiz framework </a>and the first using Spark components. When I find time to clean up the code a little I&#8217;m going to put it on github.</p>
<p>Thanks to the wonderful people at SoundCloud for having the idea (Eric), making the screen design (Katharina) and most of all helping me master the API and OAuth stuff (Hannes)! This is for you ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://dorianroy.com/blog/2009/11/introducing-scup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Updates to the SoundCloud AS3 API</title>
		<link>http://dorianroy.com/blog/2009/09/updates-to-the-soundcloud-as3-api/</link>
		<comments>http://dorianroy.com/blog/2009/09/updates-to-the-soundcloud-as3-api/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 14:47:13 +0000</pubDate>
		<dc:creator>Dorian</dc:creator>
				<category><![CDATA[Soundcloud]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Soundcloud-API]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://dasflash.com/?p=85</guid>
		<description><![CDATA[During the last week I made some improvements to the SoundCloud AS3 API library: Full ASDoc documentation is now available online Uploaded an example file for Flash CS4 API is now prepared for scenarios where you want to automatically get an access token after authentication (I&#8217;ll do an extra post on this in the next days) Added [...]]]></description>
			<content:encoded><![CDATA[<p>During the last week I made some improvements to the <a href="http://github.com/dorianroy/Soundcloud-AS3-API/" target="_blank">SoundCloud AS3 API</a> library:</p>
<ul>
<li>Full ASDoc documentation is now <a href="http://dorianroy.com/soundcloud-as3-api/asdoc/" target="_blank">available online</a></li>
<li>Uploaded an <a href="http://github.com/dorianroy/Soundcloud-AS3-API/downloads" target="_blank">example file for Flash CS4</a></li>
<li>API is now prepared for scenarios where you want to automatically get an access token after authentication (I&#8217;ll do an extra post on this in the next days)</li>
<li>Added support for requests to public resources without having to authenticate first</li>
</ul>
<p> <span id="more-113"></span><br />
I should say a few words about the last point: If you want to build a simple audio player app like <a href="http://citysounds.fm" target="_blank">Citysounds</a> (check it out, great stuff!) that only accesses public resources, chances are you don&#8217;t have to deal with OAuth authentication at all.<!--more--></p>
<p>For example, the code to access the public tracks of  a specific SoundCloud user looks like this:</p>
<pre class="brush: as3; title: ; notranslate">
var scClient:SoundcloudClient = new SoundcloudClient(&quot;yourConsumerKey&quot;, &quot;yourConsumerSecret&quot;);

var delegate:SoundcloudDelegate = scClient.sendRequest(&quot;users/anyUserName/tracks&quot;, &quot;GET&quot;);

delegate.addEventListener(SoundcloudEvent.REQUEST_COMPLETE, requestCompleteHandler);

protected function requestCompleteHandler(event:SoundcloudEvent):void
{
  var trackList:XML = event.data as XML;

  trace(trackList);
}
</pre>
<p>This will give you a list of tracks in XML format with all properties like track title, URL and so on. You can then pick a track from the list and start playing the MP3 with the <code>Sound</code> class. Yes, it&#8217;s that simple! ;)</p>
<p>But as soon as you want to access private tracks or want to do write operations like  updating a user profile or uploading a track, you&#8217;ll need to go through the OAuth authentication process. Check the <a href="http://wiki.github.com/dorianroy/Soundcloud-AS3-API/quick-start" target="_blank">Quickstart Tutorial</a> to see how this works.</p>
<p><strong>UPDATE (05/17/2010)</strong></p>
<p>SoundCloud is about to change the policy for accessing public resources via their API. They will soon require a consumer key and secret for all calls, no matter whether you use OAuth or not. They had already implemented that on the sandbox server on friday, pulled it back today, but plan to roll it out again on sandbox later this week. Anyway, it looks like you should prepare your app for this change as soon as possible. I just changed the example above to include &#8220;yourConsumerKey&#8221; and &#8220;yourConsumerSecret&#8221; in the constructor of the SoundcloudClient.</p>
<p>The bottom line is that you need to register your app with SoundCloud in any case now. But you don&#8217;t need to get an update of the Soundcloud-AS3-API files. And if you&#8217;re using OAuth, nothing changes at all for you.</p>
<p>You can find a detailed guide on how to register your app and use the app key and secret codes in the <a href="http://wiki.github.com/dorianroy/Soundcloud-AS3-API/quick-start">Github-Wiki</a> (you can skip the authentication steps 4 &#8211; 6 if you don&#8217;t use OAuth).</p>
<p>Read more about this update in the<a href="http://groups.google.com/group/soundcloudapi/browse_thread/thread/a6d05b7bf4d64a3f/bcdb595d73bf1ee3"> SoundCloud API Google Group</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dorianroy.com/blog/2009/09/updates-to-the-soundcloud-as3-api/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
