<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Erko Bridee &#187; Web</title>
	<atom:link href="http://blog.erkobridee.com/c/dev/dev_web/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.erkobridee.com</link>
	<description>Uma visão particular de assuntos atuais…</description>
	<lastBuildDate>Thu, 16 May 2013 13:50:44 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>AngularJS &#8211; Consumindo a API do GitHub</title>
		<link>http://blog.erkobridee.com/2012/07/26/angularjs-consumindo-a-api-do-github/</link>
		<comments>http://blog.erkobridee.com/2012/07/26/angularjs-consumindo-a-api-do-github/#comments</comments>
		<pubDate>Thu, 26 Jul 2012 17:02:00 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[angularjs]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[poc]]></category>

		<guid isPermaLink="false">http://blog.erkobridee.com/?p=2718</guid>
		<description><![CDATA[Post sobre um teste que realizei utilizando o Angular.js acessando a api do GitHub]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Eis que estava me atualizando e retornando ao mundo do HTML + JS + CSS, com isso a primera tarefa foi ver o que havia de bom no mercado. Observei que as libs e frameworks de JavaScript evoluiram al&eacute;m do que eu havia imaginado. Durante meus estudos e pesquisas acabei vendo muitos exemplos, onde as pessoas estavam utilizando o <a href="http://backbonejs.org/">Backbone.js</a>&nbsp;(<a href="http://delicious.com/erko.bridee/backbonejs">alguns links sobre</a>), por&eacute;m n&atilde;o gostei muito da forma de trabalho, ent&atilde;o um dia conversando com a galera na internet, o <a href="https://twitter.com/vedovelli">@vedovelli</a> comentou sobre o <a href="http://angularjs.org/">Angular.js</a> e outras pessoas al&eacute;m dele tamb&eacute;m me falaram muito bem a seu respeito, com isto resolvi construir uma aplica&ccedil;&atilde;o e mecher um pouco para ver como &eacute; que ele se comporta durante o desenvolvimento de uma aplica&ccedil;&atilde;o.</p>
<p><a href="http://blog.erkobridee.com/wp-content/uploads/2012/07/angularjs-logo.png"><img alt="" class="aligncenter size-medium wp-image-2719" height="161" src="http://blog.erkobridee.com/wp-content/uploads/2012/07/angularjs-logo-300x161.png" title="AngularJS — Superheroic JavaScript MVC Framework" width="300" /></a></p>
<blockquote>
<p>Com a miss&atilde;o de enriquecer o vocabul&aacute;rio HTML o framework <a href="http://angularjs.org/">AngularJS</a> chega com a marca Google de simplicidade e promete um workflow diferente para os desenvolvedores.</p>
</blockquote>
<p>&nbsp;</p>
<p>Aten&ccedil;&atilde;o n&atilde;o tenho inten&ccedil;&atilde;o de escrever um post introdut&oacute;rio sobre o Angular.js, caso queira algo mais inicial recomendo antes de continuar a leitura ver os respectivos post&#39;s:&nbsp;</p>
<p style="margin-left: 40px; "><a href="http://blog.vedovelli.com.br/?p=1946">Vedovelli -&nbsp;Introdu&ccedil;&atilde;o ao AngularJS</a></p>
<p style="margin-left: 40px; "><a href="http://tableless.com.br/criando-uma-aplicacao-simples-com-angularjs/">Tableless -&nbsp;Criando uma aplica&ccedil;&atilde;o simples com AngularJS</a></p>
<p>&nbsp;</p>
<p><strong>O que me chamou aten&ccedil;&atilde;o e me agradou no Angular.js?</strong></p>
<p style="margin-left: 40px; ">Como venho do desenvolvimento de sistemas utilizando o Adobe Flex, sempre gostei da facilidade e flexibilidade para o desenvolvimento e defini&ccedil;&otilde;es de novos componentes, al&eacute;m da facilidade de programa&ccedil;&atilde;o oferecida pelo Flex. Algo similar a essa caracter&iacute;stica observei no Angular.js, em resumo, achei muito f&aacute;cil e pr&aacute;tico desenvolver uma aplica&ccedil;&atilde;o utilizando o Angular.js.</p>
<p style="margin-left: 40px; ">O Angular.js possui uma funcionalidade de inje&ccedil;&atilde;o de depend&ecirc;ncias que &eacute; muito inteligente e funciona muito bem. Por si s&oacute; ele j&aacute; consegue reconhecer os parametros dos controllers e injetar o respectivo objeto referente ao nome do param&acirc;metro.</p>
<p style="margin-left: 40px; ">Por&eacute;m o Angular.js n&atilde;o te limita e restringe a utilizar obrigat&oacute;riamente estes nomes, que ele j&aacute; sabe tratar, caso queira, voc&ecirc; pode definir livremente o nome do parametro que desejar, ent&atilde;o, basta definir o que deve ser injetado na respectiva sequ&ecirc;ncia dos par&acirc;metros que foi definido na <em>function</em>, conforme descrito na documenta&ccedil;&atilde;o (<a href="http://code.angularjs.org/1.0.1/docs-1.0.1/api/AUTO.$injector">link $injector</a>):</p>
<p><script src="https://gist.github.com/3182467.js"> </script></p>
<p style="margin-left: 40px; ">Outro ponto forte do Angular.js que me agradou &eacute; sua documenta&ccedil;&atilde;o: <a href="http://code.angularjs.org/1.0.1/docs-1.0.1/api">Doc 1.0.1</a> / <a href="http://docs.angularjs.org/guide/">Guide</a></p>
<p style="margin-left: 40px; ">&nbsp;</p>
<p><strong>Qual teste que eu realizei utilizando o Angular.js?</strong></p>
<p style="margin-left: 40px; ">J&aacute; aviso, n&atilde;o fui nada criativo, resolvi construir a minha vers&atilde;o da aplica&ccedil;&atilde;o:&nbsp;<strong><em>AngularJS GitHub Contributors</em></strong> ( <a href="http://daha.github.com/angularJS-github-contributors/">app</a> | <a href="https://github.com/daha/angularJS-github-contributors">github</a> ), a qual acessava a API do GitHub e lista os reposit&oacute;rios p&uacute;blicos de um determinado usu&aacute;rio e respectivos contribuidores dos reposit&oacute;rios. Onde esta aplicac&atilde;o utiliza a <a href="http://yuilibrary.com/">YUI Library</a> do Yahoo para a defini&ccedil;&atilde;o da interface.</p>
<p style="margin-left: 40px; ">No meu caso reconstrui a aplica&ccedil;&atilde;o utilizando como base o <a href="http://twitter.github.com/bootstrap">Twitter Bootstrap</a> para a defini&ccedil;&atilde;o do layout da aplica&ccedil;&atilde;o, e mudei algumas caracter&iacute;sticas da organiza&ccedil;&atilde;o do c&oacute;digo, por&eacute;m na ess&ecirc;ncia a id&eacute;ia e aplica&ccedil;&atilde;o &eacute; a mesma, com o adicional da listagem dos Gists p&uacute;blicos do usu&aacute;rio.</p>
<p style="margin-left: 40px; ">Outra diferen&ccedil;a na implementa&ccedil;&atilde;o deste projeto foi a utiliza&ccedil;&atilde;o do modelo de Closures para a defini&ccedil;&atilde;o dos controllers (<em>github</em>: <a href="https://github.com/erkobridee/angularjs-github-info/blob/master/app/js/controllers.js">controllers.js</a>), seguindo uma boa pr&aacute;tica de programa&ccedil;&atilde;o com JavaScript. Lembrando que o escopo de qualquer declara&ccedil;&atilde;o de vari&aacute;vel e/ou fun&ccedil;&atilde;o &eacute; global valido para todo o HTML em execu&ccedil;&atilde;o pelo browser, o que pode gerar alguns problemas conforme a aplica&ccedil;&atilde;o cresce de tamanho.</p>
<p style="margin-left: 40px; ">Um recurso que utilizei nesta aplica&ccedil;&atilde;o foi o roteamento das URLs da aplica&ccedil;&atilde;o (<em>github</em>: <a href="https://github.com/erkobridee/angularjs-github-info/blob/master/app/js/app.js">app.js</a>) e inje&ccedil;&atilde;o dos respectivos templates de html no (<em>github</em>: <a href="https://github.com/erkobridee/angularjs-github-info/blob/master/app/index.html">index.html)</a>, onde est&aacute; a defini&ccedil;&atilde;o do <em>div</em> com o atributo <em>ng-view</em></p>
<p>&nbsp;</p>
<p><strong>Mas onde est&aacute; esta aplica&ccedil;&atilde;o que at&eacute; aqui voc&ecirc; apenas falou?</strong></p>
<p><a href="http://blog.erkobridee.com/wp-content/uploads/2012/07/angularjs-github-info-app.png"><img alt="" class="aligncenter size-medium wp-image-2720" height="149" src="http://blog.erkobridee.com/wp-content/uploads/2012/07/angularjs-github-info-app-300x149.png" style="" title="Angular.js - GitHub Info" width="300" /></a></p>
<p style="margin-left: 40px; ">Calma, calma, segue o link: ver a <a href="http://erkobridee.github.io/angularjs-github-info/">aplica&ccedil;&atilde;o em execu&ccedil;&atilde;o</a> / <a href="https://github.com/erkobridee/angularjs-github-info">c&oacute;digo no github.</a></p>
<p>&nbsp;</p>
<p><strong>E a estrutura ad aplica&ccedil;&atilde;o?</strong></p>
<div style="margin-left: 40px; ">
<div><strong><em>/angularjs-github-info</em></strong></div>
<div><strong><em>&nbsp; &nbsp; /css</em></strong></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; app.css</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o dos estilos da utilizados na aplica&ccedil;&atilde;o</span></div>
<div><strong><em>&nbsp; &nbsp; /js</em></strong></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; app.js&nbsp;</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o dos roteamento das URLs para os respectivos templates e controllers</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; components.js</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o das tags das abas</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; controllers.js</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o das regras e processamentos das telas, utilizando Closure</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; services.js</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o do acesso a API do GitHub</span></div>
<div><strong><em>&nbsp; &nbsp; /tpl</em></strong></div>
<div><strong><em>&nbsp; &nbsp; &nbsp; &nbsp; /github</em></strong></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; repo-constributors.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o da listagem das pessoas que contribuiram no projeto</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; repo-info.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Informa&ccedil;&otilde;es do reposit&oacute;rio selecionado</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; repo.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o do layout referente a tela de visualiza&ccedil;&atilde;o das informa&ccedil;&otilde;es do reposit&oacute;rio</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; user-gists.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o da listagem dos gists p&uacute;blicos de um determinado usu&aacute;rio</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; user-info.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Informa&ccedil;&otilde;es de um usu&aacute;rio do GitHub</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; user-repos.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o da listagem dos reposit&oacute;rios p&uacute;blicos de um determinado usu&aacute;rio</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; user.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Defini&ccedil;&atilde;o do layout referente a tela de visualiza&ccedil;&atilde;o das informa&ccedil;&otilde;es do usu&aacute;rio</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; about.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Informa&ccedil;&otilde;es a respeito da aplica&ccedil;&atilde;o</span></div>
<div><span style="color:#2f4f4f;">&nbsp; &nbsp; &nbsp; &nbsp; search.html</span></div>
<div><span style="color:#0000ff;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; P&aacute;gina inicial injetada pelo AngularJS definido no js/app.js</span></div>
<div><span style="color:#8b4513;">&nbsp; &nbsp; index.html</span></div>
</div>
<div style="margin-left: 40px; ">&nbsp;</div>
<div>&nbsp;</div>
<div><strong>Considera&ccedil;&otilde;es finais:</strong></div>
<div>&nbsp;</div>
<div>O Angular.js me surpreendeu bastante, e caso no seu caso, assim como eu vem do desenvolvimento de sistemas com Adobe Flex, ao utilizar o Angular.js, prov&aacute;vel que voc&ecirc; se sinta em casa.</div>
<div>&nbsp;</div>
<div>Utilizando ele consegui facilmente trabalhar no modelo Cliente e Servidor, realizando a comunica&ccedil;&atilde;o atrav&eacute;s de RESTful, sendo este formato similar ao que usava no Flex onde a comunica&ccedil;&atilde;o era realizada atrav&eacute;s de servi&ccedil;os utilizando o protocolo AMF.</div>
<div>&nbsp;</div>
<div>Bom, mas aqui deixo uma dica, n&atilde;o basta apenas migrar para o Angular.js, recomento que voc&ecirc; invista no aprendizado do JavaScript, e &eacute; s&eacute;rio, n&atilde;o ache que voc&ecirc; sabe programar JavaScript, n&atilde;o cometa o mesmo erro que cometi. O JavaScript possui suas peculiaridades pr&oacute;prias, onde at&eacute; a forma de escrever a sintaxe dos seus c&oacute;digos podem e muito provavelmente v&atilde;o impactar na execu&ccedil;&atilde;o do seu c&oacute;digo JavaScript.</div>
<div>&nbsp;</div>
<div>Mas vou lhe poupar um pouco o trabalho, segue minhas recomenda&ccedil;&otilde;es para o caso:</div>
<div>&nbsp;</div>
<div style="margin-left: 40px; "><a href="https://www.youtube.com/watch?v=hQVTIJBZook">Google Tech Talks 2009 : JavaScript &#8211; The Good Parts</a></div>
<div style="margin-left: 40px; ">&nbsp;</div>
<div style="margin-left: 40px; "><a href="https://www.youtube.com/watch?v=mHtdZgou0qU">Google Tech Talks 2009 : Speed Up Your JavaScript</a></div>
<div style="margin-left: 40px; ">&nbsp;</div>
<div style="margin-left: 40px; "><a href="https://www.youtube.com/watch?v=UJPdhx5zTaw">Google I/O 2012 &#8211; Breaking the JavaScript Speed Limit with V8</a></div>
<div style="margin-left: 40px; ">&nbsp;</div>
<div style="margin-left: 40px; "><a href="http://www.codeschool.com/courses/jquery-air-first-flight">Curso gratu&iacute;to da Code School : JQuery</a></div>
<div style="margin-left: 40px; ">&nbsp;</div>
<div style="margin-left: 40px; "><a href="https://developer.mozilla.org/en/JavaScript/Strict_mode">JavaScript &#8211; Strict Mode &#8211; MDN</a></div>
<div style="margin-left: 40px; ">&nbsp;</div>
<div style="margin-left: 40px; "><a href="http://www.smashingmagazine.com/learning-javascript-essentials-guidelines-tutorials/">Learning JavaScript: Essentials And Guidelines</a></div>
<div style="margin-left: 40px; ">&nbsp;</div>
<div style="margin-left: 40px; "><a href="http://omar.gy/how-i-ended-up-enjoying-javascript/">How I Ended Up Enjoying JavaScript</a></div>
<div style="margin-left: 40px; ">&nbsp;</div>
<div>&nbsp;</div>
<div><strong>Vai um b&ocirc;nus ai?!</strong></div>
<div>&nbsp;</div>
<div>Percebeu que eu fiz a publica&ccedil;&atilde;o da aplica&ccedil;&atilde;o diretamente no GitHub? Eis a dica de como fazer o mesmo: <a href="https://gist.github.com/833223">neste gist</a></div>
<div>&nbsp;</div>
<div>Segue meus links salvos sobre: <a href="http://delicious.com/erko.bridee/angular.js">Angular.js</a> / <a href="http://delicious.com/erko.bridee/backbone.js">Backbone.js</a> / <a href="http://delicious.com/erko.bridee/javascript">JavaScript</a></div>
<div>&nbsp;</div>
<div>Outros projetos de exemplo, que utiliza o Angular.js no <a href="https://github.com/erkobridee">Github</a>, com nomes iniciados por: <strong>restful-bookmarks-&#8230;</strong></div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div><strong>Atualiza&ccedil;&otilde;es (Maio/2013):</strong></div>
<div>&nbsp;</div>
<div>- C&oacute;digo da aplica&ccedil;&atilde;o foi movido para o diret&oacute;rio <em><strong>/app</strong></em></div>
<div>&nbsp;</div>
<div>- Foi adicionado o <a href="http://gruntjs.com/">Grunt.js</a> ao projeto, para facilitar o desenvolvimento e atualiza&ccedil;&atilde;o do branch <em><strong>gh-pages</strong></em> (o Grunt.js precisa do <a href="http://nodejs.org/">Node.js</a> para executar)&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
</div>
<div class="wp_rp_wrap  wp_rp_plain" id="wp_rp_first"><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2011/11/25/voltando-ao-mundo-htmljs-e-agora/" class="wp_rp_title">Voltando ao mundo HTML+JS e agora?</a></li><li ><a href="http://blog.erkobridee.com/2011/12/05/play-framework-alta-produtividade-em-java/" class="wp_rp_title">Play Framework &#8211; alta produtividade em Java</a></li><li ><a href="http://blog.erkobridee.com/2010/02/17/adobe-flex-definindo-o-foco-na-aplicacao/" class="wp_rp_title">[Adobe Flex] Definindo o foco na aplicação</a></li><li ><a href="http://blog.erkobridee.com/2012/11/16/node-js-javascript-no-servidor/" class="wp_rp_title">Node.js &#8211; JavaScript no Servidor [visão geral]</a></li><li ><a href="http://blog.erkobridee.com/2011/11/28/coffeescript-lidando-com-javascript-sem-sofrimento/" class="wp_rp_title">CoffeeScript, lidando com JavaScript sem sofrimento</a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=2718&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2012/07/26/angularjs-consumindo-a-api-do-github/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Play Framework &#8211; alta produtividade em Java</title>
		<link>http://blog.erkobridee.com/2011/12/05/play-framework-alta-produtividade-em-java/</link>
		<comments>http://blog.erkobridee.com/2011/12/05/play-framework-alta-produtividade-em-java/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 18:15:05 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Play Framework]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[RESTful]]></category>

		<guid isPermaLink="false">http://blog.erkobridee.com/?p=2651</guid>
		<description><![CDATA[O Play &#233; um framework open source para aplica&#231;&#245;es web, escrito em Java, que possibilita o desenvolvimento de aplica&#231;&#245;es web que seguem o padr&#227;o MVC. Tem por objetivo otimizar a produtividade do desenvolvedor atrav&#233;s do uso de configura&#231;&#227;o sobre conven&#231;&#227;o (CoC). Com recompila&#231;&#227;o feita durante a execu&#231;&#227;o da aplica&#231;&#227;o, e caso ocorra algum erro, o [...]]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>O Play &eacute; um framework open source para aplica&ccedil;&otilde;es web, escrito em Java, que possibilita o desenvolvimento de aplica&ccedil;&otilde;es web que seguem o padr&atilde;o MVC. Tem por objetivo otimizar a produtividade do desenvolvedor atrav&eacute;s do uso de configura&ccedil;&atilde;o sobre conven&ccedil;&atilde;o (CoC). Com recompila&ccedil;&atilde;o feita durante a execu&ccedil;&atilde;o da aplica&ccedil;&atilde;o, e caso ocorra algum erro, o respectivo &eacute; exibido no browser, indicando a linha do erro.</p>
<blockquote>
<p><strong>Aten&ccedil;&atilde;o:</strong> o objetivo desse post &eacute; realizar uma vis&atilde;o geral do que se trat&aacute; o Play Framework que temos ouvidos os coment&aacute;rios na internet.</p>
</blockquote>
<p>&nbsp;</p>
<p style="text-align: center;"><strong>O Play Framework torna o desenvolvimento de aplica&ccedil;&otilde;es Java e Scala uma tarefa f&aacute;cil para o desenvolvedor.</strong></p>
<p><a href="http://blog.erkobridee.com/wp-content/uploads/2011/12/playFrameworkGreenLogo.jpg" rel="" style="" target="" title=""><img alt="" class="aligncenter size-full wp-image-2652" height="" src="http://blog.erkobridee.com/wp-content/uploads/2011/12/playFrameworkGreenLogo.jpg" style="" title="playFrameworkGreenLogo" width="500" /></a></p>
<blockquote>
<p><strong>Site:</strong> <a href="http://www.playframework.org/">Play Framework</a></p>
<p>Descubra uma alternativa limpa e leve para as atuais aplica&ccedil;&otilde;es Java Enterprise. O Play &eacute; focado na produtividade do desenvolvedor e tem por alvo a arquitetura RESTFul.</p>
</blockquote>
<p>Apesar do Play ter sido escrito em Java, ele suporta a linguagem Scala desde a vers&atilde;o 1.1 (hoje[Dezembro/2011] est&aacute; na vers&atilde;o 1.2.4). Este ano a empresa <a href="http://typesafe.com/">Typesafe</a> (respons&aacute;vel pela linguagem Scala), <a href="http://groups.google.com/group/play-framework/browse_thread/thread/6d5783e28efb6931#">anunciou</a> a aquisi&ccedil;&atilde;o do Play Framework e este ser&aacute; mantido pela empresa. Uma das novidades relacionado a este anuncio &eacute; que a vers&atilde;o 2.0 o n&uacute;cleo do Play Framework est&aacute; sendo totalmente reescrito em Scala.</p>
<p>&nbsp;</p>
<p>Um v&iacute;deo para uma breve apresenta&ccedil;&atilde;o do Play Framework: <strong>Desenvolcendo uma aplica&ccedil;&atilde;o web em 10 minutos</strong></p>
<p style="text-align: center;"><iframe allowfullscreen="" frameborder="0" height="281" mozallowfullscreen="" src="http://player.vimeo.com/video/7087610?title=0&amp;byline=0&amp;portrait=0&amp;color=ffffff" webkitallowfullscreen="" width="500"></iframe></p>
<p>&nbsp;</p>
<h3>Motiva&ccedil;&atilde;o</h3>
<p>O Play foi muito inspirado no Ruby on Rails e Django. Um desenvolvedor familiarizado com qualquer um desses 2, ir&aacute; se sentir em casa.</p>
<blockquote>
<p>Algo que &eacute; fato, Ruby on Rails e Django s&atilde;o produtivos, ent&atilde;o por que n&atilde;o ter o mesmo n&iacute;vel de produtividade com java?</p>
</blockquote>
<p>O Play utiliza do poder das aplica&ccedil;&otilde;es Java, por&eacute;m sem o &quot;sofrimento&quot; necess&aacute;rio para o desenvolvimento de aplica&ccedil;&otilde;es centradas no modelo Java Enterprise. Libertando das metodologias e ideologias relacionadas ao desenvolvimento de aplica&ccedil;&otilde;es Java EE, o Play prove para os desenvolvedores uma maneira f&aacute;cil e elegante de trabalhar, visando o aumento da produtividade.</p>
<blockquote>
<p>Caso voc&ecirc; queria, basta um editor de c&oacute;digo e ser&aacute; mais que o suficiente para o desenvolvimento de aplica&ccedil;&otilde;es, chega a ser incr&iacute;vel pensar que conseguiremos desenvolver aplica&ccedil;&otilde;es Java Web sem a necessidade de um IDE (Eclipse, Netbeans, &#8230;), mas vale lembrar, que estas IDE&#39;s ainda possuem seus atrat&iacute;vos e auxiliam em nossa produtividade.</p>
</blockquote>
<p>Apesar de que as aplica&ccedil;&otilde;es desenvolvidas com o Play, foram projetadas para executar dentro do <a href="http://www.jboss.org/netty">JBoss Netty Web Server</a>, as aplica&ccedil;&otilde;es podem ser empacotadas em arquivos WAR e distribu&iacute;das para outros servidores de aplica&ccedil;&otilde;es Java EE (ex.: <a href="http://tomcat.apache.org/">Apache Tomcat</a>).<br />
	&nbsp;</p>
<h3>Maiores diferen&ccedil;as com os demais frameworks</h3>
<p><strong>Stateless:</strong> o Play &eacute; totalmente RESTful &#8211; n&atilde;o existe conex&atilde;o por sess&atilde;o Java EE. Isto torna o Play muito mais escal&aacute;vel que os demais frameworks.</p>
<p><strong>Sem configura&ccedil;&atilde;o: </strong>realizar o download, descompactar e desenvolver.</p>
<p><strong>F&aacute;cil ida e volta:</strong> sem necessidade de deploy no servidor de aplica&ccedil;&atilde;o, apenas edite o c&oacute;digo e atualize o browser.</p>
<p><strong>Teste unit&aacute;rio integrado: </strong>suportes nativos para JUnit e Selenium.</p>
<p><strong>API elegante: </strong>raramente um desenvolvedor ter&aacute; a necessidade de importar alguma lib. O Play j&aacute; disponibiliza a maioria dos recursos necess&aacute;rios para o desenvolvimento de uma aplica&ccedil;&atilde;o.</p>
<p><strong>M&eacute;todos est&aacute;ticos:</strong> todos os controles de entrada e m&eacute;todos de neg&oacute;cio s&atilde;o declarados como est&aacute;ticos. E isto &eacute; de fato bem diferente o que vemos nos demais frameworks Java.</p>
<p><strong>I/O Ass&iacute;ncrona:</strong> atrav&eacute;s do uso do servidor web JBoss Netty, o Play consegue disponibilizar e tratar uma enorme quantidade de requisi&ccedil;&otilde;es ass&iacute;ncronas.</p>
<p><strong>Arquitetura Modular:</strong> assim como Rail e Django, o Play utiliza o conceito de m&oacute;dulos. O que possibilida um meio elegante e simples de expandir o core do Play.</p>
<p><strong>M&oacute;dulo CRUD:</strong> f&aacute;cil constru&ccedil;&atilde;o de UI administrativas com pouco c&oacute;digo.</p>
<p><strong>M&oacute;dulo Scala:</strong> disponibiliza um suporte completo para Scala.</p>
<p>&nbsp;</p>
<h3>Componentes</h3>
<p><em><strong>O Play utiliza massivamente algumas bibliotecas populares:</strong></em></p>
<ul>
<li>JBoss Netty para o servidor web.</li>
<li>Hibernate para a camada de dados.</li>
<li>Groovy para a os templates.</li>
<li>O compilador do Eclipse para atualiza&ccedil;&atilde;o da aplica&ccedil;&atilde;o sem necessidade de realizar um deploy da aplica&ccedil;&atilde;o para testar as altera&ccedil;&otilde;es (hot-reloading).</li>
<li><a href="http://ant.apache.org/ivy/">Apache Ivy</a> para gerencimanto de dependencias.</li>
</ul>
<p><em><strong>Funcionalidades presentes no n&uacute;cleo do Play:</strong></em></p>
<ul>
<li>Um framework RESTful limpo e leve.</li>
<li><em>CRUD:</em> um m&oacute;dulo para simplicifar a edi&ccedil;&atilde;o de modelos de objetos.</li>
<li><em>Secure:</em> um m&oacute;dulo para habilitar um sistema de autentifica&ccedil;&atilde;o de usu&aacute;rios.</li>
<li>Um framework de valida&ccedil;&atilde;o baseado em anota&ccedil;&otilde;es.</li>
<li>Um Job Scheduler (agendamento de tarefas).</li>
<li>Suporte para emails SMTP de maneira simples.</li>
<li>Suporte para JSON e XML.</li>
<li>Uma camada de persist&ecirc;ncia baseada em JPA.</li>
<li>Uma base de dados embutida para r&aacute;pido deploy e testes da aplica&ccedil;&atilde;o.</li>
<li>Um framework completo para realiza&ccedil;&atilde;o de testes.</li>
<li>Funcionalidade para upload de arquivos.</li>
<li>Suporte para m&uacute;ltiplos ambientes de desenvolvimento.</li>
<li>Uma poderosa engine de templates baseadas em Groovy com templates, hierarquias e tags.</li>
<li>Arquitetura modular, que possibilita criar novas funcionalidades para o n&uacute;cleo facilmente.</li>
<li>Suporte para OpenID e clientes de Web Service.</li>
</ul>
<p>&nbsp;</p>
<h3>Links &uacute;teis</h3>
<p>Informa&ccedil;&otilde;es a mais da <a href="http://en.wikipedia.org/wiki/Play_Framework">Wikipedia</a></p>
<p><a href="http://www.playframework.org/documentation/1.2.4/overview">Overview do Play Framework 1.2.4</a></p>
<p><a href="http://www.playframework.org/documentation/1.2.4/home">Documenta&ccedil;&atilde;o Play Framework 1.2.4</a></p>
<blockquote>
<p>A documenta&ccedil;&atilde;o foi algo que achei interessante, me parece bem completa com bastante exemplos e informa&ccedil;&otilde;es de como utilizar as funcionalidades presentes no Play Framework.</p>
</blockquote>
<p><a href="http://scala.playframework.org/">Suporte para a linguagem Scala</a></p>
<p><a href="http://www.playframework.org/documentation/1.2.4/ide">Utilize a IDE de sua prefer&ecirc;ncia (Eclipse, Netbeans, &#8230;)</a></p>
<blockquote>
<p>Se por um acaso voc&ecirc; utilize o Sublime Text 2, veja esse suporte para este editor de c&oacute;digo [<a href="https://github.com/MikeCase/SublimeText-2-Snippets/tree/master/Play%20Framework">github</a>]</p>
</blockquote>
<p><a href="http://www.playframework.org/modules">Reposit&oacute;rio de M&oacute;dulos</a></p>
<blockquote>
<p>Dentre eles temos: MongoDB, GAE, Gera&ccedil;&atilde;o de PDF, GWT, SASS e SCSS, entre outros.</p>
</blockquote>
<p>&nbsp;</p>
<h3>E agora?</h3>
<p>Bom agora que j&aacute; temos uma boa id&eacute;ia do que se trata o Play Framework &eacute; baixar e come&ccedil;ar a testar e ver se na pr&aacute;tica ele &eacute; bom mesmo.</p>
<blockquote>
<p>Hora de fazer o <a href="http://www.playframework.org/download">download</a>, <a href="http://www.playframework.org/documentation/1.2.4/install">instalar</a> e colocar a m&atilde;o no c&oacute;digo: <a href="http://www.playframework.org/documentation/1.2.4/home#guide">Tutorial para seguir e ver uma aplica&ccedil;&atilde;o do in&iacute;cio at&eacute; o &quot;fim&quot;</a></p>
</blockquote>
<p>Eu particularmente ainda possuo algumas quest&otilde;es em aberto para descobrir as respostas, dentre elas est&aacute; uma: <em>- Como &eacute; que eu utilizo o Play Framework em um projeto com uma equipe?</em> At&eacute; o momento s&oacute; tenho visto casos onde s&atilde;o apresentados desenvolvimetno de aplica&ccedil;&otilde;es r&aacute;pidas, por&eacute;m com um &uacute;nico desenvolvedor&#8230;</p>
<p>No meu caso eu vou atr&aacute;s dessa reposta.</p>
<p>&nbsp;</p>
</div>
<div class="wp_rp_wrap  wp_rp_plain" ><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2012/07/26/angularjs-consumindo-a-api-do-github/" class="wp_rp_title">AngularJS &#8211; Consumindo a API do GitHub</a></li><li ><a href="http://blog.erkobridee.com/2007/10/16/tutorial-jdj-adobe-flex-java/" class="wp_rp_title">Tutorial : JDJ : Adobe Flex &#038; Java </a></li><li ><a href="http://blog.erkobridee.com/2010/08/04/flerry-1-2-0-disponivel/" class="wp_rp_title">Flerry 1.2.0 disponível </a></li><li ><a href="http://blog.erkobridee.com/2010/02/19/projeto-java-web-axis2-publicando-no-weblogic-9-e-10/" class="wp_rp_title">Projeto Java Web + AXIS2 : publicando no Weblogic 9 e 10</a></li><li ><a href="http://blog.erkobridee.com/2010/05/12/adobe-flex-blazeds-e-um-problema-de-conexao-no-servidor/" class="wp_rp_title">Adobe Flex + BlazeDS e um problema de conexão no servidor</a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=2651&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2011/12/05/play-framework-alta-produtividade-em-java/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CoffeeScript, lidando com JavaScript sem sofrimento</title>
		<link>http://blog.erkobridee.com/2011/11/28/coffeescript-lidando-com-javascript-sem-sofrimento/</link>
		<comments>http://blog.erkobridee.com/2011/11/28/coffeescript-lidando-com-javascript-sem-sofrimento/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 17:11:14 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[CoffeeScript]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[NodeJS]]></category>

		<guid isPermaLink="false">http://blog.erkobridee.com/?p=2646</guid>
		<description><![CDATA[Como estou retornando ao mundo do HTML+JS &#233; inevit&#225;vel ter que voltar a codificar em JavaScript, certo? Bom, talvez n&#227;o&#8230; para isto temos o CoffeeScript que apresenta uma proposta bem interessante de sintaxe e codifica&#231;&#227;o que no final o resultado gerado &#233; JavaScript. &#160; CoffeeScript is Beautiful &#038; I Never Want to Write Plain JavaScript [...]]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Como estou retornando ao mundo do HTML+JS &eacute; inevit&aacute;vel ter que voltar a codificar em JavaScript, certo? Bom, talvez n&atilde;o&#8230; para isto temos o CoffeeScript que apresenta uma proposta bem interessante de sintaxe e codifica&ccedil;&atilde;o que no final o resultado gerado &eacute; JavaScript.</p>
<p>&nbsp;</p>
<p><strong>CoffeeScript is Beautiful &#038; I Never Want to Write Plain JavaScript Again</strong></p>
<p><script src="http://speakerdeck.com/embed/4e8c88f7ef13e60054000de9.js"></script></p>
<blockquote>
<p>O que achei interessante nessa apresenta&ccedil;&atilde;o foi a apresenta&ccedil;&atilde;o dos demais geradores de JavaScript, como GWT em java, entre outros, bom ao final dessa apresenta&ccedil;&atilde;o achei bem interessante e consider&aacute;vel o uso do CoffeeScript para gerar o JavaScript, utilizando uma sintaxe melhor e obviamente n&atilde;o apenas uma nova sintaxe, pois o CoffeeScript possui algumas facilita&ccedil;&otilde;es de codifica&ccedil;&atilde;o bem interessantes.</p>
</blockquote>
<p>&nbsp;</p>
<p>No pr&oacute;prio <a href="http://jashkenas.github.com/coffee-script/">site do CoffeeScript</a> possui alguns exemplos e um local onde voc&ecirc; pode escrever um coffeescript e ver o javascript resultado.</p>
<blockquote>
<p>Um fato que me chamou aten&ccedil;&atilde;o o compilador do CoffeeScript est&aacute; vinculado ao <a href="http://nodejs.org/">NodeJS</a>.</p>
<p><strong>Aten&ccedil;&atilde;o:</strong> vale lembrar que o CoffeeScript nada mais &eacute; que uma maneira diferente de codificar JavaScript, ou seja, caso queria utilizar jQuery ou outra lib JavaScript codificando via CoffeeScript &eacute; poss&iacute;vel (<a href="http://buhrmi.tumblr.com/post/5371876452/how-coffeescript-makes-jquery-more-fun-than-ever">How CoffeeScript makes jQuery more fun than ever</a>).</p>
</blockquote>
<p>&nbsp;</p>
<p><strong>Links &uacute;teis para instala&ccedil;&atilde;o do CoffeeScript:</strong></p>
<p><a href="http://www.blog.bridgeutopiaweb.com/post/how-to-install-coffeescript-on-mac-os-x/">How To Install CoffeeScript On Mac OS X</a></p>
<p><a href="http://quickleft.com/blog/5-steps-to-get-started-with-coffeescript">5 Steps to Get Started with CoffeeScript (Mac OS X)</a></p>
<p><a href="http://blog.danhulton.com/2011/05/27/node-js-and-coffeescript-on-windows-redux/">Node.js and CoffeeScript on Windows, Redux</a></p>
<p><a href="https://github.com/alisey/CoffeeScript-Compiler-for-Windows">CoffeeScript compilador para windows (GitHub)</a></p>
<p><a href="http://www.khelll.com/blog/coffeescript/installing-coffeescript-on-ubuntu/">Installing CoffeeScript on Ubuntu</a></p>
<p>&nbsp;</p>
<p><strong>Segue alguns links de introdu&ccedil;&atilde;o ao CoffeeScript:</strong></p>
<p><a href="http://arcturo.github.com/library/coffeescript/01_introduction.html">What is CoffeeScript?</a></p>
<p><a href="http://calicowebdev.com/2011/05/01/simple-coffeescript-introduction/">Simple CoffeeScript Introduction</a></p>
<p><a href="http://www.codeproject.com/Articles/240308/A-brief-introduction-to-CoffeeScript">A brief introduction to CoffeeScript</a></p>
<p><a href="http://ontwik.com/javascript/introduction-to-coffeescript-node-js-by-pedro-teixeira/">Introduction To Coffeescript &#038; Node.Js By Pedro Teixeira</a></p>
<p><a href="http://speakerdeck.com/u/foca/p/lets-have-a-cup-of-coffeescript">Let&#39;s Have a Cup of CoffeeScript</a></p>
<p>&nbsp;</p>
<p><strong>Plugin para os editores de c&oacute;digo: </strong></p>
<p><a href="https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins">CoffeeScript GitHub</a></p>
<p><a href="http://prototypef.tumblr.com/post/7211089141/adding-extra-coffeescript-goodies-to-sublime-text-2">Plugin para o Sublime Text 2</a></p>
<p><a href="http://wesbos.com/sublime-text-build-scripts/">Sublime Text 2 Build System Scripts: CoffeeScript &#038; Node</a></p>
<p><a href="https://github.com/HenriMorlaye/Coffeescript-package-for-Sublime-Text">Coffeescript package for Sublime Text (GitHub)</a></p>
<p><a href="http://soenkerohde.com/2011/11/coffeescript-with-sublime-text/">CoffeeScript with Sublime Text</a></p>
<p>&nbsp;</p>
</div>
<div class="wp_rp_wrap  wp_rp_plain" ><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2011/11/25/voltando-ao-mundo-htmljs-e-agora/" class="wp_rp_title">Voltando ao mundo HTML+JS e agora?</a></li><li ><a href="http://blog.erkobridee.com/2012/11/16/node-js-javascript-no-servidor/" class="wp_rp_title">Node.js &#8211; JavaScript no Servidor [visão geral]</a></li><li ><a href="http://blog.erkobridee.com/2012/11/16/utilizando-o-node-js-em-um-windows-xp-sem-administrador/" class="wp_rp_title">Utilizando o Node.js em um Windows XP sem Administrador</a></li><li ><a href="http://blog.erkobridee.com/2012/07/26/angularjs-consumindo-a-api-do-github/" class="wp_rp_title">AngularJS &#8211; Consumindo a API do GitHub</a></li><li ><a href="http://blog.erkobridee.com/2010/02/17/adobe-flex-definindo-o-foco-na-aplicacao/" class="wp_rp_title">[Adobe Flex] Definindo o foco na aplicação</a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=2646&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2011/11/28/coffeescript-lidando-com-javascript-sem-sofrimento/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Voltando ao mundo HTML+JS e agora?</title>
		<link>http://blog.erkobridee.com/2011/11/25/voltando-ao-mundo-htmljs-e-agora/</link>
		<comments>http://blog.erkobridee.com/2011/11/25/voltando-ao-mundo-htmljs-e-agora/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 18:36:04 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.erkobridee.com/?p=2641</guid>
		<description><![CDATA[N&#227;o adianta chorar o leite derramado, depois que a Adobe lan&#231;ou as &#250;ltimas not&#237;cias vemos que o mercado indo de vez para o HTML5 e n&#227;o adianta reclamar, daqui para frente mais projetos ir&#227;o demandar conhecimentos em HTML5 (novas tags), Javascript e sobre as novidades do CSS3. &#160; Voltando ao mundo HTML teremos que voltar [...]]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>N&atilde;o adianta chorar o leite derramado, depois que a Adobe lan&ccedil;ou as &uacute;ltimas not&iacute;cias vemos que o mercado indo de vez para o HTML5 e n&atilde;o adianta reclamar, daqui para frente mais projetos ir&atilde;o demandar conhecimentos em HTML5 (novas tags), Javascript e sobre as novidades do CSS3.</p>
<p>&nbsp;</p>
<p>Voltando ao mundo HTML teremos que voltar inevit&aacute;velmente ao uso do Javascript, mas ao menos a boa not&iacute;cia hoje &eacute; que diferente de anos atr&aacute;s temos dispon&iacute;veis boas bibliotecas javascript para nos ajudar na dif&iacute;cil tarefa de fazer uma aplica&ccedil;&atilde;o (que tente) funcionar em todos os principais web browsers do mercado (Google Chrome, Mozilla Firefox e o tem&iacute;vel IE)</p>
<p>&nbsp;</p>
<p>Quanto ao Javascript, hoje pelo que tenho visto &eacute; quase imposs&iacute;vel se falar em javascript sem associar ao <a href="http://jquery.com/">JQuery</a>, que ajuda muito a criar um c&oacute;digo mais limpo e organizado e at&eacute; podemos dizer, sofrer menos com o uso do javascript.</p>
<p>&nbsp;</p>
<p>Sobre Javascript e JQuery recomendo os respectivos materiais para observar:</p>
<p><strong>The JQuery Essentials</strong></p>
<p><script src="http://speakerdeck.com/embed/4ec71d4bcdc8570054004efb.js"></script></p>
<blockquote>
<p>Aos que ficaram interessados pelo JQuery o <a href="https://twitter.com/bielversallini">@bielversallini</a>&nbsp; mandou uma dica muito boa de curso web de JQuery, o <a href="http://jqueryair.com/">jQuery Air</a>, tamb&eacute;m <a href="http://jqfundamentals.com/book/">jQuery Fundamentals</a> e <a href="http://herberthamaral.com/2010/11/livro-fundamentos-de-jquery-100-traduzido-para-pt-br/">Livro fundamentos de jQuery 100% traduzido para pt-BR</a></p>
</blockquote>
<p>&nbsp;</p>
<p><strong>jQuery Proven Performance Tips &amp; Tricks, 2011</strong></p>
<p><script src="http://speakerdeck.com/embed/4eac727cb00e410054001c28.js"></script></p>
<blockquote>
<p>Confesso que desanimei ao ver esta apresenta&ccedil;&atilde;o, pois basicamente todos os recursos que gostei no JQuery s&atilde;o os mais lentos e recomendados para que n&atilde;o sejam usados a menos que n&atilde;o haja outra alternativa ou extremamente necess&aacute;rios.</p>
</blockquote>
<p>&nbsp;</p>
<p><strong>jQuery &amp; Responsive Web Design</strong></p>
<p><script src="http://speakerdeck.com/embed/4ec2d4ceb57aab005100228f.js"></script></p>
<blockquote>
<p>Excelente dica de como projetar uma p&aacute;gina/sistema que se adeque as dimens&otilde;es dispon&iacute;veis (por alguns este recurso &eacute; chamado de layout fuido/adaptativo). Como estou falando sobre layout recomendo olhar tambem o <a href="http://knockoutjs.com/">Knockout.js</a> que possui recursos interessantes para auxiliar na defini&ccedil;&atilde;o da view.</p>
</blockquote>
<p>&nbsp;</p>
<p>Agora para falar a verdade mesmo o melhor material sobre desenvolvimento HTML+JS que vi que o autor foi real e sincero sobre o tema &eacute; o respectivo abaixo:</p>
<p><strong>Taking JavaScript Seriously (feat. Backbone.js)</strong></p>
<p><script src="http://speakerdeck.com/embed/4eca4b8920e5210051009cf4.js"></script></p>
<blockquote>
<p>Como &eacute; dito nos slides, o javascript n&atilde;o &eacute; a melhor linguagem do mercado, ela foi escrita em 10 dias, possui muitas defici&ecirc;ncias, mas temos que aprender pois n&atilde;o temos nenhuma outra op&ccedil;&atilde;o.</p>
<p>Outro detalhe que me chamou aten&ccedil;&atilde;o e achei muito &uacute;til foi a apresenta&ccedil;&atilde;o do <a href="http://documentcloud.github.com/backbone/">Backbone.js</a> como uma alternativa para suprir a necessidade de organizar o c&oacute;digo em algo que tenta ser o mais pr&oacute;ximo poss&iacute;vel do MVC.</p>
</blockquote>
<p>&nbsp;</p>
<p>Mas e sobre arquitetura aplica&ccedil;&otilde;es de larga escala? Bom recomendo observar este material abaixo, o qual indica as boas prat&iacute;cas de mercado e atuais recursos dispon&iacute;veis:</p>
<p><strong>Large-scale JavaScript Application Architecture</strong></p>
<p><script src="http://speakerdeck.com/embed/4ec3f44095903900510005cf.js"></script></p>
<blockquote>
<p>Cheguei at&eacute; esta apresenta&ccedil;&atilde;o atrav&eacute;s deste <a href="http://addyosmani.com/blog/large-scale-javascript-application-architecture/">post</a>.</p>
<p><u><strong>Aten&ccedil;&atilde;o este texto a seguir expressa minha opini&atilde;o pessoal</strong></u></p>
<p>Sinceramente esta apresenta&ccedil;&atilde;o foi o santo gral da agonia, pois para mim se trata de uma regress&atilde;o tecnol&oacute;gica brutal, irei mudar esta minha opini&atilde;o no dia em que, eu consiga ter uma arquitetura com um mesmo n&iacute;vel que possuo hoje com Adobe Flex + Swiz, como a descrevi neste <a href="/?p=2134">post</a>, quando este dia chegar (se &eacute; que vai) irei dizer que podemos ent&atilde;o come&ccedil;ar a pensar em utilizar o HTML+JS para solu&ccedil;&otilde;es corporativas.</p>
</blockquote>
<p>&nbsp;</p>
<p>E vamos a luta, retornando ao velho mundo do HTML, por alguns chamados de revolucion&aacute;rio mundo do HTML5&#8230;</p>
<p>&nbsp;</p>
<p>Outros materiais interessantes para ler: <a href="http://speakerdeck.com/u/ynonperek/p/javascript-syntax">JavaScript Syntax</a> / <a href="http://speakerdeck.com/u/ynonperek/p/advanced-javascript">Advanced JavaScript</a> / <a href="http://speakerdeck.com/u/cedmax/p/javascript-as-a-programming-language-paris-web">Javascript as a programming language</a> / <a href="http://speakerdeck.com/u/searls/p/im-afraid-of-javascript">I&#39;m Afraid of JavaScript</a> / <a href="https://developer.mozilla.org/en/JavaScript">JavaScript MDN</a></p>
</div>
<div class="wp_rp_wrap  wp_rp_plain" ><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2012/07/26/angularjs-consumindo-a-api-do-github/" class="wp_rp_title">AngularJS &#8211; Consumindo a API do GitHub</a></li><li ><a href="http://blog.erkobridee.com/2011/11/28/coffeescript-lidando-com-javascript-sem-sofrimento/" class="wp_rp_title">CoffeeScript, lidando com JavaScript sem sofrimento</a></li><li ><a href="http://blog.erkobridee.com/2012/11/16/node-js-javascript-no-servidor/" class="wp_rp_title">Node.js &#8211; JavaScript no Servidor [visão geral]</a></li><li ><a href="http://blog.erkobridee.com/2010/02/17/adobe-flex-definindo-o-foco-na-aplicacao/" class="wp_rp_title">[Adobe Flex] Definindo o foco na aplicação</a></li><li ><a href="http://blog.erkobridee.com/2010/10/23/canvas-vs-flash-butterfly-3d-canvas-javascript/" class="wp_rp_title">[Canvas vs. Flash] Butterfly 3D (Canvas + JavaScript)</a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=2641&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2011/11/25/voltando-ao-mundo-htmljs-e-agora/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Adobe Flex : brigando contra o crossdomain : resolvendo com um xml-proxy</title>
		<link>http://blog.erkobridee.com/2009/02/28/adobe-flex-brigando-contra-o-crossdomain-resolvendo-com-um-xml-proxy/</link>
		<comments>http://blog.erkobridee.com/2009/02/28/adobe-flex-brigando-contra-o-crossdomain-resolvendo-com-um-xml-proxy/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 03:42:53 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Código]]></category>
		<category><![CDATA[Exemplo]]></category>
		<category><![CDATA[HttpService]]></category>
		<category><![CDATA[Utilidade]]></category>

		<guid isPermaLink="false">http://erkobridee.com/?p=224</guid>
		<description><![CDATA[A situação é a seguinte, você tem sua aplicação em Adobe Flex e precisa ler algo de algum domínio, no popular, de outro site, porém a adobe tem uma definição de crossdomain.xml que se isto estiver presente lá no site da onde você quer ler algo, pode restringir o acesso do seu aplicativo ao conteúdo... mas existe um meio de burlar isso, usando um proxy... no caso este post foi a solução de um xml-proxy em PHP que me resolveu o problema...]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Algumas vezes nossa aplicação em Adobe Flex/Flash esbarra no tal crossdomain.xml, que limita o acesso de uma aplicação da Adobe para o respectivo domínio, não possibilitando que sua aplicação no http://dominioA.dom acessar algo que está no http://dominioB.com, porque lá existe um crossdomain.xml que limita o acesso ao conteúdo apenas para as aplicações Adobe Flash/Flex para o seu respectivo domínio.<br />
&nbsp;<br />
Nessa hora que entra o tal do proxy, que nada mais é que um meio de caminho para acessar o conteúdo&#8230;<br />
&nbsp;<br />
Nesse post, refere-se a um script PHP que utilizei para conseguir acessar um XML em um domínio que não consegui acessar diretamente pela minha aplicação Flex, com isto o funcionamento ficou assim:</p>
<p style="text-align: center;">Aplicação Flex &gt; Script PHP &gt; Pega XML do outro dominio &gt; retorna para minha Aplicação Flex</p>
<p style="text-align: center;">( Realizar a chamada desse Script PHP, utilizando o HttpService do Adobe Flex)</p>
<p>&nbsp;<br />
eis o script:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p224code1'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2241"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code" id="p224code1"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">/*
	revisado por : Erko Bridee
	Fonte:
	http://cognitivecache.blogspot.com/2008/03/overcoming-cross-domain-issues-through.html
*/</span>
<span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'url'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> ? <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'url'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'url'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/header"><span style="color: #990000;">header</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-Type: text/xml'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/file_get_contents"><span style="color: #990000;">file_get_contents</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$content</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>&nbsp;<br />
e no Flex definir a URL do HttpService como o modelo abaixo:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p224code2'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2242"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p224code2"><pre class="actionscript" style="font-family:monospace;">httpService.<span style="color: #0066CC;">url</span> = <span style="color: #ff0000;">&quot;http://seu_dominio/xml_proxy.php?url=&quot;</span> + <span style="color: #66cc66;">&#123;</span>URL_XML<span style="color: #66cc66;">&#125;</span>;</pre></td></tr></table></div>

<p>Feito isso, você conseguirá acessar algo no outro domínio, sem esbarrar no tal crossdomain =]</p>
</div>
<div class="wp_rp_wrap  wp_rp_plain" ><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2009/10/26/adobe-flex-httpservice-enviando-parametros-para-a-aplicacao-web-em-java/" class="wp_rp_title">Adobe Flex (HttpService) enviando parametros para a aplicação web em Java</a></li><li ><a href="http://blog.erkobridee.com/2008/03/22/adobe-flex-calculo-do-tempo-entre-2-datas/" class="wp_rp_title">Adobe Flex : calculo do tempo entre 2 datas </a></li><li ><a href="http://blog.erkobridee.com/2010/03/27/actionscript3-querystring/" class="wp_rp_title">ActionScript3 : QueryString</a></li><li ><a href="http://blog.erkobridee.com/2008/03/07/adobe-flex-intelligere-scs-beta-3-0/" class="wp_rp_title">Adobe Flex : Intelligere SCS &#8211; Beta 3.0 </a></li><li ><a href="http://blog.erkobridee.com/2010/01/20/adobe-flex-filtrando-um-arraycollection-distinct/" class="wp_rp_title">[Adobe Flex] filtrando um ArrayCollection : Distinct</a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=224&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2009/02/28/adobe-flex-brigando-contra-o-crossdomain-resolvendo-com-um-xml-proxy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress: Escondendo o sorrizo do Stats plugin</title>
		<link>http://blog.erkobridee.com/2009/02/23/wordpress-escondendo-o-sorrizo-do-stats-plugin/</link>
		<comments>http://blog.erkobridee.com/2009/02/23/wordpress-escondendo-o-sorrizo-do-stats-plugin/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 23:03:26 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Código]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Utilidade]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://erkobridee.com/?p=67</guid>
		<description><![CDATA[Quem utiliza o plugin Stats do Wordpress, já deve ter visto aquela imagem de um sorrizo no final da página. Quer saber como remover?]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Estive olhando na internet um meio de esconder aquela imagem do sorrizo, que é adicionado quando se utiliza o plugin Stats do WordPress.<br />
&nbsp;<br />
<strong>Plugin Stats :</strong> para estatísticas relacionadas ao blog. Para utilizar este plugin é necessário/obrigatório ter uma conta no WordPress.com, para ter acesso a API Key. O uso desse plugin por padrão adiciona uma imagem de um sorrizo no final da sua página.<br />
&nbsp;<br />
<strong>Como remover?</strong><br />
&nbsp;<br />
Pelo que andei lendo na internet a maioria das sugestões está em adicionar um CSS para movimentar a posição da imagem para um local fora da área de visualização, porém todos os exemplos indicam a inclusão desse na página.<br />
&nbsp;<br />
Então pensei, se eu editar o meu tema atual, quando eu mudar de tema terei o retrabalho de implementar essa chamada do CSS no novo tema.. pensando nisso, resolvi fazer umas modificações diretamente no plugin Stats:<br />
1 &#8211; criei um stats.css<br />
2 &#8211; adicionei alguns códigos a mais no stats.php<br />
&nbsp;</p>
<p style="text-align: center;"><strong>stats.css</strong></p>
<p style="text-align: center;">

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p67code3'); return false;">View Code</a> CSS</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p673"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code" id="p67code3"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/*
Por: Erko Bridee
data: 23/02/2009
&nbsp;
escondendo o sorrizo do plugin Stats do Wordpress
*/</span>
<span style="color: #cc00cc;">#wpstats</span> <span style="color: #00AA00;">&#123;</span> 
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span> 
	<span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">:</span><span style="color: #933;">-5000px</span><span style="color: #00AA00;">;</span> 
	<span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span><span style="color: #933;">-5000px</span><span style="color: #00AA00;">;</span> 
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

</p>
<p>&nbsp;</p>
<p style="text-align: center;"><strong>Editando o stats.php</strong></p>
<p>&nbsp;<br />
1 &#8211; Criar as function acima da function <em><strong>stats_footer()</strong></em></p>
<p style="text-align: center;">

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p67code4'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p674"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code" id="p67code4"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">/* 
Erko 23/02/2009 
BEGIN
*/</span>
<span style="color: #000000; font-weight: bold;">function</span> getStatsPluginUrl<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/dirname"><span style="color: #990000;">dirname</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/str_replace"><span style="color: #990000;">str_replace</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> trailingslashit<span style="color: #009900;">&#40;</span>get_bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'wpurl'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> trailingslashit<span style="color: #009900;">&#40;</span><a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #339933;">,</span><a href="http://www.php.net/strpos"><span style="color: #990000;">strpos</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;wp-content/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$path</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> insert_css<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">'&lt;link href=&quot;'</span><span style="color: #339933;">.</span>getStatsPluginUrl<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'stats.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> stats_header<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;!-- Por: Erko Bridee | Esconde o smile do Stats plugin | 23/02/2009 --&gt;'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> insert_css<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">/* 
END
Erko 23/02/2009 
*/</span></pre></td></tr></table></div>

</p>
<p>&nbsp;<br />
2 &#8211; Agora registrar a ação para adicionar isto no cabeçalho.<br />
&nbsp;<br />
Para isso localize o código, que fica no final do stats.php:</p>
<p style="text-align: center;">

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p67code5'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p675"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p67code5"><pre class="php" style="font-family:monospace;">add_action<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'wp_footer'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'stats_footer'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">101</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

</p>
<p>&nbsp;<br />
Adicione o respectivo código, antes do código que foi solicitado para localizar no final do arquivo stats.php:</p>
<p style="text-align: center;">

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p67code6'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p676"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p67code6"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Erko 23/02/2009 - adicionando estilo no cabeçalho</span>
add_action<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'wp_head'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'stats_header'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

</p>
<p>&nbsp;<br />
Pronto, feito isso, basta atualizar o seu plugin no servidor que o sorrizo some.</p>
</div>
<div class="wp_rp_wrap  wp_rp_plain" ><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2009/02/21/funcionalidade-de-traducao-do-blog/" class="wp_rp_title">Funcionalidade de tradução do Blog</a></li><li ><a href="http://blog.erkobridee.com/2009/11/05/novidade-no-blog-tweet-facil-dos-posts/" class="wp_rp_title">Novidade no blog > Tweet fácil dos posts</a></li><li ><a href="http://blog.erkobridee.com/2009/02/28/adobe-flex-brigando-contra-o-crossdomain-resolvendo-com-um-xml-proxy/" class="wp_rp_title">Adobe Flex : brigando contra o crossdomain : resolvendo com um xml-proxy</a></li><li ><a href="http://blog.erkobridee.com/2008/03/22/adobe-flex-calculo-do-tempo-entre-2-datas/" class="wp_rp_title">Adobe Flex : calculo do tempo entre 2 datas </a></li><li ><a href="http://blog.erkobridee.com/2009/02/18/php-ola-mundo/" class="wp_rp_title">PHP &#8211; Olá mundo</a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=67&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2009/02/23/wordpress-escondendo-o-sorrizo-do-stats-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Funcionalidade de tradução do Blog</title>
		<link>http://blog.erkobridee.com/2009/02/21/funcionalidade-de-traducao-do-blog/</link>
		<comments>http://blog.erkobridee.com/2009/02/21/funcionalidade-de-traducao-do-blog/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 21:39:34 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[Novidade]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Funcionalidade]]></category>
		<category><![CDATA[Idiomas]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Tradução]]></category>
		<category><![CDATA[Utilidade]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://erkobridee.com/?p=34</guid>
		<description><![CDATA[Novidade no Blog, suporte ao Google Translator, para traduzir a página atual que se está, através das bandeiras encontradas ali na parte superior a direita]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Opa pessoal,</p>
<p>uma novidade para quem acessa ao blog, implementei um suporte para gerar um link, que possibilita chamar o serviço de tradução de URL do Google Translator, que pode ser utilizado através das bandeiras que estão disponibilizadas ali no canto superior direito, do lado do ícone do Feed RSS.</p>
<p><strong>Problema encontrado:</strong></p>
<p>- No Firefox 2.x, quando o blog foi traduzido, apareceu um quadro branco em cima da página traduzida, ou seja quem estiver usando ainda o Firefox 2.x, terá esse problema.</p>
<p><strong>Onde funcionou?</strong></p>
<p>- Firefox 3.x</p>
<p>- Internet Explorer 7</p>
<p>( isso no teste que fiz usando Windows Vista)</p>
<p>- Testei tambem no Ubunto Linux 8.04, com Firefox 3 Beta</p>
<p>Espero que gostem <img src='http://blog.erkobridee.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Quem tiver interesse no plugin que desenvolvi deixe um comentário.</p>
<p>Mais a frente pretendo escrever um post descrevendo o componente e como utilizar, assim como disponibilizar um link para download.</p>
</div>
<div class="wp_rp_wrap  wp_rp_plain" ><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2009/02/23/wordpress-escondendo-o-sorrizo-do-stats-plugin/" class="wp_rp_title">WordPress: Escondendo o sorrizo do Stats plugin</a></li><li ><a href="http://blog.erkobridee.com/2009/11/05/novidade-no-blog-tweet-facil-dos-posts/" class="wp_rp_title">Novidade no blog > Tweet fácil dos posts</a></li><li ><a href="http://blog.erkobridee.com/2009/02/28/adobe-flex-brigando-contra-o-crossdomain-resolvendo-com-um-xml-proxy/" class="wp_rp_title">Adobe Flex : brigando contra o crossdomain : resolvendo com um xml-proxy</a></li><li ><a href="http://blog.erkobridee.com/2009/02/18/php-ola-mundo/" class="wp_rp_title">PHP &#8211; Olá mundo</a></li><li ><a href="http://blog.erkobridee.com/2008/03/07/adobe-flex-intelligere-scs-beta-3-0/" class="wp_rp_title">Adobe Flex : Intelligere SCS &#8211; Beta 3.0 </a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=34&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2009/02/21/funcionalidade-de-traducao-do-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP &#8211; Olá mundo</title>
		<link>http://blog.erkobridee.com/2009/02/18/php-ola-mundo/</link>
		<comments>http://blog.erkobridee.com/2009/02/18/php-ola-mundo/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 00:45:43 +0000</pubDate>
		<dc:creator>Erko Bridee</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Código]]></category>
		<category><![CDATA[Hello World]]></category>
		<category><![CDATA[Teste]]></category>

		<guid isPermaLink="false">http://localhost/blog/?p=17</guid>
		<description><![CDATA[Teste de publicação de código PHP]]></description>
				<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Vamos ao tradicional Hello World, testar o plugin <a href="http://wordpress.org/extend/plugins/wp-codebox/" target="_blank">wp-codebox</a> que vou utilizar para publicar códigos aqui no blog</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p17code7'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p177"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p17code7"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Hello World!<span style="color: #000099; font-weight: bold;">\\</span>n&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Parece legal esse plugin. O que você acha?</p>
</div>
<div class="wp_rp_wrap  wp_rp_plain" ><div class="wp_rp_content"><h3 class="related_post_title">Veja também:</h3><ul class="related_post wp_rp" style="visibility: visible"><li ><a href="http://blog.erkobridee.com/2009/02/18/java-ola-mundo/" class="wp_rp_title">Java &#8211; Olá mundo</a></li><li ><a href="http://blog.erkobridee.com/2009/02/28/adobe-flex-brigando-contra-o-crossdomain-resolvendo-com-um-xml-proxy/" class="wp_rp_title">Adobe Flex : brigando contra o crossdomain : resolvendo com um xml-proxy</a></li><li ><a href="http://blog.erkobridee.com/2009/02/21/funcionalidade-de-traducao-do-blog/" class="wp_rp_title">Funcionalidade de tradução do Blog</a></li><li ><a href="http://blog.erkobridee.com/2009/02/23/wordpress-escondendo-o-sorrizo-do-stats-plugin/" class="wp_rp_title">WordPress: Escondendo o sorrizo do Stats plugin</a></li><li ><a href="http://blog.erkobridee.com/2009/03/07/equipe-de-performane-saab-vao-a-loucura-com-seus-novos-veiculos/" class="wp_rp_title">Equipe de performane SAAB vão a loucura com seus novos veículos</a></li></ul><div class="wp_rp_footer"><a class="wp_rp_backlink" target="_blank" href="http://www.zemanta.com/?wp-related-posts">Zemanta</a></div></div></div>
<img src="http://blog.erkobridee.com/?ak_action=api_record_view&id=17&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.erkobridee.com/2009/02/18/php-ola-mundo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
