<?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"
	>

<channel>
	<title>côdeazur brasil blog</title>
	<atom:link href="http://codeazur.com.br/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://codeazur.com.br/blog</link>
	<description>Just another WordPress weblog</description>
	<pubDate>Sat, 19 Apr 2008 04:45:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Flash Sinclair ZX Spectrum 48k emulator</title>
		<link>http://codeazur.com.br/blog/flash-sinclair-zx-spectrum-48k-emulator/</link>
		<comments>http://codeazur.com.br/blog/flash-sinclair-zx-spectrum-48k-emulator/#comments</comments>
		<pubDate>Sat, 19 Apr 2008 04:45:26 +0000</pubDate>
		<dc:creator>Claus Wahlers</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<guid isPermaLink="false">http://codeazur.com.br/blog/?p=16</guid>
		<description><![CDATA[I can&#8217;t believe i missed this.. Jon Pollard wrote a Sinclair ZX Spectrum 48k emulator in Actionscript 3. See it in action here. The source code is available under the GPL 2.
Awesome job!
]]></description>
			<content:encoded><![CDATA[<p>I can&#8217;t believe i missed this.. <a href="http://www.jorin.com/shed/">Jon Pollard</a> wrote a <a href="http://www.jorin.com/shed/flash-spectrum-emulator/">Sinclair ZX Spectrum 48k emulator</a> in Actionscript 3. See it in action <a href="http://www.jorin.com/shed/zx-spectrum-48k-games/?sna=manic-miner">here</a>. The source code is available under the GPL 2.</p>
<p>Awesome job!</p>
]]></content:encoded>
			<wfw:commentRss>http://codeazur.com.br/blog/flash-sinclair-zx-spectrum-48k-emulator/feed/</wfw:commentRss>
		</item>
		<item>
		<title>If Operating Systems were Grocery Stores&#8230;</title>
		<link>http://codeazur.com.br/blog/if-operating-systems-were-grocery-stores/</link>
		<comments>http://codeazur.com.br/blog/if-operating-systems-were-grocery-stores/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 12:40:28 +0000</pubDate>
		<dc:creator>Claus Wahlers</dc:creator>
		
		<category><![CDATA[fun]]></category>

		<guid isPermaLink="false">http://codeazur.com.br/blog/?p=15</guid>
		<description><![CDATA[&#8230;this is how they would be like:
Windows XP would be Wal-Mart. You get everything and more here at a decent price - nothing really fancy tough. You can chose between two dozen different potato brands, which sometimes is a challenge. It also happens that some potatoes on display are mislabeled, foul, or full of worms, [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230;this is how they would be like:</p>
<p><strong>Windows XP</strong> would be Wal-Mart. You get everything and more here at a decent price - nothing really fancy tough. You can chose between two dozen different potato brands, which sometimes is a challenge. It also happens that some potatoes on display are mislabeled, foul, or full of worms, so check thoroughly before you buy. Usually no staff is gonna bother you while shopping, but they aren&#8217;t very helpful either once you got hold of them and try to ask something.</p>
<p><strong>Windows Vista</strong> would be a lot like Windows XP, except that Wal-Mart employees would approach you every 30 seconds asking if you are absolutely sure you want to buy what you just put in your cart, because it might be mislabeled, foul, or full of worms. There&#8217;s also a VIP shopping area where they have better looking potatoes. But they probably won&#8217;t let you in anyways, and if you would you would still have to deal with annoying staff. Also, things are generally more expensive than at the Windows XP Wal-Mart.</p>
<p><strong>Mac OS X</strong> would have designer shopping carts and biologically degradable bags. You would have to pay a fee to use their carts though, and don&#8217;t even try to enter the store with a Wal-Mart bag if you don&#8217;t want staff and other customers looking at you with a face. Everything would look cleaner and more sophisticated in comparison to Wal-Mart, but you would also likely pay a bit more for the experience. They would offer a wide variety of apples, but only have one kind of potato. The staff is usually kind and helpful, and usually insists of giving you their business card everytime they help you pick an apple. You can only pay with Mac OS X credit cards though.</p>
<p><strong>Linux</strong> wouldn&#8217;t be a grocery store at all, but a farm. If you want something you would have to plant it. You would even get the seeds for free. Customers and staff at Linux are usually helpful - if you&#8217;d need advice on the process of planting your potatoes, you&#8217;d likely get it, although in the end you probably still wouldn&#8217;t know how you made it, and you regularly screw up and end up with uneatable potatoes (you&#8217;d not be totally lost in that event because you might even get some potatoes for free from other customers - they&#8217;re all communists after all). If you made it though, you get the best potatoes in town, exactly as you like them, and for free (not counting the time you invested). It is generally expected that you share them though.</p>
]]></content:encoded>
			<wfw:commentRss>http://codeazur.com.br/blog/if-operating-systems-were-grocery-stores/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Staring at your own code</title>
		<link>http://codeazur.com.br/blog/staring-at-your-own-code/</link>
		<comments>http://codeazur.com.br/blog/staring-at-your-own-code/#comments</comments>
		<pubDate>Sun, 06 Apr 2008 22:06:11 +0000</pubDate>
		<dc:creator>Claus Wahlers</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://codeazur.com.br/blog/?p=14</guid>
		<description><![CDATA[Does it also happen to you that, after spending hours, days or even weeks developing on a piece of code, that once finished you are very satisfied with, you sit in front of it for hours, staring at it, just thinking how extremely beautiful all that is? It&#8217;s almost as if you are hypnotized by [...]]]></description>
			<content:encoded><![CDATA[<p>Does it also happen to you that, after spending hours, days or even weeks developing on a piece of code, that once finished you are very satisfied with, you sit in front of it for hours, staring at it, just thinking how extremely beautiful all that is? It&#8217;s almost as if you are hypnotized by your own code.</p>
<p>As i (as most programmers) rarely am satisfied with my own code (it can <em>always</em> be better), this doesn&#8217;t happen very often, but today it hit me again.</p>
<p>The problem: It prevents me from moving on. Staring at code isn&#8217;t very productive. I have deadlines. I might even <em>still</em> find something that i could tweak so that my code gets <em>even more</em> beautiful. Oh boy..</p>
<p>The solution: I have to force myself to close all open windows in my IDE. Start a fresh session. And don&#8217;t open those pesky files anymore, at least for a while. It&#8217;s good enough, period. Now make that other code beautiful!</p>
]]></content:encoded>
			<wfw:commentRss>http://codeazur.com.br/blog/staring-at-your-own-code/feed/</wfw:commentRss>
		</item>
		<item>
		<title>IE8 and Web Standards, Pt. 2</title>
		<link>http://codeazur.com.br/blog/ie8-and-web-standards-pt-2/</link>
		<comments>http://codeazur.com.br/blog/ie8-and-web-standards-pt-2/#comments</comments>
		<pubDate>Wed, 19 Mar 2008 08:13:54 +0000</pubDate>
		<dc:creator>Claus Wahlers</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<category><![CDATA[HTML]]></category>

		<category><![CDATA[W3C]]></category>

		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://codeazur.com.br/blog/ie8-and-web-standards-pt-2/</guid>
		<description><![CDATA[Jonas already expressed his opinions about IE8 in general and Joel Spolksky&#8217;s article &#8220;Martian Headsets&#8221; in particular. Mark Pilgrim answers Spolsky by translating parts of his article &#8220;from MS-Speak into English&#8220;.
I have some more things to add, so here it goes.
&#8220;There is no solution. Each solution is terribly wrong. Eric Bangeman at ars technica writes, [...]]]></description>
			<content:encoded><![CDATA[<p>Jonas already <a href="http://codeazur.com.br/blog/ie8-and-web-standards/">expressed his opinions</a> about IE8 in general and Joel Spolksky&#8217;s article &#8220;<a href="http://www.joelonsoftware.com/items/2008/03/17.html">Martian Headsets</a>&#8221; in particular. Mark Pilgrim answers Spolsky by translating parts of his article &#8220;<a href="http://diveintomark.org/archives/2008/03/18/translation-from-ms-speak-to-english-of-selected-portions-of-joel-spolskys-martin-headsets">from MS-Speak into English</a>&#8220;.</p>
<p>I have some more things to add, so here it goes.</p>
<blockquote><p>&#8220;There is no solution. Each solution is terribly wrong. Eric Bangeman at ars technica writes, &#8216;The IE team has to walk a fine line between tight support for W3C standards and making sure sites coded for earlier versions of IE still display correctly.&#8217; This is incorrect. It’s not a fine line. It’s a line of negative width. There is no place to walk. They are damned if they do and damned if they don’t.&#8221;</p></blockquote>
<p>So why even bother?</p>
<blockquote><p>&#8220;Those documents are super confusing. The specs are full of statements <a href="http://www.w3.org/TR/CSS21/visuren.html">like</a> &#8216;If a sibling block box (that does not float and is not absolutely positioned) follows the run-in box, the run-in box becomes the first inline box of the block box. A run-in cannot run in to a block that already starts with a run-in or that itself is a run-in.&#8217; Whenever I read things like that, I wonder how anyone correctly conforms to the spec.&#8221;</p></blockquote>
<p>Funny fact: &#8220;This document was produced by the <a href="http://www.w3.org/Style/CSS/members">CSS Working Group</a>&#8220;, and &#8220;The following is the complete list of W3C member organizations that participate in the CSS working group with one or more people: [..] Microsoft Corporation [..]&#8220;.</p>
<p>The only thing that is confusing to me here is that apparently Microsoft Corporation, who is participating in the CSS Working Group and produced the document containing the quoted snippet doesn&#8217;t understand their own work.</p>
<p>Software developers who don&#8217;t understand what a &#8220;sibling block box&#8221;, &#8220;run-in box&#8221; or &#8220;inline box&#8221; is, shouldn&#8217;t even think about starting to write a web browser.</p>
<blockquote><p>&#8220;The precise problem here is that you’re pretending that there’s one standard, but since nobody has a way to test against the standard, it’s not a real standard.&#8221;</p></blockquote>
<p>Uhm.. Test Suites? Or even.. gasp.. Acid 3? Hint hint?</p>
<blockquote><p>&#8220;They were sick of special tags. Every frigging web page has to have thirty seven ugly hacks in it to make it work with five or six popular browsers. Enough ugly hacks. 8 billion existing web pages be damned.&#8221;</p></blockquote>
<p>Small correction: &#8216;Every frigging web page has to have thirty seven ugly hacks in it to make it work with <em>Internet Explorer</em>&#8216;</p>
]]></content:encoded>
			<wfw:commentRss>http://codeazur.com.br/blog/ie8-and-web-standards-pt-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>IE8 and Web Standards</title>
		<link>http://codeazur.com.br/blog/ie8-and-web-standards/</link>
		<comments>http://codeazur.com.br/blog/ie8-and-web-standards/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 04:56:28 +0000</pubDate>
		<dc:creator>jonas</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[webstandards]]></category>

		<guid isPermaLink="false">http://codeazur.com.br/blog/ie8-and-web-standards/</guid>
		<description><![CDATA[Joel Spolsky just wrote a 25-page-long article about IE8, Web Standards and the general quantum mechanics surrounding the subject. And I&#8217;m left wondering, who cares about IE8? Who cares about IE7, for the matter?
I see a trend where web developers are doing their best to make sure a website works on IE6, but most of [...]]]></description>
			<content:encoded><![CDATA[<p>Joel Spolsky just wrote a <a href="http://www.joelonsoftware.com/items/2008/03/17.html">25-page-long article</a> about IE8, Web Standards and the general quantum mechanics surrounding the subject. And I&#8217;m left wondering, who cares about IE8? Who cares about IE7, for the matter?</p>
<p>I see a trend where web developers are doing their best to make sure a website works on IE6, but most of code and design are generally targeted at Firefox, Opera and Safari. It might just be that the IE8 team is trying to do the right thing now. But you know what, it&#8217;s too fucking late. We do not care about your Windows-only, closed-source web browser anymore.</p>
<p>Most web developers today choose to blissfully hope that whoever&#8217;s using IE6 today will gracefully switch over to either Firefox, Opera or Safari in the future. And that&#8217;s definitely what seems to be happening. More and more people are moving on to Linux and OSX. And let&#8217;s just be honest to each other, Vista has so far failed, badly. Everyone who I know that has touched it can vouch for its sheer crappiness.</p>
<p>I honestly don&#8217;t know why Joel Spolsky is writing about this subject at all, maybe it&#8217;s because Microsoft has conquered a permanent status of relevance to him, but not for me anymore. Not to a lot of people I know. Maybe I&#8217;m wrong, maybe we&#8217;re still forced to deal with all this crap over and over again. But for the time being, I&#8217;m just not gonna let Microsoft interfere once again with the way I build software.</p>
]]></content:encoded>
			<wfw:commentRss>http://codeazur.com.br/blog/ie8-and-web-standards/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Basics</title>
		<link>http://codeazur.com.br/blog/basics/</link>
		<comments>http://codeazur.com.br/blog/basics/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 12:38:00 +0000</pubDate>
		<dc:creator>jonas</dc:creator>
		
		<category><![CDATA[career]]></category>

		<guid isPermaLink="false">http://codeazur.com.br/blog/basics/</guid>
		<description><![CDATA[Here&#8217;s a small bit of advice for programmers looking for a high tech job (usually in a startup). Look, they don&#8217;t care about your certificates, they don&#8217;t care if you are Certified Sun/Microsoft whatever. If skills in a given programming language or technology are required, don&#8217;t tell them you&#8217;ve taken a class or paid for [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a small bit of advice for programmers looking for a high tech job (usually in a startup). Look, they don&#8217;t care about your certificates, they don&#8217;t care if you are Certified Sun/Microsoft whatever. If skills in a given programming language or technology are required, don&#8217;t tell them you&#8217;ve taken a class or paid for 16-hour training somewhere. Even more so, if you&#8217;re working with an opensource, actively developed programming language such as Python or Ruby, it just doesn&#8217;t make any fucking sense to believe that you can go somewhere, have someone train you, get a certificate and be done with it. If you can be sure of anything is that most recruiters do not care where you have graduated, they don&#8217;t care how you came to learn something. All they care about is how well you express to them your own confidence that you can do the job, and believe me, they can tell when you&#8217;re bullshiting them.</p>
<p>Here are the basics: if you&#8217;re not a native English speaker, know how to write it and speak it well. Pick a pet opensource programming language and know to have your way in it. Release opensource software, be active in mailing lists, be a fast learner. Tell yourself you&#8217;re some kind of genius that can learn just about anything in one night of reading, because, you know what, that&#8217;s exactly what&#8217;s going to be required of you.</p>
]]></content:encoded>
			<wfw:commentRss>http://codeazur.com.br/blog/basics/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FZip updated to 1.0.062</title>
		<link>http://codeazur.com.br/blog/fzip-updated-to-10060/</link>
		<comments>http://codeazur.com.br/blog/fzip-updated-to-10060/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 10:09:48 +0000</pubDate>
		<dc:creator>Claus Wahlers</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Adobe AIR]]></category>

		<guid isPermaLink="false">http://codeazur.com.br/blog/fzip-updated-to-10060/</guid>
		<description><![CDATA[Using namespaces for states didn&#8217;t seem to be a good idea, some users experienced weird RTEs when parsing ZIPs with FZip. We now use function references to maintain state which seems to work much better. If you ever got a ReferenceError: Error #1065: Variable parse is not defined. at deng.fzip::FZipFile/parse(), this is very much likely [...]]]></description>
			<content:encoded><![CDATA[<p>Using namespaces for states didn&#8217;t seem to be a good idea, some users experienced weird RTEs when parsing ZIPs with FZip. We now use function references to maintain state which seems to work much better. If you ever got a <code>ReferenceError: Error #1065: Variable parse is not defined. at deng.fzip::FZipFile/parse()</code>, this is very much likely fixed now.</p>
<p><a href="http://codeazur.com.br/lab/fzip/">http://codeazur.com.br/lab/fzip/</a></p>
<p><em>[Update: Oops.. i had a small versioning accident here.. Latest, good version is 1.0.062, please download that one in case you got 1.0.060 or 1.0.061]</em></p>
]]></content:encoded>
			<wfw:commentRss>http://codeazur.com.br/blog/fzip-updated-to-10060/feed/</wfw:commentRss>
		</item>
		<item>
		<title>AIR Remote Updater for AIR 1.0</title>
		<link>http://codeazur.com.br/blog/air-remote-updater-upgraded-for-air-10/</link>
		<comments>http://codeazur.com.br/blog/air-remote-updater-upgraded-for-air-10/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 13:43:47 +0000</pubDate>
		<dc:creator>Claus Wahlers</dc:creator>
		
		<category><![CDATA[AS3]]></category>

		<category><![CDATA[Adobe AIR]]></category>

		<guid isPermaLink="false">http://codeazur.com.br/blog/airremoteupdater-upgraded-for-air-10/</guid>
		<description><![CDATA[A new version of the AIR Remote Updater (for AIR 1.0 release) is available for download here:
http://codeazur.com.br/lab/airremoteupdater/
The AIR Remote Updater is an Actionscript 3 class to automate remote software updates in Adobe AIR applications.
It transparently checks version numbers, downloads the .AIR installer file if needed and triggers the AIR-native update process. It grabs the version [...]]]></description>
			<content:encoded><![CDATA[<p>A new version of the AIR Remote Updater (for AIR 1.0 release) is available for download here:</p>
<p><a href="http://codeazur.com.br/lab/airremoteupdater/">http://codeazur.com.br/lab/airremoteupdater/</a></p>
<p>The AIR Remote Updater is an Actionscript 3 class to automate remote software updates in <a href="http://get.adobe.com/air/">Adobe AIR</a> applications.</p>
<p>It transparently checks version numbers, downloads the .AIR installer file if needed and triggers the AIR-native update process. It grabs the version number directly from the remote .AIR file without having to download the entire file, eliminating the potential error prone need of having to put a separate descriptor file online along with the .AIR installer file.</p>
]]></content:encoded>
			<wfw:commentRss>http://codeazur.com.br/blog/air-remote-updater-upgraded-for-air-10/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Exception Handling in Rails 2.0</title>
		<link>http://codeazur.com.br/blog/new-exception-handling-in-rails-20/</link>
		<comments>http://codeazur.com.br/blog/new-exception-handling-in-rails-20/#comments</comments>
		<pubDate>Tue, 16 Oct 2007 04:40:11 +0000</pubDate>
		<dc:creator>spiceee</dc:creator>
		
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://codeazur.com.br/blog/new-exception-handling-in-rails-20/</guid>
		<description><![CDATA[Color me stupid but I&#8217;ve no clue on why, since Rails 2.o is all about RESTful goodness, all of the HTTP error codes are not valid ActionController Exceptions to begin with.
I&#8217;m looking around and finding it pretty unattractive the way people deal with sending out the status headers right in the code without any clue [...]]]></description>
			<content:encoded><![CDATA[<p>Color me stupid but I&#8217;ve no clue on why, since Rails 2.o is all about RESTful goodness, all of the HTTP error codes are not valid ActionController Exceptions to begin with.</p>
<p>I&#8217;m looking around and finding it pretty unattractive the way people deal with sending out the status headers right in the code without any clue to what is really happening.</p>
<p>Luckily, if &#8220;403 Forbidden&#8221; is not a valid Exception, for instance, <a href="http://dev.rubyonrails.org/changeset/7597">Rails 2.0 comes with a much easier way to deal with Exceptions</a> as a whole. I&#8217;m finding it so much more elegant to raise Exceptions whenever I need them and letting my code deal with sending the right headers somewhere else.</p>
<p>To create an application-wide Forbidden Exception, you would:</p>
<pre lang="Ruby">class Forbidden < StandardError
end

class ApplicationController < ActionController::Base
   rescue_from Forbidden, :with => :forbidden

   def forbidden
      head :forbidden
   end

   def can_modify?(obj)
      if obj.owner == current_user
         yield
      else
         raise Forbidden
      end
   end

end</pre>
<p>You don&#8217;t really have to do this in the application.rb (I reckon if you&#8217;re not purely dealing with a RESTful webservice, it could add quite the clutter to your main Controller), but you can even have a sort of RescueController and have it deal with your Exceptions for you.</p>
<p>Either way, just the fact that you&#8217;re raising an Exception when something bad happens is much more elegant than just writing out the right HTTP header, imo.</p>
]]></content:encoded>
			<wfw:commentRss>http://codeazur.com.br/blog/new-exception-handling-in-rails-20/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
