<?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.betabong.com &#187; Random</title>
	<atom:link href="http://blog.betabong.com/category/random/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.betabong.com</link>
	<description></description>
	<lastBuildDate>Thu, 13 May 2010 09:49:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>jQuery Plugin: Round Text</title>
		<link>http://blog.betabong.com/2010/05/13/jquery-plugin-round-text/</link>
		<comments>http://blog.betabong.com/2010/05/13/jquery-plugin-round-text/#comments</comments>
		<pubDate>Thu, 13 May 2010 09:49:40 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[rotate]]></category>
		<category><![CDATA[transform]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=326</guid>
		<description><![CDATA[My very first jQuery plugin: warps the text along a circle. It&#8217;s simple and certainly far from perfect – I needed it, so may be you&#8217;ll need it too :-)
Usage:

$&#40;elem&#41;.roundtext&#40; &#123;radius:150&#125; &#41;;

Tested on latest Opera, Safari, Chrome and Firefox (I assume it won&#8217;t work in bloody IE)
Download:
jquery.roundtext.js
Example:

I used this function here: www.retro-fanshirt.com (Turn off plugins [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>My very first jQuery plugin: warps the text along a circle. It&#8217;s simple and certainly far from perfect – I needed it, so may be you&#8217;ll need it too :-)</p>
<h3>Usage:</h3>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>elem<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">roundtext</span><span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#123;</span>radius<span style="color: #339933;">:</span><span style="color: #CC0000;">150</span><span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Tested on latest Opera, Safari, Chrome and Firefox (I assume it won&#8217;t work in bloody IE)</p>
<h3>Download:</h3>
<p><a class="download" href="/showcase/jquery-roundtext/jquery.roundtext.js">jquery.roundtext.js</a></p>
<h3>Example:</h3>
<p><iframe src="/showcase/jquery-roundtext/jquery.roundtext.html" width="100%" height="550" frameborder="0"></iframe></p>
<p>I used this function here: <a href="http://www.retro-fanshirt.com">www.retro-fanshirt.com</a> (Turn off plugins to see html version)</p>
<p>Sometimes I can see strange behaviour with Safari when it wouldn&#8217;t consider space characters. Just so you know.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2010/05/13/jquery-plugin-round-text/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Garbage Collection, Dictionaries and Listeners</title>
		<link>http://blog.betabong.com/2009/09/09/garbage-collection-dictionary-listener/</link>
		<comments>http://blog.betabong.com/2009/09/09/garbage-collection-dictionary-listener/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 17:06:03 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=286</guid>
		<description><![CDATA[As we all know Flash&#8217;s garbage collector is a hell of a beast. It tries to free memory from &#8220;unused&#8221; objects (aka objects not somehow cross-referenced by the root). So from time to time our garbage collector checks for those objects and kicks them out of memory.. at least some of them.
There are lots of [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.betabong.com/wp-content/uploads/2009/09/031609_garbage_can.jpg" rel="lightbox[286]"><img src="http://blog.betabong.com/wp-content/uploads/2009/09/031609_garbage_can-211x300.jpg" alt="031609_garbage_can" title="031609_garbage_can" width="211" height="300" class="alignright size-medium wp-image-290" style="float:right; margin-left: 10px;" /></a>As we all know Flash&#8217;s garbage collector is a hell of a beast. It tries to free memory from &#8220;unused&#8221; objects (aka objects not somehow cross-referenced by the root). <strong>So from time to time our garbage collector checks for those objects and kicks them out of memory.. at least some of them.</strong></p>
<p>There are lots of articles written about the garbage collector and I&#8217;m not going into it any deeper. Let&#8217;s just summarize that no developer likes that kind of behaviour &#8212; it&#8217;s totally <strong>unpredictable</strong>. System.gc() would help a little, but it&#8217;s only available to debug players.</p>
<p>You may say: what do you care about memory handling! And I&#8217;d answer: not that much actually! :-) But what I really care about is false behaviour that can result.</p>
<p>Within Flash we have two ways to keep weak references to objects: Dictionary and weak listeners (weak method closures). We use weak references so that objects will be collected by the garbage collector. Now when it comes to Dictionaries, they behave as I&#8217;d expect. A &#8220;dead&#8221; object won&#8217;t be listed in a for each loop. But events events events&#8230;. <strong>they&#8217;ll be dispatched to each and every &#8220;dead&#8221; object residing in memory!! Which is such a pain in the ass really!</strong></p>
<p>After a lot of testing I can give only the advice you&#8217;ve probably heard many times before:</p>
<p><strong>Always remove listeners! Even the weak ones!</strong></p>
<p>Otherwise you have to potentially deal with unexpected behaviour. I may gonna create some utility class for that that deals with this problem.</p>
<p><span id="more-286"></span></p>
<p>Here my testing code:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">MouseEvent</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">TimerEvent</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #0066CC;">system</span>.<span style="color: #0066CC;">System</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #0066CC;">text</span>.<span style="color: #0066CC;">TextField</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #0066CC;">text</span>.<span style="color: #006600;">TextFieldAutoSize</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #0066CC;">text</span>.<span style="color: #0066CC;">TextFormat</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">utils</span>.<span style="color: #006600;">Dictionary</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">utils</span>.<span style="color: #006600;">Timer</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> net.<span style="color: #006600;">hires</span>.<span style="color: #006600;">debug</span>.<span style="color: #006600;">Stats</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MemoryLeakTest <span style="color: #0066CC;">extends</span> Sprite
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #0066CC;">static</span> <span style="color: #000000; font-weight: bold;">var</span> counter : uint;
		<span style="color: #0066CC;">public</span> <span style="color: #0066CC;">static</span> <span style="color: #000000; font-weight: bold;">var</span> dict:Dictionary = <span style="color: #000000; font-weight: bold;">new</span> Dictionary<span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">true</span> <span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> t:<span style="color: #0066CC;">TextField</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> makeGC:<span style="color: #0066CC;">Boolean</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> switcher:uint;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> MemoryLeakTest<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			t = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">TextField</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			t.<span style="color: #006600;">defaultTextFormat</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">TextFormat</span><span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">null</span>, <span style="color: #cc66cc;">18</span> , 0x999999 , <span style="color: #000000; font-weight: bold;">true</span> <span style="color: #66cc66;">&#41;</span>;
			t.<span style="color: #0066CC;">autoSize</span> = TextFieldAutoSize.<span style="color: #0066CC;">LEFT</span>;
			addChild<span style="color: #66cc66;">&#40;</span>t<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #000000; font-weight: bold;">var</span> timer : Timer = <span style="color: #000000; font-weight: bold;">new</span> Timer<span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">100</span> <span style="color: #66cc66;">&#41;</span>;
			timer.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>TimerEvent.<span style="color: #006600;">TIMER</span>,handleTimer<span style="color: #66cc66;">&#41;</span>;
			timer.<span style="color: #0066CC;">start</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>MouseEvent.<span style="color: #006600;">CLICK</span>,handleClick<span style="color: #66cc66;">&#41;</span>;
&nbsp;
&nbsp;
			<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> Stats<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> handleTimer<span style="color: #66cc66;">&#40;</span> event : TimerEvent <span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			counter = <span style="color: #cc66cc;">0</span>;
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> makeGC <span style="color: #66cc66;">&#41;</span> <span style="color: #0066CC;">System</span>.<span style="color: #006600;">gc</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			dispatchEvent<span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> Event<span style="color: #66cc66;">&#40;</span> Event.<span style="color: #006600;">CHANGE</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #000000; font-weight: bold;">var</span> i:uint;
			<span style="color: #b1b100;">for</span> each <span style="color: #66cc66;">&#40;</span> <span style="color: #000000; font-weight: bold;">var</span> obj:<span style="color: #66cc66;">*</span> <span style="color: #b1b100;">in</span> dict <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				i++;
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
			t.<span style="color: #0066CC;">text</span> = <span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;Still &quot;</span> + counter + <span style="color: #ff0000;">&quot; dead objects living... (GC &quot;</span> + <span style="color: #66cc66;">&#40;</span>makeGC?<span style="color: #ff0000;">'on'</span>:<span style="color: #ff0000;">'off'</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #ff0000;">')'</span> <span style="color: #66cc66;">&#41;</span>;
			t.<span style="color: #006600;">appendText</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\n</span>In dictionary: '</span> + i <span style="color: #66cc66;">&#41;</span>;
			t.<span style="color: #006600;">appendText</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\n</span>Click to switch manual Garbage Collection aka System.gc()'</span> <span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> switcher++ <span style="color: #66cc66;">%</span> <span style="color: #cc66cc;">2</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #000000; font-weight: bold;">new</span> TestSprite<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">this</span> <span style="color: #66cc66;">&#41;</span>;
				t.<span style="color: #006600;">appendText</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\n</span>Added new test object (should live for 10 msec)'</span> <span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> handleClick<span style="color: #66cc66;">&#40;</span> event : Event <span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			makeGC = <span style="color: #66cc66;">!</span>makeGC;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>	
<span style="color: #66cc66;">&#125;</span>
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">InteractiveObject</span>;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">utils</span>.<span style="color: #006600;">Timer</span>;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">TimerEvent</span>;
<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
<span style="color: #0066CC;">import</span> flash.<span style="color: #0066CC;">system</span>.<span style="color: #0066CC;">System</span>;
&nbsp;
&nbsp;
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> TestSprite <span style="color: #0066CC;">extends</span> Sprite <span style="color: #66cc66;">&#123;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">// the TestSprite instance should not live longer than 10 msec</span>
&nbsp;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> TestSprite<span style="color: #66cc66;">&#40;</span> parent : Sprite <span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">// add to weak dictionary</span>
		<span style="color: #808080; font-style: italic;">//MemoryLeakTest.dict[ this ] = true;</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">// temporarily add to parent</span>
		parent.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">this</span> <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #000000; font-weight: bold;">var</span> timer : Timer = <span style="color: #000000; font-weight: bold;">new</span> Timer<span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">10</span> <span style="color: #66cc66;">&#41;</span>;
		timer.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>TimerEvent.<span style="color: #006600;">TIMER</span>,handleTimer<span style="color: #66cc66;">&#41;</span>;
		timer.<span style="color: #0066CC;">start</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;">// listen (weak!!) to parent event - this is just for control purposes</span>
		parent.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> Event.<span style="color: #006600;">CHANGE</span> , handleChange , <span style="color: #000000; font-weight: bold;">false</span> , <span style="color: #cc66cc;">0</span> , <span style="color: #000000; font-weight: bold;">true</span> <span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;">// let's have those sprites eat some memory while alive</span>
		<span style="color: #0066CC;">this</span>.<span style="color: #006600;">cacheAsBitmap</span> = <span style="color: #000000; font-weight: bold;">true</span>;
		graphics.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xff0000,<span style="color: #cc66cc;">0.1</span><span style="color: #66cc66;">&#41;</span>;
		graphics.<span style="color: #006600;">drawRect</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">500</span>,<span style="color: #cc66cc;">500</span><span style="color: #66cc66;">&#41;</span>;
		graphics.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> handleTimer<span style="color: #66cc66;">&#40;</span> event : TimerEvent <span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #66cc66;">&#40;</span> event.<span style="color: #0066CC;">target</span> as Timer <span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">removeEventListener</span><span style="color: #66cc66;">&#40;</span>TimerEvent.<span style="color: #006600;">TIMER</span>,handleTimer<span style="color: #66cc66;">&#41;</span>;
		parent.<span style="color: #006600;">removeChild</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> handleChange<span style="color: #66cc66;">&#40;</span> event : Event <span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
		MemoryLeakTest.<span style="color: #006600;">counter</span>++;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>



<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2009/09/09/garbage-collection-dictionary-listener/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Daily Live of Webdesigners</title>
		<link>http://blog.betabong.com/2009/08/03/daily-live-of-webdesigners/</link>
		<comments>http://blog.betabong.com/2009/08/03/daily-live-of-webdesigners/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 16:28:03 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=278</guid>
		<description><![CDATA[You may have seen this. If not, it&#8217;s worth a watch:



No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>You may have seen this. If not, it&#8217;s worth a watch:</p>
<p><object width="520" height="400"><param name="movie" value="http://www.youtube.com/v/JI3Df7-KFtw&#038;hl=en&#038;fs=1&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/JI3Df7-KFtw&#038;hl=en&#038;fs=1&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="520" height="400"></embed></object></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2009/08/03/daily-live-of-webdesigners/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BBML Presentation at SFUG</title>
		<link>http://blog.betabong.com/2009/04/22/bbml-presentation/</link>
		<comments>http://blog.betabong.com/2009/04/22/bbml-presentation/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 08:02:14 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Flash & more]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[bbml]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[parsing]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[sfug]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=262</guid>
		<description><![CDATA[Yesterday I had a presentation at the SFUG meeting covering some bits of my rewritten BBML framework (originated from the project laax.com). I&#8217;ve tried to share some insights into the technical concept and strategies for CSS parsing, CSS selectors and layout validation.

Picture by Marc Liyanage
It&#8217;s been surprisingly fun (I give credits to the beer sponsored [...]


Related posts:<ol><li><a href='http://blog.betabong.com/2008/08/22/flash-player-10-i-love-speed/' rel='bookmark' title='Permanent Link: Flash Player 10 – I love speed'>Flash Player 10 – I love speed</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Yesterday I had a presentation at the <a href="http://www.sfug.ch/?p=123">SFUG meeting</a> covering some bits of my rewritten BBML framework (originated from the project laax.com). I&#8217;ve tried to share some insights into the technical concept and strategies for CSS parsing, <a href="http://en.wikipedia.org/wiki/CSS_selector">CSS selectors</a> and layout validation.</p>
<p><img src="http://blog.betabong.com/wp-content/uploads/2009/04/sfug-pres.jpg" alt="Sev presenting..." title="Sev presenting..." width="520" height="390" class="alignnone size-full wp-image-266" /><br />
<small>Picture by <a href="http://www.entropy.ch/about/welcome.html">Marc Liyanage</a></small></p>
<p>It&#8217;s been surprisingly fun (I give credits to the beer sponsored by <a href="http://www.nemos.ch/">Nemos</a>). People even managed to pretend they&#8217;d be interested in what I was prosing, so credit to them too!</p>
<p><a href="http://www.flashatthelake.ch" style="float: right; display: block; margin-left: 10pt; margin-bottom: 10pt;"><img src="http://fatl.ch/banners/fatl_button3_120x60.gif" width="120" height="60" hspace="10" vspace="10" border="0" alt="Flash at the lake Swiss Flash User Group Conference." /></a> I&#8217;d also like to mention that there&#8217;ll be <strong>the</strong> swiss flash event soon: Flash at the Lake will not only pamper you with appearances of <a href="http://fatl.ch/?page_id=16">great national and international Flash enthustiacs</a>, it will also give anybody attending the pleasure to enjoy one of Zurich&#8217;s greatest locations with people who don&#8217;t think of you as a storm lightning adorer when you sit in the sun twittering Flash into the clear lake. And all that to a fantastic price. Check it out at <a href="http://fatl.ch">fatl.ch</a></p>
<p>So here we go with the presentation (<a href="http://www.apple.com/quicktime/download/">Quicktime</a> so you can enjoy the marvelous effects):</p>
<p><object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" width="520" height="390"><param name="src" value="/wp-content/uploads/2009/04/sfug-presentation-bbml-hq.mov" /><param name="controller" value="true" /><param name="autoplay" value="false" /><param name="scale" value="aspect" /><object type="video/quicktime" data="/wp-content/uploads/2009/04/sfug-presentation-bbml-hq.mov" width="520" height="390">
<param name="autoplay" value="false" /><param name="controller" value="true" /><param name="scale" value="aspect" /></object></object></p>


<p>Related posts:<ol><li><a href='http://blog.betabong.com/2008/08/22/flash-player-10-i-love-speed/' rel='bookmark' title='Permanent Link: Flash Player 10 – I love speed'>Flash Player 10 – I love speed</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2009/04/22/bbml-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Metatunnel 1k Demo: AS vs. JS</title>
		<link>http://blog.betabong.com/2009/04/13/metatunnel-1k-demo-as-vs-js/</link>
		<comments>http://blog.betabong.com/2009/04/13/metatunnel-1k-demo-as-vs-js/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 10:16:17 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=245</guid>
		<description><![CDATA[I did a quick port of a «graphic demo» called «metatunnel» (created by FRequency).
Paulo Falcão ported this to Javascript using canvas.
To make the set complete I ported Paulos JS version to Actionscript, just quick&#8217;n'dirty.
Click on it to start the animation:

Here&#8217;s the code:

package test
&#123;
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
&#160;
	public class JSCanvasPort extends Sprite
	&#123;
		public function JSCanvasPort&#40;&#41;
		&#123;
			super&#40;&#41;;
			addChild&#40; canvas [...]


Related posts:<ol><li><a href='http://blog.betabong.com/2009/04/17/metatunnel-with-pixel-bender/' rel='bookmark' title='Permanent Link: MetaTunnel with Pixel Bender'>MetaTunnel with Pixel Bender</a></li><li><a href='http://blog.betabong.com/2009/03/05/javascript-canvas-3d/' rel='bookmark' title='Permanent Link: 3D Point Cloud with Javascript and Canvas'>3D Point Cloud with Javascript and Canvas</a></li><li><a href='http://blog.betabong.com/2008/10/09/how-about-we-go-fuck-instead/' rel='bookmark' title='Permanent Link: How about we go fuck instead?'>How about we go fuck instead?</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I did a quick port of a «graphic demo» called <a href="http://www.pouet.net/prod.php?which=52777">«metatunnel» (created by FRequency).</a></p>
<p><a href="http://demoscene.appjet.net/">Paulo Falcão ported this to Javascript</a> using canvas.</p>
<p>To make the set complete I ported Paulos JS version to Actionscript, just quick&#8217;n'dirty.</p>
<p>Click on it to start the animation:</p>

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_0" width="128" height="128">
      <param name="movie" value="/wp-content/uploads/flash/MetaTunnel.swf" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="/wp-content/uploads/flash/MetaTunnel.swf" width="128" height="128">
      <!--<![endif]-->
        <p>The Flash plugin is required to view this object.</p>
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>

<p><span id="more-245"></span></p>
<p>Here&#8217;s the code:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package test
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Bitmap</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">BitmapData</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">MouseEvent</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> JSCanvasPort <span style="color: #0066CC;">extends</span> Sprite
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> JSCanvasPort<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">super</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			addChild<span style="color: #66cc66;">&#40;</span> canvas = <span style="color: #000000; font-weight: bold;">new</span> Bitmap<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
			canvas.<span style="color: #0066CC;">smoothing</span> = <span style="color: #000000; font-weight: bold;">false</span>;
			canvas.<span style="color: #006600;">scaleX</span> = canvas.<span style="color: #006600;">scaleY</span> = <span style="color: #cc66cc;">2</span>;
			draw<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			addEventListener<span style="color: #66cc66;">&#40;</span> MouseEvent.<span style="color: #006600;">CLICK</span> , handleClick <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> playing:<span style="color: #0066CC;">Boolean</span> = <span style="color: #000000; font-weight: bold;">false</span>;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> handleClick<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">e</span>:Event = <span style="color: #000000; font-weight: bold;">null</span> <span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> playing <span style="color: #66cc66;">&#41;</span>
				removeEventListener<span style="color: #66cc66;">&#40;</span> Event.<span style="color: #006600;">ENTER_FRAME</span> , enterframe <span style="color: #66cc66;">&#41;</span>;
			<span style="color: #b1b100;">else</span>
				addEventListener<span style="color: #66cc66;">&#40;</span> Event.<span style="color: #006600;">ENTER_FRAME</span> , enterframe <span style="color: #66cc66;">&#41;</span>;
			playing = <span style="color: #66cc66;">!</span>playing;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> enterframe<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">e</span>:Event=<span style="color: #000000; font-weight: bold;">null</span> <span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
			draw<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">time</span>:<span style="color: #0066CC;">Number</span>=<span style="color: #cc66cc;">0</span>;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> maxr:<span style="color: #0066CC;">Number</span>=<span style="color: #cc66cc;">64.0</span>;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> canvas:Bitmap;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> distance<span style="color: #66cc66;">&#40;</span>ax:<span style="color: #0066CC;">Number</span>,ay:<span style="color: #0066CC;">Number</span>,az:<span style="color: #0066CC;">Number</span>,bx:<span style="color: #0066CC;">Number</span>,by:<span style="color: #0066CC;">Number</span>,bz:<span style="color: #0066CC;">Number</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Number</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> dx:<span style="color: #0066CC;">Number</span>=bx-ax , dy:<span style="color: #0066CC;">Number</span>=by-ay , dz:<span style="color: #0066CC;">Number</span>=bz-az;
		    <span style="color: #b1b100;">return</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sqrt</span><span style="color: #66cc66;">&#40;</span> dx<span style="color: #66cc66;">*</span>dx + dy<span style="color: #66cc66;">*</span>dy + dz<span style="color: #66cc66;">*</span>dz <span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> obj<span style="color: #66cc66;">&#40;</span>x:<span style="color: #0066CC;">Number</span>,y:<span style="color: #0066CC;">Number</span>,z:<span style="color: #0066CC;">Number</span>,t:<span style="color: #0066CC;">Number</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Number</span><span style="color: #66cc66;">&#123;</span>
		        <span style="color: #000000; font-weight: bold;">var</span> f:<span style="color: #0066CC;">Number</span>=<span style="color: #cc66cc;">1.0</span>;
		        f<span style="color: #66cc66;">*</span>=distance<span style="color: #66cc66;">&#40;</span>x,y,z,<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">cos</span><span style="color: #66cc66;">&#40;</span>t<span style="color: #66cc66;">&#41;</span>+<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span>t<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">0.2</span><span style="color: #66cc66;">&#41;</span>,<span style="color: #cc66cc;">0.3</span>,<span style="color: #cc66cc;">2.0</span>+<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">cos</span><span style="color: #66cc66;">&#40;</span>t<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">0.5</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">0.5</span><span style="color: #66cc66;">&#41;</span>;
		        f<span style="color: #66cc66;">*</span>=distance<span style="color: #66cc66;">&#40;</span>x,y,z,-<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">cos</span><span style="color: #66cc66;">&#40;</span>t<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">0.7</span><span style="color: #66cc66;">&#41;</span>,<span style="color: #cc66cc;">0.3</span>,<span style="color: #cc66cc;">2.0</span>+<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span>t<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">0.5</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
		        f<span style="color: #66cc66;">*</span>=distance<span style="color: #66cc66;">&#40;</span>x,y,z,-<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span>t<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">0.2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">0.5</span>,<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span>t<span style="color: #66cc66;">&#41;</span>,<span style="color: #cc66cc;">2.0</span><span style="color: #66cc66;">&#41;</span>;
		        f<span style="color: #66cc66;">*</span>=<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">cos</span><span style="color: #66cc66;">&#40;</span>y<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">cos</span><span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span>-<span style="color: #cc66cc;">0.1</span>-<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">cos</span><span style="color: #66cc66;">&#40;</span>z<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">7.0</span>+t<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">7.0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">cos</span><span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">3.0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">cos</span><span style="color: #66cc66;">&#40;</span>y<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">4.0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">0.1</span>;
		        <span style="color: #b1b100;">return</span> f;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">eval</span><span style="color: #66cc66;">&#40;</span>x:<span style="color: #0066CC;">Number</span>,y:<span style="color: #0066CC;">Number</span>,t:<span style="color: #0066CC;">Number</span><span style="color: #66cc66;">&#41;</span>:uint<span style="color: #66cc66;">&#123;</span>
		   <span style="color: #000000; font-weight: bold;">var</span> vx:<span style="color: #0066CC;">Number</span>=x<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">2.0</span>-<span style="color: #cc66cc;">1.0</span>; <span style="color: #000000; font-weight: bold;">var</span> vy:<span style="color: #0066CC;">Number</span>=-y<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">2.0</span>+<span style="color: #cc66cc;">1.0</span>;
		   <span style="color: #000000; font-weight: bold;">var</span> s:<span style="color: #0066CC;">Number</span>=<span style="color: #cc66cc;">0.4</span>;
		   <span style="color: #000000; font-weight: bold;">var</span> ox:<span style="color: #0066CC;">Number</span>=vx;var oy:<span style="color: #0066CC;">Number</span>=vy<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">1.25</span>;var oz:<span style="color: #0066CC;">Number</span>=<span style="color: #cc66cc;">0.0</span>;
		   <span style="color: #000000; font-weight: bold;">var</span> dx:<span style="color: #0066CC;">Number</span>=<span style="color: #66cc66;">&#40;</span>vx+<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">cos</span><span style="color: #66cc66;">&#40;</span>t<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">0.3</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">/</span><span style="color: #cc66cc;">64.0</span>;var dy:<span style="color: #0066CC;">Number</span>=vy<span style="color: #66cc66;">/</span><span style="color: #cc66cc;">64.0</span>;var dz:<span style="color: #0066CC;">Number</span>=<span style="color: #cc66cc;">1.0</span><span style="color: #66cc66;">/</span><span style="color: #cc66cc;">64.0</span>;
		   <span style="color: #000000; font-weight: bold;">var</span> tt:<span style="color: #0066CC;">Number</span>=<span style="color: #cc66cc;">0.0</span>;
		   <span style="color: #000000; font-weight: bold;">var</span> g:<span style="color: #0066CC;">Number</span>=<span style="color: #cc66cc;">1.0</span>;
		   <span style="color: #b1b100;">while</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>g<span style="color: #66cc66;">&amp;</span>gt;s<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&amp;</span>amp;<span style="color: #66cc66;">&amp;</span>amp;<span style="color: #66cc66;">&#40;</span>tt<span style="color: #66cc66;">&amp;</span>lt;<span style="color: #cc66cc;">375</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		         g=obj<span style="color: #66cc66;">&#40;</span>ox+dx<span style="color: #66cc66;">*</span>tt,oy+dy<span style="color: #66cc66;">*</span>tt,oz+dz<span style="color: #66cc66;">*</span>tt,t<span style="color: #66cc66;">&#41;</span>;
		         tt+=g<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">4</span>;
		   <span style="color: #66cc66;">&#125;</span>;
		   <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">color</span>:<span style="color: #0066CC;">Number</span>=<span style="color: #cc66cc;">0.0</span>;
		   <span style="color: #000000; font-weight: bold;">var</span> dxtt:<span style="color: #0066CC;">Number</span>=ox+dx<span style="color: #66cc66;">*</span>tt;var dytt:<span style="color: #0066CC;">Number</span>=oy+dy<span style="color: #66cc66;">*</span>tt;var dztt:<span style="color: #0066CC;">Number</span>=oz+dz<span style="color: #66cc66;">*</span>tt;
		   <span style="color: #000000; font-weight: bold;">var</span> objd:<span style="color: #0066CC;">Number</span>=obj<span style="color: #66cc66;">&#40;</span>dxtt,dytt,dztt,t<span style="color: #66cc66;">&#41;</span>;
		   <span style="color: #000000; font-weight: bold;">var</span> nx:<span style="color: #0066CC;">Number</span>=objd-obj<span style="color: #66cc66;">&#40;</span>dxtt+<span style="color: #cc66cc;">0.01</span>,dytt,dztt,t<span style="color: #66cc66;">&#41;</span>;
		   <span style="color: #000000; font-weight: bold;">var</span> ny:<span style="color: #0066CC;">Number</span>=objd-obj<span style="color: #66cc66;">&#40;</span>dxtt,dytt+<span style="color: #cc66cc;">0.01</span>,dztt,t<span style="color: #66cc66;">&#41;</span>;
		   <span style="color: #000000; font-weight: bold;">var</span> nz:<span style="color: #0066CC;">Number</span>=objd-obj<span style="color: #66cc66;">&#40;</span>dxtt,dytt,dztt+<span style="color: #cc66cc;">0.01</span>,t<span style="color: #66cc66;">&#41;</span>;
		   <span style="color: #000000; font-weight: bold;">var</span> d:<span style="color: #0066CC;">Number</span>=<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sqrt</span><span style="color: #66cc66;">&#40;</span>nx<span style="color: #66cc66;">*</span>nx+ny<span style="color: #66cc66;">*</span>ny+nz<span style="color: #66cc66;">*</span>nz<span style="color: #66cc66;">&#41;</span>;ny=ny<span style="color: #66cc66;">/</span>d;nz=nz<span style="color: #66cc66;">/</span>d;
		   <span style="color: #0066CC;">color</span>+=<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">max</span><span style="color: #66cc66;">&#40;</span>-<span style="color: #cc66cc;">0.5</span><span style="color: #66cc66;">*</span>nz,<span style="color: #cc66cc;">0.0</span><span style="color: #66cc66;">&#41;</span>+<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">max</span><span style="color: #66cc66;">&#40;</span>-<span style="color: #cc66cc;">0.5</span><span style="color: #66cc66;">*</span>ny+<span style="color: #cc66cc;">0.5</span><span style="color: #66cc66;">*</span>nz,<span style="color: #cc66cc;">0.0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">0.5</span>;
		   <span style="color: #000000; font-weight: bold;">var</span> r:<span style="color: #0066CC;">Number</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">color</span>+<span style="color: #cc66cc;">0.1</span><span style="color: #66cc66;">*</span>tt<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">0.025</span><span style="color: #66cc66;">&#41;</span>;
		   <span style="color: #000000; font-weight: bold;">var</span> g:<span style="color: #0066CC;">Number</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">color</span>+<span style="color: #cc66cc;">0.2</span><span style="color: #66cc66;">*</span>tt<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">0.025</span><span style="color: #66cc66;">&#41;</span>;
		   <span style="color: #000000; font-weight: bold;">var</span> b:<span style="color: #0066CC;">Number</span>=<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">color</span>+<span style="color: #cc66cc;">0.5</span><span style="color: #66cc66;">*</span>tt<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">0.025</span><span style="color: #66cc66;">&#41;</span>;
		   <span style="color: #b1b100;">return</span> <span style="color: #0066CC;">getRGB</span><span style="color: #66cc66;">&#40;</span>r,g,b<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">getRGB</span><span style="color: #66cc66;">&#40;</span>r:<span style="color: #0066CC;">Number</span>,g:<span style="color: #0066CC;">Number</span>,b:<span style="color: #0066CC;">Number</span><span style="color: #66cc66;">&#41;</span>:uint<span style="color: #66cc66;">&#123;</span>
		        <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>r<span style="color: #66cc66;">&amp;</span>lt;<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span> r=<span style="color: #cc66cc;">0</span>; <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>r<span style="color: #66cc66;">&amp;</span>gt;<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> r=<span style="color: #cc66cc;">1</span>;
		        <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>g<span style="color: #66cc66;">&amp;</span>lt;<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span> g=<span style="color: #cc66cc;">0</span>; <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>g<span style="color: #66cc66;">&amp;</span>gt;<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> g=<span style="color: #cc66cc;">1</span>;
		        <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>b<span style="color: #66cc66;">&amp;</span>lt;<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span> b=<span style="color: #cc66cc;">0</span>; <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>b<span style="color: #66cc66;">&amp;</span>gt;<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> b=<span style="color: #cc66cc;">1</span>;
			<span style="color: #b1b100;">return</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>r<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&amp;</span>amp;<span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&amp;</span>lt;<span style="color: #66cc66;">&amp;</span>lt; <span style="color: #cc66cc;">16</span> <span style="color: #66cc66;">|</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>g<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&amp;</span>amp;<span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&amp;</span>lt;<span style="color: #66cc66;">&amp;</span>lt; <span style="color: #cc66cc;">8</span> <span style="color: #66cc66;">|</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>b<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&amp;</span>amp;<span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> draw<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> canvas.<span style="color: #006600;">bitmapData</span> == <span style="color: #000000; font-weight: bold;">null</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				canvas.<span style="color: #006600;">bitmapData</span> = <span style="color: #000000; font-weight: bold;">new</span> BitmapData<span style="color: #66cc66;">&#40;</span> maxr , maxr , <span style="color: #000000; font-weight: bold;">false</span> , 0xffffff <span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
			<span style="color: #000000; font-weight: bold;">var</span> t:BitmapData = canvas.<span style="color: #006600;">bitmapData</span>;
			<span style="color: #0066CC;">time</span>+=<span style="color: #cc66cc;">0.1</span>;
			t.<span style="color: #006600;">lock</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		        <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> x:<span style="color: #0066CC;">Number</span>=<span style="color: #cc66cc;">0</span>;x<span style="color: #66cc66;">&lt;</span>maxr;x++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		                <span style="color: #000000; font-weight: bold;">var</span> px:<span style="color: #0066CC;">Number</span>=x<span style="color: #66cc66;">/</span>maxr;
		                <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> y:<span style="color: #0066CC;">Number</span>=<span style="color: #cc66cc;">0</span>;y<span style="color: #66cc66;">&lt;</span>maxr;y++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		                        <span style="color: #000000; font-weight: bold;">var</span> py:<span style="color: #0066CC;">Number</span>=y<span style="color: #66cc66;">/</span>maxr;
		                        t.<span style="color: #006600;">setPixel</span><span style="color: #66cc66;">&#40;</span> x , y , <span style="color: #0066CC;">eval</span><span style="color: #66cc66;">&#40;</span>px,py,<span style="color: #0066CC;">time</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>;
		                <span style="color: #66cc66;">&#125;</span>
		        <span style="color: #66cc66;">&#125;</span>
		   t.<span style="color: #006600;">unlock</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>;
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p><strong>Update:</strong> A quickly optimized version (nothing advanced really).</p>
<p>
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_1" width="128" height="128">
      <param name="movie" value="/wp-content/uploads/flash/MetaTunnel-optim-1.swf" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="/wp-content/uploads/flash/MetaTunnel-optim-1.swf" width="128" height="128">
      <!--<![endif]-->
        <p>The Flash plugin is required to view this object.</p>
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>
<br />
(You can switch quality in this version with key up or down).</p>


<p>Related posts:<ol><li><a href='http://blog.betabong.com/2009/04/17/metatunnel-with-pixel-bender/' rel='bookmark' title='Permanent Link: MetaTunnel with Pixel Bender'>MetaTunnel with Pixel Bender</a></li><li><a href='http://blog.betabong.com/2009/03/05/javascript-canvas-3d/' rel='bookmark' title='Permanent Link: 3D Point Cloud with Javascript and Canvas'>3D Point Cloud with Javascript and Canvas</a></li><li><a href='http://blog.betabong.com/2008/10/09/how-about-we-go-fuck-instead/' rel='bookmark' title='Permanent Link: How about we go fuck instead?'>How about we go fuck instead?</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2009/04/13/metatunnel-1k-demo-as-vs-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>swffit &#8211; pro &amp; contra</title>
		<link>http://blog.betabong.com/2009/04/07/swffit-pro-con/</link>
		<comments>http://blog.betabong.com/2009/04/07/swffit-pro-con/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 12:04:52 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=232</guid>
		<description><![CDATA[swffit is a great little library that smartly resizes your flash movie depending on its content. It gives you native scrollbars for free whenever your content is longer than the browser window. Another strategy is to always have the flash movie fill 100% the browser window and let Flash do the scrolling.
There are a lot [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="swffit" src="http://swffit.millermedeiros.com/img/swffit_logo.gif" alt="" width="123" height="92" style="float: right;"/><a href="http://swffit.millermedeiros.com/">swffit</a> is a great little library that smartly resizes your flash movie depending on its content. It gives you <strong>native scrollbars for free</strong> whenever your content is longer than the browser window. Another strategy is to always have the flash movie fill 100% the browser window and let Flash do the scrolling.</p>
<p>There are a lot of <strong>PRO</strong> for the <a href="http://swffit.millermedeiros.com/">swffit</a> way:</p>
<ul>
<li>It gives users the <strong>system scrollbar</strong>. Users are used to that, they know what it means, they know how to deal with it.</li>
<li><strong>Mouse wheels just work! </strong>It&#8217;s scrolling a standard browser window, no magic at all: great! (You have to use <a href="http://blog.pixelbreaker.com/flash/as30-mousewheel-on-mac-os-x/">this</a> otherwise)</li>
<li>It&#8217;s <strong>easy</strong> to implement.</li>
</ul>
<p>Still there is a <strong>CONTRA</strong> side:</p>
<ul>
<li>You&#8217;ll <strong>need javascript</strong> (well, that&#8217;s no biggy at all – as a matter of fact, you&#8217;re just pretty in the desert without javascript in todays websites)</li>
<li>You have no control over <strong>scrollbar design</strong> (neither a biggy – as another matter of fact I consider that a good thing anyway, but don&#8217;t tell the brand agency ;-)</li>
<li>It has <strong>performance disadvantages</strong>. Well that I consider a biggy! Because the movie will always be in its full height, it will do rerender for the entire area!! Imagine long page with animations here and there: Given Flash&#8217;s «not so fast» rendering engine, this can become a huge performance killer. Let me give you a quick&#8217;n'dirty example: <a href="/wp-content/uploads/flash/SWF_Size_Performance/performance-killer-percent.html">Full Height</a> compared to <a href="/wp-content/uploads/flash/SWF_Size_Performance/performance-killer-wsize.html">«Cropped» to Window Height</a> (just resize browser window to real small size to see the big difference).</li>
</ul>
<p><strong>Conclusion:</strong> I&#8217;m just glad I found one good reason to not declare my internal scrollbar like in <a href="http://www.betabong.com">www.betabong.com</a> as complete bullshit ;-)</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2009/04/07/swffit-pro-con/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Method Closure Owner (arguments.caller)</title>
		<link>http://blog.betabong.com/2009/03/26/method-closure-owner/</link>
		<comments>http://blog.betabong.com/2009/03/26/method-closure-owner/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 12:48:40 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=214</guid>
		<description><![CDATA[In AS1 and AS2 we had access to arguments.caller within a function/method scope. This is not the case anymore in AS3. I wonder why. And I wonder why I can&#8217;t find a workaround, because everything should be there under the hood:
ActionScript 3.0 enables a method closure to automatically remember its original object instance (from Adobe ActionScript 3.0 [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>In AS1 and AS2 we had access to arguments.caller within a function/method scope. This is not the case anymore in AS3. I wonder why. And I wonder why I can&#8217;t find a workaround, because everything should be there under the hood:</p>
<blockquote><p><em>ActionScript</em> 3.0 enables a <em>method closure</em> to automatically remember its original object instance (from <a href="http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3_Flex/WS5b3ccc516d4fbf351e63e3d118a9b90204-7ff3.html">Adobe ActionScript 3.0 * Core language features</a>)</p></blockquote>
<p>Method Closure are quite a wonderful thing: They come in handy in many situations, especially when it comes to event listening and handling. And they stay kind of wonderful in terms of «hidden magic». Hidden magic is all that stuff never officially explained by Adobe. These things often are very core to the language (e.g. exact processing order, frame splitting, event handling), but Adobe decided – certainly for reasons – to only let us see and manipulate what common developers are to see and manipulate.</p>
<p>Still, I&#8217;d like to have to possibility to dig deeper if I want. If there is a MethodClosure Type, why is there no way to access its properties. After all it holds a reference to its owner. I may wanna know what the owner is! I admit that its not that there aren&#8217;t many obvious reasons why I would do so, but there are! For example:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> <span style="color: #0066CC;">width</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">Number</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">caller</span> : <span style="color: #66cc66;">*</span> = MethodClosure<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">arguments</span>.<span style="color: #0066CC;">callee</span> <span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">owner</span>;
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> isChild<span style="color: #66cc66;">&#40;</span> <span style="color: #0066CC;">caller</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">return</span> widthValueForChild;
	<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">return</span> actualWidthValue;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>May be may be there is a way.. I&#8217;m not a hardcore byte array hacker, but if I find a solution (or explanation why o why), I&#8217;ll update this post.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2009/03/26/method-closure-owner/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>CSS Alternative to Left Float</title>
		<link>http://blog.betabong.com/2009/02/25/css-alternative-to-left-float/</link>
		<comments>http://blog.betabong.com/2009/02/25/css-alternative-to-left-float/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 21:19:54 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=196</guid>
		<description><![CDATA[I used to use float:left a lot for my layouts. But it can be a pain in the ass for several reasons – which of them the main may be that the surrounding box doesn&#8217;t surround it (so you&#8217;d have to come up with some stupid clearfloat-hacks).
Anyway, I recently discovered somewhere a great alternative (you can [...]


Related posts:<ol><li><a href='http://blog.betabong.com/2009/04/22/bbml-presentation/' rel='bookmark' title='Permanent Link: BBML Presentation at SFUG'>BBML Presentation at SFUG</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I used to use float:left a lot for my layouts. But it can be a pain in the ass for several reasons – which of them the main may be that the surrounding box doesn&#8217;t surround it (so you&#8217;d have to come up with some stupid clearfloat-hacks).</p>
<p>Anyway, I recently discovered somewhere a great alternative (you can call it hack too, but then everything a little fancy that&#8217;s supposed to work with IE is a hack, isn&#8217;t it?).</p>
<p>So while until now I&#8217;d have something like this:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.inlinebox</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span>  <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">49</span>%</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">min-height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">100px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>the new method goes like this:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.inlinebox</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> -moz-inline-stack<span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> inline-<span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">;</span>
	zoom<span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">1</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">*</span><span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">inline</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">49</span>%</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">min-height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">100px</span><span style="color: #00AA00;">;</span>
	_height<span style="color: #00AA00;">:</span> <span style="color: #933;">100px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>That&#8217;s looks quite more complex. And it certainly is. But it works like a charm on all browsers I&#8217;ve tested (IE7, Safari, FF3). _height, zoom and *display are some crappy IE hacks obviously. The zoom attribute by the way is quite interesting, as it activates the hidden (IE only) CSS attribute hasLayout.</p>
<p>It also has some very nice benefits, like the alignement to the bottom&#8230;</p>
<h3>Example</h3>
<p><a class="download" href='http://blog.betabong.com/wp-content/uploads/2009/02/example-inlineblock.html'  target="_blank">View Example</a></p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">	&lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
		.codeexample span {
			background-color: #68B6FF;
			-webkit-box-reflect: below 1px -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(0.8, transparent), to(rgba(255, 255, 255, 0.8)));
			-moz-border-radius: 5px;
			-webkit-border-radius: 5px;
			margin-right: 10px;
			margin-bottom: 40px;
			width: 140px;
			padding: 10px;
		}
		.inlinebox1 {
			display: block;
			float:  left;
			min-height: 32px;
		}
&nbsp;
		.inlinebox2 {
			display: -moz-inline-stack;
			display: inline-block;
			vertical-align: bottom;
			zoom: 1;
			*display: inline;
			min-height: 32px;
			_height: 32px;
		}
&nbsp;
	&lt;/style&gt;
&nbsp;
	&lt;div class=&quot;codeexample&quot;&gt;
		&lt;h3&gt;Float: left&lt;/h3&gt;
		&lt;span class=&quot;inlinebox1&quot;&gt;Inlinebox&lt;/span&gt;
		&lt;span class=&quot;inlinebox1&quot;&gt;Inlinebox&lt;/span&gt;
		&lt;span class=&quot;inlinebox1&quot;&gt;Inlinebox Inlinebox Inlinebox Inlinebox Inlinebox Inlinebox&lt;/span&gt;
		&lt;span class=&quot;inlinebox1&quot;&gt;Inlinebox&lt;/span&gt;
		&lt;span class=&quot;inlinebox1&quot;&gt;Inlinebox&lt;/span&gt;
		&lt;span class=&quot;inlinebox1&quot;&gt;Inlinebox&lt;/span&gt;
		&lt;span class=&quot;inlinebox1&quot;&gt;Inlinebox&lt;/span&gt;
&nbsp;
		&lt;h3 style=&quot;clear: both;&quot;&gt;Inline Block&lt;/h3&gt;
		&lt;span class=&quot;inlinebox2&quot;&gt;Inlinebox&lt;/span&gt;
		&lt;span class=&quot;inlinebox2&quot;&gt;Inlinebox&lt;/span&gt;
		&lt;span class=&quot;inlinebox2&quot;&gt;Inlinebox Inlinebox Inlinebox Inlinebox Inlinebox Inlinebox&lt;/span&gt;
		&lt;span class=&quot;inlinebox2&quot;&gt;Inlinebox&lt;/span&gt;
		&lt;span class=&quot;inlinebox2&quot;&gt;Inlinebox&lt;/span&gt;
		&lt;span class=&quot;inlinebox2&quot;&gt;Inlinebox&lt;/span&gt;
		&lt;span class=&quot;inlinebox2&quot;&gt;Inlinebox&lt;/span&gt;
	&lt;/div&gt;</pre></div></div>



<p>Related posts:<ol><li><a href='http://blog.betabong.com/2009/04/22/bbml-presentation/' rel='bookmark' title='Permanent Link: BBML Presentation at SFUG'>BBML Presentation at SFUG</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2009/02/25/css-alternative-to-left-float/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>VW Microbus Concept. Why not?</title>
		<link>http://blog.betabong.com/2008/12/09/vw-microbus-concept-why-not/</link>
		<comments>http://blog.betabong.com/2008/12/09/vw-microbus-concept-why-not/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 13:01:36 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[car]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=175</guid>
		<description><![CDATA[When I first saw – years ago – a pic of this concept car, I thought yeah, that may be the right direction, intelligent design with a subtle retro touch (just linking to its successful history, I&#8217;d say). But they&#8217;ve never actually built it. And I wonder why..








No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>When I first saw – years ago – a pic of this <a href="http://en.wikipedia.org/wiki/Volkswagen_Microbus_Concept">concept car</a>, I thought yeah, that may be the right direction, intelligent design with a subtle retro touch (just linking to its <a href="http://en.wikipedia.org/wiki/Volkswagen_Microbus">successful history</a>, I&#8217;d say). But they&#8217;ve never actually built it. And I wonder why..</p>
<p><a href="http://blog.betabong.com/wp-content/uploads/2008/12/2001-vw-microbus-concept-side-1280x960.jpg" rel="lightbox[175]"><img class="alignnone size-full wp-image-176" title="2001-vw-microbus-concept-side-1280x960" src="http://blog.betabong.com/wp-content/uploads/2008/12/2001-vw-microbus-concept-side-1280x960.jpg" alt="" width="512" height="384" /></a><br />
<span id="more-175"></span><br />
<a href="http://blog.betabong.com/wp-content/uploads/2008/12/torqueomata2916.jpg" rel="lightbox[175]"><img class="alignnone size-full wp-image-177" title="torqueomata2916" src="http://blog.betabong.com/wp-content/uploads/2008/12/torqueomata2916.jpg" alt="" width="512" height="384" /></a></p>
<p><a href="http://blog.betabong.com/wp-content/uploads/2008/12/torqueomata2912.jpg" rel="lightbox[175]"><img class="alignnone size-full wp-image-178" title="torqueomata2912" src="http://blog.betabong.com/wp-content/uploads/2008/12/torqueomata2912.jpg" alt="" width="512" height="384" /></a></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="512" height="385" 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://www.youtube.com/v/Y18IaolWYcc&amp;hl=en&amp;fs=1" /><embed type="application/x-shockwave-flash" width="512" height="385" src="http://www.youtube.com/v/Y18IaolWYcc&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="512" height="385" 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://www.youtube.com/v/RR4SHPiuaE4&amp;hl=en&amp;fs=1" /><embed type="application/x-shockwave-flash" width="512" height="385" src="http://www.youtube.com/v/RR4SHPiuaE4&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2008/12/09/vw-microbus-concept-why-not/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>edel*flash 2.0</title>
		<link>http://blog.betabong.com/2008/10/30/edelflash-v2/</link>
		<comments>http://blog.betabong.com/2008/10/30/edelflash-v2/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 09:28:17 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=139</guid>
		<description><![CDATA[
Edel*flash, a swiss site dedicated to swiss flash excellence, got redesigned as a wordpress blog. I think it&#8217;s a real nice and wise update. Well done, Simurai!
On a side note, first award in v2 is Hugman, designed and concepted by my friend Tobi (also well done!)


No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p><a title="Edel*flash" style="float: right; display: block; margin-left: 20px; margin-bottom: 20px;" href="http://edelflash.ch"><img class="size-medium wp-image-140  alignright" title="edelflash_logo" src="http://blog.betabong.com/wp-content/uploads/2008/10/edelflash_logo.png" alt="Edel*flash" width="200" height="80" /></a></p>
<p><a title="Edel*flash" href="http://edelflash.ch">Edel*flash</a>, a swiss site dedicated to swiss flash excellence, got redesigned as a wordpress blog. I think it&#8217;s a real nice and wise update. Well done, Simurai!</p>
<p>On a side note, first award in v2 is Hugman, designed and concepted by my friend Tobi (also well done!)</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2008/10/30/edelflash-v2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How about we go fuck instead?</title>
		<link>http://blog.betabong.com/2008/10/09/how-about-we-go-fuck-instead/</link>
		<comments>http://blog.betabong.com/2008/10/09/how-about-we-go-fuck-instead/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 23:44:50 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[sound]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=135</guid>
		<description><![CDATA[
A sweet nice canvas demo with some (pseudo?) 3D. A lot of code for a little story. But I like it. You&#8217;ll gonna need a fast computer ;)


Related posts:3D Point Cloud with Javascript and CanvasMetatunnel 1k Demo: AS vs. JS


Related posts:<ol><li><a href='http://blog.betabong.com/2009/03/05/javascript-canvas-3d/' rel='bookmark' title='Permanent Link: 3D Point Cloud with Javascript and Canvas'>3D Point Cloud with Javascript and Canvas</a></li><li><a href='http://blog.betabong.com/2009/04/13/metatunnel-1k-demo-as-vs-js/' rel='bookmark' title='Permanent Link: Metatunnel 1k Demo: AS vs. JS'>Metatunnel 1k Demo: AS vs. JS</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.betabong.com/wp-content/uploads/2008/10/picture-6.png" rel="lightbox[135]"><img class="alignnone size-full wp-image-136" title="Canvas Demo" src="http://blog.betabong.com/wp-content/uploads/2008/10/picture-6.png" alt="" width="512" height="308" /></a></p>
<p><a href="http://antisocial.demozoo.org/demo.html">A sweet nice canvas demo</a> with some (pseudo?) 3D. A lot of code for a little story. But I like it. You&#8217;ll gonna need a fast computer ;)</p>


<p>Related posts:<ol><li><a href='http://blog.betabong.com/2009/03/05/javascript-canvas-3d/' rel='bookmark' title='Permanent Link: 3D Point Cloud with Javascript and Canvas'>3D Point Cloud with Javascript and Canvas</a></li><li><a href='http://blog.betabong.com/2009/04/13/metatunnel-1k-demo-as-vs-js/' rel='bookmark' title='Permanent Link: Metatunnel 1k Demo: AS vs. JS'>Metatunnel 1k Demo: AS vs. JS</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2008/10/09/how-about-we-go-fuck-instead/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finnish Disco Lesson</title>
		<link>http://blog.betabong.com/2008/10/06/finnish-disco-lesson/</link>
		<comments>http://blog.betabong.com/2008/10/06/finnish-disco-lesson/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 19:55:25 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[dance]]></category>
		<category><![CDATA[movie]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=131</guid>
		<description><![CDATA[
Those moves &#8211; love &#8216;em! (found at badana)


No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="520" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/PeQpwQ1xgbI&amp;hl=en&amp;fs=0&amp;color1=0xeeeeee&amp;color2=0xeeeeee&amp;ap=%2526fmt%3D18" /><embed type="application/x-shockwave-flash" width="520" height="400" src="http://www.youtube.com/v/PeQpwQ1xgbI&amp;hl=en&amp;fs=0&amp;color1=0xeeeeee&amp;color2=0xeeeeee&amp;ap=%2526fmt%3D18" wmode="transparent"></embed></object></p>
<p>Those moves &#8211; love &#8216;em! (found at <a href="http://harrharr.wordpress.com/2008/10/02/finnish-disco-lesson/">badana</a>)</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2008/10/06/finnish-disco-lesson/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Freitag rolling for 15 years</title>
		<link>http://blog.betabong.com/2008/09/19/freitag-rolling-for-15-years/</link>
		<comments>http://blog.betabong.com/2008/09/19/freitag-rolling-for-15-years/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 15:52:27 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[freitag]]></category>
		<category><![CDATA[party]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=107</guid>
		<description><![CDATA[
15 years ago Markus and Daniel Freitag created their first Freitag bag, made of used truck tarpaulins and some other recycled stuff. So today&#8217;s the big party, and I&#8217;ll be there of course. The party will be public starting from 11 pm @ F-abric in the Maag Areal (Zurich, of course). I sure will already [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.betabong.com/wp-content/uploads/2008/09/20080919-img_87991.jpg" rel="lightbox[107]"><img class="alignnone size-full wp-image-109" title="20080919-img_87991" src="http://blog.betabong.com/wp-content/uploads/2008/09/20080919-img_87991.jpg" alt="" width="512" height="512" /></a></p>
<p>15 years ago Markus and Daniel Freitag created their first Freitag bag, made of used truck tarpaulins and some other recycled stuff. So today&#8217;s the big party, and I&#8217;ll be there of course. The party will be public starting from 11 pm @ F-abric in the Maag Areal (Zurich, of course). I sure will already be in quite a good shape at that time ;-) Give me a hoorraaaa!!</p>
<p><a href="http://blog.betabong.com/wp-content/uploads/2008/09/20080919-img_8799.jpg" rel="lightbox[107]"></a><a style="margin-right: 20px;" href="http://blog.betabong.com/wp-content/uploads/2008/09/20080919-img_8803.jpg" rel="lightbox[107]"><img class="alignnone wp-image-106" title="20080919-img_8803" src="http://blog.betabong.com/wp-content/uploads/2008/09/20080919-img_8803-300x300.jpg" alt="" width="246" height="246" /></a><a href="http://blog.betabong.com/wp-content/uploads/2008/09/20080919-img_87981.jpg" rel="lightbox[107]"><img class="alignnone size-medium wp-image-108" title="20080919-img_87981" src="http://blog.betabong.com/wp-content/uploads/2008/09/20080919-img_87981-300x300.jpg" alt="" width="246" height="246" /></a></p>
<p><strong>Update:</strong> <a href="http://www.freitag.ch/shop/FREITAG/page/news_content_page/detail.jsf">Party-Pics here</a></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2008/09/19/freitag-rolling-for-15-years/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sheeps</title>
		<link>http://blog.betabong.com/2008/08/28/sheeps/</link>
		<comments>http://blog.betabong.com/2008/08/28/sheeps/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 23:35:19 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[svp]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=97</guid>
		<description><![CDATA[We had a nice little advertising campaign not long ago in Switzerland. Today I stumbled across this website and.. is this bloody ad so much stamped into my head that I can&#8217;t look at sheeps anymore without thinking of it, or do those sheeps have some intruded similarity? See for yourself:
 


http://www.colorspretty.com/fluff/home/


No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>We had a nice little advertising campaign not long ago in Switzerland. Today I stumbled across this website and.. is this bloody ad so much stamped into my head that I can&#8217;t look at sheeps anymore without thinking of it, or do those sheeps have some intruded similarity? See for yourself:</p>
<p> </p>
<div><img style="-webkit-user-select: none;" src="file:///Users/sev/Downloads/sheeps.jpg" alt="" /><a href="http://blog.betabong.com/wp-content/uploads/2008/08/sheeps.jpg" rel="lightbox[97]"></a><a href="http://blog.betabong.com/wp-content/uploads/2008/08/sheeps1.jpg" rel="lightbox[97]"><img class="alignnone size-medium wp-image-99" title="sheeps1" src="http://blog.betabong.com/wp-content/uploads/2008/08/sheeps1-300x151.jpg" alt="" width="300" height="151" /></a></div>
<div></div>
<div><a href="http://www.colorspretty.com/fluff/home/">http://www.colorspretty.com/fluff/home/</a></div>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2008/08/28/sheeps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multitouch Finger Fun</title>
		<link>http://blog.betabong.com/2008/08/27/multitouch-progress/</link>
		<comments>http://blog.betabong.com/2008/08/27/multitouch-progress/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 21:22:48 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[multitouch]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=94</guid>
		<description><![CDATA[
It&#8217;s very cool and interesting to see that kind of things. Much progress has been made with this kind of multitouch interface, both from a technical and a user interface view. Things got much more responsive and start to make sense.. with that kind of data (especially data that&#8217;s hard to manage with keyboard). So, [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="520" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/9zGDNFpOMcA&amp;hl=en&amp;fs=0&amp;color1=0xeeeeee&amp;color2=0xeeeeee&amp;ap=%2526fmt%3D18" /><embed type="application/x-shockwave-flash" width="520" height="400" src="http://www.youtube.com/v/9zGDNFpOMcA&amp;hl=en&amp;fs=0&amp;color1=0xeeeeee&amp;color2=0xeeeeee&amp;ap=%2526fmt%3D18" wmode="transparent"></embed></object></p>
<p>It&#8217;s very cool and interesting to see that kind of things. Much progress has been made with this kind of multitouch interface, both from a technical and a user interface view. Things got much more responsive and start to make sense.. <strong>with that kind of data</strong> (especially data that&#8217;s hard to manage with keyboard). So, in my opinion, it&#8217;s a great replacement for most things that we do with the mouse&#8230; but hey, in a productive environement, we deal a lot with language input, don&#8217;t we?</p>
<p>And while a virtual keyboard on an iPhone makes sense (switching languages, improving functionality via sw update, not taking any space where not much space is), i&#8217;m less than sure that this would work on a desktop device. Sure, writing on a keyboard is nothing easy to learn, but once you have it, you can write much faster than by hand, and everybody who has to write a lot knows about the importance of <strong>some good tactile feedback</strong>.</p>
<p>Anyway, I&#8217;m more than interested where this will lead to. I&#8217;m pretty sure we&#8217;ll first see this kind of things in (productive) environments that have to deal with (3D) imagery (like in medicine). Hmm hmm.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2008/08/27/multitouch-progress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone OS 2.0 &#8211; great new feature</title>
		<link>http://blog.betabong.com/2008/08/25/iphone-os-20-great-new-feature/</link>
		<comments>http://blog.betabong.com/2008/08/25/iphone-os-20-great-new-feature/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 20:16:39 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=89</guid>
		<description><![CDATA[Today I stumbled across a cool feature in the new iPhone software. What makes it even cooler is the fact that I invented it myself – God aka Mr. Jobs has just listened!
So what&#8217;s the deal? When you press the headset button twice while listening to music, it will skip to the next song. That&#8217;s [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.betabong.com/wp-content/uploads/2008/08/ipod-doubleclick.jpg" rel="lightbox[89]"><img class="alignleft size-full wp-image-90" style="margin-right: 20px; margin-bottom: 20px; float: left;" title="ipod-doubleclick" src="http://blog.betabong.com/wp-content/uploads/2008/08/ipod-doubleclick.jpg" alt="" width="200" height="186" /></a>Today I stumbled across a cool feature in the new iPhone software. What makes it even cooler is the fact that I invented it myself – God aka Mr. Jobs has just listened!</p>
<p>So what&#8217;s the deal? When you press the headset button twice while listening to music, it will skip to the next song. That&#8217;s it. Isn&#8217;t that just awesome?! I think so :-)</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2008/08/25/iphone-os-20-great-new-feature/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Design is &#8230;</title>
		<link>http://blog.betabong.com/2008/07/23/design-is/</link>
		<comments>http://blog.betabong.com/2008/07/23/design-is/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 12:12:50 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[quote]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=47</guid>
		<description><![CDATA[«Design is not just what it looks like and feels like. Design is how it works.»
A quotation I really like because it&#8217;s to the point of how I think about and how I try to do my work. And&#8230; who said it? Yes, God almighty, Mr. Steve Jobs, 2003.
I&#8217;ve also found some others I like:
 
«The [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<h4>«Design is not just what it looks like and feels like. Design is how it works.»</h4>
<p>A quotation I really like because it&#8217;s to the point of how I think about and how I try to do my work. And&#8230; who said it? <span id="more-47"></span>Yes, God almighty, Mr. Steve Jobs, 2003.</p>
<p>I&#8217;ve also found some others I like:</p>
<p> </p>
<h4>«The ability to simplify means to eliminate the unnecessary so that the necessary may speak.»</h4>
<p><a href="http://www.hanshofmann.org/">Hans Hofmann</a></p>
<p> </p>
<h4>«The greatest challenge to any thinker is stating the problem in a way that will allow a solution.»</h4>
<p><a href="http://www.writersmugs.com/quote/Bertrand_Russell/26.html">Bertrand Russell</a></p>
<p> </p>
<h4>«A picture is worth a thousand words. An interface is worth a thousand pictures.»</h4>
<p><a href="http://www.cs.umd.edu/~ben/">Ben Shneiderman, 2003</a></p>
<p> </p>
<h4>«I’ve been amazed at how often those outside the discipline of design assume that what designers do is decoration. Good design is problem solving.»</h4>
<p><a href="http://www.veen.com/artsci/">Jeffery Veen, 2000</a></p>
<p> </p>
<h4>«Making the simple complicated is commonplace; making the complicated simple, awesomely simple, that&#8217;s creativity.»</h4>
<p><a href="http://www.mingusmingusmingus.com/bio/mingusbio.html">Charles Mingus</a></p>
<p> </p>
<h4>«Form follows function-that has been misunderstood. Form and function should be one, joined in a spiritual union.»</h4>
<p><a href="http://www.sitepoint.com/article/369">Frank Lloyd Wright</a></p>
<p> </p>
<h4>«The details are not the details. They make the design.»</h4>
<p><a href="http://www.eamesoffice.com/">Charles Eames</a></p>
<p> </p>
<p>The following one is a good one for many of my customers ;-)</p>
<p> </p>
<h4>«A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away.»</h4>
<p><a href="http://www.lukew.com/ff/entry.asp?274">Antoine De Saint-Exupery</a></p>
<p> </p>
<p>And another one from the almighty – I may not agree 100%, but it&#8217;s certainly a funny one:</p>
<p> </p>
<h4>«It&#8217;s really hard to design products by focus groups. A lot of times, people don&#8217;t know what they want until you show it to them.»</h4>
<p><a href="http://www.wired.com/news/culture/mac/0,70512-0.html">Steve Jobs, 1998</a></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2008/07/23/design-is/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Photoshop CS3 for iPhone</title>
		<link>http://blog.betabong.com/2008/07/18/photoshop-cs3-for-iphone/</link>
		<comments>http://blog.betabong.com/2008/07/18/photoshop-cs3-for-iphone/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 14:27:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=35</guid>
		<description><![CDATA[I *have* to update to 2.0 so I can install this from the App Store!

Love you too :-)


No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>I *have* to update to 2.0 so I can install this from the App Store!</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="520" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/eXpbGaIkPlw&amp;hl=en&amp;fs=0&amp;color1=0xeeeeee&amp;color2=0xeeeeee&amp;ap=%2526fmt%3D18" /><embed type="application/x-shockwave-flash" width="520" height="400" src="http://www.youtube.com/v/eXpbGaIkPlw&amp;hl=en&amp;fs=0&amp;color1=0xeeeeee&amp;color2=0xeeeeee&amp;ap=%2526fmt%3D18" wmode="transparent"></embed></object></p>
<p>Love you too :-)</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2008/07/18/photoshop-cs3-for-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WPtouch and WPhone</title>
		<link>http://blog.betabong.com/2008/07/18/wptouch-and-wphone/</link>
		<comments>http://blog.betabong.com/2008/07/18/wptouch-and-wphone/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 00:52:54 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=31</guid>
		<description><![CDATA[A must have for any iPhone sensitive wordpress blog owner: WPhone and WPtouch
Especially WPhone is cool IMHO. WPtouch is cool too, but I think the iPhone renders most web pages pretty pretty anyway, and also.. it seems a bit slow too me. Still: very cool!
(see: it&#8217;s not a freakin&#8217; beta! ha! watch my claim!)


No related [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><img alt="" src="http://www.jacopolupi.com/blog/wp-content/wptouch-10.jpg" title="WPtouch" class="alignright" width="244" height="424" style="border:none; float:left;" />A must have for any iPhone sensitive wordpress blog owner: <a href="http://wordpress.org/extend/plugins/wphone/installation/">WPhone</a> and <a href="http://www.bravenewcode.com/wptouch/">WPtouch</a></p>
<p>Especially WPhone is cool IMHO. WPtouch is cool too, but I think the iPhone renders most web pages pretty pretty anyway, and also.. it seems a bit slow too me. Still: very cool!</p>
<p>(see: it&#8217;s not a freakin&#8217; beta! ha! watch my claim!)</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2008/07/18/wptouch-and-wphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Garbage Collector and Dictionary</title>
		<link>http://blog.betabong.com/2008/07/18/garbage-collector-and-dictionary/</link>
		<comments>http://blog.betabong.com/2008/07/18/garbage-collector-and-dictionary/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 23:59:11 +0000</pubDate>
		<dc:creator>betabong</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=27</guid>
		<description><![CDATA[Weak references are cool. No. they are substantial. I don&#8217;t know how we lived without them before. Anyway, they made our (we = flash developers) life better. I use them very often, when adding event listeners or caching with dictionaries (and I&#8217;m sure I&#8217;d use them even more often if there was any more possibilty [...]


Related posts:<ol><li><a href='http://blog.betabong.com/2008/07/21/nested-inner-functions-can-be-evil/' rel='bookmark' title='Permanent Link: Nested inner functions can be evil'>Nested inner functions can be evil</a></li><li><a href='http://blog.betabong.com/2008/09/26/weak-method-closure/' rel='bookmark' title='Permanent Link: Weak Method Closure'>Weak Method Closure</a></li><li><a href='http://blog.betabong.com/2008/09/23/e4x-string-parser/' rel='bookmark' title='Permanent Link: E4X String Parser'>E4X String Parser</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://dispatchevent.org/mims/creating-weak-references-in-as3/">Weak references</a> are cool. No. they are substantial. I don&#8217;t know how we lived without them before. Anyway, they made our (we = flash developers) life better. I use them very often, when adding event listeners or caching with dictionaries (and I&#8217;m sure I&#8217;d use them even more often if there was any more possibilty provided).</p>
<p>Still you can struggle over unexpected behaviour.<span id="more-27"></span> First of all there is no guarantee that objects are <a href="http://www.adobe.com/devnet/flashplayer/articles/garbage_collection.html">garbaged</a> (well it&#8217;s probably not a memory thing.. more about unreferencing, what the heck do I know?!) as soon as there aren&#8217;t any references left. But, in my experience, weak references work quite good.. I didn&#8217;t have to worry about them living for some more seconds or so. But. But! They&#8217;ll live on at least until next rendering step, meaning until actionscript execution is done.</p>
<p>I struggled over this with a validation manager, that keeps tracks of unvalidated objects in a weak dictionary. So when object unvalidates, it tells so to the validator who will validate before rendering update. Now let&#8217;s assume the object shall be destroyed in the mean time – it will unlisten to dispatchers, it will unlink sprites and so on.. but may be it&#8217;s already registered in the validator. So it&#8217;ll stay alive to fullfill next validation processing. (Which led into uncaught errors due to null references in the destroyed object in my example.)</p>
<p>I could of course unregister at the validator at destroy. But.. hmm.. I want my engine to be as fast and robust as possible and unregistering can be difficult and time consuming (especially when 1000 objects will be destroyed). So what I&#8217;ve done is, I set a flag &#8216;destroyed&#8217; when destruction is complete, and on each validation I&#8217;ll check for that flag:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> validateDisplay<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> _render_dirty <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #66cc66;">!</span>destroyed <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    render<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
  <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Checking against a boolean flag is fast as hell, so that&#8217;s cool. And also, it won&#8217;t happen often (it was really a rare exceptional case actually). So besides weak references in AS3 we still have to be careful as hell about memory leaks. By the way, the profiler in Flex Pro is just fucking great :-)</p>
<p>On a side note: Any one any info on MethodClosure objects lying around in memory?? I know what they are used for, but it seems they live and live and live&#8230;.</p>


<p>Related posts:<ol><li><a href='http://blog.betabong.com/2008/07/21/nested-inner-functions-can-be-evil/' rel='bookmark' title='Permanent Link: Nested inner functions can be evil'>Nested inner functions can be evil</a></li><li><a href='http://blog.betabong.com/2008/09/26/weak-method-closure/' rel='bookmark' title='Permanent Link: Weak Method Closure'>Weak Method Closure</a></li><li><a href='http://blog.betabong.com/2008/09/23/e4x-string-parser/' rel='bookmark' title='Permanent Link: E4X String Parser'>E4X String Parser</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2008/07/18/garbage-collector-and-dictionary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RA D IOHEA_D HO_US E OF/ CARD_S</title>
		<link>http://blog.betabong.com/2008/07/17/ra-d-iohea_d-ho_us-e-of-card_s/</link>
		<comments>http://blog.betabong.com/2008/07/17/ra-d-iohea_d-ho_us-e-of-card_s/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 12:48:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash & more]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[radiohead]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=25</guid>
		<description><![CDATA[It doesn&#8217;t happen that often that I see stuff that amazes me from a professional and private perspective in so many ways. Well, it happened today when I saw:

http://code.google.com/creative/radiohead/viewer.html (Flash)
http://code.google.com/creative/radiohead/ (see video in better quality, making of and more&#8230;)


No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>It doesn&#8217;t happen that often that I see stuff that amazes me from a professional and private perspective in so many ways. Well, it happened today when I saw:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="520" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/8nTFjVm9sTQ&amp;hl=en&amp;fs=0&amp;color1=0xeeeeee&amp;color2=0xeeeeee&amp;ap=%2526fmt%3D18" /><embed type="application/x-shockwave-flash" width="520" height="400" src="http://www.youtube.com/v/8nTFjVm9sTQ&amp;hl=en&amp;fs=0&amp;color1=0xeeeeee&amp;color2=0xeeeeee&amp;ap=%2526fmt%3D18"></embed></object></p>
<p><a title="Radiohead Interactive 3D Viewer" href="http://code.google.com/creative/radiohead/viewer.html">http://code.google.com/creative/radiohead/viewer.html</a> (Flash)</p>
<p><a title="The starting page" href="http://code.google.com/creative/radiohead/">http://code.google.com/creative/radiohead/</a> (see video in better quality, making of and more&#8230;)</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2008/07/17/ra-d-iohea_d-ho_us-e-of-card_s/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Betaruss</title>
		<link>http://blog.betabong.com/2008/07/16/betaruss/</link>
		<comments>http://blog.betabong.com/2008/07/16/betaruss/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 10:45:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[cyrillic]]></category>
		<category><![CDATA[russian]]></category>

		<guid isPermaLink="false">http://blog.betabong.com/?p=19</guid>
		<description><![CDATA[севэрин кляус
бетабонг кляус креацыён
Yeah, i&#8217;m learning the cyrillic alphabet!


No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<div style="font-size:30px; line-height: 40px;">севэрин кляус<br />
бетабонг кляус креацыён</div>
<p>Yeah, i&#8217;m learning the cyrillic alphabet!</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.betabong.com/2008/07/16/betaruss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
