<?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>ZBlog</title>
	
	<link>http://blog.zarate.tv</link>
	<description>I have 4 words for ya...</description>
	<lastBuildDate>Mon, 08 Feb 2010 22:22:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/zarate/zblog" /><feedburner:info uri="zarate/zblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Build tools with haXe</title>
		<link>http://feedproxy.google.com/~r/zarate/zblog/~3/FYlLCXOW2dg/</link>
		<comments>http://blog.zarate.tv/2010/02/08/build-tools-with-haxe/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 21:40:21 +0000</pubDate>
		<dc:creator>Zarate</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[haxe]]></category>

		<guid isPermaLink="false">http://blog.zarate.tv/?p=1451</guid>
		<description><![CDATA[Remember how I&#8217;ve been lately pestering about how cool is learning to program in Bash? Well, I&#8217;m not retracting, but last couple of days I&#8217;ve been doing the same thing but using haXe + Neko + Xcross. And I like it better.
How is this better than the others?
I think it&#8217;s better than Bash because haXe [...]]]></description>
			<content:encoded><![CDATA[<p>Remember how I&#8217;ve been lately pestering about how cool is learning to program in Bash? Well, I&#8217;m not retracting, but last couple of days I&#8217;ve been doing the same thing but using <a href="http://haxe.org/">haXe</a> + <a href="http://nekovm.org/">Neko</a> + <a href="http://code.google.com/p/xcross/">Xcross</a>. And I like it better.</p>
<p><strong>How is this better than the others?</strong></p>
<p>I think it&#8217;s better than Bash because haXe is an OO language and it&#8217;s fully crossplatform (no bash in Win unless you use <a href="http://www.cygwin.com/">Cygwin</a>). I also think it&#8217;s better than <a href="http://ant.apache.org/">Ant</a> because you get rid of bloody-fatty Java as a dependency. </p>
<p><strong>How is this done</strong></p>
<p>In a nutshell: you program in haXe, compile to Neko and then pack to a native app using Xcross. Piece of cake! </p>
<p>Let&#8217;s say you need to read some config file, compile your AS using MTASC and copy the output file to several places.  Let&#8217;s assume a simple config file like this:</p>
<div class="codesnip-container" >tv.zarate.wadus.Main.hx<br />
wadus.swf</div>
<p>And that we pass it to our tool like this:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">
<ol>
<li class="li1">
<div class="de1">tool config.cfg</div>
</li>
</ol>
</div>
</div>
<p>Now the pseudo-code:</p>
<div class="codesnip-container" >
<div class="actionscript codesnip" style="font-family:monospace;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// Get application args, and use the first one</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> args : Array<span class="sy0">&lt;</span>String<span class="sy0">&gt;</span> = xa.<span class="me1">Application</span>.<span class="me1">getArgs</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> configPath : <span class="kw3">String</span> = args<span class="br0">&#91;</span>0<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Read the content of the config file and parse it</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> content : <span class="kw3">String</span> = xa.<span class="me1">File</span>.<span class="me1">read</span><span class="br0">&#40;</span>configPath<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> lines : Array<span class="sy0">&lt;</span>String<span class="sy0">&gt;</span> = content.<span class="kw3">split</span><span class="br0">&#40;</span><span class="st0">&quot;<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> <span class="kw2">class</span> : <span class="kw3">String</span> = lines<span class="br0">&#91;</span>0<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> swf : <span class="kw3">String</span> = lines<span class="br0">&#91;</span>1<span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Call MTASC passing the output swf and the class read from the config file</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> args = <span class="br0">&#91;</span><span class="st0">&quot;-swf&quot;</span>, swf, <span class="st0">&quot;-main&quot;</span>, <span class="kw2">class</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> p = <span class="kw2">new</span> xa.<span class="me1">Process</span><span class="br0">&#40;</span>mtascPath, args<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> output = p.<span class="me1">getOutput</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> <span class="kw3">error</span> = p.<span class="me1">getError</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> exitCode = p.<span class="me1">exitCode</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Check MTASC exit code, if not 0, something went wrong</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span>exitCode <span class="sy0">!</span>= 0<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;xa.<span class="me1">Utils</span>.<span class="kw3">print</span><span class="br0">&#40;</span><span class="kw3">error</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;xa.<span class="me1">Utils</span>.<span class="kw3">print</span><span class="br0">&#40;</span>output<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
</div>
<p>And now compiling:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">
<ol>
<li class="li1">
<div class="de1">haxe <span class="re5">-neko</span> wadus.n <span class="re5">-main</span> Wadus.hx</div>
</li>
<li class="li1">
<div class="de1">haxelib run xcross builder.n</div>
</li>
</ol>
</div>
</div>
<p>That should be it; we&#8217;ve read and parsed a config file passed as a parameter and then called MTASC handling the result. Then compiled to native Win, Mac and Linux apps. </p>
<p>As I said, that&#8217;s pseudo code, on a real life app you would definitely need more error handling or might have a more complex config file (maybe xml, try parsing xml in Bash!), etc., but since haXe is a really similar to Flash or JS, it feels very natural to me. Granted, you can do the same in Bash, but to my eyes is much more complicated.</p>
<p>Some more notes:</p>
<ul>
<li>From a Neko app you can call any other tool on your system. That includes SVN, Ant, GIT, grep&#8230; Whatever is there, you can call it.</li>
<li>Apps created with Xcross embed the Neko VM so they have zero dependencies (unless you use any of the tools described above, of course).</li>
</ul>
<p>We are investigating this route instead of Ant for our build scripts. You might think it&#8217;s kind of reinventing the Ant wheel, but we have the feeling that this is going to be <strong>much</strong> faster and flexible to our needs. </p>
<p>We&#8217;ll see : )</p>
<p>PS: I&#8217;ve used the xa.* package in the code, that&#8217;s a little project I&#8217;m working on to provide a simpler haXe API for backends. This is a spin-off of HippoHX and it&#8217;s not ready yet, but if you are interested you can follow the development in <a href="http://github.com/zarate/xapi">GitHub</a>.</p>
<img src="http://feeds.feedburner.com/~r/zarate/zblog/~4/FYlLCXOW2dg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.zarate.tv/2010/02/08/build-tools-with-haxe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.zarate.tv/2010/02/08/build-tools-with-haxe/</feedburner:origLink></item>
		<item>
		<title>ustwo™ is looking for Flash devs</title>
		<link>http://feedproxy.google.com/~r/zarate/zblog/~3/GzcWhwVKD04/</link>
		<comments>http://blog.zarate.tv/2010/02/01/ustwo%e2%84%a2-is-looking-for-flash-devs/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 21:33:34 +0000</pubDate>
		<dc:creator>Zarate</dc:creator>
				<category><![CDATA[ustwo]]></category>

		<guid isPermaLink="false">http://blog.zarate.tv/?p=1302</guid>
		<description><![CDATA[We are looking for a in-house permanent Flash dev to join the team! You don&#8217;t need to be a senior, but definitely you need to be more from the programmer side of things.
Our tools set is pretty standard: FDT, MTASC, SWFMill, PureMVC, Ant, command line scripts, haXe&#8230;
WARNING: You MUST be willing to do AS2. We [...]]]></description>
			<content:encoded><![CDATA[<p>We are looking for a in-house permanent Flash dev to join the team! You don&#8217;t need to be a senior, but definitely you need to be more from the programmer side of things.</p>
<p>Our tools set is pretty standard: FDT, MTASC, SWFMill, PureMVC, Ant, <a href="http://blog.zarate.tv/2010/01/21/make-your-console-fly-with-parallel-processing/">command line</a> <a href="http://blog.zarate.tv/2009/12/12/counting-your-lines-of-actionscript/">scripts</a>, haXe&#8230;</p>
<p><strong>WARNING</strong>: You MUST be willing to do AS2. We know it&#8217;s a pain in the neck (tell us about it) but until FP 10.1 / FashLite 4 is a reality on mobile devices we are stuck with crappy AS2. Believe me, we would LOVE to ditch it, but that&#8217;s just not a possibility at the moment.</p>
<p>As for the things we do at ustwo™: a ton of Flash stuff for mobile devices, also quite a few iPhone apps, we were part of the private beta team that tested the Flash to iPhone CS5 exporter, we work with some big names, some not so well known names, we do Android apps&#8230; Check out the <a href="http://blog.ustwo.co.uk/">blog</a> for latest info.</p>
<p>ustwo™ London is based in Shoreditch and we also have offices in Malmo (Sweden). We are a bunch of nice people, we put music for the whole studio (despite the occasional cheese shite played by <a href="http://twitter.com/millsustwo">Mills</a> we have good music on), we play footy once a week, we have a beer fridge&#8230; but we also work our asses off and push to keep delivering awesome stuff.</p>
<p>So, check out <a href="http://www.ustwo.co.uk/">ustwo™&#8217;s website</a> and if you feel like it, <a href="mailto:jobs@ustwo.co.uk">get in touch</a>.</p>
<img src="http://feeds.feedburner.com/~r/zarate/zblog/~4/GzcWhwVKD04" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.zarate.tv/2010/02/01/ustwo%e2%84%a2-is-looking-for-flash-devs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.zarate.tv/2010/02/01/ustwo%e2%84%a2-is-looking-for-flash-devs/</feedburner:origLink></item>
		<item>
		<title>Make your console fly with Parallel Processing</title>
		<link>http://feedproxy.google.com/~r/zarate/zblog/~3/Bt0492ppIBk/</link>
		<comments>http://blog.zarate.tv/2010/01/21/make-your-console-fly-with-parallel-processing/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 09:12:51 +0000</pubDate>
		<dc:creator>Zarate</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://blog.zarate.tv/?p=1431</guid>
		<description><![CDATA[I reckon this is kind of a niche thing, but interesting nonetheless. 
Our current project at ustwo™ is a PureMVC-multicore application. Sounds really fancy, but it&#8217;s only a SWF loading SWFs.
To compile those SWFs we have some scripts using Ant, MTASC, SWFMill, Rhino and other tools. Updating from SVN and compiling 18 modules was taking [...]]]></description>
			<content:encoded><![CDATA[<p>I reckon this is kind of a niche thing, but interesting nonetheless. </p>
<p>Our current project at ustwo™ is a PureMVC-multicore application. Sounds really fancy, but it&#8217;s only a SWF loading SWFs.</p>
<p>To compile those SWFs we have some scripts using Ant, MTASC, SWFMill, Rhino and other tools. Updating from SVN and compiling 18 modules was taking around 90-100 seconds (that&#8217;s updating and compiling the whole project, you can compile single modules much faster).</p>
<p>Keep in mind that our compilation process is a little bit more than calling MTASC. We are running some pre-processing, generating exclude files and some other trickery to gain extra performance (we target mobile devices).</p>
<p>Anyway. Got a hint from one of our developers so I did some research to find a way to speed up compilation time. Since most of us have now dual-core machines we should be able to parallelize some of the work, right? Indeed we can.</p>
<p>Finding <a href="http://code.google.com/p/ppss/">PPSS</a> was quite easy but understanding how it to works was a little bit more complicated. I&#8217;m not going to bore you to death with the nitty-gritty, so this is the flow that adapted better to us:</p>
<p>* In bash parse the list of module folders and create a txt file containing the path to a script passing to it the path of the module as a parameter. One line per module:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">
<ol>
<li class="li1">
<div class="de1"><span class="sy0">/</span>path<span class="sy0">/</span>to<span class="sy0">/</span>script.sh path<span class="sy0">/</span>to<span class="sy0">/</span>module0</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">/</span>path<span class="sy0">/</span>to<span class="sy0">/</span>script.sh path<span class="sy0">/</span>to<span class="sy0">/</span>module1</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">/</span>path<span class="sy0">/</span>to<span class="sy0">/</span>script.sh path<span class="sy0">/</span>to<span class="sy0">/</span>module2</div>
</li>
<li class="li1">
<div class="de1">&#8230;</div>
</li>
</ol>
</div>
</div>
<p>* Feed that txt file to PPSS like this:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">
<ol>
<li class="li1">
<div class="de1">ppss <span class="re5">-f</span> moduleList.txt <span class="re5">-c</span> <span class="st_h">&#8216;bash $ITEM&#8217;</span></div>
</li>
</ol>
</div>
</div>
<p>That&#8217;s where the magic happens.  PPSS parallelizes each call to the compilation script using both CPUs. When you run it you can see they go all the way up to 80-90% usage, which is kind of the point.</p>
<p>We took some metrics and found a 40% speed improvement, sometimes even more. If you are a compulsive compiler like yours truly, this saves you quite some time.</p>
<p>Going from the serial approach to the parallel approach wasn&#8217;t straight forward. Mostly because I had to split the main script into several scripts and that caused some issues due to my bash programming limitations. This is what I learnt:</p>
<p>* If you execute a script from another, the child doesn&#8217;t have access to the variables defined by the parent unless you export them&#8230;<br />
* &#8230; but arrays don&#8217;t get exported.<br />
* Also, you can&#8217;t &#8220;escalate&#8221; exported vars from children to parents. The trick only goes from parent to children (security, I guess).</p>
<p>Anyway. Some more command line black magic under my belt, which is great. The console is a very, very powerful tool that can simplify and standardize daily tasks, which is a must when you are on a team of 10 devs. Not that it is the nicest programming language (actually, it&#8217;s pretty ugly), but its ubiquity makes learning it worthwhile.</p>
<img src="http://feeds.feedburner.com/~r/zarate/zblog/~4/Bt0492ppIBk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.zarate.tv/2010/01/21/make-your-console-fly-with-parallel-processing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.zarate.tv/2010/01/21/make-your-console-fly-with-parallel-processing/</feedburner:origLink></item>
		<item>
		<title>Coders at work</title>
		<link>http://feedproxy.google.com/~r/zarate/zblog/~3/BbQixtgAAmI/</link>
		<comments>http://blog.zarate.tv/2010/01/19/coders-at-work/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 10:53:21 +0000</pubDate>
		<dc:creator>Zarate</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[the industry]]></category>

		<guid isPermaLink="false">http://blog.zarate.tv/?p=1412</guid>
		<description><![CDATA[I&#8217;ve just finished reading Coders at Work, and it&#8217;s a really good book for developers. Peter Seibel interviews 15 very successful programmers about how did they start programming, what changes they&#8217;ve seen in the industry over the last decades, what they look for when hiring new people, how do they debug, etc. I also quite [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just finished reading <a href="http://www.codersatwork.com/">Coders at Work</a>, and it&#8217;s a really good book for developers. <a href="http://www.gigamonkeys.com/">Peter Seibel</a> interviews 15 very successful programmers about how did they start programming, what changes they&#8217;ve seen in the industry over the last decades, what they look for when hiring new people, how do they debug, etc. I also quite like the tone of the book because it is a laid back conversation between peers, to the point and no bullshit.</p>
<p>Keep in mind that these guys are responsible for quite a few things that today we take for granted such us memcached, Unix, JS, Internet, Java, Firefox, etc.</p>
<p>One common thought is that back in the days they used to know in and out every line of code that run on their machines. Most of them spent quite a few years programming assembly and &#8220;close to the metal&#8221; (aka, the hardware), but today&#8217;s programmers &#8220;<em>don&#8217;t know the whole thing</em>&#8220;. </p>
<p>Well, they are right.</p>
<p>I for one have no idea of assembly, machine code or even C. Now, is that good or bad? Granted, the more you know, the better, but most of them also agree that with the level of abstractions that we programmers &#8220;enjoy&#8221; these days this doesn&#8217;t sound possible any more.</p>
<p>For example, think about the abstractions of the typical Flash movie:</p>
<p>Hardware > OS > browser > Flash player > framework of choice > your app here</p>
<p>Now, that&#8217;s obviously a gross overview, since we could break OS in (that I can think of, not even sure it&#8217;s the right order):</p>
<p>kernel > drivers > window system > graphic card</p>
<p>The thing is, even if you had access to ALL the code running (which most likely you don&#8217;t), who has the time and skills to look at it _and_ get  job done?</p>
<p>With all those abstractions in place, when something fails good luck trying to figure out where the problem is. Can you be sure? Because even when we find a bug in the player, is that Adobe&#8217;s fault? Mozilla? Explorer? Linux? A combination? Very hard to tell, more so when a few of those elements are black boxes (proprietary software, you don&#8217;t have access to the code).</p>
<p>Most of those guys wonder about what are the best skills for programmers nowadays. When they started coding, it was a must having very good math skills because of the lack of HW power. They needed to squeeze every single CPU cycle and memory position. Either that or your program wouldn&#8217;t go anywhere. We all know that&#8217;s not true any more. Is this bad? I say it depends on your work. </p>
<p>If you are building compilers, 3D engines or drivers, then by all means you need to focus on performance and have those skills. But if you are doing user interfaces I bet your users appreciate a hand for design and usability. So, completely different skills needed. The fact that HW has gotten so powerful has lowered the barrier for being a programmer so people with very different skills can afford it now, and I think that&#8217;s good. The fact that a designer (and probably even the most advanced Flash &#8220;programmer&#8221; looks like a designer to them) can build an interface without having to worry about HW, graphic cards and code optimizations is pushing computers to different areas.</p>
<p>Even for developers, the skills you need now are not the skills you needed 40 years ago. They think most developers these days &#8220;<em>play Lego</em>&#8220;. They mean we build blocks with the frameworks or libraries available, but don&#8217;t do any &#8220;real&#8221; programming. They have a point. But again, is that good or bad? This is classic DRY stuff. Why would I want to code a SHA1 library if there are quite a few there already? Heck, doing so would not only be a waste of time, it&#8217;d probably be a security hole as most likely I wouldn&#8217;t get it right.  Why would I want to roll my own PHP framework if there are a myriad of choices offering DB abstraction and XSS and CSRF protection out of the box?</p>
<p>See, I think what&#8217;s important is having the skills to roll your own code when needed and use somebody else&#8217;s when it makes sense. And that requires some skills as well. First, you need to be able to identify what&#8217;s core for you and disregard coding everything else. Then you need to be able to start using somebody else&#8217;s code without having to understand it all, many times only looking at some (often incomplete) docs or API. That require skills. A different type, but skills nonetheless. </p>
<p>Also, <strong>obviously with all due respect</strong>, I think they miss an important thing. They didn&#8217;t start from scratch either. Nobody does. </p>
<p><strong>Standing in the shoulders of giants</strong></p>
<p>For example, very, very, very few physicists question the thermodynamics laws. Very, very, very few mathematicians question Pythagoras. They take them for granted. They&#8217;ve been proved. They use them as a base to build on top. Yet, there&#8217;re those very, very, very few that do indeed question the core laws that everyone else just &#8220;use&#8221;. It&#8217;s their job challenging those laws, otherwise completely accepted, and put them to the limit and analyze them with modern eyes.</p>
<p>Why we don&#8217;t have similar laws or universal truths in computing? Well, for starters computers are what, 50 years old? 70 years old? 80? Physics and maths have been around thousands of years. Even if you could compare both worlds, the rules of the &#8220;computing universe&#8221; have been created by human beings whereas the rules of the Earth just <em>are</em>. Those rules haven&#8217;t changed since the Big Bang, what changes is our understanding of them (call it physics math. chemistry, whatever).</p>
<p>As I was saying, quite an interesting book. One of those you can re-read in 2, 3 or 5 years, still enjoy it and still learn from it. Go read it!</p>
<img src="http://feeds.feedburner.com/~r/zarate/zblog/~4/BbQixtgAAmI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.zarate.tv/2010/01/19/coders-at-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.zarate.tv/2010/01/19/coders-at-work/</feedburner:origLink></item>
		<item>
		<title>Counting your lines of ActionScript</title>
		<link>http://feedproxy.google.com/~r/zarate/zblog/~3/Ch1RT1ssFA8/</link>
		<comments>http://blog.zarate.tv/2009/12/12/counting-your-lines-of-actionscript/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 16:38:00 +0000</pubDate>
		<dc:creator>Zarate</dc:creator>
				<category><![CDATA[as2]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://blog.zarate.tv/?p=1394</guid>
		<description><![CDATA[Have you ever been curious about how many lines of AS a project had? To be honest, I couldn&#8217;t care less but hey, there&#8217;re clients out there with pretty good reasons for it.
So, Google a little bit, first result takes me to CLOC.
In theory you should be able to restrict CLOC to a language only [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever been curious about how many lines of AS a project had? To be honest, I couldn&#8217;t care less but hey, there&#8217;re clients out there with pretty good reasons for it.</p>
<p>So, <a href="http://www.google.co.uk/search?sourceid=chrome&#038;ie=UTF-8&#038;q=count+lines+of+code">Google</a> a little bit, first result takes me to <a href="http://cloc.sourceforge.net/">CLOC</a>.</p>
<p>In theory you should be able to restrict CLOC to a language only but most likely due to my incompetence with regular expressions I couldn&#8217;t get it to work the way I liked it. So doing a little bit of command line trickery, I had to create a text file containing the path of the AS files I wanted to parse and then feed that to CLOC. This is how it looks:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">find</span> <span class="kw2">dir</span> <span class="re5">-type</span> f <span class="re5">-iname</span> <span class="sy0">*</span>.as <span class="sy0">&gt;</span> asfiles.txt</div>
</li>
</ol>
</div>
</div>
<p>Then send that to CLOC:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">perl</span> cloc <span class="re5">&#8211;list-file</span>=asfiles.txt <span class="re5">&#8211;quiet</span> <span class="re5">&#8211;report</span>=module_report.txt <span class="re5">&#8211;no3</span> <span class="re5">&#8211;strip-comments</span>=nc <span class="re5">&#8211;original-dir</span></div>
</li>
</ol>
</div>
</div>
<p>That would be the simpler option. But because my project is made of modules (it&#8217;s a multicore <a href="http://puremvc.org/">PureMVC</a> app) and the client wanted <em>both</em> stats per-module <em>and</em> global, I had to push it a little bit further. Basically create a stats file per module and then merge them together. Piece of cake:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">perl</span> cloc <span class="re5">&#8211;no3</span> <span class="re5">&#8211;sum-reports</span> &#8211;report_file=overall moduleReport1 moduleReport2 moduleReportN</div>
</li>
</ol>
</div>
</div>
<p>Where &#8220;overall&#8221; is the name of the final output file (actually, 2 files are created, one per file, other per language) and &#8220;moduleReportX&#8221; files are the partial report created before for each module.</p>
<p>Another good thing about CLOC is that it runs in both OSX and Ubuntu at least pretty much out of the box because both come with Perl installed. However, had a little problem in Ubuntu but contacted Al Danial (the author) and he fixed it right away. If you are running Perl 5.10, go to the line 1038 of CLOC and replace &#8220;%&#8221; by &#8220;@&#8221;.</p>
<p>Good to go!</p>
<img src="http://feeds.feedburner.com/~r/zarate/zblog/~4/Ch1RT1ssFA8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.zarate.tv/2009/12/12/counting-your-lines-of-actionscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.zarate.tv/2009/12/12/counting-your-lines-of-actionscript/</feedburner:origLink></item>
		<item>
		<title>VirtualBox VM launcher in OSX</title>
		<link>http://feedproxy.google.com/~r/zarate/zblog/~3/mScjODK-OQY/</link>
		<comments>http://blog.zarate.tv/2009/11/20/virtualbox-vm-launcher-in-osx/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 21:48:48 +0000</pubDate>
		<dc:creator>Zarate</dc:creator>
				<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://blog.zarate.tv/?p=1387</guid>
		<description><![CDATA[I think Linux/Ubuntu is yet again more easy to use than OSX, but I don&#8217;t even feel like bitching today. Here it goes:
++ Open Script Editor and type this updating the name of the VM you want to launch:




do shell script &#34;/Applications/VirtualBox.App/Contents/MacOS/VBoxManage startvm your_vm_name&#34;




++ Save as Application Bundle and check Run Only.
Off you go.
Thanks.
]]></description>
			<content:encoded><![CDATA[<p>I think Linux/Ubuntu is <a href="http://blog.zarate.tv/2008/11/11/incredibly-annoying-macs-take-1/">yet</a> <a href="http://blog.zarate.tv/2009/11/09/show-hidden-files-in-osx/">again</a> more easy to use than OSX, but I don&#8217;t even feel like bitching today. Here it goes:</p>
<p>++ Open Script Editor and type this updating the name of the VM you want to launch:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">do</span> shell script <span class="st0">&quot;/Applications/VirtualBox.App/Contents/MacOS/VBoxManage startvm your_vm_name&quot;</span></div>
</li>
</ol>
</div>
</div>
<p>++ Save as <em>Application Bundle</em> and check <em>Run Only</em>.</p>
<p>Off you go.</p>
<p><a href="http://forum.scummvm.org/viewtopic.php?t=4993">Thanks</a>.</p>
<img src="http://feeds.feedburner.com/~r/zarate/zblog/~4/mScjODK-OQY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.zarate.tv/2009/11/20/virtualbox-vm-launcher-in-osx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.zarate.tv/2009/11/20/virtualbox-vm-launcher-in-osx/</feedburner:origLink></item>
		<item>
		<title>Show hidden files in OSX</title>
		<link>http://feedproxy.google.com/~r/zarate/zblog/~3/jvp2f5_Pau8/</link>
		<comments>http://blog.zarate.tv/2009/11/09/show-hidden-files-in-osx/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 20:57:48 +0000</pubDate>
		<dc:creator>Zarate</dc:creator>
				<category><![CDATA[incredibly annoying macs]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://blog.zarate.tv/?p=1299</guid>
		<description><![CDATA[** Mac (open terminal): 




defaults write com.apple.finder AppleShowAllFiles TRUE


killall Finder




** Ubuntu (on any window):
CTRL + H (toggles on/off hidden files).
OS X, the paradigm of usability MY ARSE.
(And please don&#8217;t embarras yourself saying that Mac users don&#8217;t need to know about hidden files)
]]></description>
			<content:encoded><![CDATA[<p>** Mac (open terminal): </p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">
<ol>
<li class="li1">
<div class="de1">defaults <span class="kw2">write</span> com.apple.finder AppleShowAllFiles TRUE</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">killall</span> Finder</div>
</li>
</ol>
</div>
</div>
<p>** Ubuntu (on any window):</p>
<p>CTRL + H (toggles on/off hidden files).</p>
<p>OS X, the paradigm of usability <strong>MY ARSE</strong>.</p>
<p>(<em>And please don&#8217;t embarras yourself saying that Mac users don&#8217;t need to know about hidden files</em>)</p>
<img src="http://feeds.feedburner.com/~r/zarate/zblog/~4/jvp2f5_Pau8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.zarate.tv/2009/11/09/show-hidden-files-in-osx/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.zarate.tv/2009/11/09/show-hidden-files-in-osx/</feedburner:origLink></item>
		<item>
		<title>DevDays London</title>
		<link>http://feedproxy.google.com/~r/zarate/zblog/~3/qcMN1GitHd8/</link>
		<comments>http://blog.zarate.tv/2009/10/29/devdays-london/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 09:34:37 +0000</pubDate>
		<dc:creator>Zarate</dc:creator>
				<category><![CDATA[events]]></category>

		<guid isPermaLink="false">http://blog.zarate.tv/?p=1289</guid>
		<description><![CDATA[[Sorry for those who got an incomplete post, hit Publish again when I was meaning to save]
So, yesterday went to StackOverflow DevDays in London. I&#8217;ll start with the bad part:
Organization: Massive queues to pick up food or coffee. FAIL. No 10 minutes break between speakers. FAIL. Mics failing. FAIL. The chairs EPIC FAIL.
The content: I [...]]]></description>
			<content:encoded><![CDATA[<p>[Sorry for those who got an incomplete post, hit Publish <strong>again</strong> when I was meaning to save]</p>
<p>So, yesterday went to <a href="http://stackoverflow.carsonified.com/events/london/">StackOverflow DevDays</a> in London. I&#8217;ll start with the bad part:</p>
<p>Organization: Massive queues to pick up food or coffee. FAIL. No 10 minutes break between speakers. FAIL. Mics failing. FAIL. The chairs EPIC FAIL.</p>
<p>The content: I understand that FogCreek is putting some money to sponsor the events but Joel run 2 completely sales focused sessions, one about FogBugz, the other one about FogCreek. Didn&#8217;t enjoy either. Please remember that this is not a free conference. Fair enough, it&#8217;s not pricey either (£85) and I&#8217;m not sure if they cover expenses with tickets only, but it just felt too much advertising. I&#8217;m not alone, <a href="http://twitter.com/aral/status/5234936652">read</a> <a href="http://twitter.com/dvdsmpsn/status/5235102023">the</a> <a href="http://twitter.com/rbriank/status/5100636330">twits</a>. BTW, I wonder if they got similar feeback in the US.</p>
<p>That&#8217;s it for the bad part, now the good part.</p>
<p><strong>Joel</strong>: when not doing a sales pitch, he is very funny and a great speaker. The intro video with Jeff was a lot of fun.</p>
<p><strong>Jeff</strong>: the same. It was like a live Coding Horror post, always very inspiring.</p>
<p>Now the GREAT part:</p>
<p><a href="http://stackoverflow.com/users/22656/jon-skeet">Jon Skeet</a>: really funny, probably the best speaker and that I didn&#8217;t see coming. Put in perspective that Jon Skeet is the SO user with highest reputation and such a badass that he has earned <a href="http://meta.stackoverflow.com/questions/9134/jon-skeet-facts">his own facts</a>, much like Chuck Norris! I would love to see him again, FOTB next year? People loved him. He talked about the absolutely mess that is working with dates, strings and numbers in computers due to so many different standards. All this with a sock puppet in his right hand.</p>
<p>Things like <a href="http://momento24.com/en/2009/10/16/there-will-be-no-daylight-saving-time-this-summer-in-argentina/">Argentina decided this year NOT to follow daylight savings and warned the world only 11 days before hand</a>. Well done you guys!</p>
<p><a href="http://icant.co.uk/">Christian Heilmann</a>: another very good speaker. He&#8217;s a Yahoo! evangelist and I can see why. He demoed <a href="http://developer.yahoo.com/yql/">YQL</a> and I I had a question banging in my head all the time: <strong>Why nobody told me about this before?!?!?!</strong> It&#8217;s a Yahoo! service to mashup open APIs and it looks REALLY powerful and something I&#8217;d definitely look into. Not sure for what yet, but looked very, very cool.</p>
<p><strong>Pekka Kosonen</strong>: He works for Nokia and gave a talk about <a href="http://qt.nokia.com/">Qt</a> (since when Qt has been pronounced &#8220;<em>cute</em>&#8220;?!?!?!) that, for those who don&#8217;t know, is the framework Nokia finally bought not long ago for building cross-platform *<strong>native</strong>* applications (including phones and all major desktop OSs). Well he was VERY honest about Nokia. I mean, very, very honest saying things like &#8220;<em>we used to suck a lot, now we are getting our act together</em>&#8220;. He was very funny, the sort of speaker that doesn&#8217;t laugh his own jokes, even when they are good. The honesty was very refreshing after the sales-oriented talks. Again, I wonder what would a US company do should an employee speak *<strong>the truth</strong>* that about them. Wonder what Joel was thinking (something along the lines &#8220;<em>I would SO fire this guy as soon as he&#8217;s off the stage</em>&#8220;).</p>
<p>Some pearls to put in t-shirts:</p>
<p>Joel: &#8220;The mother of all options is giving the user a compiler&#8221;<br />
Jeff: &#8220;Don&#8217;t be afraid of failing publicly &#8221;<br />
Pekka Kosonen: &#8220;Light at the end of the tunnel, this time hopefully not a train&#8221;<br />
Pekka Kosonen: &#8221; I wrote a Java book but was only for the money&#8221;<br />
Phil Nash: &#8220;<a href="http://img202.yfrog.com/i/kc2x.jpg/">Objective C is like Marmite</a>: LOVE it or HATE it&#8221; *<br />
<a href="http://twitter.com/jMarkP/status/5232897171">J Mark Pimp about Obj-C</a>: &#8220;80s called, they want their memory manager back&#8221; // <-- HILARIOUS</p>
<p>There were other speakes as well, they did a decent job. There was a nice intro to iPhone development, a nice intro to Android development, a nice intro to jQuery, a rather dry talk about compilers and a rather drier talk abut Python. Not bad for a single day.</p>
<p>Would I come back next year? I'll have to think about it.</p>
<p>* For probably anyone outside of the UK: <a href="http://en.wikipedia.org/wiki/Marmite">Marmite</a> is a cream that literally people either love or hate, they even say it in <a href="http://www.youtube.com/watch?v=dMg5mJUr8dU">their adds</a>. Me? Haven&#8217;t tried it!</p>
<img src="http://feeds.feedburner.com/~r/zarate/zblog/~4/qcMN1GitHd8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.zarate.tv/2009/10/29/devdays-london/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.zarate.tv/2009/10/29/devdays-london/</feedburner:origLink></item>
		<item>
		<title>Dad’s cab hits 45k downloads mark</title>
		<link>http://feedproxy.google.com/~r/zarate/zblog/~3/w-efCy40MJ8/</link>
		<comments>http://blog.zarate.tv/2009/10/15/dads-cab-hits-45k-downloads-mark/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 19:12:30 +0000</pubDate>
		<dc:creator>Zarate</dc:creator>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[ustwo]]></category>

		<guid isPermaLink="false">http://blog.zarate.tv/?p=1268</guid>
		<description><![CDATA[Remember this post where I was talking about an app we were doing for Nokia and was the reason why I had to delve into Kuneri? Well, it&#8217;s up and running:
Kids treat you like a taxi service? Now you can act like one with this GPS enabled taximeter application on your mobile. It even includes [...]]]></description>
			<content:encoded><![CDATA[<p>Remember <a href="http://blog.zarate.tv/2009/07/11/kunerilite-actionscript-api/">this post</a> where I was talking about an app <a href="http://ustwo.co.uk/">we</a> were doing for Nokia and was the reason why I had to delve into Kuneri? Well, it&#8217;s <a href="http://store.ovi.com/content/73305479AC93C8F2E040050A85323F8C?clickSource=related%2Bcontent&#038;link=ovi_apps_dads_cab_brandhome_teaser5_download&#038;page=1">up and running</a>:</p>
<blockquote><p>Kids treat you like a taxi service? Now you can act like one with this GPS enabled taximeter application on your mobile. It even includes additional annoyance tolls and children-friendly payment options.</p></blockquote>
<p>It&#8217;s a simple <em>looking</em> app but it does indeed use the GPS and the calculation of the fare is done following London&#8217;s official taxi rules. It also takes into account if for whatever reason you lose connection with the satellites. Well, not so simple after all!</p>
<p>But I cannot take full credit, fellow ustwobie <a href="http://twitter.com/daaain">Dain Demmel</a> did a big part of the app (if not the biggest), plus we teamed up with <a href="http://www.work-club.com/">WorkClub</a> for art direction.</p>
<p>Anyway, very happy to release an app that people actually use and are happy about.</p>
<p>[UPDATE] Here&#8217;s a <a href="http://www.youtube.com/watch?v=WhZ4SzcB8vg">video demo of the app</a>. [/UPDATE]</p>
<p>And lately we&#8217;ve been releasing quite a few apps at UsTwo:</p>
<p>** <a href="http://tinyurl.com/ylra8cy">Ben 10 MouthOff</a> in partnership with Turner.<br />
** <a href="http://link.ustwo.co.uk/dot">.™</a>, brutally addictive first release of the 48hours app series (watch the <a href="http://8bitfeed.com/2009/10/mills-ustwo-interview/">interview with Mills</a> if you want to know more about the concept).<br />
** <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=306588353&#038;mt=8">Hell-oween MouthOff</a> special.<br />
** And the soon to be released <a href="http://ustwo.tumblr.com/tagged/inkstrumental">inkstrumental</a> in collaboration with <a href="http://www.jonburgerman.com/">Jon Burgerman</a>.</p>
<p>We don&#8217;t stop : )</p>
<img src="http://feeds.feedburner.com/~r/zarate/zblog/~4/w-efCy40MJ8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.zarate.tv/2009/10/15/dads-cab-hits-45k-downloads-mark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.zarate.tv/2009/10/15/dads-cab-hits-45k-downloads-mark/</feedburner:origLink></item>
		<item>
		<title>Joa Ebert on the beach</title>
		<link>http://feedproxy.google.com/~r/zarate/zblog/~3/JdnzTI6_H6s/</link>
		<comments>http://blog.zarate.tv/2009/09/29/joa-ebert-on-the-beach/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 21:22:47 +0000</pubDate>
		<dc:creator>Zarate</dc:creator>
				<category><![CDATA[adobe]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[events]]></category>

		<guid isPermaLink="false">http://blog.zarate.tv/?p=1247</guid>
		<description><![CDATA[FOTB tickets: 150 pounds.
Crappy hotel by the beach: 147 pounds.
Coffee + incredibly moist chocolate cake for breakfast: 2.5 pounds.
Watching a guy embarrass a multi-billion company in 1 hour: so very fucking priceless.
This year&#8217;s FOTB will be remembered as &#8220;yes, the year that Joa Ebert&#8230;&#8221; FOTB. His session was without a doubt the best of the [...]]]></description>
			<content:encoded><![CDATA[<p>FOTB tickets: 150 pounds.<br />
Crappy hotel by the beach: 147 pounds.<br />
<a href="http://iwannagothere.com/gb/brighton/eating-drinking/destination-100">Coffee + incredibly moist chocolate cake for breakfast</a>: 2.5 pounds.<br />
Watching a guy embarrass a multi-billion company in 1 hour: <strong>so very fucking priceless</strong>.</p>
<p>This year&#8217;s FOTB will be remembered as &#8220;<em>yes, the year that Joa Ebert&#8230;</em>&#8221; FOTB. His session was without a doubt the best of the 3 days and if you feel bad for not going, imagine the people that did go to FOTB but didn&#8217;t go to the session.</p>
<p>Because it&#8217;s taken me a week to write this post (went to Spain after FOTB, came back yesterday, waking up today at 6am wasn&#8217;t funny), I&#8217;m not going to talk much about every single thing that went on like <a href="http://www.bigroom.co.uk/blog/application-frameworks-at-fotb">Richard Lord and frameworks</a>, <a href="http://www.flashonthebeach.com/sessions/index.php?pageid=2125">Mike Jones and Flex 4</a>, Colin Moock doesn&#8217;t read books when he gets into new things (funny!), <a href="http://www.mikechambers.com/blog/2009/09/22/fotb-slides-advanced-desktop-development-with-adobe-air/">AIR 2.0 improvements</a>, etc. and will only talk about this:</p>
<p><strong>++ Joa Ebert</strong></p>
<p><a href="http://blog.joa-ebert.com/2009/09/28/fotb-recordings/">His session</a> was on Tuesday 22nd September, let&#8217;s see how long does it take Adobe to put his optimizations into the nightly builds of the Flex SDK compiler. Because fair enough if your compiler can be improved, but there will be NO EXCUSE to not use Joa&#8217;s code. Luckily for us, it seems <a href="http://theflashblog.com/?p=1416">Adobe is taking it the good way</a>. </p>
<p>The bright side of things is that, without refactoring any code, current applications can improve performance just by running his optimizations. Or from another angle: the AVM2 is faster than we all thought. Can&#8217;t wait to hear from all the people squeezing the ass of the player: Papervision and all the 3D engines to begin with, but also image encoders/decoders and other CPU intensive tasks.</p>
<p><strong>++ Open Source rocks</strong></p>
<p>I was very, very happy to see how almost all the big names were finishing their presentations saying: &#8220;<em>&#8230; and yeah, all these amazing things I do you can download already from this URL&#8230;</em>&#8220;.</p>
<p>Specially remarkable was <a href="http://www.joelgethinlewis.com/">Joel Gethin Lewis</a> that said, and I quote:</p>
<blockquote><p><strong>I think that selling software is immoral</strong></p></blockquote>
<p>How cool :) </p>
<p>If you are of those who think that he&#8217;s a communist and his approach is taking Open Source too far, then at least check out this other quote: </p>
<blockquote><p>All my work is released as Open Source and I don&#8217;t give a shit about people ripping it. I&#8217;ve done it, had fun with it and made my money already. I&#8217;m not interested any more in the things I&#8217;ve done, go and get them. I&#8217;m interested in the next thing I&#8217;m going to build.</p></blockquote>
<p>Awesome mindset. And he&#8217;s not kidding, here&#8217;s <a href="http://code.google.com/p/joelgethinlewis/">his repo</a>.</p>
<p>We are not talking about a nerd in his apartment, we are talking about very successful people working for very big companies. They know their work would be 10x harder without the gazillion OS libraries out there and they think it&#8217;s only fair to contribute back as payment. So do I. Let alone the practical point of view of getting other people &#8220;to work for you&#8221;. Ask Carlos Ulloa what Papervision was before releasing it. It was re-written and ported to AS3 in the first 3 months. And you cannot do that alone. Neither PPV nor Carlos would be anywhere near successful as they are now if Carlos would have kept it for himself only.</p>
<p><a href="http://www.openframeworks.cc/">Open Frameworks</a>, <a href="http://www.merapiproject.net/">Merapi</a>, <a href="http://code.google.com/p/apparat/">Apparat</a>, <a href="http://code.google.com/p/asaxb/">ASAXB</a> (<strong>do NOT miss out the TV ad</strong>)&#8230; So if you think your code is so valuable that has to be kept locked, <em>think again</em>. Unless you are doing cooler things than these guys your code is not worth keeping closed (and probably not even then). And yes, I know that telling clients that you are going to release their sources sounds like utopia, we had a long chat about that, but I&#8217;ll leave that discussion for another post.</p>
<p>&#8211;</p>
<p>And that&#8217;s it. For me it&#8217;s been the best FOTB so far, if only for the people there! Cay, <a href="http://www.thelirios.com/">Diego</a>, <a href="http://www.xleon.net/">Diego</a>, Carlos, the rest of the UsTwo crew and some of the guys of the haXe list made the 4 days very geeky and fun.</p>
<p>Already waiting for FOTB 2010  : )</p>
<img src="http://feeds.feedburner.com/~r/zarate/zblog/~4/JdnzTI6_H6s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.zarate.tv/2009/09/29/joa-ebert-on-the-beach/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.zarate.tv/2009/09/29/joa-ebert-on-the-beach/</feedburner:origLink></item>
	</channel>
</rss>
