<?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>Sönke Rohde &#187; General</title>
	<atom:link href="http://soenkerohde.com/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://soenkerohde.com</link>
	<description>Flash Platform (Flash, Flex, AIR) thoughts and examples</description>
	<lastBuildDate>Fri, 30 Dec 2011 16:15:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>Connecting Pivotal Tracker with GitHub</title>
		<link>http://soenkerohde.com/2010/01/connecting-pivotal-tracker-with-github/</link>
		<comments>http://soenkerohde.com/2010/01/connecting-pivotal-tracker-with-github/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 20:56:18 +0000</pubDate>
		<dc:creator>Sönke</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://soenkerohde.com/?p=893</guid>
		<description><![CDATA[<p>GitHub with Pivotal Tracker is the killer agile combination.
With the just release Tracker v3 API update it is now easy to connect them.</p>
<p>You only have to configure GitHub Post-Receive Hooks so you can automatically deliver stories/bugs by providing the Tracker ID in the commit statement like: Fixes #TrackerId</p>
<p>How to set it up:</p>

Create a Pivotal Tracker API [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://github.com">GitHub</a> with <a href="http://www.pivotaltracker.com">Pivotal Tracker</a> is the killer agile combination.<br />
With the <a href="http://pivotallabs.com/users/dan/blog/articles/1143-new-in-pivotal-tracker-api-v3-github-campfire-support-jira-lighthouse-and-satisfaction-integration">just release Tracker v3 API update</a> it is now easy to connect them.</p>
<p>You only have to <a href="http://www.pivotaltracker.com/help/api?version=v3#github_hooks">configure GitHub Post-Receive Hooks</a> so you can automatically deliver stories/bugs by providing the Tracker ID in the commit statement like: Fixes #TrackerId</p>
<p>How to set it up:</p>
<ol>
<li>Create a Pivotal Tracker API token: Login to PT -&gt; My Profile -&gt; Create New Token</li>
<li>GitHub -&gt; Project -&gt; Admin -&gt; Service Hooks -&gt; Post-Receive URLs</li>
<li>Paste <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">https://www.pivotaltracker.com/services/v3/github_commits?token=YOUR_TOKEN_FROM_STEP_1</span></li>
</ol>
<p>Now that was easy!</p>
]]></content:encoded>
			<wfw:commentRss>http://soenkerohde.com/2010/01/connecting-pivotal-tracker-with-github/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GIT Tips and Tools</title>
		<link>http://soenkerohde.com/2009/11/git-tips-and-tools/</link>
		<comments>http://soenkerohde.com/2009/11/git-tips-and-tools/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 11:05:53 +0000</pubDate>
		<dc:creator>Sönke</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://soenkerohde.com/?p=679</guid>
		<description><![CDATA[<p>If you don&#8217;t know GIT yet it is a software version control system like Subversion, CVS or Perforce. It was primary developed by Linus Torvalds for Linux kernel development.  I have started using GIT in the beginning of 2009 and I must say that after a not so small learning curve I really like it and [...]]]></description>
			<content:encoded><![CDATA[<p>If you don&#8217;t know <a href="http://git-scm.com/">GIT</a> yet it is a software version control system like Subversion, CVS or Perforce. It was primary developed by Linus Torvalds for Linux kernel development.  I have started using GIT in the beginning of 2009 and I must say that after a not so small learning curve I really like it and see all the benefits especially when it comes to collaboration.</p>
<p>There are alternatives but <a href="http://github.com">GitHub</a> is currently the best service to use GIT. You can host open source projects for free and the pricing for private projects is not too expensive. Check out <a href="http://github.com/srohde/">my GitHub profile with my open source projects here</a>.</p>
<p>To get started you should first <a href="http://git-scm.com/download">install GIT</a> on your machine and read the <a href="http://git-scm.com/documentation">docs</a>.</p>
<p>The tooling support around GIT is perhaps not as extensive like for other VCS yet, so if you are afraid of using the console GIT might not be right for you. However, there are already great tools around but for many things I am still using the Terminal.</p>
<p><strong>Custom Bash Prompt</strong></p>
<p><strong></strong>I am using a <a href="http://railsdog.com/blog/2009/03/custom-bash-prompt-for-git-branches/">custom bash prompt</a> which indicates on which branch you are and further color highlighting helps to keep track:</p>
<div class="thumbnail"><a href="http://skitch.com/soenkerohde/nf151/terminal-bash-140x50"><img src="http://img.skitch.com/20091101-8cu4cr8cswwnjrmuh6adqg8p1p.preview.jpg" alt="Terminal — bash — 140×50" /></a><br />
<span style="font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080">Uploaded with <a href="http://plasq.com/">plasq</a>&#8216;s <a href="http://skitch.com">Skitch</a>!</span></div>
<p><strong>Eclipse Plugin</strong></p>
<p>My main IDE is Eclipse with Flash Builder or FDT so the <a href="http://www.eclipse.org/egit/">Eclipse EGIT plugin</a> is really a must have:</p>
<div class="thumbnail"><a href="http://skitch.com/soenkerohde/nf1hf/flash-eclipse-users-soenkerohde-documents-workspace-gumbo"><img src="http://img.skitch.com/20091101-xe56qk4niq97kwnfgwisjau1um.preview.jpg" alt="Flash - Eclipse - /Users/soenkerohde/Documents/workspace_gumbo" /></a><br />
<span style="font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080">Uploaded with <a href="http://plasq.com/">plasq</a>&#8216;s <a href="http://skitch.com">Skitch</a>!</span></div>
<p><strong>Merge Tool</strong></p>
<p>Merging is an important task when working in a team. GIT is really flexible and you can configure it to use 3rd party apps for merging. I am not a big Perforce fan but the free <a href="http://www.perforce.com/perforce/products/merge.html">p4merge</a> tool is really great. Check out the <a href="http://www.andymcintosh.com/?p=33">blog post by Andy McIntosh</a> for a detailed explanation how to set it up.</p>
<p><strong>GitX</strong></p>
<p><a href="http://gitx.frim.nl/">GitX</a> is maybe the best tool to visualize the branch history but I must say that I don&#8217;t use it in my daily work. It can also be used to create commits and revert changes etc.</p>
<p><strong>Links</strong></p>
<ul>
<li><a href="http://git.or.cz/course/svn.html">GIT &#8211; SVN</a></li>
<li><a href="http://reinh.com/blog/2009/03/02/a-git-workflow-for-agile-teams.html">A GIT workflow for agile teams</a></li>
<li><a href="http://blog.hasmanythrough.com/2008/12/18/agile-git-and-the-story-branch-pattern">Agile GIT and the story branch pattern</a></li>
<li><a href="http://www.eecs.harvard.edu/~cduan/technical/git/">Understanding GIT conceptually</a></li>
<li><a href="http://jarrodspillers.com/articles/git-merge-vs-git-rebase-avoiding-rebase-hell">Merge vs. Rebase</a></li>
<li><a href="http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html">Squashing commits with rebase</a></li>
<li><a href="http://github.com/chris/tracker_github_hook">GitHub Post-Receive hook for Pivotal Tracker</a></li>
<li><a href="http://code.google.com/p/tortoisegit/">TortoiseGIT for Windows</a><strong><br />
</strong></li>
</ul>
<p><strong>Commands</strong></p>
<p>If you are new to GIT it is hard to remember all the different commands. Here a list of commands which I use very often also as a reference for me <img src='http://soenkerohde.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Create a local repository</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># clone an existing repository</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> clone <span style="color: #7a0874; font-weight: bold;">&#91;</span>GITHUB_CLONE_URL<span style="color: #7a0874; font-weight: bold;">&#93;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># or do it the long way:</span>
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>PROJECT_DIR<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>PROJECT_DIR<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> init
<span style="color: #c20cb9; font-weight: bold;">touch</span> README
<span style="color: #c20cb9; font-weight: bold;">git</span> add README
<span style="color: #c20cb9; font-weight: bold;">git</span> commit <span style="color: #660033;">-m</span> <span style="color: #ff0000;">'first commit'</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> remote add origin <span style="color: #7a0874; font-weight: bold;">&#91;</span>GITHUB_CLONE_URL<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> push origin master</pre></div></div>

<p><strong>Changes and Commits</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># To see which files are changed and maybe not added yet to the repository use</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> status
<span style="color: #666666; font-style: italic;"># Add a file to the repository</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> add <span style="color: #7a0874; font-weight: bold;">&#91;</span>FILE<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #666666; font-style: italic;"># or to add all untracked files</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> add .
&nbsp;
<span style="color: #666666; font-style: italic;"># revert a change</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> checkout <span style="color: #660033;">--</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>FILE<span style="color: #7a0874; font-weight: bold;">&#93;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># when you are ready with a change</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> commit <span style="color: #660033;">-am</span> <span style="color: #ff0000;">&quot;[CHANGE_DESCRIPTION]&quot;</span>
<span style="color: #666666; font-style: italic;"># a commit is only local so when you want to push it to the server</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> push origin <span style="color: #7a0874; font-weight: bold;">&#91;</span>REMOTE_BRANCH_NAME<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

<p><strong>Branches</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Create remote branch</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> push origin master:<span style="color: #7a0874; font-weight: bold;">&#91;</span>REMOTE_BRANCH_NAME<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #666666; font-style: italic;"># Checkout and track remote branch</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> checkout <span style="color: #660033;">--track</span> <span style="color: #660033;">-b</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>LOCAL_BRANCH_NAME<span style="color: #7a0874; font-weight: bold;">&#93;</span> origin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>REMOTE_BRANCH_NAME<span style="color: #7a0874; font-weight: bold;">&#93;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># local branch list</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> branch <span style="color: #660033;">-l</span>
<span style="color: #666666; font-style: italic;"># remote branch list</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> branch <span style="color: #660033;">-r</span></pre></div></div>

<p><strong>Tags</strong>: Every time you make a release or reach a milestone creating a tag is a good idea.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Create tag</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> tag <span style="color: #660033;">-a</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>TAG_NAME<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;[TAG_DESCRIPTION]&quot;</span>
<span style="color: #666666; font-style: italic;"># Push tag</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> push <span style="color: #660033;">--tags</span> origin master</pre></div></div>

<p><strong>Merge</strong>: You should work on a branch when implementing a new feature or story. If you are done you should merge this into the main branch.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Switch to feature/story branch</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> checkout <span style="color: #7a0874; font-weight: bold;">&#91;</span>STORY_BRANCH<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #666666; font-style: italic;"># make changes and when done</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> commit <span style="color: #660033;">-am</span> <span style="color: #ff0000;">&quot;[DESCRIPTION]&quot;</span>
<span style="color: #666666; font-style: italic;"># switch to master</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> checkout master
<span style="color: #666666; font-style: italic;"># get all changes from master</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> pull
<span style="color: #666666; font-style: italic;"># switch to story branch</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> checkout <span style="color: #7a0874; font-weight: bold;">&#91;</span>STORY_BRANCH<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #666666; font-style: italic;"># rebase story branch with master changes</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> rebase master
<span style="color: #666666; font-style: italic;"># maybe solve conflicts</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> mergetool
<span style="color: #666666; font-style: italic;"># switch back to master</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> checkout master
<span style="color: #666666; font-style: italic;"># finally we can merge it in and there should be no conflict</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> merge <span style="color: #7a0874; font-weight: bold;">&#91;</span>STORY_BRANCH<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> push</pre></div></div>

<p><strong>Stash</strong>: When you have changes in your working directory and want to switch to another branch you can stash your changes.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Create stash</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> stash
<span style="color: #666666; font-style: italic;"># Apply</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> stash apply</pre></div></div>

<p>When you migrate a project from SVN to GIT this comes in handy:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #660033;">-name</span> .svn <span style="color: #660033;">-print0</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #660033;">-0</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-rf</span></pre></div></div>

<p>btw: GIT has only one .git directory and not one for every directory like SVN</p>
<p>If you have some commands which are important on a daily base please drop a comment so I can extend this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://soenkerohde.com/2009/11/git-tips-and-tools/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>High level AS3/Flex library for OAuth with Twitter from AIR</title>
		<link>http://soenkerohde.com/2009/07/high-level-as3flex-library-for-oauth-with-twitter-from-air/</link>
		<comments>http://soenkerohde.com/2009/07/high-level-as3flex-library-for-oauth-with-twitter-from-air/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 09:22:03 +0000</pubDate>
		<dc:creator>Sönke</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://soenkerohde.com/?p=552</guid>
		<description><![CDATA[<p>Recently I have played again with the Twitter API and finally have OAuth working. When I have first played with the Twitter API I have used the example from Tour de Flex. The example loads up the friends list and uses the Twitter AS3 API. The API is not really my taste but offers the functionality [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I have played again with the Twitter API and finally have <a href="http://oauth.net/">OAuth</a> working. When I have first played with the Twitter API I have used the example from <a href="http://www.adobe.com/devnet/flex/tourdeflex/">Tour de Flex</a>. The example loads up the friends list and uses the <a href="http://code.google.com/p/twitterscript/">Twitter AS3 API</a>. The API is not really my taste but offers the functionality to build a Twitter client application. However when you want to have your client application to show up as the <a href="http://apiwiki.twitter.com/FAQ#HowdoIget“fromMyApp”appendedtoupdatessentfrommyAPIapplication">source of tweets</a> you have to use OAuth for user authentication. It adds another step to get started but is a good decision to force developers to use OAuth which should provide more trust into the client app because users don&#8217;t like to enter their Twitter credentials into a 3rd party application.</p>
<p>After a bit of research a came across the awesome open source library <a href="http://www.iotashan.com/index.php/2008/04/28/oauth-actionscript-library/">oauth-as3</a>. There were no examples yet but I remembered an Email from my friend <a href="http://twitter.com/cwahlers">Claus</a> with a link to this <a href="http://github.com/sekimura/as3-misc/tree/cfc912d3ba6769125e953cba5d2eaa51e338a9eb/twitter-oauth">github project</a>. The example application uses the oauth-as3 library and demonstrates how to integrate the library.</p>
<p>To use OAuth in your Twitter application you need a consumerKey and consumerSecret which you can get after the registration of your client app: <a href="http://twitter.com/oauth_clients/">http://twitter.com/oauth_clients/</a> or go to your settings and select the &#8220;Connections&#8221; tab for an overview and further links.<br />
However, the github example doesn&#8217;t work anymore because Twitter changed their API recently and implemented a PIN mechanism for desktop cients which should provide even more security.</p>
<p>So how does it work?</p>
<ol>
<li>Get the request token with your consumerKey/Secret</li>
<li>Open the browser and pass the request token</li>
<li>User authenticates on the Twitter site and gets a 6 digit pin code</li>
<li>User enters pin code in the AIR app which you need to get the access token</li>
<li>Save the accessKey/Secret in the EncryptedLocaleStorage for all further requests/sessions</li>
</ol>
<p>I have build a <a href="http://github.com/srohde/OAuth/tree/master">high level AS3/Flex library for OAuth</a> which is hosted on github. The library is licensed under <a href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License, Version 2.0</a>.<br />
Check the inline comments of the <a href="http://github.com/srohde/OAuth/blob/3e97944b356b6d45aeedb3db334360d67e44c844/src/org/flaircode/oauth/IOAuth.as">IOAuth interface</a> which should already explain the basics.</p>
<p>Here a little semi pseudo code example:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">// create OAuth</span>
oauth:IOAuth = <span style="color: #000000; font-weight: bold;">new</span> OAUth<span style="color: #66cc66;">&#40;</span>consumerKey, consumerSecret<span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// get request token</span>
<span style="color: #000000; font-weight: bold;">var</span> loader:URLLoader = oauth.<span style="color: #006600;">getRequestToken</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;http://twitter.com/oauth/request_token&quot;</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>, requestTokenHandler<span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> requestTokenHandler<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>
	requestToken = OAuthUtil.<span style="color: #006600;">getTokenFromResponse</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>.<span style="color: #006600;">currentTarget</span>.<span style="color: #0066CC;">data</span> as <span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000000; font-weight: bold;">var</span> request:URLRequest = oauth.<span style="color: #006600;">getAuthorizeRequest</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;http://twitter.com/oauth/authorize&quot;</span>, requestToken.<span style="color: #0066CC;">key</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #808080; font-style: italic;">// opens website where user has to login on Twitter and gets 6 digit pin code</span>
	navigateToURL<span style="color: #66cc66;">&#40;</span>request, <span style="color: #ff0000;">&quot;_blank&quot;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> getAccessToken<span style="color: #66cc66;">&#40;</span>pin:<span style="color: #0066CC;">int</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> loader:URLLoader = oauth.<span style="color: #006600;">getAccessToken</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;http://twitter.com/oauth/access_token&quot;</span>, requestToken, <span style="color: #66cc66;">&#123;</span>oauth_verifier:pin<span style="color: #66cc66;">&#125;</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>, accessTokenHandler<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> accessTokenHandler<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>
	accessToken = OAuthUtil.<span style="color: #006600;">getTokenFromResponse</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>.<span style="color: #006600;">currentTarget</span>.<span style="color: #0066CC;">data</span> as <span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #808080; font-style: italic;">// TODO store accessToken.key and accessToken.secret in EncryptedLocalStorage for all further requests</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Instead of opening the Twitter authorization page in the browser the library also contains OAuthLoader which is a wrapper around HTMLLoader which enables to directly show the authorization page within an AIR window:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">// use this in the requestTokenHandler instead of navigateToURL</span>
<span style="color: #000000; font-weight: bold;">var</span> loader:OAuthLoader = <span style="color: #000000; font-weight: bold;">new</span> OAuthLoader<span style="color: #66cc66;">&#40;</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>;
loader.<span style="color: #006600;">percentWidth</span> = <span style="color: #cc66cc;">100</span>;
loader.<span style="color: #006600;">percentHeight</span> = <span style="color: #cc66cc;">100</span>;
<span style="color: #000000; font-weight: bold;">var</span> w:Window = <span style="color: #000000; font-weight: bold;">new</span> Window<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
w.<span style="color: #0066CC;">width</span> = <span style="color: #cc66cc;">800</span>;
w.<span style="color: #0066CC;">height</span> = <span style="color: #cc66cc;">400</span>;
w.<span style="color: #006600;">title</span> = req.<span style="color: #0066CC;">url</span>;
w.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span>loader<span style="color: #66cc66;">&#41;</span>;
w.<span style="color: #006600;">open</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>The OAuth library is not only considered to be used with Twitter but this was the first thing I have tested from AIR. When you build a web client there will be no pin mechanism but I haven&#8217;t tested this yet. If you have it working or see problems/bugs for web clients please drop a comment a or better <a href="http://github.com/srohde/OAuth/issues">file a bug</a>.</p>
<p>Big thanks to <a href="http://www.iotashan.com">Shannon Hicks</a> for his <a href="http://www.iotashan.com/index.php/2008/04/28/oauth-actionscript-library/">core oauth as3 library</a> and to Masayoshi Sekimura for the <a href="http://github.com/sekimura/as3-misc/tree/cfc912d3ba6769125e953cba5d2eaa51e338a9eb/twitter-oauth">example</a> which got me started.</p>
<p><strong>Links</strong></p>
<ul>
<li><a href="http://github.com/srohde/OAuth/tree/master">High level AS3/Flex library for OAuth</a></li>
<li><a href="http://code.google.com/p/oauth-as3/">Core oauth-as3 library</a></li>
<li><a href="http://oauth.net/">OAuth</a></li>
<li><a href="http://apiwiki.twitter.com/OAuth-FAQ">Twitter OAuth FAQ</a></li>
<li><a href="http://apiwiki.twitter.com/Twitter-API-Documentation">Twitter API Documentation</a></li>
<li><a href="http://www.hueniverse.com/hueniverse/2007/10/beginners-gui-1.html">Getting Started with OAuth</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://soenkerohde.com/2009/07/high-level-as3flex-library-for-oauth-with-twitter-from-air/feed/</wfw:commentRss>
		<slash:comments>59</slash:comments>
		</item>
		<item>
		<title>Agile with Pivotal Tracker</title>
		<link>http://soenkerohde.com/2009/04/agile-with-pivotal-tracker/</link>
		<comments>http://soenkerohde.com/2009/04/agile-with-pivotal-tracker/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 12:51:24 +0000</pubDate>
		<dc:creator>Sönke</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://soenkerohde.com/?p=346</guid>
		<description><![CDATA[<p>I have used a few project management tools in the past and the one which really convinced me is the award winning Pivotal Tracker (PT). It is hosted in the cloud and is for free so you can start using it right away.</p>
<p>The first thing you and all project members should do is activating the email [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="Pivotaltracker" src="http://soenkerohde.com/img/Dashboard_-_Pivotal_Tracker-20090425-130255.png" alt="" width="439" height="51" />I have used a few project management tools in the past and the one which really convinced me is the <a href="http://www.joltawards.com/winners.html">award winning</a> <a href="http://www.pivotaltracker.com">Pivotal Tracker</a> (PT). It is hosted in the cloud and is for free so you can start using it right away.</p>
<p>The first thing you and all project members should do is activating the email notification in your profile settings. I don&#8217;t understand why this is off by default though. Another thing I also change for every project is using the Fibonacci Point Scale Fibonacci to have a more flexible point system. The points of a story have to be set by the story owner during planning or at least when he starts with the story and should represent the difficulty of the task. PT then &#8220;learns&#8221; how much story points you are able to achieve in a week which results in a velocity. According to your velocity the stories are then divided into weeks:</p>
<p><img class="alignnone" title="PT Weeks" src="http://soenkerohde.com/img/My_Demo_Project_-_Pivotal_Tracker-20090426-165717.png" alt="" width="599" height="390" /></p>
<p>So you can already have a schedule without estimating how much hours you&#8217;ll spend on a specific story which is always a pain for a developer. But of course there are deadlines so PT offers two kinds of releases. You can add releases with a fix date or without. To add a release simply add a new story, change the kind to &#8220;Release&#8221; and add a date if you have a fix deadline. Then drag the release under the last story you want to have done for this specific release.</p>
<p><img class="alignnone" title="PT Release 1" src="http://soenkerohde.com/img/My_Demo_Project_-_Pivotal_Tracker-20090426-170456.png" alt="" width="396" height="301" /></p>
<p>So in the screenshot above I defined the release Beta 1 with the fix date May 7th and it should include the stories up to &#8220;User can upload photo&#8221;. &#8220;User can send message&#8221; will already be part of the next release. In this example we see with the blue indicated release that we can achieve the milestone calculated based on our velocity and the points we have given the stories. When the developer for instance says &#8220;User can upload photo&#8221; is far more work and he changes his estimation to 3 it and perhaps also other stories got re-estimated and the system detects that the release can&#8217;t be reached anymore the release shows up in red so you know that you have to react in some kind of way. Bugs and chores don&#8217;t have points by default which can be changed and is <a href="http://www.pivotaltracker.com/help#whycantiestimatemybugsandchores">explained here</a>.</p>
<p>For me the main advantages are that you have a perfect project overview because you never get lost in any detail pages where you have to navigate back and forth. To change the priority of a stories only drag it to the right position. The story details can be edited when you open the story by clicking the arrow:</p>
<p><img class="alignnone" title="PT Detail" src="http://soenkerohde.com/img/My_Demo_Project_-_Pivotal_Tracker-20090426-171701.png" alt="" width="387" height="505" /></p>
<p>You can define the kind of the story which can be Feature, Bug, Chore and Release. The story owner has to estimate points depending on the difficulty. Labels can be added on the fly and so on. The states are Not Yet Started, Started, Finished, Delivered, Accepted and Rejected. When a story is delivered the story requester gets notified to either accept or reject the story meaning doing the quality assurance of the story is implemented correctly.</p>
<p>PT has tons of other features like generating reports etc.. So for further information I would recommend the PT website which has a really comprehensive <a href="http://www.pivotaltracker.com/help">help part</a>. Ah yes, and PT offers a bunch of <a href="http://www.pivotaltracker.com/help/api">RESTful APIs</a> for further integration.</p>
]]></content:encoded>
			<wfw:commentRss>http://soenkerohde.com/2009/04/agile-with-pivotal-tracker/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mac Book Cycle Count?</title>
		<link>http://soenkerohde.com/2009/03/mac-book-cycle-count/</link>
		<comments>http://soenkerohde.com/2009/03/mac-book-cycle-count/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 00:26:43 +0000</pubDate>
		<dc:creator>Sönke</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://soenkerohde.com/?p=241</guid>
		<description><![CDATA[<p>When you are a Mac Book/Pro user watch your cycle count meaning how often your battery has recharged. You should use your battery here and then otherwise the battery lifetime decreases rough. My wife didn&#8217;t use the battery for a longer time and the battery performance was a mess. Apple support wanted to know the cycle [...]]]></description>
			<content:encoded><![CDATA[<p>When you are a Mac Book/Pro user watch your cycle count meaning how often your battery has recharged. You should use your battery here and then otherwise the battery lifetime decreases rough. My wife didn&#8217;t use the battery for a longer time and the battery performance was a mess. Apple support wanted to know the cycle count which was low and said: &#8220;Of course you have to use it frequently, oh and yes, this is in no manual and you get no exchange&#8221;.</p>
<p>System Profiler (Apple-&gt;About this Mac-&gt;More Info&#8230;)-&gt;Hardware-&gt;Power-&gt;Health Information.</p>
<p>My cycle count is 62 and condition &#8220;good&#8221; though which is ok for my 3 month old laptop.</p>
]]></content:encoded>
			<wfw:commentRss>http://soenkerohde.com/2009/03/mac-book-cycle-count/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Bye, Bye Adobe and Hello Brazil</title>
		<link>http://soenkerohde.com/2009/01/bye-bye-adobe-and-hello-brazil/</link>
		<comments>http://soenkerohde.com/2009/01/bye-bye-adobe-and-hello-brazil/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 13:34:30 +0000</pubDate>
		<dc:creator>Sönke</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Swiz]]></category>

		<guid isPermaLink="false">http://soenkerohde.com/?p=252</guid>
		<description><![CDATA[<p>Happy new year for all of you guys!</p>
<p>2009 already began with a big change for me. I have left Adobe to move over to Brazil. I had this plan in mind for a longer time and it was really hard to leave Adobe and my dear colleagues behind. During the two years I worked in the [...]]]></description>
			<content:encoded><![CDATA[<p>Happy new year for all of you guys!</p>
<p>2009 already began with a big change for me. I have left Adobe to move over to Brazil. I had this plan in mind for a longer time and it was really hard to leave Adobe and my dear colleagues behind. During the two years I worked in the Mobile Device Business Unit and later in the Creative Suite Business Unit on the Device Intelligence Portal:</p>
<blockquote><p><em>&#8220;Device manufacturers can use the web based Adobe Device Intelligence Portal for worldwide publishing of their device information to Adobe authoring tools.</em>&#8220;</p></blockquote>
<p>It is a B2B software and part of the ecosystem of <a href="http://www.adobe.com/products/creativesuite/devicecentral/">Device Central</a> and mobile authoring in general. The software is based on Flex and AIR on the client side and Java/LiveCycle Data Services on the server side. My responsibility was driving the client side so I worked full time with Flex/AIR and the integration of LCDS. I worked with a great team and our agile approach with Scrum was really pleasantly and highly productive. I am so thankful I got to know so friendly and professional people in the Hamburg office where I also made a lot of friends. I also had the opportunity to visit the offices in San Francisco and the headquarter in San Jose and meet my US colleagues there which was such a real nice experience. Adobe is really a great place to work and I wish them best of luck for 2009! The experience to work for Adobe is unique and exceeded my expectations so far. May the RIA be with you!</p>
<p>During my time at Adobe in Hamburg I also helped out the <a href="http://flexughh.de/">Flex Usergroup Hamburg</a> where I meet so kind and talented people from the community. I will miss you guys and the meetings and discussions a lot so please come up with remote access <img src='http://soenkerohde.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> !</p>
<p>So what&#8217;s up in 2009?</p>
<p>I started to work as Sr. Flash Platform freelancer at <a href="http://aupeo.com">AUPEO!</a> and will team up with my dear friend <a href="http://wahlers.com.br/claus/blog/">Claus Wahlers</a> and his company <a href="http://codeazur.com.br/">côdeazur</a> which is located in São Paulo. Aupeo is a new platform to discover music with friends and communities. It is still private beta but be sure to <a href="http://aupeo.com/">sign up</a>!</p>
<p>Besides that I will be contributing to the <a href="http://code.google.com/p/swizframework/">Swiz framework</a> which is a framework for Flex as much as possible. I started working with Swiz about 4 month ago and can say that it really accelerated my dev speed a lot and feels so good to use. Swiz is &#8220;brutally simple&#8221; and I will blog about the new extensions for runtime validation soon. Also be sure to follow <a href="http://cdscott.blogspot.com/">Chris Scott&#8217;s blog</a> who will update on the new changes as well and I just saw <a href="http://www.briankotek.com/blog/index.cfm/2009/1/5/A-New-Series-on-Understanding-and-Using-the-Swiz-Framework-for-Flex">Brian Kotek</a> is preparing a Swiz blog series too.</p>
]]></content:encoded>
			<wfw:commentRss>http://soenkerohde.com/2009/01/bye-bye-adobe-and-hello-brazil/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Chuck Norris anyone?</title>
		<link>http://soenkerohde.com/2008/11/chuck-norris-anyone/</link>
		<comments>http://soenkerohde.com/2008/11/chuck-norris-anyone/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 19:16:23 +0000</pubDate>
		<dc:creator>Sönke</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://soenkerohde.com/?p=248</guid>
		<description><![CDATA[<p>I just came across the Google blog where is a post about the top searches after the election in the US.</p>
<p>Top 10 for political personas:</p>
<p>Obama
Palin
McCain
Tina Fey
Joe Biden
Chuck Norris
Cindy McCain
Bristol Palin
SNL Palin
Colin Powell</p>
<p>Chuck Norris? Come one  ! After a small research I read that he did some spots for the republican party where he made a [...]]]></description>
			<content:encoded><![CDATA[<p>I just came across the Google blog where is a <a href="http://googleblog.blogspot.com/2008/11/top-searches-on-election-day-part-1.html">post about the top searches after the election</a> in the US.</p>
<p>Top 10 for political personas:</p>
<p>Obama<br />
Palin<br />
McCain<br />
Tina Fey<br />
Joe Biden<br />
<strong>Chuck Norris</strong><br />
Cindy McCain<br />
Bristol Palin<br />
SNL Palin<br />
Colin Powell</p>
<p>Chuck Norris? Come one <img src='http://soenkerohde.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ! After a small research I read that he did some spots for the republican party where he made a campaign called HuckChuckFacts. If you don&#8217;t now the <a href="http://www.chucknorrisfacts.com/">Chuck Norris Facts</a> check them out. Internet legend!</p>
<p>Of course the next step was YouTube where I found some <a href="http://www.youtube.com/watch?v=MDUQW8LUMs8">spots</a>. At least funny but not the party I would prefer &#8230; However, congratulations USA for this new president and be carefull if Chuck runs for president in 2012. Nobody can beat Chuck Norris!</p>
]]></content:encoded>
			<wfw:commentRss>http://soenkerohde.com/2008/11/chuck-norris-anyone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome Browser</title>
		<link>http://soenkerohde.com/2008/09/google-chrome-browser/</link>
		<comments>http://soenkerohde.com/2008/09/google-chrome-browser/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 17:48:25 +0000</pubDate>
		<dc:creator>Sönke</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://soenkerohde.com/?p=233</guid>
		<description><![CDATA[<p>Yesterday I posted about Firefox 3 and the new concepts Mozilla Labs is working on and today I came across Google Chrome. Check out the Google Chrome comic book which illustrates the ideas behind in a really nice way. The german news site heise said the beta will be available today 9pm.</p>
<p>News on Google Blog</p>
<p>Update: The [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I <a href="http://soenkerohde.com/2008/09/firefox-3-and-new-concepts/">posted</a> about Firefox 3 and the new concepts Mozilla Labs is working on and today I came across Google Chrome. Check out the <a href="http://www.google.com/googlebooks/chrome/">Google Chrome comic book</a> which illustrates the ideas behind in a really nice way. The german news site <a href="http://www.heise.de/software/download/google_chrome/57483">heise said the beta will be available today 9pm</a>.</p>
<p><a href="http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html">News on Google Blog</a></p>
<p>Update: The browser is now available for <a href="http://www.google.com/chrome">download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://soenkerohde.com/2008/09/google-chrome-browser/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Firefox 3 and New Concepts</title>
		<link>http://soenkerohde.com/2008/09/firefox-3-and-new-concepts/</link>
		<comments>http://soenkerohde.com/2008/09/firefox-3-and-new-concepts/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 09:45:59 +0000</pubDate>
		<dc:creator>Sönke</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://soenkerohde.com/?p=231</guid>
		<description><![CDATA[<p>Last week I updated from Firefox 2 to 3 and I wanted to share some of my experiences. Most of the time I am a Mac user so I was really happy that the new Firefox now looks like a real Mac citizen with the new chrome design, great! Almost all plug-ins had updates for Firefox [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I updated from <a href="http://www.mozilla.com/firefox/">Firefox</a> 2 to 3 and I wanted to share some of my experiences. Most of the time I am a Mac user so I was really happy that the new Firefox now looks like a real Mac citizen with the new chrome design, great! Almost all plug-ins had updates for Firefox 3 available so also no big problem there.</p>
<p>One thing I recognized and I find pretty scary is the thing how passwords are stored. I don&#8217;t know if the situation changed with the new version but if you did not set a master password all your log-ins (username/password) can be shown in plain text. So if someone has access to your computer it takes him/her seconds to steal user accounts. So go to the Preferences-&gt;Security and click &#8220;Saved Password &#8230;&#8221;. Then click &#8220;Show Passwords&#8221; and you know what I mean so be sure to set a master password.</p>
<p>Another news around Firefox and Mozilla from last week was that the <a href="http://www.techcrunch.com/2008/08/28/mozilla-extends-lucrative-deal-with-google-for-3-years/">contract with Google to be the preselected search engine will continue for another three years</a>. This makes Google responsible for around 85% of the total Mozilla revenue.</p>
<p>Firefox 3 ist a great update I think but there is still room for innovation like <a href="http://labs.mozilla.com/">Mozilla Labs</a> shows. Check out the video with ideas for a <a href="http://labs.mozilla.com/2008/08/new-tab-concepts/">new tab concept</a> and if you are interested read the <a href="http://www.azarask.in/blog/post/new-tabs/">post by Aza Raskin</a>:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="302" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=1474467&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="302" src="http://vimeo.com/moogaloop.swf?clip_id=1474467&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
<a href="http://vimeo.com/1474467?pg=embed&amp;sec=1474467">Firefox Proposal: A Better New Tab Screen</a> from <a href="http://vimeo.com/user532161?pg=embed&amp;sec=1474467">Aza Raskin</a> on <a href="http://vimeo.com?pg=embed&amp;sec=1474467">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://soenkerohde.com/2008/09/firefox-3-and-new-concepts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Live Concert Streaming</title>
		<link>http://soenkerohde.com/2008/08/live-concert-streaming/</link>
		<comments>http://soenkerohde.com/2008/08/live-concert-streaming/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 09:52:07 +0000</pubDate>
		<dc:creator>Sönke</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://soenkerohde.com/?p=229</guid>
		<description><![CDATA[<p>Last week I attended my first online live concert on Ligx.de. The band was Thrice, a post hardcore band which of some of you might know. I was skeptical with the user experience but was surprised positively. Of course it is not comparable with a real live concert but attending the entire show with support band, [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I attended my first online live concert on <a href="http://ligx.de">Ligx.de</a>. The band was <a href="http://www.thrice.net/">Thrice</a>, a post hardcore band which of some of you might know. I was skeptical with the user experience but was surprised positively. Of course it is not comparable with a real live concert but attending the entire show with support band, sound check etc. gives you the live atmosphere. You know things are happening really in that moment and you get no 20 seconds YouTube clip with bad sound quality like there are so many from trillion different concerts.</p>
<p>And not to forget since generally I am only blogging about Flash/Flex stuff, the Ligx website is build with Flex and I am pretty sure the streaming part is done with the Flash Media Server and the backend is done with Ruby and RubyAMF.</p>
]]></content:encoded>
			<wfw:commentRss>http://soenkerohde.com/2008/08/live-concert-streaming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

