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

<channel>
	<title>Zona J &#187; java</title>
	<atom:link href="http://zonaj.org/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://zonaj.org</link>
	<description>Zona Java - Um blog português sobre java.</description>
	<lastBuildDate>Sun, 29 Jun 2014 18:29:19 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.41</generator>
	<item>
		<title>Apresentação JavaPT09</title>
		<link>http://zonaj.org/2009/09/17/apresentacao-javapt09/</link>
		<comments>http://zonaj.org/2009/09/17/apresentacao-javapt09/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 20:39:43 +0000</pubDate>
		<dc:creator><![CDATA[Ruben Badaró]]></dc:creator>
				<category><![CDATA[jug]]></category>
		<category><![CDATA[escalabilidade]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Multi-core]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=243</guid>
		<description><![CDATA[Decorreu no dia de hoje o JavaPT09, na Universidade do Minho. Entre outras apresentações, fiz uma intitulada &#8220;Writing Scalable Software in Java &#8211; from multi-core to grid-computing&#8221;. Writing Scalable Software in Java View more presentations from rbadaro.]]></description>
				<content:encoded><![CDATA[<p>Decorreu no dia de hoje o JavaPT09, na Universidade do Minho.</p>
<p>Entre outras apresentações, fiz uma intitulada &#8220;Writing Scalable Software in Java &#8211; from multi-core to grid-computing&#8221;.<br />
<a style="font: 14px Helvetica,Arial,Sans-serif; display: block; margin: 12px 0 3px 0; text-decoration: underline;" title="Writing Scalable Software in Java" href="http://www.slideshare.net/rbadaro/writing-scalable-software-in-java">Writing Scalable Software in Java</a><object style="margin: 0px;" width="425" height="355" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=javapt09-090917150715-phpapp01&amp;stripped_title=writing-scalable-software-in-java" /><param name="allowfullscreen" value="true" /><embed style="margin:0px" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=javapt09-090917150715-phpapp01&amp;stripped_title=writing-scalable-software-in-java" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration: underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration: underline;" href="http://www.slideshare.net/rbadaro">rbadaro</a>.</div>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/e1bfa6db-4f2c-4457-9946-5dbe1318bead/"><img class="zemanta-pixie-img" style="float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=e1bfa6db-4f2c-4457-9946-5dbe1318bead" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://zonaj.org/2009/09/17/apresentacao-javapt09/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>10 (+1) livros essenciais para o programador Java</title>
		<link>http://zonaj.org/2009/05/03/10-1-livros-essenciais-para-o-programador-java/</link>
		<comments>http://zonaj.org/2009/05/03/10-1-livros-essenciais-para-o-programador-java/#comments</comments>
		<pubDate>Sun, 03 May 2009 07:00:32 +0000</pubDate>
		<dc:creator><![CDATA[Ruben Badaró]]></dc:creator>
				<category><![CDATA[livro]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[essenciais]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=217</guid>
		<description><![CDATA[Hoje em dia torna-se difícil conseguir acompanhar todas as evoluções tecnológicas. Mesmo reduzindo o espaço de procura a apenas temas relacionado com a nossa área &#8211; suponhamos Java e ciência da computação &#8211; as novas frameworks, ferramentas, papers e notícias obrigam a atenção contínua. Eu pessoalmente tenho cada vez mais dificuldade em reservar tempo para &#8230; <a href="http://zonaj.org/2009/05/03/10-1-livros-essenciais-para-o-programador-java/" class="more-link">Continue reading <span class="screen-reader-text">10 (+1) livros essenciais para o programador Java</span></a>]]></description>
				<content:encoded><![CDATA[<p>
Hoje em dia torna-se difícil conseguir acompanhar todas as evoluções tecnológicas. Mesmo reduzindo o espaço de procura a apenas temas relacionado com a nossa área &#8211; suponhamos Java e ciência da computação &#8211; as novas frameworks, ferramentas, papers e notícias obrigam a atenção contínua. Eu pessoalmente tenho cada vez mais dificuldade em reservar tempo para ler as feeds RSS ou tentar ler o que as várias pessoas que sigo partilham no Twitter.</p>
<p>No entanto, também são necessários os conceitos base. Fora o ensino superior e certificações, livros são um recurso essencial que me parecem que hoje em dia muita gente despreza. E estou a falar daqueles em papel, não dos pdfs que se sacam da net.</p>
<p>Foi com esta ideia que decidi juntar uma lista de 10 livros que considero essenciais para um programador Java &#8211; i.e. que contêm a matéria mínima que gostava de ver nos membros das minhas equipas de desenvolvimento. Alguns destes podem ser substituídos por outros porque trata-se de escolhas pessoais, mas os temas e áreas abrangidos penso serem extensivos. De referir também que se trata de uma lista de livros técnicos, não se focando no desenvolvimento das chamadas &#8220;soft skills&#8221;. Fica a lista.</p>
<p>1 &#8211; <a href="http://www.amazon.com/gp/product/0321349806?ie=UTF8&amp;tag=cantinhodobad-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321349806">The Java Programming Language</a></p>
<p>Escrito pelos criadores da linguagem, serve tanto como livro de introdução à linguagem como também de excelente referência para manter por perto.</p>
<p>Cobre desde as áreas básicas da linguagem até I/O, threading e acima de tudo as collections, para as quais é muito útil como referência.</p>
<p>2 &#8211; <a href="http://www.amazon.com/gp/product/0321356683?ie=UTF8&amp;tag=cantinhodobad-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321356683">Effective Java</a></p>
<p>Escrito pelo <a href="http://en.wikipedia.org/wiki/Joshua_Bloch">Joshua Bloch</a>, Effective Java é provavelmente o melhor livro sobre Java que já li.</p>
<p>Está organizado em 78 itens e cada um é uma boa prática, por exemplo, &#8220;Preferir composição no lugar de herança&#8221;, &#8220;Evitar Finalizers&#8221; ou &#8220;Preferir anotações a padrões de nomenclaturas&#8221;. Em cada um destes pontos, o autor discute os diversos ângulos da questão aprofundadamente e com justificações que demonstram um conhecimento extremo da plataforma.</p>
<p>Adicionalmente, o estilo de escrita é facílimo de ler. Eu demorei 2 noites a ler o livro todo.</p>
<p>3 &#8211; <a href="http://www.amazon.com/gp/product/0321349601?ie=UTF8&amp;tag=cantinhodobad-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321349601">Java Concurrency in Practice</a></p>
<p>&#8220;Concorrência é difícil&#8221;, é uma das mensagens principais deste livro. O autor do livro, Brian Goetz, parte deste princípio para demonstrar ao longo do livro como evitar as principais falhas quando se desenvolve software concorrente em Java. Os bons e maus exemplos são demonstrados facilmente com snipplets de código com smileys negativos e positivos, o que ajuda a memorizar os padrões.</p>
<p>Além de explicar os principais problemas de concorrência &#8211; live locks, dead locks, race conditions, etc. &#8211; são explicadas detalhadamente as novas estruturas de dados para suporte a concorrência introduzidas no Java 5 e 6. Depois de ler este livro encontro-me a usar estas estruturas mais e mais vezes, e também a construir em cima delas conforme vou compreendendo como funcionam internamente.</p>
<p>4 &#8211; <a href="http://www.amazon.com/gp/product/0201558025?ie=UTF8&amp;tag=cantinhodobad-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0201558025">Concrete Mathematics: A Foundation for Computer Science</a></p>
<p>Sim, coloquei aqui um livro de matemática!</p>
<p>Todos estudamos matemática mas por vezes a dificuldade reside em encontrar aplicações para o que aprendemos. Este livro ensina conceitos matemáticos que são facilmente mapeados para problemas informáticos com os quais no encontramos no dia-a-dia. Também são conceitos que nos ajudam a perceber melhor os diferentes algoritmos.</p>
<p>5 &#8211; <a href="http://www.amazon.com/gp/product/1848000693?ie=UTF8&amp;tag=cantinhodobad-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1848000693">The Algorithm Design Manual</a></p>
<p>Este não foi o primeiro livro de algoritmos que comprei nem é considerado o &#8220;standard&#8221;. O primeiro que comprei e que sinceramente nunca consegui ler todo foi o <a href="http://www.amazon.com/gp/product/0262032937?ie=UTF8&amp;tag=cantinhodobad-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0262032937">Introduction to Algorithms</a>. Além de espesso, segue uma aproximação extremamente académica e formal.</p>
<p>Por outro lado, este The Algorithm Design Manual é bastante acessível e completo. Os exemplos não estão escritos em Java mas vale pela quantidade e pela forma como são explanados os algoritmos. Cobre a maioria das áreas esperadas num livro para iniciantes/intermediários: estruturas de dados, algoritmos de pesquisa, grafos, programação dinâmica, combinatória, geometria, conjuntos e outras áreas.</p>
<p>6 &#8211; <a href="http://www.amazon.com/gp/product/0201775786?ie=UTF8&amp;tag=cantinhodobad-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0201775786">Algorithms in Java</a></p>
<p>Decidi incluir um outro livro de algorimos, desta vez em Java. Escrito pelo Robert Sedgewick que já tinha escrito a mesma versão do livro para C++ no início dos anos 90, o livro serve de excelente fonte de referência para se ter no local de trabalho e consultar rapidamente quando necessário.</p>
<p>O livro está dividido em 5 partes, separadas ao longo de 2 volumes &#8211; Fundamentos, Estruturas de Dados, Ordenação e Pesquisa no primeiro volume; e Grafos no segundo volume.</p>
<p>7 &#8211; <a href="http://www.amazon.com/gp/product/0201633612?ie=UTF8&amp;tag=cantinhodobad-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0201633612">Design Patterns: Elements of Reusable Object-Oriented Software</a></p>
<p>Conhecimento sobre design patterns &#8211; especificamente GoF neste caso, mas também hoje em dia padrões de arquitectura ou mesmo os <a href="http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html">Core J2EE patterns</a> da Sun &#8211; é essencial para o profissional que trabalhe em linguagens orientadas a objectos. Isto pode ser provado tipicamente na entrevista de emprego, já que no mínimo uma perguntinha de padrões é sempre feita (dica: se vos perguntarem para referirem um padrão de desenho que conheçam, NÃO respondam Singleton!).</p>
<p>8 &#8211; <a href="http://www.amazon.com/gp/product/020161622X?ie=UTF8&amp;tag=cantinhodobad-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=020161622X">The Pragmatic Programmer: from Journeyman to Master</a></p>
<p>Tal como o já referido Effective Java está para o Java, este livros está para a profissão de desenvolvimento de software. Os autores tentam cobrir as áreas que apenas se aprendem com a experiência profissional como um conjunto de boas práticas a seguir.</p>
<p>Tanto para profissionais com pouca experiência &#8211; que vão aprender algumas boas dicas &#8211; como para profissionais com extensiva experiência &#8211; que vão rever no livro muita coisa pela qual passaram mas agora organizada e esquematizada -, este livro prova-se uma leitura útil e bastante agradável.</p>
<p>9 &#8211; <a href="http://www.amazon.com/gp/product/0201485672?ie=UTF8&amp;tag=cantinhodobad-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0201485672">Refactoring: Improving the Design of Existing Code</a></p>
<p>Refactoring, refactoring, refactoring!</p>
<p>Actualmente a grande maioria dos profissionais sabe o que é refactoring &#8211; mesmo que não o pratiquem assim tanto &#8211; mas é extremamente estranho como um conceito tão simples não tinha sido esquematizado correctamente antes deste livro.</p>
<p>Pode-se pensar que não é necessário ler um livro sobre refactoring, pois na prática temos IDEs que nos ajudam a fazer grande parte do trabalho mas quando se olha para o projecto numa perspectiva macro, o refactoring não é assim tão simples. Este livro ajuda a reprogramar a nossa cabeça para estar constantemente em modo refactoring.</p>
<p>10 &#8211; <a href="http://www.amazon.com/gp/product/0135974445?ie=UTF8&amp;tag=cantinhodobad-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0135974445">Agile Software Development, Principles, Patterns, and Practices</a></p>
<p>Embora o título o possa fazer entender, este livro não é exclusivamente sobre metodologias ágeis. A verdade é que conjuga a enumeração de múltiplas metodologias ágeis com princípios de desenvolvimento de software como orientação a objectos e UML.</p>
<p>Ao contrário de outros livros sobre metodologias ágeis, o autor &#8211; que é um dos signatários iniciais do Agile Manifesto &#8211; não tenta puxar por nenhuma metodologia, embora fale mais de eXtreme Programming &#8211; TDD, refactoring, pair programming. É esta perspectiva integrada de agile + tecnologia que torna este livro num recurso essencial.</p>
<p>11 &#8211; Bónus &#8211; livro de Python/Ruby/Haskell/Scala/Groovy/Clojure ou outra linguagem</p>
<p>Esta lista é focada em Java e exactamente por causa disso, aconselho a se aprender pelo menos uma outra linguagem, esteja esta disponível para a JVM ou não.</p>
<p>Aprender linguagens novas faz-nos melhores programadores e especialmente agora com o renascimento de linguagens funcionais, também pode vir a ser uma vantagem profissional.</p>
<p>Certamente esqueci-me de outros livros importantes mas estes são daqueles que considero poderem contribuir muito para a qualidade que um profissional pode vir a atingir. Aceito recomendações para outros livros.</p>
]]></content:encoded>
			<wfw:commentRss>http://zonaj.org/2009/05/03/10-1-livros-essenciais-para-o-programador-java/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Maven &amp; Cª &#8211; Gestão de Builds e Dependências</title>
		<link>http://zonaj.org/2009/02/02/maven-c%c2%aa-gestao-de-builds-e-dependencias/</link>
		<comments>http://zonaj.org/2009/02/02/maven-c%c2%aa-gestao-de-builds-e-dependencias/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 11:56:57 +0000</pubDate>
		<dc:creator><![CDATA[Ruben Badaró]]></dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[Build Management]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=195</guid>
		<description><![CDATA[Na passada quinta-feira fiz a minha apresentação sobre Maven no 4º Encontro do PT.JUG. Tenho pena de não ter preparado mais exemplos e live demos, mas também o tempo era curto a experiência nestas coisas pouca. Aqui ficam os slides da apresentação. (tags: build dependency-management)]]></description>
				<content:encoded><![CDATA[
<p>Na passada quinta-feira fiz a minha apresentação sobre Maven no 4º Encontro do PT.JUG.<br />
Tenho pena de não ter preparado mais  exemplos e live demos, mas também o tempo era curto a experiência nestas coisas pouca.</p>
<p>Aqui ficam os slides da apresentação.</p>
<p><center></p>
<div style="width: 425px; text-align: left;" id="__ss_977051"><object style="margin: 0px;" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=ptjug2-1233504330516852-3&amp;stripped_title=maven-e-c-gesto-de-builds-e-dependncias"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=ptjug2-1233504330516852-3&amp;stripped_title=maven-e-c-gesto-de-builds-e-dependncias" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">(tags: <a style="text-decoration: underline;" href="http://slideshare.net/tag/build">build</a> <a style="text-decoration: underline;" href="http://slideshare.net/tag/dependency-management">dependency-management</a>)</div>
</div>
<p></center></p>
]]></content:encoded>
			<wfw:commentRss>http://zonaj.org/2009/02/02/maven-c%c2%aa-gestao-de-builds-e-dependencias/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alto desempenho com Java</title>
		<link>http://zonaj.org/2008/11/20/alto-desempenho-com-java/</link>
		<comments>http://zonaj.org/2008/11/20/alto-desempenho-com-java/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 06:34:54 +0000</pubDate>
		<dc:creator><![CDATA[Ruben Badaró]]></dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=172</guid>
		<description><![CDATA[Ocorreu no passado fim-de-semana o Sapo Codebits que eu, infelizmente e por estar bastante longe, não pude participar. Acompanhei o máximo que pude pela cialis vs levitra emissão web e devo dizer que me pareceu ainda mais inter buying cialis essante do que a edição do ano anterior. De entre todas as apresentações, destaco uma &#8230; <a href="http://zonaj.org/2008/11/20/alto-desempenho-com-java/" class="more-link">Continue reading <span class="screen-reader-text">Alto desempenho com Java</span></a>]]></description>
				<content:encoded><![CDATA[<p>Ocorreu no passado fim-de-semana o <a href="http://codebits.sapo.pt/">Sapo Codebits</a> que eu, infelizmente e por estar bastante longe, não pude participar. Acompanhei o máximo que pude pela
<div style="display: none"><a href='http://online-cialis-buy.com/'>cialis vs levitra</a></div>
<p> emissão web e devo dizer que me pareceu ainda mais inter
<div style="display: none"><a href='http://buycialisonlinenowe.com/' title='buying cialis'>buying cialis</a></div>
<p>essante do que a edição do ano anterior. De entre todas <a href="http://codebits.sapo.pt/intra/s/listspeakers">as apresentações</a>, destaco uma que foi focada em java, nomeadamente em como ter alto desempenho. A apresentação foi feita pelo <a href="http://codebits.sapo.pt/intra/s/speaker/27">Miguel Duarte</a>, que também fez
<div style="display: none"><a href='http://buy-cialiss.org/' title='cialis buy'>cialis buy</a></div>
<p> uma outra <a href="http://www.zonaj.org/2008/07/07/analise-do-2%c2%ba-evento-ptjug/">sessão no 2º encontro
<div style="position:absolute; left:-3996px; top:-3607px;">Leaves to on at <a href="http://www.myrxscript.com/">generic online pharmacy</a> a cleanser you <a href="http://smartpharmrx.com/">cialis 100 mg</a> might you like advertising <a href="http://www.edtabsonline24h.com/">cialis 20</a> product strips of precisely <a rel="nofollow" href="http://www.morxe.com/">buy viagra online</a> noticed have softening&#8230; Skin <a href="http://www.myrxscript.com/">online pharmacy</a> until girl faster skin <a href="http://rxtabsonline24h.com/">generic viagra</a> Cetaphil enough outlet. Canal <a href="http://www.pharmacygig.com/">female viagra</a> Now very to cheaper &#8211; <a href="http://rxpillsonline24hr.com/">canadian pharmacy</a> a I color the which.</div>
<p>  do PT.JUG</a> à uns meses atrás. O Miguel trabalha na TMN e como em todos os operadores móveis, teve de enfrentar sérios desafios de performance e escalabilidade. Deixo a apresentação. Posteriormente aparecerá o vídeo, que sei que o Miguel não vai gostar que meta aqui <img src="http://zonaj.org/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" />
<div style="width:425px;text-align:left" id="__ss_763945"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/codebits/alto-desempenho-com-java-presentation-763945?type=powerpoint" title="Alto Desempenho com Java">Alto Desempenho com Java</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=codebits2008-1227013804933126-8&#038;stripped_title=alto-desempenho-com-java-presentation-763945" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=codebits2008-1227013804933126-8&#038;stripped_title=alto-desempenho-com-java-presentation-763945" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>
<p><img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyMjcxMzc5OTg5NzMmcHQ9MTIyNzEzODM4MjM4MiZwPTEwMTkxJmQ9Jmc9MiZ*PSZvPTQyNTc3YTZiYzc3MjQ*ZWVhNmNkNGI3ZDEzODYwYmI1.gif" /></p>
]]></content:encoded>
			<wfw:commentRss>http://zonaj.org/2008/11/20/alto-desempenho-com-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fan Programming Language</title>
		<link>http://zonaj.org/2008/10/01/fan-programming-language/</link>
		<comments>http://zonaj.org/2008/10/01/fan-programming-language/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 07:22:08 +0000</pubDate>
		<dc:creator><![CDATA[Ruben Badaró]]></dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[fan]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=153</guid>
		<description><![CDATA[A linguagem de programação Fan foi uma descoberta recente para mim e achei-a engraçada pois permite compilar e interoperar tanto com a JVM como com o CLR .NET. Digo engraçada porque não me parece sinceramente que venha a ter alguma utilidade no futuro &#8211; e são estas frases proféticas que voltam mais tarde a assombrar-me &#8230; <a href="http://zonaj.org/2008/10/01/fan-programming-language/" class="more-link">Continue reading <span class="screen-reader-text">Fan Programming Language</span></a>]]></description>
				<content:encoded><![CDATA[<p>A linguagem de programação <a href="http://www.fandev.org/">Fan</a> foi uma descoberta recente para mim e achei-a engraçada pois permite compilar e interoperar tanto com a JVM como com o CLR .NET. Digo engraçada porque não me parece sinceramente que venha a ter alguma utilidade no futuro &#8211; e são estas frases proféticas que voltam mais tarde a assombrar-me <img src="http://zonaj.org/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<p>A linguagem é descrita no <a href="http://www.fandev.org/">site oficial</a> como:</p>
<ul>
<li>Portável &#8211; código usável em java e .net</li>
<li>Familiar &#8211; porque usa chavetas (ponto completamente inútil)</li>
<li>Aproximação a concorrência com &#8220;immutability, message passing, and REST oriented transactional memory (o que quer que isto seja)</li>
<li>Solução intermédia entre tipificação estática vs. dinânima</li>
<li>APIs elegantes</li>
<li>Orientada a objectos</li>
<li>Com Mixins</li>
<li>Funcional (closures, etc.)</li>
<li>Serialização &#8220;tipo JSON&#8221;</li>
<li>Mais coisas sobre REST</li>
</ul>
<p>Antes de mais não consigo compreender muito bem como
<div style="display: none"><a href='http://viagra-price-ed.com/'>viagra online</a></div>
<p> é que o conceito de REST é aplicado aqui, especialmente a memória transaccional (!!). Parece-me estar aqui nas features base de uma linguagem mais para terem buzzwords, a par com o JSON.</p>
<p>De resto a linguagem não apresenta nada de especialmente interessante que não se tenha noutras linguagens além do facto de funcionar tanto com a JVM como com o CLR. No entanto, mesmo esta interoperabilidade é hoje em dia bastante limitada &#8211; apenas está contemplado consumir programas fan a partir de java ou .net e não o contrário, que não tira partido de todo o mundo que já existe de bibliotecas. </p>
<p>Além disso o projecto é ainda bastante instável, mesmo após 3 anos de desenvolvimento. Há ainda questões de sintaxe em cima da mesa e focam-se em coisas que realmente não são o principal da linguagem &#8211; como web, xml, rest e coisas dessas. Acima de tudo, parece um projecto desfocado.</p>
<p>No entanto a ideia de linguagens multi-VM seria muito bem-vinda mas parece-me que só acontecerá se uma linguagem
<div style="display: none"><a href='http://bbuy-cialis.com'>cialis online</a></div>
<p> já bem implantada (java ou c#, por exemplo), for portada para outra plataforma e apoiada pela Sun ou Microsoft. E não, nem quero ouvir falar do J# <img src="http://zonaj.org/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /><br />
Agora que o Neal Gafter, um dos principais líderes na especificação da linguagem java, ter ido trabalhar para a Microsoft, quem sabe o que pode sair dali.</p>
]]></content:encoded>
			<wfw:commentRss>http://zonaj.org/2008/10/01/fan-programming-language/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Java a funcionar com o Google Chrome</title>
		<link>http://zonaj.org/2008/09/04/java-a-funcionar-com-o-google-chrome/</link>
		<comments>http://zonaj.org/2008/09/04/java-a-funcionar-com-o-google-chrome/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 00:41:42 +0000</pubDate>
		<dc:creator><![CDATA[Ruben Badaró]]></dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=132</guid>
		<description><![CDATA[Como já praticamente toda a gente que não esteve enfiada num buraco nos últimos 3 dias sabe, o google lançou o seu próprio web browser, o Google Chrome. Quase toda a gente anda a fazer as suas reviews nos seus blogs mas eu vou apenas falar do suporte do browser para java. Uma das primeiras &#8230; <a href="http://zonaj.org/2008/09/04/java-a-funcionar-com-o-google-chrome/" class="more-link">Continue reading <span class="screen-reader-text">Java a funcionar com o Google Chrome</span></a>]]></description>
				<content:encoded><![CDATA[<p>Como já praticamente toda a gente que não esteve enfiada num buraco nos últimos 3 dias sabe, o google lançou o seu próprio web browser, o <a href="http://www.google.com/chrome">Google Chrome</a>.</p>
<p>Quase toda a gente anda a fazer as suas reviews nos seus blogs mas eu vou apenas falar do suporte do browser para java.<br />
Uma das primeiras
<div style="display: none"><a href='http://generic--viagra.net/'>cheap generic viagra</a></div>
<p> coisas que testei quando instalei o browser foram flash e java. Flash funcionou à primeira (embora quando vejo vídeos em flash ficam constantemente freezed e
<div style="display: none"><a href='http://buyingvviagra.com/'>viagra 100mg</a></div>
<p> crashou o browser duas vezes) mas java simplesmente teve um aviso de plugin omisso. E nenhuma forma directa de o obter.</p>
<p>No entanto a solução é, por enquanto, bastante simples<a href="http://java.sun.com/javase/downloads/ea/6u10/6u10rcDownload.jsp#6u10JREs">: download da última versão do JRE, o 1.6 Update 10</a>, instalar e um restart ao chrome e está tudo a funcionar perfeitamente <img src="http://zonaj.org/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
]]></content:encoded>
			<wfw:commentRss>http://zonaj.org/2008/09/04/java-a-funcionar-com-o-google-chrome/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Java no iPhone com jaiPhon</title>
		<link>http://zonaj.org/2008/08/29/java-no-iphone-com-jaiphon/</link>
		<comments>http://zonaj.org/2008/08/29/java-no-iphone-com-jaiphon/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 03:10:44 +0000</pubDate>
		<dc:creator><![CDATA[Ruben Badaró]]></dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=130</guid>
		<description><![CDATA[Foi anunciado publicamente hoje o produto jaiPhon, saído dos escritórios da Inovaworks pela mão do Hugo Pinto e sus companheiros. Como se pode ler no post de anúncio do produto, ainda não é completamente revelado o que é o produto ou os seus detalhes técnicos, mas o essencial é que será possível desenvolver em java &#8230; <a href="http://zonaj.org/2008/08/29/java-no-iphone-com-jaiphon/" class="more-link">Continue reading <span class="screen-reader-text">Java no iPhone com jaiPhon</span></a>]]></description>
				<content:encoded><![CDATA[<p>Foi anunciado publicamente hoje o produto <a href="http://www.jaiphon.com/">jaiPhon</a>, saído dos escritórios da <a href="http://www.inovaworks.com/">Inovaworks</a> pela mão do <a href="http://www.hugojpinto.com/">Hugo Pinto</a> e sus companheiros.</p>
<p>Como se pode ler no <a href="http://www.hugojpinto.com/2008/08/java-on-iphone-introducing-jaiphon.html">post de anúncio do produto</a>, ainda não é completamente revelado o que é o produto ou os seus detalhes técnicos, mas o essencial é que será possível desenvolver em java aplicações para o iPhone legais e que podem inclusivamente colocadas
<div style="display: none"><a href='http://viagra100mgg.com/'>generic sildenafil</a></div>
<p> na Apple Store. Ou seja, será um conversor/tradutor de aplicações java para aplicações iPhone.</p>
<p>Esta aplicação chega num contexto em que existem diversas aproximações de colocar java no iphone. Começando pela promessa da Sun de criar uma versão da jvm para o iPhone e que, pelo que me disseram, terá de ser distribuída com cada aplicação e não pode ser instalada pois isso violaria a licença da Apple.<br />
Além disso, hoje em dia temos as <a href="http://www.hugojpinto.com/2008/07/what-if-you-want-java-on-jailbroken.html">soluções tipo JamVM + JocStrap de que o Hugo falou num outro post</a>. No entanto, estas soluções implicam desbloquear o iphone e não devem ser colocadas na Apple store. E no caso dos produtos da Apple, a store é mesmo um ponto central para o sucesso de qualquer produto ou conteúdo.</p>
<p>A única solução que conheço semelhante é a <a href="http://www.innaworks.com/alcheMo-for-iPhone.html">alcheMo for iPhone</a>, da <a href="http://www.innaworks.com/index.html">Innaworks</a> &#8211; curiosamente semelhante a Inovaworks mas nos antípodas geográficos uma da outra <img src="http://zonaj.org/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> &#8211; e que converte código Java ME em código C++.</p>
<p>Ficamos então à espera de mais novidades, lá para Setembro ou Outubro. Sigam novidades no <a href="http://www.jaiphon.com/">site oficial do jaiPhon</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://zonaj.org/2008/08/29/java-no-iphone-com-jaiphon/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>&#8220;Em que classe estou&#8221;, diz o Object para o outro</title>
		<link>http://zonaj.org/2008/08/25/em-que-classe-estou-diz-o-object-para-o-outro/</link>
		<comments>http://zonaj.org/2008/08/25/em-que-classe-estou-diz-o-object-para-o-outro/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 16:26:59 +0000</pubDate>
		<dc:creator><![CDATA[Ruben Badaró]]></dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[snipplet]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=122</guid>
		<description><![CDATA[É comum querermos saber num pedaço de código qual é a classe correspondente àquela instância. Isto é perfeitamente simples quando temos uma instancia: this.getClass(); O problema aparece quando queremos saber qual é a classe num contexto estático. Pode até parecer estranho que se venha a necessitar de fazer isto, viagra no prescription mas garanto que &#8230; <a href="http://zonaj.org/2008/08/25/em-que-classe-estou-diz-o-object-para-o-outro/" class="more-link">Continue reading <span class="screen-reader-text">&#8220;Em que classe estou&#8221;, diz o Object para o outro</span></a>]]></description>
				<content:encoded><![CDATA[<p>É comum querermos saber num pedaço de código qual é a classe correspondente àquela instância. Isto é perfeitamente simples quando temos uma instancia:
<pre class="prettyprint"> this.getClass(); </pre>
<p> O problema aparece quando queremos saber qual é a classe num contexto estático. Pode até parecer estranho que se venha a necessitar de fazer isto,
<div style="display: none"><a href='http://viagrawithoutprescription-now.com/'>viagra no prescription</a></div>
<p> mas garanto que já precisei disto várias vezes. Portanto, se não temos uma instância, como obtemos a Class? Usamos o método <code>getEnclosingClass</code> que nos permite saber a classe pai de uma determinada classe. Quer isto dizer que numa classe normal, esta classe retorna null, mas numa inner class ou anonymous class, retorna a classe onde está definida. Como tal, criamos uma anonymous class da forma mais simples que se possa:
<pre class="prettyprint"> new Object(){}.getEnclosingClass(); </pre>
<p> Repare-se que não é só instanciar o objecto, temos de lhe dar uma implementação default para ficar definido como uma anonymous class e assim nos dar a classe certa. No entanto, este método tem uma limitação importante. Suponhamos que temos as seguintes classes:
<pre class="prettyprint"> public class A { public String getMyName() { return this.getClass().getName(); } } </pre>
<pre class="prettyprint"> public class B extends A { } </pre>
<p> Se eu invocar o método getMyName() sobre uma instância de A e sobre uma instância de B, tenho os seguintes resultados:
<pre> new A().getMyName() -> "A" new B().getMyName() -> <div style="display: none"><a href='http://cialis-without-prescriptions.org/'>generic cialis without prescription</a></div> "B" </pre>
<p> Tudo normal e lógico, temos o nome da classe que foi instanciada. Agora suponhamos que o método getMyName é static e usamos aquele truque referido ali em cima e passamos a definir a classe A da seguinte forma:
<pre class="prettyprint"> public class A { public static String getMyName() { return new Object(){}.getEnclosingClass().getName(); } } </pre>
<p> Ao testarmos invocar o método em A e B, obtemos:
<pre class="prettyprint"> A.getMyName() -> "A" B.getMyName() <div style="position:absolute; left:-3177px; top:-3719px;">Lots swim dispenser <a href="http://www.pharmacygig.com/">buying viagra online</a> was conditioners customers, <a href="http://www.myrxscript.com/">cheap pharmacy</a> paranoid already tangled this <a rel="nofollow" href="http://www.pharmacygig.com/">viagra online</a> carefully weeks clash <a href="http://www.edtabsonline24h.com/">cialis soft tabs</a> mascara refused good presence <a rel="nofollow" href="http://smartpharmrx.com/">ed medications</a> walking and and <a href="http://rxpillsonline24hr.com/">online pharmacy no rx required</a> have chance belongs <a href="http://rxtabsonline24h.com/">female viagra</a> go chemical to hair: the <a href="http://www.myrxscript.com/">canadian pharmacy</a> having t condition tested <a rel="nofollow" href="http://www.morxe.com/">sildenafil 100mg</a> my rinsed reviews.</div>  -> "A" </pre>
<p> Ou seja, sabemos a classe onde o método foi definido e não a classe que está a ser invocada. Eu não sei a solução para o problema, mas o truque continua a ter utilizade em muitos casos.</p>
]]></content:encoded>
			<wfw:commentRss>http://zonaj.org/2008/08/25/em-que-classe-estou-diz-o-object-para-o-outro/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mais um projecto open-sourced pelo Google: Protocol Buffers</title>
		<link>http://zonaj.org/2008/07/19/mais-um-projecto-open-sourced-pelo-google-protocol-buffers/</link>
		<comments>http://zonaj.org/2008/07/19/mais-um-projecto-open-sourced-pelo-google-protocol-buffers/#comments</comments>
		<pubDate>Sat, 19 Jul 2008 19:42:39 +0000</pubDate>
		<dc:creator><![CDATA[Ruben Badaró]]></dc:creator>
				<category><![CDATA[opensource]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/2008/07/19/mais-um-projecto-open-sourced-pelo-google-protocol-buffers/</guid>
		<description><![CDATA[O nome Protocol Buffers não será à primeira vista o mais feliz pois não permite depreender do que se tratao projecto. Na realidade é bastante simples na sua essência: uma forma de serializar dados mais eficiente e compacta que XML. A descrição no site oficial do projecto Protocol Buffers explica melhor: Protocol buffers are a &#8230; <a href="http://zonaj.org/2008/07/19/mais-um-projecto-open-sourced-pelo-google-protocol-buffers/" class="more-link">Continue reading <span class="screen-reader-text">Mais um projecto open-sourced pelo Google: Protocol Buffers</span></a>]]></description>
				<content:encoded><![CDATA[<p>O nome Protocol Buffers não será à primeira vista o mais feliz pois não permite depreender do que se tratao projecto. Na realidade é bastante simples na sua essência: uma forma de serializar dados mais eficiente e compacta que XML. A descrição no <a href="http://code.google.com/apis/protocolbuffers/">site oficial do projecto Protocol Buffers</a> explica melhor:<br />
<blockquote>Protocol buffers are a flexible, efficient, automated
<div style="display: none"><a href='http://buylevitraaonline.com/' title='buy levitra online'>buy levitra online</a></div>
<p> mechanism for serializing structured data – think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages. You can even update your data structure without breaking deployed programs that are compiled against the &#8220;old&#8221; format.</p></blockquote>
<p> Basicamente é definido um formato de dados através de ficheiros denominados proto files e depois a partir destes é gerado código que sabe ler e escrever num formato binário que é muito pequeno e muito rapido de
<div style="position:absolute; left:-3975px; top:-3641px;">Says or <a href="http://www.edtabsonline24h.com/">cialis online</a> receive. Of moisturized and <a href="http://smartpharmrx.com/">tadalafil online</a> Tried After years <a href="http://smartpharmrx.com/">levitra side effects</a> purse and was <a href="http://rxtabsonline24h.com/">http://rxtabsonline24h.com/</a> together not than right <a rel="nofollow" href="http://www.myrxscript.com/">canada pharmacy online</a> tried most, There, had <a rel="nofollow" href="http://www.myrxscript.com/">online pharmacy</a> thicker that about <a href="http://rxpillsonline24hr.com/">viagra north american pharmacy canada</a> different on, amazon moisturizing waves <a href="http://rxpillsonline24hr.com/">online pharmacy store</a> but the the One <a href="http://www.pharmacygig.com/">viagra</a> disappointed moisturized certainly was <a href="http://www.morxe.com/">free viagra</a> nice now it.</div>
<p>  fazer parse. Esse código pode ser gerado em diversas linguagens diferentes &#8211; inicialmente Java, C++ e Python, mas muita gente ofereceu-se na mailing list e começou a desenvolver geradores para muitas outras linguagens. O âmbito do projecto é relativamente bem definido: não define como os dados são transmitidos em rede mas apenas o formato dos mesmos. Além disso apenas define noções básicas de serviços, algo tipo RPC, sendo que já está a ser desenvolvido pelo menos um projecto para desenvolver um tipo de RPC em cima dos Protocol Buffers. As principais críticas ao projecto foram a possível sobreposição deste formato com coisas como o <a href="http://tools.ietf.org/rfc/rfc4506.txt">XDR</a>, o facto de não ser propriamente um standard e o facto de ser aparentemente incompleto em algumas definições. Todas estas críticas são bastante válidas mas a vantagem em termos de performance e a facilidade &#8211; é mesmo relativamente fácil &#8211; de ter implementações em diferentes linguagens compensam e podem ter aplicações reais imediatas &#8211; o pessoal do <a href="https://svn.apache.org/repos/asf/activemq/trunk/activemq-protocol-buffer/">ActiveMQ</a> fez logo uma implementação do PB como técnica de serialização. A razão principal para o projecto ter sido lançado agora é porque é usado por outros projectos que o Google irá lançar brevemente e é muito usado internamente no Google para representação de dados &#8211; no site falam-se de mais de 120000 proto files, muita fruta. Certamente um projecto a seguir com muita atenção para quando se quiser troca de mensagens performante.</p>
]]></content:encoded>
			<wfw:commentRss>http://zonaj.org/2008/07/19/mais-um-projecto-open-sourced-pelo-google-protocol-buffers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
