﻿<?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>Handerson Frota - WEB2.0 &#187; Desenvolvimento</title>
	<atom:link href="http://www.handersonfrota.com.br/category/desenvolvimento/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.handersonfrota.com.br</link>
	<description>Handerson Frota, Blog sobre tecnologias WEB2.0 e JAVA</description>
	<lastBuildDate>Sun, 25 Sep 2011 14:32:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Como iniciar em Java para WEB sem medo!</title>
		<link>http://www.handersonfrota.com.br/como-iniciar-em-java-para-web-sem-medo/</link>
		<comments>http://www.handersonfrota.com.br/como-iniciar-em-java-para-web-sem-medo/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 13:31:31 +0000</pubDate>
		<dc:creator>Handerson Frota</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[JavaCE]]></category>
		<category><![CDATA[aprenda]]></category>
		<category><![CDATA[aprender]]></category>
		<category><![CDATA[comecar]]></category>
		<category><![CDATA[desenvolvedor]]></category>
		<category><![CDATA[ext]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[httpverb]]></category>
		<category><![CDATA[iniciante]]></category>
		<category><![CDATA[iniciar]]></category>
		<category><![CDATA[inicie]]></category>
		<category><![CDATA[jee]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[jsfail]]></category>
		<category><![CDATA[jsffail]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[patterns]]></category>
		<category><![CDATA[restfulie]]></category>
		<category><![CDATA[rhino]]></category>
		<category><![CDATA[servlet]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[struts]]></category>
		<category><![CDATA[TriadWorks]]></category>
		<category><![CDATA[verbhttp]]></category>
		<category><![CDATA[vraptor]]></category>
		<category><![CDATA[vraptor3]]></category>

		<guid isPermaLink="false">http://www.handersonfrota.com.br/?p=1007</guid>
		<description><![CDATA[Introdução Minha intenção com este post é tentar de alguma forma ajudar aqueles profissionais que estão iniciando em Java Web, profissionais que com tantas opções que a plataforma Java nos oferece, as vezes não sabem por onde iniciar, então quero tentar dar um norte inicial para começar bem. Não vamos aqui discutir sobre qual IDE, [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.handersonfrota.com.br%2Fcomo-iniciar-em-java-para-web-sem-medo%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.handersonfrota.com.br%2Fcomo-iniciar-em-java-para-web-sem-medo%2F&amp;source=handersonbf&amp;style=normal&amp;service=TinyURL.com&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;"><strong>Introdução</strong><br />
Minha intenção com este post é tentar de alguma forma ajudar aqueles profissionais que estão iniciando em Java Web, profissionais que com tantas opções que a plataforma Java nos oferece, as vezes não sabem por onde iniciar, então quero tentar dar um norte inicial para começar bem.</p>
<p>Não vamos aqui discutir sobre qual IDE, ferramenta, infra em geral, pois já temos vários artigos na web que tratam deste assunto. Quero focar na parte conceitual da coisa.</p>
<p>Quero com este post responder algumas perguntas como:</p>
<p>1. Sou iniciante em Java para Web, o que devo aprender primeiro?<br />
2. Devo começar pela especificação JEEx e seguir somente ela?<br />
3. Qual framework devo começar?<br />
4. Por que não devo começar com JSF/Seam e afins?</p>
<p>Não quero aqui entrar no mérito de quem é melhor, framework X ou Y, linguagem X ou Y. Como já falei em uma lista: Amadureci para não perder meu tempo discutindo sobre isso.</p>
<p>Vou escrever aqui a minha opinião, a minha visão, baseado nos <a href="http://www.linkedin.com/in/handersonfrota" target="_blank">anos de experiência</a> que tenho com desenvolvimento Web e Java, baseado nas conversas que tenho com <a href="http://twitter.com/#!/rponte" target="_blank">outros</a> <a href="http://twitter.com/#!/cmilfont" target="_blank">profissionais</a> <a href="http://twitter.com/#!/leonardoeloy " target="_blank">com</a> a <a href="http://twitter.com/#!/mauriciojr" target="_blank">mesma</a> e maior experiência do que eu, nas experiências de inúmeros projetos que já participei durante toda a minha carreira.</p>
<p>Então vamos iniciar as argumentações, lembrando que isso é voltado para aqueles que estão ainda iniciando no desenvolvimento Web na plataforma Java ou para aqueles que não tem uma base sólida em Web.</p>
<p><strong>Iniciando no mundo Java Web</strong></p>
<p><em><strong>1. Sou iniciante em Java para Web, o que devo aprender primeiro?</strong></em></p>
<p>Bem, se você está entrando agora no mundo Web, você precisa primeiro aprender WEB, aprender como funciona uma página WEB e aprender a linguagem da WEB, seus protocolos e comportamentos. Isso parece ser óbvio, mas muitos se perdem neste momento e simplesmente não ligam para isso, achando que já devem aprender frameworks X ou Z.</p>
<p>Vamos citar aqui os principais conceitos que um bom desenvolvedor web TEM que saber ou pelo menos conhecer:</p>
<p><em><strong>Entenda como funciona e para que serve todos os verbos HTTP</strong></em> (<a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol" target="_blank">HTTP verbs</a>) que existem. Tenha um entendimento pelo menos de POST, GET, DELETE e PUT.</p>
<p><strong>Você como desenvolvedor web é OBRIGADO a saber HTML</strong>, pelo menos as suas tags mais comuns, como utilizá-las e para que servem cada uma e como funcionam. Não saber isso é como querer tirar a carteira de motorista sem saber o que é um carro. Acesse: <a href="http://www.w3schools.com/html/" target="_blank">w3schoolsHTML</a></p>
<p><strong>Entenda, como e o que é <a href="http://pt.wikipedia.org/wiki/Cascading_Style_Sheets" target="_blank">CSS</a></strong>, você não precisa ser um expert em CSS, mas saber o básico ajuda e muito, e você um dia irá precisar, acredite. A não ser que você não esteja desenvolvendo para WEB. Uma boa dica, é começar pelo site da <a href="http://www.w3schools.com/css/" target="_blank">w3schoolsCSS</a> e o site do <a href="http://maujor.com/" target="_blank">maujor</a>.</p>
<p><strong>Estude também o que é e como funciona um <a href="http://en.wikipedia.org/wiki/Web_container" target="_blank">Web Container</a></strong> e sua estrutura básica de funcionamento.</p>
<p><strong>APRENDA Servlet, JSP,</strong> por mais que você ache “antigo” eles são muito importantes para você complementar seu conhecimento em desenvolvimento web na plataforma java e acredite seu framework <strong>UTILIZA</strong> eles por baixo. Então é <strong>FUNDAMENTAL</strong> saber o que é e como funciona um Servlet e JSP.</p>
<p><strong>“Brinque” um pouco com <a href="http://tomcat.apache.org/taglibs/" target="_blank">TAGsLib</a>, EL</strong> (<a href="http://download.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html" target="_blank">Expression Language</a>), são ferramentas simples de se utilizar (principalmente EL), e deixam seu código bem mais legível. Você verá mais a frente.</p>
<p><strong>JavaScript, ele é importante</strong>. Se você deseja ser um bom profissional web, você <strong>PRECISA</strong> saber javaScript. Por muitos anos o JavaScript foi considerado uma linguagem fraca, que só servia para enviar alerts para os usuários ou somente para validação de formulários. Grande engano.<br />
O JS já provou por A + B que é uma poderosa linguagem em diversos segmentos de server-side desde <a href="http://goutamdey.com/2010/01/02/5-javascript-mvc-frameworks-2/" target="_blank">Frameworks MVC</a> (Express/<a href="http://nodejs.org/" target="_blank">Node.js</a> | <a href="http://dev.helma.org/" target="_blank">Helma</a>/<a href="http://www.mozilla.org/rhino/" target="_blank">Rhino</a>) a bancos de dados não relacionais (<a href="http://couchdb.apache.org/" target="_blank">CouchDB</a>, <a href="http://www.mongodb.org/" target="_blank">MongoDB</a>), além do tradicional client-side com Frameworks populares (<a href="http://jquery.com/" target="_blank">jQuery</a>/<a href="http://www.sencha.com/" target="_blank">ExtJS</a>).</p>
<p>E o mito de que JS é ruim de manter, código desorganizado etc, é simplesmente somente um MITO, e é simplesmente falta de conhecimento de quem não sabe desenvolver com JS. JS hoje, está muito maduro e robusto, existem vários frameworks para facilitar a sua vida, <a href="http://visionmedia.github.com/jspec/" target="_blank">é</a> <a href="http://pivotal.github.com/jasmine/" target="_blank">testável</a> <a href="http://www.jsunit.net/" target="_blank">e</a> é um código limpo, quando se usa da maneira certa. E isso claro, serve para qualquer linguagem.</p>
<p>Mas, assim como qualquer outra linguagem, não aconselho você já começar usando jQuery (ou qualquer outro), aliás, até pode sim, mas antes dê uma lida na documentação para entender o que é o <a href="http://www.w3schools.com/jsref/default.asp" target="_blank">DOM</a> e <a href="http://www.daaq.net/old/javascript/index.php?page=the+js+bom" target="_blank">BOM</a>, apenas leia, você não precisa ser um expert, o que não seria ruim, pois iria te ajudar muito, mas apenas o conhecimento básico já é suficiente. Conhecer e saber usar uma ferramenta (framework) é uma coisa, ENTENDER o que ele faz é outra.</p>
<p>Depois disso, parta para um framework como o jQuery, <a href="http://mootools.net/" target="_blank">MooTools</a>, ExtJS etc.</p>
<p>[<strong><span style="color: #ff0000;">UPDATE-13/07/2011</span></strong>]</p>
<p>Alguns me perguntaram sobre quais livros ou fontes de estudos indico para iniciar com JavaScript, então resolvi atualizar aqui, essas dicas e para não replicá-las, vou pegar as mesmas que um amigo já fez <img src='http://www.handersonfrota.com.br/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Dicas do site do <a href="http://www.milfont.org/tech/" target="_blank">Christiano Milfont</a>:</p>
<blockquote><p>Existem alguns bons materias gratuitos que recomendo, como: <a href="http://dailyjs.com/2010/12/02/framework-review/" target="_blank">Como criar um Framework javascript</a>, <a href="http://eloquentjavascript.net/">Eloquent Javascript</a>, <a href="http://bonsaiden.github.com/JavaScript-Garden/">JavaScript Garden</a>, <a href="http://www.rebeccamurphey.com/jqfundamentals/">jQuery Fundamentals</a> (que apesar de ser sobre jQuery, cobre muito sobre javascript em si), <a href="http://www.addyosmani.com/resources/essentialjsdesignpatterns/book/" target="_blank">Essential Javascript &amp; jQuery Design Patterns for Beginners</a> e o <a href="https://developer.mozilla.org/en/JavaScript/Guide">Guia</a> e a documentação de <a href="https://developer.mozilla.org/en/JavaScript/Reference">Referência</a> da Mozilla.</p></blockquote>
<p>Os melhores livros de Javascript:</p>
<blockquote><p>Existem vários bons livros, inclusive já os indiquei em posts passados, veja indicações: <a href="http://www.milfont.org/tech/2010/10/25/recomendacao-de-livros-sobre-javascript/" target="_blank">recente</a> e <a href="http://www.milfont.org/tech/2008/10/13/os-melhores-livros-de-javascript/" target="_blank">antiga</a>.</p></blockquote>
<p><strong>2. Devo começar pela especificação JEEx e seguir somente ela ?</strong></p>
<p>Bem, o certo seria sim, você deve começar pela especificação, mas infelizmente não é tão simples assim.</p>
<p>Se alguém falar isso para você, corra, corra dele e procure um profissional o quanto antes para te descontaminar, esse papinho de que é Deus no céu e especificação na terra é pura besteira. Quer exemplos ? Vamos lá.</p>
<p>Se você depender e seguir como um religioso fanático somente a especificação, você como profissional, estará no mínimo <strong>5 anos ATRASADO.</strong></p>
<p>Sim, para se ter uma ideia, o Ajax foi implementado no JSF, somente em 2010, ou seja, você que é bitolado, só foi poder utilizar-se de Ajax ano passado, enquanto eu e outros profissionais já o utilizavam desde 2004. Vergonha ? Também sentiria.</p>
<p>E não caia na conversa de que é o que o mercado pede, a não ser que você queira ser <strong>SÓ MAIS UM</strong> no mercado, depois não reclame do seu salário. Destaque-se, se sobressaia, não seguindo essa conversa fiada você já terá boas chances de ser um profissional bem qualificado e consequentemente, bem remunerado no mercado.</p>
<p>Mais um exemplo simples, é seguindo somente a especificação, você não vai usar o <a href="http://www.hibernate.org/" target="_blank">Hibernate</a> ou <a href="http://www.springsource.org/" target="_blank">Spring</a>, pois eles não estão na especificação, a especificação &#8220;recomenda&#8221; usar o <a href="http://pt.wikipedia.org/wiki/JDBC" target="_blank">JDBC</a>, <a href="http://www.oracle.com/technetwork/java/index-jsp-135919.html" target="_blank">CMP</a>, <a href="http://www.oracle.com/technetwork/articles/javaee/jpa-137156.html" target="_blank">JPA</a> e outros <a href="http://www.oracle.com/technetwork/java/javaee/blueprints/index.html" target="_blank">Patterns</a>. Para quem sabe o que é o Hibernate e Spring saberá o quanto será péssimo desenvolver um sistema web java sem eles, principalmente sem o Spring.</p>
<p>Na minha visão a especificação é somente para te dar uma ideia de como as coisas funcionam, e não como devem ser feitas, <em><strong>ela não é a lei, ela nem sempre é a melhor solução para o seu problema</strong></em>. Por isso não seja bitolado por ela.</p>
<p><strong>3. Qual framework devo começar ?</strong></p>
<p>Supondo que você já tem conhecimento em HTML, CSS, JavaScript, Servlets, JSP, TagLibs ou EL, Container WEB, qual framework você poderia iniciar?</p>
<p>Bem, qualquer frameworks Action-like. Por que?<br />
Quanto menos abstração no lado web o framework possuir (componentes para tudo), mais você vai exercitar e aprender tudo aquilo que você estudou, sem falar na liberdade no desenvolvimento.</p>
<blockquote>
<p style="text-align: justify;">Atentem, que não estou aqui entrando no mérito de quem é mais produtivo, rápido, simples ou qualquer outra coisa do tipo. Meu foco é puramente e simplesmente que você aprenda desenvolvimento Web e só isso.</p>
</blockquote>
<p style="text-align: justify;">Framework como eu disse é apenas uma ferramenta para se desenvolver, como um martelo para um marceneiro, ou uma chave de fenda para o mecânico.</p>
<p>Seguindo esses passos, você pode evitar o erro (que infelizmente é comum) de querer usar a ferramenta para tudo.</p>
<p style="text-align: justify;">Imagine que o marceneiro ame seu martelo e só queira utilizar ele, então para pregar pregos ele utiliza ele, para parafusar ele também utilize ele, para colar a maneira, ele também utilize o martelo, já imaginou ?</p>
<p>Pois bem, a analogia funciona da mesma forma para frameworks.</p>
<blockquote>
<p style="text-align: justify;">Quando você entende web, entende a necessidade do cliente, entende o problema, fica fácil escolher a ferramenta e mesmo assim você pode correr o risco de errar, imagine agora na situação de saber utilizar somente um martelo e pior, achar que ele pode fazer o trabalho de uma chave de fenda. Pense nisso.</p>
</blockquote>
<p style="text-align: justify;">Agora, suponha que você é realmente um iniciante, não tem noção de HTML e tudo aquilo que falei, qual framework você deve iniciar ?<br />
<strong>NENHUM.</strong> Estude aqueles tópicos primeiro.</p>
<blockquote>
<p style="text-align: justify;">Aprenda a engatinhar antes de querer correr, para não cair e quebrar as pernas.</p>
</blockquote>
<p style="text-align: justify;"><strong>4. Porque NÃO devo começar com JSF/Seam?</strong></p>
<p>Porque EU, Handerson Frota, NÃO concordo que um iniciante, que ainda NÃO tem nenhuma noção SÓLIDA de WEB já inicie com JSF?</p>
<p>Porque ? Vamos tentar colocar por tópicos:</p>
<p><strong>a . Abstração do Servlet</strong></p>
<p>Esse não é um problema, não é um defeito, pelo contrário, é até bom, deixa o teu controller desacoplado do objeto <a href="http://download.oracle.com/javaee/1.3/api/javax/servlet/http/HttpServlet.html" target="_blank">HTTPServlet</a>. O <a href="http://vraptor.caelum.com.br/" target="_blank">VRaptor</a> faz isso e claro o JSF faz isso. Mas ao contrário do VRaptor, que possui um design que facilita os testes, é muito ruim escrever testes de unidade para os managed beans.</p>
<p>Não estou dizendo que não é possível escrever testes de unidade, mas sim que não é tão simples assim quando o código foge do trivial. E ai pergunto, onde está a produtividade? Ah tá, vocês não usam testes?</p>
<p>Agora pergunto para quem nunca viu ou sabe o que é um Servlet, como você vai entender o que é um, saber como funciona se você não vê e ainda acha que não esta usando?</p>
<p>Você não sabe como funciona, o que é, e diz que desenvolve para Web? Acho que não.</p>
<p>Acreditem, existem MUITOS profissionais que começaram assim, que NÃO SABEM QUE JSF, VRAPTOR OU STRUTS, TEM SERVLETS <img src='http://www.handersonfrota.com.br/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  não é legal? Você contrataria ele? Eu não.</p>
<p><strong>b. Malditos componentes</strong></p>
<p>Você está iniciando, não sabe o que é Servlet, mas também não vai aprender HTML, CSS, JS, ou qualquer LINGUAGEM DA WEB, pois você vai ter que aprender COMPONENTES. Componente para input (que muitas vezes o cara não sabe o que é, e acha que isso é do JSF), componentes para tudo.</p>
<p>Você já viu o código gerado do seu componente? Veja e se assuste.</p>
<p>Com o VRaptor ou <a href="http://struts.apache.org/" target="_blank">Struts</a> por exemplo, você usa o simples e eficaz HTML e EL. Simples assim. Resolve o problema e ainda deixa teu código mais limpo.</p>
<p>Veja um exemplo:<br />
Formulario JSF com 2 campos.</p>
<pre class="brush: java; title: ; notranslate">
&lt;h:form id=&quot;UserEntryForm&quot;&gt;
    &lt;h:outputText value=&quot;Enter Your Name:&quot;/&gt;
    &lt;h:inputText value=&quot;#{UserBean.userName}&quot; /&gt;
    &lt;h:outputText value=&quot;Enter Your age:&quot;/&gt;
    &lt;h:inputText value=&quot;#{UserBean.age}&quot; /&gt;
    &lt;h:commandButton action=&quot;welcome&quot; value=&quot;OK&quot; /&gt;
&lt;/h:form&gt;
</pre>
<p>Agora com o simples HTML e EL</p>
<pre class="brush: java; title: ; notranslate">
&lt;form id=&quot;form&quot; action=&quot;&quot; method=&quot;GET/POST&quot; &gt;
    Nome: &lt;input type=&quot;text&quot; id=&quot;nome&quot; value=&quot;${objeto.nome}&quot; /&gt;
    Idade: &lt;input type=&quot;text&quot; id=&quot;idade&quot; value=&quot;${objeto.idade}&quot; /&gt;
    &lt;input type=&quot;submit&quot; value=&quot;OK&quot; /&gt;
&lt;/form&gt;
</pre>
<p>Agora também compare o código gerado de cada um, e tire suas conclusões.</p>
<p><strong>c. Conflitos de libs</strong></p>
<p>Algo que eu via com muita recorrência em projetos com JSF, eram os famosos conflitos entre conjunto de componentes. Se você queria utilizar uma funcionalidade Ajax por exemplo, teria que utilizar o Richfaces/Ajax4jsf por exemplo, mas ele não se integra bem com o MyFaces Trinidad, por exemplo. Então você fica preso e obrigado a utilizar um componente do início ao fim de um projeto (praticamente).</p>
<p>Isso é prejudicial ao meu ver, pois aprendemos que durante o desenvolvimento de um software, ao contrário de construir um prédio, podemos mudar, podemos alterá-lo.</p>
<p>Você aprende mais sobre o negócio, você aprende mais sobre o próprio software, só que você não vai mais poder mudar, pois está preso naquele conjunto de componentes que você escolheu no inicio do projeto. A não ser que você queira alterar todas as páginas geradas e seus comportamentos. Isso inclui seus controles (ManegedBean e JSP), pois o JSF nos faz o favor de -colar- o JSP com o controller.</p>
<p>Você, ao invés de se preocupar em aprender como funciona a web, tem que se preocupar qual plugin/lib/componente utilizar e que não vá dar conflito com outro. Ok, alguns podem dizer que esses conflitos podem acontecer também com outros “componentes”, APIs/Plugins JavaScript etc. Mas posso afirmar com certeza, que é bem mais simples resolver esses conflitos.</p>
<p><strong>d. Ciclo de Vida</strong></p>
<p>Você ainda não sabe o que é um Servlet, como ele funciona e terá que primeiro <a href="http://www.rponte.com.br/tag/ciclodevida/" target="_blank">entender o ciclo de vida do JSF</a>? Que é completamente diferente do ciclo de vida de um Servlet, que o managed bean utiliza por baixo?<br />
Preciso nem comentar sobre isso.</p>
<p><strong>e. View é fortemente acoplada ao controller (managed bean)</strong></p>
<p>Bem, na minha humilde opinião, não acho isso legal. O teu JSP, fica totalmente dependente do controller e claro dependente de libs do JSF. Diferentemente de uma página JSP com EL, cujo o Struts, VRaptor e outros usam.</p>
<p>Recentemente fizemos uma migração de um sistema em JSF para VRaptor, foi simplesmente APAGAR TUDO e refazer do zero, pois não tinha como reaproveitar nem as telas, pois eram todas feitas com componentes do JSF.</p>
<p>Não deu para aproveitar nada do layout, pois o CSS foi alterado por causado dos benditos componentes do RichFaces, nem as funcionalidades em JavaScript, pois quem fazia isso eram os componentes do JSF.</p>
<p>Ao contrário por exemplo, se fosse um Struts ou um sistema feito com outro tipo de controller que usa-se JSP e EL, e fossemos migrar para VRaptor, poderíamos aproveitar muita coisa, até 100% das telas e uma boa parte do controller.</p>
<p><strong>Conclusão</strong></p>
<p><strong>Eu então, NÃO RECOMENDO</strong> que qualquer futuro aspirante a desenvolvedor web, INICIE seus estudos web em cima de um JSF e/ou SOMENTE com JEEx.</p>
<p>A pouco tempo, fizemos <a href="http://www.handersonfrota.com.br/triadworks-oportunidade-de-estagio/" target="_blank">algumas</a> <a href="http://www.handersonfrota.com.br/triadworks-triadwan-selecionado/" target="_blank">entrevistas</a> com alguns <a href="http://www.handersonfrota.com.br/triadworks-vaga-de-desenvolvedor/" target="_blank">profissionais</a> web, e foi um pouco decepcionante. Muitos estavam a anos estagnados em projetos JSF ou JEE “puro”. Ou seja, só sabiam JSF e JEE e não desenvolvimento WEB, não sabiam HTML, não sabiam CSS, não sabiam o que era um Servlet, e quando sabiam não sabiam dizer para que servia e como funcionava, não sabiam o que era um PUT ou um DELETE no verbo HTTP e muitas vezes nem o que era um verbo HTTP, não tinham ideia do que era <a href="http://restfulie.caelum.com.br/" target="_blank">Restfulie</a>, não sabiam JS, logo não sabiam jQuery ou qualquer outro framework JS.</p>
<p><strong>Sou pago para desenvolver soluções para vários tipos de problemas, e não posso ter somente um martelo como ferramenta.</strong></p>
<p>Bem, finalizo aqui, com esses argumentos que vivenciei em vários projetos e por essa longa experiência que tive e tenho em desenvolvimento web, eu aconselho antes de tentar aprender qualquer framework, entenda o básico dele, ou seja, se é desenvolvimento web na plataforma Java:</p>
<p style="text-align: justify;"><strong>NÃO COMECE com JSF!</strong></p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "inicie";
            bb_bid  = "1643631";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->]]></content:encoded>
			<wfw:commentRss>http://www.handersonfrota.com.br/como-iniciar-em-java-para-web-sem-medo/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>AWR.net o DWR para dot.Net</title>
		<link>http://www.handersonfrota.com.br/awrnet-o-dwr-para-dotnet/</link>
		<comments>http://www.handersonfrota.com.br/awrnet-o-dwr-para-dotnet/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 23:47:29 +0000</pubDate>
		<dc:creator>Handerson Frota</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[DWR]]></category>

		<guid isPermaLink="false">http://www.handersonfrota.com.br/?p=403</guid>
		<description><![CDATA[Não você não leu errado. O AWR.NET é um framework que procura seguir a idéia do DWR, ou pelo menos tenta  . Brincadeiras a parte… O AWR.NET surgiu de algumas discussões com um amigo desenvolvedor .Net Paulo Jr. Ele diferente de outros desenvolvedores M$ realmente sabe programar[ok não pude deixar de dá a alfinetada ]. [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.handersonfrota.com.br%2Fawrnet-o-dwr-para-dotnet%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.handersonfrota.com.br%2Fawrnet-o-dwr-para-dotnet%2F&amp;source=handersonbf&amp;style=normal&amp;service=TinyURL.com&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Não você não leu errado. O AWR.NET é um framework que procura seguir a idéia do DWR, ou pelo menos tenta  <img src='http://www.handersonfrota.com.br/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> .</p>
<p>Brincadeiras a parte…</p>
<p>O AWR.NET surgiu de algumas discussões com um amigo desenvolvedor .Net Paulo Jr. Ele diferente de outros desenvolvedores M$ realmente sabe programar[ok não pude deixar de dá a alfinetada <img src='http://www.handersonfrota.com.br/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ].</p>
<p>Conversando com o Paulo Jr, falei sobre o DWR e algumas de suas funcionalidades e tentamos “comparar” com o que existia no .Net e ele viu que não tinha algo do tipo, então ele resolveu criar esse framework, baseado um pouco na maneira que o DWR faz.</p>
<p>Conversamos muito, a nível bem baixo de como o DWR trabalha, chegamos as vezes de sentar juntos para discutir algumas coisas, isso foi muito bacana, pois botou a prova meu conhecimento em DWR e com isso pude ajuda-ló.</p>
<p>Por enquanto está na versão inicial, mas acho que esse projeto vai pra frente e como o Paulo sabe, estou a disposição para ajuda-ló no desenvolvimento deste framework.</p>
<p>Quem quiser saber mais sobre esse framework basta acessar o <a href="http://pbsjunior.spaces.live.com/blog/cns!97EB86AAA389058B!330.entry" target="_blank">link</a>.</p>
<p>Abraços</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "AJAX";
            bb_bid  = "1643631";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->]]></content:encoded>
			<wfw:commentRss>http://www.handersonfrota.com.br/awrnet-o-dwr-para-dotnet/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Ceará on Rails</title>
		<link>http://www.handersonfrota.com.br/ceara-on-rails/</link>
		<comments>http://www.handersonfrota.com.br/ceara-on-rails/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 00:52:06 +0000</pubDate>
		<dc:creator>Handerson Frota</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Outros]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[RubyOnRails]]></category>

		<guid isPermaLink="false">http://www.handersonfrota.com.br/?p=258</guid>
		<description><![CDATA[Evento Ceará on Rails em Novembro de 2008]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.handersonfrota.com.br%2Fceara-on-rails%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.handersonfrota.com.br%2Fceara-on-rails%2F&amp;source=handersonbf&amp;style=normal&amp;service=TinyURL.com&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.cearaonrails.org/inscricoes/new" target="_blank"><img class="size-full wp-image-264 alignnone" title="Ceará on Rails" src="http://www.handersonfrota.com.br/blog/wp-content/uploads/2008/11/banner_468x60.png" alt="Ceará on Rails - Inscreva-se" width="468" height="60" /></a></p>
<p><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves /> <w:TrackFormatting /> <w:HyphenationZone>21</w:HyphenationZone> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF /> <w:LidThemeOther>PT-BR</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:SplitPgBreakAndParaMark /> <w:DontVertAlignCellWithSp /> <w:DontBreakConstrainedForcedTables /> <w:DontVertAlignInTxbx /> <w:Word11KerningPairs /> <w:CachedColBalance /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathPr> <m:mathFont m:val="Cambria Math" /> <m:brkBin m:val="before" /> <m:brkBinSub m:val="&#45;-" /> <m:smallFrac m:val="off" /> <m:dispDef /> <m:lMargin m:val="0" /> <m:rMargin m:val="0" /> <m:defJc m:val="centerGroup" /> <m:wrapIndent m:val="1440" /> <m:intLim m:val="subSup" /> <m:naryLim m:val="undOvr" /> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal" /> <w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /> <w:LsdException Locked="false" Priority="39" Name="toc 1" /> <w:LsdException Locked="false" Priority="39" Name="toc 2" /> <w:LsdException Locked="false" Priority="39" Name="toc 3" /> <w:LsdException Locked="false" Priority="39" Name="toc 4" /> <w:LsdException Locked="false" Priority="39" Name="toc 5" /> <w:LsdException Locked="false" Priority="39" Name="toc 6" /> <w:LsdException Locked="false" Priority="39" Name="toc 7" /> <w:LsdException Locked="false" Priority="39" Name="toc 8" /> <w:LsdException Locked="false" Priority="39" Name="toc 9" /> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /> <w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title" /> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /> <w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /> <w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong" /> <w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /> <w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /> <w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /> <w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /> <w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote" /> <w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /> <w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /> <w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /> <w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /> <w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /> <w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title" /> <w:LsdException Locked="false" Priority="37" Name="Bibliography" /> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /> </w:LatentStyles> </xml><![endif]--></p>
<p><!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Tabela normal";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-priority:99;<br />
mso-style-qformat:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;<br />
mso-para-margin-top:0cm;<br />
mso-para-margin-right:0cm;<br />
mso-para-margin-bottom:10.0pt;<br />
mso-para-margin-left:0cm;<br />
line-height:115%;<br />
mso-pagination:widow-orphan;<br />
font-size:11.0pt;<br />
font-family:"Calibri","sans-serif";<br />
mso-ascii-font-family:Calibri;<br />
mso-ascii-theme-font:minor-latin;<br />
mso-fareast-font-family:"Times New Roman";<br />
mso-fareast-theme-font:minor-fareast;<br />
mso-hansi-font-family:Calibri;<br />
mso-hansi-theme-font:minor-latin;}<br />
--> <!--[endif]--></p>
<p>No dia <strong>14 de Novembro </strong>irá acontecer o <a href="http://www.cearaonrails.org/" target="_blank">CearáOnRails </a>que é um evento solidário voltado para todos profissionais da área de TI com interesse em aprender um pouco mais sobre XP(Extreme Programming), <a href="http://www.ruby-lang.org/pt/" target="_blank">Ruby</a> e o framework <a href="http://www.rubyonrails.pro.br/" target="_blank">RubyOnRails</a>.</p>
<p>Neste evento terá a presença do <a href="http://www.akitaonrails.com/" target="_blank">Fabio Akita</a> <span> </span>um dos grandes disseminadores deste Framework.</p>
<p>O evento será bem interessante e vou marcar presença para conferir como anda o mundo RubyOnRails aqui no mercado local e no mundo.</p>
<p><strong>Data:</strong> 14 de Novembro de 2008</p>
<p><strong>Horário</strong> 19:00:00 às 22:30:00</p>
<p><strong>Local:</strong> Faculdade Christus, Avenida Dom Luís, 911, Fortaleza-Ce</p>
<p><strong>Mais informações:</strong> <a href="http://www.cearaonrails.org/" target="_blank">http://www.cearaonrails.org/</a></p>
<p><strong>Inscrições:</strong> <a href="http://www.cearaonrails.org/inscricoes/new" target="_blank">http://www.cearaonrails.org/inscricoes/new</a></p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "Ruby";
            bb_bid  = "1643631";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->]]></content:encoded>
			<wfw:commentRss>http://www.handersonfrota.com.br/ceara-on-rails/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Google Doctype</title>
		<link>http://www.handersonfrota.com.br/google-doctype/</link>
		<comments>http://www.handersonfrota.com.br/google-doctype/#comments</comments>
		<pubDate>Sat, 17 May 2008 01:27:17 +0000</pubDate>
		<dc:creator>Handerson Frota</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.handersonfrota.com.br/google-doctype/</guid>
		<description><![CDATA[Olá a todos. Estou a um &#8220;tempão&#8221; sem postar, mas é só por falta de tempo beleza ? Bem vamos ao que interessa. Essa semana foi lançado mais um produto da Google. É o Google Doctype. O Google Doctype é uma enciclopédia aberta e uma biblioteca de referência criada pelo Google para facilitar o acesso [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.handersonfrota.com.br%2Fgoogle-doctype%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.handersonfrota.com.br%2Fgoogle-doctype%2F&amp;source=handersonbf&amp;style=normal&amp;service=TinyURL.com&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Olá a todos. Estou a um &#8220;tempão&#8221; sem postar, mas é só por falta de tempo beleza ?</p>
<p>Bem vamos ao que interessa.<br />
Essa semana foi lançado mais um produto da <a href="http://www.google.com.br" target="_blank">Google</a>. É o <a href="http://code.google.com/doctype/" target="_blank">Google Doctype</a>.</p>
<p>O <a href="http://code.google.com/doctype/" target="_blank">Google Doctype</a> é uma enciclopédia aberta e uma biblioteca de referência criada pelo <a href="http://www.google.com.br" target="_blank">Google</a> para facilitar o acesso a artigos sobre segurança na Web, manipulação JavaScript DOM, dicas e truques de CSS, e muitas outras informações.</p>
<p>Você tem vários exemplos de códigos e maneiras de se utilizar um determinado “componente”, seja de JavaScriptDOM ou de CSS. É um site que eu particularmente vou utilizar como tira dúvidas rápido e ponto de referência ;D</p>
<p>&#8220;<em>Escrito pelos próprios desenvolvedores web, o novo serviço também apresenta uma área de referências que inclui uma biblioteca com crescentes casos de testes para verificação de cross-browser e compatibilidade cross-platform.</em>&#8221;</p>
<p>Site: <a href="http://code.google.com/doctype/" target="_blank">http://code.google.com/doctype/</a><br />
Página de pesquisa: <a href="http://code.google.com/p/doctype/wiki/Welcome?tm=6" target="_blank">http://code.google.com/p/doctype/wiki/Welcome?tm=6</a></p>
<p>Bom proveito.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "javascript";
            bb_bid  = "1643631";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->]]></content:encoded>
			<wfw:commentRss>http://www.handersonfrota.com.br/google-doctype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
