<?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>Log4Dev &#187; Formação</title>
	<atom:link href="http://log4dev.com/category/formacao/feed/" rel="self" type="application/rss+xml" />
	<link>http://log4dev.com</link>
	<description></description>
	<lastBuildDate>Mon, 03 Oct 2011 22:20:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<div id='fb-root'></div>
					<script type='text/javascript'>
						window.fbAsyncInit = function()
						{
							FB.init({appId: null, status: true, cookie: true, xfbml: true});
						};
						(function()
						{
							var e = document.createElement('script'); e.async = true;
							e.src = document.location.protocol + '//connect.facebook.net/pt_BR/all.js';
							document.getElementById('fb-root').appendChild(e);
						}());
					</script>	
						<item>
		<title>Curso de HTML5 em São Paulo</title>
		<link>http://log4dev.com/2010/08/31/curso-de-html5-em-sao-paulo/</link>
		<comments>http://log4dev.com/2010/08/31/curso-de-html5-em-sao-paulo/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 12:57:02 +0000</pubDate>
		<dc:creator>Miguel Galves</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Formação]]></category>
		<category><![CDATA[Notícias]]></category>

		<guid isPermaLink="false">http://log4dev.com/?p=823</guid>
		<description><![CDATA[A W3C Brasil irá oferecer um curso de HTML 5 em São Paulo, entre os dias 21 e 23 de setembro. Segundo um email que eu recebi ontem, O programa do curso abrange as principais novidades da versão 5 da linguagem HTML até o momento e priorizará a apresentação dos novos elementos com o debate [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2010/08/31/curso-de-html5-em-sao-paulo/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>A <a href="http://www.w3c.br/">W3C Brasil</a> irá oferecer um curso de <strong>HTML 5</strong> em São Paulo, entre os dias 21 e 23 de setembro.</p>

<p><a href="http://www.w3c.br/cursos/html5/"><img class="aligncenter" title="Curso de HTML 5" src="http://www.w3c.br/cursos/html5/images/nome-evento.gif" alt="" width="486" height="185" /></a></p>

<p>Segundo um email que eu recebi ontem,
<blockquote>O programa do curso abrange as principais novidades da versão 5 da linguagem HTML até o momento e priorizará a apresentação dos novos elementos com o debate em classe da nova semântica. Alguns exercícios serão aplicados com o intuito de demonstrar as novas implementações. Nossa estrutura infelizmente não comporta a formação de diversas turmas do curso de HTML5 que nos permita atender o grande número de solicitações de interessados, inclusive para outras cidades. Por isso faremos uma seleção dos participantes segundo os critérios de compromissos:</p>

<ul>
<li>com a replicação do conteúdo do curso;</li>
<li>com a publicação livre das aplicações geradas;</li>
<li>com um projeto real de uso do HTML5;</li>
<li>e com a participação efetiva em uma comunidade dedicada à melhoria da linguagem.</li>
</ul>

<p>O propósito do W3C Brasil, mais do que treinar no uso da nova versão, é o de organizar uma rede de interlocutores, formadores e multiplicadores preparados para os debates em torno dos padrões web, gerando massa crítica na formulação das novas recomendações.</blockquote>
Para saber mais sobre o curso, acesse <a href="http://www.w3c.br/cursos/html5/">http://www.w3c.br/cursos/html5/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2010/08/31/curso-de-html5-em-sao-paulo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Olimpiada International de Informatica</title>
		<link>http://log4dev.com/2010/08/26/olimpiada-international-de-informatica/</link>
		<comments>http://log4dev.com/2010/08/26/olimpiada-international-de-informatica/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 12:00:15 +0000</pubDate>
		<dc:creator>Thiago Bartolomei</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Formação]]></category>
		<category><![CDATA[Notícias]]></category>

		<guid isPermaLink="false">http://log4dev.com/?p=791</guid>
		<description><![CDATA[A 22a Olimpíada Internacional de Informática (IOI) ocorreu semana passada aqui em Waterloo, Canadá. É uma competição de programação para alunos de (no máximo) colegial. A olimpíada acontece anualmente e nessa edição contou com equipes de 83 países, incluindo o Brasil. Apesar de cada país poder enviar uma equipe de até 4 competidores, a competição [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2010/08/26/olimpiada-international-de-informatica/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>A <a href="http://www.ioi2010.org">22a Olimpíada Internacional de Informática</a> (IOI) ocorreu semana passada aqui em Waterloo, Canadá. É uma competição de programação para alunos de (no máximo) colegial. A olimpíada acontece anualmente e nessa edição contou com equipes de 83 países, incluindo o Brasil. Apesar de cada país poder enviar uma equipe de até 4 competidores, a competição é individual. Portanto, é bem diferente da competição da <a href="http://cm.baylor.edu/welcome.icpc">ACM ICPC</a>, para equipes de universitários.</p>

<p>Eu tive o prazer de servir de guia para a delegação brasileira, novamente liderada pelo <a href="http://www.ic.unicamp.br/~ranido/">Prof. Anido</a> da UNICAMP. Como o Canadá é um país de imigrantes, a organização tentou encontrar guias que falassem fluentemente a língua de cada país. Eles dizem que conseguiram, mas eu vi alguns guias que tiveram que se virar em inglês mesmo. Mas a idéia de ter um guia que conhece ambos os países é a de dar uma perspectiva mais compatível com os alunos sobre Waterloo e principalmente sobre o Canadá. Eu espero ter conseguido mostrar os lados positivos e negativos daqui, além de levá-los às compras, é claro. Ah, e o lado divertido da semana (pros guias pelo menos) foi &#8220;ter&#8221; que ir junto ao <a href="http://www.canadaswonderland.com">Canada&#8217;s Wonderland</a> e ao  <a href="http://www.maidofthemist.com">Maid of the Mist</a> em Niagara Falls.</p>

<p>Mas voltando à competição, que imagino ser a parte divertida pros alunos, a primeira coisa que tive que aprender foi como funciona a premiação. Existem medalhas de ouro, prata e bronze, sendo que metade dos +/- 300 competidores recebem alguma medalha (1/12 ouro, 1/6 prata e 1/4 bronze). A equipe brasileira recebeu 1 prata e 2 bronzes, o que é bastante bom dado o nível elevado da competição.</p>

<p>E esse é o ponto principal desse post. Eu fiquei impressionado com o nível de conhecimento de algoritmos dos competidores. A equipe brasileira é jovem e 3 dos 4 competidores ainda tem idade pra voltar algumas vezes pro IOI. Esses meninos de 15, 16 anos manjam algoritmos e estruturas de dados que eu só fui aprender no 2o. ano de faculdade. E eles <strong>dominam</strong> o assunto! O campeão desse ano foi um bielorusso de 15 anos. Ele compete desde os 11 e já ganhou 1 prata e 4 ouros, sendo 2 vezes como campeão. Os dois pais do garoto são programadores, obviamente.</p>

<p>Se você duvida da complexidade das tarefas, tente resolver você mesmo, já que elas <a href="http://www.ioi2010.org/CompetitionTask.shtml">estão online</a>. Cada dia de competição era uma prova com 4 tarefas pra serem resolvidas em 5 horas. Normalmente uma tarefa era bem fácil, só pra não desmotivar competidores menos treinados (tente fazer o Memory ou o Cluedo primeiro). Mas pra se ter uma idéia, a primeira submissão correta do Cluedo foi em menos de 3 minutos (eu nem consigo ler o enunciado nesse tempo!). Nesse ano algumas tarefas envolviam heurísticas (como Language) e algumas que pareciam triviais eram bem complicadinhas de resolver com pontos máximos (veja hotter/colder).</p>

<p>Parabéns ao time brasileiro e à <a href="http://www.fcc.org.br/">Fundação Carlos Chagas</a> que patrocina as <a href="http://olimpiada.ic.unicamp.br/">seletivas</a>, treinamentos e viagens! E toca preparar pra Tailândia ano que vem!</p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2010/08/26/olimpiada-international-de-informatica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sobre Pesquisa e Sudoku</title>
		<link>http://log4dev.com/2009/11/12/sobre-pesquisa-e-sudoku/</link>
		<comments>http://log4dev.com/2009/11/12/sobre-pesquisa-e-sudoku/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 04:44:27 +0000</pubDate>
		<dc:creator>Thiago Bartolomei</dc:creator>
				<category><![CDATA[Formação]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[Opinião]]></category>
		<category><![CDATA[Pesquisa]]></category>

		<guid isPermaLink="false">http://log4dev.com/?p=680</guid>
		<description><![CDATA[Dia desses estava eu resmungando pra minha namorada o quanto a minha pesquisa empaca quando meus colegas (principalmente meu orientador) estão muito ocupados e eu não recebo feedback. Como a gente gosta de fazer sudoku juntos, eu comecei a fazer uma analogia entre os problemas atacados em pesquisa acadêmica e sudoku pra explicar meus resmungos. [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2009/11/12/sobre-pesquisa-e-sudoku/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>Dia desses estava eu resmungando pra minha namorada o quanto a minha pesquisa empaca quando meus colegas (principalmente meu orientador) estão muito ocupados e eu não recebo feedback. Como a gente gosta de fazer <a href="http://en.wikipedia.org/wiki/Sudoku">sudoku</a> juntos, eu comecei a fazer uma analogia entre os problemas atacados em pesquisa acadêmica e sudoku pra explicar meus resmungos. Achei a analogia curiosa, então aqui vão os dois pontos principais, quem sabe alguém acha mais.</p>

<p>Antigamente, isso desde a idade antiga até mais ou menos a 2a guerra mundial, os pesquisadores eram aqueles seres mitológicos, geralmente um pouco malucos, excêntricos e isolados. Eles resolviam seus problemas separadamente, ficando muitas vezes anos escondendo o jogo até conseguir resultados interessantes. Por isso vemos várias vezes na história casos de descoberta simultânea por pesquisadores isolados. O grande problema desse modelo é que muitas vezes você fica empacado. É isso que acontece comigo quando eu faço sudoku sozinho, sem minha namorada. As vezes tem uma solução óbvia pra uma célula, bem na cara, e eu simplesmente não vejo (obviamente isso acontece com ela também, quando ela faz sozinha). E é exatamente assim que me sinto quando falta <strong>colaboração</strong> na minha pesquisa: eu as vezes encontro problemas que me travam ou, pior ainda, perco um bom tempo num caminho errado, o que poderia ser evitado se alguém com um &#8220;fresh look&#8221; no problema me desse um toque. Colaboração se tornou essencial em pesquisa principalmente a partir da 2a guerra, quando a complexidade dos problemas (e o preço das soluções!) começou a ficar grande demais pra um pesquisador solitário (ou um até um país sozinho, vide <a href="http://en.wikipedia.org/wiki/Cern">CERN</a>). E com os meios de comunicação atuais, isso só está acelerando. Um bom exemplo é o <a href="http://www.myexperiment.org/">My Experiment</a>, um portal em que pesquisadores contribuem a metodologia de experimentos pra facilitar replicação.</p>

<p>Outro aspecto em que sudoku se parece com um problema de pesquisa é no seu lifecycle, ou <strong>ciclo de vida</strong>. Quando surge um novo problema de pesquisa, ou até uma nova área, é como um jogo de sudoku recém começado. As primeiras células são bem fáceis de serem preenchidas, assim como é bem fácil fazer progresso no problema. Você ataca antes as chamadas &#8220;low hanging fruits&#8221;, ou seja, faz antes o que é mais fácil de ser feito. Daí surgem aquelas lendas, e essa eu ouvi diretamente da boca do <a href="http://en.wikipedia.org/wiki/Alan_Kay">Alan Kay</a>, de cientistas da computação conseguindo PhD em uma semana (nos anos 50, 60) por um algoritmo para alguma coisa que ninguém tinha feito antes (não me lembro exatamente pra que). Um outro exemplo é a invenção dos compiladores, provavelmente o desenvolvimento na área de computação que teve o maior impacto na produtividade, impacto que dificilmente vai ter equivalente no futuro. O ponto é que é mais fácil quando ninguém fez nada na área ainda. Depois a coisa começa a empacar, e tem-se uma fase de progresso incremental, em que problemas difíceis são resolvidos um a um, cada um merecendo um PhD. Depois, quando o tabuleiro já está mais cheio, fica mais fácil de completar. É nessa hora que os pesquisadores perdem o interesse na área, e geralmente os problemas que faltam sobram pra indústria. E é nessa hora que eu perco o interesse, viro pro lado e deixo minha namorada terminar o sudoku em paz!</p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2009/11/12/sobre-pesquisa-e-sudoku/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Por que é tão difícil contratar gente boa?</title>
		<link>http://log4dev.com/2009/09/26/por-que-e-tao-dificil-contratar-gente-boa/</link>
		<comments>http://log4dev.com/2009/09/26/por-que-e-tao-dificil-contratar-gente-boa/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 03:01:22 +0000</pubDate>
		<dc:creator>Leonardo Garcia</dc:creator>
				<category><![CDATA[Formação]]></category>
		<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://log4dev.com/?p=656</guid>
		<description><![CDATA[Estava relendo algumas notas antigas que eu faço para mim mesmo sobre comentários que as pessoas leitoras (e, eventualmente, editoras) deste blog fazem&#8230; Na outra ponta, poderíamos pensar o seguinte: que tal se, ao invés de ter uma equipe de 12 pessoas em um projeto, o que levaria ter 12 pessoas que tenham familiaridade com [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2009/09/26/por-que-e-tao-dificil-contratar-gente-boa/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>Estava relendo algumas notas antigas que eu faço para mim mesmo sobre comentários que as pessoas leitoras (e, eventualmente, editoras) deste blog fazem&#8230;
<blockquote>Na outra ponta, poderíamos pensar o seguinte: que tal se, ao invés de ter uma equipe de 12 pessoas em um projeto, o que levaria ter 12 pessoas que tenham familiaridade com um conjunto de ferramentas (e aí, obviamente, nos levando a escolher um framework), que tal diminuir a equipe para 3 ou 4 que sejam (a) mais experientes/produtivos e (b) capazes de utilizar ferramentas mais poderosas?</blockquote>
Com a ajuda de uma <a href="http://log4dev.com/2009/09/19/ferramentas-de-busca/">ferramenta de busca</a> não foi difícil achar que este foi um comentário do Rapahel neste post <a href="http://log4dev.com/2008/03/11/proposta-de-discussao-sobre-frameworks">aqui</a>. Longe de querer reavivar aquela discussão, o que me veio à cabeça foi uma resposta, para mim simples, à pergunta, extremamente importante e sobre a qual já refleti diversas vezes, do Raphael.</p>

<p>Eu diria que o principal problema que eu vejo para não ter uma equipe de 12 pessoas medianas que tenham familiaridade com um conjunto de ferramentas e, no lugar disso, ter uma equipe de 3 ou 4 pessoas mais experientes e produtivas, capazes de utilizar ferramentas mais poderosas é porque é muito difícil contratar estas 3 ou 4 pessoas.</p>

<p>Já coordenei e participei como entrevistador em diversos processos de seleção e às vezes fico horrorizado com alguns currículos recebidos ou pessoas entrevistadas. Além disso, a quantidade de pára-quedistas que aparecem em processos seletivos é enorme. Pessoas que simplesmente não tem nada a ver com a vaga (e chegam a dizer isto explicitamente no currículo) mas que mesmo assim se candidatam a ela.</p>

<p>Por ser tão difícil de achar estes 3 ou 4, pelo fato de os projetos geralmente terem prazos apertados que não possibilitam perder muito tempo formando (ou contratando) uma equipe e, talvez, pelo preço de estes 3 ou 4 ser muito alto quando comparado com os 12 medianos, eu diria que provavelmente eu preferiria me manter com os 12 medianos se eles fossem capazes de entregar o projeto pronto do que gastar tempo e dinheiro buscando profissionais que talvez não apareçam, impactando, no fim das contas, o bom andamento do projeto que, no fundo no fundo, não precisava de pessoas qualificadas para ser entregue em um nível bom (mas não ótimo).</p>

<p>Agora, sinceramente, o que mais me preocupa não é está minha &#8220;equação&#8221; pragmática. O que mais me preocupa é realmente a dificuldade de se achar pessoas realmente boas. E isso eu acho que é culpa da formação e do interesse geral das pessoas naquilo que elas fazem. Coisa difícil de mudar num curto prazo.</p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2009/09/26/por-que-e-tao-dificil-contratar-gente-boa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Scala: faz barba, cabelo e bigode</title>
		<link>http://log4dev.com/2009/07/21/scala-faz-barba-cabelo-e-bigode/</link>
		<comments>http://log4dev.com/2009/07/21/scala-faz-barba-cabelo-e-bigode/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 20:25:41 +0000</pubDate>
		<dc:creator>Thiago Bartolomei</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Ferramentas]]></category>
		<category><![CDATA[Formação]]></category>

		<guid isPermaLink="false">http://log4dev.com/?p=594</guid>
		<description><![CDATA[Aprender Scala está na minha TODO list faz um bom tempo. Finalmente tive algum tempo umas semanas atrás pra dar uma olhada na linguagem. A motivação veio de diversas fontes. No laboratório onde trabalho nós estamos tendendo à usar Scala nos nossos desenvolvimentos futuros, devido a integração de elementos funcionais que facilitam a implementação de [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2009/07/21/scala-faz-barba-cabelo-e-bigode/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>Aprender Scala está na minha TODO list faz um bom tempo. Finalmente tive algum tempo umas semanas atrás pra dar uma olhada na linguagem. A motivação veio de diversas fontes. No laboratório onde trabalho nós estamos tendendo à usar Scala nos nossos desenvolvimentos futuros, devido a integração de elementos funcionais que facilitam a implementação de algumas partes do código; a minha pesquisa usa uma boa pitada de linguagens específicas de domínio (domain specific languages, DSLs) e Scala parece adequada para o desenvolvimento de embedded DSLs (por exemplo, veja essa DSL para <a href="http://johlrogge.wordpress.com/2009/01/06/making-swt-shine-with-scala/">SWT em Scala</a>); e finalmente, tivemos uma palestra sobre <a href="http://lambda-the-ultimate.org/node/2438">tagless interpreters</a>, que haviam sido implementados em Haskell e OCaml, e eu queria ver como implementar um interpretador de cálculo lambda em Scala.</p>

<p>Bem, não importa se você não sabe o que são tagless interpreters ou se não se importa com lambda calculus, o foco desse post é outro. Quando comecei a aprender Scala, eu vi que a linguagem realmente faz jus ao nome (Scala vem de SCAlable LAnguage, e o objetivo era ter uma linguagem que serve pra fazer desde pequenos scripts até grandes aplicações enterprise). Basta olhar a <a href="http://www.scala-lang.org/node/104">lista de features da linguagem</a> que você percebe que Scala faz barba, cabelo e bigode!</p>

<p>Como não faz sentido discorrer sobre todas as features de Scala (isso merece um livro), eu vou me concentrar em duas pequenas coisas que deixam qualquer programador Java com inveja: Local Type Inference e Traits.</p>

<p><strong>Local Type Inference (Inferência Local de Tipos)</strong></p>

<p>Quantas vezes eu odiei ter que escrever tipos redundantes em Java (que já expliquei em alguns comentários anteriores). Imagine um método que devolve uma lista inicializada com um inteiro (é um exemplo estúpido, mas é só pra mostrar type inference in action).
<code>
public List&#60;Integer&#62; getList() {
   List&#60;Integer&#62; list = new ArrayList&#60;Integer&#62;();
   list.add(0);
   return list;
}
</code></p>

<p>Scala é staticamente tipada, o que significa que todos os tipos tem que ser verificados pelo compilador. Mas o compilador de Scala tenta ao máximo inferir o tipo que você está indicando. Você só precisa escrever o tipo se o compilador não conseguir determinar qual é o tipo correto. O mesmo código em Scala ficaria mais ou menos assim (Note que sou bem novato em Scala, então me perdoe se existem soluções mais elegantes):
<code>
   def getList() = 0 :: Nil
</code></p>

<p>O código ficou pequeno não somente por inferência de tipos, mas vamos ver como que inferência ajudou (o que segue é como eu imagino o compilador pensando). Primeiro o compilador infere que <em>Nil</em> é uma lista vazia, então pode ter qualquer tipo. O &#8220;::&#8221; é na verdade uma chamada de método (o <em>add</em>) na lista <em>Nil</em>, passando zero (0) como parâmetro (em Scala, métodos que iniciam com &#8220;:&#8221; fazem bind à direita, então <em>Nil</em> &#8211; que é uma <a href="http://www.scala-lang.org/node/107">case class</a> de <em>List</em> &#8211; é quem recebe o método). O compilador vê que 0 é um <em>Int</em> (o equivalente de <em>Integer</em> e <em>int</em> em Scala), então o resultado de chamar <em>add</em> em <em>Nil</em> é uma lista de inteiros (ou <em>List[Int]</em>). Finalmente, o compilador vê que essa lista é retornada pelo método, então o tipo do método é <em>List[Int]</em>.</p>

<p>Com isso, ao invés de escrever o tipo de lista em 3 lugares diferentes, você não precisou escrever em lugar algum, pois o tipo foi inferido do conteúdo e essa informação foi propagada. Note que se a lista estivesse vazia, você teria que escrever pelo menos 1 vez qual é o tipo (pois não tem como inferir do conteúdo), mas é melhor que 3 vezes!</p>

<p><strong>Traits</strong></p>

<p>Traits são basicamente interfaces com implementação. Já é sabido faz um bom tempo que herança múltipla (multiple inheritance, MI) causa dores de cabeça enormes (o Google, por exemplo, proíbe uso de MI no desenvolvimento interno de aplicações C++). A resposta de Java foi o conceito de interfaces, que te dão um poder parecido com MI (porque uma classe pode estender diversas interfaces, então pode ser usada polimorficamente no lugar de qualquer uma delas), mas muito mais restrito (porque a classe tem que implementar os métodos de todas as interfaces).</p>

<p>Em Scala, as Traits são como interfaces, mas elas podem ser parcialmente implementadas, normalmente com código default. Isso resolve alguns problemas de interfaces. Em Java existem várias interfaces pra receber eventos de GUIs que contém diversos métodos (um pra cada tipo de evento, veja MouseListener por exemplo). Quando você só tá interessado em um tipo de evento (por exemplo, Mouse Pressed), você tem que implementar todos os métodos (normalmente deixando em branco). Se você tiver sorte e sua classe não estende nenhuma outra, você pode usar um dos adapters com implementações em branco (como MouseAdapter), mas não é sempre o caso. Outro caso típico é quando um dos métodos pode ser derivado dos outros, como no exemplo direto do <a href="http://www.scala-lang.org/node/126">tour de Scala</a>:
<code>
trait Similarity {
  def isSimilar(x: Any): Boolean
  def isNotSimilar(x: Any): Boolean = !isSimilar(x)
}
</code></p>

<p>Nesse caso, classes precisam somente implementar <em>isSimilar</em> pois elas já ganham de graça o <em>isNotSimilar</em>. Note que traits, como interfaces, não podem ser instanciadas, e têm que ser adicionadas a classes ou objetos.</p>

<p><strong>E agora?</strong></p>

<p>Eu dei aqui só uma mostra do que Scala tem, e na verdade não cheguei nem perto da parte que eu considero mais importante, que é a junção (bem elegante por sinal) dos paradigmas funcional e orientado a objetos. Inclusive, umas semanas atrás eu fui à uma palestra do <a href="http://research.microsoft.com/en-us/people/simonpj/">Simon Peyton-Jones</a>, que é um dos caras por trás de Haskell. Depois da apresentação eu conversei (por ótimos 2 minutos) com ele sobre Scala e ele se disse feliz que Scala está trazendo linguagens funcionais pra desenvolvedores que estariam presos em OO (tanto por instrução &#8211; o que se aprende nas universidades em geral &#8211; quanto pelo mercado de trabalho). Eu acho que ele ainda prefere Haskell, mas Scala introduz &#8220;desenvolvedores comuns&#8221; ao paradigma funcional, sem abdicar de ser prática (não que Haskell não seja, mas o fato de se poder chamar código Java de Scala faz com que a adoção seja bem mais fácil).</p>

<p>O que me pergunto é se &#8220;desenvolvedores comuns&#8221; vão conseguir entender o que Scala oferece e usar de forma eficiente (isso depois que surgirem &#8220;Scala Design Patterns&#8221;). Sempre ouço que na indústria o average Joe mal entende Java direito, imagina então Scala. Estaríamos chegando em uma era em que uns poucos desenvolvedores excepcionais, usando linguagens e ferramentas ultra eficientes, seriam capazes de desenvolver &#8220;qualquer&#8221; sistema e suprir a demanda do mercado? Ou seja, o mercado encolheria em termos de número de programadores, mas os que restarem teriam uma produtividade muito superior?</p>

<p>Não sei. Mas sei que Scala faz barba, cabelo e bigode. E se bobear, tem algum jeito daquele pelinho no fundo da orelha ir junto!</p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2009/07/21/scala-faz-barba-cabelo-e-bigode/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Rails Summit Latin America</title>
		<link>http://log4dev.com/2008/09/19/rails-summit-latin-america/</link>
		<comments>http://log4dev.com/2008/09/19/rails-summit-latin-america/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 18:15:03 +0000</pubDate>
		<dc:creator>Thiago Bartolomei</dc:creator>
				<category><![CDATA[Formação]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://log4dev.com/2008/09/19/rails-summit-latin-america/</guid>
		<description><![CDATA[Pra quem se interessa por Ruby e em particular por Ruby on Rails (RoR), o Rails Summit Latin America eh uma oportunidade imperdível. O evento vai acontecer nos dias 15 e 16 de outubro em São Paulo, e conta com a presença de diversos palestrantes internacionais. É também uma ótima chance de entrar em contato [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2008/09/19/rails-summit-latin-america/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>Pra quem se interessa por Ruby e em particular por Ruby on Rails (RoR), o <a href="http://www.locaweb.com.br/railssummit/">Rails Summit Latin America</a> eh uma oportunidade imperdível. O evento vai acontecer nos dias 15 e 16 de outubro em São Paulo, e conta com a presença de diversos palestrantes internacionais. É também uma ótima chance de entrar em contato com a comunidade brasileira e latino americana de RoR e Ruby.</p>

<p>Essa foi a parte propaganda para o evento, agora vem a propaganda para mim. Meu irmão comprou o ingresso para o evento quando eles estavam com uma promoção para ingressos adiantados, e pagou 300 reais. Depois eles criaram uma promoção de 100 reais para estudante. Como a organização disse que não tem como devolver o dinheiro, eles deram 3 opções pra quem comprou antecipado mas tem direito a estudante:
<ul>
    <li>ele pode transferir o ingresso antigo para alguma outra pessoa e comprar um de estudante;</li>
    <li>ele pode dividir o ingresso dele com mais 2 estudantes; ou</li>
    <li>ele pode desfrutar de um credito de 200 reais em serviços de um patrocinador do evento.</li>
</ul>
Eu não entendo muito bem essa historia de &#8220;não tem como devolver o dinheiro&#8221;. Pelo menos neste ano ainda não tem CPMF, então bastaria eles colocarem de volta 200 reais na conta, ou devolver no cartão de credito, ou mesmo entregar em mãos. Mas de qualquer forma, pelo menos eles estao tentando ressarcir de alguma forma.</p>

<p>O problema é que meu irmão não conhece ninguém que esteja interessado, e também não está interessado em nenhum produto do patrocinador. Então, se alguém se interessar e quiser dividir a entrada ou comprar a entrada pelo preço antecipado, entre em contato comigo e a gente tenta ajeitar isso.</p>

<p>Vale lembrar que o preço (mesmo o de 300 reais) é muito barato pelo retorno que traz: palestras de altíssima qualidade, contato com gente interessante e ainda contando com almoço e coffee breaks. Queria eu estar no Brasil nesses dias!</p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2008/09/19/rails-summit-latin-america/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O porquê de querer um blog escrito em Português</title>
		<link>http://log4dev.com/2008/06/17/o-porque-de-querer-um-blog-escrito-em-portugues/</link>
		<comments>http://log4dev.com/2008/06/17/o-porque-de-querer-um-blog-escrito-em-portugues/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 22:13:20 +0000</pubDate>
		<dc:creator>Raphael Lullis</dc:creator>
				<category><![CDATA[Formação]]></category>

		<guid isPermaLink="false">http://log4dev.com/2008/06/17/o-porque-de-querer-um-blog-escrito-em-portugues/</guid>
		<description><![CDATA[N.A: Esse texto já tinha sido escrito para a página de traduções. Mas acho que o raciocínio ficou muito grande e além do escopo para aquela seção. Por isso estou publicando como um post regular. É verdade que a língua dominante na Internet é o Inglês. Isso não se dá só pelo domínio cultural norte-americano, [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2008/06/17/o-porque-de-querer-um-blog-escrito-em-portugues/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div><em>N.A: Esse texto já tinha sido escrito para a página de traduções. Mas acho que o raciocínio ficou muito grande e além do escopo para aquela seção.  Por isso estou publicando como um post regular.</em></p>

<p>É verdade que a língua dominante na Internet é o Inglês. Isso não se dá só pelo domínio cultural norte-americano, mas também por uma necessidade que surgiu com a globalização e com o avanço de tecnologia de telecomunicações: pessoas de pontos extremos do mundo precisam de uma linguagem comum se quiserem se comunicar e colaborar de forma eficiente. Alemães, indianos, chilenos, russos&#8230; não importando o idioma local, o inglês é necessário.</p>

<p>Mas isso não significa, entretanto, que é razoável abandonar a nossa língua-materna e passar a usar um idioma estrangeiro como forma exclusiva de produção de conteúdo. Nem por nacionalismo irracional e cego, como o dos franceses que não aceitam termos estrangeiros, mas por uma questão mais básica: a Ciência mostra que nossa capacidade de expressão está ligada ao domínio da linguagem que usamos para transmitir nossas idéias, sentimentos e conceitos abstratos; ao usarmos uma língua que não temos pleno domínio, a nossa capacidade de comunicação e expressão fica prejudicada. Tente imaginar um esquimó tendo que explicar a um morador do sertão nordestino as diferenças entre os (mais de 30) tipos de neve, usando inglês. Difícil, né?</p>

<p>É verdade que o propósito de blogs e microblogs é o de dar voz-própria para cada indivíduo, sem que dependam de canais previamente estabelecidos que atuem como editores do conteúdo produzido. Também é verdade que o fluxo aparentemente caótico de informação que corre nos blogs podem produzir ferramentas interessantes. Por exemplo, podemos analisar a massa de blogs de muitos usuários da internet que escrevem sobre as suas impressões sobre os produtos ou serviços que são lançados, para ter um feedback coletivo e usar como um termômetro para medir a repercussão e aceitação de uma campanha de marketing.</p>

<p>Sendo assim, falar em &#8220;formas adequadas para se escrever&#8221; parece uma coisa antiga, retrógrada. Na maior parte do tempo, atuamos mais como filtros e repetidores de sinal do que produtores de novas unidades de informação. Mas, se atuamos como filtros, é porque há muito ruído no rio de informação que passa por nós todos os dias. E se há muito ruído, poderíamos muito bem fazer um pouco de auto-análise e vermos se nossa atuação é sinal (conteúdo que dá novas informações, claro, preciso, eficaz) ou se é ruído (repetição, inócuo, redundante, que apenas toma tempo do receptor).</p>

<p>O idioma escolhido acaba sendo parte dessa auto-análise. Os blogueiros brasileiros que buscam acabam escrevendo em Inglês podem muito bem perguntar: &#8220;Será que aquilo que eu quero falar é <em>relevante</em> para essas pessoas que já fazem parte da conversa global, ou estou apenas usando um idioma com maior número de receptores para ter a <em>sensação</em> de que terei maior alcance?&#8221;</p>

<p>Ao passar por essa auto-análise, podemos muito bem perceber que a maior parte do conteúdo não teria razão para ser escrito em inglês. Muito do que discutimos ou apresentamos no blog são informações que <strong>já são conhecidas</strong>, ou <strong>podem ser facilmente encontradas</strong>, entre pessoas que trabalham com tecnologia e falam em inglês. E querer ficar falando ou escrevendo para quem já tem meios de ouvir a informação da fonte original é uma ação, no fundo, vaidosa e sem propósito. É apenas uma forma moderna e high-tech de querer ouvir a si mesmo. O produtor do conteúdo não se beneficia (além da auto-massagem no ego) e os consumidores potenciais não se beneficiam, pois já possuem a informação &#8211; de melhor qualidade &#8211; em outro lugar.</p>

<p>É por conta de tudo isso que fazemos questão de escrever em Português. Há muita gente por aí que até gostaria de buscar formação e informação para trabalhar com tecnologia mas que esbarra no problema de falta de material que não seja em inglês. Espero que, ao fornecer um pilar de material na língua nativa, o caminho para essa formação seja mais fácil e menos desencorajador.</p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2008/06/17/o-porque-de-querer-um-blog-escrito-em-portugues/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Impressões da Discovery ‘08 &#8211; Parte 2</title>
		<link>http://log4dev.com/2008/06/11/impressoes-da-discovery-%e2%80%9808-parte-2/</link>
		<comments>http://log4dev.com/2008/06/11/impressoes-da-discovery-%e2%80%9808-parte-2/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 04:04:08 +0000</pubDate>
		<dc:creator>Thiago Bartolomei</dc:creator>
				<category><![CDATA[Formação]]></category>
		<category><![CDATA[Negocios]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://log4dev.com/2008/06/11/impressoes-da-discovery-%e2%80%9808-parte-2/</guid>
		<description><![CDATA[Um tempo atrás eu descrevi minhas impressões sobre a Discovery&#8217;08 e prometi continuar sobre mais uma palestra e o painel que assisti. Demorou um pouco mais do que esperado, mas felizmente eu consegui achar onde tinha deixado minhas anotações e lembrar dos pontos que queria comentar. Mas melhor do que isso, eu descobri que os [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2008/06/11/impressoes-da-discovery-%e2%80%9808-parte-2/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>Um tempo atrás eu descrevi minhas <a href="http://log4dev.com/2008/05/15/impressoes-da-discovery-08/">impressões sobre a Discovery&#8217;08</a> e prometi continuar sobre mais uma palestra e o painel que assisti. Demorou um pouco mais do que esperado, mas felizmente eu consegui achar onde tinha deixado minhas anotações e lembrar dos pontos que queria comentar. Mas melhor do que isso, eu descobri que os organizadores fizeram podcasts de algumas palestras e discussões e colocaram <a href="http://www.ocediscovery.com/agenda.aspx">à disposição no site</a>. Então, quem quiser pegar o conteúdo na integra é só baixar os podcasts (estão em inglês).</p>

<p>Primeiro vamos à palestra do ministro da pesquisa e inovação de Ontario, Honorable John Wilkinson. Ele falou durante o almoço, o que não é muito agradável, mas a minha primeira impressão foi: como os políticos sabem falar bem! Não que os outros palestrantes não soubessem falar ou tivessem problemas no palco, mas o políticos são especialistas em falar as coisas de um jeito que parece até que eles realmente estão entendendo detalhes de todos os assuntos, mesmo que seja somente um texto escrito pelo assessor.</p>

<p>Mas falando do conteúdo, duas coisas me chamaram muito a atenção. Primeiro foi que o evento contava com enviados das embaixadas da China e da Índia. Nisso eu fiquei pensando: onde estaria o representante brasileiro? O governo brasileiro envia representantes para eventos os mais esdrúxulos possíveis, mas será que ninguém da embaixada em Ottawa ou do consulado em Toronto sabia desse evento e/ou se interessou por ele? Qual seria o motivo da missão brasileira no Canadá, somente dar suporte à cidadãos brasileiros, ou participar mais ativamente em parcerias que podem trazer benefícios enormes para o país? O Canadá não tem uma economia comparável, em tamanho, à dos EUA ou da Europa, mas é não é de se desprezar, como nossos concorrentes chineses e indianos sabem muito bem. Segundo o ministro, Ontario é o distrito do G8 (e possivelmente do mundo) com maior densidade de graduados em universidades (distritos seriam estados ou províncias, já que provavelmente existem focos menores com maior densidade). Isso significa um grande potencial de crescimento na região, já que conta com muita mão de obra qualificada (e um governo que, apesar de todos os problemas, tenta ajudar).</p>

<p>O segundo ponto interessante tem relação com os incentivos do governo provincial para a criação de novos negócios. Existem inúmeros projetos, mas dois chamam a atenção. Primeiro, o governo tem um projeto com um fundo de alguns bilhões de dólares pra investir em empresas de tecnologia. O interessante é que, se você tem um projeto e aplica para conseguir fundos, o governo <strong>garante</strong> que responde em 45 dias. Isso é realmente impressionante, pois avaliar um projeto desses sempre requer contatos com especialistas e outras milhões de burocracias atrapalhando. Segundo o ministro, o governo quer ser um &#8220;parceiro&#8221; que anda na &#8220;velocidade da nova economia&#8221;. Segundo, novas empresas que são baseadas em tecnologia própria tem <em>10 anos de isenção fiscal</em>. Isso é o governo trabalhando pra ajudar as empresas, não pra chupar o sangue delas! Na minha última ida ao Brasil eu conversei com um amigo que abriu uma empresa de tecnologia. Ele me disse que cerca de 40% dos gastos da empresa eram impostos, desde taxas diretas da venda até encargos para os empregados. Se o governo cortasse esses impostos para empresas recém criadas, ele teria 40% mais investimento pra crescer! E <em>depois</em> o governo poderia reter 20% de impostos de um bolo <em>muito maior</em>. É claro que tem-se que tomar muito cuidado com essas medidas, senão vão surgir milhares de empresas se recriando a cada dois anos pra ficar sempre na categoria de &#8220;novas empresas&#8221;, mas eu imagino que algo bem pensado nessa direção seja muito proveitoso.</p>

<p>Bem, vamos ao painel então. O título era &#8220;Failures on the Road to Success&#8221; (literalmente, fracassos no caminho do sucesso). A proposta era basicamente discutir como fracassos fazem parte da busca por sucesso, principalmente em áreas muito imprevisíveis (veja no último texto sobre os Black Swans). Os palestrantes não entraram muito em conflito e todos eles defendiam a tese de que fracassos anteriores são considerados positivamente no vale do silício por analistas de investimento. Isto é, quando alguém vai analisar se vai pôr dinheiro na sua idéia, você ter feito uma besteira anterior é positivo, pois você ganhou experiência, talvez perdeu dinheiro (dos outros), mas tem mais chance de dar certo agora. Infelizmente, e isso eu achei o ponto fraco da discussão, nenhum dos palestrantes admitiu realmente ter fracassado feio. Somente um deles contou um caso em que o fracasso inicial no fim se transformou num sucesso (ele apostou na moeda errada, mas depois de alguns anos ela se tornou a certa). Ou seja, não sei até que ponto é só glamour essa idéia de glorificar o fracasso passado.</p>

<p>Mas outras duas mensagens curtas do painel também foram legais. Primeiro, eles pisaram e falaram mal de venture capitalists. Disseram que eles não estão nem aí para o seu negócio, tudo que querem é retorno do investimento, etc, tudo aquilo que a gente já sabe, mas é sempre bom repetir: no melhor dos mundos, cresça o quanto der, até sua empresa ter o máximo possível de valor de mercado antes de procurar investidores. Segundo, eles disseram nua e cruamente: cientistas da computação não sabem fazer negócios. Isso não significa que não existam computeiros que possam ser ótimos homens de negócios, mas simplesmente que o tipo de treinamento e skills necessários pra ser um bom manager, para negociar com clientes, etc, não é exatamente o que é ensinado em um curso de computação. A dica é, se você entende muito de tecnologia e sabe muito bem como desenvolver produtos, se concentre nessa área e se associe com uma pessoa que é especialista em vender a sua tecnologia e o seus produtos. Mais uma que a gente já sabia!</p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2008/06/11/impressoes-da-discovery-%e2%80%9808-parte-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Eu não falei? Não estamos sozinhos.</title>
		<link>http://log4dev.com/2008/05/28/eu-nao-falei-nao-estamos-sozinhos/</link>
		<comments>http://log4dev.com/2008/05/28/eu-nao-falei-nao-estamos-sozinhos/#comments</comments>
		<pubDate>Wed, 28 May 2008 16:11:10 +0000</pubDate>
		<dc:creator>Raphael Lullis</dc:creator>
				<category><![CDATA[Formação]]></category>
		<category><![CDATA[Notícias]]></category>

		<guid isPermaLink="false">http://log4dev.com/2008/05/28/eu-nao-falei-nao-estamos-sozinhos/</guid>
		<description><![CDATA[O editor-chefe adoooooora usar ditos populares como títulos de seus textos. Se eu adotasse esse estilo como forma de puxa-saquismo (imitation is the most sincere form of flattery, after all), o título desse post seria &#8220;Quem procura, acha.&#8221; Aproveitei que as coisas deram uma acalmada pra tentar responder eu mesmo à minha última provocação. Há [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2008/05/28/eu-nao-falei-nao-estamos-sozinhos/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>O editor-chefe adoooooora usar ditos populares como títulos de seus textos. Se eu adotasse esse estilo como forma de puxa-saquismo (<em>imitation is the most sincere form of flattery</em>, after all), o título desse post seria &#8220;Quem procura, acha.&#8221;</p>

<p>Aproveitei que as coisas deram uma acalmada pra tentar responder eu mesmo à minha última provocação. Há sim gente boa escrevendo no Brasil e buscando a comunidade dentro do próprio país.  Nas minhas andanças, já encontrei e foram parar no meu RSS os seguintes:
<ul>
    <li><a href="http://1up4dev.blogspot.com/" title="1up4Developers">1up4Developers</a></li>
    <li><a href="http://www.brunodulcetti.com/blog">Bruno Dulcetti</a></li>
    <li><a href="http://blpsilva.wordpress.com/" title="Bruno Pereira">Bruno Pereira</a></li>
    <li><a href="http://thiagoarrais.wordpress.com/" title="Mergulhando no Caos">Mergulhando no Caos</a></li>
    <li><a href="http://marcospereira.wordpress.com/" title="Motor Curiosidade">Motor Curiosidade</a></li>
    <li><a href="http://pythonologia.org/" title="Pythonologia">Pythonologia</a></li>
</ul>
Google Reader é seu amigo. Adicionem esse pessoal, participem, troquem idéias. E se encontraram mais gente interessante, dêem o toque.</p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2008/05/28/eu-nao-falei-nao-estamos-sozinhos/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Leia mais</title>
		<link>http://log4dev.com/2008/04/29/leia-mais/</link>
		<comments>http://log4dev.com/2008/04/29/leia-mais/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 13:04:20 +0000</pubDate>
		<dc:creator>Miguel Galves</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Formação]]></category>

		<guid isPermaLink="false">http://log4dev.com/2008/04/29/leia-mais/</guid>
		<description><![CDATA[Cumprindo meu papel de ficar pentelhando os outros colaboradores para escrever mais e ao mesmo tempo ficar escrevendo pequenos artigos com que exigem pouco esforço mental da minha parte, eis um link para um artigo do Coding Horror bem interessante sobre a questão da leitura de livros sobre computação: http://www.codinghorror.com/blog/archives/001108.html Dizem por aí que se [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2008/04/29/leia-mais/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>Cumprindo meu papel de ficar pentelhando os outros colaboradores para escrever mais e ao mesmo tempo ficar escrevendo pequenos artigos com que exigem pouco esforço mental da minha parte, eis um link para um artigo do <a href="http://www.codinghorror.com/">Coding Horror</a> bem interessante sobre a questão da leitura de livros sobre computação:</p>

<p><a href="http://www.codinghorror.com/blog/archives/001108.html">http://www.codinghorror.com/blog/archives/001108.html</a></p>

<p>Dizem por aí  que se você lê regularmente blogs e sites especializados em desenvolvimento, tecnologia, mercado e afins, você já é um profissional diferenciado.  Existe até um número descrevendo isso: 20% apenas dos desenvolvedores se interessam por este tipo de material (eu vi este número em vários textos. Infelizmente não tenho as referências comigo agora, portanto terão que acreditar na minha palavra).</p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2008/04/29/leia-mais/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

