<?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>daviduarte.net</title>
	<atom:link href="http://www.daviduarte.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.daviduarte.net</link>
	<description></description>
	<pubDate>Wed, 29 Oct 2008 23:07:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>A re-introduction to JavaScript</title>
		<link>http://www.daviduarte.net/2008/07/24/a-re-introduction-to-javascript/</link>
		<comments>http://www.daviduarte.net/2008/07/24/a-re-introduction-to-javascript/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 13:30:27 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.daviduarte.net/?p=60</guid>
		<description><![CDATA[Javascript ainda é minha linguagem favorita, é um fato inegável, todo mundo tem um hábito ou um gosto esquisito na vida sobre o qual não comenta muito&#8230; algumas pessoas gostam de ouvir Jamiroquai, outros gostam de jogar Strategy RPGs ou assistir anime de robô gigante. Eu gosto de Javascript (e de todas as outras tranqueiras [...]]]></description>
			<content:encoded><![CDATA[<p>Javascript ainda é minha linguagem favorita, é um fato inegável, todo mundo tem um hábito ou um gosto esquisito na vida sobre o qual não comenta muito&#8230; algumas pessoas gostam de ouvir Jamiroquai, outros gostam de jogar Strategy RPGs ou assistir anime de robô gigante. Eu gosto de Javascript (e de todas as outras tranqueiras citadas).</p>
<p>Estive procurando referências sobre a implementação do objeto Array no Firefox 3 para saber se de alguma forma se assemelhava ao novo <a href="http://blogs.msdn.com/jscript/archive/2008/03/25/performance-optimization-of-arrays-part-i.aspx">Array flexível do IE 8</a> e acabei encontrando um resumo muito bem feito sobre as características únicas dessa línguagem na própria documentação da Mozilla.</p>
<p><a href="http://developer.mozilla.org/en/docs/A_re-introduction_to_JavaScript">A re-introduction to JavaScript</a></p>
<p>O melhor resumo rápido em texto que eu já encontrei, mas ainda não bate a série de vídeos do Crockford (que você pode ver no Yahoo! UI Theater).</p>
<blockquote><p>Why a re-introduction? Because JavaScript has a reasonable claim to being the world&#8217;s most misunderstood programming language. While often derided as a toy, beneath its deceptive simplicity lie some powerful language features. 2005 has seen the launch of a number of high-profile JavaScript applications, showing that deeper knowledge of this technology is an important skill for any web developer.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.daviduarte.net/2008/07/24/a-re-introduction-to-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Achievement Unlocked: MCP</title>
		<link>http://www.daviduarte.net/2008/06/27/achievement-unlocked-mcp/</link>
		<comments>http://www.daviduarte.net/2008/06/27/achievement-unlocked-mcp/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 20:22:02 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.daviduarte.net/?p=58</guid>
		<description><![CDATA[ 







Fiz hoje a prova base do framework .Net (Microsoft .NET Framework - Application Development Foundation 70-536) e felizmente consegui passar. Uma coisa interessante é que algumas pessoas com quem eu conversei disseram que era muito fácil, que o transcender era mais difícil que a prova.
Minha experiência pessoal: Balela.
Foi certamente uma das provas mais complicadas que [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<table border="0">
<tbody>
<tr>
<td><img class="alignnone size-medium wp-image-59" title="achievement" src="http://www.daviduarte.net/wp-content/uploads/2008/06/achievement-300x54.jpg" alt="" width="300" height="54" /></td>
</tr>
</tbody>
</table>
<p>Fiz hoje a prova base do framework .Net (<a href="http://www.microsoft.com/learning/en/us/exams/70-536.aspx"><span id="labelExamTitleName" class="DetailPagesBlackColorSubHeading">Microsoft .NET Framework - Application Development Foundation </span>70-536</a>) e felizmente consegui passar. Uma coisa interessante é que algumas pessoas com quem eu conversei disseram que era muito fácil, que o transcender era mais difícil que a prova.</p>
<p>Minha experiência pessoal: <strong>Balela</strong>.</p>
<p>Foi certamente uma das provas mais complicadas que eu já fiz, as partes de segurança e serialização foram duríssimas, das 40 questões que eu respondi apenas 7 eram similares as mais de 200 questões de preparação que eu respondi antes da prova.</p>
<p>Não tenho vergonha nenhuma de dizer que eu fiquei de olhos marejados ao ver o &#8220;Passed&#8221;, quem me salvou mesmo foi o <a href="http://www.wrox.com/WileyCDA/WroxTitle/productCd-0470191376.html">Professional C#</a> da Wrox, já que o livro do kit oficial de preparação para a prova e os simulados não foram o bastante para garantir uma &#8220;experiência tranquila&#8221;.</p>
<p>Não sei se a prova mudou ou se eu sou fraco mesmo, mas recomendo no mínimo 2 meses de estudo dedicado para quem quiser se aventurar.</p>
<p>E que venham a 70-528 e a 70-562&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daviduarte.net/2008/06/27/achievement-unlocked-mcp/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Acessando QueryStrings por Javascript</title>
		<link>http://www.daviduarte.net/2008/06/23/acessando-querystrings-por-javascript/</link>
		<comments>http://www.daviduarte.net/2008/06/23/acessando-querystrings-por-javascript/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 20:52:35 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.daviduarte.net/?p=57</guid>
		<description><![CDATA[Dei uma alterada no já manjado código para acessar QueryStrings no client (vez ou outra alguém precisa de algo desse tipo) meu objetivo era não poluir o já super lotado escopo global do browser e tornar o acesso ao hashtable de QueryStrings privado por motivos de segur&#8230; nah, tornei privado apenas para brincar com clousures.
Uma [...]]]></description>
			<content:encoded><![CDATA[<p>Dei uma alterada no já manjado código para acessar QueryStrings no client (vez ou outra alguém precisa de algo desse tipo) meu objetivo era não poluir o já super lotado escopo global do browser e tornar o acesso ao hashtable de QueryStrings privado por motivos de segur&#8230; nah, tornei privado apenas para brincar com clousures.</p>
<p>Uma coisa legal é que se não existirem QueryStrings eu retorno nada, nem mesmo aquele espaço no document.location.QueryString eu ocupo nesse caso.</p>
<p><em>document.location.QueryString = (function (){<br />
    var params = {};<br />
    var qs=location.search.substring(1,location.search.length)<br />
    if (qs.length == 0) return<br />
    qs = qs.replace(/\+/g, &#8216; &#8216;)<br />
    var args = qs.split(&#8217;&amp;&#8217;);<br />
    for (var i=0;i&lt;args.length;i++) {<br />
      var value;<br />
      var pair = args[i].split(&#8217;=');<br />
      var name = unescape(pair[0]);<br />
      if (pair.length == 2){<br />
          value = unescape(pair[1]);<br />
      }<br />
      else{<br />
        value = name;<br />
      }<br />
      params[name] = value;<br />
    }<br />
   return function(key){<br />
    var value = params[key];<br />
    if (value !=null){<br />
      return value;<br />
    }<br />
  }<br />
})();</em></p>
<p>Depois é só acessar o valor por:</p>
<p>//retorna o valor associado<br />
<strong><span class="objectBox objectBox-text">location.QueryString(&#8221;keyName&#8221;);</span></strong></p>
<p>Se alguém perceber algum bug, por favor comente.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daviduarte.net/2008/06/23/acessando-querystrings-por-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Percorrendo Javascript Objects como uma árvore binária</title>
		<link>http://www.daviduarte.net/2008/05/21/percorrendo-javascript-objects-como-uma-arvore-binaria/</link>
		<comments>http://www.daviduarte.net/2008/05/21/percorrendo-javascript-objects-como-uma-arvore-binaria/#comments</comments>
		<pubDate>Wed, 21 May 2008 14:41:07 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.daviduarte.net/?p=56</guid>
		<description><![CDATA[Estive dando uma revisada no meu material antigo nos últimos dias e acabei revendo uma série de vídeos do Doug Crockford (pela décima ou décima primeira vez, não me recordo precisamente, ainda estão no YUI! Theater e vocês deveriam assistir todos eles também, mais de uma vez) e em um dos trechos acabei me deparando [...]]]></description>
			<content:encoded><![CDATA[<p>Estive dando uma revisada no meu material antigo nos últimos dias e acabei revendo uma série de vídeos do Doug Crockford (pela décima ou décima primeira vez, não me recordo precisamente, ainda estão no YUI! Theater e vocês deveriam assistir todos eles também, mais de uma vez) e em um dos trechos acabei me deparando com a já bem comentada função walkTheDom, usada para percorrer recursivamente um nó ou toda a árvore do DOM utilizando os recursos de reflection do Javascript de uma forma ou de outra.</p>
<p><strong>function walkTheDOM(node, func) {<br />
    func(node);<br />
    node = node.firstChild;<br />
    while (node) {<br />
        walkTheDOM(node, func);<br />
        node = node.nextSibling;<br />
    }<br />
}</strong></p>
<p>Uma série de estruturas no browser se encaixam nesse paradigma, os próprios objetos Javascript são estruturas de dados que podem ser percorridas exatamente da mesma forma, e do mesmo jeito que o mestre Crockford percorre o DOM você pode pode percorrer um Objeto interrogando todos os seus elementos filhos a procura de quem interessa, um método de um objeto, um valor, um objeto específico. A coisa pode ficar realmente complexa se levarmos em consideração que um objeto js é uma cadeia de elementos sem um final definido, podemos ter um objeto que contenha um array de objetos que contenha um outro array de objetos e assim por diante. Para um exemplo prático dê uma olhada no objeto YAHOO utilizado como namespace na YUI! (e que na prática é um objeto js como qualquer outro):</p>
<p>Um exemplo inocente:</p>
<p><strong>var walkThatObject = function(object, func){<br />
    for(var prop in object){<br />
        func(object[prop]);<br />
        if(typeof object[prop]== &#8216;object&#8217;){<br />
            walkThatObject(object[prop], func);<br />
        }<br />
    }<br />
}<br />
</strong></p>
<p><strong>//Poderia ser uma literal de objeto aqui<br />
var thatObject = {};</strong></p>
<p><strong>thatObject.Nome = &#8216;David&#8217;;<br />
thatObject.Sobrenome = &#8216;Duarte&#8217;;<br />
thatObject.Qualidades = {qualidade1:&#8217;Geek&#8217;, qualidade2:&#8217;Javascripter&#8217;, qualidade3:{subqualidade:&#8217;Bom filho&#8217;}};</strong></p>
<p><strong>walkThatObject(thatObject, function(obj){<br />
    if(typeof obj == &#8217;string&#8217;){<br />
        alert(obj);<br />
    }<br />
});</strong></p>
<p>Interessante e &#8220;extremamente relevante&#8221; não? Pense nisso&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daviduarte.net/2008/05/21/percorrendo-javascript-objects-como-uma-arvore-binaria/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cross-Site XMLHttpRequest? Não no Firefox 3</title>
		<link>http://www.daviduarte.net/2008/05/20/cross-site-xmlhttprequest-nao-no-ff3/</link>
		<comments>http://www.daviduarte.net/2008/05/20/cross-site-xmlhttprequest-nao-no-ff3/#comments</comments>
		<pubDate>Tue, 20 May 2008 20:30:42 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.daviduarte.net/?p=54</guid>
		<description><![CDATA[Veio o RC1 e entre muitas melhorias (o tão falado gerenciamento de memória, e algumas novidades em relação ao Javascript por exemplo) uma decepção ficou aparente, pelo menos a meu ver já ficou claro que podemos perder as esperanças de ver XHR Cross-Domain na versão final do Firefox 3, ou pelo menos as esperanças de [...]]]></description>
			<content:encoded><![CDATA[<p>Veio o RC1 e entre muitas melhorias (o tão falado gerenciamento de memória, e algumas novidades em relação ao Javascript por exemplo) uma decepção ficou aparente, pelo menos a meu ver já ficou claro que podemos perder as esperanças de ver XHR Cross-Domain na versão final do Firefox 3, ou pelo menos as esperanças de ver isso funcionando nas páginas web.</p>
<p>O nada discreto aviso continua na <a href="http://developer.mozilla.org/en/docs/Cross-Site_XMLHttpRequest">página de documentação da Mozilla</a> dizendo<em> &#8220;This feature is available in Firefox 3, but only to extensions and other privileged code; it is not currently available for web content&#8221;</em> então pela primeira vez em meses acho que posso dizer que o time do IE saiu na frente em alguma coisa.</p>
<p>Enquanto o pessoal da Mozilla não conseguiu resolver a sua implementação o time do IE simplificou e criou um objeto a parte só para esse fim, o <a href="http://msdn.microsoft.com/en-us/library/cc288060(VS.85).aspx">XDomainRequest</a> , particularmente achei inteligente separar as coisas, uma vez que permite que algumas validações sejam incorporadas a implementação nativa ( item 2 do <a href="http://www.w3.org/TR/access-control/">working draft da W3C</a> cita: &#8221;     Must not require content authors or site maintainers to implement new      or additional security protections to preserve their existing level of      security protection.&#8221;).</p>
<p>Puxa, bastante tempo sem reclamar de nada, postarei com mais frequência <img src='http://www.daviduarte.net/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p><a href="http://www.daviduarte.net/wp-content/uploads/2008/05/proxy2.gif"><img class="aligncenter size-full wp-image-55" title="proxy2" src="http://www.daviduarte.net/wp-content/uploads/2008/05/proxy2.gif" alt="" width="347" height="284" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.daviduarte.net/2008/05/20/cross-site-xmlhttprequest-nao-no-ff3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Como funcionam os timers no Javascript</title>
		<link>http://www.daviduarte.net/2008/02/26/como-funcionam-os-timers-no-javascript/</link>
		<comments>http://www.daviduarte.net/2008/02/26/como-funcionam-os-timers-no-javascript/#comments</comments>
		<pubDate>Tue, 26 Feb 2008 11:35:36 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.daviduarte.net/2008/02/26/como-funcionam-os-timers-no-javascript/</guid>
		<description><![CDATA[John Resig (JQuery/Mozilla) postou um artigo muito interessante no seu blog sobre como funcionam os timers em Javascript, vale a pena dar uma olhada porque é uma descrição muito mais detalhada do que a que presente no livro &#8220;Javascript - The Definitive Guide&#8221;(14.1 - Timers) , a bíblia a programação client-side. O texto é uma [...]]]></description>
			<content:encoded><![CDATA[<p>John Resig (JQuery/Mozilla) postou um artigo muito interessante no seu blog sobre como funcionam os timers em Javascript, vale a pena dar uma olhada porque é uma descrição muito mais detalhada do que a que presente no livro &#8220;Javascript - The Definitive Guide&#8221;(14.1 - Timers) , a bíblia a programação client-side. O texto é uma amostra do conteúdo do livro &#8220;Secrets of Javascript Ninja&#8221;, ainda não lançado.</p>
<blockquote><p>Em um nível fundamental é importante entender como os timers funcionam em Javascript. Frequentemente eles se comportam de maneira não muito intuitiva por estarem todos em uma única thread. Vamos examinar as três funções para construir e manipular timers:</p>
<ul>
<li><code>var id = setTimeout(fn, delay);</code> - Inicia um timer simples que vai invocar a função depois do intervalo especificado. A função retorna um ID único que pode ser usado para cancelar o timer.</li>
<li><code>var id = setInterval(fn, delay);</code> - Similar a  <code>setTimeout</code> mas continua invocando a função aplicando o mesmo intervalo (delay) até ser cancelada.</li>
<li><code>clearInterval(id);</code>, <code>clearTimeout(id);</code> - Aceita um timer ID (o retorno das funções anteriores) e interrompe a execução do timer</li>
</ul>
<p>Para entender melhor como os timers funcionam internamente  existe um conceito importante a ser explorado: O delay não é garantido, o problema é que o Javascript no browser é executado em uma única thread, o que força todos os eventos assíncronos (clicks de mouse e timers) a rodarem apenas quando ouver uma &#8220;janela&#8221; de processamento. Isso é melhor demonstrado em forma de diagrama:</p></blockquote>
<table>
<tr>
<td>
<a href="http://www.daviduarte.net/wp-content/uploads/2008/02/timers.png" title="427px-timers.png"><img src="http://www.daviduarte.net/wp-content/uploads/2008/02/427px-timers.png" alt="427px-timers.png" /></a>
</td>
</tr>
</table>
<p>Apesar do nome esdrúxulo parece que esse livro vai ser mais interessante que o primeiro, &#8220;Pro JavaScript Techniques&#8221;, que eu achei muito fraco (bem aquém das minhas expectativas por ser um livro do criador da JQuery).</p>
<p>O artigo original está no endereço <a href="http://ejohn.org/blog/how-javascript-timers-work/">http://ejohn.org/blog/how-javascript-timers-work/ </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.daviduarte.net/2008/02/26/como-funcionam-os-timers-no-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>toJSONString() anywhere</title>
		<link>http://www.daviduarte.net/2008/01/22/tojsonstring-anywhere/</link>
		<comments>http://www.daviduarte.net/2008/01/22/tojsonstring-anywhere/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 11:14:54 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.daviduarte.net/2008/01/22/tojsonstring-anywhere/</guid>
		<description><![CDATA[Nicholas C. Zakas, autor do livro &#8220;Professional Javascript&#8221; da Wrox e atualmente trabalhando no Yahoo! como Frontend Engineer (My Yahoo!) é mais um dos que tem alguma coisa a reclamar quando o assunto é EcmaScript 4 (Javascript 2.0). Uma das premissas da nova linguagem é a integração do JSON como formato de dados padrão da [...]]]></description>
			<content:encoded><![CDATA[<p>Nicholas C. Zakas, autor do livro &#8220;Professional Javascript&#8221; da Wrox e atualmente trabalhando no Yahoo! como Frontend Engineer (My Yahoo!) é mais um dos que tem alguma coisa a reclamar quando o assunto é EcmaScript 4 (Javascript 2.0). Uma das premissas da nova linguagem é a integração do JSON como formato de dados padrão da linguagem, segundo a especificação do E4X um tipo Object terá o método toJSONString(), o que pode parecer inteligente a primeira vista mas como Object é a base para todos os outros tipos nativos as funções de serialização seriam adicionadas mesmo a tipos onde seriam totalmente inúteis. Onde está a vantagem de serializar um tipo Date ou Regex para JSON?</p>
<p>Obviamente a funcionalidade de serialização como todas as funcionalidades de suporte devem ser providas por uma interface externa, esse é um conceito fundamental e não existe nenhum motivo prático para ser diferente disso.</p>
<p>Um ponto interessante levantado pelo próprio Nicholas é que nunca houve nas especificações anteriores do EcmaScript qualquer referência a um formato de dados padrão, nem mesmo suporte nativo a XML foi adicionado em nenhum momento, então porque tentar empurrar JSON para dentro da linguagem? O correto é prover recursos para que JSON, XML e qualquer outro formato que venha a surgir sejam integrados da forma mais transparente possível, mesmo que por meio de bibliotecas.</p>
<p>Melhor do que apenas jogar pedras é sugerir uma solução melhor, Zakas postou em seu site pessoal a implementação da <a href="http://www.nczonline.net/downloads/JSONLib0.1.zip">JSONLib</a>, um modelo contendo 2 classes simples, uma para objetos JSON e outra para uma coleção de objetos JSONList.</p>
<blockquote><p><em>1 - The addition of two new global types: JSON and JSONList. JSON represents a JSON object while JSONList represents a JSON array.<br />
</em></p>
<p><em>2  - Both types have a toJSONString() method that correctly encodes an object into a JSON string. The default toString() method is available but returns a string representation of the object (not a JSON string). This follows the convention set forth in E4X.<br />
</em></p>
<p><em>3 -   The [[Put]] method is overridden in both types such that it will only accept values of type JSON, JSONList, Date, boolean, string, number, or null. Any other data types cause an error to be thrown.<br />
</em></p>
<p><em>4 - The JSON constructor allows an object to be passed in that has initial properties to add; the JSONList constructor allows an array to be passed in with items to add.<br />
</em></p>
<p><em>5  - The typeof operator should return &#8220;json&#8221; when used on a value of type JSON or JSONList.<br />
</em></p>
<p><em>6  - JSON strings are parsed via JSON.parse(), throwing syntax errors if they are found. </em></p></blockquote>
<p>Exemplos simples de implementação:</p>
<blockquote><p>var obj = JSON.parse(&#8221;{\&#8221;name\&#8221;:\&#8221;Nicholas\&#8221;,\&#8221;age\&#8221;:29}&#8221;);</p>
<p>var json = new JSON();<br />
json.put(&#8221;name&#8221;, &#8220;Nicholas&#8221;);<br />
json.put(&#8221;age&#8221;, 29);<br />
var name = json.get(&#8221;name&#8221;);<br />
var str = json.toJSONString();</p>
<p>var list = new JSONList();<br />
list.put(0, &#8220;blah&#8221;);<br />
list.push(25);<br />
list.push(true);<br />
var val = list.get(1);<br />
var len = list.getLength();<br />
var str = list.toJSONString();</p>
<p>var json = new JSON({name:&#8221;Nicholas&#8221;});<br />
var name = json.get(&#8221;name&#8221;);</p>
<p>var list = new JSONList([1, 2, 3, 4]);<br />
var val = list.get(2);<br />
list.push(function(){});  //throws error</p></blockquote>
<p>O artigo original pode ser visto em:<br />
<a href="http://nczonline.net/archive/2008/1/537"> http://nczonline.net/archive/2008/1/537</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.daviduarte.net/2008/01/22/tojsonstring-anywhere/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Brendan Eich vs The Lambda JavaScript Programming</title>
		<link>http://www.daviduarte.net/2007/12/03/brendan-eich-vs-the-lambda-javascript-programming/</link>
		<comments>http://www.daviduarte.net/2007/12/03/brendan-eich-vs-the-lambda-javascript-programming/#comments</comments>
		<pubDate>Mon, 03 Dec 2007 13:32:25 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.daviduarte.net/2007/12/03/brendan-eich-vs-the-lambda-javascript-programming/</guid>
		<description><![CDATA[Quem aparentemente perdeu a fé no jeito clássico de programar Javascript foi o próprio criador da linguagem, Brendan Eich, hoje trabalhando como CTO da Fundação Mozilla Brendan falou um pouco a respeito do assunto no evento @media Ajax London onde apresentou suas idéias de como e para onde a linguagem criada por ele a mais [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.daviduarte.net/wp-content/uploads/2007/12/beich.jpg" alt="beich.jpg" />Quem aparentemente perdeu a fé no jeito clássico de programar Javascript foi o próprio criador da linguagem, Brendan Eich, hoje trabalhando como CTO da Fundação Mozilla Brendan falou um pouco a respeito do assunto no evento <a href="http://http://vivabit.com/atmediaajax/">@media Ajax London</a> onde apresentou suas idéias de como e para onde a linguagem criada por ele a mais de uma década (ainda na Netscape) deve evoluir. Os slides da apresentação podem ser conferidos <a href="http://developer.mozilla.org/presentations/eich-media-ajax-2007/">aqui:</a></p>
<p>Brendan Eich é hoje um dos maiores defensores de mudanças na estrutura da linguagem e acredita que a implementação do Javascript 2 baseado no ES4 (EcmaScript 4) nos browsers já a partir do Firefox 4 pode corrigir problemas antigos que envolvem segurança e performance. Outros especialistas, entre eles Douglas Crockford, acreditam que o modelo proposto no ES4 descaracteriza totalmente a linguagem atual deixando a programação no browser mais parecida com Java e outras linguagens igualmente rígidas.</p>
<p>Eu acredito que exista espaço para muitas melhorias na forma como fazemos as coisas no browser, algumas coisas citadas por Brendan em seu blog fazem muito sentido, mas como foi citado por Douglas Crockford no vídeo <a href="http://developer.yahoo.net/blogs/theater/archives/2007/10/the_state_of_ajax_douglas_crockford.html">The State of Ajax</a> o browser de hoje já está sofrendo os efeitos da idade. Sejamos realistas, o que as pessoas querem são experiências mais ricas e interativas, sistemas operacionais rebuscados e processadores multi-core estão pipocando pelo mundo enquanto no browser ainda ficamos maravilhados a cada drag &amp; drop, toda vez que alguém cria uma interface relativamente inteligente e com recursos que seriam absurdamente banais se o runtime fosse por exemplo o flash e não um browser, nós aplaudimos e o cara ganha seu pequeno artigo no Ajaxian.</p>
<p><span id="more-44"></span>As aplicações Ajax do futuro, assim como as bibliotecas Javascript podem ser muito melhores e mais eficientes do que as de hoje. A proposta do ES4 fala justamente disso, de criar um ambiente onde os desenvolvedores de bibliotecas vão encontrar as ferramentas para programação séria (tipos, iterators, constantes, classes e um compilador JIT por exemplo) sem no entanto abrir mão de um subset simplificado para os webdevelopers acostumados aos prototypes da linguagem atual. Existe hoje uma corrida para fazer com que o browser seja mais multimídia e tenha uma performance melhor para conteúdos mais sofisticados, além do Tamarin e do ES4 é possível ver as equipes dos browsers competindo para implementar o &#8220;triturador de html&#8221; mais rápido da internet (até agora a vantagem é do Safari), canvas, canvas 3D, tags de vídeo e áudio&#8230; uma verdadeira festa.</p>
<p>Só que nesses esforços não existe coesão, a Microsoft não disse em nenhum momento que suporta o ES4, pelo contrário&#8230; provavelmente veremos uma versão do EcmaScript 3 bem mais enxuta nos próximos browsers da MS,  e sem o IE não temos  um padrão, nós sequer sabemos como será o Internet Explorer 8 e que novidades ele vai trazer para a comunidade de desenvolvedores. Enquanto o browser não evolui temos Silverlight e Flash correndo por fora como plataformas RIA, eu não me atreveria a dizer que uma dessas tecnologias virá a substituir o HTML e o modelo de internet que temos hoje, mas a constatação é óbvia, o ser humano não usa aquilo que é melhor&#8230; ele usa aquilo que está amplamente disponível.</p>
<p>Estou esperando, por mais estranho que possa parecer acredito que a única empresa realmente mirando na direção certa é a Microsoft, a idéia de usar o EcmaScript 3 como base me parece boa já que a linguagem vai continuar compacta, é diferente do monstro proposto no ES4 e a Microsoft ainda se garante com o Silverlight para quem quiser &#8220;algo a mais&#8221;.</p>
<p>Que Deus nos livre de viver outra era de incompatibilidades no melhor estilo Netscape vs IE.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daviduarte.net/2007/12/03/brendan-eich-vs-the-lambda-javascript-programming/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Silverlight 1.1 Tools for Visual Studio 2008</title>
		<link>http://www.daviduarte.net/2007/11/29/silverlight-11-tools-for-visual-studio-2008/</link>
		<comments>http://www.daviduarte.net/2007/11/29/silverlight-11-tools-for-visual-studio-2008/#comments</comments>
		<pubDate>Thu, 29 Nov 2007 08:19:23 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[ASP.NET]]></category>

		<category><![CDATA[C#]]></category>

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

		<guid isPermaLink="false">http://www.daviduarte.net/2007/11/29/silverlight-11-tools-for-visual-studio-2008/</guid>
		<description><![CDATA[Quem já estiver com o Visual Studio 2008 em mãos já pode fazer o dowload mais atualizado do pacote Microsoft Silverlight 1.1 Tools Alpha for Visual Studio 2008. São as mesmas ferramentas que estavam disponíveis para o Beta 2.

Templates para projetos Silverlight 1.1 em VB e C#
Website templates para desenvolvimento Silverlight 1.0 usando javascript
Editor de [...]]]></description>
			<content:encoded><![CDATA[<p>Quem já estiver com o Visual Studio 2008 em mãos já pode fazer o dowload mais atualizado do pacote <em><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=25144C27-6514-4AD4-8BCB-E2E051416E03&amp;displaylang=en">Microsoft Silverlight 1.1 Tools Alpha for Visual Studio 2008</a></em>. São as mesmas ferramentas que estavam disponíveis para o Beta 2.</p>
<ul>
<li>Templates para projetos Silverlight 1.1 em VB e C#</li>
<li>Website templates para desenvolvimento Silverlight 1.0 usando javascript</li>
<li>Editor de XAML com syntax highlight e intellisense</li>
<li>Intellisense para elementos XAML nos arquivos code-behind VB e C#</li>
<li>Integração de componentes Silverlight em projetos Web.</li>
<li>Possibilidade de criar referências de Web Services em um componente Silverlight.</li>
<li>Integração com Expression Blend para facilitar a cooperação entre designers e programadores</li>
</ul>
<p>Para quem realmente quer tirar proveito da capacidade do WPF e do Silverlight é fundamental ter a mão um editor gráfico de XAML como o Expression Blend, uma das maiores inovações do framework 3.5 é justamente essa habilidade de gerar interfaces  sofisticadas, mas o Visual Studio não é uma ferramenta de design e você logo vai notar que editar XAML na mão não é das tarefas mais divertidas. Vale o esforço, quem aprender a usar o Blend direitinho vai poder usar seus truques tanto em aplicações WPF e Xbap usando VB e C# quanto em aplicações Silverlight, onde o modelo de eventos é programado em Javascript (o que poderia ser mais divertido?). Infelizmente nada de doce para as crianças que estiverem brincando de Visual Web Developer Express Edition, mas eu acredito que os recursos possam ser integrados depois, já que existem templates de projeto WPF no Visual C# 2008 Express Edition.</p>
<p>É o melhor de 2 mundos, mesmo com as ferramentas ainda em estágio 1.0 (quase Alpha) esse é com toda certeza o futuro das aplicações Windows e RIA em plataformas Microsoft.</p>
<p><img src="http://www.daviduarte.net/wp-content/uploads/2007/11/silverlight_tools.jpg" alt="silverlight_tools.jpg" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.daviduarte.net/2007/11/29/silverlight-11-tools-for-visual-studio-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>&#8220;A fast guy in tights and a movie about Coffee&#8221;</title>
		<link>http://www.daviduarte.net/2007/11/19/a-fast-guy-in-tights-and-a-movie-about-coffee/</link>
		<comments>http://www.daviduarte.net/2007/11/19/a-fast-guy-in-tights-and-a-movie-about-coffee/#comments</comments>
		<pubDate>Mon, 19 Nov 2007 14:04:34 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[Fun]]></category>

		<guid isPermaLink="false">http://www.daviduarte.net/2007/11/19/a-fast-guy-in-tights-and-a-movie-about-coffee/</guid>
		<description><![CDATA[




Se eventualmente alguém não pescou, &#8220;a fast guy in tights&#8221; ou &#8220;um cara rápido usando colan&#8221; = Flash (The Flash, o herói), e &#8220;a movie about coffee&#8221; ou &#8220;um filme sobre café&#8221; = Java &#8220;Script&#8221;.
Dilbert &#62; Resto
]]></description>
			<content:encoded><![CDATA[<table>
<tr>
<td><img src="http://www.daviduarte.net/wp-content/uploads/2007/11/flash_and_js_dilbert.gif" alt="flash_and_js_dilbert.gif" /></td>
</tr>
</table>
<p>Se eventualmente alguém não pescou, &#8220;a fast guy in tights&#8221; ou &#8220;um cara rápido usando colan&#8221; = Flash (The Flash, o herói), e &#8220;a movie about coffee&#8221; ou &#8220;um filme sobre café&#8221; = Java &#8220;Script&#8221;.</p>
<p>Dilbert &gt; Resto</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daviduarte.net/2007/11/19/a-fast-guy-in-tights-and-a-movie-about-coffee/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
