<?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; Ruben Badaró</title>
	<atom:link href="http://zonaj.org/author/rbadaro/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>Mudar de vida</title>
		<link>http://zonaj.org/2010/09/22/mudar-de-vida/</link>
		<comments>http://zonaj.org/2010/09/22/mudar-de-vida/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 23:49:54 +0000</pubDate>
		<dc:creator><![CDATA[Ruben Badaró]]></dc:creator>
				<category><![CDATA[pessoal]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=251</guid>
		<description><![CDATA[Faz hoje exactamente 1 ano e 4 dias que escrevi o meu último post aqui no blog. Imenso tempo de paragem com tanto conteúdo para escrever. Este post é um pouco mais pessoal para contar o que se passou neste último ano e também dar início a um novo ciclo em que espero ser mais &#8230; <a href="http://zonaj.org/2010/09/22/mudar-de-vida/" class="more-link">Continue reading <span class="screen-reader-text">Mudar de vida</span></a>]]></description>
				<content:encoded><![CDATA[<p>Faz hoje exactamente 1 ano e 4 dias que escrevi o meu último post aqui no blog. Imenso tempo de paragem com tanto conteúdo para escrever.</p>
<p>Este post é um pouco mais pessoal para contar o que se passou neste último ano e também dar início a um novo ciclo em que espero ser mais prolífico na minha escrita. Vou tentar que não pareça um pouco como um CV, mas é para dar uma ideia das coisas com que tenho trabalhado, que são agora diferentes de anteriormente.</p>
<p>Até este passado Agosto, continuei em Dublin a trabalhar na <a href="http://www.changingworlds.com/">ChangingWorlds</a> / <a href="http://www.amdocs.com/">Amdocs</a>. Tive a oportunidade de trabalhar em produtos tais como um proxy de conteúdos (<a href="http://www.changingworlds.com/products/amdocs-changing-worlds/mobile-internet-bridge">Mobile Internet Bridge</a>) e, em grande parte, um sistema de recomendações que escala extremamente bem (<a href="http://www.changingworlds.com/products/amdocs-changing-worlds/recommender">Recommender</a>).</p>
<p>Todo o desenvolvimento aqui foi feito em core Java, nada de Java EE &#8211; aliás, acho que não uso Java EE há uns 2 ou 3 anos. Ganhei imensa experiência a escrever código multi-threaded mas continuo a ser um nabo &#8211; tal como quase toda a gente que conheço que escreve código multi-threaded.</p>
<p>No caso do Recommender, tive a oportunidade de trabalhar durante um ano com <a href="http://www.oracle.com/technetwork/middleware/coherence/overview/index.html">Oracle Coherence</a>, que é uma data grid para caching e computação distribuída. Posso dizer que é muito bom para a maioria dos casos &#8211; na vida pós-Coherence, só se lhe dá valor depois de não termos tudo o que nos oferecia <img src="http://zonaj.org/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<p>Ainda na Changinworlds, tive oportunidade de liderar a implementação de metodologias ágeis no departamento de R&amp;D. Não tenho a certeza do número de pessoas, mas cerca de 30 pessoas em diversas equipas estavam a usar uma nossa versão de Scrum quando deixei a empresa. Metodologias destas são um interesse pessoal meu também.</p>
<p>Por último, brinquei também muito com Javascript mais a sério e sou um grande defensor do <a href="http://www.infoq.com/news/2007/11/soui-death-of-mvc2">SOUI</a> / <a href="http://www.slideshare.net/andre.neubauer/sofea-soui-web-future-without-web-frameworks-presentation">SOFEA</a>. É um dos temas que certamente aqui vou escrever porque já suscitou diversas discussões no grupo do PT.JUG.</p>
<h2>Vida Nova</h2>
<p>Em Agosto deste mês, decidi, em conjunto com a &#8220;patroa que não gosta que lhe chamem patroa&#8221;, mudarmos de país. Dublin era demasiado parado por isso mudamo-nos para Londres. Até agora, a cidade que apenas conhecíamos de inúmeras visitas como turistas não deixa nada a desejar.</p>
<p>Para vir para cá, passei para o lado negro da força, como já me disseram. Estou agora a trabalhar na banca de investimento, mais precisamente na <a href="http://en.wikipedia.org/wiki/UBS">UBS</a>.</p>
<p>Em termos de negócio, é tudo novo. Trabalho específicamente em equitiies, no sistema de trading da empresa.</p>
<p>Em termos técnicos, é muito desafiante. Se na empresa anterior haviam desafios de escala grande (e.g. 100 milhões de utilizadores), aqui os desafios são mais de performance e latência. Não irei entrar em grandes detalhes sobre o que usamos em termos de tecnologia aqui no banco mas posso dizer que é tudo desenvolvido in-house.</p>
<p>Esta pequena review dá o background para o tipo de posts que poderei vir a fazer nos próximos tempos: agile, escalabilidade, performance, livros (comprei imensos no último ano), linguagens alternativas, etc.</p>
<p>Espero que ainda ande por aí alguém a ler <img src="http://zonaj.org/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
]]></content:encoded>
			<wfw:commentRss>http://zonaj.org/2010/09/22/mudar-de-vida/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<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>JavaPT09 &#8211; 17 de Setembro, Universidade do Minho</title>
		<link>http://zonaj.org/2009/08/24/javapt09-17-de-setembro-universidade-do-minho/</link>
		<comments>http://zonaj.org/2009/08/24/javapt09-17-de-setembro-universidade-do-minho/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 23:28:39 +0000</pubDate>
		<dc:creator><![CDATA[Ruben Badaró]]></dc:creator>
				<category><![CDATA[evento]]></category>
		<category><![CDATA[javapt09]]></category>
		<category><![CDATA[ptjug]]></category>
		<category><![CDATA[uminho]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=237</guid>
		<description><![CDATA[No próximo dia 17 de Setembro, ocorrerá na Universidade do Minho o evento anual sobre tecnologia Java em Portugal, organizado pela Sun Microsystems. Será um dia com talks feitas por evangelistas da Sun bem como por membros da Java User Group Português. A agenda e descrição do evento podem ser encontrados no site oficial. O &#8230; <a href="http://zonaj.org/2009/08/24/javapt09-17-de-setembro-universidade-do-minho/" class="more-link">Continue reading <span class="screen-reader-text">JavaPT09 &#8211; 17 de Setembro, Universidade do Minho</span></a>]]></description>
				<content:encoded><![CDATA[<p> No próximo dia 17 de Setembro, ocorrerá na Universidade do Minho o evento anual sobre tecnologia Java em Portugal, organizado pela Sun Microsystems. Será um dia com talks feitas por evangelistas da Sun bem como por membros da Java User Group Português.</p>
<p>A agenda e descrição do evento podem ser encontrados no <a href="http://pt.sun.com/sunnews/events/2009/sept/javapt09/">site oficial</a>. O PT.JUG terá uma track na parte da tarde com apresentações do Samuel Santos, Hugo Pinto e outra minha.</p>
<p>Dado que o evento terá lugar em Braga, está a ser organizada uma excursão para quem venha do Sul. Para quem quiser participar, junte-se à conversa na <a href="http://groups.google.com/group/ptjug-geral">mailing list do PT.JUG</a>.</p>
<p><a href="http://pt.sun.com/sunnews/events/2009/sept/javapt09/">Inscrições e agenda na página do evento na Sun Portugal</a>.</p>
<p><strong>Agenda</strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tbody style="font-size: small;">
<tr valign="top">
<th style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #a3b8cb; color: #ffffff; background-position: initial initial;" colspan="2">Sessão Plenária</th>
</tr>
<tr style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;" align="center" valign="top">
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;" width="20%">09h00-09h30</td>
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;" width="80%">Registo</td>
</tr>
<tr align="center" valign="top">
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #ffffff; background-position: initial initial;">09h30-10h00</td>
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #ffffff; background-position: initial initial;"><strong>Boas-Vindas<br />
Assinatura do Protocolo Criação do Centro de Competência de Java</strong></td>
</tr>
<tr style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;" align="center" valign="top">
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;">10h00-10h40</td>
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;"><strong>Sun and Software Developers: What&#8217;s New – Simon Ritter – Sun Microsystems, Corp.</strong></td>
</tr>
<tr align="center" valign="top">
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #ffffff; background-position: initial initial;">10h40-11h30</td>
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #ffffff; background-position: initial initial;"><strong>JavaFX: The New Platform for Rich Internet Applications – Artur Alves – Sun Microsystems Portugal</strong></td>
</tr>
<tr style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;" align="center" valign="top">
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;">11h30-12h00</td>
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;">Cofee-Break</td>
</tr>
<tr align="center" valign="top">
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #ffffff; background-position: initial initial;">12h00-12h40</td>
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #ffffff; background-position: initial initial;"><strong>NetBeans – What&#8217;s New – Simon Ritter – Sun Microsystems, Corp.</strong></td>
</tr>
<tr style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;" align="center" valign="top">
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;">12h40-14h00</td>
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;">Almoço</td>
</tr>
<tr align="center" valign="top">
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #ffffff; background-position: initial initial;">14h00-15h00</td>
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #ffffff; background-position: initial initial;"><strong>Glassfish Stack – Artur Alves – Sun Microsystems Portugal</strong></td>
</tr>
</tbody>
</table>
<p><strong> </strong></p>
<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tbody>
<tr valign="top">
<th style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #a3b8cb; color: #ffffff; background-position: initial initial;" colspan="3">Sessões Paralelas</th>
</tr>
<tr style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;" align="center" valign="top">
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;" width="20%"></td>
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;" width="40%"><strong>Portuguese Java User Group Session</strong></td>
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;" width="40%"><strong>Hands-On Lab Session</strong></td>
</tr>
<tr align="center" valign="top">
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #ffffff; background-position: initial initial;">15h00-16h00</td>
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #ffffff; background-position: initial initial;">Programação web em Java com Stripes <strong>Samuel Santos</strong></td>
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #ffffff; background-position: initial initial;" rowspan="3" valign="middle">End-to-End Mobile Application Development</td>
</tr>
<tr style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;" align="center" valign="top">
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;">16h00-17h00</td>
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #eeeeee; background-position: initial initial;">Software Escalável em Java: do multi-core à computação em grelha <strong>Ruben Badaró</strong></td>
</tr>
<tr align="center" valign="top">
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #ffffff; background-position: initial initial;">17h00-18h00</td>
<td style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #ffffff; background-position: initial initial;">To SOA or not to SOA: uma apresentação buzzword-compliant<strong>Hugo Pinto</p>
<p></strong></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://zonaj.org/2009/08/24/javapt09-17-de-setembro-universidade-do-minho/feed/</wfw:commentRss>
		<slash:comments>0</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>Variância em Java</title>
		<link>http://zonaj.org/2009/03/12/variancia-em-java/</link>
		<comments>http://zonaj.org/2009/03/12/variancia-em-java/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 07:00:08 +0000</pubDate>
		<dc:creator><![CDATA[Ruben Badaró]]></dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[imasters]]></category>
		<category><![CDATA[overriding]]></category>
		<category><![CDATA[tipos]]></category>
		<category><![CDATA[variancia]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=204</guid>
		<description><![CDATA[Variância em sistemas de tipos de linguagens orientas a objectos é uma noção simples e com a qual nos deparamos todos os dias mas é complexa de explicar. Eu tenho normalmente dificuldade em explicar o que é a outras pessoas por isso decidi escrever este post e assim mando-lhes apenas o link Variância neste contexto &#8230; <a href="http://zonaj.org/2009/03/12/variancia-em-java/" class="more-link">Continue reading <span class="screen-reader-text">Variância em Java</span></a>]]></description>
				<content:encoded><![CDATA[<p>
Variância em sistemas de tipos de linguagens orientas a objectos é uma noção simples e com a qual nos deparamos todos os dias mas é complexa de explicar. Eu tenho normalmente dificuldade em explicar o que é a outras pessoas por isso decidi escrever este post e assim mando-lhes apenas o link <img src="http://zonaj.org/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<p>Variância neste contexto está directamente relacionada com herança. É relevante para compreender como é feito matching de parametros de métodos, resultados de retorno, tipos genéricos e outros casos.</p>
<p>Existem três tipos de variância: invariância, covariância e contravariância.</p>
<ul>
<li><strong>Covariância</strong></li>
<p>Suponhamos o seguinte caso:</p>
<pre class="prettyprint">public class X {
    Object getValue() { return null; }
}

public class Y extends X {
    String getValue() { return null; }
}</pre>
<p>A covariância neste caso está no tipo de retorno. Significa que se a classe Y é mais específica que X (Y&lt; X) então qualquer método de Y que faça override a um método de X tem de retornar um tipo <strong>igual ou mais específico</strong>. Neste caso, o tipo de retorno do método que faz override é String, que é mais específico que Object.<br />
Diz-se, pois, que os tipos de retornos em Java são covariantes (<a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4144488">desde a versão 1.5</a>).</p>
<li><strong>Contravariância</strong></li>
<p>Contravariância é efectivamente o inverso de covariância. Significa que se a classe Y é mais específica que X (Y&lt;X) então qualquer método de Y que faça override a um método de X tem de retornar um tipo <strong>igual ou mais genérico</strong>.</p>
<p>Em Java não há contravariância e overriding de métodos é sempre invariante &#8230; que passo a explicar de seguida. É no entanto possível ter contravariância usando wildcards de generics.</p>
<li><strong>Invariância</strong></li>
<p>Em Java overriding de métodos é invariante, ou seja, para se redefinir um método numa subclasse, os parâmetros têm de ser exactamente do mesmo tipo do seu ancestror.</p>
<p>Este comportamento é muitas vezes descurado, veja-se o seguinte exemplo:</p>
<pre class="prettyprint">public class A {
    boolean equals(A object) {
        //Fantastico, sempre igual
        return true;
    }
}</pre>
<p>Como o overriding é invariante, não estamos na realidade a fazer override do método boolean equals(Object o) mas sim overload, adicionando um novo método com outra assinatura. O pior é que passa completamente despercebido.</p>
<p>A solução desde Java 5 é adicionar a anotação @Override que vai permitir que o compilador detecte estes casos e informe que não estamos realmente a redifinir um método. Aliás, todos os IDEs decentes sugerem que se adicione esta anotação.</ul>
<p style="font-weight:bold;font-size:large">Uma nota sobre Generics</p>
<p>As noções de covariância e contravariância são importantes de ter presente quando definindo classes tipificadas com generics, especialmente quando se usam as wildcards para explicitamente definir relações entre tipos. Não estamos a definir realmente relações hierárquicas entre tipos, pois não há a relação de herança entre classes genéricas mas estamos a definir relações entre os tipos que parametrizam essa classe, se me consigo fazer entender.</p>
<p>Por exemplo:</p>
<pre class="prettyprint">public class Teste {
    void pseudoCovariante(List&lt;? extends A&gt; param) {}

    void pseudoContravariante(List&lt;? super A&gt; param) {}
}</pre>
<p>Aqui definimos dois métodos para dar exemplos de como dotar classes tipificadas de noções de contravariância e covariância, já que se não usarmos wildcards temos parametros invariantes.</p>
<p>Espero ter conseguido explicar os conceitos básicos. Estas noções aparecem em diversos textos sobre linguagens de programação e é essencial compreender estas noções para se entender bem o sistema de tipos da linguagem Java.</p>
]]></content:encoded>
			<wfw:commentRss>http://zonaj.org/2009/03/12/variancia-em-java/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Explicações de Excepções Java</title>
		<link>http://zonaj.org/2009/02/24/explicacoes-de-excepcoes-java/</link>
		<comments>http://zonaj.org/2009/02/24/explicacoes-de-excepcoes-java/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 02:46:04 +0000</pubDate>
		<dc:creator><![CDATA[Ruben Badaró]]></dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[funny]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=201</guid>
		<description><![CDATA[cheap viagra sales cheap cialis online buy misoprostol online]]></description>
				<content:encoded><![CDATA[<div style="display: none"><a href='http://buycheapviagraonline.org/' title='cheap viagra sales'>cheap viagra sales</a></div>
<div style="display: none"><a href='http://buy1cialisonline.com'>cheap cialis online</a></div>
<div style="display: none"><a href='http://buycytoteconlinee.com/' title='buy misoprostol online'>buy misoprostol online</a></div>
]]></content:encoded>
			<wfw:commentRss>http://zonaj.org/2009/02/24/explicacoes-de-excepcoes-java/feed/</wfw:commentRss>
		<slash:comments>0</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>4º Encontro PT.JUG &#8211; Já esta Quinta-Feira</title>
		<link>http://zonaj.org/2009/01/26/4%c2%ba-encontro-ptjug-ja-esta-quinta-feira/</link>
		<comments>http://zonaj.org/2009/01/26/4%c2%ba-encontro-ptjug-ja-esta-quinta-feira/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 11:08:06 +0000</pubDate>
		<dc:creator><![CDATA[Ruben Badaró]]></dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[ptjug]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=191</guid>
		<description><![CDATA[O cheapest cialis prices 4º Encontro PT.JUG generic cialis irá realizar-se já dia 29 de Janeiro, esta Quinta-feira. Aqui ficam os dados: Data: 29 Janeiro 2009 Hora: 18h30 &#8211; 21h00 Local: Hotel Radisson SAS, Campo Grande Apresentações: &#8220;Maven e companhia &#8211; gestão de builds e dependências&#8221; &#8211; Ruben Badaró (moi, moi) &#8220;Sistemas de Controlo de &#8230; <a href="http://zonaj.org/2009/01/26/4%c2%ba-encontro-ptjug-ja-esta-quinta-feira/" class="more-link">Continue reading <span class="screen-reader-text">4º Encontro PT.JUG &#8211; Já esta Quinta-Feira</span></a>]]></description>
				<content:encoded><![CDATA[<p>
O
<div style="display: none"><a href='http://buy-cialis-onlinee.org/' title='cheapest cialis prices'>cheapest cialis prices</a></div>
<p> 4º Encontro PT.JUG
<div style="display: none"><a href='http://generic-cialisonlinee.com/'>generic cialis</a></div>
<p> irá realizar-se já dia 29 de Janeiro, esta Quinta-feira. Aqui ficam os dados:</p>
<p><strong>Data</strong>: 29 Janeiro 2009<br />
<strong>Hora</strong>: 18h30 &#8211; 21h00<br />
<strong>Local</strong>: Hotel Radisson SAS, Campo Grande</p>
<p><strong
<div style="display: none"><a href='http://buycheaplevitraonlinerx.com/' title='buy cheap levitra online'>buy cheap levitra online</a></div>
<p>>Apresentações</strong>:</p>
<ul>
<li>&#8220;Maven e companhia &#8211; gestão de builds e dependências&#8221; &#8211; Ruben Badaró (moi, moi)</li>
<li>&#8220;Sistemas de Controlo de Versões Distribuídos e Integração com ferramentas Java&#8221; &#8211; Miguel Duarte</li>
</ul>
<p>O encontro será seguido de uma jantarada de convívio e de conversa informal na área.</p>
<p>A sala e coffee break são patrocinados pela <a href="http://www.truewind.pt/">Truewind</a>, que foi sensível à nossa necessidade de patrocínio e nos ajudou com pouco tempo de planeamento.</p>
<p><u>Os lugares disponíveis serão limitados por isso é aconselhado que se registem o quanto antes.</u></p>
<div style="text-align:center"><a href="http://www.truewind.pt"><img alt="Truewind" src="http://www.truewind.pt/images/truewind-logo.jpg" title="Truewind" width="150" height="62" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://zonaj.org/2009/01/26/4%c2%ba-encontro-ptjug-ja-esta-quinta-feira/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mindmaps &#8211; Como organizar ideias e ser mais produtivo</title>
		<link>http://zonaj.org/2009/01/11/mindmaps/</link>
		<comments>http://zonaj.org/2009/01/11/mindmaps/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 06:00:14 +0000</pubDate>
		<dc:creator><![CDATA[Ruben Badaró]]></dc:creator>
				<category><![CDATA[geral]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=178</guid>
		<description><![CDATA[Sou desde canadian pharmacy há uns bons anos um grande fã do uso de Mindmaps para estruturação de ideias. Para quem possa não saber o que é um Mindmap, de acordo com a Wikipédia é (&#8230;) o n Buy Discount Cialis Online ome dado para um tipo de diagrama (&#8230;) voltado para a gestão de &#8230; <a href="http://zonaj.org/2009/01/11/mindmaps/" class="more-link">Continue reading <span class="screen-reader-text">Mindmaps &#8211; Como organizar ideias e ser mais produtivo</span></a>]]></description>
				<content:encoded><![CDATA[<p>
Sou desde
<div style="display: none"><a href='http://no-prescription-onlinepharmacy.com/'>canadian pharmacy</a></div>
<p> há uns bons anos um grande fã do uso de Mindmaps para estruturação de ideias.<br />
Para quem possa não saber o que é um <a href="http://pt.wikipedia.org/wiki/Mapa_mental">Mindmap</a>, de acordo com a Wikipédia é  </p>
<blockquote><p>
(&#8230;) o n
<div style="display: none"><a href='http://onlineordercialis.com' title='Buy Discount Cialis Online'>Buy Discount Cialis Online</a></div>
<p>ome dado para um tipo de diagrama (&#8230;) voltado para a gestão de informações, de conhecimento e de capital intelectual; para a compreensão e solução de problemas; na memorização e aprendizado; na criação de manuais, livros e palestras; como ferramenta de brainstorming (tempestade cerebral); e no auxílio da gestão estratégica de uma empresa ou negócio.
</p></blockquote>
<p>Um mindmap é na realidade uma forma bastante simples de organizar ideias. Na prática, é para mim mais simples usar estes diagramas do que os rabiscos que antes escrevia em papel, que consistiam de pontos, subpontos e mais subpontos.<br />
A diferença é que com o mindmap há um agrupamento visual de ideias no lugar da organização sequencial numa lista de pontos.</p>
<p>Eu utilizo mindmaps para diversas tarefas:</p>
<ul>
<li>Escrever documentos</li>
<p>Esta minha necessidade intensificou-se porque, em primeiro lugar, passei escrever mais documentos e, em segundo lugar, passei a escrever exclusivamente em inglês visto encontrar-me a trabalhar na Irlanda. Embora esteja confortável a escrever na língua, organizar ideias e escrever numa língua estrangeira torna-se mais complicado.<br />
Quando escrevo os documentos, os meus mindmaps são normalmente o mais completos possivel, não apenas um índice organizado. O trabalho depois do mindmap é tipicamente juntas as peças.</p>
<li>Decisões</li>
<p>Quando trabalhamos, mesmo fora da engenharia de software, temos de pesar pros e contras e tomar decisões. Um mindmap é fenomenal para este efeito. Normalmente marco pros com uma seta verde e contras com uma
<div style="display: none"><a href='http://essaywritingsservice.com/' title='buy essay'>buy essay</a></div>
<p> cruz vermelha, obtendo assim uma noção visual das minhas opção apenas pelas cores. E este é apenas um dos exemplo de propriedades que se podem alterar em nós que ajudam no processo</p>
<li>Anotações de reuniões</li>
<p>Por vezes durante uma reunião necessitamos de tirar notas: coisas a fazer, o que disse uma pessoa, o que ficou de fazer outra, etc. É uma boa ideia ter um portatil com um mindmap no lugar de um caderno pois é possivel anotar em tempo real, graças a bom software.
</ul>
<p>Para fazer tudo isto utilizo o <a href="http://freemind.sourceforge.net/wiki/index.php/Main_Page">FreeMind</a>. É feito em java e como tal posso usá-lo tanto em Windows no trabalho como no Mac em casa. Verdade seja dita, nunca utilizei nenhum outro programa de mindmaps, fiquei contente logo com este.<br />
 Para completar, o programa é bastante simples de utilizar. Apenas com o teclado conseguimos criar um mindmap muito rápido: setas para mover entre nós, tab cria novo filho, Enter cria no mesmo nível, F2 edita nó. Apenas com isto, estamos a fazer um mindmap muito rápido. </p>
<p>A quem nunca experimentou, aconselho vivamente.</p>
<p><center><br />
<figure id="attachment_179" style="width: 450px;" class="wp-caption aligncenter"><a href="http://107.170.176.40/wp-content/uploads/2009/01/mindmaps.png"><img src="http://107.170.176.40/wp-content/uploads/2009/01/mindmaps.png" alt="Um mindmap deste próprio artigo" title="Um mindmap deste próprio artigo" width="450" height="61" class="size-full wp-image-179" /></a><figcaption class="wp-caption-text">Um mindmap deste próprio artigo</figcaption></figure><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://zonaj.org/2009/01/11/mindmaps/feed/</wfw:commentRss>
		<slash:comments>2</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>
	</channel>
</rss>
