<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Valentin Simonov's Flash Blog</title>
	
	<link>http://va.lent.in/blog</link>
	<description>Making things move since 1999</description>
	<lastBuildDate>Mon, 19 Jul 2010 08:09:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/vsfb" /><feedburner:info uri="vsfb" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Ten tips for building better Adobe AIR applications</title>
		<link>http://feedproxy.google.com/~r/vsfb/~3/PXzWr7s5DIg/</link>
		<comments>http://va.lent.in/blog/2010/07/19/ten-tips-for-building-better-adobe-air-applications/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 08:09:34 +0000</pubDate>
		<dc:creator>Valentin</dc:creator>
				<category><![CDATA[to view]]></category>
		<category><![CDATA[AIR]]></category>

		<guid isPermaLink="false">http://va.lent.in/blog/?p=373</guid>
		<description><![CDATA[Usually I dislike posts titled &#8220;10/20/30 whatever for/to whatever whatever&#8220;. Why 10? Can there be more? Why you chose these ones? But this post about AIR applications seems to be really useful. At least I got some interesting stuff from the article. It is definitely a good read if (even if not) you are developing [...]]]></description>
			<content:encoded><![CDATA[<p>Usually I dislike posts titled &#8220;<em>10/20/30 whatever for/to whatever whatever</em>&#8220;. Why 10? Can there be more? Why you chose these ones?</p>
<p>But <a href="http://www.flashmagazine.com/tutorials/detail/ten_tips_for_building_better_adobe_air_applications/">this post</a> about AIR applications seems to be really useful. At least I got some interesting stuff from the article. It is definitely a good read if (even if not) you are developing AIR applications.</p>
<img src="http://feeds.feedburner.com/~r/vsfb/~4/PXzWr7s5DIg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://va.lent.in/blog/2010/07/19/ten-tips-for-building-better-adobe-air-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://va.lent.in/blog/2010/07/19/ten-tips-for-building-better-adobe-air-applications/</feedburner:origLink></item>
		<item>
		<title>initInjector 0.2.1b</title>
		<link>http://feedproxy.google.com/~r/vsfb/~3/BmwxZwJmMEc/</link>
		<comments>http://va.lent.in/blog/2010/07/17/initinjector-0-2-1b/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 23:07:01 +0000</pubDate>
		<dc:creator>Valentin</dc:creator>
				<category><![CDATA[to view]]></category>
		<category><![CDATA[apparat]]></category>
		<category><![CDATA[init]]></category>
		<category><![CDATA[InitInjector]]></category>
		<category><![CDATA[Scala]]></category>

		<guid isPermaLink="false">http://va.lent.in/blog/?p=365</guid>
		<description><![CDATA[Scala version 2.8.0 has been finally released, Joa updated apparat amazingly fast and v.0.2.1b is just a stable Scala 2.8.0 compiled application. http://va.lent.in/projects/swf/initInjector/initInjector.0.2.1b.zip InitInjector is a little Scala app which allows you to move code from SWF constructor to a private init method and subscribe it to ADDED_TO_STAGE. This fixes an error of stage being [...]]]></description>
			<content:encoded><![CDATA[<p>Scala version 2.8.0 has been finally released, Joa updated apparat amazingly fast and v.0.2.1b is just a stable Scala 2.8.0 compiled application.</p>
<p><a href="http://va.lent.in/projects/swf/initInjector/initInjector.0.2.1b.zip">http://va.lent.in/projects/swf/initInjector/initInjector.0.2.1b.zip</a></p>
<p><a href="http://va.lent.in/blog/initinjector/">InitInjector</a> is a little Scala app which allows you to move code  from SWF constructor to a private init method and subscribe it to  ADDED_TO_STAGE. This fixes an error of stage being null in loaded SWFs  constructor.</p>
<p><strong>0.2.1b:</strong></p>
<ul>
<li>Recompiled for Scala 2.8.0</li>
</ul>
<p><strong>0.2b:</strong></p>
<ul>
<li>Fixed several bugs</li>
<li>Added <strong>-p</strong> option which also injects init method to parent  class constructor</li>
<li>Thanks to <a href="http://blog.joa-ebert.com/">Joa Ebert</a> who modified <a href="http://code.google.com/p/apparat/">apparat</a> for my needs I  got rid of half of my code</li>
</ul>
<p>Thanks to everyone for reporting bugs.</p>
<img src="http://feeds.feedburner.com/~r/vsfb/~4/BmwxZwJmMEc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://va.lent.in/blog/2010/07/17/initinjector-0-2-1b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://va.lent.in/blog/2010/07/17/initinjector-0-2-1b/</feedburner:origLink></item>
		<item>
		<title>How to fix Flash Builder broken workspace.</title>
		<link>http://feedproxy.google.com/~r/vsfb/~3/-qHYz1P0B2o/</link>
		<comments>http://va.lent.in/blog/2010/07/12/how-to-fix-flash-builder-broken-workspace/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 12:30:55 +0000</pubDate>
		<dc:creator>Valentin</dc:creator>
				<category><![CDATA[to think]]></category>
		<category><![CDATA[.snap]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Freeze]]></category>
		<category><![CDATA[Workspace]]></category>

		<guid isPermaLink="false">http://va.lent.in/blog/?p=363</guid>
		<description><![CDATA[From time to time I get weird Flash Builder/OS X crashes which lead to Flash Builder (Eclipse) freeze or hang up during startup. You think you have to recreate your workspace every time after a crash, but no, if that happens there&#8217;s a solution. So, if Flash Builder freezes trying to load your workspace what [...]]]></description>
			<content:encoded><![CDATA[<p>From time to time I get weird Flash Builder/OS X crashes which lead to Flash Builder (Eclipse) freeze or hang up during startup. You think you have to recreate your workspace every time after a crash, but no, if that happens there&#8217;s a solution.</p>
<p>So, if Flash Builder freezes trying to load your workspace what you need to do to fix it is to navigate to <strong>.metadata/.plugins/org.eclipse.core.resources</strong> and delete the file named <strong>.snap</strong>. That&#8217;s it. No more rearranging views and reimporting projects!</p>
<img src="http://feeds.feedburner.com/~r/vsfb/~4/-qHYz1P0B2o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://va.lent.in/blog/2010/07/12/how-to-fix-flash-builder-broken-workspace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://va.lent.in/blog/2010/07/12/how-to-fix-flash-builder-broken-workspace/</feedburner:origLink></item>
		<item>
		<title>More on faster MD5</title>
		<link>http://feedproxy.google.com/~r/vsfb/~3/qTc5mPF0TgI/</link>
		<comments>http://va.lent.in/blog/2010/07/10/more-on-faster-md5/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 09:50:24 +0000</pubDate>
		<dc:creator>Valentin</dc:creator>
				<category><![CDATA[to view]]></category>
		<category><![CDATA[Blooddy]]></category>
		<category><![CDATA[Library]]></category>
		<category><![CDATA[MD5]]></category>

		<guid isPermaLink="false">http://va.lent.in/blog/?p=360</guid>
		<description><![CDATA[All of you who liked the first version of famous algorithms on steroids library from blooddy will be pleased by the new release. This time it&#8217;s even faster and more stable. The author got rid of some bugs too (like this one). Also at last he hosts the file himself so I finally can cut [...]]]></description>
			<content:encoded><![CDATA[<p>All of you who liked <a href="http://va.lent.in/blog/2010/06/23/100x-times-faster-md5-and-more/">the first version</a> of famous algorithms on steroids library from blooddy will be pleased by the <a href="http://www.blooddy.by/en/">new release</a>. This time it&#8217;s even faster and more stable. The author got rid of some bugs too (<a href="http://bugs.adobe.com/jira/browse/FP-4912">like this one</a>).</p>
<p>Also at last he hosts the file himself so I finally can cut my traffic bills by half.</p>
<img src="http://feeds.feedburner.com/~r/vsfb/~4/qTc5mPF0TgI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://va.lent.in/blog/2010/07/10/more-on-faster-md5/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://va.lent.in/blog/2010/07/10/more-on-faster-md5/</feedburner:origLink></item>
		<item>
		<title>Where’s my byte, dude??!</title>
		<link>http://feedproxy.google.com/~r/vsfb/~3/y1W_-xpcEG4/</link>
		<comments>http://va.lent.in/blog/2010/07/10/wheres-my-byte-dude/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 09:45:44 +0000</pubDate>
		<dc:creator>Valentin</dc:creator>
				<category><![CDATA[to think]]></category>
		<category><![CDATA[Blooddy]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[ByteArray]]></category>

		<guid isPermaLink="false">http://va.lent.in/blog/?p=358</guid>
		<description><![CDATA[While working on his famous library blooddy stuck upon what appeared to be a flash bug. Sometimes an empty ByteArray is not THAT empty at all. Basically if you write something to it first you can get non-zero bytes in your new ByteArray other than you just wrote yourself. bytes.writeUnsignedInt( 10 ); bytes.length = LENGTH; [...]]]></description>
			<content:encoded><![CDATA[<p>While working on his famous library <a href="http://www.blooddy.by/en/">blooddy</a> stuck upon what appeared to be a <a href="http://bugs.adobe.com/jira/browse/FP-4912">flash bug</a>. Sometimes an empty ByteArray is not THAT empty at all.</p>
<p>Basically if you write something to it first you can get non-zero bytes in your new ByteArray other than you just wrote yourself.</p>
<pre class="brush: as3;">bytes.writeUnsignedInt( 10 );
 bytes.length = LENGTH;</pre>
<p>But if you set the length first everything runs smoothly. Be careful!</p>
<img src="http://feeds.feedburner.com/~r/vsfb/~4/y1W_-xpcEG4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://va.lent.in/blog/2010/07/10/wheres-my-byte-dude/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://va.lent.in/blog/2010/07/10/wheres-my-byte-dude/</feedburner:origLink></item>
		<item>
		<title>Tired of people using stage in constructor?</title>
		<link>http://feedproxy.google.com/~r/vsfb/~3/JekICTIkOxc/</link>
		<comments>http://va.lent.in/blog/2010/06/29/tired-of-people-using-stage-in-constructor/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 22:16:46 +0000</pubDate>
		<dc:creator>Valentin</dc:creator>
				<category><![CDATA[to think]]></category>
		<category><![CDATA[apparat]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[InitInjector]]></category>
		<category><![CDATA[null]]></category>
		<category><![CDATA[Scala]]></category>
		<category><![CDATA[Stage]]></category>

		<guid isPermaLink="false">http://va.lent.in/blog/?p=352</guid>
		<description><![CDATA[Recently someone in ruFlash user group asked if it&#8217;s possible to get rid of errors when loading a SWF which thinks it is the only SWF in the world and there totally must be stage available in its constructor. As you already understood such SWFs fail with Null Access errors. TypeError: Error #1009: Cannot access [...]]]></description>
			<content:encoded><![CDATA[<p>Recently someone in ruFlash user group asked if it&#8217;s possible to get rid of errors when loading a SWF which thinks it is the only SWF in the world and there totally must be stage available in its constructor. As you already understood such SWFs fail with Null Access errors.</p>
<blockquote><p><em>TypeError: Error #1009: Cannot access a property or method of a null  object reference.</em></p></blockquote>
<p>This task looks like a great exercise for my epic Scala skills I got trying to understand famous <a href="http://www.joa-ebert.com/">Joa</a>&#8216;s code.</p>
<p>Thanks to <a href="http://code.google.com/p/apparat/">apparat</a> and Scala I managed to code a small app which rewrites SWF files and moves all constructor code to a private method which is later subscribed to ADDED_TO_STAGE event.</p>
<blockquote><p><em><strong>usage</strong>: java -jar initInjector.jar [-c] &lt;from.swf&gt; [to.swf]&#8220;)<br />
-c — check for references to stage in constructor<br />
If [to.swf] is not specified resulting SWF is saved to &lt;from.swf&gt;</em></p></blockquote>
<p>The 0.1 version fails to move exceptions though. Trying to grasp that bytecode exceptions magic atm.</p>
<p>Here&#8217;s the application: <a href="http://va.lent.in/projects/swf/initInjector/initInjector.0.1.zip">initInjector.zip</a></p>
<img src="http://feeds.feedburner.com/~r/vsfb/~4/JekICTIkOxc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://va.lent.in/blog/2010/06/29/tired-of-people-using-stage-in-constructor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://va.lent.in/blog/2010/06/29/tired-of-people-using-stage-in-constructor/</feedburner:origLink></item>
		<item>
		<title>100x times faster MD5 and more</title>
		<link>http://feedproxy.google.com/~r/vsfb/~3/OKpgcaDHL-s/</link>
		<comments>http://va.lent.in/blog/2010/06/23/100x-times-faster-md5-and-more/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 08:55:02 +0000</pubDate>
		<dc:creator>Valentin</dc:creator>
				<category><![CDATA[to code]]></category>
		<category><![CDATA[Algorithm]]></category>
		<category><![CDATA[as3corelib]]></category>
		<category><![CDATA[Base64]]></category>
		<category><![CDATA[JPEG]]></category>
		<category><![CDATA[MD5]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[PNG]]></category>

		<guid isPermaLink="false">http://va.lent.in/blog/?p=344</guid>
		<description><![CDATA[Update: Get more recent version of the library here. Update: I updated the zip with LGPL MIT license file. The original author basically says &#8220;use wherever you want&#8221; which looks like mostly LGPL MIT, right? Yes, haXe was used to create the SWC but I don&#8217;t know if we can get the source or not. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update</strong>: <span style="color: #ff0000;"><strong>Get more recent version of the library <a href="http://va.lent.in/blog/2010/07/10/more-on-faster-md5/">here</a>.</strong></span></p>
<p><strong>Update</strong>: <span style="color: #ff0000;"><em>I updated the zip with <span style="text-decoration: line-through;">LGPL</span> MIT license file. The original author basically says &#8220;use wherever you want&#8221; which looks like mostly <span style="text-decoration: line-through;">LGPL</span> MIT, right? Yes, haXe was used to create the SWC but I don&#8217;t know if we can get the source or not. Anyway I hope you understand from the code below how to use the library.</em></span></p>
<p>My dear friend <a href="http://www.flasher.ru/forum/blog.php?b=203">BlooDHounD</a> has recently released an SWC with highly optimized MD5, Base64, CRC32, JPEG, PNG algorithms. Compared to <a href="http://code.google.com/p/as3corelib">as3corelib</a> we get the following results:</p>
<blockquote><p>by.blooddy.crypto.MD5.hashBytes: <strong>40</strong><br />
com.adobe.crypto.MD5.hashBytes:  4483</p>
<p>by.blooddy.crypto.Base64.encode: <strong>115</strong><br />
mx.utils.Base64Encoder:          1635</p>
<p>by.blooddy.crypto.Base64.decode: <strong>141</strong><br />
mx.utils.Base64Decoder:          2762</p>
<p>by.blooddy.crypto.image.JPEGEncoder.encode: <strong>447</strong><br />
com.adobe.images.JPGEncoder:                3496</p>
<p>by.blooddy.crypto.image.PNG24Encoder.encode: <strong>538</strong><br />
com.adobe.images.PNGEncoder.encode:          1423</p></blockquote>
<p>Here&#8217;s the benchmark source:</p>
<pre class="brush: as3;">package {

	import by.blooddy.crypto.Base64;
	import by.blooddy.crypto.MD5;
	import by.blooddy.crypto.image.JPEGEncoder;
	import by.blooddy.crypto.image.PNG24Encoder;

	import com.adobe.crypto.MD5;
	import com.adobe.images.JPGEncoder;
	import com.adobe.images.PNGEncoder;

	import flash.display.BitmapData;
	import flash.display.Sprite;
	import flash.text.TextField;
	import flash.utils.ByteArray;
	import flash.utils.getTimer;

	import mx.utils.Base64Decoder;
	import mx.utils.Base64Encoder;

	[SWF( scriptTimeLimit=&quot;255&quot; )]
	public class test extends Sprite {

		/**
		 * Constructor
		 */
		public function test() {
			super();

			var text:String = '';
			var t:Number;

			// BitmapData for tests
			var bmp:BitmapData = new BitmapData( 1024, 1024, true, 0xFFFF0000 );
			bmp.noise( int( Math.random() * int.MAX_VALUE ), 0, 0xFF, 7, false ); // генерируем шум

			// ByteArray for tests
			var bytes:ByteArray = bmp.getPixels( bmp.rect );

			// MD5 test
			t = getTimer();
			by.blooddy.crypto.MD5.hashBytes( bytes );
			text += '\nby.blooddy.crypto.MD5.hashBytes: ' + ( getTimer() - t ); // 40

			t = getTimer();
			com.adobe.crypto.MD5.hashBytes( bytes );
			text += '\ncom.adobe.crypto.MD5.hashBytes: ' + ( getTimer() - t ); // 4483

			// Base64 encode test
			t = getTimer();
			var s1:String = by.blooddy.crypto.Base64.encode( bytes, true );
			text += '\nby.blooddy.crypto.Base64.encode: ' + ( getTimer() - t ); // 115

			t = getTimer();
			var e:Base64Encoder = new Base64Encoder();
			e.encodeBytes( bytes );
			var s2:String = e.flush();
			text += '\nmx.utils.Base64Encoder: ' + ( getTimer() - t ); // 1635

			// Base64 decode test
			t = getTimer();
			by.blooddy.crypto.Base64.decode( s1 );
			text += '\nby.blooddy.crypto.Base64.decode: ' + ( getTimer() - t ); // 141

			t = getTimer();
			var d:Base64Decoder = new Base64Decoder();
			d.decode( s2 );
			d.flush();
			text += '\nmx.utils.Base64Decoder: ' + ( getTimer() - t ); // 2762

			// JPEG test
			t = getTimer();
			by.blooddy.crypto.image.JPEGEncoder.encode( bmp, 60 );
			text += '\nby.blooddy.crypto.image.JPEGEncoder.encode: ' + ( getTimer() - t ); // 447

			t = getTimer();
			( new com.adobe.images.JPGEncoder( 60 ) ).encode( bmp );
			text += '\ncom.adobe.images.JPGEncoder: ' + ( getTimer() - t ); // 3496

			// PNG test
			t = getTimer();
			by.blooddy.crypto.image.PNG24Encoder.encode( bmp );
			text += '\nby.blooddy.crypto.image.PNG24Encoder.encode: ' + ( getTimer() - t ); // 538

			t = getTimer();
			com.adobe.images.PNGEncoder.encode( bmp );
			text += '\ncom.adobe.images.PNGEncoder.encode: ' + ( getTimer() - t ); // 1423

			var tf:TextField = new TextField();
			tf.autoSize = 'left';
			tf.text = text;
			super.addChild( tf );

		}

	}

}</pre>
<p>I know that he is too shy to tell you guys about his results (8<br />
But they are definitely worth sharing.</p>
<p>You can download the SWC <span style="text-decoration: line-through;">here</span> (look up at the update section).</p>
<img src="http://feeds.feedburner.com/~r/vsfb/~4/OKpgcaDHL-s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://va.lent.in/blog/2010/06/23/100x-times-faster-md5-and-more/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<feedburner:origLink>http://va.lent.in/blog/2010/06/23/100x-times-faster-md5-and-more/</feedburner:origLink></item>
		<item>
		<title>AVM2Overview lies</title>
		<link>http://feedproxy.google.com/~r/vsfb/~3/x5AOrltq90E/</link>
		<comments>http://va.lent.in/blog/2010/06/18/avm2overview-lies/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 09:34:04 +0000</pubDate>
		<dc:creator>Valentin</dc:creator>
				<category><![CDATA[to code]]></category>
		<category><![CDATA[to think]]></category>

		<guid isPermaLink="false">http://va.lent.in/blog/?p=341</guid>
		<description><![CDATA[It says: One of the entries in the ABC file is an array of script_info entries (see the next chapter). Each of these entries contains a reference to an initialization method for the script and a set of traits to be defined in the script’s environment. The last entry in that array is the entry [...]]]></description>
			<content:encoded><![CDATA[<p>It says:</p>
<blockquote><p>One of the entries in the ABC file is an array of script_info entries (see the next chapter). Each of these entries contains a reference to an initialization method for the script and a set of traits to be defined in the script’s environment. The last entry in that array is the entry point for the ABC file; that is, <strong>the last entry’s initialization method contains the first bytecode that’s run when the ABC file is executed</strong>.</p></blockquote>
<p>That&#8217;s apparently is not true. I keep getting different classes in the last entry except the main document class which I need. Thanks to <a href="http://twitter.com/joa">@joa</a> for pointing me to SymbolClass tag which contains an array to map Classes to Library Symbols in SWF files. And the very first class there seems to be the Document class I need.</p>
<img src="http://feeds.feedburner.com/~r/vsfb/~4/x5AOrltq90E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://va.lent.in/blog/2010/06/18/avm2overview-lies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://va.lent.in/blog/2010/06/18/avm2overview-lies/</feedburner:origLink></item>
		<item>
		<title>The world desperately needs flash</title>
		<link>http://feedproxy.google.com/~r/vsfb/~3/P1INOFAoKUQ/</link>
		<comments>http://va.lent.in/blog/2010/05/31/the-world-desperately-needs-flash/#comments</comments>
		<pubDate>Sun, 30 May 2010 19:54:34 +0000</pubDate>
		<dc:creator>Valentin</dc:creator>
				<category><![CDATA[to view]]></category>
		<category><![CDATA[Smokescreen]]></category>

		<guid isPermaLink="false">http://va.lent.in/blog/?p=339</guid>
		<description><![CDATA[Just read an article about Smokescreen, which &#8220;It runs entirely in the browser, reads in SWF binaries, unzips them (in native JS), extracts images and embedded audio and turns them in to base64 encoded data:uris, then stitches the vector graphics back together as animated SVG.&#8221; for iPhone/iPad. Wonder what people can do just to see [...]]]></description>
			<content:encoded><![CDATA[<p>Just read an article about Smokescreen, which &#8220;<em>It runs entirely in the browser, reads in SWF binaries, unzips them  (in native JS), extracts images and embedded audio and turns them in to  base64 encoded data:uris, then stitches the vector graphics back  together as animated SVG.&#8221;</em> for iPhone/iPad.</p>
<p>Wonder what people can do just to see flash in iPad.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" 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/1vEbAfp_Aok&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/1vEbAfp_Aok&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>This thingie can only render flash banners. And we all know that banners is the most important and advanced thing of all flash stuff.</p>
<img src="http://feeds.feedburner.com/~r/vsfb/~4/P1INOFAoKUQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://va.lent.in/blog/2010/05/31/the-world-desperately-needs-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://va.lent.in/blog/2010/05/31/the-world-desperately-needs-flash/</feedburner:origLink></item>
		<item>
		<title>Protecting flash games</title>
		<link>http://feedproxy.google.com/~r/vsfb/~3/yCSsgaUIROE/</link>
		<comments>http://va.lent.in/blog/2010/05/17/protecting-flash-games/#comments</comments>
		<pubDate>Mon, 17 May 2010 08:07:15 +0000</pubDate>
		<dc:creator>Valentin</dc:creator>
				<category><![CDATA[to view]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[FlashGamm]]></category>
		<category><![CDATA[Hackers]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[Slides]]></category>

		<guid isPermaLink="false">http://va.lent.in/blog/?p=337</guid>
		<description><![CDATA[Last Thursday I spoke at FlashGamm 2010 Moscow about how to protect your game from hackers. Though, slides alone can&#8217;t substitute my long monologue, I uploaded the presentation (in Russian and English) here. I hope it will be useful for you guys.]]></description>
			<content:encoded><![CDATA[<p>Last Thursday I spoke at <a href="http://www.flashgamm.com/moscow2010/en/">FlashGamm 2010 Moscow</a> about how to protect your game from hackers. Though, slides alone can&#8217;t substitute my long monologue, I uploaded the presentation (in Russian and English) <a href="http://onenterframe.ru/fg2010/how_to_protect_flash_games.pdf">here</a>. I hope it will be useful for you guys.</p>
<img src="http://feeds.feedburner.com/~r/vsfb/~4/yCSsgaUIROE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://va.lent.in/blog/2010/05/17/protecting-flash-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://va.lent.in/blog/2010/05/17/protecting-flash-games/</feedburner:origLink></item>
	</channel>
</rss>
