<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2portuguesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns: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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Zona J</title>
	
	<link>http://www.zonaj.org</link>
	<description>Zona Java - Um blog português sobre java.</description>
	<lastBuildDate>Tue, 21 Sep 2010 23:49:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ZonaJ" /><feedburner:info uri="zonaj" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>ZonaJ</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FZonaJ" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FZonaJ" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FZonaJ" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/ZonaJ" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FZonaJ" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FZonaJ" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FZonaJ" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FZonaJ" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FZonaJ" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FZonaJ" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FZonaJ" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FZonaJ" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FZonaJ" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FZonaJ" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FZonaJ" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FZonaJ" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
		<title>Mudar de vida</title>
		<link>http://feedproxy.google.com/~r/ZonaJ/~3/1deSy5f78z4/</link>
		<comments>http://www.zonaj.org/2010/09/22/mudar-de-vida/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 23:49:54 +0000</pubDate>
		<dc:creator>Ruben Badaró</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[job]]></category>
		<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 [...]]]></description>
			<content:encoded><![CDATA[<p></p><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://www.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://www.zonaj.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ZonaJ?a=1deSy5f78z4:DTlhhS0hS48:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=1deSy5f78z4:DTlhhS0hS48:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=1deSy5f78z4:DTlhhS0hS48:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=1deSy5f78z4:DTlhhS0hS48:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=1deSy5f78z4:DTlhhS0hS48:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ZonaJ?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ZonaJ/~4/1deSy5f78z4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2010/09/22/mudar-de-vida/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://www.zonaj.org/2010/09/22/mudar-de-vida/</feedburner:origLink></item>
		<item>
		<title>Apresentação JavaPT09</title>
		<link>http://feedproxy.google.com/~r/ZonaJ/~3/Eg6l1NFXeCI/</link>
		<comments>http://www.zonaj.org/2009/09/17/apresentacao-javapt09/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 20:39:43 +0000</pubDate>
		<dc:creator>Ruben Badaró</dc:creator>
				<category><![CDATA[evento]]></category>
		<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></p><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;.</p>
<div id="__ss_2013912" style="width: 425px; text-align: left;"><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" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" 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>
<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="border: medium none; 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" type="text/javascript"></script></span></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ZonaJ?a=Eg6l1NFXeCI:O5SqTjhTiME:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=Eg6l1NFXeCI:O5SqTjhTiME:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=Eg6l1NFXeCI:O5SqTjhTiME:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=Eg6l1NFXeCI:O5SqTjhTiME:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=Eg6l1NFXeCI:O5SqTjhTiME:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ZonaJ?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ZonaJ/~4/Eg6l1NFXeCI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2009/09/17/apresentacao-javapt09/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.zonaj.org/2009/09/17/apresentacao-javapt09/</feedburner:origLink></item>
		<item>
		<title>JavaPT09 – 17 de Setembro, Universidade do Minho</title>
		<link>http://feedproxy.google.com/~r/ZonaJ/~3/bwZ-TaeFVvs/</link>
		<comments>http://www.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>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 [...]]]></description>
			<content:encoded><![CDATA[<p></p><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>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ZonaJ?a=bwZ-TaeFVvs:bWyoFYeVfWY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=bwZ-TaeFVvs:bWyoFYeVfWY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=bwZ-TaeFVvs:bWyoFYeVfWY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=bwZ-TaeFVvs:bWyoFYeVfWY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=bwZ-TaeFVvs:bWyoFYeVfWY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ZonaJ?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ZonaJ/~4/bwZ-TaeFVvs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2009/08/24/javapt09-17-de-setembro-universidade-do-minho/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.zonaj.org/2009/08/24/javapt09-17-de-setembro-universidade-do-minho/</feedburner:origLink></item>
		<item>
		<title>10 (+1) livros essenciais para o programador Java</title>
		<link>http://feedproxy.google.com/~r/ZonaJ/~3/27plmHZHQcY/</link>
		<comments>http://www.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>Ruben Badaró</dc:creator>
				<category><![CDATA[geral]]></category>
		<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 [...]]]></description>
			<content:encoded><![CDATA[<p></p><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>
<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/40e23b37-9038-4ea6-82db-8fbe8f876083/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=40e23b37-9038-4ea6-82db-8fbe8f876083" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ZonaJ?a=27plmHZHQcY:T-P32b_BDLg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=27plmHZHQcY:T-P32b_BDLg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=27plmHZHQcY:T-P32b_BDLg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=27plmHZHQcY:T-P32b_BDLg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=27plmHZHQcY:T-P32b_BDLg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ZonaJ?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ZonaJ/~4/27plmHZHQcY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2009/05/03/10-1-livros-essenciais-para-o-programador-java/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.zonaj.org/2009/05/03/10-1-livros-essenciais-para-o-programador-java/</feedburner:origLink></item>
		<item>
		<title>Variância em Java</title>
		<link>http://feedproxy.google.com/~r/ZonaJ/~3/BW10rW_DE98/</link>
		<comments>http://www.zonaj.org/2009/03/12/variancia-em-java/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 07:00:08 +0000</pubDate>
		<dc:creator>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 [...]]]></description>
			<content:encoded><![CDATA[<p></p><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://www.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>
<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/df8f2ca1-5529-41f9-a812-b746ae1de313/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=df8f2ca1-5529-41f9-a812-b746ae1de313" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ZonaJ?a=BW10rW_DE98:QaJ_9sDjmiI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=BW10rW_DE98:QaJ_9sDjmiI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=BW10rW_DE98:QaJ_9sDjmiI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=BW10rW_DE98:QaJ_9sDjmiI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=BW10rW_DE98:QaJ_9sDjmiI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ZonaJ?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ZonaJ/~4/BW10rW_DE98" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2009/03/12/variancia-em-java/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.zonaj.org/2009/03/12/variancia-em-java/</feedburner:origLink></item>
		<item>
		<title>Explicações de Excepções Java</title>
		<link>http://feedproxy.google.com/~r/ZonaJ/~3/MWLEnysnraA/</link>
		<comments>http://www.zonaj.org/2009/02/24/explicacoes-de-excepcoes-java/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 02:46:04 +0000</pubDate>
		<dc:creator>Ruben Badaró</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[geral]]></category>
		<category><![CDATA[funny]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=201</guid>
		<description><![CDATA[Gostaria apenas de deixar um link para uma excelente e detalhada explicação das mais comuns excepções java, com um pouco de humor. Explanations of Common Java Exceptions]]></description>
			<content:encoded><![CDATA[<p></p><p>Gostaria apenas de deixar um link para uma excelente e detalhada explicação das mais comuns excepções java, com um pouco de humor.</p>
<p><a href="http://rymden.nu/exceptions.html">Explanations of Common Java Exceptions</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ZonaJ?a=MWLEnysnraA:ftHLouaqnN4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=MWLEnysnraA:ftHLouaqnN4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=MWLEnysnraA:ftHLouaqnN4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=MWLEnysnraA:ftHLouaqnN4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=MWLEnysnraA:ftHLouaqnN4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ZonaJ?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ZonaJ/~4/MWLEnysnraA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2009/02/24/explicacoes-de-excepcoes-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.zonaj.org/2009/02/24/explicacoes-de-excepcoes-java/</feedburner:origLink></item>
		<item>
		<title>Maven &amp; Cª – Gestão de Builds e Dependências</title>
		<link>http://feedproxy.google.com/~r/ZonaJ/~3/GwJ-Q4nCVYU/</link>
		<comments>http://www.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>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></p><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>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ZonaJ?a=GwJ-Q4nCVYU:0euuggZpzKQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=GwJ-Q4nCVYU:0euuggZpzKQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=GwJ-Q4nCVYU:0euuggZpzKQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=GwJ-Q4nCVYU:0euuggZpzKQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=GwJ-Q4nCVYU:0euuggZpzKQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ZonaJ?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ZonaJ/~4/GwJ-Q4nCVYU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2009/02/02/maven-c%c2%aa-gestao-de-builds-e-dependencias/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.zonaj.org/2009/02/02/maven-c%c2%aa-gestao-de-builds-e-dependencias/</feedburner:origLink></item>
		<item>
		<title>4º Encontro PT.JUG – Já esta Quinta-Feira</title>
		<link>http://feedproxy.google.com/~r/ZonaJ/~3/GraYr9wczEo/</link>
		<comments>http://www.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>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 4º Encontro PT.JUG 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 Versões Distribuídos e Integração com [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>O 4º Encontro PT.JUG 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>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>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ZonaJ?a=GraYr9wczEo:bNSVpMi59oo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=GraYr9wczEo:bNSVpMi59oo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=GraYr9wczEo:bNSVpMi59oo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=GraYr9wczEo:bNSVpMi59oo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=GraYr9wczEo:bNSVpMi59oo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ZonaJ?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ZonaJ/~4/GraYr9wczEo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2009/01/26/4%c2%ba-encontro-ptjug-ja-esta-quinta-feira/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.zonaj.org/2009/01/26/4%c2%ba-encontro-ptjug-ja-esta-quinta-feira/</feedburner:origLink></item>
		<item>
		<title>Mindmaps – Como organizar ideias e ser mais produtivo</title>
		<link>http://feedproxy.google.com/~r/ZonaJ/~3/qbzl4i6N4R4/</link>
		<comments>http://www.zonaj.org/2009/01/11/mindmaps/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 06:00:14 +0000</pubDate>
		<dc:creator>Ruben Badaró</dc:creator>
				<category><![CDATA[geral]]></category>

		<guid isPermaLink="false">http://www.zonaj.org/?p=178</guid>
		<description><![CDATA[Sou desde 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 nome dado para um tipo de diagrama (&#8230;) voltado para a gestão de informações, de conhecimento e de capital intelectual; [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Sou desde 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 nome 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 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 />
<div id="attachment_179" class="wp-caption aligncenter" style="width: 450px">
	<a href="http://www.zonaj.org/wp-content/uploads/2009/01/mindmaps.png"><img src="http://www.zonaj.org/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>
	<p class="wp-caption-text">Um mindmap deste próprio artigo</p>
</div><br />
</center></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ZonaJ?a=qbzl4i6N4R4:CDlhK4-t2iI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=qbzl4i6N4R4:CDlhK4-t2iI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=qbzl4i6N4R4:CDlhK4-t2iI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=qbzl4i6N4R4:CDlhK4-t2iI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=qbzl4i6N4R4:CDlhK4-t2iI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ZonaJ?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ZonaJ/~4/qbzl4i6N4R4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2009/01/11/mindmaps/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.zonaj.org/2009/01/11/mindmaps/</feedburner:origLink></item>
		<item>
		<title>Alto desempenho com Java</title>
		<link>http://feedproxy.google.com/~r/ZonaJ/~3/SZqwfgGa3r8/</link>
		<comments>http://www.zonaj.org/2008/11/20/alto-desempenho-com-java/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 06:34:54 +0000</pubDate>
		<dc:creator>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 emissão web e devo dizer que me pareceu ainda mais interessante do que a edição do ano anterior. De entre todas as apresentações, destaco uma que foi focada em java, nomeadamente [...]]]></description>
			<content:encoded><![CDATA[<p></p><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.<br />
Acompanhei o máximo que pude pela emissão web e devo dizer que me pareceu ainda mais interessante do que a edição do ano anterior.</p>
<p>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 uma outra <a href="http://www.zonaj.org/2008/07/07/analise-do-2%c2%ba-evento-ptjug/">sessão no 2º encontro 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.</p>
<p>Deixo a apresentação. Posteriormente aparecerá o vídeo, que sei que o Miguel não vai gostar que meta aqui <img src='http://www.zonaj.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<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>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ZonaJ?a=SZqwfgGa3r8:9aMYwkCkQhk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=SZqwfgGa3r8:9aMYwkCkQhk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=SZqwfgGa3r8:9aMYwkCkQhk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ZonaJ?i=SZqwfgGa3r8:9aMYwkCkQhk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ZonaJ?a=SZqwfgGa3r8:9aMYwkCkQhk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ZonaJ?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ZonaJ/~4/SZqwfgGa3r8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zonaj.org/2008/11/20/alto-desempenho-com-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.zonaj.org/2008/11/20/alto-desempenho-com-java/</feedburner:origLink></item>
	</channel>
</rss>

