<?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; Pesquisa</title>
	<atom:link href="http://log4dev.com/category/pesquisa/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>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>Coisas legais para se fazer com um Wiimote e o Projeto Natal</title>
		<link>http://log4dev.com/2009/09/13/coisas-legais-para-se-fazer-com-um-wii-remote/</link>
		<comments>http://log4dev.com/2009/09/13/coisas-legais-para-se-fazer-com-um-wii-remote/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 03:29:17 +0000</pubDate>
		<dc:creator>Leonardo Garcia</dc:creator>
				<category><![CDATA[Notícias]]></category>
		<category><![CDATA[Pesquisa]]></category>
		<category><![CDATA[Produto]]></category>
		<category><![CDATA[interação]]></category>
		<category><![CDATA[Interfaces]]></category>
		<category><![CDATA[Jogos]]></category>

		<guid isPermaLink="false">http://log4dev.com/?p=641</guid>
		<description><![CDATA[Esta nem é tão nova assim, mas se alguém ainda não viu acho que vale a pena ver. O Wii é hoje talvez o vídeo-game de última geração que mais unidades vendeu. E muito disso certamente se deve ao novo modo de interação com o usuário que ele introduziu, já que em termos de inovação [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2009/09/13/coisas-legais-para-se-fazer-com-um-wii-remote/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>Esta nem é tão nova assim, mas se alguém ainda não viu acho que vale a pena ver.</p>

<p>O Wii é hoje talvez o vídeo-game de última geração que mais unidades vendeu. E muito disso certamente se deve ao novo modo de interação com o usuário que ele introduziu, já que em termos de inovação e evolução de tecnologia de processadores, por exemplo, ele fica bem atrás de seus concorrentes XBox 360 e PlayStation 3. Já falei um pouco sobre isso <a href="http://log4dev.com/2007/04/16/wii-ou-os-video-games-e-a-inovacao-na-computacao-parte-2/">aqui</a>. Nesse post, inclusive, disse que achava que esta nova forma de interação do Wii poderia introduzir novas alternativas para a computação de uma forma geral. Este post atual é sobre isto.</p>

<p>Todo este novo modo de interação com o usuário introduzido pelo Wii é responsabilidade do Wiimote, o controle do vídeo-game. O que talvez nem todo mundo saiba é que é possível utilizar o Wiimote para tarefas que não aquelas para as quais ele foi originalmente desenhado, ou seja, ser apenas um controle de vídeo-game.</p>

<p>Os vídeos abaixo mostram ao menos três coisas muito legais que são possíveis de se fazer com um Wiimote. Basicamente elas utilizam o fato de o controle ter uma câmera infra-vermelha embutida para captar movimentos e o fato de ele também ser um dispositivo bluetooth para enviar estas informações para um programa rodando em um computador. Este programa traduz as informações captadas pela câmera em ações no computador.</p>

<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/0awjPUkBXOU" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/0awjPUkBXOU"> </embed></object></p>

<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/5s5EvhHy7eQ" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/5s5EvhHy7eQ"> </embed></object></p>

<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/Jd3-eiid-Uw" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/Jd3-eiid-Uw"></embed></object></p>

<p>Mais informações sobre os projeto de Johnny Lee podem ser encontradas <a href="http://johnnylee.net/projects/wii/">aqui</a>.</p>

<p>Apesar de eu não conhecer nenhuma, imagino que existam ferramentas comerciais capazes de prover estas funcionalidades. O que mais me chamou a atenção nestes casos foi a simplicidade e a maneira quase prosáica com que foi possível montar sistemas de interação relativamento complexos e capazes de obter informações mais parecidas com aquelas que o ser humano está acostumado a lidar, como movimentos naturais do corpo.</p>

<p>Por outro lado, também é interessante pensar nos tipos de aplicações em que estas soluções podem ser utilizadas. Fico imaginando quantos artistas plásticos que trabalham com mídias digitais ou arquitetos e engenheiros que trabalham com desenho técnico conhecem estas tecnologias e o quanto elas poderiam auxiliar o dia-a-dia deles.</p>

<p>Estas soluções nos aproximam cada vez mais de cenários pensados em filmes e livros de ficção científica. Um outro salto nesta direção está sendo dado pelo Projeto Natal da Microsoft (que, por sinal, é liderado por Alex Kipman, um brasileiro &#8212; veja uma entrevista dele para a revista Exame <a href="http://forum.jogos.uol.com.br/Exame--O-brasileiro-por-tras-do-Projeto-Natal_t_283441">aqui</a>). O propósito é relativamente parecido com a proposta dos projetos do Johnny lee, mas agora são utilizadas imagens reais captadas por uma câmera normal. Inicialmente pensado para o XBox 360, certamente o Projeto Natal também será extendido para PCs no futuro. O primeiro dos vídeos é o vídeo institucional de lançamento do sistema. Achei ele bem marketeiro e tenho dúvidas sobre quanto do que é mostrado já é realidade. Já o segundo me parece mais com um tipo de aplicação demo que é desenvolvida para o teste de um sistema deste tipo. De qualquer forma, tendo uma empresa como a Microsoft por trás destas campanhas de marketing, é difícil dizer qual o estágio de amadurecimento deste sistema apenas pelos vídeos na Internet. Só vendo uma demonstração real para saber mesmo.</p>

<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/g_txF7iETX0" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/g_txF7iETX0"></embed></object></p>

<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/CPIbGnBQcJY" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/CPIbGnBQcJY"></embed></object></p>

<p>De qualquer forma, eu não ficaria surpreso se estivermos interagindo com computadores das maneiras como foram propostas acima em poucos anos.</p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2009/09/13/coisas-legais-para-se-fazer-com-um-wii-remote/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Publish or Perish</title>
		<link>http://log4dev.com/2009/02/11/publish-or-perish/</link>
		<comments>http://log4dev.com/2009/02/11/publish-or-perish/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 15:03:32 +0000</pubDate>
		<dc:creator>Miguel Galves</dc:creator>
				<category><![CDATA[Ferramentas]]></category>
		<category><![CDATA[Pesquisa]]></category>

		<guid isPermaLink="false">http://log4dev.com/?p=430</guid>
		<description><![CDATA[Por Ricardo Capitanio Ano passado comecei a escrever a minha dissertação de mestrado. Percebi que para determinados autores é muito difícil encontrar referências bibliográficas, mesmo com a ajuda do santo Google Acadêmico. Nesse contexto, ao fazer a limpeza de final de ano achei o link do programa Publish or Perish enviado por um amigo e [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2009/02/11/publish-or-perish/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div><span style="font-size: xx-small;">Por <a href="http://www.capitanio.net/" target="_blank">Ricardo Capitanio</a></span></p>

<p><span style="font-size: x-small;">Ano passado comecei a escrever a minha dissertação de mestrado. Percebi que para determinados autores é muito difícil encontrar referências bibliográficas, mesmo com a ajuda do santo <a href="http://scholar.google.com.br/schhp?hl=pt-BR" target="_blank">Google Acadêmico</a>. </span></p>

<p>Nesse contexto, ao fazer a limpeza de final de ano achei o link do programa <a href="http://www.harzing.com/pop.htm" target="_blank">Publish or Perish</a> enviado por um amigo e resolvi finalmente testá-lo. O <a href="http://www.harzing.com/pop.htm%20" target="_blank">Publish or Perish</a> promete medir o impacto da pesquisa de um determinado indivíduo e inclusive se auto-intitula como uma ferramenta para servir de avaliação para pesquisadores em geral. Nesse software são utilizadas tanto <a href="http://thomsonreuters.com/products_services/scientific/Web_of_Science" target="_blank">fontes ISI</a> como não-ISI, ampliando as chances de encontrar os artigos de um determinado pesquisador.
<p align="center"><a href="http://www.harzing.com/img/pop.png" target="_blank"><img style="border: 0pt none; margin: 0px;" src="http://www.harzing.com/img/pop.png" border="0" alt="Publish or Perish screen shot" hspace="0" vspace="0" width="490" height="384" /></a>
(<a href="http://www.harzing.com/img/pop.png" target="_blank">Clique na imagem para ver uma imagem ampliada. Fonte: Publish or Perish website</a>)</p>

<p>A ideia geral do programa é: &#8220;<em>Se um acadêmico mostra boas métricas de citação, é muito provável que ele/ela tem um impacto significante em seu campo de atuação</em>&#8220;. Entretanto o <a href="http://www.harzing.com/pop.htm" target="_blank">próprio website do programa</a> informa algumas razões possíveis para resultados numericamente ruins para bons pesquisadores:
<ul>
    <li>Pesquisa realizada em campo restrito (o que potencialmente gera um baixo número de citações);</li>
    <li>Publicações em língua diferente de Inglês, o que restringe os potenciais leitores;</li>
    <li>Publicação principal em livros.</li>
</ul>
Para testar o programa, utilizei os professores do <a href="http://www.dca.fee.unicamp.br/" target="_blank">Departamento de Computação e Automação</a> da <a href="http://goog_1231849627027/" target="_blank">Faculdade de Engenharia Elétric</a><a href="http://www.fee.unicamp.br/" target="_blank">a e de Computação </a>da <a href="http://www.unicamp.br/" target="_blank">UNICAMP</a>, onde atualmente realizo a minha pesquisa. Reduzi o escopo para os artigos publicados entre os anos de 2003 e 2008,  e considerei os seguintes professores: Dr. Clésio Luiz Tozzi (Visão Computacional), Dr. Eleri Cardozo (Redes de Computadores),  Dr. Fernando Gomide (Sistemas Fuzzy), Dr. Fernando Von Zuben (Computação Evolutiva), Dr. Ivan Ricarte (Tecnologia Educacional), José Mário de Martino (Computação Gráfica), Dr. Léo Pini Magalhães (Animação),  Dr. Marco Henriques (Processamento paralelo e distribuído), Dr. Mário Jino (Teste de Software), Dr. Mauricio Ferreira (Redes de Computadores), Dr. Rafael Mendes (Controle), Dr. Ricardo Gudwin (Semiótica computacional), Dr. Roberto Lotufo (Processamento digital de imagens) e Dr. Wagner Amaral (Controle dinâmico de sistemas).</p>

<p>Nos resultados apresento os cinco primeiros, levando em consideração quatro dos vários critérios que podem ser escolhidos no programa.
<h2><a name="11ed14430ba78460_whatfor"></a></h2>
<h2></h2>
<table style="border-collapse: collapse; width: 196pt;" border="0" cellspacing="0" cellpadding="0" width="261"><col style="width: 130pt;" width="173"></col> <col style="width: 66pt;" width="88"></col>
<tbody>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt; width: 130pt; text-align: center;" width="173" height="17"><strong>Pesquisador</strong></td>
<td style="width: 66pt; text-align: center;" width="88"><strong>Número de artigos encontrados
</strong></td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Fernando Von Zuben</td>
<td style="text-align: center;">62</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Fernando Gomide</td>
<td style="text-align: center;">30</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Ricardo Gudwin</td>
<td style="text-align: center;">17</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Roberto Lotufo</td>
<td style="text-align: center;">15</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Mario Jino</td>
<td style="text-align: center;">14</td>
</tr>
</tbody></table>
<h2></h2>
<table style="border-collapse: collapse; width: 196pt;" border="0" cellspacing="0" cellpadding="0" width="261"><col style="width: 130pt;" width="173"></col> <col style="width: 66pt;" width="88"></col>
<tbody>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt; width: 130pt; text-align: center;" width="173" height="17"><strong>Pesquisador</strong></td>
<td style="width: 66pt; text-align: center;" width="88"><strong>Número de citações
</strong></td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Fernando Von Zuben</td>
<td style="text-align: center;">163</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Roberto Lotufo</td>
<td style="text-align: center;">105</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Fernando Gomide</td>
<td style="text-align: center;">71</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Ricardo Gudwin</td>
<td style="text-align: center;">62</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Wagner Amaral</td>
<td style="text-align: center;">37</td>
</tr>
</tbody></table>
<h2></h2>
<table style="border-collapse: collapse; width: 220pt;" border="0" cellspacing="0" cellpadding="0" width="293"><col style="width: 130pt;" width="173"></col> <col style="width: 90pt;" width="120"></col>
<tbody>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt; width: 130pt; text-align: center;" width="173" height="17"><strong>Pesquisador</strong></td>
<td style="width: 90pt; text-align: center;" width="120"><strong>Citações / Artigo
</strong></td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Roberto Lotufo</td>
<td style="text-align: center;">7,00</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Wagner Amaral</td>
<td style="text-align: center;">3,70</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Ricardo Gudwin</td>
<td style="text-align: center;">3,65</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Eleri Cardozo</td>
<td style="text-align: center;">3,00</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Ivan Ricarte</td>
<td style="text-align: center;">2,71</td>
</tr>
</tbody></table>
<h2></h2>
<table style="border-collapse: collapse; width: 217pt;" border="0" cellspacing="0" cellpadding="0" width="289"><col style="width: 130pt;" width="173"></col> <col style="width: 87pt;" width="116"></col>
<tbody>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt; width: 130pt; text-align: center;" width="173" height="17"><strong>Pesquisador</strong></td>
<td style="width: 87pt; text-align: center;" width="116"><strong>Artigos/Autor</strong></td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Fernando Von Zuben</td>
<td style="text-align: center;">19,37</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Fernando Gomide</td>
<td style="text-align: center;">12,37</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Ricardo Gudwin</td>
<td style="text-align: center;">6,28</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Roberto Lotufo</td>
<td style="text-align: center;">4,57</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">Mario Jino</td>
<td style="text-align: center;">4,37</td>
</tr>
</tbody></table>
<h2></h2>
O professor Dr. <a href="http://www.dca.fee.unicamp.br/%7Evonzuben/" target="_blank">Fernando Von Zuben</a> aparece como o de maior número de artigos, artigos/autor e número total de citações. O professor Dr. <a href="http://www.dca.fee.unicamp.br/%7Elotufo/" target="_blank">Roberto Lotufo</a> é o pesquisador com a maior média de citações por artigo.  Muitas <a href="http://www.harzing.com/pop.htm#metrics" target="_blank">outras métricas</a> podem ser utilizadas no <a href="http://www.harzing.com/pop.htm" target="_blank">Publish or Perish</a>.</p>

<p>O programa pode ser utilizado como mais um critério de escolha para o seu orientador em uma pós-graduação ou como argumento sistemático na escolha da citação no seu trabalho acadêmico de um determinado pesquisador.</p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2009/02/11/publish-or-perish/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Micro introdução sobre orientação a aspectos (AspectJ)</title>
		<link>http://log4dev.com/2008/11/04/micro-introducao-sobre-orientacao-a-aspectos-aspectj/</link>
		<comments>http://log4dev.com/2008/11/04/micro-introducao-sobre-orientacao-a-aspectos-aspectj/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 00:28:55 +0000</pubDate>
		<dc:creator>Thiago Bartolomei</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Ferramentas]]></category>
		<category><![CDATA[Pesquisa]]></category>

		<guid isPermaLink="false">http://log4dev.com/2008/11/04/micro-introducao-sobre-orientacao-a-aspectos-aspectj/</guid>
		<description><![CDATA[Eu estava pensando em escrever sobre algumas coisas que têm me interessado ultimamente e que têm alguma relação com o post sobre vazamento de memoria em Java, mas eu percebi que não teria como, sem fazer uma pequena introdução sobre programação orientada a aspectos (aspect oriented programming, AOP). A gente já discutiu um pouco sobre [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2008/11/04/micro-introducao-sobre-orientacao-a-aspectos-aspectj/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>Eu estava pensando em escrever sobre algumas coisas que têm me interessado ultimamente e que têm alguma relação com o <a href="http://log4dev.com/2008/10/25/vazamento-de-memoria-em-java/">post sobre vazamento de memoria em Java</a>, mas eu percebi que não teria como, sem fazer uma pequena introdução sobre programação orientada a aspectos (aspect oriented programming, AOP). A gente já discutiu um pouco sobre isso no post sobre <a href="http://log4dev.com/2008/04/24/poor-mans-profiler-decorators-em-python/">decorators em python</a>, mas não fizemos nada mais introdutório (se você já tem uma noção do assunto, provavelmente não vai achar esse artigo muito útil). Então nesse post eu vou falar sobre alguns conceitos de <a href="http://aosd.net">desenvolvimento orientado a aspectos</a>(AOSD), mas com ênfase descarada em AOP na forma como implementada em <a href="http://www.eclipse.org/aspectj/">AspectJ</a>. Eu não pretendo cobrir em profundidade o assunto, pretendo somente dar uma idéia da motivação e discutir alguns pontos sobre o paradigma. Além disso, eu vou usar na maioria a terminologia em inglês, pois eu acho estranho traduzir termos tecnológicos. Se alguem tiver interessado em termos em português, o pessoal do workshop em AOP (WASP&#8217;04) fez um <a href="http://twiki.dcc.ufba.br/bin/view/WASP04/Termos">catálogo de termos</a>.</p>

<p><strong>Motivação e Exemplo</strong></p>

<p>No meu ponto de vista, AOSD não é algo que veio revolucionar o desenvolvimento de software, mas sim um avanço incremental do paradigma de orientação a objetos (OO). Todo bom programador sabe que se deve tentar distribuir as responsabilidades (<em>concerns</em>) do programa em módulos, de forma que cada módulo seja fácil de implementar, entender e reusar. Em C, por exemplo, funções podem ser consideradas módulos. Pra qualquer programa não trivial, você não vai criar somente uma função <code>main()</code>, vai separar a funcionalidade em muitas funções que se chamam pra realizar o objetivo do software. Já OO prega a modularização do software em uma hierarquia de classes e conta com polimorfismo, herança, etc. A motivação de AOSD é que existem algum concerns que entrecortam a hierarquia, ou seja, que mesmo criando essa hierarquia de classes, você não tem como separar dois concerns que deveriam ser separados (para serem melhor implementados, entendidos e reusados).</p>

<p>Pra não ficar somente no abstrato, vamos à um exemplo bem simples, que é utilizado constantemente pra apresentar AOP. Imagine que você tem uma classe que faz o controle do acesso ao banco de dados. O código abaixo é um esboço de como uma classe dessas seria implementada em Java. Você tem um gerente de transações e, em todos os métodos de acesso ao banco de dados, você chama o gerente pra iniciar uma transação e fazer commit se tudo deu certo, ou rollback se deu algum problema. Note que hoje em dia ninguém faria um código assim, já que existem soluções melhores do que ficar escrevendo SQL no seu código (como <a href="http://www.hibernate.org">Hibernate</a>), mas é bem ilustrativo do problema.
<pre></p>

<p>public class DB {
    TransactionManager manager = ...;</p>

<pre><code>public void storeUser(User u) {
    manager.start();
    try {
        // write some sql code storing u into the DB
        manager.commit();
    } catch (DBException e) {
        manager.rollback();
    }
}
public void storeAccount(Account a) {
    manager.start();
    try {
        // write some sql code storing a into the DB
        manager.commit();
    } catch (DBException e) {
        manager.rollback();
    }
}
...
</code></pre>

<p>}</pre>
Claramente dá pra perceber que eu tô misturando dois concerns na mesma classe. Um é persistência (salvar o User e a Account no banco de dados) e outro é controle de transações. Em OO, não tem um jeito elegante de separar esses concerns. Você pode até tentar fazer uma interface com uma callback pra tentar minimizar a repetição de código, como no código abaixo, mas não fica ideal.
<pre></p>

<p>public interface TransactionalTask {
    public void execute();
}
public class TransactionManager {
    TransactionManager manager = ...;</p>

<pre><code>public void executeInTransaction(TransactionalTask task) {
    manager.start();
    try {
        task.execute();
        manager.commit();
    } catch (DBException e) {
        manager.rollback();
    }
}
...
</code></pre>

<p>}
public class DB {
    public void storeUser(User u) {
        manager.executeInTransaction(new TransactionalTask() {
            public void execute() {
                // write some sql code storing u into the DB
            }
        });
    }
    ...
}</pre>
A idéia de AOSD é criar um novo módulo (chamado aspecto) em que você possa encapsular esses concerns que não tem como você modularizar com classes. AspectJ é a implementação mais conhecida de AOP, tanto por ser a primeira, quanto por ser bem robusta e contar com apoio de diversas empresas. Em AspectJ, que é uma extensão de Java (todo código Java é código AspectJ válido), nós criaríamos um aspecto pra encapsular controle de transações. O pseudo código abaixo mostra a idéia (eu não testei o código, então não garanto copy-and-paste funcionando).
<pre></p>

<p>public aspect TransactionManagerAspect {
    TransactionManager manager = ...;</p>

<pre><code>around(Object o) : execution(public void DB.*(..)) &amp;amp;&amp;amp; args(o) {
    manager.start();
    try {
        proceed(o);
        manager.commit();
    } catch (DBException e) {
        manager.rollback();
    }
}
</code></pre>

<p>}</p>

<p>public class DB {</p>

<pre><code>public void storeUser(User u) {
    // write some sql code storing u into the DB
}
public void storeAccount(Account a) {
    // write some sql code storing a into the DB
}
...
</code></pre>

<p>}</pre>
A classe DB agora contém somente código relativo à persistência e o aspecto é responsável pelo controle de transações. Em terminologia de AOSD, <code>around</code> é um tipo de <em>advice</em> e <code>execution</code> um tipo de <em>pointcut</em>. O que esse código tá dizendo é que sempre que a execução do programa for iniciar um método publico, que retorna void, na classe DB, o método deve ser substituído (por isso &#8220;around&#8221;) por esse advice aqui. O código do advice vai fazer o controle da transação e vai chamar <code>proceed</code> pra executar o código original. Note que o código do advice é muito parecido com a nossa solução usando callbacks. A grande novidade aqui é que usando pointcuts a gente consegue especificar quando que a &#8220;callback&#8221; deve ser usada, deixando o código da classe DB bem mais limpo.</p>

<p>Esse exemplo mostra a parte dinâmica da história, isto é, como usar aspectos pra &#8220;interceptar&#8221; alguns pontos da execução de um programa e inserir (ou remover) funcionalidade (código) nesses pontos. Mas AOSD também trata da parte estática ou &#8220;estrutural&#8221; da coisa. Por exemplo, imagine que no nosso exemplo nós quiséssemos inserir um controle de concorrência bem primitivo, pra garantir que ninguém modificou o <code>User</code> no tempo entre eu buscar no banco e salvar. Pra isso, eu poderia adicionar um campo na classe <code>User</code> com um contador que é incrementado sempre que ele for salvo no banco. Desta forma, na hora de salvar, eu confiro se o valor do contador no objeto que recebi é o mesmo do banco de dados. Se não for, significa que alguém alterou o objeto e eu recebi um objeto inconsistente. Novamente, o problema é que esse campo não faz parte do concern persistência ou modelo de dados. Portanto, não faria sentido eu declarar o contador na classe <code>User</code>. Pra resolver esse problema, AspectJ usa <em>intertype declarations</em>, que permitem a declaracão de campos e métodos em outras classes. Por exemplo, o código abaixo declara e inicializa um campo <code>counter</code> na classe <code>User</code>, removendo dela o concern tratamento de concorrência.
<pre></p>

<p>public aspect ConcurrencyManagerAspect {
    long User.counter = 0;
    ...
}</pre>
<strong>Conceitos</strong></p>

<p>Quando eu estava descrevendo o exemplo eu me referi à alguns conceitos de AOSD. Mas acho importante deixar um pouco mais explícito, então seguem algumas definições.</p>

<p>Existem alguns eventos que acontecem durante a execução de um programa que são interessantes de serem interceptados. Esses pontos são chamados <em>join points</em>. Nós vimos que a execução de um método é um ponto interessante quando o objetivo é substituir o método ou introduzir funcionalidade antes ou depois do método. Outros join points, por exemplo, são a chamada de um método (não confundir com a execução), a leitura ou escrita de um campo, ou a inicialização estática de uma classe. Mas esses join points são eventos concretos que acontecem em tempo de execução. <em>Pointcuts</em> são um jeito de especificar de forma abstrata (por exemplo, com regular expressions) quais join points você quer interceptar. AspectJ oferece pointcuts primitivos pros join points mais importantes (como <code>execution</code>, <code>call</code>, <code>get</code>, etc) e outros pointcuts usados pra identificar os objetos envolvidos nos eventos e ligá-los a variáveis. No nosso exemplo, <code>args</code> foi usado pra pegar uma referência ao objeto passado como parâmetro ao método. Outros pointcuts importantes são <code>target</code> (e.g., o objeto que é o destino de uma chamada de método) e <code>this</code> (e.g., o objeto que faz a chamada).</p>

<p>Quando um join point acontece em runtime e ele faz match com um pointcut, então se executa o <em>advice</em> relativo ao pointcut (se tiver algum). Nós vimos como um advice do tipo <code>around</code> funciona. AspectJ também tem advices <code>before</code> e <code>after</code> (que pode ser <code>after throwing</code> ou <code>after returning</code>), que servem pra introduzir código antes ou depois do join point. <em>Intertype declarations</em> também são disponibilizadas por AspectJ pra introduzir novos campos métodos em outras classes, como vimos no exemplo.</p>

<p>Um aspecto é então um módulo usado pra encapsular todas essas construções, do mesmo jeito que uma classe encapsula métodos e campos. O objetivo principal de um aspecto é de modularizar um interesse (concern) que não faz parte da decomposição normal da hierarquia de classes. Esses concerns são chamados de <em>crosscutting concerns</em>, porque eles entrecortam a hierarquia. A implementação de um concern é dita espalhada (scattered) quando ela não está localizada, e entrelaçada (tangled) quando ela está misturada com outros concerns.</p>

<p>Pra quem tiver interesse, o <a href="http://www.eclipse.org/aspectj/doc/released/progguide/index.html">AspectJ Programming Guide</a> é um excelente tutorial com bons exemplos e referências pros diversos tipos de pointcuts, além de explicar alguns problemas que você pode encontrar quando não tiver muita experiência com aspectos.</p>

<p><strong>Discussão</strong></p>

<p>No texto acima eu tratei AOSD e AOP quase como sinônimos, mas eu quero enfatizar que são distintos. Orientação a aspectos surgiu como AOP, pois trazia soluções pra problemas diretamente ligados ao código, como no exemplo sobre controle de transações. Contudo, percebeu-se que seria interessante elevar o nível de abstração e que crosscutting concerns podiam também ser encontrados em design, arquitetura, análise de requisitos, etc. Então AOSD trata não só da programação, mas também de todo o conjunto de metodologias, processos, etc, ligados ao desenvolvimento de software usando a idéia de que crosscutting concerns devem ser tratados como &#8220;first class citizens&#8221;.</p>

<p>Na minha experiência, AOP como encontrada em AspectJ é utilizada quase que exclusivamente em círculos acadêmicos. Existem algumas empresas que adotam AspectJ para alguns projetos, mas a linguagem está longe de ser adotada em larga escala. Porém, alguns conceitos de AOP são muito usados em alguns frameworks e application servers como <a href="http://www.springframework.org">Spring</a> e <a href="http://jboss.org">JBoss</a>. Spring, por exemplo, tem o conceito de interceptors, que nada mais são do que pointcuts e advice, mas menos poderosos (não permitem interceptar join points de pouca granularidade, como getters, se não me engano).</p>

<p>Eu acredito que existem atualmente dois grandes impedimentos pra se usar AOP em larga escala. Primeiro é a tecnologia do compilador. Hoje em dia ninguém aceita trabalhar com um compilador que não seja incremental. Quando você usa Eclipse e faz uma alteração no código, o JDT só compila o necessário. O similar para AspectJ, AJDT, tenta fazer o mesmo. Porém, a tarefa é muito mais difícil, pois uma pequena mudança tem que ser verificada perante todos os pointcuts do seu sistema, pois de repente o que você mudou pode agora ser interceptado pelo pointcut. Assim, apesar de ter uma performance relativamente boa, trabalhar com AspectJ usando AJDT não é tao agradável quanto trabalhar com Java usando JDT.</p>

<p>Segundo, AOSD não vai acabar com todos os seus problemas. É difícil pros programadores entenderem os conceitos e leva tempo pra comunidade desenvolver design patterns e entender o que tirar de melhor do paradigma. Pointcuts são atualmente regular expressions, então eles são frágeis e qualquer mudança de nome de um método pode fazer um pointcut não mais interceptar aquele método, e você não tem como perceber que isso aconteceu. Suporte de boas ferramentas é então essencial. Além disso, eu tenho dúvidas de que aspectos sejam bons pra modularizar concerns heterogêneos como &#8220;logging&#8221;, que foi sempre um dos principais exemplos. O problema é que cada instância de logging é muito específica pro contexto, então não faz sentido você remover todas as chamadas de log e encapsular em um advice, pois o advice teria que ser diferente pra cada ponto que ele interceptasse. Controle de transações é homogêneo, pois o advice sempre faz a mesma coisa, então é um exemplo mais apropriado. Existem estudos que apontam que Mixin Layers são melhores pra concerns heterogêneos como logging, mas isso seria assunto para um outro post.</p>

<p>==========================
Nota no dia 5/11</p>

<p>Conversando com o Miguel eu acabei percebendo algo que talvez não tenha ficado muito claro. AspectJ é uma extensão de Java e precisa de um compilador especial que compila as classes como se fossem Java e depois analisa os aspectos do sistema e faz diretamente as modificações no código (ou introduz testes de tempo de execução quando não tem como verificar estaticamente o resultado). Esse último passo, &#8220;introduzir os aspectos&#8221;, é chamado <em>weaving</em>.</p>

<p>Existem duas alternativas principais de compiladores pra AspectJ. O ajc é parte do <a href="http://www.eclipse.org/ajdt/">AJDT</a>, que é uma extensão do JDT do Eclipse. Como o JDT, o AJDT contém editor, compilador, debugger, e tudo o mais, implementados em plugins pro Eclipse. O principal objetivo do projeto é que a compilação seja rápida pra que você tenha a mesma experiencia que programando em Java, ou seja, ele tenta ser incremental e o código do compilador em si é otimizado (leia-se, não-facilmente extensível).</p>

<p>A outra alternativa é o abc (<a href="http://aspectbench.org">Aspect Bench Compiler</a>), que é um compilador acadêmico cujo objetivo principal é ser extensível pra que se possa fazer pesquisa com linguagens de programação, otimização de código, análise estática, etc. Dessa forma, compilar um sistema grande com abc, principalmente usando as otimizações disponíveis, é bem demorado. O ideal é programar usando o AJDT e usar o abc pra gerar o bytecode de produção, já que ele é bem mais otimizado que o gerado pelo ajc.</p>

<p>Além disso, AspectJ não é a única linguagem orientada à aspectos derivada de Java. No site da aosd.net, por exemplo, tem uma lista com alguns <a href="http://aosd.net/wiki/index.php?title=Supported_Systems">sistemas</a> (derivados ou não de Java) e algumas <a href="http://aosd.net/wiki/index.php?title=Tools_for_Developers">ferramentas</a> orientadas a aspectos.</p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2008/11/04/micro-introducao-sobre-orientacao-a-aspectos-aspectj/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Máquina do tempo</title>
		<link>http://log4dev.com/2008/10/01/maquina-do-tempo/</link>
		<comments>http://log4dev.com/2008/10/01/maquina-do-tempo/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 12:08:34 +0000</pubDate>
		<dc:creator>Miguel Galves</dc:creator>
				<category><![CDATA[Idéias]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[Pesquisa]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://log4dev.com/2008/10/01/maquina-do-tempo/</guid>
		<description><![CDATA[O Google está comemorando 10 anos, e para a ocasião, sairam atrás de relíquias guardadas no fundo de algum servidor perdido no Googleplex. Encontraram um arquivo de indices de busca de 2001, que depois de alguns ajustes, foi restaurado. Obviamente eles não poderiam deixar de colocar isso no ar, e como nada no Google é [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2008/10/01/maquina-do-tempo/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>O <strong>Google</strong> está comemorando 10 anos, e para a ocasião, sairam atrás de relíquias guardadas no fundo de algum servidor perdido no Googleplex. Encontraram um <strong>arquivo de indices de busca de 2001</strong>, que depois de alguns ajustes, foi restaurado. Obviamente eles não poderiam deixar de colocar isso no ar, e como nada no Google é deixado ao acaso, eles ainda restauraram as páginas da época, à partir do cache deles.</p>

<p>Esta brincadeirinha, disponível para acesso <a href="http://www.google.com/search2001.html">aqui</a> (http://www.google.com/search2001.html) permite fazer duas coisas interessantes. A primeira é relembrar como era a Internet de 2001, quais os assuntos na moda e quais os termos que ainda estavam por vir. A segunda é ver como o design das páginas evoluiu nestes 7 anos, pois é possível ver a versão atual da página e a versão da época.</p>

<p>Fiz a busca pela palavra iTunes, e comparei os dois primeiros resultados. O primeiro é o site da Apple, <a href="http://web.archive.org/web/20011217002903/www.apple.com/itunes/">versão 2001</a> e <a href="http://www.apple.com/itunes/">versão 2008 </a>. O outro é um artigo da revista Business Week, sobre o tocador, O texto original continua lá, mas o design da página mudou bastante, de <a href="http://web.archive.org/web/20011211221558/www.businessweek.com/bwdaily/dnflash/jan2001/nf20010124_897.htm">2001</a> para <a href="http://www.businessweek.com/bwdaily/dnflash/jan2001/nf20010124_897.htm">hoje</a>.</p>

<p>Mais informações podem ser encontradas no <a href="http://googleblog.blogspot.com/2008/09/2001-search-odyssey.html">Official Google Blog</a>.</p>

<p>======================================================</p>

<p><strong>Correção: como foi bem anotado pelo nosso leitor esquentadinho Luis, digno habitante do mundo real (porque o meu aparentemente é o mundo de Alice, quiçá da Lua) , o cache das páginas vem do <a href="http://www.archive.org/web/web.php">Internet Archive</a> que, confesso, eu não conhecia. Mas é culpa da mídia do meu mundo, um tanto quanto lerda&#8230;. </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2008/10/01/maquina-do-tempo/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Cryptology ePrint Archive</title>
		<link>http://log4dev.com/2008/06/30/cryptology-eprint-archive/</link>
		<comments>http://log4dev.com/2008/06/30/cryptology-eprint-archive/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 00:57:55 +0000</pubDate>
		<dc:creator>Leonardo Garcia</dc:creator>
				<category><![CDATA[Pesquisa]]></category>
		<category><![CDATA[Comunidade]]></category>
		<category><![CDATA[Criptografia]]></category>

		<guid isPermaLink="false">http://log4dev.com/2008/06/30/cryptology-eprint-archive/</guid>
		<description><![CDATA[Complementando um post do Alexandre sobre OpenSouce na Ciência tem um outro site muito interessante que disponibiliza artigos sobre criptografia que ainda não foram eventualmente aceitos em nenhum congresso: o Cryptology ePrint Archive. A idéia é parecida com a que foi citada pelo Alexandre: hoje pode ser muito difícil ter acesso ao conhecimento científico publicado [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2008/06/30/cryptology-eprint-archive/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>Complementando um post do Alexandre sobre <a href="http://log4dev.com/2008/02/19/opensource-na-ciencia/">OpenSouce na Ciência</a> tem um outro site muito interessante que disponibiliza artigos sobre criptografia que ainda não foram eventualmente aceitos em nenhum congresso: o <a href="http://eprint.iacr.org/">Cryptology ePrint Archive</a>.</p>

<p>A idéia é parecida com a que foi citada pelo Alexandre: hoje pode ser muito difícil ter acesso ao conhecimento científico publicado em revistas e congressos. Além disso em alguns campos do conhecimento como é o caso da criptografia existe um outro agravante: é necessário publicar idéias o mais rápido possível para evitar que outros a patenteiem antes. E, para completar, o site ainda funciona como um crivo não-oficial para idéias novas, isto porque não existem muitos requisitos para publicar no site: ou seja, se você tem uma idéia mas não sabe se ela é boa o suficiente você pode publicá-la (correndo é claro o risco de compartilhar sua idéia com outros antes de ela estar completa) e ver o retorno que a comunidade dá em relação a ela. Se for bom, com o tempo esta idéia pode amadurecer e virar um artigo em um congresso internacional.</p>

<p>O interessante é ver que na área de criptografia muitas coisas interessantes são publicadas no ePrint. Tem inclusive cientistas bons que estão defendendo abertamente a idéia de se publicar o conhecimento sem restrições sempre, como é o caso de <a href="http://cr.yp.to/djb.html">Daniel Bernstein</a>.</p>

<p>Já ouvi falar que existem portais parecidos para artigos em Física, além dos já citados pelo Alexandre. Enfim, um movimento muito interessante, que de certa forma força os pesquisadores a se importar mais com a qualidade e menos com a quantidade, já que seu artigo é &#8220;mais público&#8221; neste tipo de site. Algo que vai um pouco contra a &#8220;ditadura&#8221; de números que regem muitos institutos de pesquisa no mundo atualmente, onde é melhor quem publica mais e não necessariamente quem obtém melhores resultados.</p>

<p><em>P.S.: Editor-chefe, eu disse que eu postava algo este mês ainda! <img src='http://log4dev.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </em></p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2008/06/30/cryptology-eprint-archive/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Vamos dar uma espiadinha?</title>
		<link>http://log4dev.com/2008/06/23/vamos-dar-uma-espiadinha/</link>
		<comments>http://log4dev.com/2008/06/23/vamos-dar-uma-espiadinha/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 17:55:23 +0000</pubDate>
		<dc:creator>Miguel Galves</dc:creator>
				<category><![CDATA[Negocios]]></category>
		<category><![CDATA[Opinião]]></category>
		<category><![CDATA[Pesquisa]]></category>
		<category><![CDATA[Mercado]]></category>

		<guid isPermaLink="false">http://log4dev.com/2008/06/23/vamos-dar-uma-espiadinha/</guid>
		<description><![CDATA[A frase do título foi imortalizada por Pedro Bial no horroroso Big Brother Brasil (que, confesso, assisti assiduamente nos primeiros anos). Fato é que o ser humano é curioso, voyeur por natureza. O ser computeiro mais ainda. E a dúvida que bate na cabeça de muitos de nós é &#8220;Quanto ganha um engenheiro de SW [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2008/06/23/vamos-dar-uma-espiadinha/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>A frase do título foi imortalizada por Pedro Bial no horroroso Big Brother Brasil (que, confesso, assisti assiduamente nos primeiros anos).</p>

<p>Fato é que o ser humano é curioso, voyeur por natureza. O ser computeiro mais ainda. E a dúvida que bate na cabeça de muitos de nós é &#8220;Quanto ganha um engenheiro de SW numa empresa top como Google, Apple ou Microsoft?&#8221;</p>

<p>Bem, o site <a href="http://www.glassdoor.com/">GlassDoor.com</a> tem como proposta amenizar esta dúvida cruel, trazendo informações de funcionários anônimos das próprias empresas como salários por posição, opiniões sobre CEOs e nível de satisfação. Fico só imaginando o funcionário chegando no site, com sua voz de pato e a cara quadriculada&#8230; <img src='http://log4dev.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>

<p>Ja é possível dar uma espiadinha em empresas como <a href="http://www.glassdoor.com/Salaries/Google-Salaries-E9079.htm">Google</a>, <a href="http://www.glassdoor.com/Salaries/Microsoft-Salaries-E1651.htm">M$</a> e <a href="http://www.glassdoor.com/Salaries/Yahoo-Salaries-E5807.htm">Yahoo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2008/06/23/vamos-dar-uma-espiadinha/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>podcast!</title>
		<link>http://log4dev.com/2008/05/29/podcast-2/</link>
		<comments>http://log4dev.com/2008/05/29/podcast-2/#comments</comments>
		<pubDate>Thu, 29 May 2008 06:03:13 +0000</pubDate>
		<dc:creator>Thiago Bartolomei</dc:creator>
				<category><![CDATA[Opinião]]></category>
		<category><![CDATA[Pesquisa]]></category>

		<guid isPermaLink="false">http://log4dev.com/2008/05/29/podcast-2/</guid>
		<description><![CDATA[No começo do mês o Miguel perguntou: podcast? Eu não venho aqui com a resposta pronta (apesar do título ser uma exclamação), mas esse post é um pouco pra reavivar a discussão. Ultimamente tenho ido diariamente de bicicleta pro trabalho, o que leva em média uns 30 minutos, mais uns 10 minutos entre descer no [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2008/05/29/podcast-2/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>No começo do mês o Miguel perguntou: <a href="http://log4dev.com/2008/05/02/podcast">podcast?</a> Eu não venho aqui com a resposta pronta (apesar do título ser uma exclamação), mas esse post é um pouco pra reavivar a discussão.</p>

<p>Ultimamente tenho ido diariamente de bicicleta pro trabalho, o que leva em média uns 30 minutos, mais uns 10 minutos entre descer no elevador, destravar a bicicleta, travar de novo no trabalho e ir até o chuveiro. Isso faz com que eu tenha 80 minutos &#8220;livres&#8221; por dia, praticamente sem pensar em computação! Como bom computeiro, eu não podia deixar essa situação perdurar, então comecei a gravar podcasts no iPod e ir ouvindo no caminho. Por enquanto os assuntos não foram absorventes o suficiente pra me tirar a concentração no transito, e eu ainda não me matei&#8230;</p>

<p>Atualmente eu estou ouvindo as entrevistas do Markus Voelter na <a href="http://www.se-radio.net">Software Engineering Radio</a> (se-radio). Tem bastante coisa interessante por lá e eu to achando uma boa pra ter uma noção por cima de assuntos diversos. Eu acho que um podcast não é a mídia ideal pra passar os detalhes, mas você sempre pode correr atrás de saber mais sobre os assuntos que te interessaram mais.</p>

<p>A primeira pesquisa do post é : Que outros podcasts interessantes vocês conhecem, além do <a href="http://stackoverflow.com/">stackoverflow</a> que foi mencionado no post anterior?</p>

<p>Naquele post foi discutida também a idéia de criar um podcast do log4dev (pod4dev ou cast4dev, quem sabe até podcast4dev). Eu particularmente acho que seria muuuito trabalho e acho que algumas características teriam que ser muito bem pensadas, como:
<ul>
    <li>Assuntos: que tipo de assuntos seriam tratados no podcast? Se o intuito é somente dar a opinião sobre algum assunto, porque não usar o log4dev mesmo? Quero dizer, pra agregar valor, o podcast tem que aproveitar o seu diferencial, que é o som, então o conteúdo provavelmente tem que ser diferente do log4dev.</li>
    <li>Duração: qual vai ser a duração média de uma transmissão? O Lucas comentou no post anterior que o ideal seria 25 minutos, pois não fica cansativo. Os podcasts da se-radio são entre 40 e 50 minutos, o que é OK pra mim, mas não funcionaria pra todos. Apesar das entrevistas dele não ficarem cansativas, eu acredito que se eu não tivesse tanto tempo &#8220;disponível&#8221;, eu não iria parar o meu trabalho pra ficar ouvindo (e olhando pra onde?). É claro que a duração também é muito influenciada pelo assunto: uma entrevista de 25 minutos é muito curta, principalmente quando o entrevistado é bem interessante, mas 50 minutos falando em monólogo sobre algum assunto qualquer fica maçante.</li>
    <li>Equipamentos: que equipamentos teriam que ser adquiridos? Como o Evandro disse, não adianta fazer um podcast com um som porcaria, pois isso só iria irritar quem está tentando ouvir. Logo, alguns equipamentos de áudio teriam que ser adquiridos de alguma forma. Na se-radio, depois de um bom tempo com o som ruim, eles compraram um equipamento melhor, e depois conseguiram algumas doações e sponsors pra manter a radio funcionando, mas eu não acho que essa seja uma possibilidade realista.</li>
    <li>Periodicidade: com qual periodicidade seria publicado o podcast? De novo, o se-radio garante que publica a cada 10 dias. Vale a pena o editor-chefe definir uma garantia dessas? Com certeza essas garantias agradam ao público, pois eles sabem o que esperar. O difícil é honrar o compromisso&#8230;.</li>
</ul>
Esses são alguns pontos em que eu estive pensando e com certeza existem outros mais. A minha análise é obviamente muito baseada no se-radio que é o podcast com o qual eu tenho mais contato. Por isso mesmo a opinião de gente com mais experiência é muito importante.</p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2008/05/29/podcast-2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>podcast?</title>
		<link>http://log4dev.com/2008/05/02/podcast/</link>
		<comments>http://log4dev.com/2008/05/02/podcast/#comments</comments>
		<pubDate>Fri, 02 May 2008 04:13:06 +0000</pubDate>
		<dc:creator>Miguel Galves</dc:creator>
				<category><![CDATA[Pesquisa]]></category>

		<guid isPermaLink="false">http://log4dev.com/2008/05/02/podcast/</guid>
		<description><![CDATA[Recebi um email hoje de um leitor assíduo do blog, o Igor Cemim, sugerindo a criação de um podcast para o Log4Dev. Coincidência ou não, eu conversei sobre este tema com o Raphael na quarta, quando vínhamos de Campinas para São Paulo. O Raphael até achou que o email do Igor fosse algo que eu [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2008/05/02/podcast/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>Recebi um email hoje de um leitor assíduo do blog, o Igor Cemim, sugerindo a criação de um podcast para o <strong>Log4Dev</strong>. Coincidência ou não, eu conversei sobre este tema com o Raphael na quarta, quando vínhamos de Campinas para São Paulo. O Raphael até achou que o email do Igor fosse algo que eu tivesse fomentado. Mas não foi.</p>

<p>E esta idéia de termos um podcast é algo que está martelando na minha cabeça há algum tempo. Não sei bem o formato ainda, e sei que daria bastante trabalho. Mas imagino que seria bem divertido (como diriam os americanos, lots of fun!!!).</p>

<p>Seguindo uma sugestão do Raphael, gostaria de abrir a discussão para a &#8220;comunidade&#8221; deste blog: o que vocês achariam de termos um <strong>podcast</strong> (cast4dev, ou pod4dev)? Comentários, sugestões e nomes serão bem vindos.</p>

<p>E aproveito a deixa para sugerir o novo podcast criado pelo Joel Spolsky, chamado <a href="http://stackoverflow.com/">stackoverflow.com</a>, que discute temas interessantes de computação e de quebra ainda ajuda a aprimorar a compreensão do inglês.</p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2008/05/02/podcast/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Carreira e Pós-Graduação</title>
		<link>http://log4dev.com/2008/03/12/carreira-e-pos-graduacao/</link>
		<comments>http://log4dev.com/2008/03/12/carreira-e-pos-graduacao/#comments</comments>
		<pubDate>Wed, 12 Mar 2008 18:28:03 +0000</pubDate>
		<dc:creator>Thiago Bartolomei</dc:creator>
				<category><![CDATA[Formação]]></category>
		<category><![CDATA[Pesquisa]]></category>

		<guid isPermaLink="false">http://log4dev.com/2008/03/12/carreira-e-pos-graduacao/</guid>
		<description><![CDATA[Por Thiago &#8220;Bart&#8221; Bartolomei Este post nasceu de um email que eu mandei para amigos esta semana. O objetivo é de abrir uma discussão sobre a validade de se fazer uma pós graduação em área técnica. O que eu vou escrever aqui é a minha percepção, e eu gostaria que vocês comentassem, já que depois [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2008/03/12/carreira-e-pos-graduacao/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div><strong>            Por Thiago &#8220;Bart&#8221; Bartolomei</strong></p>

<p>Este post nasceu de um email que eu mandei para amigos esta semana. O objetivo é de abrir uma discussão sobre a validade de se fazer uma pós graduação em área técnica. O que eu vou escrever aqui é a minha percepção, e eu gostaria que vocês comentassem, já que depois da nossa graduação muitos de nós seguiram caminhos bem diferentes na carreira.</p>

<p>Existem basicamente 4 &#8220;opções de carreiras&#8221; pra quem se formou em Engenharia ou Ciência de Computação (sem contar mudar totalmente de área). Você pode entrar na área de consultoria não-técnica (financeira, management, etc): neste caso, acho que o que mais vale a pena eh fazer um MBA. Pelo que tenho visto, Stanford é a melhor opção, mas eu não tenho experiência pra comentar muito sobre isso.</p>

<p>A segunda opção seria você continuar na área da computação, mas partir pra algo mais gerencial. Nesse caso, o ideal talvez fosse fazer algum MBA mais voltado pra TI, talvez um mestrado em área técnica, desde que voltado pra gerência de processos, qualidade ou coisa assim.</p>

<p>A terceira opção seria ficar na área técnica mesmo. É claro que é bem difícil você ficar programando low-level a sua carreira inteira: alguma hora você vai ter que subir pra algo mais gerencial. Mas de qualquer forma, o foco seria tecnologia.</p>

<p>Finalmente, a quarta opção seria você fazer uma carreira &#8220;acadêmica&#8221;. Eu coloco entre aspas pois eu considero que hoje em dia ninguém vai ser professor de universidade e ficar num mundo paralelo, mas vai ter contatos com a indústria pra manter os pés no chão (e o dinheiro entrando). Eu também considero trabalhar em centros de pesquisa privados como carreira &#8220;acadêmica&#8221;.</p>

<p>Nesses dois últimos casos, eu vejo pós-graduação em área técnica como algo essencial. Eu tenho alguma experiência em universidades e empresas no Brasil, na Alemanha, no Canadá e conheço historias sobre EUA e outros países europeus. Na Europa praticamente todos saem da universidade com mestrado. O doutorado dura somente 3 anos e é bastante voltado pra indústria, que absorve essa mão de obra qualificada. No Canadá e nos EUA muitos fazem mestrado e os PhDs são muito bem vindos pela indústria. O diploma é essencial para entrar em grandes laboratórios de pesquisa (como IBM, Sun e Google), e inclusive já ouvi histórias de algumas empresas européias em que você simplesmente não sobe na carreira (mesmo em área gerencial) sem ter um PhD (nem que seja um PhD em Física ou Antropologia).</p>

<p>Em resumo, MSc e PhD são títulos muito bem vistos não somente por universidades, mas também por empresas.</p>

<p>Me parece que no Brasil as coisas não são bem assim: um profissional com doutorado é visto como alguém muito caro, que não vai trazer mais benefícios pra empresa do que um recém-graduado (que é muito mais barato). Por isso, a única opção pra doutores é tornar-se professor de universidades ou fundar a própria empresa (provavelmente uma consultoria técnica). Eu tenho a impressão que mestrado já não é mais visto como um problema, pois tenho visto bastante gente obtendo o título e depois indo para empresas.</p>

<p>Mas eu acredito que o mercado pra PhDs vai aumentar conforme o Brasil cresce e entra no mercado global em que o conhecimento e a tecnologia são as coisas mais importantes. Então as empresas vão aprender, como já o fazem as empresas indianas e chinesas, que um PhD pode trazer um conhecimento de ponta importantíssimo pra aumentar a competitividade da empresa.</p>

<p>Esta é a minha percepção. Vocês concordam com isso? Críticas? Sugestões?</p>

<p><strong>[Bart é Eng. de Computação formado pela UNICAMP, ex ponta esquerda e central do glorioso time de Handball da Computação e atual doutorando da Universidade de Waterloo, do Canadá.]</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2008/03/12/carreira-e-pos-graduacao/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

