<?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>blog.joa-ebert.com - Blog of Joa Ebert &#187; news</title>
	<atom:link href="http://blog.joa-ebert.com/category/flash/news-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.joa-ebert.com</link>
	<description>Actionscript3, Flash, Scala, Java, C#, C++, Algorithms &#38; Imageprocessing</description>
	<lastBuildDate>Wed, 28 Jul 2010 16:47:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>New Apparat Example</title>
		<link>http://blog.joa-ebert.com/2010/05/26/new-apparat-example/</link>
		<comments>http://blog.joa-ebert.com/2010/05/26/new-apparat-example/#comments</comments>
		<pubDate>Wed, 26 May 2010 11:50:54 +0000</pubDate>
		<dc:creator>joa</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[experiments]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[apparat]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[inline]]></category>

		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=595</guid>
		<description><![CDATA[Good news everyone. The Apparat inline expansion works  [...]]]></description>
			<content:encoded><![CDATA[<p>Good news everyone. The Apparat inline expansion works now to full extent after fixing some minor bugs. A complete example is also available. Just change the paths in the <code>build.properties</code> file and compile everything using Ant.</p>
<div align="center"><img src="http://blog.joa-ebert.com/wp-content/images/apparat-shot.png" width="399" height="183" alt="Apparat Example"/></div>
<p>Use the inline feature with care. Apparat does not try to optimize your code and performs nothing but dead simple inlining. This can lead to <b>slower</b> code due to the creation of lots of local registers. Your code gets also much bigger and will require more space in memory. I am actually not a fan of manual inlining at all. I think it makes only sense to inline code if you have a powerful optimizer available that will cleanup the whole mess.</p>
<p>The fun story about this example is that the inlined version is slower using the lastes Flash Player release candidate if you have only 40.000 particles. That is why I increased the number of particles to 80.000 ;). I developed the example using an old standalone player and the inlined version was nearly twice as fast. However when I watched the example in the browser with the latest release candidate the game was completely different. Kudos to Adobe for significantly improving the Flash Player performance!</p>
<ul>
<li><a href="http://www.joa-ebert.com/swfs/apparat-example/as3" target="_blank" title="Pure AS3 version">AS3-only Version</a></li>
<li><a href="http://www.joa-ebert.com/swfs/apparat-example/apparat" target="_blank" title="Inline version">Inline Version</a></li>
<li><a href="http://code.google.com/p/apparat/downloads/detail?name=apparat-ant-example.zip" target="_blank" title="Source">Source</a></li>
</ul>
<div class="tweetmeme_button" style="float: right; margin-right: 10px; margin-top: 38px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.joa-ebert.com%2F2010%2F05%2F26%2Fnew-apparat-example%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.joa-ebert.com%2F2010%2F05%2F26%2Fnew-apparat-example%2F&amp;source=joa&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div style="float:right;margin:0px 16px 0px 4px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://blog.joa-ebert.com/2010/05/26/new-apparat-example/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.joa-ebert.com/2010/05/26/new-apparat-example/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Inline Expansion</title>
		<link>http://blog.joa-ebert.com/2010/05/24/inline-expansion/</link>
		<comments>http://blog.joa-ebert.com/2010/05/24/inline-expansion/#comments</comments>
		<pubDate>Mon, 24 May 2010 18:12:57 +0000</pubDate>
		<dc:creator>joa</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[apparat]]></category>
		<category><![CDATA[inline expansion]]></category>

		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=593</guid>
		<description><![CDATA[In addition to macro expansion Apparat has now inline e [...]]]></description>
			<content:encoded><![CDATA[<p>In addition to macro expansion Apparat has now inline expansion as well. It works nearly the same way as macro expansion but without most of its limitations. To define a class for inline usage it must extend <code>apparat.inline.Inlined</code> and all its methods must be static. However the cool thing is that you can also return values in contrast to macro expansion. You can also pass normal parameters. For instance <code>FastMath.sin(FastMath.sqrt(2.0))</code> is valid code using inline expansion. It is enabled by default in TDSI.
<div class="tweetmeme_button" style="float: right; margin-right: 10px; margin-top: 38px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.joa-ebert.com%2F2010%2F05%2F24%2Finline-expansion%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.joa-ebert.com%2F2010%2F05%2F24%2Finline-expansion%2F&amp;source=joa&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div style="float:right;margin:0px 16px 0px 4px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://blog.joa-ebert.com/2010/05/24/inline-expansion/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.joa-ebert.com/2010/05/24/inline-expansion/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Macro Expansion</title>
		<link>http://blog.joa-ebert.com/2010/05/10/macro-expansion/</link>
		<comments>http://blog.joa-ebert.com/2010/05/10/macro-expansion/#comments</comments>
		<pubDate>Mon, 10 May 2010 17:31:34 +0000</pubDate>
		<dc:creator>joa</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[apparat]]></category>
		<category><![CDATA[inline]]></category>
		<category><![CDATA[macro expansion]]></category>
		<category><![CDATA[taas]]></category>

		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=588</guid>
		<description><![CDATA[Apparat has another new feature called Macro Expansion. [...]]]></description>
			<content:encoded><![CDATA[<p>Apparat has another new feature called <a href="http://code.google.com/p/apparat/wiki/MacroExpansion" title="Macro Expansion" target="_blank">Macro Expansion</a>. I talked about this with Nico Zimmermann at FFK in Cologne. Nico was using TDSI for a project but he was not very satisfied with it because you have to inline all inverse-square root tricks manually.<br />
This is why Apparat has now macro expansion. I am actually not a big fan of it. I think a good compiler would do this for you without you having to go through all the steps. Unfortunately writing this compiler will take longer than the couple of hours I have spent on the macro expansion today.</p>
<p>So if you want to have quick and dirty inlining capabilities: <a href="http://code.google.com/p/apparat/wiki/MacroExpansion" target="_blank" title="Macro Expansion">this is for you</a>. It is an easy fix for a feature a lot of people have asked for. I will continue working on TAAS to implement this much better in the future.
<div class="tweetmeme_button" style="float: right; margin-right: 10px; margin-top: 38px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.joa-ebert.com%2F2010%2F05%2F10%2Fmacro-expansion%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.joa-ebert.com%2F2010%2F05%2F10%2Fmacro-expansion%2F&amp;source=joa&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div style="float:right;margin:0px 16px 0px 4px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://blog.joa-ebert.com/2010/05/10/macro-expansion/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.joa-ebert.com/2010/05/10/macro-expansion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Apparat: Crunching SWF Files Since 2009</title>
		<link>http://blog.joa-ebert.com/2010/05/07/apparat-crunching-swf-files-since-2009/</link>
		<comments>http://blog.joa-ebert.com/2010/05/07/apparat-crunching-swf-files-since-2009/#comments</comments>
		<pubDate>Fri, 07 May 2010 15:37:04 +0000</pubDate>
		<dc:creator>joa</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=578</guid>
		<description><![CDATA[Apparat has a great new feature that allows you to crea [...]]]></description>
			<content:encoded><![CDATA[<p>Apparat has a great new feature that allows you to create even smaller files. Basic SWF files are compressed using Java&#8217;s standard <code>java.util.zip.Deflater</code> class. This is perfectly fine. And I would even go with no compression at all during development.</p>
<p>However when deploying you can spend some extra time compressing your SWF files with the best tools available. <a href="http://www.7-zip.org/" target="_blank" title="7-Zip">7-Zip</a> is for instance such a tool and achieves a great compression ratio.</p>
<p>If you have the 7z executable on your <code>PATH</code> Apparat will make use of it to achieve the best compression for your SWF files. More configuration options are available <a href="http://code.google.com/p/apparat/wiki/HiddenGems" target="_blank" title="HiddenGems">here</a>.</p>
<p>This feature is currently only implemented for SWF files and not SWCs. However every tool will make use of it by default. So if you are running Reducer and have no graphics in your SWF files you can still get a better compression.</p>
<p>An example is straight from the sources:</p>
<blockquote><p><code>
<pre>reducer -i as3\Apparat.Tests.AS3\bin\Test07.swf
[i] Apparat -- http://apparat.googlecode.com/
[i] Launching tool: Reducer
[i] Waiting for 7z ...
[i] Compression ratio: <b>18.224573%</b>
[i] Total bytes: 310
[i] Completed in 547ms.</pre>
<p></code></p></blockquote>
<p>Note please that this SWF file does not contain any graphical assets and we got still a ratio of 18%. Our main <code>audiotool.swf</code> file is compressed by about 10% &#8212; about 200kb &#8212; and contains no graphical assets either.</p>
<p>You can download the latest Apparat on <a href="http://code.google.com/p/apparat/downloads/detail?name=apparat.zip"  target="_blank" title="Download Apparat">Google Code</a>. Please note that you will need <a href="http://www.scala-lang.org/downloads" target="_blank" title="Scala Downloads">Scala 2.8 RC1</a> as well.
<div class="tweetmeme_button" style="float: right; margin-right: 10px; margin-top: 38px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.joa-ebert.com%2F2010%2F05%2F07%2Fapparat-crunching-swf-files-since-2009%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.joa-ebert.com%2F2010%2F05%2F07%2Fapparat-crunching-swf-files-since-2009%2F&amp;source=joa&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div style="float:right;margin:0px 16px 0px 4px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://blog.joa-ebert.com/2010/05/07/apparat-crunching-swf-files-since-2009/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.joa-ebert.com/2010/05/07/apparat-crunching-swf-files-since-2009/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Audiotool 1.0</title>
		<link>http://blog.joa-ebert.com/2010/03/25/audiotool-1-0/</link>
		<comments>http://blog.joa-ebert.com/2010/03/25/audiotool-1-0/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 17:34:19 +0000</pubDate>
		<dc:creator>joa</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[audiotool]]></category>

		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=541</guid>
		<description><![CDATA[We have finally released the first version of the Audio [...]]]></description>
			<content:encoded><![CDATA[<p>We have finally released the first version of the <a href="http://www.audiotool.com/" target="_blank" title="Audiotool">Audiotool</a>. I am very thankful for all the kind tweets and happy that our work is now available to the public.</p>
<p>However the current version is named Fire<b>starter</b> for a reason. What you see online is just the tip of the iceberg. I can not wait to start implementing all the cool features that will separate us from traditional software ;)
<div class="tweetmeme_button" style="float: right; margin-right: 10px; margin-top: 38px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.joa-ebert.com%2F2010%2F03%2F25%2Faudiotool-1-0%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.joa-ebert.com%2F2010%2F03%2F25%2Faudiotool-1-0%2F&amp;source=joa&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div style="float:right;margin:0px 16px 0px 4px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://blog.joa-ebert.com/2010/03/25/audiotool-1-0/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.joa-ebert.com/2010/03/25/audiotool-1-0/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>TAAS As A Decompiler</title>
		<link>http://blog.joa-ebert.com/2009/09/29/taas-as-a-decompiler/</link>
		<comments>http://blog.joa-ebert.com/2009/09/29/taas-as-a-decompiler/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 09:59:30 +0000</pubDate>
		<dc:creator>joa</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[apparat]]></category>
		<category><![CDATA[decompiler]]></category>
		<category><![CDATA[haxe]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[swf]]></category>
		<category><![CDATA[taas]]></category>

		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=487</guid>
		<description><![CDATA[The TAAS compiler is different from the ActionScript co [...]]]></description>
			<content:encoded><![CDATA[<p>The TAAS compiler is different from the ActionScript compiler since its input is not ActionScript source code but already compiled SWF or SWC files. Just like the <a href="http://www.haxe.org/" target="_blank">haXe</a> compiler <a href="http://haxe.org/doc/flash/as3gen" target="_blank">can output AS3</a> instead of a SWF the TAAS compiler can do the same.</p>
<p>Now if you add one and one together you see that the TAAS compiler can be used as a very strong decompiler. My own tests have shown that it will work flawlessly where other commercial decompilers output rubbish. Since the compiler behaves like the Flash Player it will &#8220;execute&#8221; the bytecode in order to parse it which means it has a very highlevel understanding of the structure inside the SWF.</p>
<p>The only question is now what to do with the source code. I wrote the decompiler for my session at FOTB to show much easier how the optimizations behave. It is also a great tool to debug errors. But should it be opened or not?</p>
<p>To take it one step further one might also be able to write an obfuscator using the TAAS compiler. In my opinion it would be cool to have a strong decompiler and obfuscator, both being open source. We might also add an option to protect SWFs from the decompiler by adding something to the SWF metadata for instance. Of course this is just a simple rule which could be removed by someone once the code is open. What do you think?
<div class="tweetmeme_button" style="float: right; margin-right: 10px; margin-top: 38px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F09%2F29%2Ftaas-as-a-decompiler%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F09%2F29%2Ftaas-as-a-decompiler%2F&amp;source=joa&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div style="float:right;margin:0px 16px 0px 4px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://blog.joa-ebert.com/2009/09/29/taas-as-a-decompiler/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.joa-ebert.com/2009/09/29/taas-as-a-decompiler/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
		<item>
		<title>FOTB Recordings</title>
		<link>http://blog.joa-ebert.com/2009/09/28/fotb-recordings/</link>
		<comments>http://blog.joa-ebert.com/2009/09/28/fotb-recordings/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 20:29:19 +0000</pubDate>
		<dc:creator>joa</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=484</guid>
		<description><![CDATA[The people from Powerflasher were kind enough to upload [...]]]></description>
			<content:encoded><![CDATA[<p>The people from <a href="http://www.powerflasher.com/" target="_blank">Powerflasher</a> were kind enough to upload their recording of my FOTB session. I am sorry that the microphone stopped working at the end. But you might still be able to understand what I was talking about if you turn up the volume of your speakers.<br />
<span id="more-484"></span></p>
<div align="center">
<script type="text/javascript" src="http://de.sevenload.com/pl/admzN8j/400x258"></script>
<p>Link: <a href="http://de.sevenload.com/videos/admzN8j-Joa-Ebert-FOTB-Part-01"><img src="http://static.sevenload.com/img/sevenload.png" width="66" height="10" alt="Joa Ebert @ FOTB - Part 01" /></a></p>
<p><script type="text/javascript" src="http://de.sevenload.com/pl/Z4NlqkP/400x258"></script>
<p>Link: <a href="http://de.sevenload.com/videos/Z4NlqkP-Joa-Ebert-FOTB-Part-02"><img src="http://static.sevenload.com/img/sevenload.png" width="66" height="10" alt="Joa Ebert @ FOTB - Part 02" /></a></p>
</div>
<p>The recording of the jam session is also available.  I just want to note that I used the <a href="http://www.processing.org" target="_blank">processing</a> library inside Eclipse for the speedcoding. This time I also practiced at home unlike for other jam sessions. The visualizer was an homage to a <a href="http://www.youtube.com/watch?v=zCA79Du-WqY" target="_blank">table</a> designed by <a href="http://www.daftpunk.com/" target="_blank">Daft Punk</a> for <a href="http://www.habitat.net/" target="_blank">habitat</a>.</p>
<div align="center"><object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=6749871&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=6749871&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object></div>
<div class="tweetmeme_button" style="float: right; margin-right: 10px; margin-top: 38px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F09%2F28%2Ffotb-recordings%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F09%2F28%2Ffotb-recordings%2F&amp;source=joa&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div style="float:right;margin:0px 16px 0px 4px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://blog.joa-ebert.com/2009/09/28/fotb-recordings/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.joa-ebert.com/2009/09/28/fotb-recordings/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>After The Sandbox</title>
		<link>http://blog.joa-ebert.com/2009/09/28/after-the-sandbox/</link>
		<comments>http://blog.joa-ebert.com/2009/09/28/after-the-sandbox/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 12:48:39 +0000</pubDate>
		<dc:creator>joa</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[apparat]]></category>
		<category><![CDATA[fotb09]]></category>
		<category><![CDATA[opensource]]></category>

		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=477</guid>
		<description><![CDATA[In 2006 I got invited to the FlashForum Conference in D [...]]]></description>
			<content:encoded><![CDATA[<p>In 2006 I got invited to the <a href="http://www.flashforum.de/" target="_blank">FlashForum</a> Conference in Düsseldorf, Germany. It was my very first Flash conference and my topic was AS3 code optimization. I have talked a lot about bitwise operators, lookup tables and other techniques to speed your code up.<br />
Now about three years later I wanted to prepare a very special talk for FOTB and make a step forward by getting rid of old <a href="http://wiki.joa-ebert.com/" target="_blank">habits</a> and <a href="http://je2050.de/files/misc/as3opt.pdf" target="_blank">idioms</a>. </p>
<p>Before <a href="http://www.flashonthebeach.com/" target="_blank">FOTB</a> I was not sure if I can present <a href="http://apparat.googlecode.com" target="_blank">Apparat</a> at all. For me as an autodidact it is not always easy to solve certain issues. <a href="http://www.quasimondo.com/" target="_blank">Mario Klingemann</a> talked about <i>Magic Moments</i> in Brighton. I guess I had one after a long time of thinking and failing. I got really into the flow and everything became so clear. Stay tuned for more detailed posts on the technique behind the different compilers.</p>
<p><span id="more-477"></span></p>
<p>However this was a really special conference for me. The standing ovations made me completely happy and I was absolutely overwhelmed by the response. After all those sleepless nights it was a huge gift of appreciation for my work. I will definitely  never forget that moment and all I can say is thank you. If you spend so much time working on an opensource project this is really the best that can happen. “Leaving the Sandbox” came from a long background. The end of the session was a really emotional for me. Thank you John for inviting me.</p>
<div align="center">
<div style="width:425px;text-align:left" id="__ss_2042016"><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=render-090922122545-phpapp02&#038;stripped_title=leaving-the-sandbox" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=render-090922122545-phpapp02&#038;stripped_title=leaving-the-sandbox" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>
</div>
<div class="tweetmeme_button" style="float: right; margin-right: 10px; margin-top: 38px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F09%2F28%2Fafter-the-sandbox%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F09%2F28%2Fafter-the-sandbox%2F&amp;source=joa&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div style="float:right;margin:0px 16px 0px 4px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://blog.joa-ebert.com/2009/09/28/after-the-sandbox/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.joa-ebert.com/2009/09/28/after-the-sandbox/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Euro Invasion At MAX 2009</title>
		<link>http://blog.joa-ebert.com/2009/09/03/euro-invasion-at-max-2009/</link>
		<comments>http://blog.joa-ebert.com/2009/09/03/euro-invasion-at-max-2009/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 20:18:24 +0000</pubDate>
		<dc:creator>joa</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[influxis]]></category>
		<category><![CDATA[max]]></category>

		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=470</guid>
		<description><![CDATA[Since the news has spread pretty quickly I want to shed [...]]]></description>
			<content:encoded><![CDATA[<p>Since the news has spread pretty quickly I want to shed some light on this as well. <a href="http://www.influxis.com/" target="_blank">Influxis</a> has <a href="http://labs.influxis.com/?p=504" target="_blank">invited</a> a lot of European Flash developers to come to LA and attend Adobe MAX 2009. Those include Seb Lee Delisle, Ralph Hauwert, Mario Klingemann, Andre Michelle and me. I was absolutely overwhelmed when I heard about that idea first. I really want to thank the whole Influxis team for making this possible. You guys definitly rock! But I would also like to thank Adobe for sponsoring MAX passes in order to get everyone invited.</p>
<p>Hopefully I will meet a lot of interesting people and Flash Player engineers. It will be my first MAX so I am really curious.
<div class="tweetmeme_button" style="float: right; margin-right: 10px; margin-top: 38px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F09%2F03%2Feuro-invasion-at-max-2009%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F09%2F03%2Feuro-invasion-at-max-2009%2F&amp;source=joa&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div style="float:right;margin:0px 16px 0px 4px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://blog.joa-ebert.com/2009/09/03/euro-invasion-at-max-2009/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.joa-ebert.com/2009/09/03/euro-invasion-at-max-2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>UML generation using Dump</title>
		<link>http://blog.joa-ebert.com/2009/08/20/uml-generation-using-dump/</link>
		<comments>http://blog.joa-ebert.com/2009/08/20/uml-generation-using-dump/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 18:11:39 +0000</pubDate>
		<dc:creator>joa</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[dump uml apparat]]></category>

		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=458</guid>
		<description><![CDATA[
Dump has now another cool feature: UML diagram genera [...]]]></description>
			<content:encoded><![CDATA[<div align="center"><img src="http://blog.joa-ebert.com/wp-content/images/uml_playerglobal.gif" alt="playerglobal.abc UML" border="0"/></div>
<p>Dump has now another cool feature: UML diagram generation. The UML diagram is exported in DOT format. I think this is a really cool feature because the graph is built by analyzing a SWF file and you get it for free. I will probably create a different tool to make full use of the UML generation since you could link multiple files together for a complete coverage. Since Graphviz is not able to underline text I have choosen to use a dollar sign for static methods. You will also get proper parameter names if you compile your SWF file in debug mode.</p>
<p>This is an example UML diagram for the <code>playerglobal.swc</code>. In order to create it I took the <code>playerglobal.abc</code> from the Tamarin sources and the command was <code>java -jar dump.jar -input playerglobal.abc -uml</code>.</p>
<p>Here are two example representations but be careful. The PNG size is 30831&#215;6232 and might crash your browser. Chrome can display the PNG for me but is not able to show the SVG correct. Firefox displays the SVG very well. You can download the PNG and open it in IrfanView or Photoshop to be safe.</p>
<ul>
<li><a rel="none" href="http://blog.joa-ebert.com/wp-content/images/uml_playerglobal.png" target="_blank" rel="lightbox[458]">PNG</a></li>
<li><a rel="non" href="http://blog.joa-ebert.com/wp-content/images/uml_playerglobal.svg" target="_blank">SVG</a></li>
</ul>
<div class="tweetmeme_button" style="float: right; margin-right: 10px; margin-top: 38px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F08%2F20%2Fuml-generation-using-dump%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F08%2F20%2Fuml-generation-using-dump%2F&amp;source=joa&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div style="float:right;margin:0px 16px 0px 4px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://blog.joa-ebert.com/2009/08/20/uml-generation-using-dump/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.joa-ebert.com/2009/08/20/uml-generation-using-dump/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Inheritance Graphs</title>
		<link>http://blog.joa-ebert.com/2009/08/18/inheritance-graphs/</link>
		<comments>http://blog.joa-ebert.com/2009/08/18/inheritance-graphs/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 13:30:13 +0000</pubDate>
		<dc:creator>joa</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[apparat]]></category>
		<category><![CDATA[dot]]></category>
		<category><![CDATA[dump]]></category>
		<category><![CDATA[graphviz]]></category>
		<category><![CDATA[inheritance graph]]></category>

		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=445</guid>
		<description><![CDATA[The Dump tool is now able to export an inheritance grap [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.joa-ebert.com/wp-content/images/inheritanceGraph.jpg" alt="Inheritance Graph" border="0" style="float: right; padding-left: 3px"/>The <a href="http://blog.joa-ebert.com/2009/08/17/dump-disassembler/" target="_self" title="Dump">Dump</a> tool is now able to export an inheritance graph for a given ABC/SWC/SWF file. This is a very easy and nice way to look at the classes and their relationships. The small image shows the graph for one ABC file of the AudioTool. I think this it is pretty neat.</p>
<p>You will need a program like <a href="http://www.graphviz.org/" target="_blank" title="Graphviz">Graphviz</a> to visualize the exported <a href="http://en.wikipedia.org/wiki/DOT_language" target="_blank" title="DOT Language">DOT file</a>. If you want to export the inheritance graph you basically write<code>java -jar dump.jar -input file.swf -ig</code>. I think this shows a really cool feature of Apparat. It is also very easy to reverse engineer a UML diagram. I am not interested in such a feature but maybe someone else.</p>
<p><b>Update:</b> Here is a full-size example for the inheritance graph of the unfinished ImageProcessing library I am currently working on.</p>
<div align="center"><a rel="none" href="http://blog.joa-ebert.com/wp-content/images/ip_ig_b.gif" target="_blank" title="ImageProcessing Library Inheritance Graph" rel="lightbox[445]"><img src="http://blog.joa-ebert.com/wp-content/images/ip_ig_s.jpg" width="420" height="69" alt="ImageProcessing Library Inheritance Graph" border="0"/></a></div>
<div class="tweetmeme_button" style="float: right; margin-right: 10px; margin-top: 38px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F08%2F18%2Finheritance-graphs%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F08%2F18%2Finheritance-graphs%2F&amp;source=joa&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div style="float:right;margin:0px 16px 0px 4px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://blog.joa-ebert.com/2009/08/18/inheritance-graphs/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.joa-ebert.com/2009/08/18/inheritance-graphs/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Dump Disassembler</title>
		<link>http://blog.joa-ebert.com/2009/08/17/dump-disassembler/</link>
		<comments>http://blog.joa-ebert.com/2009/08/17/dump-disassembler/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 14:44:08 +0000</pubDate>
		<dc:creator>joa</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[apparat dump]]></category>

		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=439</guid>
		<description><![CDATA[A very important tool for SWF manipulation is a way to  [...]]]></description>
			<content:encoded><![CDATA[<p>A very important tool for SWF manipulation is a way to debug them and to have a look at the bytecode. Dump is a tool that does nothing else but listing all SWF Tags and ABC files the way Apparat represents them internally.</p>
<p>I know that there are a lot of other tools out there. <a href="http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/modules/swfutils/src/java/flash/swf/tools/AbcPrinter.java" target="_blank" title="swfdump">swfdump</a> and <a href="http://hg.mozilla.org/tamarin-redux/file/b7e3811ee1ae/utils/abcdump.as" target="_blank" title="abcdump">abcdump</a> are great already. I have used swfdump from the Flex SDK before. But I dislike how they represent namespaces and the fact that not all properties are always shown. Dump is simple. It lists everything and uses the naming form the <a href="http://www.adobe.com/devnet/actionscript/articles/avm2overview.pdf" target="_blank">avm2overview.pdf</a>. </p>
<ul>
<li><a href="http://www.joa-ebert.com/files/zip/dump.zip" target="_blank" title="Dump">Download</a></li>
</ul>
<div class="tweetmeme_button" style="float: right; margin-right: 10px; margin-top: 38px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F08%2F17%2Fdump-disassembler%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F08%2F17%2Fdump-disassembler%2F&amp;source=joa&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div style="float:right;margin:0px 16px 0px 4px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://blog.joa-ebert.com/2009/08/17/dump-disassembler/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.joa-ebert.com/2009/08/17/dump-disassembler/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Apparat is now Open Source</title>
		<link>http://blog.joa-ebert.com/2009/08/11/apparat-is-now-open-source/</link>
		<comments>http://blog.joa-ebert.com/2009/08/11/apparat-is-now-open-source/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 21:45:07 +0000</pubDate>
		<dc:creator>joa</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[apparat]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[reducer]]></category>
		<category><![CDATA[taas]]></category>
		<category><![CDATA[tdsi]]></category>

		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=433</guid>
		<description><![CDATA[The full source code of Apparat is now available at Goo [...]]]></description>
			<content:encoded><![CDATA[<p>The full source code of <a href="http://apparat.googlecode.com/" target="_blank" title="Apparat">Apparat</a> is now available at GoogleCode. It is the whole framework behind <a href="http://blog.joa-ebert.com/2009/08/05/turbodieselsportinjection/" target="_self" title="TurboDieselSportInjection">TDSI</a> and <a href="http://blog.joa-ebert.com/2009/08/08/reducer/" target="_self" title="Reducer">Reducer</a>.</p>
<p>Apparat is released under the <a href="http://www.gnu.org/licenses/lgpl.html" target="_blank">GNU Lesser General Public License</a>. Please contact me if you want to contribute to this project. Maybe someone is interested in writing an Ant task for Reducer? I am also happy to receive feedback if you have used the framework to build something cool with it.</p>
<ul>
<li><a href="http://apparat.googlecode.com/" target="_blank" title="Apparat">Apparat at GoogleCode</a></li>
</ul>
<p>Please join the <a href="http://groups.google.com/group/apparat-framework" title="Apparat Discussion Group" target="_blank">Apparat Discussion Group</a> if you are interested in collaboration.
<div class="tweetmeme_button" style="float: right; margin-right: 10px; margin-top: 38px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F08%2F11%2Fapparat-is-now-open-source%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F08%2F11%2Fapparat-is-now-open-source%2F&amp;source=joa&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div style="float:right;margin:0px 16px 0px 4px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://blog.joa-ebert.com/2009/08/11/apparat-is-now-open-source/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.joa-ebert.com/2009/08/11/apparat-is-now-open-source/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Reducer</title>
		<link>http://blog.joa-ebert.com/2009/08/08/reducer/</link>
		<comments>http://blog.joa-ebert.com/2009/08/08/reducer/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 19:20:07 +0000</pubDate>
		<dc:creator>joa</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[reducer]]></category>
		<category><![CDATA[swf]]></category>
		<category><![CDATA[tass]]></category>
		<category><![CDATA[tdsi]]></category>

		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=417</guid>
		<description><![CDATA[Another spinoff from my current library to optimize SWF [...]]]></description>
			<content:encoded><![CDATA[<p>Another spinoff from my current library to optimize SWF/SWC files. Reducer is a tool that will make SWF and SWC files significantly smaller. There is currently a huge problem with filesizes. If you use the <code>[Embed]</code> tag with PNG images they are not compressed at all. For the Hobnox AudioTool we have been using the Flash IDE to export all graphics so that they are smaller which was a pain.</p>
<p>Now with Reducer you are safe to use <code>[Embed]</code> and then run the tool afterwards. It will compress all lossless images and make them lossy. But usually a PNG can be compressed at 100% JPEG quality and you will still safe a lot of data.</p>
<p>Note: You will not loose alpha transparency when using Reducer. The SWF file format allows us to use a special compression where a PNG gets split up into its color and alpha channels. The color channels are encoded using the traditional JPEG algorithm with adjustable quality while the alpha channel is handled seperately. Transparency is always stored in a lossless fashion which means even with a low JPEG quality you will not get any compression artifacts for the alpha channel.</p>
<ul>
<li><a href="http://www.joa-ebert.com/files/zip/reducer.zip" title="Reducer" target="_self">Download</a></li>
</ul>
<p><b>Update:</b> Reducer is now <a href="http://blog.joa-ebert.com/2009/08/11/apparat-is-now-open-source/" target="_self" title="Apparat is now Open Source">open source</a>!
<div class="tweetmeme_button" style="float: right; margin-right: 10px; margin-top: 38px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F08%2F08%2Freducer%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F08%2F08%2Freducer%2F&amp;source=joa&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div style="float:right;margin:0px 16px 0px 4px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://blog.joa-ebert.com/2009/08/08/reducer/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.joa-ebert.com/2009/08/08/reducer/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>AS3V Preview</title>
		<link>http://blog.joa-ebert.com/2009/05/20/as3v-preview/</link>
		<comments>http://blog.joa-ebert.com/2009/05/20/as3v-preview/#comments</comments>
		<pubDate>Wed, 20 May 2009 18:41:56 +0000</pubDate>
		<dc:creator>joa</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[as3v]]></category>
		<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=372</guid>
		<description><![CDATA[ Here is the first preview of what AS3V looks like in E [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.joa-ebert.com/wp-content/images/as3v.png" target="_self" title="AS3V" rel="lightbox[372]"><img src="http://blog.joa-ebert.com/wp-content/images/as3v_s.png" alt="AS3V" border="0" style="float: left; padding-right: 4px"/></a> Here is the first preview of what AS3V looks like in Eclipse. I have written about 30 rules which include <a href="http://en.wikipedia.org/wiki/Cyclomatic_complexity" target="_blank">cyclomatic complexity</a> checks and <a href="http://en.wikipedia.org/wiki/Unreachable_code" target="_blank">unreachable code detection</a>. Most of the time was getting AS3V to link against the <code>asc.jar</code> from the Flex SDK inside Eclipse which is a real nightmare if you ever tried that one for yourself. However &#8212; it works. And hopefully I can forget about all the code I had to write pretty soon.</p>
<p>You can see in the screenshot that AS3V places markers in your Eclipse code. It works as an incremental project builder which means it is pretty fast since it only evaluates all your sources that have changed independently. If you have any suggestions for possible rules, please tell me. The Flex SDK coding conventions could be interesting for instance. Right now the Eclipse plug-in has still some problems but I think that a first version might be released in the next few weeks.
<div class="tweetmeme_button" style="float: right; margin-right: 10px; margin-top: 38px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F05%2F20%2Fas3v-preview%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F05%2F20%2Fas3v-preview%2F&amp;source=joa&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div style="float:right;margin:0px 16px 0px 4px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://blog.joa-ebert.com/2009/05/20/as3v-preview/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.joa-ebert.com/2009/05/20/as3v-preview/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Hobnox Open Source</title>
		<link>http://blog.joa-ebert.com/2009/04/28/hobnox-open-source/</link>
		<comments>http://blog.joa-ebert.com/2009/04/28/hobnox-open-source/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 14:58:50 +0000</pubDate>
		<dc:creator>joa</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[ffk09]]></category>
		<category><![CDATA[hobnox]]></category>
		<category><![CDATA[opensource]]></category>

		<guid isPermaLink="false">http://blog.joa-ebert.com/?p=345</guid>
		<description><![CDATA[I am proud to announce that we are finally able to rele [...]]]></description>
			<content:encoded><![CDATA[<p>I am proud to announce that we are finally able to release some of our frameworks as open source. It has been a while and we talked very often about this topic. Today at the FlashForum Conference in Cologne I had the honor to show our open source hub to the public for the first time.</p>
<p>We have currently the UIEvent framework including full source code online. I can think of a lot of other frameworks we could release in the near future. Including for instance our DOM, Pogo, Tween or Graph framework. I really hope that we get the go for all those other libraries in the next few days as well.</p>
<ul>
<li><a href="http://opensource.hobnox.com" target="_blank" title="Hobnox Open Source">http://opensource.hobnox.com/</a></li>
</ul>
<div class="tweetmeme_button" style="float: right; margin-right: 10px; margin-top: 38px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F04%2F28%2Fhobnox-open-source%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.joa-ebert.com%2F2009%2F04%2F28%2Fhobnox-open-source%2F&amp;source=joa&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div style="float:right;margin:0px 16px 0px 4px;"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-count" data-url="http://blog.joa-ebert.com/2009/04/28/hobnox-open-source/"></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://blog.joa-ebert.com/2009/04/28/hobnox-open-source/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
