<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2portuguesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-6620292438838166571</atom:id><lastBuildDate>Tue, 29 May 2012 13:25:04 +0000</lastBuildDate><category>SCWCD</category><category>JPA</category><category>Projeto I.D.A.</category><category>Wilson</category><category>Robótica</category><category>Spring Framework</category><category>Rodrigo Perenha</category><category>Alexandre Gomes</category><category>tábua de salvação</category><category>JME</category><category>RIA</category><category>android app</category><category>empreendedorismo</category><category>Glaucio</category><category>objective-c</category><category>Spring Roo</category><category>EJB</category><category>JQuery</category><category>broadcastreceiver</category><category>Thiago Vespa</category><category>Exemplos</category><category>Eventos</category><category>Neto</category><category>Spock</category><category>Humor</category><category>Eletron Livre</category><category>Video</category><category>Anhembi Morumbi</category><category>Java EE6</category><category>Florianópolis</category><category>Teste</category><category>VMWare</category><category>java</category><category>SouJava</category><category>webservices</category><category>create 4 millions</category><category>Ensino Médio</category><category>django</category><category>NetBeans</category><category>TDC</category><category>JHome</category><category>curso</category><category>io</category><category>socket</category><category>futuro incerto</category><category>Agile</category><category>paródia</category><category>Kleber</category><category>Bene</category><category>Caraguatatuba</category><category>Open4Education</category><category>comunidade</category><category>google</category><category>Cíntia Silva</category><category>Evento</category><category>AOP</category><category>Certificação</category><category>Microsoft</category><category>podcast</category><category>OAuth</category><category>Duke's Choice Award</category><category>cluster</category><category>instrutor</category><category>Selenium</category><category>smp</category><category>import</category><category>arquitetura</category><category>mpi</category><category>java ME</category><category>TDC2012</category><category>Injeção de Dependência</category><category>Oracle</category><category>feijoada geek</category><category>VOffice</category><category>grid</category><category>Globalcode</category><category>Windows Phone</category><category>R3TI</category><category>Academia Python</category><category>MarceloCastro</category><category>Arduino</category><category>opensource</category><category>ios</category><category>jetty</category><category>Rodrigo Ribeiro</category><category>AndroidRec</category><category>TDC2011</category><category>Java Noroeste</category><category>java ee</category><category>Academia do Programador</category><category>CasualClass</category><category>JSON</category><category>sp-gtug</category><category>Facebook</category><category>Academia Android</category><category>Cloud</category><category>Jorge Diz</category><category>EaD</category><category>Minicurso gratuito</category><category>bahia</category><category>Coding-Dojo</category><category>opnião</category><category>interatividade</category><category>Eder</category><category>Motorola</category><category>Sun Spot</category><category>widgets</category><category>gae</category><category>Academia Testes</category><category>Fratech</category><category>Telecomunicações</category><category>AWS</category><category>OpenTDC</category><category>teched</category><category>Rodrigo Silva</category><category>push notifications</category><category>sql</category><category>Ruby</category><category>Entrevistas TDC2011</category><category>Program-Me</category><category>Yara</category><category>BigTable</category><category>webapp</category><category>Academia do Arquiteto</category><category>rede</category><category>profissionais</category><category>Vinicius Senger</category><category>mobile</category><category>SCrumToys</category><category>UnidadeAlphaville</category><category>Rafael</category><category>erlang</category><category>JFokus</category><category>Profissão Java</category><category>Carlos Fernandes Gonçalves</category><category>Google TV</category><category>ponte h</category><category>Amazon</category><category>Hibernate</category><category>Ação Solidária</category><category>struts2</category><category>Trilha JavaEE</category><category>Vinny</category><category>Programação Orientada a Aspectos</category><category>Google Guice</category><category>iphone</category><category>MDIC</category><category>YaW</category><category>app</category><category>.net</category><category>performance</category><category>Hora do Planeta</category><category>jax-ws</category><category>Ricardo Jun</category><category>Sustentabilidade</category><category>java EE 6</category><category>scala</category><category>julio</category><category>mysql</category><category>Waldir Hadad</category><category>Flavio Marques</category><category>Nokia</category><category>dica</category><category>Prêmio</category><category>mobilidade</category><category>Aprendendo a programar</category><category>Profissao Java</category><category>blu-ray</category><category>androidconf</category><category>JustJava</category><category>multi-core</category><category>Convênio</category><category>conversão</category><category>promocao</category><category>Oportunidades</category><category>Academia Agile</category><category>Google Analytics</category><category>android</category><category>Neto Marin</category><category>Composite Components</category><category>Game development</category><category>Eletrônica</category><category>ANA ABRANTES</category><category>LinguAgil</category><category>memcached</category><category>JSF</category><category>middleware</category><category>Facelets</category><category>RENATO BELLIA</category><category>c2dm</category><category>Twitter</category><category>Grupo RBS</category><category>Elaine Silva</category><category>Elétron Livre</category><category>GWT</category><category>TV Digital</category><category>LJC</category><category>Lógica de Programação</category><category>javamail</category><category>força de trabalho</category><category>Interview Tour</category><category>jovem</category><category>ipad</category><category>php java quercus</category><category>SCJP</category><category>terracotta</category><category>SCJA</category><category>JavaOne</category><category>JavaOne Brasil</category><category>Unidade Goiânia</category><category>Requisitos</category><category>desenvolvimento</category><category>concurrent</category><category>Devoxx</category><category>Bruno Souza</category><category>cinteq</category><category>python</category><category>R3 TI</category><category>vaga</category><category>administrativo</category><category>Spring</category><category>Design Patterns</category><category>AND2</category><category>HTML5</category><category>apache</category><category>cejug</category><category>AND1</category><category>Concurso</category><category>cassandra</category><category>oss</category><category>JBoss</category><category>Retrospectiva</category><category>Luciano Ramalho</category><category>Destaque</category><category>pythonbrasil</category><category>WP</category><category>Raphael Adrien</category><category>jvm</category><category>NoSQL</category><category>Google App Engine</category><category>jcranky</category><category>Gson</category><category>JavaFX</category><category>Core Web</category><category>Pós Graduação</category><category>Sun</category><category>appengine</category><category>Academia Java</category><category>Ginga</category><category>Certificacao</category><title>Globalcoders</title><description>Um blog colaborativo com a participação de instrutores e alunos da Globalcode</description><link>http://blog.globalcode.com.br/</link><managingEditor>noreply@blogger.com (Globalcode)</managingEditor><generator>Blogger</generator><openSearch:totalResults>264</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Globalcoders" /><feedburner:info uri="globalcoders" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>Globalcoders</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/Globalcoders" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FGlobalcoders" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-1567393803373663992</guid><pubDate>Tue, 29 May 2012 12:22:00 +0000</pubDate><atom:updated>2012-05-29T10:25:04.874-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">TDC2012</category><category domain="http://www.blogger.com/atom/ns#">TDC2011</category><title>Retrospectiva Trilha de Teste TDC 2011 + Trilha de Teste TDC 2012</title><description>&lt;span style="font-family: inherit;"&gt;No ano passado (2011) eu tive o prazer de coordenar a Trilha de Teste do TDC 2011 – The Developers Conference.&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;Gostaria de apresentar para vocês alguns números desta trilha, algumas escolhas de palestras e também o que estaremos planejando para a Trilha de Teste do TDC 2012.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-bidi-font-size: 11.0pt;"&gt;&lt;span style="font-family: inherit; font-size: large;"&gt;Porque o TDC tem uma Trilha de Teste?&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: 12pt; mso-bidi-font-size: 11.0pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: inherit;"&gt;Sabemos hoje pela crescente, senão essencial melhoria dos sistemas que desenvolvemos. Há várias iniciativas dentro de uma equipe de desenvolvimento para que o produto tenha a qualidade final esperada por seus usuários.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;Porém somente testes dentro do time de desenvolvimento não nos garante a qualidade geral do software. Para isso existe uma série de profissionais que focam únicos e exclusivamente em Teste de Software.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style="font-family: inherit;"&gt;Dentro da área de teste possuímos diversas áreas de conhecimento e vertentes diferentes, onde se faz cada vez mais necessário termos este tipo de profissional atuando para garantir a qualidade dos &lt;/span&gt;&lt;span style="font-family: inherit;"&gt;sistemas desenvolvidos pelas empresas.&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;Um passo muito imponte que podemos observar das três trilhas de teste foi à abordagem de diversos assuntos técnicos dentro da área de Teste de Software, mostrando que teste não é só “testa aí!”.&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;/div&gt;
&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-bidi-font-size: 11.0pt;"&gt;&lt;span style="font-family: inherit; font-size: large;"&gt;Trilha de Teste TDC 2011 – São Paulo&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: 12pt; mso-bidi-font-size: 11.0pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: inherit;"&gt;Este trilha foi um mix de assuntos bem interessantes com assuntos de nível básico até avançado.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;Dois destaques desta trilha foram a palestra sobre&lt;em&gt; Teste de Segurança&lt;/em&gt; e sobre &lt;em&gt;Especificação por Exemplos&lt;/em&gt;. Nesta mesma trilha tivemos uma palestra sobre &lt;em&gt;Agile Testing&lt;/em&gt; que foi apresentada nas outras trilhas de Teste em Florianópolis e Goiânia.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;Como última palestra tivemos uma Mesa Redonda com perguntas feitas pelos participantes da Trilha de Teste, o vídeo da Mesa Redonda pode ser visualizado no link abaixo.&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: inherit;"&gt;Informações Gerais&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;Esta trilha ocorreu no dia 07/07/2011, quinta-feira&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;Número de participantes: 129&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;Download das palestras: &lt;/span&gt;&lt;a href="http://www.thedevelopersconference.com.br/tdc/2011/saopaulo/trilha-testes"&gt;&lt;span style="color: blue;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color: blue; font-family: inherit;"&gt;&lt;a href="http://www.thedevelopersconference.com.br/tdc/2011/saopaulo/trilha-testes"&gt;http://www.thedevelopersconference.com.br/tdc/2011/saopaulo/trilha-testes&lt;/a&gt;&lt;/span&gt;&lt;a href="http://www.thedevelopersconference.com.br/tdc/2011/saopaulo/trilha-testes"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;Vídeo da Mesa Redonda: &lt;/span&gt;&lt;a href="http://www.thedevelopersconference.com.br/tdc/2011/saopaulo/videos/testes-elias-nogueira"&gt;&lt;span style="color: blue;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color: blue; font-family: inherit;"&gt;&lt;a href="http://www.thedevelopersconference.com.br/tdc/2011/saopaulo/videos/testes-elias-nogueira"&gt;http://www.thedevelopersconference.com.br/tdc/2011/saopaulo/videos/testes-elias-nogueira&lt;/a&gt;&lt;/span&gt;&lt;a href="http://www.thedevelopersconference.com.br/tdc/2011/saopaulo/videos/testes-elias-nogueira"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;Fotos da Trilha de Teste: &lt;/span&gt;&lt;a href="https://picasaweb.google.com/101683666840607649394/TDC2011SPTrilhaTestes"&gt;&lt;span style="color: blue;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color: blue; font-family: inherit;"&gt;&lt;a href="https://picasaweb.google.com/101683666840607649394/TDC2011SPTrilhaTestes"&gt;https://picasaweb.google.com/101683666840607649394/TDC2011SPTrilhaTestes&lt;/a&gt;&lt;/span&gt;&lt;a href="https://picasaweb.google.com/101683666840607649394/TDC2011SPTrilhaTestes"&gt;&lt;/a&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: 12pt; mso-bidi-font-size: 11.0pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-bidi-font-size: 11.0pt;"&gt;&lt;span style="font-family: inherit; font-size: large;"&gt;Trilha de Teste TDC 2011 – Florianópolis&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;Nesta edição da Trilha de Teste tivemos novas palestras muito interessantes e diferentes. Já virando uma tradição tivemos a palestra de&lt;em&gt; Agile Testing&lt;/em&gt;, mas tivemos diferentes assuntos como “&lt;em&gt;Práticas de Testes Manuais e Automáticos para aplicativo de TV Digital em dispositivos móveis&lt;/em&gt;” onde foi apresentado como a Nokia testa manualmente e automatiza os testes do software de TVDigital.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;Tivemos também a apresentação sobre &lt;em&gt;ATDD – Acceptance Test Driven Development e BDD – Behavior Driven Development&lt;/em&gt; apresentando como podemos nor organizer e aplicar estas técnicas em nosso ambiente de trabalho.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;Aprendemos também a configurar o Jenkins para a execução de testes automatizados com a palestra “&lt;em&gt;Botando o Jenkins para rodar seus testes&lt;/em&gt;”.&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: inherit;"&gt;Informações Gerais&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;Esta trilha ocorreu no dia 20/08/2011, sábado&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;Número de participantes: 134&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;Download das palestras: &lt;/span&gt;&lt;a href="http://www.thedevelopersconference.com.br/tdc/2011/florianopolis/trilha-testes#programacao"&gt;&lt;span style="color: blue;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color: blue; font-family: inherit;"&gt;&lt;a href="http://www.thedevelopersconference.com.br/tdc/2011/florianopolis/trilha-testes#programacao"&gt;http://www.thedevelopersconference.com.br/tdc/2011/florianopolis/trilha-testes#programacao&lt;/a&gt;&lt;/span&gt;&lt;a href="http://www.thedevelopersconference.com.br/tdc/2011/florianopolis/trilha-testes#programacao"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;Áudio da Mesa Redonda: &lt;/span&gt;&lt;a href="http://sembugs.blogspot.com.br/2011/12/podcast-mesa-redonda-trilha-de-teste.html"&gt;&lt;span style="color: blue;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color: blue; font-family: inherit;"&gt;&lt;a href="http://sembugs.blogspot.com.br/2011/12/podcast-mesa-redonda-trilha-de-teste.html"&gt;http://sembugs.blogspot.com.br/2011/12/podcast-mesa-redonda-trilha-de-teste.html&lt;/a&gt;&lt;/span&gt;&lt;a href="http://sembugs.blogspot.com.br/2011/12/podcast-mesa-redonda-trilha-de-teste.html"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;Fotos da Trilha de Teste: &lt;/span&gt;&lt;a href="https://picasaweb.google.com/101683666840607649394/TDC2011FloripaSabadoTrilhaTestes"&gt;&lt;span style="color: blue;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color: blue; font-family: inherit;"&gt;&lt;a href="https://picasaweb.google.com/101683666840607649394/TDC2011FloripaSabadoTrilhaTestes"&gt;https://picasaweb.google.com/101683666840607649394/TDC2011FloripaSabadoTrilhaTestes&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;br /&gt;
&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="mso-bidi-font-size: 11.0pt;"&gt;&lt;span style="font-family: inherit; font-size: large;"&gt;Trilha de Teste TDC 2011 – Goiânia&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: 12pt; mso-bidi-font-size: 11.0pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: inherit;"&gt;Nesta Trilha de Teste tivemos algumas novas palestras onde uma das mais interessantes foi a de “&lt;em&gt;Automação de Teste para iPhone e iPad com Frank&lt;/em&gt;”. Tivemos também uma ótima apresentação sobre “&lt;em&gt;Derrubando as barreiras da comunicação testers x desenvolvedor&lt;/em&gt;” que nos faz pensar se realmente testers e desenvolvedores são inimigos.&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;Como nas outras Trilhas tivemos a Mesa Redonda, mas antes dela um hands on de &lt;em&gt;Selenium 2 (Webdriver) com Page Objects&lt;/em&gt;, mostrando o quanto o teste automatizado orientado a browser pode ser modular e reutilizável.&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: inherit;"&gt;Informações Gerais&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;Esta trilha ocorreu no dia 29/10/2011, sábado&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;Número de participantes: 40&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;Download das palestras: &lt;/span&gt;&lt;a href="http://www.thedevelopersconference.com.br/tdc/2011/goiania/trilha-testes#programacao"&gt;&lt;span style="color: blue;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color: blue; font-family: inherit;"&gt;&lt;a href="http://www.thedevelopersconference.com.br/tdc/2011/goiania/trilha-testes#programacao"&gt;http://www.thedevelopersconference.com.br/tdc/2011/goiania/trilha-testes#programacao&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;/div&gt;
&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: inherit; font-size: large;"&gt;Agradecimentos da Trilha de Teste&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;Primeiramente ao &lt;u&gt;Jorge Diz&lt;/u&gt;, que foi o coordenador da Trilha de Teste do TDC 2010 e que me ajudou a coordenar a Trilha de São Paulo. Também aos nossos patrocinadores &lt;/span&gt;&lt;a href="http://www.iterasys.com.br/"&gt;&lt;span style="color: blue; font-family: inherit;"&gt;Iterasys&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: inherit;"&gt; e &lt;/span&gt;&lt;a href="http://www.thoughtworks.com/"&gt;&lt;span style="color: blue; font-family: inherit;"&gt;ThoughtWorks&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: inherit;"&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;br /&gt;
&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-family: inherit; mso-bidi-font-size: 11.0pt;"&gt;O que teremos neste ano de 2012?&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: 12pt; mso-bidi-font-size: 11.0pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: inherit;"&gt;Os temas ainda são surpresa, mas existe uma novidade muito interessante para todos: a Trilha de Teste está dividida em duas! Isso mesmo!&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;br /&gt;
&lt;strong&gt;Trilha de Teste University&lt;/strong&gt;&lt;br /&gt;
Esta trilha tem o foco de trazer todos os assuntos básicos da ára de teste de software, como certificações, como começar, como planejar e executar testes, como iniciar em automação, etc...&lt;br /&gt;
É voltada principalmente para o público universitário, iniciante ou curiosos da área.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Coordenadores&lt;/u&gt;: Jorge Diz e Elias Nogueira&lt;br /&gt;
&lt;u&gt;Data&lt;/u&gt;: 05/07 (quinta-feira)&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Trilha de Teste Regular&lt;/strong&gt;Vai abordar assuntos intermediários/avançados, sempre trazendo as novidades da área de teste e como aplicar diversas abordagens, como testes de segurança e agile que tivemos no ano passado.&lt;br /&gt;
Embora&amp;nbsp;esta trilha tenha assuntos mais avançados que a Trilha de Teste University,&amp;nbsp;esta trilha á aberta para qualquer pessoa.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Coordenadores&lt;/u&gt;: Leonardo Oliveira e Elias Nogueira&lt;br /&gt;
&lt;u&gt;Data&lt;/u&gt;: 06/07 (sexta-feira)&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Como submeter uma palestra?&lt;/strong&gt;&lt;br /&gt;
Você pode submeter uma palestra para qualquer trilha, não só para a de teste, mas para isso é necessário o preenchimento do Call4Papers.&lt;br /&gt;
São 3 tipos de apresentações: relâmpago (5 min), mini palestra (15 min) e palestra ou debate&amp;nbsp;(45 min)&lt;br /&gt;
&lt;a href="http://www.thedevelopersconference.com.br/tdc/2012/saopaulo/call4papers"&gt;http://www.thedevelopersconference.com.br/tdc/2012/saopaulo/call4papers&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Como me inscrever nas Trilhas de Teste?&lt;/strong&gt;&lt;br /&gt;
Acesso o site do TDC e faça sua inscriação&lt;br /&gt;
&lt;a href="http://www.thedevelopersconference.com.br/tdc/2012/index.html#saopaulo"&gt;http://www.thedevelopersconference.com.br/tdc/2012/index.html#saopaulo&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="MsoNoSpacing" style="margin: 0cm 0cm 0pt;"&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-1567393803373663992?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/S-kWjwJbOtU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/S-kWjwJbOtU/retrospectiva-trilha-de-teste-tdc-2011.html</link><author>noreply@blogger.com (Elias Nogueira)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/05/retrospectiva-trilha-de-teste-tdc-2011.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-6270563256028256911</guid><pubDate>Tue, 22 May 2012 18:50:00 +0000</pubDate><atom:updated>2012-05-22T15:50:42.927-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">widgets</category><category domain="http://www.blogger.com/atom/ns#">Neto Marin</category><category domain="http://www.blogger.com/atom/ns#">c2dm</category><category domain="http://www.blogger.com/atom/ns#">AND1</category><category domain="http://www.blogger.com/atom/ns#">Academia Android</category><category domain="http://www.blogger.com/atom/ns#">push notifications</category><category domain="http://www.blogger.com/atom/ns#">android</category><category domain="http://www.blogger.com/atom/ns#">AND2</category><title>Venha aprender a criar homescreen widgets e usar notificações push para Android !</title><description>Ola pessoal,&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://www.globalcode.com.br/img/banners/treinamentos/banner-ac-android-180x150.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://www.globalcode.com.br/img/banners/treinamentos/banner-ac-android-180x150.gif" /&gt;&lt;/a&gt;&lt;/div&gt;
Nossa caminhada na &lt;a href="http://www.globalcode.com.br/treinamentos/carreiras/academia-android" target="_blank"&gt;Academia Android&lt;/a&gt; continua firme e forte, e no último sábado terminamos o primeiro módulo, o AND1 - Programando para Android. E nesse sábado começa uma nova etapa, e você que já conhece Android também pode participar !&lt;br /&gt;
&lt;br /&gt;
Nesse final de semana, 26 de maio, começa o &lt;a href="http://www.globalcode.com.br/treinamentos/modulos/criando-widgets-e-notificacoes-push" target="_blank"&gt;AND2 -&amp;nbsp;Criando Widgets e notificações push&lt;/a&gt;. Nesse módulo iremos discutir a criação daquelas pequenas aplicações que ficam na tela inicial dos dispositivos Android. Esses widget aumentam sua interação com o usuário, além de sair da "mesmice" dos ícones e começar a oferecer uma nova experiência para o usuário. E no caso das push notifications, Cloud To Device Message (C2DM), você tornará sua aplicação pró-ativa, assim, os usuários podem ser convidados a acessar mais vezes sua aplicação. E dessa forma, você pode aumentar o engajamento do seu cliente e também, até conseguir um aumento na receita de propagandas, já que o usuário passará mais tempo na sua aplicação.&lt;br /&gt;
&lt;br /&gt;
Para esse curso, o requisito é conhecer o básico de Android, saber como funciona uma Activity, BroadcastReceiver e Services, pois são componentes indispensáveis nessas funcionalidades!&lt;br /&gt;
&lt;br /&gt;
Gostou? Ficou com alguma dúvida? Fique a vontade para entrar em contato através do e-mail, telefone ou nos twitters @netomarin e @globalcode !! Vejo você lá!!&lt;br /&gt;
&lt;br /&gt;
Abraços&lt;br /&gt;
Neto&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-6270563256028256911?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/N0aBVTDHnQY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/N0aBVTDHnQY/venha-aprender-criar-homescreen-widgets.html</link><author>noreply@blogger.com (Neto Marin)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/05/venha-aprender-criar-homescreen-widgets.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-9026329273616705822</guid><pubDate>Mon, 07 May 2012 16:23:00 +0000</pubDate><atom:updated>2012-05-07T13:23:43.260-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java ME</category><category domain="http://www.blogger.com/atom/ns#">Game development</category><category domain="http://www.blogger.com/atom/ns#">Nokia</category><category domain="http://www.blogger.com/atom/ns#">Neto Marin</category><category domain="http://www.blogger.com/atom/ns#">AndroidRec</category><category domain="http://www.blogger.com/atom/ns#">podcast</category><category domain="http://www.blogger.com/atom/ns#">JME</category><category domain="http://www.blogger.com/atom/ns#">android</category><category domain="http://www.blogger.com/atom/ns#">Open4Education</category><category domain="http://www.blogger.com/atom/ns#">Minicurso gratuito</category><title>Mobilidade pegando fogo na Globalcode! AndroidRec, AND1 on-line, TDC, minicursos e etc...</title><description>Ola pessoal,&lt;br /&gt;
&lt;br /&gt;
O assunto mobile está cada vez mais pegando fogo aqui na Globalcode ! Vários minicursos, novas turmas de Android, eventos e muito mais. É sempre muito bom quando o trabalho tem efeito e rende frutos em tão pouco tempo!!&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-l2HvSzsWymY/T6fxUERqj9I/AAAAAAAAA6Y/kdwPTO9lxjY/s1600/androidrec.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-l2HvSzsWymY/T6fxUERqj9I/AAAAAAAAA6Y/kdwPTO9lxjY/s200/androidrec.png" width="143" /&gt;&lt;/a&gt;&lt;/div&gt;
Recentemente fui convidado pelo pessoal da &lt;a href="http://www.androidrec.com.br/" target="_blank"&gt;AndroidRec&lt;/a&gt; a ir até Recife para participar do evento. O evento aconteceu no dia 28 de abril no auditório da Editora Universitária da UFPE e contou com mais de 130 participantes ! Tive a honra de abrir o evento, e logo de cara com duas palestras!&lt;br /&gt;
Uma mini-palestra de 15 minutos com o título de &lt;a href="http://www.slideshare.net/netomarin/android-ics-highlights-androidrec" target="_blank"&gt;ICS Highlights&lt;/a&gt; onde procurei apresentar os pontos fortes da nova versão do Android, e que em muitos pontos pode ser considerada revolucionária e com importantes melhorias visuais para os aplicativos Android.&lt;br /&gt;
Depois, a palestra &lt;a href="http://www.slideshare.net/netomarin/cloud-2-device-message-framework-androidrec" target="_blank"&gt;C2DM - Cloud To Device Message&lt;/a&gt;, &amp;nbsp;um pouco mais técnica e com duração de 45 minutos, mas que mesmo assim não desanimou o pessoal! Todos bem interessados e com excelentes perguntas ao final da apresentação.&lt;br /&gt;
E além disso, o evento contou com outros ótimos palestrantes abordando temas muito importantes no desenvolvimento para Android. O evento foi muito bem organizado, com ótimo nível técnico e excelente acomodações. Espero ano que vem estar lá novamente! ;-)&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-xkHGIqZD3ik/T6fz4ljhgHI/AAAAAAAAA6g/44ah-48_Ps8/s1600/itroads.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="56" src="http://4.bp.blogspot.com/-xkHGIqZD3ik/T6fz4ljhgHI/AAAAAAAAA6g/44ah-48_Ps8/s200/itroads.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
Durante o AndroidRec também participei da gravação de um podcast com o pessoal do &lt;a href="http://www.itroads.com.br/" target="_blank"&gt;ITRoads&lt;/a&gt;. O podcast foi bem legal, gravado de forma bem discontraida e com a participação do Ricardo Lechetta (autor de livros de Android) e também do João Paulo Magalhães, um dos organizadores do evento. Nesse podcast discutimos aspectos da plataforma Android, um poquinho sobre Windows Phone e também sobre o desenvolvimento nativo x HTML 5 (webapps). Você pode conferir o podcast diretamente na página&amp;nbsp;&lt;a href="http://www.itroads.com.br/2012/05/it-roads-7-mercado-mobile-direto-do.html" target="_blank"&gt;IT Roads #7: Mercado Mobile direto do AndroidRec&lt;/a&gt;.&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/-nMiSqYAUA1Y/T6f1yt_m7vI/AAAAAAAAA6o/B3elxP9Eiio/s1600/academiaandroid.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-nMiSqYAUA1Y/T6f1yt_m7vI/AAAAAAAAA6o/B3elxP9Eiio/s1600/academiaandroid.png" /&gt;&lt;/a&gt;&lt;br /&gt;
Outro assunto que também pude ter a oportunidade de falar no podcast (obrigado ao pessoal do ITRoads) foi sobre a &lt;a href="http://www.globalcode.com.br/noticias/AND1GanhaVersaoOnline" target="_blank"&gt;turma&amp;nbsp;ON-LINE&amp;nbsp;do AND1 - Programando para Android que começa amanhã&lt;/a&gt; ! É isso mesmo, você que quer programar para Android e não mora em São Paulo ou prefere fazer a aula do conforto da sua casa, pode participar dessa turma on-line. São 32 horas de treinamento através do ambiente Cisco Webex (que já utilizamos em nossos minicursos)! Nada de video aula, eu vou estar ao vivo apresentando a aula e interagindo normalmente com todos alunos!&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-ECRXD8D7KPU/T6f2Ip888SI/AAAAAAAAA6w/jbQSXy-a4y0/s1600/webex.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="76" src="http://1.bp.blogspot.com/-ECRXD8D7KPU/T6f2Ip888SI/AAAAAAAAA6w/jbQSXy-a4y0/s200/webex.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
Agora atenção, se você é desconfiado, quer saber melhor como é esse ambiente online, entre em contato com a nossa secretária e pode fazer um test drive da primeira aula! Se você quer realmente fazer &amp;nbsp;o curso mas está em dúvida, nós vamos deixar que você assista a primeira aula para se decidir. Mas atenção, entre em contato logo porque as vagas são LIMITADAS!&lt;br /&gt;
&lt;br /&gt;
E pra finalizar o post, gostaria de lembrar que temos diversos minicursos de mobilidade como parte da iniciativa Open4Education ! O próximo é o de Java ME Game Development com o apoio da Nokia e a presença do Awdren Fontão, desenvolvedor do Instituto Nokia de Tecnologia (INdT) e quem diretamente de Manaus para ministrar esse minicurso GRATUITO para nós. Se você gosta de jogos e quer ganhar um dinheiro com isso, não pode perder a chance de ver alguns dados estatísticos desse mercado e também como fazer jogos de forma fácil e divertida!&lt;br /&gt;
&lt;br /&gt;
É isso ai pessoal, espero que tenham gostado desse "resumão" e em breve volto com novidades sobre novos minicursos e turmas na Globalcode! E precisando é só entrar em contato pelo twitter @netomarin.&lt;br /&gt;
&lt;br /&gt;
Abraços&lt;br /&gt;
Neto&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-9026329273616705822?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/Gy-WgbXJ0lk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/Gy-WgbXJ0lk/mobilidade-pegando-fogo-na-globalcode.html</link><author>noreply@blogger.com (Neto Marin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-l2HvSzsWymY/T6fxUERqj9I/AAAAAAAAA6Y/kdwPTO9lxjY/s72-c/androidrec.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/05/mobilidade-pegando-fogo-na-globalcode.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-5080079755270751267</guid><pubDate>Wed, 02 May 2012 18:41:00 +0000</pubDate><atom:updated>2012-05-07T12:35:00.547-03:00</atom:updated><title>Conversando com especialista: JavaFX, durante o JFokus</title><description>O JavaOne India começa amanhã, e nada melhor do que encerrar um projeto antes de começar outro!&lt;br /&gt;
Vale a pena assistir a mini-entrevista realizada por Fabiane Nardon com &lt;a href="http://twitter.com/net0pyr"&gt;Michael Heinrichs&lt;/a&gt; da Oracle durante o JFokus na Suécia.&amp;nbsp; &lt;br/&gt;

&lt;iframe src="http://player.vimeo.com/video/40954025?color=ff9933" width="400" height="225" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;&lt;/iframe&gt;
&lt;br /&gt;

Se você quer saber mais sobre JavaFX, não perca o &lt;a href="http://www.justjava.com.br/"&gt;JustJava&lt;/a&gt;, com a participação do especialista Stephen Chin.&lt;br /&gt;
&lt;br /&gt;
É isso ai pessoal, um post rápido, com uma ótima entrevista!&lt;br /&gt; 
Amanhã começa mais um JavaOne, espero trazer muitas boas notícias e novidades!
&lt;br /&gt;
[]s&lt;br /&gt;Yara Senger&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-5080079755270751267?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/pv8wCyOj6mQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/pv8wCyOj6mQ/conversando-com-especialista-javafx.html</link><author>noreply@blogger.com (Yara Senger)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/05/conversando-com-especialista-javafx.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-5247400705487952484</guid><pubDate>Wed, 25 Apr 2012 15:23:00 +0000</pubDate><atom:updated>2012-05-02T15:43:40.329-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java ME</category><category domain="http://www.blogger.com/atom/ns#">Windows Phone</category><category domain="http://www.blogger.com/atom/ns#">Nokia</category><category domain="http://www.blogger.com/atom/ns#">Neto Marin</category><category domain="http://www.blogger.com/atom/ns#">Academia Android</category><category domain="http://www.blogger.com/atom/ns#">JME</category><category domain="http://www.blogger.com/atom/ns#">android</category><title>Globalcode e Neto Marin na Info falando de Windows Phone!</title><description>Bom dia pessoal,&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-FjR8OOwHrlI/T5gNyLmRE9I/AAAAAAAAA58/d05GovVSkCI/s1600/windows_phone_logo.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="119" src="http://2.bp.blogspot.com/-FjR8OOwHrlI/T5gNyLmRE9I/AAAAAAAAA58/d05GovVSkCI/s200/windows_phone_logo.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
Na semana passada tivemos a honra de ser convidados a bater um papo com o jornalista Rafael Ferrer da Info Online, e o papo foi sobre o mercado de trabalho e aplicativos para o Windows Phone e que foi publicada na matéria "&lt;a href="http://info.abril.com.br/noticias/carreira/vale-a-pena-desenvolver-para-windows-phone-23042012-3.shl" target="_blank"&gt;Vale a pena desenvolver para Windows Phone?&lt;/a&gt;". A principal mensagem que tentei passar, e que foi destacada na matéria, é que o desenvolvedor deve estar ligado nas novas plataformas móveis que surgem e que ser fanboy é coisa para os usuários!&lt;br /&gt;
A matéria conta com a opinião de outros especialistas e também com um ótimo texto, muito bem escrito e imparcial. Cita pontos fortes e fracos da plataforma, além de explorar a importante questão do mercado de trabalho e oportunidades da área ! Com certeza vale a leitura! ;-)&lt;br /&gt;
&lt;br /&gt;
Essa é uma mensagem que nós da Globalcode tentamos passar, e colocamos isso em prática ! Além dos consagrados minicursos de &lt;a href="http://globalcode.com.br/gratuitos/minicursos/minicurso-desenvolvimento-de-aplicacoes-moveis-com-javaME" target="_blank"&gt;Java ME&lt;/a&gt; e &lt;a href="http://globalcode.com.br/gratuitos/minicursos/minicurso-introducao-ao-android" target="_blank"&gt;Android&lt;/a&gt;, nós já apresentamos minicursos sobre &lt;a href="http://globalcode.com.br/gratuitos/minicursos/minicurso-comecando-desenvolvimento-para-ios" target="_blank"&gt;iOS&lt;/a&gt; e &lt;a href="http://globalcode.com.br/gratuitos/minicursos/introducao-ao-desenvolvimento-de-aplicativos-para-windows-phone" target="_blank"&gt;Windows Phone&lt;/a&gt;, em recente parceria com a Nokia, que contou até com uma pizza no final para melhorar o networking ! Também já falamos até da &lt;a href="http://globalcode.com.br/gratuitos/minicursos/minicurso-criando-webapps-para-nokia-s40" target="_blank"&gt;criação de Webapps para os telefones da S40 na Nokia&lt;/a&gt;, na época com foco para ajudar os desenvolvedores a participarem de um concurso. E diversos desses cursos já possuem versão em video e podem ser assistidos onde e quantas vezes você quiser !&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;E mais minicursos vem aí !!&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://globalcode.com.br/img/logos/logo_openeducation.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://globalcode.com.br/img/logos/logo_openeducation.png" /&gt;&lt;/a&gt;&lt;br /&gt;
E para dar continuidade nessa linha e com o nosso compromisso com a comunidade de TI brasileira, e também com aqueles que querem entrar nesse mundo da mobilidade, nas próximas semanas irão ocorrer mais alguns minicursos. Toda a agenda de minicursos da Globalcode e da iniciativa Open4Education está disponível em&amp;nbsp;http://globalcode.com.br/gratuitos/miniCursos. Mas vamos aos destaques:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;25/04 (hoje!!): Minicurso via webcast de &lt;a href="http://globalcode.com.br/gratuitos/minicursos/minicurso-introducao-ao-android" target="_blank"&gt;Introdução ao desenvolvimento Android&lt;/a&gt; com Neto Marin! ;-)&lt;/li&gt;
&lt;li&gt;10/05: &lt;a href="http://globalcode.com.br/gratuitos/minicursos/minicurso-j2me-game-development" target="_blank"&gt;JME Game Development&lt;/a&gt; com Andrew Fontão, que vem diretamente de Manaus e do instituto Nokia de Tecnologia para falar de um mar sem fim de oportunidades com a plataforma móvel mais famosa, o Java ME ! =)&lt;/li&gt;
&lt;li&gt;16/05: &lt;a href="http://globalcode.com.br/gratuitos/minicursos/minicurso-tutorial-windows-phone" target="_blank"&gt;Tutorial Windows Phone&lt;/a&gt;, para você que leu a matéria acima e está empolgado em começar nesse mundo também! E para você que já conhece outra plataforma, mas quer aumentar o seu conhecimento e leque de oportunidades! =)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Os minicursos de JME e Windows Phone também contarão com a aula presencial. Por isso, se você está em São Paulo, junte-se a nós e venha até a Globalcode, onde as possibilidade de um networking são ainda maiores !&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;AND1 Online !&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
E pra você que já quer começar a estudar mais a fundo uma plataforma, mas mora longe de São Paulo ou não tem condições de vir até nossa unidade, vai começar no dia 08/05 uma edição online do curso &lt;a href="http://globalcode.com.br/treinamentos/modulos/programando-para-android" target="_blank"&gt;AND1 - Programando para Android&lt;/a&gt; !&amp;nbsp;Esse curso é o &lt;a href="http://globalcode.com.br/treinamentos/carreiras/academia-android" target="_blank"&gt;primeiro módulo da Academia Android&lt;/a&gt; e te fornece toda a base necessária para desenvolver o seu aplicativo no Google Play utilizando recursos avançados da plataforma Android!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Estamos esperando vocês! Não perca as oportunidades, que são muitas!&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Abraços&lt;/div&gt;
&lt;div&gt;
Neto&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-5247400705487952484?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/5Er-UQ4m10E" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/5Er-UQ4m10E/globalcode-e-neto-marin-na-info-falando.html</link><author>noreply@blogger.com (Neto Marin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-FjR8OOwHrlI/T5gNyLmRE9I/AAAAAAAAA58/d05GovVSkCI/s72-c/windows_phone_logo.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/04/globalcode-e-neto-marin-na-info-falando.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-2937343646555406931</guid><pubDate>Tue, 24 Apr 2012 14:38:00 +0000</pubDate><atom:updated>2012-04-24T11:38:04.106-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Yara</category><category domain="http://www.blogger.com/atom/ns#">Eventos</category><category domain="http://www.blogger.com/atom/ns#">LJC</category><category domain="http://www.blogger.com/atom/ns#">Interview Tour</category><category domain="http://www.blogger.com/atom/ns#">JHome</category><title>Apresentando Projeto jHome na London Java Community</title><description>Deste que o projeto &lt;a href="http://www.eletronlivre.com.br/jhome/kit/"&gt;jHome&lt;/a&gt; foi lançado e ganhou o prêmio &lt;a href="http://blog.eletronlivre.com.br/2011/11/jhome-no-community-keynote-javaone-sao.html"&gt;Duke's Choice Award / Oracle Innovation Award&lt;/a&gt; nós tivemos a honra de sermos convidados a apresentar o projeto em vários eventos, e estamos aproveitando cada minuto e investindo ainda mais pra fazer o projeto decolar!&lt;br /&gt;
&lt;br /&gt;
Quando fomos para o &lt;a href="http://www.blogger.com/goog_1208974090"&gt;JFokus&lt;/a&gt;&lt;a href="http://blog.globalcode.com.br/2012/04/globalcode-e-eletronlivre-no-jfokus-na.html"&gt;, na Suécia&lt;/a&gt; aproveitamos para conhecer a terra dos Beatles e também da &lt;a href="http://www.meetup.com/Londonjavacommunity/events/48803012/"&gt;London Java Community&lt;/a&gt;, uma das comunidades mais ativas atualmente, que também participa do Java Community Process junto com o &lt;a href="http://www.soujava.com.br/"&gt;SouJava&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
O evento foi um exemplo de organização! Segundo Barry Cranford, fundador da RecWorks foi o evento mais lotado da London Java Community, e o feedback foi maravilhoso, veja o &lt;a href="http://londonjavacommunity.wordpress.com/2012/02/23/round-up-of-tuesday-nights-soujava-invasion/"&gt;post do Barry Cranford falando sobre a nossa participação no evento&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Veja algumas fotos do evento e do passeio em Londres e algumas cidades vizinhas na compania de Fabiane Nardon e Simon Phipps (Thank you very much Simon!).&lt;br /&gt;
&lt;br /&gt;
&lt;embed flashvars="host=picasaweb.google.com&amp;amp;noautoplay=1&amp;amp;hl=pt_BR&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=https%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fglobalcodebrasil%2Falbumid%2F5734952308425435105%3Falt%3Drss%26kind%3Dphoto%26hl%3Dpt_BR" height="267" pluginspage="http://www.macromedia.com/go/getflashplayer" src="https://picasaweb.google.com/s/c/bin/slideshow.swf" type="application/x-shockwave-flash" width="400"&gt;&lt;/embed&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Vídeo das palestras&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Você pode assistir as duas palestras na integra: &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://skillsmatter.com/podcast/home/jinspired/js-3393%20"&gt;JavaEE Applications in Production: Tips and Tricks to achieve zero downtime&lt;/a&gt;&lt;i&gt;&lt;br /&gt;Fabiane Nardon&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://skillsmatter.com/podcast/home/jinspired/js-3393"&gt;Using JavaEE and open-source hardware to automatize your house&lt;/a&gt;&lt;i&gt;&lt;br /&gt;Vinicius e Yara Senger&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style="color: black; font-size: small;"&gt;&lt;span style="font-size: large;"&gt;Diversão com JavaEE&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black; font-size: small;"&gt;&lt;br /&gt;Mas, o propósito é ter diversão e trabalho juntas! Então, resolvemos fazer uma entrevista com o Vinicius Senger em um dos lugares mais badalados de Londres, a Abbey Road.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="225" mozallowfullscreen="" src="http://player.vimeo.com/video/39862003?color=ff9933" webkitallowfullscreen="" width="400"&gt;&lt;/iframe&gt;
&lt;span style="color: black; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;br /&gt;Dicas para quem vai para Inglaterra: Londres e Liverpool&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Se você gosta de Beatles, vale muito a pena visitar Liverppool!&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;O trem é rápido, confortável e não muito caro!&amp;nbsp; A cidade é linda, organizada e um astral 100% Beatles.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Visite o museu dos Beatles que é maravilhoso!&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Cavern Club é uma balada incrível para quem gosta de Beatles! O bar fica lotado de&amp;nbsp; pessoas de todas as idades, de 18 a 70 anos! Sensacional!&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Ficamos uma noite só, mas num hotel espetacular:&amp;nbsp; &lt;a href="http://www.harddaysnighthotel.com/"&gt;Hard Days Night&lt;/a&gt; muito próximo ao Cavern Club e a loja que tem muitas coisas legais dos Beatles.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Vale a pena conhecer o restaurante do &lt;b&gt;Jamie Oliver&lt;/b&gt;, não é muito caro e super bonito!&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-size: large;"&gt;Agradecimentos&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black; font-size: small;"&gt;&lt;br /&gt;Nossos agradecimentos a London Java Community e &lt;/span&gt;&lt;span style="color: #999999; font-size: larger;"&gt;&lt;span style="color: black; font-size: small;"&gt;Skillmatters, especialmente Barry Cranford fundador da RecWorks!&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Helvetica'; font-size: small;"&gt;&lt;/span&gt;&lt;span style="color: #999999; font-size: larger;"&gt;&lt;span style="color: black; font-size: small;"&gt; Parabéns, foi maravilhoso ver o evento lotado e conversar com todos durante o Happy Hour.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #999999; font-size: larger;"&gt;&lt;span style="color: black; font-size: small;"&gt;Agradeço também a &lt;a href="http://twitter.com/fabianenardon"&gt;Fabiane Nardon&lt;/a&gt;, fundadora da &lt;a href="http://twitter.com/toolscloud"&gt;ToolsCloud&lt;/a&gt;!&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #999999; font-size: larger;"&gt;&lt;span style="color: black; font-size: small;"&gt;E não posso nunca me esquecer do &lt;a href="http://twitter.com/soujava"&gt;SouJava&lt;/a&gt;, que ajudou demais na viabilização desta palestras no London Java Community! &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Se você gostou deste post, vale a pena conferir as outras entrevistas do &lt;a href="http://blog.globalcode.com.br/search/label/Interview%20Tour"&gt;Interview Tour&lt;/a&gt; que fizemos com a Fabiane Nardon e também as &lt;a href="http://blog.globalcode.com.br/search/label/Entrevistas%20TDC2011"&gt;Entrevistas realizadas durante o TDC2011&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #999999; font-size: larger;"&gt;&lt;span style="color: black; font-size: small;"&gt;Yara Senger&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://twitter.com/yarasenger"&gt;&lt;span style="color: #999999; font-size: larger;"&gt;&lt;span style="color: black; font-size: small;"&gt;twitter.com/yarasenger&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://blog.globalcode.com.br/search/label/Yara"&gt;&lt;span style="color: #999999; font-size: larger;"&gt;&lt;span style="color: black; font-size: small;"&gt;Meus posts no Blog Globalcoders&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style="color: #999999; font-size: larger;"&gt;&lt;span style="color: black; font-size: small;"&gt;&lt;a href="http://blog.eletronlivre.com.br/search/label/Yara"&gt;Meus posts no Blog EletronLivre&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #999999; font-size: larger;"&gt;&lt;span style="color: black; font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-2937343646555406931?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/4W5nn_gVcng" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/4W5nn_gVcng/apresentando-projeto-jhome-na-london.html</link><author>noreply@blogger.com (Yara Senger)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/04/apresentando-projeto-jhome-na-london.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-8234396385189752629</guid><pubDate>Thu, 19 Apr 2012 17:19:00 +0000</pubDate><atom:updated>2012-04-24T10:37:55.779-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Yara</category><category domain="http://www.blogger.com/atom/ns#">Eventos</category><category domain="http://www.blogger.com/atom/ns#">Interview Tour</category><category domain="http://www.blogger.com/atom/ns#">JFokus</category><title>Globalcode e EletronLivre no JFokus na Suécia</title><description>Antes tarde do que nunca! Esta é uma motivação para este post atrasado, já que o JFokus foi realizado em fevereiro. Mas, foi tão bom, e aconteceram tantas coisas importantes, que resolvi compartilhar mesmo atrasadíssimo. O evento foi uma surpresa incrível:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Evento e hotel integrados, um conforto gigante considerando a baixa temperatura, que na verdade não estava tão baixa quanto nós imaginávamos.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Patrocinadores e palestrantes de altíssimo nível.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Organização muito compentente! Eu participei do credenciamento do primeiro dia!&lt;/li&gt;
&lt;li&gt;Live Podcasts ao vivo, com Roger Brinkley&lt;/li&gt;
&lt;li&gt;Atividades sociais muito legais&lt;/li&gt;
&lt;li&gt;Receptividade ótima para os Brasileiros e para o SouJava&lt;/li&gt;
&lt;li&gt;Nevou! &lt;/li&gt;
&lt;/ul&gt;
&lt;embed flashvars="host=picasaweb.google.com&amp;amp;captions=1&amp;amp;hl=pt_BR&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=https%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fglobalcodebrasil%2Falbumid%2F5733108471607320977%3Falt%3Drss%26kind%3Dphoto%26hl%3Dpt_BR" height="267" pluginspage="http://www.macromedia.com/go/getflashplayer" src="https://picasaweb.google.com/s/c/bin/slideshow.swf" type="application/x-shockwave-flash" width="400"&gt;&lt;/embed&gt;

&lt;br /&gt;
&lt;div style="color: blue;"&gt;
&lt;b&gt;Thank you Mattias Karlsson and everybody that participated, the conference was awsome! Congratulations!&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
Tivemos duas palestras de Brasileiros no evento:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Fabiane Nardon&lt;/b&gt; apresentou a palestra: &lt;i&gt;Zero Downtime Continuous Deployment of Java Web Applications&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Vinicius Senge&lt;/b&gt;r e &lt;b&gt;Yara Senger&lt;/b&gt; apresentaram: &lt;i&gt;jHome: Having Fun with Home Automation and Java&amp;nbsp; &lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="http://1.bp.blogspot.com/-BDsumwuLZIo/T5AxUPhzyyI/AAAAAAAAFzQ/cN_PABEVDGQ/s1600/jFokus-neve2.JPG"&gt;&lt;img border="0" height="180" src="http://1.bp.blogspot.com/-BDsumwuLZIo/T5AxUPhzyyI/AAAAAAAAFzQ/cN_PABEVDGQ/s320/jFokus-neve2.JPG" width="320" /&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://4.bp.blogspot.com/-BkLUDf3nO8k/T5AxTfm8K3I/AAAAAAAAFzI/lUd-ve2bEfo/s1600/jFokus-neve.JPG"&gt;&lt;img border="0" height="179" src="http://4.bp.blogspot.com/-BkLUDf3nO8k/T5AxTfm8K3I/AAAAAAAAFzI/lUd-ve2bEfo/s320/jFokus-neve.JPG" width="320" /&gt;&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Detalhe, nossa palestra foi no dia dos namorados! E como presente ganhamos uma chuva de neve a noite! Um dia inesquecível!&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
O feedback das palestras foi muito muito bom. Foram vários tweets e alguns e-mails bem legais. &lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;a class="account-group js-account-group js-action-profile js-user-profile-link" data-user-id="28546388" href="https://twitter.com/#%21/bevanjf/statuses/169737376992739329"&gt;Julian Bevan    ‏    @bevanjf  &lt;/a&gt;
      
        
          
    
    &lt;br /&gt;
&lt;i&gt;I want to work in Brazil! Definitely the most innovative and LOUDEST ideas!!! &lt;s&gt;#&lt;/s&gt;&lt;b&gt;Jfokus&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a class="account-group js-account-group js-action-profile js-user-profile-link" data-user-id="13795732" href="http://bit.ly/HS5ZQW"&gt;Sharat    ‏    @Sharat_Chander  &lt;/a&gt;
        
          
    
&lt;br /&gt;
&lt;i&gt;To @&lt;b&gt;yarasenger&lt;/b&gt; &amp;amp; @&lt;b&gt;vsenger&lt;/b&gt;  - Hoping you accept my &lt;s&gt;#&lt;/s&gt;&lt;b&gt;Twitter&lt;/b&gt; invitation to participate in &lt;s&gt;#&lt;/s&gt;&lt;b&gt;JavaOne&lt;/b&gt; 2012. YOU AMAZED EVERYONE AT &lt;s&gt;#&lt;/s&gt;&lt;b&gt;JFokus&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/i&gt;&lt;/blockquote&gt;
Mas, é claro que nós aproveitamos para fazer algumas entrevistas durante o evento, pois tivemos a oportunidade de conhecer várias pessoas bacanas, colocamos este "pessoal" da Globalcode, Open4Education, SouJava e ToolsCloud pra trabalhar, e vale a pena conferir o resultado.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Entrevista com Cris Richardson, fundador da Cloud Foundry&lt;/span&gt;&lt;br /&gt;
&lt;i&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;hoje trabalha na VM Ware (@crichardson)&lt;/span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="225" mozallowfullscreen="" src="http://player.vimeo.com/video/39989903?color=ff9933" webkitallowfullscreen="" width="400"&gt;&lt;/iframe&gt;

&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Entrevista com Joonas Lehtienen, sobre Vaadin&lt;br /&gt;&lt;i&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;CEO da Vaadin @joonaslehtienen&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="225" mozallowfullscreen="" src="http://player.vimeo.com/video/40024589?color=ff9933" webkitallowfullscreen="" width="400"&gt;&lt;/iframe&gt;
&lt;br /&gt;
Gostaria de agradecer as pessoas entrevistas, o convite para palestrar no JFokus, e o mega suporte da Oracle para que tudo isto pudesse acontecer.&amp;nbsp;
&lt;br /&gt;
&lt;br /&gt;
Confira também as &lt;a href="http://blog.globalcode.com.br/search/label/Entrevistas%20TDC2011"&gt;entrevistas realizadas no The Developer's Conference 2011&lt;/a&gt;. 

&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
É isso ai pessoal, estou terminando de editar o material e logo mais devemos publicar outras entrevistas na nossa série &lt;a href="http://blog.globalcode.com.br/search/label/Interview%20Tour"&gt;Interview Tours Europe 2012&lt;/a&gt; &lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;
Um abraço, &lt;br /&gt;
Yara Senger&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-8234396385189752629?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/MxD5pzPd0-M" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/MxD5pzPd0-M/globalcode-e-eletronlivre-no-jfokus-na.html</link><author>noreply@blogger.com (Yara Senger)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-BDsumwuLZIo/T5AxUPhzyyI/AAAAAAAAFzQ/cN_PABEVDGQ/s72-c/jFokus-neve2.JPG" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/04/globalcode-e-eletronlivre-no-jfokus-na.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-7525384244852600526</guid><pubDate>Mon, 16 Apr 2012 18:08:00 +0000</pubDate><atom:updated>2012-04-17T18:49:14.874-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Academia do Arquiteto</category><category domain="http://www.blogger.com/atom/ns#">Kleber</category><category domain="http://www.blogger.com/atom/ns#">arquitetura</category><title>Finalizada a primeira turma da Academia do Arquiteto</title><description>&lt;a href="http://2.bp.blogspot.com/-OrApg7qzVIU/T4xrsWJutrI/AAAAAAAAABs/AWUgMj3-Z6I/s1600/AcademiaArquitetoIMG_3011.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/-OrApg7qzVIU/T4xrsWJutrI/AAAAAAAAABs/AWUgMj3-Z6I/s320/AcademiaArquitetoIMG_3011.jpg" alt="" id="BLOGGER_PHOTO_ID_5732074835340605106" border="0"&gt;&lt;/a&gt;&lt;br /&gt;No dia 31 de Março, mesmo dia do &lt;a href="http://blog.globalcode.com.br/2012/04/profissao-java-2012.html"&gt;Profissão Java 2012&lt;/a&gt;, foi finalizada a primeira turma da nova Academia do Arquiteto. Este é um marco muito importante para nós da Globalcode, pois é um curso que estávamos ensaiando resgatar há vários anos.&lt;br /&gt;&lt;br /&gt;A versão original da Academia do Arquiteto esteve ativa de 2003 a 2006 e formou 16 turmas, das quais tive a oportunidade de ministrar 8! A carga horária era de 124 horas englobando diversos módulos de arquiteturas J2EE (na época era a versão 1.3), tecnologias como RMI, Corba, EJBs e teste de carga com JMeter. Será que tem algum leitor do blog que foi aluno naquela época? Se tiver sinta-se a vontade para se manifestar nos comentários!&lt;br /&gt;&lt;br /&gt;Em 2006, decidimos quebrar o conteúdo em duas carreiras: Academia Enterprise e a nova Academia do Arquiteto. A &lt;a href="http://www.globalcode.com.br/treinamentos/carreiras/academia-enterprise"&gt;Academia Enterprise&lt;/a&gt; pegou o contéudo relativo a EJBs e tecnologias relacionadas e continua ativa até hoje, com as devidas atualizações! A Academia do Arquiteto...&lt;br /&gt;&lt;br /&gt;Bem, após 5 anos voltou com toda força! Aproveitamos para consolidar diversas práticas, APIs e tecnologias com as quais trabalhamos durante este tempo em alguns projetos de consultoria e montamos o novo treinamento! Acho que montamos um &lt;a href="http://www.globalcode.com.br/treinamentos/carreiras/academia-do-arquiteto"&gt;conteúdo&lt;/a&gt; bem interessante abordando ALM, testes, padrões de projeto, DSLs e diversos exemplos de arquiteturas.&lt;br /&gt;&lt;br /&gt;Parabéns aos alunos da primeira turma! Espero que em breve possamos trocar idéias e informações em um fórum que vamos criar para os alunos e ex-alunos da Academia Arquiteto.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[]s&lt;br /&gt;Kleber&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-7525384244852600526?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/o__SwNB2owA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/o__SwNB2owA/finalizada-primeira-turma-da-academia.html</link><author>noreply@blogger.com (Kleber Xavier)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-OrApg7qzVIU/T4xrsWJutrI/AAAAAAAAABs/AWUgMj3-Z6I/s72-c/AcademiaArquitetoIMG_3011.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/04/finalizada-primeira-turma-da-academia.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-7862132685325961426</guid><pubDate>Sun, 15 Apr 2012 20:22:00 +0000</pubDate><atom:updated>2012-04-15T17:22:24.868-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Yara</category><category domain="http://www.blogger.com/atom/ns#">Profissao Java</category><category domain="http://www.blogger.com/atom/ns#">Eventos</category><title>Profissão Java 2012</title><description>O &lt;a href="http://www.profissaojava.com.br/edicoes/2012/resumo"&gt;Profissão Java&lt;/a&gt; foi emocionante e muito energizante. Terminamos o evento com uma alegria enorme de termos vencido mais este desafio.&lt;br /&gt;
&lt;br /&gt;
Recebemos várias caravanas de São José do Rio Preto, Campinas, Bauru, Caraguatatuba e tivemos pessoas de 22 estados diferentes participando do webcast!&lt;br /&gt;
&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/fylshZKOwQc4hZSx0iY7qtMTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="267" src="https://lh4.googleusercontent.com/-HQ0n4zoWlis/T3zAi3m0lCI/AAAAAAAA8F0/C0OA8iGhKzs/s400/IMG_7222.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Meus sinceros agradecimentos a toda equipe da &lt;b&gt;Universidade Anhembi Morumbi&lt;/b&gt;, não apenas ao amigo Luciano Freire que fez a abertura do evento, mas a todos que participaram do evento e da organização. 

&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/pEcFhQOX6yWWg2frOElMIdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="267" src="https://lh5.googleusercontent.com/-qMmuYVGmw_w/T3y8ICyY1aI/AAAAAAAA8CI/jfE_s-qsywI/s400/IMG_7144.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Começamos o evento com a anúncio da &lt;a href="http://www.globalcode.com.br/boletins/LancamentoParceriaGlobalcodeOracle"&gt;parceria com a Oracle&lt;/a&gt;! Com certeza um dia pra entrar pra história da Globalcode. Débora Palermo, Vinicius Senger e eu juntos no palco anunciando a &lt;a href="http://globalcode.com.br/treinamentos/carreiras/academia-java-oracle-edition"&gt;Academia Java Oracle Edition&lt;/a&gt;.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/nLS1OAO4fb2-7ZzQKBPHYdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="267" src="https://lh5.googleusercontent.com/-yeWdLU59YqU/T3y-aaGrL3I/AAAAAAAA8D8/YOxjB-FDKac/s400/IMG_7186.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/k-ySQbgvA1J-9zXlDn4N3dMTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="267" src="https://lh6.googleusercontent.com/-uh7-iZt0I-0/T3y517G-xFI/AAAAAAAA7_4/o_OU9Da_gD0/s400/IMG_7097.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;A primeira palestra do dia foi do &lt;a href="http://twitter.com/brjavaman"&gt;Bruno Souza (JavaMan)&lt;/a&gt; &lt;b&gt;"&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;Catapulte-se para a nuvem"&lt;/b&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;, que mais uma vez arrasou quebrando paradigmas com sua palestra-teatro sobre Cloud Computing, montando um ambiente na nuvem ao vivo, em uma linguagem perfeita para o público do evento.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/40hweGsbZysSYdJzMNdFB9MTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="267" src="https://lh6.googleusercontent.com/-bmILnnC9b-8/T3zDUz_CDGI/AAAAAAAA8Hw/ALNJcG-gjWA/s400/IMG_7271.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;O &lt;a href="http://twitter.com/edermag"&gt;Eder Magalhães&lt;/a&gt; e o &lt;a href="http://twitter.com/rafanunes"&gt;Rafael Nunes&lt;/a&gt;, amigos, ex-alunos, instrutores da Globalcode São Paulo e fundadores &lt;a href="http://www.yaw.com.br/"&gt;YaW&lt;/a&gt;, unidade Globalcode São Bernardo do Campo tiveram uma participação espetacular no evento.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Arrasaram com as palestras:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Java 7 e 8&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Java não é só Java, a JVM como plataforma para outras linguagens&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Workshop de Cloud Computing com Amazon AWS&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/f8xjx8bE1igOvq2am_aM49MTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="267" src="https://lh3.googleusercontent.com/-XrCC6gJTsIk/T3yzcBqKfkI/AAAAAAAA75M/9ZFEtOokv6A/s400/IMG_6023.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/1KBRwpgtc-MTM9iTCX9iNtMTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="267" src="https://lh3.googleusercontent.com/-p5G2uUxaRFc/T3zIoaLZU-I/AAAAAAAA8ME/9bAdlehUAME/s400/IMG_7405.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://twitter.com/mcastroinfo"&gt;Marcelo Castro&lt;/a&gt;, colaborador do &lt;a href="http://www.soujava.com.br/"&gt;SouJava&lt;/a&gt;, instrutor e responsável pela &lt;a href="http://globalcode.com.br/unidades/cursosjavaemalphaville"&gt;Unidade Globalcode Alphaville&lt;/a&gt; apresentou a palestra Certificações Java 7 e respondeu muitas perguntas&amp;nbsp; da platéia! Foi a primeira participação dele no Profissão Java, um público grande com cerca de 400 pessoas no local e mais de 200 online! Parabéns!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/2F-rgcTE5JCpfGbU0VlbTtMTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="267" src="https://lh4.googleusercontent.com/-qAYJh2g2WHA/T3zJjoW5q5I/AAAAAAAA8NA/uNHMObbdVtc/s400/IMG_7433.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Tivemos mais um ex-aluno palestrando no evento, mas agora na posição de patrocinador! O amigo &lt;a href="http://twitter.com/jeffprestes"&gt;Jefferson Prestes&lt;/a&gt;,&amp;nbsp; agora trabalhando na Spread, apresentou a palestra&lt;b&gt;"Frente a frente: evite barreiras no processo de seleção"&lt;/b&gt; com dicas reais para os participantes.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/bmJTRqx1n0nyocWmB7sbqtMTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="267" src="https://lh5.googleusercontent.com/-r9Zod-LQ8fk/T3zGZ7QRXrI/AAAAAAAA8KA/AtLr-yEWpi4/s400/IMG_7319.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;a href="https://picasaweb.google.com/lh/photo/9sZ9vGKRYFgnCXf1euwRcNMTjNZETYmyPJy0liipFm0?feat=embedwebsite" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img height="200" src="https://lh4.googleusercontent.com/-PyrMeA0ruuc/T3yy-mA5PAI/AAAAAAAA74s/I4wHKzmPs-U/s200/IMG_6018.jpg" width="133" /&gt;&lt;/a&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;A &lt;b&gt;Spread&lt;/b&gt;, patrocinadora Gold do evento participou ativamente do evento, quatro profissionais de RH da empresa vieram conhecer os participantes e sentir o clima do evento e da comunidae Java. Parece que o públicou gostou, porque deixaram muitos currículos no balcãozinho montado no evento. São mais de 14 &lt;a href="http://www.profissaojava.com.br/edicoes/2012/vagas"&gt;vagas&lt;/a&gt; abertas, confira!&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/M8ZFTTBQf5CdvwkNUb2hVNMTjNZETYmyPJy0liipFm0?feat=embedwebsite" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;a href="https://picasaweb.google.com/lh/photo/4hTtlGl3fA6UJ2qly1MzI9MTjNZETYmyPJy0liipFm0?feat=embedwebsite" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img height="133" src="https://lh4.googleusercontent.com/-xyxisio23k0/T3zHjAdjHZI/AAAAAAAA8LE/_TTNg32vkPE/s200/IMG_7352.jpg" width="200" /&gt;&lt;/a&gt;&lt;img height="133" src="https://lh4.googleusercontent.com/-DtdNzYPXhbA/T3zFShaddyI/AAAAAAAA8JE/dZG11_nuHBM/s200/IMG_7300.jpg" width="200" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://twitter.com/josepapo"&gt;José Papo&lt;/a&gt;, evangelista da Amazon, já 
foi palestrante de vários &lt;a href="http://www.thedevelopersconference.com.br/"&gt;TDCs&lt;/a&gt; e &lt;a href="http://www.justjava.com.br/"&gt;JustJava&lt;/a&gt;, apresentou a palestra "&lt;/span&gt;&lt;/span&gt;
&lt;b&gt;    Seu futuro está na Nuvem! Oportunidades para você como empreendedor e como funcionário no mercado de Cloud Computing&lt;/b&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;".&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/fqE47eORfzJJl-PgiqZSa9MTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="267" src="https://lh6.googleusercontent.com/-7ua1r2c4fbM/T3zJ8D4hoPI/AAAAAAAA8Ng/p6lDcpDIvtQ/s400/IMG_7449.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;Workshop Cloud Computing com Amazon AWS&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://picasaweb.google.com/lh/photo/rOBOlGsnAjy-2MDTY9qOU9MTjNZETYmyPJy0liipFm0?feat=embedwebsite" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img height="192" src="https://lh6.googleusercontent.com/-jIBlCdOmRkc/T3y2-kiXeUI/AAAAAAAA78M/5ln5Y8sq0bI/s288/IMG_6079.jpg" width="288" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Tivemos também o Workshop de Cloud Computing com Amazon
 AWS realizado pelo Rafael Nunes, com participação especial do José Papo, que distribuiu vouchers de 15,00 dolares para os participantes 
utilizarem os serviços da Amazon durante o curso.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Vale a pena conferir as &lt;a href="http://www.profissaojava.com.br/edicoes/2012/vagas"&gt;vagas&lt;/a&gt; abertas na Amazon Brasil.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; text-align: right;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;a href="https://aws.amazon.com/solution-providers/si/globalcode"&gt;&lt;span style="font-size: small;"&gt;A Globalcode e a Amazon agora são perfeitas, veja no site da Amazon.&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;b&gt;Participação especial Luca Bastos, da Concrete:&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/WRMa3brgDnqRzKt-VwrWpdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="267" src="https://lh6.googleusercontent.com/-8tWZawLLPSQ/T3zL4qY76hI/AAAAAAAA8QI/5hB-wXiSz6c/s400/IMG_7497.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Tivemos um momento trabalho no exterior, com a participação do Renato Bellia, instrutor Globalcode por vários anos, que está atualmente no Canadá trabalhando na Sales Force e do Maiko Rocha, que está no Vale do Silicio, nos Estados Unidos trabalhando para Oracle. Foi show, obrigada Maiko e Renato! Veja também o &lt;a href="http://blog.globalcode.com.br/2012/04/sobre-imigracao-para-o-canada.html"&gt;post do Renato sobre Imigração para o Canadá.&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/-BmOtOyIpIrtNcPtGgFvmtMTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="267" src="https://lh5.googleusercontent.com/-2mI4Lz1WYQY/T3y2WjcKujI/AAAAAAAA77k/v8HDUDxl4_I/s400/IMG_6071.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Bom, se é pra falar de história... tivemos a participação do Felipe Oliveira, especialista em SOA e fundador da &lt;a href="http://www.soaexpert.com.br/"&gt;SoaExpert&lt;/a&gt; falando sobre o mercado de trabalho SOA. Ele foi aluno do Vinicius em 98, quando o Vinicius era instrutor Sun, e depois em 2002, nos primórdios da Globalcode. &lt;br /&gt;&lt;br /&gt;

&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/UXYHPxce1bdC6U-IcgbV4tMTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="267" src="https://lh6.googleusercontent.com/-Uv-CmrFj01U/T3zMceoAIfI/AAAAAAAA8RE/ooCPebAKivw/s400/IMG_7554.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Tivemos também a participação do Neto Marin, que veio falar do mercado de mobilidade no Brasil! Ele anúnciou durante o evento a primeira turma do curso AND1 Programando para Android Online!&lt;br /&gt;
&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/daHJcGIhxWFLWT8zDPtqXdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="267" src="https://lh3.googleusercontent.com/-VROaGAUwiJI/T3zLR747QrI/AAAAAAAA8PM/7lVnnUbZaNE/s400/IMG_7474.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;O Vinicius encerrou o evento naquele super altro astral das palestras dele, mostrando o jHome e até deu uma palinha de violão e violino, controlando as luzes de acordo com as notas tocadas.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/n9XeakKKOf7GCu-CXqbYadMTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="400" src="https://lh3.googleusercontent.com/-eMgrfKJJHys/T3ymdhYAB5I/AAAAAAAA7wY/8aQhxuA0_vM/s400/IMG_5850.jpg" width="267" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/GQeJYfEbN8gzCrxYRAPvi9MTjNZETYmyPJy0liipFm0?feat=embedwebsite" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img height="192" src="https://lh4.googleusercontent.com/-ivdqjTOC8sk/T3zBQrLVDiI/AAAAAAAA8Gc/N4r35RaPovQ/s288/IMG_7254.jpg" width="288" /&gt;&lt;/a&gt;&lt;a href="https://picasaweb.google.com/lh/photo/WTDtETA2zAb0b7AXwP2v3tMTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="192" src="https://lh4.googleusercontent.com/-KqgjkAlwwhQ/T3zNkDG_b7I/AAAAAAAA8So/NbZANgLoJJ8/s288/IMG_7605.jpg" width="288" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Eu apresentei duas palestras rápidas de 15 minutos: 
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Usando seu currículo e as redes sociais a seu favor&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;Como se livrar do ciclo vicioso dos sem experiência &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/FrpRJQcMntlXPkxBVhL9RdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="192" src="https://lh4.googleusercontent.com/-LZrjFs9Ct54/T3zNpi9h85I/AAAAAAAA8Sw/JydgShlAYYg/s288/IMG_7608.jpg" width="288" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Terminamos o evento com vários sorteios, inclusive de livros da Editora Novatec, entradas para o JustJava e muito mais.&lt;br /&gt;
&lt;table style="width: auto;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/KbaJsm-pyjRVlmtvVk2R-dMTjNZETYmyPJy0liipFm0?feat=embedwebsite"&gt;&lt;img height="192" src="https://lh3.googleusercontent.com/-WoDnpj_0WdA/T3zPf7wbL4I/AAAAAAAA8VA/mZvUqGgqqIs/s288/IMG_7659.jpg" width="288" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;"&gt;De &lt;a href="https://picasaweb.google.com/globalcodebrasil/ProfissaoJava2012FotosDoEvento?authuser=0&amp;amp;feat=embedwebsite"&gt;Profissão Java 2012 | Fotos do Evento&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Realmente o evento foi sensacional, e ver a equipe Globalcode funcionando tão perfeitamente integrada não apenas entre nós, mas também com o ambiente ao nosso redor, parceiros, alunos e patrocinadores é muito bom.&lt;br /&gt;
&lt;br /&gt;
Recebemos pouco mais de 250 avaliações preenchidas, todas positivas, somente 3 comentários de possíveis melhorias. Surpreendentemente 147 delas tinham um &lt;a href="http://www.profissaojava.com.br/edicoes/2012/depoimentos"&gt;depoimento positivo&lt;/a&gt; para publicação no site, um indíce absolutamente maravilhoso de satisfação. &lt;br /&gt;
&lt;br /&gt;
A transmissão ao vivo foi um sucesso, e temos que agradecer e parabenizar a WTV pelo comprometimento!&lt;br /&gt;
&lt;br /&gt;
Você que se inscreveu no evento já pode assistir ao streaming integral que está disponível, mas os vídeos estão sendo editados para facilitar a visualização das palestras.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.profissaojava.com.br/edicoes/2012/videos"&gt;Mais informações sobre os vídeos.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Meus sinceros agradecimentos a toda equipe da Universidade Anhembi Morumbi, não apenas ao amigo Luciano Freire que fez a abertura do evento, mas a todos que participaram do evento e da organização. &lt;br /&gt;
&lt;br /&gt;
E muito obrigada a todos que participaram, ajudaram, divulgaram deste dia super especial junto com agente. &lt;br /&gt;
&lt;br /&gt;
É isso ai! Próxima parada JavaOne India!&lt;br /&gt;
[]s&lt;br /&gt;
Yara Senger&lt;br /&gt;
&lt;a href="http://twitter.com/yarasenger"&gt;http://twitter.com/yarasenger&lt;/a&gt; &lt;br /&gt;
&lt;a href="http://blog.globalcode.com.br/search/label/Yara"&gt;http://blog.globalcode.com.br/search/label/Yara&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
PS: Tentei fazer um post simples, mas acabou ficando longo. Mesmo assim tenho certeza que esqueci de mencionar coisas super importantes!&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-7862132685325961426?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/RB8LTOUy1yQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/RB8LTOUy1yQ/profissao-java-2012.html</link><author>noreply@blogger.com (Yara Senger)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-HQ0n4zoWlis/T3zAi3m0lCI/AAAAAAAA8F0/C0OA8iGhKzs/s72-c/IMG_7222.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/04/profissao-java-2012.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-4764655941724405264</guid><pubDate>Sat, 14 Apr 2012 14:45:00 +0000</pubDate><atom:updated>2012-04-15T10:33:14.179-03:00</atom:updated><title>Sobre Imigração para o Canadá</title><description>Como eu havia prometido durante a apresentação "Java tipo exportação: Mercado de Trabalho no Canadá" que aconteceu dia 31 de Março no evento Profissão Java, vou deixar alguns links sobre o processo de imigração.&lt;br /&gt;
&lt;br /&gt;
A fonte de informações oficial é o Departamento de Cidadania e Imigração do governo Canadense:&lt;br /&gt;
&lt;a href="http://www.cic.gc.ca/app/ctcvac/english/index"&gt;http://www.cic.gc.ca/app/ctcvac/english/index&lt;/a&gt;&lt;br /&gt;
Neste site é possível encontrar informações sobre todos os tipos de visto para visitar/trabalhar/morar no Canadá.&lt;br /&gt;
&lt;br /&gt;
Uma das províncias mais receptivas a profissionais qualificados é Québec, que possui um processo de imigração particular:&lt;br /&gt;
&lt;a href="http://www.immigration-quebec.gouv.qc.ca/en/index.html"&gt;http://www.immigration-quebec.gouv.qc.ca/en/index.html&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.form.services.micc.gouv.qc.ca/epi/index.jsp?languageCode=en"&gt;http://www.form.services.micc.gouv.qc.ca/epi/index.jsp?languageCode=en&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
É importante ter em mente que o governo canadense ao longo de vários anos promove e enfatiza os aspectos positivos para atrair mão de obra qualificada. Por conta disso existem muitas propagandas, promessas e expectativas a respeito da vida no Canadá. Nem sempre quem imigra está preparado para viver uma fase de adaptação que pode demorar uns bons anos. E muitos, em função das perspectivas profissionais e das dificuldades de adaptação acabam voltando para seu país de origem.&lt;br /&gt;
&lt;br /&gt;
Para exemplificar o contraste entre o que é prometido e a realidade, recomendo assistir alguns vídeos.&lt;br /&gt;
&lt;br /&gt;
Alguns capítulos de uma série de reportagens da rede Record que mostra os aspectos positivos da vida no Canadá:&lt;br /&gt;
&lt;a href="http://www.youtube.com/watch?v=YHQ1qzOJv6I"&gt;http://www.youtube.com/watch?v=YHQ1qzOJv6I&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.youtube.com/watch?v=tToT2_P_lCo"&gt;http://www.youtube.com/watch?v=tToT2_P_lCo&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.youtube.com/watch?v=xzUB8m4LZE0"&gt;http://www.youtube.com/watch?v=xzUB8m4LZE0&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
E aqui uma apresentação muito esclarecedora de Lionel Laroche, um especialista em re-colocação profissional para imigrantes, &amp;nbsp;sobre diferenças culturais e a realidade do mercado de trabalho no Canadá:&lt;br /&gt;
&lt;a href="http://vimeo.com/19190180"&gt;http://vimeo.com/19190180&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://vimeo.com/19191341"&gt;http://vimeo.com/19191341&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://vimeo.com/19192430"&gt;http://vimeo.com/19192430&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://vimeo.com/19193106"&gt;http://vimeo.com/19193106&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Para se preparar para as dificuldades de adaptação também vale a pena pesquisar e seguir blogs de brasileiros que imigraram para o Canadá.&lt;br /&gt;
&lt;br /&gt;
Como eu disse durante minha apresentação no Profissão Java, quem trabalha com TI e quer imigrar para cá vai ter as mesmas dificuldades de adaptação cultural, porém, perspectivas profissionais bem melhores do que a maioria dos imigrantes.&lt;br /&gt;
&lt;br /&gt;
Para encerrar, um vídeo sobre as experiências de um Argentino no Canadá:&lt;br /&gt;
&lt;a href="http://vimeo.com/10325544"&gt;http://vimeo.com/10325544&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
@renatobellia&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-4764655941724405264?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/MAipWLjJqJQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/MAipWLjJqJQ/sobre-imigracao-para-o-canada.html</link><author>noreply@blogger.com (rbellia)</author><thr:total>2</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/04/sobre-imigracao-para-o-canada.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-2836702196188982132</guid><pubDate>Thu, 05 Apr 2012 22:15:00 +0000</pubDate><atom:updated>2012-04-19T14:31:26.187-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Yara</category><category domain="http://www.blogger.com/atom/ns#">Interview Tour</category><title>Entrevista com Simon Phipps: OpenSource e colaboração</title><description>Finalmente consegui um tempinho pra tirar alguns bons projetos da gaveta. Espero aproveitar o feriado e avançar ainda mais!&lt;br /&gt;
&lt;br /&gt;
Durante nossa viagem pra Suécia e Londres para participar do JFokus e apresentar a palestra sobre o projeto jHome no London Java Community realizamos uma série de entrevistas!&lt;br /&gt;
&lt;br /&gt;
Uma delas com o Simon Phipps num lugar maravilhoso, Stonehenge na Inglaterra, depois de conhecermos Winchester e a Tavola Redonda.&lt;br /&gt;
&lt;br /&gt;
Mas, chega de escrever, let's show de video!&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="225" mozallowfullscreen="" src="http://player.vimeo.com/video/39853343?color=ff9933" webkitallowfullscreen="" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;a href="http://vimeo.com/39853343"&gt;InterviewTour - Simon Phipps&lt;/a&gt; from &lt;a href="http://vimeo.com/globalcode"&gt;Globalcode&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Fabiane Nardon entrevista Simon Phipps, na Inglaterra e conversa sobre OpenSource, colaboração e também sobre o projeto LibreOffice.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Obrigada Fabiane Nardon e Vinicius Senger, foi bom de mais trabalhar, passear e a fazer estas entrevistas.&lt;br /&gt;
&lt;br /&gt;
E você que gosta de entrevistas veja também a série de entrevistas realizadas durante o &lt;a href="http://blog.globalcode.com.br/search/label/Entrevistas%20TDC2011"&gt;TDC2011 São Paulo&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
É isso ai! Logo logo tem mais entrevistas do nosso super &lt;a href="http://blog.globalcode.com.br/search/label/Interview%20Tour"&gt;Interview Tour&lt;/a&gt;! &lt;br /&gt;
Muito Java e chocolate pra todos vocês!&amp;nbsp; Feliz Páscoa! &lt;br /&gt;
&lt;br /&gt;
Yara Senger&lt;br /&gt;
&lt;a href="http://twitter.com/yarasenger%20"&gt;http://twitter.com/yarasenger &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-2836702196188982132?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/5Hpo0rbb-gw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/5Hpo0rbb-gw/finalmente-consegui-um-tempinho-pra.html</link><author>noreply@blogger.com (Yara Senger)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/04/finalmente-consegui-um-tempinho-pra.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-1817083452878141685</guid><pubDate>Tue, 27 Mar 2012 23:44:00 +0000</pubDate><atom:updated>2012-03-27T22:50:10.143-03:00</atom:updated><title>Coleções paralelas em Scala</title><description>Amanhã, quarta-feira, 28 de Março, teremos mais um &lt;a href="http://globalcode.com.br/gratuitos/minicursos/minicurso-introducao-a-scala"&gt;mini-curso gratuito de Scala&lt;/a&gt; na globalcode em SP (e webcast). Para dar um gostinho, vou traduzir aqui mais um dos posts de scala que fiz no meu &lt;a href="http://jcranky.com/"&gt;blog pessoal, jcranky.com&lt;/a&gt;, em inglês.&lt;br /&gt;&lt;br /&gt;Há mais ou menos um mês atrás, &lt;a href="http://blog.globalcode.com.br/2012/02/instrucoes-import-em-scala.html"&gt;eu escrevi aqui sobre instruções import em scala&lt;/a&gt;. Dessa vez, vou falar um pouco sobre as coleções paralelas, um recurso muito interessante que scala trouxe a partir da versão 2.9, que permite que transformemos coleções normais em coleções que serão executadas em paralelo. Divirtam-se!&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;As Coleções Paralelas de Scala são  úteis até nos casos mais simples&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Um dos principais recursos que a versão 2.9 de Scala traz são as Coleções Paralelas. Se fosse pensar nelas rapidamente, vocêe pode considerar usar tal recurso apenas em cenários complexos e com processamento intenso.&lt;/p&gt; &lt;p&gt;Embora esses sejam certamente os casos principais onde você poderia considerar o uso de coleções paralelas, existem formas mais simples de alavancar este recurso. O código necessário para usá-lo é tão simples que é fácil pensar em razões para fazer isso em qualquer lugar:&lt;/p&gt; &lt;div class="syntaxhighlighter  " id="highlighter_541974"&gt;&lt;div class="lines"&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="plain"&gt;myCol.par foreach(println)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Como isso poderia ser mais simples??&lt;/p&gt; &lt;p&gt;Então onde eu usei isso de verdade, você pode perguntar. A empresa para a qual trabalho armazena arquivos na Amazon S3. Antes disso, os arquivos eram armazenados no disco local. Então, quando nós migramos para o S3, eu escrevi um script em Scala para fazer o upload de todos os arquivos… milhares deles. Minha primeira solução se parecia com isso:&lt;/p&gt; &lt;div class="syntaxhighlighter  " id="highlighter_704723"&gt;&lt;div class="lines"&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="plain"&gt;listOfFiles foreach(file &lt;/code&gt;&lt;code class="keyword"&gt;=&lt;/code&gt;&lt;code class="plain"&gt;&amp;gt; sendToS&lt;/code&gt;&lt;code class="value"&gt;3&lt;/code&gt;&lt;code class="plain"&gt;(file))&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;E então de repente eu percebi que é ridiculamente simples paralelizar o upload dos arquivos:&lt;/p&gt; &lt;div class="syntaxhighlighter  " id="highlighter_344852"&gt;&lt;div class="lines"&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="plain"&gt;listOfFiles.par foreach(file &lt;/code&gt;&lt;code class="keyword"&gt;=&lt;/code&gt;&lt;code class="plain"&gt;&amp;gt; sendToS&lt;/code&gt;&lt;code class="value"&gt;3&lt;/code&gt;&lt;code class="plain"&gt;(file))&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Resultado: metade do tempo para fazer o upload dos arquivos, tendo feito praticamente nada. Muito legal, não?&lt;/p&gt;---&lt;br /&gt;&lt;br /&gt;Para quem quiser, &lt;a href="http://jcranky.com/2011/08/26/scalas-parallel-collections-are-useful-even-in-the-most-simple-cases/"&gt;a versão original em inglês pode ser encontrada aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;[]s,&lt;br /&gt;Paulo "JCranky" Siqueira&lt;br /&gt;http://jcranky.com&lt;br /&gt;http://github.com/jcranky&lt;br /&gt;http://www.twitter.com/jcranky&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-1817083452878141685?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/GnWAb_AuhUI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/GnWAb_AuhUI/colecoes-paralelas-em-scala.html</link><author>noreply@blogger.com (Paulo "jcranky" Siqueira)</author><thr:total>2</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/03/colecoes-paralelas-em-scala.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-1423994198187237099</guid><pubDate>Mon, 26 Mar 2012 17:13:00 +0000</pubDate><atom:updated>2012-03-26T18:54:40.615-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java EE 6</category><category domain="http://www.blogger.com/atom/ns#">Academia do Arquiteto</category><category domain="http://www.blogger.com/atom/ns#">java ee</category><category domain="http://www.blogger.com/atom/ns#">arquitetura</category><category domain="http://www.blogger.com/atom/ns#">Academia Java</category><title>Arquitetura Java #1</title><description>Este é o primeiro capítulo de uma série que estaremos lançando no blog da Globalcode para discutirmos fundamentos e arquiteturas Java.Vamos iniciar tratando de alguns fundamentos de arquitetura como: o que é arquitetura, o que faz um arquiteto, contextos e cenários.&lt;br /&gt;
&lt;br /&gt;
Este texto é parte extraída do nosso material de arquitetura usado na formação Academia do Arquiteto Globalcode e estamos abrindo ele gratuitamente para gerar uma literatura aberta e de fácil entendimento sobre este grande tema: arquitetura de software, esperamos que gostem!&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;1. O que é arquitetura de software&lt;/h2&gt;Arquitetura é um conjunto de fundamentos, decisões e componentes que representam a base de um software. A arquitetura tem maior foco em requisitos não-funcionais, mas também deve sempre considerar o contexto que é representado pela soma do cenário, ambiente, recursos e objetivos de negócio.&lt;br /&gt;
&lt;br /&gt;
Vejamos a definição formal, segundo IEEE:&lt;br /&gt;
&lt;br /&gt;
"Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. [IEEE 1471]"&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;1.1 O arquiteto de software&lt;/h2&gt;Os papéis de um arquiteto de software e o que precisamos fazer para nos tornarmos arquitetos de software é algo muito discutido. Acreditamos que um arquiteto de software é um desenvolvedor com muita experiência e que trabalhou em diferentes projetos, cenários, fases e com diferentes recursos. Esta vivência o torna mais qualificado para tomar decisões importantes ao planejar uma arquitetura. &lt;br /&gt;
&lt;br /&gt;
Arquitetos de software devem SIM saber programar na plataforma que trabalha, mas não necessariamente vai escrever use-cases no dia-a-dia e fazer commit de código. A habilidade de saber desenvolver e estar atualizado tecnicamente na plataforma adotada é fundamental para modelagem, desenvolvimento de provas de conceito e principalmente viabilizar diálogo com equipe.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;1.2 Preciso de uma arquitetura?&lt;/h2&gt;Existem plataformas de desenvolvimento tão alto nível que podem dispensar o planejamento de uma arquitetura, pois em geral essas plataformas já possuem um estilo arquitetural embarcado e a ferramenta conduz o desenvolvedor a segui-lo. Plataformas de desenvolvimento como Java / Java EE, .NET, PHP, Ruby, Python, etc. possuem um eco-sistema muito grande em termos de possibilidades de componentes, bibliotecas, framework e ferramentas e só as decisões sobre o que usar já será um dos trabalhos de arquitetura. Outro fator que vai evidenciar a necessidade e o quanto deveremos nos esforçar para planejar uma arquitetura é o porte do projeto, seus objetivos de negócio e a vida útil do software.&lt;br /&gt;
&lt;br /&gt;
Em geral softwares corporativos são complexos e tendem a durar anos nas empresas. Se este é seu caso e você utiliza uma das plataformas citadas, sim, você precisa de uma arquitetura e um arquiteto.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;1.3 Arquitetura Vs. Design&lt;/h2&gt;Se já não bastasse o assunto arquitetura ser amplo suficiente, ainda temos também uma questão a ser esclarecida sobre arquitetura vs. design. Especificamente aqui no Brasil temos algumas características regionais em termos de tradução e entendimento da palavra design, que sempre nos parece muito mais no sentido de algo gráfico. &lt;br /&gt;
&lt;br /&gt;
O fato é que a palavra design como verbo significa projetar, desenhar, planejar, esboçar e enquanto pronome projeto, desenho, modelo, plano, esquema, esboço. No Brasil o uso mais comum para tradução técnica da palavra design graças a tradução de “design pattern” é projeto o que seria uma infelicidade se pensarmos em aplicar “Arquitetura vs Projeto”. Graças ao significado ambíguo da palavra design, acredito que o mais comum no Brasil é utilizarmos palavra modelagem (e que não vem de design), sendo assim teríamos como título de tópico “Arquitetura Vs. Modelagem”.&lt;br /&gt;
&lt;br /&gt;
Esclarecidos eventuais equívocos de interpretação sobre a palavra Design, vamos citar as diferenças entre design e arquitetura:&lt;br /&gt;
&lt;br /&gt;
•&amp;nbsp;&amp;nbsp;&amp;nbsp; Arquitetura atua em um nível mais alto, tratando de elementos que envolvem infraestrutura, dados, comunicação e integração;&lt;br /&gt;
•&amp;nbsp;&amp;nbsp;&amp;nbsp; Design atua em um nível mais baixo e mais perto do código. Vai tratar forma geral da API sendo muito comum utilizar o termo “design de API” e também de componentes e como eles irão interfacear.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;1.4 Arquiteturas Web&lt;/h2&gt;Pesquisamos recentemente sobre o que a comunidade de arquitetos tem compartilhado na internet através de blogs, livros e discussões em fóruns e nossa conclusão é que maior parte das opiniões são generalizadas e apresentadas por profissionais que provavelmente tem apenas experiência na Web, por este motivo não se dão nem ao luxo de citar "no contexto do meu trabalho com o tipo de aplicativo que desenvolvo eu acredito na técnica X", simplesmente falam da tal técnica X como se fosse a única para tudo e todos.&lt;br /&gt;
&lt;br /&gt;
O fato é que quando falamos sobre arquitetura de software, o software pode ser mobile, Web, desktop, TV digital, um game, um firmware, um IDE, um ERP e atualmente no Brasil (talvez no mundo todo!) maior parte das oportunidades são para aplicativos corporativos / administrativos na Web (leia-se CRUDs e Power CRUD*). Isso faz com que uma enorme quantidade de desenvolvedores exclusivamente Web publiquem visões e opiniões dentro do contexto Web, o que faz sentido! Mas os autores devem sempre deixar explícito seu contexto de trabalho. Acreditamos que frases como “Não distribua seu objetos”&amp;nbsp; pouco agregam para desenvolveres de mais alto nível pois não contextualizam e dificultam a interpretação correta.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;1.5 Contexto: Ambiente + Cenário + Recursos + Estratégia&lt;/h2&gt;Pra complicar ainda mais o assunto: mesmo focando apenas em um dos tipos de software, por exemplo os corportativos na Web, temos a questão do cenário, ambiente, recursos&amp;nbsp; que podem&amp;nbsp; também afetar radicalmente os quesitos da arquitetura. Tenho um amigo que trabalha no Google da Califórnia na parte de desenvolvimento, mas ele estave desenvolvendo o sistema de assistência técnica de notebooks do Google. Portanto é bastante evidente que a arquitetura para este sistema e seu conjunto de fundamentos será completamente diferente da arquitetura do Google+. &lt;br /&gt;
&lt;br /&gt;
Podemos ir ainda mais longe, eu mesmo trabalhei para um agência de publicidade há mais de 15 anos onde eu era responsável por desenvolver soluções "descartáveis". Um evento surgia, uma base de dados chegava via fax, um sistema era criado com DDD (digitando-driven design), alterado em run-time para suportar as loucuras do cliente e da campanha e depois jogado fora. Isso pode acontecer ainda mais facilmente nos dias de hoje com campanhas na Internet! Não é interessante desenvolver um software descartável? Será que práticas protocoladas de arquitetura vem ao caso?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;1.6 Generalizações técnicas: certo, mas errado.&lt;/h2&gt;Visualizando arquitetura de software como algo muito amplo, devemos evitar recomendações generalizadas, pois a tendência é que as pessoas transformem técnicas em crenças. &lt;br /&gt;
&lt;br /&gt;
Vamos ver alguns exemplos de diretivas de arquitetura e design que encontramos com facilidade na internet.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;1.6.1 Exemplo 1: Design-pattern DAO está depreciado&lt;/h3&gt;Quantos aplicativos acessarão os mesmos dados com os mesmos critérios e precisarão das mesmas otimizações de performance de busca em RDBMS usando ORM? 1? tudo bem pode ficar sem o DAO, mas se for em um grande banco brasileiro você poderá ter 7 empresas diferentes com mais de 5.000 desenvolvedores acessando os mesmos dados da mesma forma. Se o arquiteto modernão falasse para esse banco colocar critérios JPA nos controladores, adeus uniformidade do acesso e cada novo controlador poderá gerar um novo gargalo e risco na arquitetura. Além disso, imagine se você precisar de regras de segurança baseada em dados? Tipo tal papel / grupo só pode ver objetos cliente tipo pessoa física do estado de SP.Controladores costumam já ter um bom conjunto de responsabilidades e em geral tendem a ter acoplamento com a tecnologia Web em questão, portanto ao migrar de Spring MVC para Wicket, Vaadin ou outro você dificilmente aproveitará seu controlador, se você tiver um componente de acesso aos dados, pelo menos ele poderá ser reutilizado em diferentes tecnologias Web.&lt;br /&gt;
&lt;br /&gt;
A conclusão é simples: se você tem um componente com regras de acesso e agregações de dados complexas e precisa compartilhar isso entre vários aplicativos você PRECISA de um componente de dados.&amp;nbsp; Se vai se chamar de DAO ou não ficará a seu critério. Eric Evans escreveu sobre Domain Driven Design&amp;nbsp; que adota o pattern Repository com uma abordagem mais moderna em termos de modelagem orientada a objetos mas também seus prós e contras.&lt;br /&gt;
&lt;br /&gt;
Lembre-se, o fato de se chamar X ou Y nunca vai eliminar a necessidade de criação de componentes e classes com responsabilidades finitas!&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;1.6.2 Exemplo 2:&amp;nbsp; Vamos adotar Test-driven development!&lt;/h3&gt;Está é uma frase bastante perigosa dentro de uma empresa tradicional pelo fato de que empresas gostam de métodos uniformes e buscam incessantemente um padrão de desenvolvimento para “fabricar” software, o que é uma utopia. Adotar Test-driven development em todas as fases do desenvolvimento de todos os softwares da empresa não será um boa decisão. Não somos contra TDD, pelo contrário, mas não achamos útil para TODAS as fases de um software.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;1.6.3 Exemplo 3: Patterns&lt;/h3&gt;&lt;br /&gt;
Existem críticas sobre overengineering que culpam o excesso de patterns por gerar complexidade desnecessária. O pattern é uma forma de resolver um problema, falar para evitar usar patterns é como falar "evite ter problemas ao desenvolver software". Bastou você precisar implementar undo / redo e bingo, ou você vai aplicar um pattern para solucionar isso ou vai gastar o tempo para criar o seu próprio. Claro que não defendo o uso desnecessário de patterns, mas costumo dizer: o software é simples? faz no office. O que nós desenvolvemos não costuma ser simples e patterns, principalmente o 23 GoF ajudam muito em qualquer plataforma de desenvolvimento.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;1.6.4: Exemplo 4: Nunca use if's, isso é resolvido com polimorfismo!&lt;/h3&gt;Não é bem assim, polimorfismo pode custar muito caro, por exemplo, em embarcados. Além disso o extremo do abandono de if's, como acontece em algumas linguagens, levaria facilmente a modelos equívocados e super dimensionados. Isso também pode ter um certo impacto em termos de performance pois late binding tem um custo mais alto para carregamento de classe.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;1.6.5 Então... contextualize-se!&lt;/h3&gt;Esses foram alguns exemplos de afirmações controversas que encontramos na Internet cujo autor não se contextualizou. Vamos lembrar que não estamos escrevendo a bíblia, podemos e devemos ser específicos quando defendemos uma técnica de arquitetura!&lt;br /&gt;
&lt;br /&gt;
Bem para finalizar, esta é só a primeira parte onde estamos tratando os assuntos sobre o que é uma arquitetura, um arquiteto e entender a importância de contextualizar e nunca generalizar.&lt;br /&gt;
&lt;br /&gt;
Este post não reflete opiniões sobre DAO, TDD e Patterns mas sim apresenta apenas erros em afirmações generalizadas feitas por arquitetos.&lt;br /&gt;
&lt;br /&gt;
Em breve falaremos sobre requisitos não-funcionais, tomando decisões técnicas e posteriormente sobre técnicas de componentização com Java EE. Aguardem!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-1423994198187237099?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/09L7INWIe_o" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/09L7INWIe_o/arquitetura-java-1.html</link><author>noreply@blogger.com (Vinicius Senger)</author><feedburner:origLink>http://blog.globalcode.com.br/2012/03/arquitetura-java-1.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-7880784044041980949</guid><pubDate>Fri, 16 Mar 2012 18:30:00 +0000</pubDate><atom:updated>2012-03-16T15:30:47.694-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Windows Phone</category><category domain="http://www.blogger.com/atom/ns#">Nokia</category><category domain="http://www.blogger.com/atom/ns#">Neto Marin</category><category domain="http://www.blogger.com/atom/ns#">WP</category><category domain="http://www.blogger.com/atom/ns#">Open4Education</category><category domain="http://www.blogger.com/atom/ns#">Minicurso gratuito</category><title>Tem Windows Phone? Tem sim senhor! Minicurso Gratuito de WP na Globalcode!</title><description>Ola pessoal,&lt;br /&gt;
&lt;br /&gt;
E dando continuidade a nossa caminhada no mundo da mobilidade e também na nossa filosofia de que desenvolvedor não pode ser fanboy, estamos aumentando as opções de minicursos que oferecemos na iniciativa Open4Education!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Parceria Nokia&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-3K3Rbce7uWI/T2OCuUM5TZI/AAAAAAAAA34/nRmRanmNtUE/s1600/Nokia-Logo.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="100" src="http://3.bp.blogspot.com/-3K3Rbce7uWI/T2OCuUM5TZI/AAAAAAAAA34/nRmRanmNtUE/s200/Nokia-Logo.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
Desenvolvemos um ótimo relacionamento com a Nokia, que esteve fortemente presente nos últimos dois TDCs, inclusive no ano passado participou também das edições em Florianópolis e Goiânia, além é claro de São Paulo. E mais um fruto desse relacionamento é o novo minicurso &lt;a href="http://globalcode.com.br/gratuitos/minicursos/introducao-ao-desenvolvimento-de-aplicativos-para-windows-phone" target="_blank"&gt;MC121 - Introdução ao Desenvolvimento de Aplicativos para Windows Phone&lt;/a&gt;, quer irá ter a sua primeira edição no dia 22 de Março na Globalcode São Paulo e também com transmissão ao vivo pela Internet através do webcast.&lt;br /&gt;
&lt;br /&gt;
O autor e palestrante desse minicurso virá diretamente de Manaus, do Instituto Nokia de Tecnologia, INdT, trazendo toda sua experiência na plataforma para nos apresentar a esse novo mundo de possibilidades. Vamos saber mais do autor:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-OLJ0h7vDgWk/T2OEFNhxwtI/AAAAAAAAA4A/j4rZtAjh4GQ/s1600/Bessa.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-OLJ0h7vDgWk/T2OEFNhxwtI/AAAAAAAAA4A/j4rZtAjh4GQ/s1600/Bessa.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Thiago Bessa&lt;/b&gt;&lt;br /&gt;
Cientista da Computação e apaixonado por desenvolvimento de software há mais de 10 anos. É grande entusiasta da plataforma .NET desde seu lançamento, em 2002, estando envolvido em projetos que envolvem várias tecnologias que surgiram da mesma, como Windows Forms, ASP.NET, WPF, WCF e Silverlight. Durante o último ano, esteve inteiramente dedicado a projetos para o ecossistema do Windows Phone, tanto em Silverlight como XNA, e atualmente é certificado MCPD: Windows Phone Developer, além de possuir mais de 10 outras certificações MCPD e MCTS.&lt;div style="background-color: white; margin-bottom: 4px; margin-top: 4px; text-align: left;"&gt;
&lt;span style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;b&gt;Nokia Developer Day&lt;/b&gt;&lt;div style="background-color: white; margin-bottom: 4px; margin-top: 4px; text-align: left;"&gt;
&lt;span style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-JnUZdGKxPjc/T2OEkfv4KZI/AAAAAAAAA4I/bqgmsWPJwFE/s1600/NokiaDEvDay_banner.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="108" src="http://1.bp.blogspot.com/-JnUZdGKxPjc/T2OEkfv4KZI/AAAAAAAAA4I/bqgmsWPJwFE/s320/NokiaDEvDay_banner.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;br /&gt;Saiba mais sobre desenvolvimento, distribuição e monetização para a plataforma Windows Phone e prepare-se para se surpreender com que a Nokia criou para vocês, o Nokia Developer Day ! &lt;br /&gt;&lt;br /&gt;Quando? dia 23 de março de 2012 em São Paulo/SP. &lt;br /&gt;&lt;a href="http://www.developer.nokia.com/Events/invitation/devday_sp?mode=register"&gt;Saiba mais detalhes e inscreva-se agora&lt;/a&gt; !! Mas corra porque as vagas são limitadas!&lt;br /&gt;&lt;br /&gt;Abraços&lt;br /&gt;Neto Marin&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-7880784044041980949?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/Cr9SIHqozlQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/Cr9SIHqozlQ/tem-windows-phone-tem-sim-senhor.html</link><author>noreply@blogger.com (Neto Marin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-3K3Rbce7uWI/T2OCuUM5TZI/AAAAAAAAA34/nRmRanmNtUE/s72-c/Nokia-Logo.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/03/tem-windows-phone-tem-sim-senhor.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-2552178713249433279</guid><pubDate>Thu, 15 Mar 2012 17:03:00 +0000</pubDate><atom:updated>2012-03-15T18:51:38.062-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">TV Digital</category><category domain="http://www.blogger.com/atom/ns#">Java Noroeste</category><category domain="http://www.blogger.com/atom/ns#">Ginga</category><category domain="http://www.blogger.com/atom/ns#">Carlos Fernandes Gonçalves</category><title>Lançamento de projetos e aplicativos para TV Digital Interativa</title><description>Foi publicado neste dia 15 de março de 2012 no site do &lt;a href="http://www.cpqd.com.br/"&gt;Centro de Pesquisa e Desenvolvimento (CPqD)&lt;/a&gt; projetos com aplicações interatividade na TV Digital que utilizam Ginga.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-ZNml9Dmjx3M/T2Ijab15ELI/AAAAAAAABec/BqXLcOknhPY/s1600/cpqd_tvdigital.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" id="BLOGGER_PHOTO_ID_5720173413771317426" src="http://3.bp.blogspot.com/-ZNml9Dmjx3M/T2Ijab15ELI/AAAAAAAABec/BqXLcOknhPY/s320/cpqd_tvdigital.png" style="display: block; height: 82px; margin: 0px auto 10px; text-align: center; width: 320px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;O CPqD localizado no município de Campinas no interior de São Paulo foi criado em 1976 como Centro de Pesquisa e Desenvolvimento tem ao longo tempo contribuído com inovações tecnológicas e possui um grande número de patente e  disponibiliza projetos como uma contribuição para comunidade para fortalecimento e enriquecimento da TV Digital Terrestre no Brasil.&lt;br /&gt;&lt;br /&gt;O projeto SMTVI - Serviços Multiplataforma de TV Interativa utiliza middleware GINGA com foco na interatividade vai permitir aplicações interativas à população brasileira através da TV aberta.&lt;br /&gt;Nesta etapa serão disponibilizadas ferramenta de autoria, biblioteca de componentes de software e a PrevidênciaFácil. Tudo isso esta dentro de um conograma estabelecido pelo CPqD que vai liberar em etapas outros projetos.&lt;br /&gt;&lt;br /&gt;No site do CPqD vocè encontra os &lt;a href="http://www.cpqd.com.br/component/content/article/345-visao-geral/6138-aplicacoes-de-tv-interativa.html"&gt;projetos&lt;/a&gt;  e a &lt;a href="http://www.cpqd.com.br/component/content/article/345-visao-geral/6139-politica-de-uso-dos-resultados.html"&gt;política de uso dos aplicativo&lt;/a&gt;. Dentre os projetos, segundo informações do CPqD, podemos citar alguns:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;T-CoD - Conteúdo Sob Demanda&lt;/b&gt;&lt;/li&gt;Foram desenvolvidas aplicações representativas do que ocorre na Internet no que diz respeito ao acesso a informações sob demanda e à interatividade entre usuários.&lt;li&gt;&lt;b&gt;T-Gov - Governo Eletrônico&lt;/b&gt;&lt;/li&gt;Foram desenvolvidas três aplicações voltadas para serviços de governo eletrônico: IncluaSaúde - para agendamento de consultas médicas e dicas de saúde para a população; ProcuraEmprego - para divulgação de oportunidades emprego em todo o País; PrevidênciaFácil&lt;li&gt;&lt;b&gt;T-Commerce - Comércio Virtual Interativo&lt;/b&gt;&lt;/li&gt;A aplicação desenvolvida pelo CPqD permite que o usuário possa vender ou comprar produtos a partir de um aparelho televisor. Para vender um produto, o usuário deve anunciá-lo, informando os dados pertinentes, como a descrição do produto, sua categoria, fotos e preço.&lt;li&gt;&lt;b&gt;T-learning - Educação à distância&lt;/b&gt;&lt;/li&gt;Foi desenvolvido um serviço para educação à distância semelhante ao CPqD Primeiras Palavras. Esse serviço é focado na alfabetização e por meio de atividades em ordem crescente de complexidade, o usuário é conduzido e estimulado a aprender a ler e escrever.&lt;li&gt;&lt;b&gt;T-Games - Jogos&lt;/b&gt;&lt;/li&gt;Os jogos desenvolvidos são aplicações de natureza lúdica, com regras simples e fáceis de aprender. Por seu caráter despretensioso, é uma forma de passatempo podendo ser jogado por crianças e adultos de todas as idades. Por meio de um portal, o usuário tem acesso ao jogo de Damas, Cobrinha (Snake), Memória, Campo Minado e Fantasmas. &lt;/ul&gt;&lt;span style=" font-weight: bold;font-size:large;" &gt;Quer saber mais?&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.cpqd.com.br/component/content/article/345-visao-geral/6138-aplicacoes-de-tv-interativa.html"&gt;Aplicações de TV Interativa&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=" font-weight: bold;font-size:large;" &gt;The Developers Conference&lt;/span&gt;&lt;br /&gt;O projeto SMTVI foi apresentado no The Developers Conference 2011 em São Paulo e Goiânia por Hugo Cesar Crohare Lavalle que é arquiteto de software e líder técnico na área de TV digital interativa do CPqD e pelo projetista de TV digital interativa Raphael de Carvalho Barbosa do CPqD nas palestras &lt;a href="http://www.thedevelopersconference.com.br/arquivos/tdc/2011/TDC2011SP-TVDigital-09-Desenvolvendo-e-Integrando-Servicos-Multiplataforma.pdf"&gt;Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa&lt;/a&gt;  e &lt;a href="http://www.webgis.com.br/antares/tdc2011_goiania/TVDigital_Entendendo_a_transmissao_de_aplicacoes.pdf"&gt;Entendendo a transmissão de aplicações&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=" font-weight: bold;font-size:large;" &gt;Grande incentivo&lt;/span&gt;&lt;br /&gt;Para os desenvolvedores foi uma ótima notícia pois estão disponibilizados vários aplicativos que podem ser estudados e utilizar em novos projetos.&lt;br /&gt;Fica o convite para a comunidade inciar seus estudos num campo que há pouca oferta de mão de obra no Brasil.&lt;br /&gt;&lt;br /&gt;Carlos Fernando Gonçalves&lt;br /&gt;JUG Leader Java Noroeste&lt;br /&gt;&lt;a href="http://javanoroeste.com.br/javanoroeste/"&gt;www.javanoroeste.com.br&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/javanoroeste"&gt;http://twitter.com/javanoroeste&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.twitter.com/mercuriocfg"&gt;http://www.twitter.com/mercuriocfg&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-2552178713249433279?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/Qz1OiSX5sVM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/Qz1OiSX5sVM/lancamento-de-projetos-e-aplicativos.html</link><author>noreply@blogger.com (jornadacfg)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-ZNml9Dmjx3M/T2Ijab15ELI/AAAAAAAABec/BqXLcOknhPY/s72-c/cpqd_tvdigital.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/03/lancamento-de-projetos-e-aplicativos.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-4728962829965772420</guid><pubDate>Wed, 14 Mar 2012 18:42:00 +0000</pubDate><atom:updated>2012-03-14T15:42:51.960-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">Eder</category><category domain="http://www.blogger.com/atom/ns#">YaW</category><title>NIO.2 do Java 7: uma nova API do Java para file system</title><description>&lt;span style="font-size: small;"&gt;&lt;span id="internal-source-marker_0.512418355805727" style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Uma
 das novidades mais importantes e aguardadas do Java 7 foi a NIO.2, a 
nova API para a manipulação I/O com Java. A NIO.2, também conhecida como
 &lt;/span&gt;&lt;a href="http://jcp.org/en/jsr/detail?id=203"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;JSR 203&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;,
 disponibiliza um conjunto de novos componentes, projetados para 
melhorar caracterísiticas de I/O com Java como por exemplo: uma nova API
 para o acesso e manipulação de conteúdo do &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;file system&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt; (sistema de arquivos); outra API para operações assíncronas com I/O; e a atualização da API para comunicação via sockets (&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;channel sockets&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;).&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/-H-0lMzsnRwg/T2DmJ4-WMCI/AAAAAAAAALA/ofJdMtbU7_0/s1600/barra.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-H-0lMzsnRwg/T2DmJ4-WMCI/AAAAAAAAALA/ofJdMtbU7_0/s1600/barra.png" /&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;O
 Java, antes da versão 7, tratava a manipulação do sistema de arquivos 
de forma primitiva. O programador tinha de trabalhar com a classe &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;File&lt;/span&gt; 
para representar arquivos e/ou diretórios, com um número escasso de 
funcionalidades. Uma operação simples como copiar um arquivo demandava 
um código relativamente grande. Outras funcionalidades triviais, como 
por exemplo o uso de links simbólicos, não eram suportadas. Esses são 
alguns dos motivos para justificar o uso de bibliotecas terceiras, com 
funcionalidades complementares a API I/O do Java, durante o 
desenvolvimento de um sistema.&lt;/span&gt;&lt;span id="internal-source-marker_0.512418355805727" style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span id="internal-source-marker_0.512418355805727" style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;b&gt;API para o sistema de arquivos&lt;/b&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span id="internal-source-marker_0.512418355805727" style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;No novo pacote&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/package-summary.html" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;java.nio.file&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;
 estam contidos boa parte dos componentes da API para a manipulação do 
sistema de arquivos. Um dos pontos de partida para essa nova API é a 
interface &lt;/span&gt;&lt;a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;Path&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;. Ela representa o caminho hierárquico do &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;file system&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;
 de um diretório ou arquivo. Essa classe possui métodos para recuperar 
informações do caminho do arquivo, acessar outro elemento na estrutura 
hierárquica ou converter uma estrutura de diretórios. &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;É possível criar um objeto Path de várias formas, uma dela é através da classe &lt;/span&gt;&lt;a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/Paths.html" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;Paths&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;
 (plural), uma classe helper com métodos estáticos especificos para a 
criação de objetos &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Path&lt;/span&gt;. O trecho de código a seguir demonstra como 
criar e utilizar objetos da classe &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Path&lt;/span&gt;, representando o caminho para o 
arquivo logo.png.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;Path logo = Paths.get("/home/yaw/logo.png"); //passa o caminho completo
Path logo2 = Paths.get("/home", "yaw", "logo.png"); //outra forma

System.out.println(logo.equals(logo2));
System.out.format("%s é igual a %s? %b%n", logo, logo2, logo.equals(logo2));
System.out.format("Nome do arquivo: %s%n", logo.getFileName());
System.out.format("Qtde de elementos no path: %d%n", logo.getNameCount());
System.out.format("Volume: %s%n", logo.getRoot());
System.out.format("1o diretório: %s%n", logo.getName(0));
System.out.format("Pedaço do path (1o e 2o dir): %s%n", logo.subpath(0, 2));
System.out.format("Diretório do arquivo: %s%n", logo.getParent());
&lt;/pre&gt;
&lt;span style="font-size: small;"&gt;&lt;span id="internal-source-marker_0.512418355805727" style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Outra opção seria criar o &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Path&lt;/span&gt; a partir do &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;FileSystem&lt;/span&gt;. A classe abstrata &lt;/span&gt;&lt;a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/FileSystem.html" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;FileSystem&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;
 provê uma representação do sistema de arquivos, com funcionalidades para 
criar ou acessar elementos nessa estrutura. Mas para recuperar um objeto
 do tipo &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;FileSystem&lt;/span&gt;, precisamos de outra classe helper: &lt;/span&gt;&lt;a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/FileSystems.html" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;FileSystems&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt; (plural novamente) que atua como um fábrica desses objetos. A seguir o trecho de código com essa estratégia:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;FileSystem fileSystem = FileSystems.getDefault(); //recupera o File System
Path logo3 = fileSystem.getPath("/home/yaw/logo.png"); //cria o Path
&lt;/pre&gt;
&lt;span style="font-size: small;"&gt;&lt;span id="internal-source-marker_0.512418355805727" style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;O método &lt;a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html#resolve%28java.nio.file.Path%29" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;resolve&lt;/a&gt; é util para criar um &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Path&lt;/span&gt; a partir de outro &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Path&lt;/span&gt;, respeitando a hierarquia. Veja um exemplo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;Path home = Paths.get("/home/yaw"); //diretorio home
Path logo4 = home.resolve("logo.png"); //arquivo dentro do diretorio
System.out.format("Arquivo: %s%n", logo4.toAbsolutePath());
&lt;/pre&gt;
&lt;span style="font-size: small;"&gt;&lt;span id="internal-source-marker_0.512418355805727" style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span id="internal-source-marker_0.512418355805727" style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;b&gt;Backup com NIO.2&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span id="internal-source-marker_0.512418355805727" style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Já conhecemos os componentes que representam o sistema de arquivos e o &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;path&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt; para um arquivo ou diretório. O próximo passo é manipular os arquivos! Para isso precisamos da classe &lt;/span&gt;&lt;a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;Files&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;,
 uma classe helper composta por métodos que operam sobre arquivos e/ou 
diretórios. A seguir o trecho de código que realiza a cópia de um 
arquivo:&lt;/span&gt;&lt;/span&gt;&lt;span id="internal-source-marker_0.512418355805727" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;Path home = Paths.get("/home/yaw");
Path txt = home.resolve("instrucoes.txt");
Path backup = home.resolve("instrucoes.txt.backup");

//caso exista, substitui
Files.copy(txt, backup, StandardCopyOption.REPLACE_EXISTING);
System.out.format("A cópia foi criada? %s%n", Files.exists(backup));
&lt;/pre&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;span style="font-size: small;"&gt;O método &lt;a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#copy%28java.nio.file.Path,%20java.nio.file.Path,%20java.nio.file.CopyOption...%29" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;copy&lt;/a&gt; recebe o caminho do arquivo origem e destino para reliazar a cópia. Caso o arquivo de backup já exista ele será substítuido. Agora se o arquivo de origem não existir o método lança uma &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;IOException&lt;/span&gt;. Repare que para trabalhar com os métodos da classe Files, devemos tratar &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;IOException&lt;/span&gt;. Seguindo no exemplo do backup, o trecho de código a seguir move o arquivo cópia para outro diretório:&lt;/span&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;pre class="java" name="code"&gt;Path dirDestino = Paths.get("/home/yaw/backup");
if (Files.exists(backup)) {
    Files.move(backup, dirDestino.resolve(backup.getFileName()));
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;span style="font-size: small;"&gt;Nos dois últimos exemplos utilizo o método &lt;a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#exists%28java.nio.file.Path,%20java.nio.file.LinkOption...%29" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;exists&lt;/a&gt; de &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Files&lt;/span&gt;, para verificar se o arquivo realmente existe no sistema de arquivos.&lt;/span&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;

&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;b&gt;&lt;span style="font-size: small;"&gt;Links simbólicos&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;span style="font-size: small;"&gt;A partir do Java 7 é possível criar e utilizar links simbólicos com API de I/O, através da classe &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Files&lt;/span&gt;. O próximo trecho de código demonstra como criar um link para um determinado arquivo e como verificar se o arquivo é um link.&lt;/span&gt;&lt;/div&gt;
&lt;pre class="java" name="code"&gt;Path alvo = Paths.get("/home/yaw/inicializacao_v1.sh");
Path link = Paths.get("/home/yaw/scripts/inicializacao.sh");

//cria o link
Files.createSymbolicLink(link, alvo);

Path f = Paths.get("/home/yaw/scripts/inicializacao.sh");

//verifica se o path eh um link
if (Files.isSymbolicLink(f)) {
  System.out.format("'%s' é link de '%s'%n", f, Files.readSymbolicLink(f));
}
&lt;/pre&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;b&gt;&lt;span style="font-size: small;"&gt;Listar o conteúdo do diretório&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;span style="font-size: small;"&gt;&lt;span id="internal-source-marker_0.512418355805727" style="background-color: transparent; color: black; font-family: Arial,Helvetica,sans-serif; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Outra
 vantangem dessa API são as várias opções para consultar o conteúdo de 
um diretório. É possível realizar consultas simples, com filtro na 
extensão do arquivo, e avançadas navegando recursivamente na estrutura 
de diretórios.&lt;/span&gt;&lt;br style="font-family: Arial,Helvetica,sans-serif;" /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial,Helvetica,sans-serif; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br style="font-family: Arial,Helvetica,sans-serif;" /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial,Helvetica,sans-serif; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;A interface &lt;/span&gt;&lt;a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/DirectoryStream.html" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;DirectoryStream&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial,Helvetica,sans-serif; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;
 nos permite iterar nos elementos contidos dentro de um diretório. A 
classe Files fornece várias versões do método newDirectoryStream, uma 
delas utilizamos a seguir indicando o filtro pela extensão jpg:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;Path dir = Paths.get("/home/yaw");
String filtro = "*.jpg";

DirectoryStream&amp;lt;Path&amp;gt; stream = Files.newDirectoryStream(dir, filtro);

//iterator com os elementos da pasta
for (Path p : stream) {
  System.out.println("\t" + p);
}
&lt;/pre&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;span style="font-size: small;"&gt;&lt;span id="internal-source-marker_0.512418355805727" style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;Com a interface &lt;/span&gt;&lt;a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/SimpleFileVisitor.html" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;SimpleFileVisitor&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;,
 que implementa o pattern &lt;i&gt;Visitor&lt;/i&gt;, é possível criar um mecanismo 
mais inteligente para percorrer o conteúdo de um diretório. O 
método &lt;/span&gt;&lt;a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#walkFileTree%28java.nio.file.Path,%20java.nio.file.FileVisitor%29" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;walkFileTree&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;, da classe &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Files&lt;/span&gt;, utiliza o &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;SimpleFileVisitor&lt;/span&gt; aplicado um dado diretório. Veja um exemplo dessa estratégia nessa &lt;/span&gt;&lt;a href="https://github.com/edermag/jdk7.minicurso/blob/master/src/br/com/yaw/jdk7/ListarDiretorioTree.java"&gt;&lt;span style="background-color: transparent; color: #1155cc; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;"&gt;url&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Leitura e escrita de arquivos&lt;/b&gt;&lt;br /&gt;
Outra novidade são os métodos para leitura e escrita de arquivos compactos, pequenos. Esses métodos podem ser utilizados para escrever ou ler em formato binário (bytes) ou texto (string). Veja um exemplo que lê e escreve texto:&lt;br /&gt;
&lt;pre class="java" name="code"&gt;Path txt = Paths.get("/home/yaw/instrucoes.txt");
List&amp;lt;String&amp;gt; linhas = Files.readAllLines(txt, Charset.defaultCharset());
for (String l: linhas) {
  System.out.format("%s%n",l);
}

linhas.add("novo conteudo para o arquivo texto...");
Files.write(txt, linhas, Charset.defaultCharset());
&lt;/pre&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;O método &lt;a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#readAllLines%28java.nio.file.Path,%20java.nio.charset.Charset%29" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;readAllLines&lt;/a&gt; retorna uma lista com todas as linhas contidas no arquivo. Repare que não foi necessário escrever código para fechar o arquivo, isso quem faz é o próprio médodo. O mesmo aconcete com o método &lt;a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#write%28java.nio.file.Path,%20java.lang.Iterable,%20java.nio.charset.Charset,%20java.nio.file.OpenOption...%29" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;write&lt;/a&gt;, logo após escrever o conteúdo ele fecha o arquivo.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;b&gt;Propriedades&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;A interface BasicFileAttributes foi criada para resgatar atributos básicos de um arquivo dentro do sistema de arquivos.&lt;/span&gt;&lt;/span&gt; Veja um exemplo de como recuperar propriedades básicas de um arquivo/diretório:&lt;br /&gt;
&lt;pre class="java" name="code"&gt;BasicFileAttributes info = Files.readAttributes(txt, BasicFileAttributes.class);

System.out.format("Data de criação: %s%n", info.creationTime());
System.out.format("Último acesso: %s%n", info.lastAccessTime());
System.out.format("Última modificação: %s%n", info.lastModifiedTime());
System.out.format("É um diretorio: %s%n", info.isDirectory());
System.out.format("Tamanho: %s bytes%n", info.size());
&lt;/pre&gt;
&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;O código demonstrado nesse post e outros exemplos estam disponíveis no &lt;a href="https://github.com/edermag/jdk7.minicurso/"&gt;github&lt;/a&gt;. fique a vontade para visualizar, copiar e modificar!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;O Java 7 disponibiliza outros recursos, esses links complementam o aprendizado e as novidades da linguagem:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;a href="http://blog.globalcode.com.br/2011/11/type-inference-no-java-7-generics-com.html"&gt;Type Inference no Java 7, generics com código compacto&lt;/a&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.globalcode.com.br/2011/10/o-novo-try-no-java-7-por-uma-linguagem.html"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;O novo try no Java 7 por uma linguagem mais simples;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.globalcode.com.br/2011/07/lancamento-do-jdk-7-no-tdc2011-em-sao.html"&gt;Lançamento do JDK 7 no TDC2011 em São Paulo&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Artigo no InfoQ Brasil - &lt;a href="http://www.infoq.com/br/articles/java7coin"&gt;Java 7: Modificações na Linguagem, em detalhes e exemplos&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Minicurso Gratuito: &lt;a href="http://www.globalcode.com.br/gratuitos/minicursos/minicurso-JDK7-modificacoes-na-linguagem"&gt;JDK7 - Modificações na Linguagem&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Tutorial da Oracle sobre &lt;a href="http://docs.oracle.com/javase/tutorial/essential/io/fileio.html"&gt;NIO.2&lt;/a&gt;;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-size: small;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;br /&gt;[]s&lt;br /&gt;Eder Magalhães&lt;br /&gt;&lt;a href="http://www.yaw.com.br/"&gt;www.yaw.com.br&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/youandwe"&gt;twitter.com/youandwe&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/edermag"&gt;twitter.com/edermag&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-4728962829965772420?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/I4klXbnyASU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/I4klXbnyASU/nio2-do-java-7-uma-nova-api-do-java.html</link><author>noreply@blogger.com (Eder Magalhães)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-H-0lMzsnRwg/T2DmJ4-WMCI/AAAAAAAAALA/ofJdMtbU7_0/s72-c/barra.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/03/nio2-do-java-7-uma-nova-api-do-java.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-2770414912105321860</guid><pubDate>Mon, 05 Mar 2012 14:45:00 +0000</pubDate><atom:updated>2012-03-05T11:49:27.537-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sql</category><category domain="http://www.blogger.com/atom/ns#">mysql</category><category domain="http://www.blogger.com/atom/ns#">Neto Marin</category><title>Dica rápida: Apagando registros duplicados no MySQL</title><description>Ola pessoal,&lt;br /&gt;
&lt;br /&gt;
Sei que vocês estão acostumados a ver posts meus sobre tecnologia móvel ou algo relacionado, mas hoje vou falar sobre um pequeno "truque" que usei esse final de semana com o MySQL. Eu estava desenvolvendo o lado servidor de uma nova aplicação mobile (ahh, então "tem a ver" com mobile hehe), e quando fui fazer alguns testes percebi que tinha quase 7 mil registros duplicados (!!!) na minha base de dados!&lt;br /&gt;
&lt;br /&gt;
Bom, o meu primeiro reflexo como programador foi pensar em fazer um "programinha" Java para buscar e deletar todos esses registros duplicados. Mas ai, resolvi tirar as teias de aranha dos neurônios e usar os vários anos de experiência que passei com SQL e criar uma query que fizesse esse trabalho todo de uma vez!!&lt;br /&gt;
&lt;br /&gt;
E a query ficou assim:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="head" style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-color: initial; border-left-style: none; border-left-width: initial; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #666666; font-family: 'Courier New', monospace; font-size: 15px; font-style: italic; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0.5em; vertical-align: baseline; white-space: nowrap;"&gt;
delete from TABLE_NAME&lt;/div&gt;
&lt;ol style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-color: initial; border-left-style: none; border-left-width: initial; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Courier New', monospace; font-size: 15px; line-height: 24px; list-style-image: initial; list-style-position: initial; list-style-type: none; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.5em; padding-left: 1em; padding-right: 0px; padding-top: 0px; vertical-align: baseline; white-space: nowrap;"&gt;
&lt;li class="li1" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: none; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;div class="de1" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 5px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;span class="kw1" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #a1a100; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;USING&lt;/span&gt;&amp;nbsp;TABLE_NAME, TABLE_NAME&amp;nbsp;&lt;span class="kw1" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #a1a100; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;AS&lt;/span&gt;&amp;nbsp;auxtable&lt;/div&gt;
&lt;/li&gt;
&lt;li class="li1" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: none; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;div class="de1" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 5px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;span class="kw1" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #a1a100; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;WHERE&lt;/span&gt;&amp;nbsp;&lt;span class="br0" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #66cc66; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="kw1" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #a1a100; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;NOT&lt;/span&gt;&amp;nbsp;TABLE_NAME.id&amp;nbsp;&lt;span class="sy0" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;=&lt;/span&gt;&amp;nbsp;auxtable.id&lt;span class="br0" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #66cc66; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class="li1" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; list-style-type: none; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;div class="de1" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 5px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;
&lt;span class="kw1" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #a1a100; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;AND&lt;/span&gt;&amp;nbsp;&lt;span class="br0" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #66cc66; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;TABLE_NAME.name&amp;nbsp;&lt;span class="sy0" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;=&lt;/span&gt;&amp;nbsp;auxtable.name&lt;span class="br0" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #66cc66; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
Explicação direta:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;TABLE_NAME: Tabela que contém os registros duplicados que você deseja excluir.&lt;/li&gt;
&lt;li&gt;auxtable: Alias da TABLE_NAME, para encontrar os registros.&lt;/li&gt;
&lt;li&gt;TABLE_NAME.id (e auxtable.id): Chave primária da tabela TABLE_NAME, no meu caso a coluna se chama "id".&lt;/li&gt;
&lt;li&gt;TABLE_NAME.name (e auxtable.name): Coluna a ser usada como referência para encontrar e definir o que é um registro duplicado. Nesse ponto você pode usar mais colunas (com AND) para definir o que é duplicado.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Espero que isso possa ajudá-los! ;-)&lt;br /&gt;
&lt;br /&gt;
Ps.: English version to this post in my blog: &lt;a href="http://netomarin.com/blog/20120303/quick-tip-removing-duplicate-records-from-mysql-database/"&gt;http://netomarin.com/blog/20120303/quick-tip-removing-duplicate-records-from-mysql-database/&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
[]s&lt;/div&gt;
&lt;div&gt;
Neto Marin&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-2770414912105321860?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/uUnUuJYeb20" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/uUnUuJYeb20/dica-rapida-apagando-registros.html</link><author>noreply@blogger.com (Neto Marin)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/03/dica-rapida-apagando-registros.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-1171144885793433544</guid><pubDate>Fri, 02 Mar 2012 19:05:00 +0000</pubDate><atom:updated>2012-03-02T19:29:34.190-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">TV Digital</category><category domain="http://www.blogger.com/atom/ns#">middleware</category><category domain="http://www.blogger.com/atom/ns#">interatividade</category><category domain="http://www.blogger.com/atom/ns#">Ginga</category><category domain="http://www.blogger.com/atom/ns#">Carlos Fernandes Gonçalves</category><title>Oportunidades em 2012 com a Interatividade na TV Digital</title><description>&lt;span style="font-size: small;"&gt;As transmissões de TV Digital&lt;/span&gt; iniciaram no dia 2 de dezembro de 2007 sendo possível assistir além das TVs também  em celulares sem pagar nada a mais para as operadoras de telefonia bastando apenas o celular ser equipado com conversor de TV Digital. Outra vantagem é que possível utilizar interatividade proporcionada pelo Ginga nos celulares.&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style="text-align: justify;"&gt;
Houve por parte das emissoras de TV aberta públicas ou privadas um investimento nas aplicações interativas que são enviadas pelo sinal de TV Digital junto com imagem e som das atrações como  novelas, partidas de futebol, jornais e programas de entretenimento. É possível inclusive realizar transações bancárias por meio do controle remoto de sua TV.&lt;span style="font-size: large;"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-weight: bold;"&gt;Realidade atual&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;
Segundo o Censo 2010 realizado pelo IBGE no Brasil  possui 97% dos lares brasileiros com televisores. Neste momento há por volta de 3,5 milhões de  equipamentos (TVs Digitais e conversor digital) com Ginga.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Existem atualmente diversas aplicações interativas na Rede Globo, Rede Record, SBT, Band e TV Brasil.&lt;/div&gt;
&lt;br /&gt;
LG, Sony, Panasonic, Semp Toshiba e Philips já tem modelos com Ginga/DTVi&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large; font-weight: bold;"&gt;Legislação&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
Foi publicado no último dia 24 de  fevereiro de 2012 portaria estabelecendo cronograma de instalação do  middleware interativo Ginga TVs Digitais através do Processo Produtivo  Básico para o produto TELEVISOR COM TELA DE CRISTAL LÍQUIDO.&lt;br /&gt;
&lt;br /&gt;
O &lt;b&gt;P&lt;/b&gt;rocesso &lt;b&gt;P&lt;/b&gt;rodutivo &lt;b&gt;B&lt;/b&gt;ásico (&lt;b&gt;PPB&lt;/b&gt;),  consiste em estabelecer etapas no processo de fabricação de bens de  informática, telecomunicações e automação, necessárias para as empresas  que se estabeleçam na zona franca de Manaus-AM cumpram tendo como  contrapartida benefícios fiscais.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Observe a portaria.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;PORTARIA INTERMINISTERIAL &lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: small;"&gt;No- 140, DE 23 DE FEVEREIRO DE 2012&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
OS MINISTROS DE ESTADO DO DESENVOLVIMENTO, INDÚSTRIA E COMÉRCIO  EXTERIOR e DA CIÊNCIA, TECNOLOGIA E INOVAÇÃO, no uso das atribuições que  lhes confere o inciso II do parágrafo único do art. 87 da Constituição  Federal, tendo em vista o disposto no § 6o do art. 7o do Decreto-Lei no  288, de 28 de fevereiro de 1967, e considerando o que consta no processo  MDIC no 52000.001749/2002-48, de 29 de janeiro de 2002, resolvem:&lt;br /&gt;
&lt;br /&gt;
Art. 1o A Portaria Interministerial MDIC/MCT no 233, de 16 de  setembro de 2011, que estabelece o Processo Produtivo Básico para o  produto TELEVISOR COM TELA DE CRISTAL LÍQUIDO,&lt;br /&gt;
&lt;br /&gt;
industrializado na Zona Franca de Manaus, fica acrescida do art. 9o  - A, com a seguinte redação: "9o -A Os TELEVISORES COM TELA DE CRISTAL  LÍQUIDO deverão incorporar a capacidade de executar aplicações  interativas radiodifundidas, de acordo com as Normas &lt;span style="font-weight: bold;"&gt;ABNT NBR 15606-1, 15606-2, 15606-3, 15606-4 e 15606-6&lt;/span&gt;, obedecendo ao seguinte cronograma, tomando-se como base a quantidade total produzida nos respectivos períodos:&lt;br /&gt;
&lt;br /&gt;
I - até 30 de junho de 2012: dispensado;&lt;br /&gt;
II - de 1o de julho até 31 de dezembro de 2012: opcional;&lt;br /&gt;
III - de 1o de janeiro até 31 de dezembro de 2013: 75% (setenta e cinco por cento) dos televisores; e&lt;br /&gt;
IV - a partir de 1o de janeiro de 2014: 90% (noventa por cento) dos televisores.&lt;br /&gt;
&lt;br /&gt;
§ 1o Todos os modelos de televisores que disponibilizarem suporte à  conectividade IP e que implementem o middleware interativo deverão  garantir o acesso das aplicações interativas aos canais de comunicação.&lt;br /&gt;
&lt;br /&gt;
§ 2o O número de televisores interativos produzidos no período  definido no inciso II poderá ser descontado, em números absolutos, da  produção requerida para o período definido no inciso III, respeitado um  mínimo de 60% (sessenta por cento) no inciso III.&lt;br /&gt;
&lt;br /&gt;
§ 3o A partir do período definido no inciso III, a obrigação se  aplica à totalidade das TVs que disponibilizem suporte à conectividade  IP, sem prejuízo do percentual total de aparelhos produzidos.&lt;br /&gt;
&lt;br /&gt;
§ 4o O recurso de que trata o caput deste artigo deverá vir instalado, pré-configurado e habilitado de fábrica.&lt;br /&gt;
&lt;br /&gt;
§ 5o Caso os percentuais estabelecidos para os períodos de que  tratam os incisos III e IV do caput deste artigo não sejam alcançados, a  empresa ficará obrigada a cumprir as diferenças residuais em relação ao  percentual mínimo estabelecido, em unidades produzidas, até o término  do período subsequente, sem prejuízo das obrigações correntes de cada  período.&lt;br /&gt;
&lt;br /&gt;
§ 6o A diferença residual a que se refere o § 5o não poderá exceder  a 10% (dez por cento), tomando-se por base a produção do ano em que não  foi possível atingir o limite estabelecido." Art. 2o Esta Portaria  entra em vigor na data de sua publicação.&lt;br /&gt;
&lt;br /&gt;
FERNANDO DAMATA PIMENTEL&lt;br /&gt;
&lt;i&gt;Ministro de Estado do Desenvolvimento, Indústria e Comércio Exterior&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
MARCO ANTONIO RAUPP&lt;br /&gt;
&lt;i&gt;Ministro de Estado da Ciência, Tecnologia e Inovação&lt;/i&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;b&gt;Link oficial&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=1&amp;amp;pagina=2&amp;amp;data=24/02/2012"&gt;http://www.in.gov.br/imprensa/visualiza/index.jsp?jornal=1&amp;amp;pagina=2&amp;amp;data=24/02/2012&lt;/a&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large; font-weight: bold;"&gt;Oportunidades&lt;/span&gt;&lt;br /&gt;
Há oportunidade para os desenvolvedores com o middleware aberto Ginga com ambientes de desenvolvimento como o &lt;a href="http://gingacdn.lavid.ufpb.br/projects/ginga-j"&gt;OpenGinga&lt;/a&gt; e o &lt;a href="https://www.astrodevnet.com.br/AstroDevNet/home.html"&gt;AstroBox&lt;/a&gt; da TOTVS para executar e testar aplicativos.&lt;br /&gt;
Para os desenvolvedores acostumados com as lojas de aplicativos existe a opção do &lt;a href="https://www.stickercenter.com.br/StickerWeb/pt_BR/busca.html?category=0"&gt;StickerCenter&lt;/a&gt; que é uma solução presente nos receptores de TV Digital provida pela TOTVS que permite a exibição, gerenciamento e execução de Stickers.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large; font-weight: bold;"&gt;Quer saber mais?&lt;/span&gt;&lt;br /&gt;
Lista&lt;br /&gt;
&lt;a href="http://java.net/nonav/projects/soujava/lists/tvdigital/archive"&gt;http://java.net/nonav/projects/soujava/lists/tvdigital/archive&lt;/a&gt;&lt;br /&gt;
&lt;span style="color: transparent; font-family: Arial; font-size: small; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;br /&gt;
Para quem estiver interessado no assunto interatividade na TV Digital:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blog.globalcode.com.br/2011/10/informacoes-sobre-tv-digital-interativa.html"&gt;http://blog.globalcode.com.br/2011/10/informacoes-sobre-tv-digital-interativa.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.thedevelopersconference.com.br/tdc/2011/saopaulo/trilha-tvdigital#programacao"&gt;http://www.thedevelopersconference.com.br/tdc/2011/saopaulo/trilha-tvdigital#programacao&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.thedevelopersconference.com.br/tdc/2011/goiania/trilha-tv-digital#programacao"&gt;http://www.thedevelopersconference.com.br/tdc/2011/goiania/trilha-tv-digital#programacao&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.globalcode.com.br/2010/03/ginga-j-interatividade-em-nossa-tv-nao.html"&gt;http://blog.globalcode.com.br/2010/03/ginga-j-interatividade-em-nossa-tv-nao.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.globalcode.com.br/2010/09/sistema-interativo-de-tv-digital-com.html"&gt;http://blog.globalcode.com.br/2010/09/sistema-interativo-de-tv-digital-com.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.globalcode.com.br/2011/10/tv-digital-interativa-perspectiva-de-um.html"&gt;http://blog.globalcode.com.br/2011/10/tv-digital-interativa-perspectiva-de-um.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
“O valor do televisor é percebido pelo número de conteúdos que ele tem. Hoje, o desafio está no software e não no hardware.”&lt;br /&gt;
&lt;i&gt;Carlos Goya-Gerente de relações institucionais da Sony,&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Carlos Fernando Gonçalves&lt;br /&gt;
&lt;b&gt;&lt;i&gt;JUG Leader Java Noroeste&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://www.javanoroeste.com.br/"&gt;http://www.javanoroeste.com.br&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://twitter.com/javanoroeste"&gt;http://twitter.com/javanoroeste&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.twitter.com/mercuriocfg"&gt;http://www.twitter.com/mercuriocfg&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-1171144885793433544?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/UT8cy74wGVA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/UT8cy74wGVA/oportunidades-em-2012-com.html</link><author>noreply@blogger.com (jornadacfg)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/02/oportunidades-em-2012-com.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-5951916913779922605</guid><pubDate>Wed, 29 Feb 2012 12:00:00 +0000</pubDate><atom:updated>2012-02-29T09:57:30.016-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">JSON</category><category domain="http://www.blogger.com/atom/ns#">Neto Marin</category><category domain="http://www.blogger.com/atom/ns#">Gson</category><category domain="http://www.blogger.com/atom/ns#">google</category><category domain="http://www.blogger.com/atom/ns#">android</category><title>JSON fácil em Java com GSon !</title><description>Ola pessoal !&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-ZnXJ_l4T4CY/T02MnBa7raI/AAAAAAAAA3o/wkMR-0NSQyE/s1600/jsonlogo.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-ZnXJ_l4T4CY/T02MnBa7raI/AAAAAAAAA3o/wkMR-0NSQyE/s1600/jsonlogo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;
O formato &lt;a href="http://pt.wikipedia.org/wiki/JSON" target="_blank"&gt;JSON&lt;/a&gt; (&lt;b&gt;J&lt;/b&gt;ava&lt;b&gt;S&lt;/b&gt;cript &lt;b&gt;O&lt;/b&gt;bject &lt;b&gt;N&lt;/b&gt;otation) vem se consagrando cada vez mais na comunicação de dados, principalmente nos dispositivos móveis devido a esse formato ser mais leve que o XML e também mais legível.&lt;br /&gt;
Uma prova disso são as inúmeras bibliotecas que existem para manipular esse formato, e no caso do Android, o suporte ao JSON é nativo. Mas apesar de ter esse suporte nativo, algumas operações devem ser feitas manualmente e o código acaba ficando um pouco verboso e repetitivo, já que para cada objeto que se deseja transmitir é necessário fazer um método que lê as propriedades do JSON e faz as devidas atribuições no seu objeto Java.&lt;br /&gt;
&lt;br /&gt;
Vamos supor o seguinte objeto sendo transmitido em JSON:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; user: {&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; id: 123456,&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; name: "Neto Marin",&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; username: "netomarin",&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; email: "netomarin@globalcode.com.br"&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Se você fosse tratar um Webservice que envia esse JSON para o seu aplicativo Android, além de criar a o Java Bean desse objeto, a classe User por exemplo, você também precisaria programar &amp;nbsp;um método em algum controller &amp;nbsp;(ou em uma classe qualquer) para carregar o bean com os dados que vieram pelo JSON, por exemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="s1"&gt;public&lt;/span&gt; User loadUserFromJSON(String jsonString) {&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span"&gt; &lt;/span&gt;User user = &lt;span class="s1"&gt;new&lt;/span&gt; User();&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="s1"&gt;try&lt;/span&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JSONObject userObject = &lt;span class="s1"&gt;new&lt;/span&gt; JSONObject(jsonString);&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; user.setId(userObject.getInt(&lt;span class="s2"&gt;"id"&lt;/span&gt;));&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; user.setName(userObject.getString(&lt;span class="s2"&gt;"name"&lt;/span&gt;));&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; user.setUsername(userObject.getString(&lt;span class="s2"&gt;"username"&lt;/span&gt;));&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; user.setEmail(userObject.getString(&lt;span class="s2"&gt;"email"&lt;/span&gt;));&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; } &lt;span class="s1"&gt;catch&lt;/span&gt; (JSONException e) {&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; e.printStackTrace();&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="s1"&gt;return&lt;/span&gt; user;&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
E assim teria que fazer para cada objeto que você quisesse receber via JSON. Sem falar nas atualizações que teria que fazer em caso de mudança do objeto ou problemas que poderia ter com erros ou trocas nos nomes das propriedades.&lt;/div&gt;
&lt;div class="p1"&gt;
Além do parser para carregar uma instância de User a partir de um JSON, caso você precise enviar o mesmo JSON para o servidor, teria que ter um método para converter o seu bean em uma String no formato, e então, teria um método parecido com isso:&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="s1"&gt;public&lt;/span&gt; String userToJSON(User user) {&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span"&gt; &lt;/span&gt;JSONObject object = &lt;span class="s1"&gt;new&lt;/span&gt; JSONObject();&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="s1"&gt;try&lt;/span&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object.put(&lt;span class="s2"&gt;"id"&lt;/span&gt;, user.getId());&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object.put(&lt;span class="s2"&gt;"name"&lt;/span&gt;, user.getName());&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object.put(&lt;span class="s2"&gt;"username"&lt;/span&gt;, user.getUsername());&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; object.put(&lt;span class="s2"&gt;"email"&lt;/span&gt;, user.getEmail());&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; } &lt;span class="s1"&gt;catch&lt;/span&gt; (JSONException e) {&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; e.printStackTrace();&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="s1"&gt;return&lt;/span&gt; object.toString();&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;b&gt;Apresentando, Gson !&lt;/b&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
Então, pra dar uma ajuda nessa tarefa toda, o pessoal do Google criou o &lt;a href="http://code.google.com/p/google-gson/" target="_blank"&gt;projeto Gson&lt;/a&gt;, que tem como principais objetivos:&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Prover uma interface simples para ler e exportar no formato JSON.&lt;/li&gt;
&lt;li&gt;Permitir que objetos pré-existentes e que não possam ser alterados sejam convertidos para e partir de JSON.&lt;/li&gt;
&lt;li&gt;Suporte ao generics do Java.&lt;/li&gt;
&lt;li&gt;Representação customizada de objetos.&lt;/li&gt;
&lt;li&gt;Suporte a tipos complexos de objetos.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Dessa forma, a promessa do Gson é que com apenas poucas linhas você consiga gerar objetos a partir de uma String JSON. A conversão do objeto user que foi demonstrado acima, se for utilizar Gson, ficaria assim:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="s1"&gt;public&lt;/span&gt; User loadUserFromJSONGson(String jsonString) {&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span"&gt; &lt;/span&gt;Gson gson = &lt;span class="s1"&gt;new&lt;/span&gt; Gson();&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span"&gt; &lt;/span&gt;User user = gson.fromJson(jsonString, User.&lt;span class="s1"&gt;class&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="s1"&gt;return&lt;/span&gt; user;&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bem mais fácil não? E na hora de enviar essa classe User para o servidor, seria tão simples assim? Vejamos:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;//&lt;span class="s1"&gt;criação&lt;/span&gt; do &lt;span class="s1"&gt;objeto&lt;/span&gt; &lt;span class="s1"&gt;para&lt;/span&gt; &lt;span class="s1"&gt;demonstrar&lt;/span&gt;...&lt;/span&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;User user = &lt;span class="s2"&gt;new&lt;/span&gt; User();&lt;/span&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;user.setId(123);&lt;/span&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;user.setName(&lt;span class="s3"&gt;"João da Silva"&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div class="p3"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="s4"&gt;user.setEmail(&lt;/span&gt;"joaodasilva@mail.com"&lt;span class="s4"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;user.setUsername(&lt;span class="s3"&gt;"joaosilva"&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div class="p4"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="s1"&gt;//código&lt;/span&gt; &lt;span class="s1"&gt;que&lt;/span&gt; &lt;span class="s1"&gt;faz&lt;/span&gt; o &lt;span class="s1"&gt;trabalho&lt;/span&gt; ;-)&lt;/span&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;Gson gson = &lt;span class="s2"&gt;new&lt;/span&gt; Gson();&lt;/span&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;String userJSONString = gson.toJson(user);&lt;/span&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="p4"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;//Para ver o resultado no Logcat &amp;nbsp; &amp;nbsp;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;Log.d(&lt;span class="s3"&gt;"Gson"&lt;/span&gt;, &lt;span class="s3"&gt;"user JSON String: "&lt;/span&gt;+userJSONString);&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Mas é só isso ?!?!&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Claro que não ! O próprio formato JSON tem uma série de particularidades e também limites. E a biblioteca Gson está em desenvolvimento, e é claro, também tem as suas limitações. Por isso, visite o site do projeto e também o &lt;a href="https://sites.google.com/site/gson/gson-user-guide" target="_blank"&gt;Gson User Guide&lt;/a&gt; que conta com diversos exemplos mais avançados, envolvendo objetos complexos, arrays e generics!&lt;/div&gt;
&lt;br /&gt;
Esse exemplo que apresentei serve para mostrar a simplicidade da idéia, e que será o suficiente caso você apenas receba e envie objetos simples. Boa sorte! ;-)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Da pra usar com projetos Android?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Sim, basta fazer o &lt;a href="http://code.google.com/p/google-gson/downloads/list" target="_blank"&gt;download do zip da biblioteca&lt;/a&gt;, descompactar e copiar o JAR para a pasta libs do seu projeto Android (caso não tenha a pasta, basta criar...). Depois, no Eclipse, clique com o botão direito em cima do JAR e selecione a opção Build Path --&amp;gt; Add to Build Pah e pronto, você já pode usar normalmente no seu projeto!&lt;br /&gt;
&lt;br /&gt;
Abraços&lt;br /&gt;
Neto Marin&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-5951916913779922605?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/VDkATl3s7Qc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/VDkATl3s7Qc/json-facil-em-java-com-gson.html</link><author>noreply@blogger.com (Neto Marin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-ZnXJ_l4T4CY/T02MnBa7raI/AAAAAAAAA3o/wkMR-0NSQyE/s72-c/jsonlogo.gif" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/02/json-facil-em-java-com-gson.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-4755133227570357491</guid><pubDate>Tue, 14 Feb 2012 10:36:00 +0000</pubDate><atom:updated>2012-02-14T08:36:49.483-02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">jcranky</category><category domain="http://www.blogger.com/atom/ns#">import</category><category domain="http://www.blogger.com/atom/ns#">scala</category><category domain="http://www.blogger.com/atom/ns#">Academia Java</category><title>Instruções import em Scala</title><description>Fazem 2 ou 3 anos que comecei a escrever sobre Scala &lt;a href="http://jcranky.com/"&gt;no meu blog&lt;/a&gt;. Mas lá, escrevo em inglês. Para facilitar a vida dos desenvolvedores brasileiros, vou começar a traduzir alguns posts e publicar aqui.&lt;br /&gt;&lt;br /&gt;O primeiro deles é bem simples: trata-se de uma comparação entre instruções import em java e scala. Então, vamos lá.&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Instruções import em Scala&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Mais um baby step em Scala, neste segundo de uma série de posts. Instruções import.&lt;/p&gt; &lt;p&gt;As instruções import de Scala são muito similares às do Java, mas com algumas pequenas diferenças que nos permitem escrever código mais conciso. Dê uma olhada nos exemplos a seguir:&lt;/p&gt; &lt;h3&gt;1. _ ao invés de *&lt;/h3&gt; &lt;p&gt;&lt;strong&gt;Java:&lt;/strong&gt;&lt;/p&gt; &lt;div class="syntaxhighlighter  " id="highlighter_577611"&gt;&lt;div class="lines"&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword"&gt;import&lt;/code&gt; &lt;code class="plain"&gt;java.util.*;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;strong&gt;Scala: &lt;/strong&gt;&lt;/p&gt; &lt;div class="syntaxhighlighter  " id="highlighter_171635"&gt;&lt;div class="lines"&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword"&gt;import&lt;/code&gt; &lt;code class="plain"&gt;scala.util._&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;h3&gt;2. Importando multiplas classes do mesmo pacote&lt;/h3&gt; &lt;p&gt;&lt;strong&gt;Java:&lt;/strong&gt;&lt;/p&gt; &lt;div class="syntaxhighlighter  " id="highlighter_286554"&gt;&lt;div class="lines"&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword"&gt;import&lt;/code&gt; &lt;code class="plain"&gt;java.util.Date;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="line alt2"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword"&gt;import&lt;/code&gt; &lt;code class="plain"&gt;java.util.Collection;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword"&gt;import&lt;/code&gt; &lt;code class="plain"&gt;java.util.List;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;strong&gt;Scala: &lt;/strong&gt;&lt;/p&gt; &lt;div class="syntaxhighlighter  " id="highlighter_453958"&gt;&lt;div class="lines"&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword"&gt;import&lt;/code&gt; &lt;code class="plain"&gt;java.util.{Date, Collection, List}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;h3&gt;3. Renaming&lt;/h3&gt; &lt;p&gt;&lt;strong&gt;Java:&lt;/strong&gt;&lt;/p&gt; &lt;div class="syntaxhighlighter  " id="highlighter_583159"&gt;&lt;div class="lines"&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="comments"&gt;// can't be done&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;&lt;strong&gt;Scala: &lt;/strong&gt;&lt;/p&gt; &lt;div class="syntaxhighlighter  " id="highlighter_573938"&gt;&lt;div class="lines"&gt;&lt;div class="line alt1"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td class="content"&gt;&lt;code class="keyword"&gt;import&lt;/code&gt; &lt;code class="plain"&gt;java.util.{Collection =&amp;gt; JavaCollection}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Embora eu tenha usado classes Java em quase todos os exemplos, você pode é claro usar a mesma sintaxe para todas as classes Scala também.&lt;/p&gt; &lt;p&gt;Isso é tudo por enquanto! O que você quer ler sobre Scala a seguir? Deixe um comentário!&lt;/p&gt;---&lt;br /&gt;&lt;br /&gt;Para quem interessar, &lt;a href="http://jcranky.com/2009/08/18/import-statements-in-scala/"&gt;a versão original em inglês pode ser encontrada aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;[]s,&lt;br /&gt;Paulo "JCranky" Siqueira&lt;br /&gt;http://www.twitter.com/jcranky&lt;br /&gt;http://jcranky.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-4755133227570357491?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/MePLlmytfFs" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/MePLlmytfFs/instrucoes-import-em-scala.html</link><author>noreply@blogger.com (Paulo "jcranky" Siqueira)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/02/instrucoes-import-em-scala.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-1012571761222933817</guid><pubDate>Mon, 13 Feb 2012 00:07:00 +0000</pubDate><atom:updated>2012-02-12T22:07:58.312-02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Yara</category><category domain="http://www.blogger.com/atom/ns#">Eventos</category><category domain="http://www.blogger.com/atom/ns#">JFokus</category><title>JFokus - Pré evento</title><description>Chegamos aqui na Suécia ontem. Esta frio, mas não tanto quanto pensamos! Ainda tem neve nas praças, na beirada das ruas, em cima de alguns carros e até uns blocos de gelo congelados sendo arrastados na água.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.jfokus.se/images/waterfront340x202.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="189" src="http://www.jfokus.se/images/waterfront340x202.jpg" width="320" /&gt;&lt;/a&gt;Os organizadores do evento estão oferecendo um suporte sensacional para os palestrantes. Instruções detalhadas sobre a chegada do aeroporto, jantar de palestrantes, café da manhã das mulheres. O centro de convenções é integrado ao nosso hotel, ou seja, não precisamos sair no frio! "&lt;i&gt;Inpagável&lt;/i&gt;".&lt;br /&gt;
&lt;br /&gt;
O Vinicius, como sempre, ficou o dia todo trabalhando e&amp;nbsp; melhorando e testando o JHome e os slides. Enquanto isto, eu fui passear no city-tour e percebi que a expectativa esta alta em relação a palestra do jHome! &lt;br /&gt;
&lt;br /&gt;
O Roger Brinkley também participou e conversamos sobre o Java Spotlight Podcast que vai ser gravado ao vivo aqui no JFokus, nós vamos ter a honra de participar mais uma vez.&lt;br /&gt;
&lt;br /&gt;
Conversei bastante com o Java Champion Mattias Karlsson, o city tour encerrado em um café onde comemos um torta de raspeberry maravilhosa acompanhada de um chocolate quente, perfeitos para temperatura de -2 graus e conheci várias pessoas bacanas: &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Helena Hjertén, Mejsla AB (organizadora do evento)&lt;/li&gt;
&lt;li&gt;Chris Richardson, fundador do CloudFoundry&lt;/li&gt;
&lt;li&gt;David Chandler, Google&lt;/li&gt;
&lt;li&gt;Cliff Click, Azul Systems&lt;/li&gt;
&lt;/ul&gt;
A noite tivemos um jantar sensacional com os amigos Sharat Chander, Roger Brinkley, Fabiane Nardon e com Chris Richardson e foram duas horas de ótima conversa e uma comida sem comentários.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;b&gt;Será que vale a pena participar de eventos ?&amp;nbsp; &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: small;"&gt;Com certeza vale cada minuto, cada conversa, cada palestra. É uma imersão&lt;/span&gt;. Eu recomendo que todos participem, perguntem, respondam, escutem e falem! A interação é fundamental para o aprendizado e para a carreira.&lt;br /&gt;
Tem milhares de oportunidades em todo lugar toda hora, na sua cidade, no seu estado, em outra cidade, ou outro país, falta somente achar a sua!&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Vivendo e aprendendo.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Tudo de bom até agora neste evento. E com certeza muita coisa boa pra levar pro The Developer's Conference 2012.&lt;br /&gt;
&lt;br /&gt;
Thank you Mattias and all the team! And I would like to also say thank you sponsors! &lt;br /&gt;
[]s&lt;br /&gt;
Yara&lt;br /&gt;
&lt;a href="http://twitter.com/yarasenger"&gt;http://twitter.com/yarasenger&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
PS: Quer saber sobre as palestras do JFokus ? Veja os vídeos preparados pelos palestrantes:&lt;br /&gt;
&lt;a href="http://www.youtube.com/watch?v=GcrmxGYhf0U&amp;amp;feature=player_embedded"&gt;Palestra Fabiane Nardon&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.youtube.com/watch?v=1rHFfFCBk0I&amp;amp;feature=player_embedded"&gt;Palestra Vinicius e Yara Senger&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-1012571761222933817?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/934ieGKh-Rc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/934ieGKh-Rc/jfokus-pre-evento.html</link><author>noreply@blogger.com (Yara Senger)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/02/jfokus-pre-evento.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-1268106240477885958</guid><pubDate>Wed, 01 Feb 2012 13:34:00 +0000</pubDate><atom:updated>2012-02-01T11:34:23.827-02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java ME</category><category domain="http://www.blogger.com/atom/ns#">mobile</category><category domain="http://www.blogger.com/atom/ns#">Nokia</category><category domain="http://www.blogger.com/atom/ns#">ios</category><category domain="http://www.blogger.com/atom/ns#">Neto Marin</category><category domain="http://www.blogger.com/atom/ns#">Academia Android</category><category domain="http://www.blogger.com/atom/ns#">webapp</category><category domain="http://www.blogger.com/atom/ns#">android</category><title>Pacotão de slides dos minicursos de mobile</title><description>Ola pessoal !&lt;br /&gt;
&lt;br /&gt;
A algum tempo já criamos vários minicursos com foco em mobile, mas por diversos motivos deixamos na época de colocar esse material disponível logo após o término do minicurso. E como agora o tema vem ganhando cada vez mais força, ainda mais com o lançamento da &lt;a href="http://globalcode.com.br/treinamentos/carreiras/academia-android" target="_blank"&gt;Academia Android&lt;/a&gt;, tirei alguns minutos para subir todos os slides para vocês!&lt;br /&gt;
&lt;br /&gt;
Veja abaixo a lista dos minicursos que estão com o PDF dos slides disponíveis:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://globalcode.com.br/gratuitos/minicursos/minicurso-desenvolvimento-movel-porque-o-mundo-esta-em-movimento" target="_blank"&gt;MC71 - Desenvolvimento móvel - Porque o mundo está em movimento!&lt;/a&gt;: Minicurso com uma introdução geral ao desenvolvimento para dispositivos móveis e com um pequeno comparativo entre as principais plataformas móveis (na época da criação do mc).&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://globalcode.com.br/gratuitos/minicursos/minicurso-introducao-ao-android" target="_blank"&gt;MC80 - Introdução ao Android&lt;/a&gt;: Conteúdo voltado para quem quer começar a desenvolver para o Android mas não tem conhecimento nenhum a respeito da plataforma.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://globalcode.com.br/gratuitos/minicursos/minicurso-comecando-desenvolvimento-para-ios" target="_blank"&gt;MC106 - Começando o desenvolvimento para iOS&lt;/a&gt;: Minicurso criado para quem quer começar a desenvolver para a plataforma da Apple e não tem experiência com o iOS.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://globalcode.com.br/gratuitos/minicursos/minicurso-desenvolvimento-de-aplicacoes-moveis-com-javaME" target="_blank"&gt;MC113 - Desenvolvimento de aplicações móveis com Java ME&lt;/a&gt;: A plataforma Java continua sendo uma opção para quem quer desenvolver aplicações móveis para telefones mais baratos e populares. Esse minicurso mostra os fundamentos do desenvolvimento para Java ME e algumas APIs avançadas da Nokia.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://globalcode.com.br/gratuitos/minicursos/minicurso-criando-webapps-para-nokia-s40" target="_blank"&gt;MC114 - Criando Webapps para Nokia S40&lt;/a&gt;: Uma alternativa para o desenvolvimento de aplicações móveis são os webapps, pequenas aplicações criadas usando tecnologia Web. Ou seja, com JavaScript, CSS e HTML também é possível se criar ótimas aplicações mobile.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://globalcode.com.br/gratuitos/minicursos/minicurso-persistencia-de-dados-em-aplicacoes-android" target="_blank"&gt;MC116 - Persistência de dados em aplicações Android&lt;/a&gt;: Esse minicurso foi originalmente criado como uma palestra para o AndroidConf em 2011, mas como o tempo era restrito, resolvemos criar esse material que explica com mais calma as principais formas de se persistir dados na plataforma Android.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
O material é gratuito, basta que você tenha um cadastro na nossa página (que também é gratuito) e então você poderá baixar o material de qualquer minicurso que esteja disponível. E se você gostou dos nossos materiais de Android, aproveite e visite a página da &lt;a href="http://globalcode.com.br/treinamentos/carreiras/academia-android" target="_blank"&gt;Academia Android&lt;/a&gt; e conheça esse novo lançamento! Já temos turmas abertas em São Paulo e Campinas, reserve sua vaga!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Abraços&lt;/div&gt;
&lt;div&gt;
Neto&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-1268106240477885958?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/VEo2b2eeTQ8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/VEo2b2eeTQ8/pacotao-de-slides-dos-minicursos-de.html</link><author>noreply@blogger.com (Neto Marin)</author><thr:total>3</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/02/pacotao-de-slides-dos-minicursos-de.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-114289635608710918</guid><pubDate>Tue, 31 Jan 2012 13:46:00 +0000</pubDate><atom:updated>2012-02-29T19:34:10.056-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">MarceloCastro</category><category domain="http://www.blogger.com/atom/ns#">Eventos</category><category domain="http://www.blogger.com/atom/ns#">SouJava</category><category domain="http://www.blogger.com/atom/ns#">JustJava</category><category domain="http://www.blogger.com/atom/ns#">UnidadeAlphaville</category><title>JustJava 2012: Chamada de Trabalhos</title><description>&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-I6MeebPYUxo/TyfwCU44coI/AAAAAAAACZY/O_m311tK0Jw/s1600/marca-soujava.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="108" src="http://1.bp.blogspot.com/-I6MeebPYUxo/TyfwCU44coI/AAAAAAAACZY/O_m311tK0Jw/s200/marca-soujava.jpg" width="200" /&gt;&lt;/a&gt;Desde 2000, o JustJava se destaca como&amp;nbsp;o principal evento independente sobre a tecnologia Java no Brasil. Organizado pela Sociedade de Usuários da Tecnologia Java, SouJava, com a realização da Sociedade de Usuários de Informática e Telecomunicações – Sucesu-SP,&amp;nbsp;traz sempre os últimos acontecimentos e tendências da tecnologia Java.&lt;br /&gt;
&lt;br /&gt;
Este ano o JustJava será&amp;nbsp;realizado nos dias 18 e 19 de maio e as&amp;nbsp;submissões estão abertas até &lt;b&gt;&lt;strike&gt;29 de fevereiro&lt;/strike&gt; 7 de março (&lt;span style="color: red;"&gt;&lt;a href="http://soujava.org.br/2012/02/29/prorrogadocfpjustjava201/"&gt;anúncio da prorrogação no SouJava.org&lt;/a&gt;&lt;/span&gt;)&lt;/b&gt;, aceite o convite do SouJava, contribua com o&amp;nbsp;&lt;a href="http://soujava.org.br/eventos/justjava-2012/"&gt;JustJava 2012&lt;/a&gt;, e fazendo submissões que&amp;nbsp;podem ser para realização de palestra, debate ou mini palestras nos macro temas: Core Java, Enterprise Java, Mobile, Casos de sucesso e outros assuntos ligados a Plataforma Java.&lt;br /&gt;
&lt;br /&gt;
Mais detalhes na página da &lt;a href="http://soujava.org.br/eventos/justjava-2012/cfp/"&gt;chamada de trabalhos do JustJava2012&lt;/a&gt;&amp;nbsp;no &lt;a href="http://soujava.org.br/"&gt;SouJava.org.br&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Confira a participação da Globalcode no JustJava 2011:&lt;br /&gt;
&lt;a href="http://globalcode.com.br/noticias/JustJava2011"&gt;http://globalcode.com.br/noticias/JustJava2011&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
Parafraseando a Yara, &lt;i&gt;"participe, colabore, compartilhe seu conhecimento"&lt;/i&gt;!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Até mais!&lt;br /&gt;
Marcelo de Castro&lt;br /&gt;
&lt;a href="http://blog.castro.eti.br/"&gt;http://blog.castro.eti.br&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://twitter.com/mcastroinfo"&gt;http://twitter.com/mcastroinfo&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.globalcode.com.br/instrutores/MarceloCastro"&gt;http://www.globalcode.com.br/instrutores/MarceloCastro&lt;/a&gt;&lt;br /&gt;
Outros posts:&amp;nbsp;&lt;a href="http://blog.globalcode.com.br/search/label/MarceloCastro"&gt;http://blog.globalcode.com.br/search/label/MarceloCastro&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-114289635608710918?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/NP9nCXz6hPQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/NP9nCXz6hPQ/justjava-2012-chamada-de-trabalhos.html</link><author>noreply@blogger.com (Marcelo Castro)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-I6MeebPYUxo/TyfwCU44coI/AAAAAAAACZY/O_m311tK0Jw/s72-c/marca-soujava.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/01/justjava-2012-chamada-de-trabalhos.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-4040159284130462044</guid><pubDate>Mon, 30 Jan 2012 18:28:00 +0000</pubDate><atom:updated>2012-01-30T16:28:54.990-02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">mobile</category><category domain="http://www.blogger.com/atom/ns#">Neto Marin</category><category domain="http://www.blogger.com/atom/ns#">Academia Android</category><category domain="http://www.blogger.com/atom/ns#">android</category><title>Conheça melhor a Academia Android e veja o porque de fazer esse curso!</title><description>Ola pessoal,&lt;br /&gt;
&lt;br /&gt;
E está chegando a hora hein! A primeira turma da Academia Android começa no dia 4 de fevereiro e as vagas estão acabando! Mas se você ainda tem alguma dúvida sobre os módulos, a respeito do que vamos falar em cada um deles, ou ainda está em dúvida se vale a pena fazer realmente a Academia Android, assista os dois videos abaixo que preparamos para você.&lt;br /&gt;
&lt;br /&gt;
Nesses videos vocês vão ver alguns motivos e números mostrando o potencial desse mercado, e no outro video, uma pequena explicação de cada módulo! Aproveite!&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="225" mozallowfullscreen="" src="http://player.vimeo.com/video/35900597?color=ff9933" webkitallowfullscreen="" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;
Porque fazer a Academia Android? from &lt;a href="http://vimeo.com/globalcode"&gt;Globalcode&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;
Gostaria de investir e fazer o curso da Academia Android, mas ainda está em dúvida se vale a pena investir nesse mercado? Preparamos esse video para que você conheça alguns números interessantes desse mercado!&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="225" mozallowfullscreen="" src="http://player.vimeo.com/video/35899609?color=ff9933" webkitallowfullscreen="" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;
Conhecendo a Academia Android from &lt;a href="http://vimeo.com/globalcode"&gt;Globalcode&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;
Conheça melhor a nova carreira que a Globalcode está oferecendo, a Academia Android. Video com o criador do curso, Neto Marin, falando sobre cada módulo do curso.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-4040159284130462044?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/kz9CkffI17Q" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/kz9CkffI17Q/conheca-melhor-academia-android-e-veja.html</link><author>noreply@blogger.com (Neto Marin)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/01/conheca-melhor-academia-android-e-veja.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6620292438838166571.post-3685444801339960676</guid><pubDate>Fri, 27 Jan 2012 14:27:00 +0000</pubDate><atom:updated>2012-01-27T15:23:04.830-02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Yara</category><category domain="http://www.blogger.com/atom/ns#">mobile</category><category domain="http://www.blogger.com/atom/ns#">Eventos</category><category domain="http://www.blogger.com/atom/ns#">Entrevistas TDC2011</category><category domain="http://www.blogger.com/atom/ns#">Neto Marin</category><category domain="http://www.blogger.com/atom/ns#">mobilidade</category><category domain="http://www.blogger.com/atom/ns#">TDC2011</category><title>Entrevista com Neto Marin sobre Trilhas Mobile no TDC2011 e 2012</title><description>Já começamos a trabalhar no &lt;b&gt;The Developer's Conference 2012&lt;/b&gt; que será realizado em São Paulo nos dias&lt;b&gt; 4 a 8 de julho na Universidade Anhembi Morumb&lt;/b&gt;i!&lt;br /&gt;
&lt;br /&gt;
Claro, que o TDC2012 já começou a ser planejado faz tempo, veja um bate-papo rápido com Neto Marin, coordenador das trilhas Android e Mobile e autor do último lançamento da Globalcode, a &lt;a href="http://www.globalcode.com.br/treinamentos/carreiras/academia-android%20"&gt;Academia Android&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="300" mozallowfullscreen="" src="http://player.vimeo.com/video/35216181?color=ff9933" webkitallowfullscreen="" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;a href="http://vimeo.com/35216181"&gt;TDC2011 Entrevista Neto Marin&lt;/a&gt; from &lt;a href="http://vimeo.com/globalcode"&gt;Globalcode&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
E você, o que acha ? Participe, colabore, divulgue esta iniciativa!&lt;br /&gt;
&lt;br /&gt;
&lt;script src="http://twtpoll.com/js/ibadge.js" type="text/javascript"&gt;
&lt;/script&gt;
&lt;iframe frameborder="0" height="400" id="twpw_if" name="twpw_if" onload="TwtpwFm.registerFrame(this);" scrolling="no" src="http://twtpoll.com/badge/if/?twt=6cggsr&amp;amp;b=1" width="100%"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;p&amp;amp;amp;amp;amp;amp;gt;Your browser doesn't support iFrames :( Vote for this poll &amp;amp;amp;amp;amp;amp;amp;amp;lt;a href="http://twtpoll.com/6cggsr"  title="here" target="_blank"&amp;amp;amp;amp;amp;amp;amp;amp;gt;here&amp;amp;amp;amp;amp;amp;amp;amp;lt;/a&amp;amp;amp;amp;amp;amp;amp;amp;gt;.&amp;amp;amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt;
&lt;br /&gt;
É isso ai pessoal, logo logo tem mais entrevistas!&lt;br /&gt;
E pra quem gostou vale a pena conferir &lt;a href="http://blog.globalcode.com.br/search/label/Entrevistas%20TDC2011"&gt;muitas outras &lt;/a&gt;entrevistas realizadas durante o evento!&lt;br /&gt;
&lt;br /&gt;
Assista também mais de 30 &lt;a href="http://www.thedevelopersconference.com.br/tdc/2011/saopaulo/videos/"&gt;palestras gravadas nas trilhas Stadium do TDC2011 São Paulo&lt;/a&gt;!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
É isso ai pessoal,&lt;br /&gt;
&lt;br /&gt;
Yara Senger&lt;br /&gt;
&lt;a href="http://twitter.com/yarasenger"&gt;http://twitter.com/yarasenger&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://twitter.com/TheDevConf"&gt;http://twitter.com/TheDevConf&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://facebook.com/TheDevelopersConference"&gt;http://facebook.com/TheDevelopersConference&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6620292438838166571-3685444801339960676?l=blog.globalcode.com.br' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Globalcoders/~4/QjpRrk7Z-L0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/Globalcoders/~3/QjpRrk7Z-L0/entrevista-com-neto-marin-sobre-trilhas.html</link><author>noreply@blogger.com (Yara Senger)</author><thr:total>0</thr:total><feedburner:origLink>http://blog.globalcode.com.br/2012/01/entrevista-com-neto-marin-sobre-trilhas.html</feedburner:origLink></item></channel></rss>

