<?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>Samuel Mota &#187; dev</title>
	<atom:link href="http://smota.com.br/category/dev/feed/" rel="self" type="application/rss+xml" />
	<link>http://smota.com.br</link>
	<description>Idéias, opiniões, pensamentos ...</description>
	<lastBuildDate>Thu, 17 May 2012 13:46:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>ESRI Developer Summit &#8211; Day 1</title>
		<link>http://smota.com.br/2011/03/08/esri-developer-summit-day-1/</link>
		<comments>http://smota.com.br/2011/03/08/esri-developer-summit-day-1/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 01:24:44 +0000</pubDate>
		<dc:creator>smota</dc:creator>
				<category><![CDATA[destaque]]></category>
		<category><![CDATA[dev]]></category>

		<guid isPermaLink="false">http://smota.com.br/?p=139</guid>
		<description><![CDATA[Primeiramente quero parabenizar nosso companheiro Thales pela excelente apresentação &#8220;Feature Cache: High Performance Feature Cache with NoSQL for ArcGIS Server&#8220;. Quarto lugar na votação do público para as apresentações de usuário no ArcGIS Ideas, sala lotada, muitas perguntas e contatos depois da apresentação demonstram toda a qualidade da equipe IMAGEM. @dbouwman: Some zen slides and [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Primeiramente </strong>quero parabenizar nosso companheiro <a href="http://twitter.com/oliveiraethales">Thales</a> pela excelente apresentação &#8220;<a href="http://events.esri.com/bpc/2011/dev_agenda/index.cfm?fa=Session_Detail_Form&amp;SessionId=185&amp;ScheduleId=306">Feature Cache: High Performance Feature Cache with NoSQL for ArcGIS Server</a>&#8220;. Quarto lugar na votação do público para as apresentações de usuário no <a href="http://ideas.arcgis.com/">ArcGIS Ideas</a>, sala lotada, muitas perguntas e contatos depois da apresentação demonstram toda a qualidade da equipe <a href="http://www.img.com.br/">IMAGEM</a>.</p>
<blockquote><p><a href="http://twitter.com/dbouwman">@dbouwman</a>: Some zen slides and passionate delivery at the <strong>NoSQL</strong> session&#8230; Good things! <a title="#DevSummit" href="http://twitter.com/search?q=%23DevSummit"><strong>#DevSummit</strong></a></p></blockquote>
<p style="text-align: center;"><object width="400" height="300"><param name="flashvars" value="offsite=true&amp;lang=pt-br&amp;page_show_url=%2Fphotos%2Fmisam%2Fsets%2F72157626226922548%2Fshow%2Fwith%2F5510288695%2F&amp;page_show_back_url=%2Fphotos%2Fmisam%2Fsets%2F72157626226922548%2Fwith%2F5510288695%2F&amp;set_id=72157626226922548&amp;jump_to=5510288695" /><param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=71649" /><param name="allowFullScreen" value="true" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://www.flickr.com/apps/slideshow/show.swf?v=71649" flashvars="offsite=true&amp;lang=pt-br&amp;page_show_url=%2Fphotos%2Fmisam%2Fsets%2F72157626226922548%2Fshow%2Fwith%2F5510288695%2F&amp;page_show_back_url=%2Fphotos%2Fmisam%2Fsets%2F72157626226922548%2Fwith%2F5510288695%2F&amp;set_id=72157626226922548&amp;jump_to=5510288695" allowfullscreen="true"></embed></object></p>
<p>O código está disponível no <a href="https://github.com/FeatureCache/GeoCache">Github</a>!</p>
<p>O primeiro dia do <a title="encontro de desenvolvedores ESRI" href="http://www.esri.com/events/devsummit/index.html">encontro de desenvolvedores ESRI</a> foi um dia agitado com muito conteúdo importante e uma plenária dando uma visão importantíssima para todos que trabalham com a tecnologia. Se puder <a href="http://www.esri.com/events/devsummit/videos-and-photos/index.html">assista a plenária</a> ou fique com meu resumo do dia:</p>
<ul>
<li>Com uma API com 900 tipos públicos (expostos), algumas dezenas sendo adicionadas na versão 10.1 a ESRI explica que se trata de uma complexidade necessária para as muitas funcionalidades da plataforma mas reconhece que pode simplificar as coisas, por isso está criando um modelo de objetos mais <em>flat </em>que encapsule parte da complexidade para as operações cotidianas. Essa API não terá os desvios causados pela opção de arquitetura COM atualmente utilizada.</li>
<li>Uma nova opção de API para desenvolvimento &#8211; ArcGIS Runtime &#8211; promete muito não exigindo nem mesmo a instalação (roda de um pen-drive) e permitindo a distribuição apenas de módulos específicos (core, geocoding, etc.). Uma boa introdução pode ser vista <a href="http://esriaustralia.wordpress.com/2011/02/17/the-new-arcgis-runtime/">aqui</a>;</li>
<li>O suporte 64 bits está no centro de uma revolução de performance que começa nos produtos de servidor e vai parar no desktop. Já imaginou conseguir fazer cálculo de <em>driving distance</em> on the fly? Foi demonstrado com uma base de dados de 4 milhões de registros;</li>
<li>As APIs nativas para aplicações móveis já incluem Android, Windows Phone7 e iOS com capacidades de edição e com suporte planejado para roteirização e muito mais até Novembro desse ano;</li>
<li>Anunciando um roadmap agressivo de novas funcionalidade com tempos de release muito mais curtos do que o normal, a ESRI também revisitou seu programa BETA tornando-o um programa continuado. <a href="https://betacommunity.esri.com/">Visite o novo site</a> e se inscreva;</li>
<li>Adeus SOCs, SOMs e outras características de arquitetura baseadas em DCOM atualmente existentes. Conheça em breve a nova arquitetura totalmente baseada em REST em um Webserver HTTP com todos os seus benefícios de escalabilidade, performance e muito mais;</li>
<li> Conheça e use o novo <a href="http://gis.stackexchange.com">gis.stackexchange.com</a>.</li>
</ul>
<h2>Code for America</h2>
<p>O destaque do dia vai para a apresentação do <a href="http://codeforamerica.org">Code for America</a>, uma iniciativa (e apresentação) do <a href="http://twitter.com/timoreilly">Tim O&#8217;Reilly</a> da <a href="http://oreilly.com/">O&#8217;Reilly Media</a> que propõe-se a resolver os problemas das cidades americanas através de iniciativas de desenvolvimento de software.</p>
<p>A proposta é baseada nos seguintes fatos:</p>
<ul>
<li>84% das cidades norte americanas estão com <strong>problemas financeiros</strong>;</li>
<li>A administração pública tem um sistema de contratação <strong>ineficiente</strong>;</li>
<li>A administração pública tem <strong>silos </strong>de tecnologia que afastam a inovação;</li>
<li>Os <strong>talentos </strong>não são atraídos para atuar na administração pública.</li>
</ul>
<p>A partir de uma <a href="http://www.americanprogress.org/issues/2010/07/dww_millennials.html">análise</a> de que essa geração é a mais voltada para a administração pública (não é política, é administração!) de todos os tempos e que isso é uma tremenda oportunidade para aumentar a eficiência e performance da administração pública o objetivo da entidade suportada por grandes empresas é justamente endereçar essas questões.</p>
<p>A visão do Oreilly é bastante pragmática colocando na verdade o governo como uma plataforma que irá impulsionar os próprios cidadãos.</p>
<blockquote><p><a href="http://twitter.com/shoshe">@shoshe</a>: <strong>Why</strong> is <a href="http://twitter.com/timoreilly"><strong>@timoreilly</strong></a> interested in OpenGov? Because he believes govt ought to be a platform. Let citizens do more together <a title="#Esri" href="http://twitter.com/search?q=%23Esri">#Esri</a> <strong><a title="#DevSummit" href="http://twitter.com/search?q=%23DevSummit">#DevSummit</a></strong></p></blockquote>
<p>Essa plataforma é sobre a <a title="WEB Social" href="http://en.wikipedia.org/wiki/Social_web">WEB Social</a> e <a title="Dados Abertos" href="http://www.opendatacommons.org/">Dados Abertos</a> que poderão mudar a cidadania.</p>
<p>É impressionante o que essa visão pode fazer e a profundidade que ela tem no desdobramento da administração pública como, espero, possamos ver em alguns anos.</p>
<p>Alguns projetos desenvolvidos dentro da organização:</p>
<ul>
<li><a href="http://seaapi.com/">http://seaapi.com/</a></li>
<li><a href="http://hearnear.org/">http://hearnear.org/</a></li>
<li><a href="http://septa.mobi/">http://septa.mobi/</a></li>
<li><a href="http://phillyapi.com/">http://phillyapi.com/</a></li>
<li><a href="http://adopt-a-hydrant.heroku.com/">http://adopt-a-hydrant.heroku.com/</a></li>
</ul>
<p>Considerando que os fatos que impulsionam a iniciativa estão também no Brasil pergunto: <strong>será que é possível replicar a iniciativa?</strong></p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fsmota.com.br%2F2011%2F03%2F08%2Fesri-developer-summit-day-1%2F&amp;linkname=ESRI%20Developer%20Summit%20%E2%80%93%20Day%201" title="Twitter" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fsmota.com.br%2F2011%2F03%2F08%2Fesri-developer-summit-day-1%2F&amp;linkname=ESRI%20Developer%20Summit%20%E2%80%93%20Day%201" title="Facebook" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fsmota.com.br%2F2011%2F03%2F08%2Fesri-developer-summit-day-1%2F&amp;linkname=ESRI%20Developer%20Summit%20%E2%80%93%20Day%201" title="Digg" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a><a class="a2a_button_technorati_favorites" href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fsmota.com.br%2F2011%2F03%2F08%2Fesri-developer-summit-day-1%2F&amp;linkname=ESRI%20Developer%20Summit%20%E2%80%93%20Day%201" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a><a class="a2a_button_dihitt" href="http://www.addtoany.com/add_to/dihitt?linkurl=http%3A%2F%2Fsmota.com.br%2F2011%2F03%2F08%2Fesri-developer-summit-day-1%2F&amp;linkname=ESRI%20Developer%20Summit%20%E2%80%93%20Day%201" title="diHITT" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/dihitt.png" width="16" height="16" alt="diHITT"/></a><a class="a2a_button_delicious" href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fsmota.com.br%2F2011%2F03%2F08%2Fesri-developer-summit-day-1%2F&amp;linkname=ESRI%20Developer%20Summit%20%E2%80%93%20Day%201" title="Delicious" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fsmota.com.br%2F2011%2F03%2F08%2Fesri-developer-summit-day-1%2F&amp;linkname=ESRI%20Developer%20Summit%20%E2%80%93%20Day%201" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fsmota.com.br%2F2011%2F03%2F08%2Fesri-developer-summit-day-1%2F&amp;title=ESRI%20Developer%20Summit%20%E2%80%93%20Day%201" id="wpa2a_2"><img src="http://smota.com.br/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://smota.com.br/2011/03/08/esri-developer-summit-day-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Aplicação Android &#8211; Audience Drawing &#8211; Setup</title>
		<link>http://smota.com.br/2010/11/01/aplicacao-android-audience-drawing-setup/</link>
		<comments>http://smota.com.br/2010/11/01/aplicacao-android-audience-drawing-setup/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 12:34:40 +0000</pubDate>
		<dc:creator>smota</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[x10]]></category>

		<guid isPermaLink="false">http://smota.com.br/?p=99</guid>
		<description><![CDATA[Depois de participar do Google Developer Day, apesar de não ter gostado da maioria das palestras (acredite, os evangelistas da Apple, Microsoft, ESRI e até da Sun são muito melhores do que do Google), resolvi me atualizar e escrever uma aplicação Android. Em quanto escrevo a aplicação vou fazer minhas anotações aqui no blog para [...]]]></description>
			<content:encoded><![CDATA[<p>Depois de participar do <a title="Google Developer Day" href="http://www.google.com/events/developerday/2010/">Google Developer Day</a>, apesar de não ter gostado da maioria das palestras (acredite, os evangelistas da Apple, Microsoft, ESRI e até da Sun são muito melhores do que do Google), resolvi me atualizar e escrever uma aplicação Android. Em quanto escrevo a aplicação vou fazer minhas anotações aqui no blog para registrar.</p>
<p>A aplicação chama-se <strong>Audience Drawing</strong> (sim, para aprender direito vou internacionalizar a interface) e resolve um probleminha que sempre tenho: sortear em um auditório (ou sala) os brindes levados para serem distribuídos após minha palestra. Sempre invento critérios na hora e até já usei o <a title="Ruboto" href="http://github.com/ruboto">Ruboto</a> no meu <a title="X10" href="http://www.sonyericsson.com/cws/products/mobilephones/overview/xperiax10">X10</a> que teve uma boa repercussão, mas uma aplicaçãozinha vai cair bem.</p>
<p>Esse post trata do setup do desenvolvimento, vamos aos detalhes::</p>
<ul>
<li>Funcionalidades e versões planejadas e estimadas no excelente <a href="https://www.pivotaltracker.com/projects/135007">PivotalTracker</a> (projeto compartilhado);</li>
<li><a title="Eclipse IDE" href="http://www.eclipse.org/">Eclipse IDE</a> (esse eu já tinha, mas fica registrado);</li>
<li><a href="http://developer.android.com/sdk/index.html">Android SDK</a> (inclusive com plugin no Eclipse);</li>
<li><a href="http://developer.sonyericsson.com/wportal/devworld/technology/android/developer-tools">SonyEricsson</a> Android SDK Add-on (só pra ter um skin legalzinho do meu celular);</li>
<li>Um pacote de <a href="http://www.androidicons.com/">ícones gratuitos para Android</a>;</li>
<li><a href="http://git-scm.com">Git</a> no meu <a href="http://code.google.com/p/msysgit/downloads/list">windows </a>(isso, não tinha. Só usava <a title="SVN" href="http://subversion.tigris.org/">SVN</a>);</li>
<li>Criar <a href="http://github.com/smota/AudienceDrawing">repositório do projeto</a> (compartilhado) no <a title="GitHub" href="http://github.com/">GitHub</a>.</li>
</ul>
<p>Para registrar, contando com o download e a escrita dessa parte (feita entre downloads), levei 30 minutos para fazer o setup (bastante simples, mas continue lendo &#8230;).</p>
<p>Na hora de instalar o Git optei pelo <a href="http://code.google.com/p/msysgit/">msysGit</a> que é um pacote bem próximo ao <a title="TortoiseSVN" href="http://tortoisesvn.tigris.org/">TortoiseSVN</a>, mas na hora de usar fiz algumas coisas na mão para aprender. O principal que aprendi foi: o instalador empacota o Cygwin e dá alguns <strong>problemas de path</strong>, principalmente para achar as chaves de criptografia.</p>
<p>A mensagem <strong>&#8220;Permission denied (publickey)&#8221;</strong> significa que você não criou, o git não está achando (problema de path) ou você não configurou o github para reconhecer sua chave. <a href="http://help.github.com/troubleshooting-ssh/">Essa página</a> ajuda e minha dica é: verifique que deve haver uma pasta .ssh na raiz do diretório do usuário mas também deve haver uma pasta .ssh na raiz do diretório de instalação do GIT. Os comandos ssh estão usando na instalação, o GIT está tentando ver no home do usuário. Você pode copiar para o home do usuário ou criar um arquivo config no home do usuário conforme as últimas instruções da <a href="http://help.github.com/troubleshooting-ssh/">troubleshooting</a>.</p>
<p>Vou começar lendo o <a href="http://developer.android.com/guide/topics/fundamentals.html">Fundamentals</a> para não fazer muita besteira. Principais lições:</p>
<ul>
<li>Não existe um ponto único de entrada. O Android foi feito para reaproveitar até componentes, isso significa que não há método <strong><em>main;</em></strong></li>
<li><em>Activities </em>são sua camada VIEW;</li>
<li>Meu sorteio com o<a href="http://www.random.org/clients/http/"> Random.org</a> vai ter que ser um <em>Service</em>, quem sabe alguém reaproveita.</li>
</ul>
<p>Só para lembrar o código está compartilhado <a href="http://github.com/smota/AudienceDrawing">aqui</a>!</p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F11%2F01%2Faplicacao-android-audience-drawing-setup%2F&amp;linkname=Aplica%C3%A7%C3%A3o%20Android%20%E2%80%93%20Audience%20Drawing%20%E2%80%93%20Setup" title="Twitter" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F11%2F01%2Faplicacao-android-audience-drawing-setup%2F&amp;linkname=Aplica%C3%A7%C3%A3o%20Android%20%E2%80%93%20Audience%20Drawing%20%E2%80%93%20Setup" title="Facebook" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F11%2F01%2Faplicacao-android-audience-drawing-setup%2F&amp;linkname=Aplica%C3%A7%C3%A3o%20Android%20%E2%80%93%20Audience%20Drawing%20%E2%80%93%20Setup" title="Digg" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a><a class="a2a_button_technorati_favorites" href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F11%2F01%2Faplicacao-android-audience-drawing-setup%2F&amp;linkname=Aplica%C3%A7%C3%A3o%20Android%20%E2%80%93%20Audience%20Drawing%20%E2%80%93%20Setup" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a><a class="a2a_button_dihitt" href="http://www.addtoany.com/add_to/dihitt?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F11%2F01%2Faplicacao-android-audience-drawing-setup%2F&amp;linkname=Aplica%C3%A7%C3%A3o%20Android%20%E2%80%93%20Audience%20Drawing%20%E2%80%93%20Setup" title="diHITT" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/dihitt.png" width="16" height="16" alt="diHITT"/></a><a class="a2a_button_delicious" href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F11%2F01%2Faplicacao-android-audience-drawing-setup%2F&amp;linkname=Aplica%C3%A7%C3%A3o%20Android%20%E2%80%93%20Audience%20Drawing%20%E2%80%93%20Setup" title="Delicious" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F11%2F01%2Faplicacao-android-audience-drawing-setup%2F&amp;linkname=Aplica%C3%A7%C3%A3o%20Android%20%E2%80%93%20Audience%20Drawing%20%E2%80%93%20Setup" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fsmota.com.br%2F2010%2F11%2F01%2Faplicacao-android-audience-drawing-setup%2F&amp;title=Aplica%C3%A7%C3%A3o%20Android%20%E2%80%93%20Audience%20Drawing%20%E2%80%93%20Setup" id="wpa2a_4"><img src="http://smota.com.br/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://smota.com.br/2010/11/01/aplicacao-android-audience-drawing-setup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Meu resumo da #qconsp</title>
		<link>http://smota.com.br/2010/09/19/meu-resumo-da-qconsp/</link>
		<comments>http://smota.com.br/2010/09/19/meu-resumo-da-qconsp/#comments</comments>
		<pubDate>Sun, 19 Sep 2010 14:44:17 +0000</pubDate>
		<dc:creator>smota</dc:creator>
				<category><![CDATA[carreira]]></category>
		<category><![CDATA[destaque]]></category>
		<category><![CDATA[dev]]></category>

		<guid isPermaLink="false">http://smota.com.br/?p=79</guid>
		<description><![CDATA[Esse post é um registro, após alguns anos longe de eventos genéricos de desenvolvimento (my bad), das principais lições/mensagens que trouxe da minha participação na QCONSP. O evento foi organizado pela Caelum e InfoQ Brasil (mantido pela Caelum) e contou com a participação de alguns palestrantes internacionais bem conhecidos e muitos locais também muito conhecidos. [...]]]></description>
			<content:encoded><![CDATA[<p>Esse post é um registro, após alguns anos longe de eventos genéricos de desenvolvimento (<em>my bad</em>), das principais lições/mensagens que trouxe da minha participação na <a href="http:/http://www.qconsp.com/" target="_blank">QCONSP</a>.</p>
<p>O evento foi organizado pela <a href="http://www.caelum.com.br" target="_blank">Caelum</a> e <a href="http://www.infoq.com/br" target="_blank">InfoQ Brasil</a> (mantido pela Caelum) e contou com a participação de alguns palestrantes internacionais bem conhecidos e muitos locais também muito conhecidos. Na repercussão do evento alguém twittou <em>&#8220;A Caelum colocou definitivamente o Brasil no panorama de desenvolvimento mundial&#8221;</em> (ou algo assim), embora eu discorde do &#8220;<em>colocou</em>&#8221; porque temos outros ilustres representantes em diversas áreas, com certeza a Caelum é dos mais ilustres representantes tupiniquins nesse panorama na atualidade.</p>
<p>Vamos ao resumo/lições/mensagens:</p>
<ul>
<li><strong><em>Bons profissionais são disputados</em></strong>: o <a href="http://www.ime.usp.br/~peas/" target="_blank">Paulo</a> twittou que se impressionou com a senioridade dos participantes (era de se esperar dada a senioridade das palestras) e acho que muita gente imaginou que isso ia acontecer pois vi <a href="http://www.globo.com" target="_blank">Globo.com</a>, <a href="http://www.grupoabril.com.br/institucional/abril-digital.shtml" target="_blank">Abril Digital</a>, <a href="http://www.boldcron.com.br" target="_blank">Boldcron/UOL</a>, <a href="http://www.img.com.br" target="_blank">Imagem</a> e deve ter tido mais alguém procurando bons profissionais. Apesar das ofertas (a Globo pro Rio estava pagando a mudança, 1 mês de hotel e outros mimos de recolocação não muito comuns no Brasil) acho que ninguém conseguiu muito sucesso.<br />
O que percebi tentando recrutar por lá é que esses bons profissionais provavelmente estão onde querem estar e a motivação para uma mudança  é muito subjetiva envolvendo muito mais qualidade de vida, questões familiares ou algum desafio técnico do que salário ou carreira. Então além do salário atualmente para recrutar é bom pensar no ambiente de trabalho, desafios técnicos/tecnologia, metodologia (fala que usa RUP lá) e principalmente desenvolvimento profissional.</li>
<li><strong><em>Soluções Simples para Problemas Complexos</em></strong>: é impressionante como por trás de atual sopa de letrinhas que temos que lidar no fim das contas as soluções são extremamente simples (arquiteturalmente falando, a implementação é que é o desafio). As palestras do Nick Kallen (<a href="http://www.twitter.com" target="_blank">Twitter</a>) e Randy Shoup  (<a href="http://www.ebay.com" target="_blank">eBay</a>) ilustraram isso muito bem, apesar dos números impressionantes de dados e uso dos seus sistemas a solução sempre passa por particionamento, processamento assíncrono e cache.</li>
<li><strong><em>Arquitetura emergente</em></strong>: com vários outros nomes a idéia de evolução do sistema de forma natural é realmente aplicada muito antes do batismo de arquitetura emergente. Vimos várias ocorrências (Twitter e eBay inclusive) de grandes sistemas que evoluíram passo a passo e são hoje &#8220;<em>exemplos</em>&#8220;. Boa lição para os adeptos do <a href="http://en.wikipedia.org/wiki/Big_Design_Up_Front" target="_blank">BDUF</a>.</li>
<li><strong><em>Programe</em><span style="font-weight: normal;">: se você trabalha com desenvolvimento de software, seja em que papel for (arquiteto, analista, gerente, diretor), você precisa programar. Claro que não precisa ser sua principal atividade, mas achar que pode exercer um papel de desenvolvimento sem conhecer (de verdade) os desafios do desenvolvimento (que estão na programação) é utopia.<br />
Conheço vários bons programadores que ao assumir outro papel (como arquiteto) acabaram se distanciando da programação e hoje são péssimos no que fazem. Atualizar-se em desenvolvimento significa necessariamente programar, codificar!</span></strong></li>
<li><strong><em>Testes, Testes, Testes</em><span style="font-weight: normal;">: Vi algumas palestras incríveis sobre <a href="http://en.wikipedia.org/wiki/Test-driven_development" target="_blank">TDD</a> e <a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development" target="_blank">BDD</a>. Uma máxima do Klaus foi &#8220;Não testar hoje é anti-ético&#8221; e concordo plenamente com a idéia.<br />
Hoje mais do que nunca está muito fácil automatizar toda sorte de testes, não há desculpas com as várias ferramentas (gratuitas e pagas) disponíveis. (sugiro pesquisar as opções com JRuby que conheci por lá)</span></strong></li>
<li><strong><span style="font-weight: normal;">C<em><strong>uide da sua vida online</strong></em>: reencontrei diversos conhecidos virtuais de longa data, principalmente do <a href="http://www.guj.com.br" target="_blank">GUJ</a>. Participar ativamente de comunidades, contribuir e tudo mais é muito gratificante e com certeza fará diferença para sua vida profissional.</span></strong></li>
</ul>
<p>Tecnicamente há muito mais que aprendi no evento, mas o Twitter e o <a href="http://www.slideshare.net/" target="_blank">Slideshare</a> estão cheios desse conteúdo.</p>
<p>Aguardemos os próximos eventos.</p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F09%2F19%2Fmeu-resumo-da-qconsp%2F&amp;linkname=Meu%20resumo%20da%20%23qconsp" title="Twitter" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F09%2F19%2Fmeu-resumo-da-qconsp%2F&amp;linkname=Meu%20resumo%20da%20%23qconsp" title="Facebook" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F09%2F19%2Fmeu-resumo-da-qconsp%2F&amp;linkname=Meu%20resumo%20da%20%23qconsp" title="Digg" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a><a class="a2a_button_technorati_favorites" href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F09%2F19%2Fmeu-resumo-da-qconsp%2F&amp;linkname=Meu%20resumo%20da%20%23qconsp" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a><a class="a2a_button_dihitt" href="http://www.addtoany.com/add_to/dihitt?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F09%2F19%2Fmeu-resumo-da-qconsp%2F&amp;linkname=Meu%20resumo%20da%20%23qconsp" title="diHITT" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/dihitt.png" width="16" height="16" alt="diHITT"/></a><a class="a2a_button_delicious" href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F09%2F19%2Fmeu-resumo-da-qconsp%2F&amp;linkname=Meu%20resumo%20da%20%23qconsp" title="Delicious" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F09%2F19%2Fmeu-resumo-da-qconsp%2F&amp;linkname=Meu%20resumo%20da%20%23qconsp" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fsmota.com.br%2F2010%2F09%2F19%2Fmeu-resumo-da-qconsp%2F&amp;title=Meu%20resumo%20da%20%23qconsp" id="wpa2a_6"><img src="http://smota.com.br/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://smota.com.br/2010/09/19/meu-resumo-da-qconsp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Estimativa &#193;gil: Pontos versus Tempo Ideal</title>
		<link>http://smota.com.br/2010/07/03/estimativa-gil-pontos-versus-tempo-ideal/</link>
		<comments>http://smota.com.br/2010/07/03/estimativa-gil-pontos-versus-tempo-ideal/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 12:28:59 +0000</pubDate>
		<dc:creator>smota</dc:creator>
				<category><![CDATA[destaque]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[gestão]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://smota.com.br/?p=66</guid>
		<description><![CDATA[É muito comum surgir dúvidas e discussões sobre como estimar em metodologias ágeis e apesar da dúvida surgir na adoção de um processo ágil, o problema existe em qualquer ambiente e aparece com muita frequência na forma de atrasos, compromissos não cumpridos, hora-extra, times cansados/estressados e outros recursos para perseguir um cronograma imaginário (mesmo que [...]]]></description>
			<content:encoded><![CDATA[<p>É muito comum surgir dúvidas e discussões sobre como estimar em metodologias ágeis e apesar da dúvida surgir na adoção de um processo ágil, o problema existe em qualquer ambiente e aparece com muita frequência na forma de atrasos, compromissos não cumpridos, hora-extra, times cansados/estressados e outros recursos para perseguir um cronograma imaginário (mesmo que formalizado).</p>
<p>Há duas formas de mensurar, estimar e medir tarefas que vemos/aprendemos ao nos aprofundarmos em metodologias ágeis, são o famosos <em>Story Points</em> (Pontos ou Pontos de Estória) e <em>Ideal Time</em> (Tempo Ideal).</p>
<h2>Definições</h2>
<p>Algumas definições importantes de forma rápida e prática:</p>
<ol>
<li><strong>Desenvolvimento de software é um processo empírico</strong> e essa declaração traz toda sorte de implicações como incertezas, variáveis externas, mudanças, maturidade, conhecimento e até mesmo erros que devem ser endereçadas no planejamento (incluindo a estimativa), na execução (o processo de desenvolvimento em si), na entrega (e na forma que essa expectativa é gerada e gerida) e até mesmo no ciclo de vida do seu produto/projeto;</li>
<li><strong>Velocidade é capacidade de entrega</strong> e só é conhecida pela <span style="text-decoration: underline;">entrega</span> (histórico) que vai levar em conta o ambiente de trabalho, a maturidade da equipe, a estabilidade dos processos e do ambiente, entre outras questões. O principal ponto aqui é entender e aceitar que não existe uma conta de 8h/dia x 10 profissionais x 10 dias úteis x 0,10% do cafézinho = produção de 720 horas de trabalho <strong>bem feito</strong>;</li>
<li><strong>Estimativa é uma E-S-T-I-M-A-T-I-V-A.</strong> Há incertezas, há erros e definitivamente <strong>não há precisão</strong>. O Gráfico de Gantt que fica bonito impresso não serve para muita coisa na parede.</li>
</ol>
<h2>Pontos</h2>
<p>São uma medida de complexidade relativa. Não existe uma correlação com tempo cronológico e sim com <em>tamanho e complexidade </em>das tarefas.</p>
<p>Entre suas características podemos citar:</p>
<ul>
<li>Exige um bom &#8220;baseline&#8221; para servir de parâmetro para as definições de ponto. Ou seja, a equipe precisa conhecer bem e de forma uniforme (pessoalmente &#8211; não é preciso todos serem iguais) o que considera 1 ponto, 3 pontos (não é multiplicando o item de 1 ponto por 3), etc. Um erro muito comum nesse caso é iniciar-se com uma simples conversão de horas para pontos (ex: 4h = 1 ponto), nesse caso perde-se muito do conceito e dificilmente será possível entrar nos eixos;</li>
<li>É bem difícil de explicar para o cliente ou fazer uma proposta nesse modelo se o relacionamento com o cliente não é baseado nas premissas ágeis (atualmente é comum adotar SCRUM &amp; cia internamente mas não ter o relacionamento com o cliente nesse modelo);</li>
<li>Exige alguns ciclos até que se tenha realmente uma relação com capacidade de entrega de forma uniforme e segura;</li>
<li>Mudanças freqüentes na equipe tem alto impacto no auto-conhecimento e alteram significativamente a capacidade de entrega do time.</li>
</ul>
<h2>Tempo Ideal</h2>
<p>Respondendo a pergunta &#8220;<em>Quanto tempo, sem interrupções, você levaria para fazer &#8230;.</em>&#8221; a estimativa resultante é feita em unidades de tempo <strong>ideal</strong> (geralmente horas).</p>
<p>Apesar de serem <em>horas</em> note que não existe o mundo <strong>ideal</strong>. Seu time será interrompido, haverá distrações, dias de pouca produtividade e inspiração entre outros fatores que farão uma tarefa de 8hi (hora-ideal) durar 14h cronológicas.</p>
<p>Dito isso, esse modelo ainda é mais fácil de ser adotado com alguma precisão desde o início e a comunicação em tempo ideal é mais fácil com as demais áreas relacionadas.</p>
<h2>Considerações finais</h2>
<p>Mais importante do que a forma de mensurar, medir ou controlar o desenvolvimento de software é a <strong>consistência</strong> e a <strong>constância</strong> dessas atividades, indepentende da abordagem utilizada.</p>
<p>Como algo incerto não existe uma escala certa ou errada. O bom senso nos diz que ao escolher a escala para estimar, seja em horas ideias ou pontos, a ordem de grandeza dos números deve ser diferente (não necessariamente o conceito matemático de ordem de grandeza, podemos ficar só com a idéia) já que o grau de segurança para escolher entre dois números da mesma ordem vai ser igual e não teremos realmente subsídios para escolher entre esses dois números. Por exemplo, uma tarefa pode levar 3hi ou 4hi ? Tanto faz. Agora, ela leva 2hi ou 6hi? Agora sim existe uma diferença.<br />
Da mesma forma a partir de determinado limite qualquer número é válido. A tarefa leva 80hi ou 100hi? Novamente tanto faz, minha margem de erro é tão grande que qualquer um dos dois serve.</p>
<p>Claro que há vários fatores a serem endereçados como planejamento, orçamentação, precificação, dimensionamento de equipe e investimento. Isso tudo fica mais fácil se você não ignorar a natureza empírica do desenvolvimento e o processo criativo humano e lançar mãos de outros meios para respeitar essa natureza como o contrato, <a href="http://www.jeveaux.com/blog/2010/negociacao-de-contratos-de-projetos-de-software/" target="_blank">por exemplo</a>.</p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F07%2F03%2Festimativa-gil-pontos-versus-tempo-ideal%2F&amp;linkname=Estimativa%20%C3%81gil%3A%20Pontos%20versus%20Tempo%20Ideal" title="Twitter" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F07%2F03%2Festimativa-gil-pontos-versus-tempo-ideal%2F&amp;linkname=Estimativa%20%C3%81gil%3A%20Pontos%20versus%20Tempo%20Ideal" title="Facebook" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F07%2F03%2Festimativa-gil-pontos-versus-tempo-ideal%2F&amp;linkname=Estimativa%20%C3%81gil%3A%20Pontos%20versus%20Tempo%20Ideal" title="Digg" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a><a class="a2a_button_technorati_favorites" href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F07%2F03%2Festimativa-gil-pontos-versus-tempo-ideal%2F&amp;linkname=Estimativa%20%C3%81gil%3A%20Pontos%20versus%20Tempo%20Ideal" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a><a class="a2a_button_dihitt" href="http://www.addtoany.com/add_to/dihitt?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F07%2F03%2Festimativa-gil-pontos-versus-tempo-ideal%2F&amp;linkname=Estimativa%20%C3%81gil%3A%20Pontos%20versus%20Tempo%20Ideal" title="diHITT" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/dihitt.png" width="16" height="16" alt="diHITT"/></a><a class="a2a_button_delicious" href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F07%2F03%2Festimativa-gil-pontos-versus-tempo-ideal%2F&amp;linkname=Estimativa%20%C3%81gil%3A%20Pontos%20versus%20Tempo%20Ideal" title="Delicious" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F07%2F03%2Festimativa-gil-pontos-versus-tempo-ideal%2F&amp;linkname=Estimativa%20%C3%81gil%3A%20Pontos%20versus%20Tempo%20Ideal" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fsmota.com.br%2F2010%2F07%2F03%2Festimativa-gil-pontos-versus-tempo-ideal%2F&amp;title=Estimativa%20%C3%81gil%3A%20Pontos%20versus%20Tempo%20Ideal" id="wpa2a_8"><img src="http://smota.com.br/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://smota.com.br/2010/07/03/estimativa-gil-pontos-versus-tempo-ideal/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Cloud com GAE, GWT e Spring(Roo) – Parte 1</title>
		<link>http://smota.com.br/2010/06/09/cloud-com-gae-gwt-e-springroo-parte-1/</link>
		<comments>http://smota.com.br/2010/06/09/cloud-com-gae-gwt-e-springroo-parte-1/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 17:43:03 +0000</pubDate>
		<dc:creator>smota</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[gae]]></category>
		<category><![CDATA[gwt]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[roo]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[springroo]]></category>

		<guid isPermaLink="false">http://smota.com.br/?p=27</guid>
		<description><![CDATA[Este é o primeiro de uma série de N artigos para mostrar como desenvolver uma aplicação que roda na nuvem com essa sopa de letrinhas que dessa vez ao invés de atrapalhar vai ajudar muito. Nesse primeiro artigo vamos entender o que é cada coisa e porque você iria querer usá-los além de instalar o [...]]]></description>
			<content:encoded><![CDATA[<p>Este é o primeiro de uma série de <em>N</em> artigos para mostrar como desenvolver uma aplicação que roda na <a href="http://pt.wikipedia.org/wiki/Cloud_computing" target="_blank">nuvem</a> com essa sopa de letrinhas que dessa vez ao invés de atrapalhar vai <strong>ajudar muito</strong>.</p>
<p>Nesse primeiro artigo vamos entender o que é cada coisa e porque você iria querer usá-los além de instalar o básico e executar nosso <a href="http://www.roesler-ac.de/wolfram/hello.htm" target="_blank">Hello World</a>.</p>
<p><span id="more-27"></span></p>
<h2>Quem é quem</h2>
<p><strong>GAE (Google Application Engine)</strong></p>
<p><a title="GAE" href="http://code.google.com/appengine/">GAE</a> é a plataforma de infraestrutura como serviço (<a title="IaaS" href="http://en.wikipedia.org/wiki/IaaS">IaaS</a>) do <a href="http://www.google.com/" target="_blank">Google</a>. Basicamente a idéia é que o Google oferece sua robusta e gigantesca infraestrutura para que você publique suas aplicações e tenha os benefícios de <a href="http://pt.wikipedia.org/wiki/Disponibilidade" target="_blank">disponibilidade</a> e <a href="http://pt.wikipedia.org/wiki/Escalabilidade" target="_blank">escalabilidade</a> que essa infraestrutura já tem sem que você tenha que se preocupar com processamento, armazenamento, links de comunicação, energia, segurança e todo o <a href="http://en.wikipedia.org/wiki/Capacity_planning" target="_blank">capacity planning</a> e a redundância para esses itens.</p>
<p>No conceito de IaaS você paga apenas pelo que usar (em geral mensuráveis em banda, processamento e armazenamento) e com isso pode suportar um crescimento rápido assim como picos com um custo muito mais baixo do que se fosse criar a infraestrutura em um datacenter.</p>
<p>Há várias <a href="http://cloudenterprise.info/2009/01/01/cloud-computing-in-2009-iaas-paas/" target="_blank">outras opções</a> mas uma vantagem significativa do GAE é que você pode usar tudo isso gratuitamente para aprender e até mesmo para iniciar seu site e somente quando precisar ultrapassar os limites do gratuito (que são até bem grandes) é que você precisa se preocupar com o dinheiro. Em tempo, uma observação importante é que o Google não é muito bom em definir um modelo comercial para seus produtos corporativos e você corre o risco de descobrir daqui a pouco que o modelo comercial do GAE fica pouco competitivo em relação aos concorrentes que não tem uma versão gratuita de chamariz; isso aconteceu com o <a title="Google Maps" href="http://maps.google.com/">Google Maps</a> e com o <a title="Google Applications" href="http://www.google.com/apps/">Google Applications</a> que só agora estão entrando nos eixos comercialmente.</p>
<p><strong>GWT (Google Web Toolkit)</strong></p>
<blockquote><p>O Google Web Toolkit é um toolkit de código-fonte aberto permitindo desenvolvedores a criar aplicativos com tecnologia Ajax em linguagem de programação Java. GWT suporta cliente-servidor, desenvolvimento e debugging em qualquer IDE Java.</p></blockquote>
<p style="text-align: right;"><a href="http://pt.wikipedia.org/wiki/Google_Web_Toolkit" target="_blank">Wikipedia</a></p>
<p>Para continuar falando de Google o <a title="GWT" href="http://code.google.com/webtoolkit/">GWT</a> é uma poderosa ferramenta para desenvolver o frontend da sua aplicação web usando avançados recursos de Javascript (AJAX, Partitioning, Lazy Loading), comunicação (RPC &amp; cia), depuração (debug) e teste (junit).</p>
<p>Escrevendo código Java bem conhecido com suas classes, eventos, gerenciadores de tela e outros recursos, o GWT compila tudo para HTML, CSS e Javascript otimizados para vários navegadores deixando você livre de boa parte da chatice de programar interface web (pelo menos para mim). Você ainda conta com um <a href="http://code.google.com/eclipse" target="_blank">plugin</a> para <a title="Eclipse" href="http://www.eclipse.org/">Eclipse</a> para facilitar a vida.</p>
<p>Você com certeza já viu um site escrito com GWT se usa o <a title="Gmail" href="http://mail.google.com/">Gmail</a> ou <a title="Wave" href="http://wave.google.com/">Wave</a>. Dê uma espiada nos <a href="http://code.google.com/intl/pt-BR/webtoolkit/examples/" target="_blank">exemplos</a>.</p>
<p><strong>Spring</strong></p>
<p>Bem, Spring é o <a href="http://www.springsource.com/products/enterprise" target="_blank">Spring</a>. Para mim é assustador ver que o framework da moda-super-bacana que eu conheci logo no início se tornou uma <a title="empresa" href="http://springsource.com/">empresa</a> com tantos produtos e linhas de negócio, mas de qualquer modo aqui vamos falar apenas de uma perna do ecossistema com o <a href="http://www.springsource.com/products/enterprise" target="_blank">Spring Enterprise</a>.</p>
<p>O Spring é uma plataforma de desenvolvimento Java que abstrai muita complexidade inerente ao desenvolvimento de grandes soluções  e fornece muitos serviços de forma transparente. Ele surgiu em resposta a difícil e complexa tarefa de construir aplicações com os servidores de aplicação JEE e através da integração de diversos frameworks leves tornou mais fácil e rápido o desenvolvimento sem abrir mão da robustez &amp; cia.</p>
<p>No nosso caso podemos querer usá-lo para suportar objetos de negócio, layers de serviços, manipulação de dados e camadas de aplicação no lado servidor.</p>
<p><strong>Spring Roo</strong></p>
<p><a href="http://www.springsource.org/roo" target="_blank">SpringRoo</a> é a última moda em ferramenta de produtividade. Entenda bem, é uma ferramenta de produtividade (RAD), não uma plataforma ou framework para desenvolvimento e execução de software.</p>
<p>Trata-se de uma ferramenta que gera código e mantém a integridade nas alterações buscando boas práticas utilizando <a href="http://www.springsource.org/roo/why" target="_blank">dezenas</a> de tecnologias como várias soluções da família Spring, JMS, Tiles, Dojo, <a title="Hibernate" href="http://www.hibernate.org/">Hibernate</a>, <a title="Selenium" href="http://seleniumhq.org/">Selenium</a>, <a title="JUnit" href="http://www.junit.org/">JUnit</a>, <a title="Solr" href="http://lucene.apache.org/solr/">Solr</a> e vários outros.</p>
<p>Para nosso caso queremos usá-lo porque ele assume a responsabilidade por gerar muito código extra e tedioso que uma aplicação GWT precisa (DTO, views, presenters, etc.) e as mantém em sincronismo mesmo que você altere o código Java diretamente, ele também vai nos dar suporte do Spring para codificarmos nossa aplicação no servidor e integrar a comunicação entre cliente (GWT) e Servidor (Spring). Além disso vamos deixar que ele se preocupe com as configurações para publicarmos a aplicação no GAE.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-2709194502001038";
/* 234x60, criado 09/06/10 */
google_ad_slot = "1612494078";
google_ad_width = 234;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<h2>Hello World</h2>
<p>Pré-requisitos:</p>
<ol>
<li><a href="http://www.springsource.org/roo/start" target="_blank">Instale o Roo</a></li>
</ol>
<p>Só isso. Depois ele (na verdade o <a title="Maven" href="http://maven.apache.org/">Maven</a>) se encarrega do resto (GWT, Spring, GAE &amp; cia).</p>
<p>Agora vamos criar uma aplicação GWT para o HelloWorld (GAE virá no próximo artigo):</p>
<ul>
<li>Abra o console (prompt de comando) e inicie o ROO (digite ROO se você seguiu as instruções de instalação)</li>
</ul>
<pre class="brush:plain">C:\Temp&gt;roo
    ____  ____  ____
   / __ \/ __ \/ __ \
  / /_/ / / / / / / /
 / _, _/ /_/ / /_/ /
/_/ |_|\____/\____/    1.1.0.M1 [rev 3a0b8a3]

Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER.
roo&gt;</pre>
<ul>
<li>Crie o projeto indicando o top-level-package;</li>
<pre class="brush:plain">roo&gt; project --topLevelPackage br.com.smota.helloworld
Created ...
br.com.smota.helloworld roo&gt;</pre>
<li>Defina a opção de persistência (vamos usar o GAE então a combinação é essa);</li>
<pre class="brush:plain">br.com.smota.helloworld roo&gt; persistence setup --provider DATANUCLEUS --database GOOGLE_APP_ENGINE</pre>
<li>Crie sua classe da entidade:</li>
<pre class="brush:plain">br.com.smota.helloworld roo&gt; entity --class ~.Mensagem</pre>
<li>Adicione as propriedades da sua entidade:</li>
<pre class="brush:plain">~.Mensagem roo&gt; field string --fieldName texto --notNull</pre>
<li>Crie os controllers:</li>
<pre class="brush:plain">~.Mensagem roo&gt; controller all --package ~.web</pre>
<li>Configure o GWT</li>
<pre class="brush:plain">~.web roo&gt; gwt setup
Created ...
Managed ...
Created ...
br.com.smota.helloworld roo&gt;</pre>
<li>Saia do Console do Roo</li>
<pre class="brush:plain">br.com.smota.helloworld roo&gt; exit</pre>
<li>Execute a aplicação</li>
<pre class="brush:plain">C:\Temp&gt;mvn gwt:run</pre>
</ul>
<p>Não se preocupe, as dependências ficam em cache e o Maven vai reutilizá-las (você só precisa esperar muuuito a primeira vez). Para um HelloWorld parece muita dependência e código, aguarde para adicionarmos algumas funcionalidades nos próximos passos.</p>
<p>Se ficar impaciente assista <a href="http://springbrasil.ning.com/profiles/blogs/apresentacao-sobre-springroo-e" target="_blank">esse vídeo</a>. Até a próxima!</p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F06%2F09%2Fcloud-com-gae-gwt-e-springroo-parte-1%2F&amp;linkname=Cloud%20com%20GAE%2C%20GWT%20e%20Spring%28Roo%29%20%E2%80%93%20Parte%201" title="Twitter" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F06%2F09%2Fcloud-com-gae-gwt-e-springroo-parte-1%2F&amp;linkname=Cloud%20com%20GAE%2C%20GWT%20e%20Spring%28Roo%29%20%E2%80%93%20Parte%201" title="Facebook" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F06%2F09%2Fcloud-com-gae-gwt-e-springroo-parte-1%2F&amp;linkname=Cloud%20com%20GAE%2C%20GWT%20e%20Spring%28Roo%29%20%E2%80%93%20Parte%201" title="Digg" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a><a class="a2a_button_technorati_favorites" href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F06%2F09%2Fcloud-com-gae-gwt-e-springroo-parte-1%2F&amp;linkname=Cloud%20com%20GAE%2C%20GWT%20e%20Spring%28Roo%29%20%E2%80%93%20Parte%201" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a><a class="a2a_button_dihitt" href="http://www.addtoany.com/add_to/dihitt?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F06%2F09%2Fcloud-com-gae-gwt-e-springroo-parte-1%2F&amp;linkname=Cloud%20com%20GAE%2C%20GWT%20e%20Spring%28Roo%29%20%E2%80%93%20Parte%201" title="diHITT" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/dihitt.png" width="16" height="16" alt="diHITT"/></a><a class="a2a_button_delicious" href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F06%2F09%2Fcloud-com-gae-gwt-e-springroo-parte-1%2F&amp;linkname=Cloud%20com%20GAE%2C%20GWT%20e%20Spring%28Roo%29%20%E2%80%93%20Parte%201" title="Delicious" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F06%2F09%2Fcloud-com-gae-gwt-e-springroo-parte-1%2F&amp;linkname=Cloud%20com%20GAE%2C%20GWT%20e%20Spring%28Roo%29%20%E2%80%93%20Parte%201" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fsmota.com.br%2F2010%2F06%2F09%2Fcloud-com-gae-gwt-e-springroo-parte-1%2F&amp;title=Cloud%20com%20GAE%2C%20GWT%20e%20Spring%28Roo%29%20%E2%80%93%20Parte%201" id="wpa2a_10"><img src="http://smota.com.br/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://smota.com.br/2010/06/09/cloud-com-gae-gwt-e-springroo-parte-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code test</title>
		<link>http://smota.com.br/2010/06/07/code-test/</link>
		<comments>http://smota.com.br/2010/06/07/code-test/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 18:15:07 +0000</pubDate>
		<dc:creator>smota</dc:creator>
				<category><![CDATA[dev]]></category>

		<guid isPermaLink="false">http://smota.com.br/?p=5</guid>
		<description><![CDATA[Code test 123 BlogBlogs.Com.Br DreamHost reviews]]></description>
			<content:encoded><![CDATA[<p>Code test 123</p>
<p><a rel="me" href="http://blogblogs.com.br/api/claim/882287488/248536/63146"> BlogBlogs.Com.Br </a></p>
<p><a id="EY01021416" href="http://www.hypersmash.com/dreamhost/">DreamHost reviews</a></p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F06%2F07%2Fcode-test%2F&amp;linkname=Code%20test" title="Twitter" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a><a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F06%2F07%2Fcode-test%2F&amp;linkname=Code%20test" title="Facebook" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a><a class="a2a_button_digg" href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F06%2F07%2Fcode-test%2F&amp;linkname=Code%20test" title="Digg" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a><a class="a2a_button_technorati_favorites" href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F06%2F07%2Fcode-test%2F&amp;linkname=Code%20test" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a><a class="a2a_button_dihitt" href="http://www.addtoany.com/add_to/dihitt?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F06%2F07%2Fcode-test%2F&amp;linkname=Code%20test" title="diHITT" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/dihitt.png" width="16" height="16" alt="diHITT"/></a><a class="a2a_button_delicious" href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F06%2F07%2Fcode-test%2F&amp;linkname=Code%20test" title="Delicious" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a><a class="a2a_button_linkedin" href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fsmota.com.br%2F2010%2F06%2F07%2Fcode-test%2F&amp;linkname=Code%20test" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://smota.com.br/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fsmota.com.br%2F2010%2F06%2F07%2Fcode-test%2F&amp;title=Code%20test" id="wpa2a_12"><img src="http://smota.com.br/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://smota.com.br/2010/06/07/code-test/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! -->
