<?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>Blog de Helton Duarte</title>
	<atom:link href="http://heltonduarte.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://heltonduarte.com</link>
	<description>O seu espaço sobre programação</description>
	<lastBuildDate>Fri, 15 Jul 2011 18:38:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>North America &#8211; Mid-Atlantic Regional 2010</title>
		<link>http://heltonduarte.com/2011/07/15/north-america-mid-atlantic-regional-2010/</link>
		<comments>http://heltonduarte.com/2011/07/15/north-america-mid-atlantic-regional-2010/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 18:38:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Treinamento Maratona - UFRN]]></category>
		<category><![CDATA[ACM ICPC Live Archive]]></category>
		<category><![CDATA[Algoritmo]]></category>
		<category><![CDATA[Maratona de Programação]]></category>
		<category><![CDATA[Matemática]]></category>
		<category><![CDATA[Mid-Atlantic 2010]]></category>
		<category><![CDATA[Programação Dinâmica]]></category>

		<guid isPermaLink="false">http://heltonduarte.com/?p=398</guid>
		<description><![CDATA[Olá pessoal!

Precisamos seguir nossos sonhos segundo a vontade de Deus! Apesar de estarmos com um comparecimento muito baixo (média de 2,5 pessoas por competição), nós não desistiremos, pois não podemos fazer pelos outros, mas também ninguém fará por nós, ou seja, cada um tem consciência do que precisa treinar caso queira algum dia ter um resultado melhor nessas competições. Novamente, fizemos uma prova em equipe, comparecendo somente 2 componentes da Absurdo Clássico e nada mais.]]></description>
			<content:encoded><![CDATA[<p><em>Olá pessoal!</em></p>
<p>Precisamos <strong>seguir nossos sonhos </strong>segundo a <strong>vontade de Deus!</strong> Apesar de estarmos com um comparecimento muito baixo (média de 2,5 pessoas por competição), nós não desistiremos, pois não podemos fazer pelos outros, mas também ninguém fará por nós, ou seja, cada um tem <strong>consciência do que precisa treinar</strong> caso queira algum dia ter um resultado melhor nessas competições. Novamente, fizemos uma <strong>prova em equipe</strong>, comparecendo somente 2 componentes da <strong>Absurdo Clássico</strong> e nada mais.</p>
<h3>Mid-Atlantic Regional 2010</h3>
<p><a href="http://heltonduarte.com/wp-content/uploads/2011/07/icpclogo_big.png"><img class="alignright size-medium wp-image-399" title="ACM ICPC" src="http://heltonduarte.com/wp-content/uploads/2011/07/icpclogo_big-300x189.png" alt="" width="300" height="189" /></a>Como já foi dito aqui, <a title="North America Regional Contests" href="http://cm.baylor.edu/public/worldMap/worldMap.icpc?contestId=870&amp;cid=62266" target="_blank">as provas da América do Norte</a> são muito boas para quem está começando a treinar, pois possuem um nível intermediário, ou seja, simula aproximadamente <strong>a primeira fase </strong>da <a title="Maratona de Programação" href="http://maratona.ime.usp.br" target="_blank">Maratona de Programação</a> aqui no Brasil. <a title="Mid-Atlantic Regional 2010" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=403" target="_blank">Essa prova</a> possuía <strong>8 questões</strong> e nosso desempenho foi um pouquinho melhor do que a passada, pois conseguimos resolver 4 questões em tempo de prova e mais 1 depois, totalizando <strong>5/8 (cinco oitavos) da prova analisados</strong> para vocês.</p>
<ul>
<li>
<h4>Problem A: Palindrometer</h4>
</li>
</ul>
<p><strong>LA ID:</strong> 4868. <strong>Link:</strong> <a title="Palindrometer" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=403&amp;page=show_problem&amp;problem=2869" target="_blank">Palindrometer.</a> <strong>Dificuldade (0 a 10):</strong> 2. <strong>Assunto:</strong> Matemática Básica.</p>
<p>Esse problema foi um dos mais fáceis da prova, senão o mais fácil. Ele consistia em encontrar qual era o<strong> menor palíndromo maior ou igual do que um número dado.</strong> Esse tarefa parece ser bem simples logo de cara, contudo <strong>pode se tornar traiçoeira</strong> caso você queira ir incrementando o número de 1 em 1 e verificando se ele tornou-se palíndromo, afinal temos limite de <strong>N &lt; 10^10</strong> e essa solução lhe daria um belo Time Limit Exceeded. Todavia, não se desespere! Que tal você seguir a ideia de <strong>gerar todos os palíndromos de antemão</strong> e depois só percorrer a lista e ver qual é o primeiro encontrado maior ou igual ao N dado? Como os números só podem ir até 9 dígitos, então um for simples até 10^4 geraria todos os palíndromos necessários (com casos especiais para uma quantidade ímpar de dígitos). Gostou da explicação? Mande suas dicas e dúvidas!</p>
<ul>
<li>
<h4>Problem B: Balloons</h4>
</li>
</ul>
<p><strong>LA ID:</strong> 4863. <strong>Link:</strong> <a title="Balloons" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=403&amp;page=show_problem&amp;problem=2864" target="_blank">Balloons.</a> <strong>Dificuldade (0 a 10):</strong> 3. <strong>Assunto:</strong> Guloso.</p>
<p>Agora chegamos no segundo mais fácil. Um <strong>problema de otimização</strong>, ou seja, devemos procurar qual o menor valor que satisfaz determinada condição (muito comum em competições de programação). Nesse caso, ele gostaria de saber qual a menor distância a ser percorrida para entregar os balões em uma competição dada a necessidade de cada time e a distância para cada uma das salas (eram 2). Logo de cara, percebe-se que <strong>a ideia é gulosa</strong>, no entanto podemos cair na armadilha de pensar que o que deve ser observado é a menor distância para as salas, ou seja, <strong>ordenar os times</strong> pelo mínimo entre a distância para a sala A e a distância para a sala B. Pense em um contra-exemplo para essa ideia! <strong>Quase desistíamos</strong> de fazer o problema quando vimos que essa ideia falhava, mas percebemos que ainda era guloso, contudo deveríamos <strong>ordenar pela diferença entre as distância para as salas,</strong> ou seja, entrega primeiro para as equipes que possuem uma maior diferença entre as distâncias. Deu para entender ou a ideia ficou confusa? Leia mais sobre algoritmos gulosos e dê também a sua dica!</p>
<ul>
<li>
<h4>Problem C: Selling Cells</h4>
</li>
</ul>
<p><strong>LA ID:</strong> 4916. <strong>Link:</strong> <a title="Selling Cells" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=403&amp;page=show_problem&amp;problem=2917" target="_blank">Selling Cells</a>.  <strong>Dificuldade (0 a 10):</strong> ? <strong>Assunto:</strong> Geometria.</p>
<p>Não conseguimos fazer esse problema. Qualquer dica, nos envie um comentário.</p>
<ul>
<li>
<h4>Problem D: Not One Bit More</h4>
</li>
</ul>
<p><strong>LA ID:</strong> 4864. <strong>Link:</strong> <a title="Not One Bit More" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=403&amp;page=show_problem&amp;problem=2865" target="_blank">Not One Bit More</a>.   <strong>Dificuldade (0 a 10):</strong> 5. <strong>Assunto:</strong> Matemática, Representação Binária.</p>
<p>Acredito que esse foi <strong>o problema que fiquei mais feliz</strong> em ter conseguido fazer! Graças a Deus, a ideia foi vindo de pouco em pouco (estávamos eu e Zailton fazendo juntos) e no final tínhamos uma bela resolução. Logo de cara, eu tenho medo de problemas que colocam limites muito altos, como o <strong>10^18</strong> que ele coloca, no entanto dá para perceber que esses limites são realmente para assustar. Como ele conta a quantidade de bits acesos, então <strong>em 1 passo o número estaria em, no máximo, 64,</strong> pois 10^18 &lt; 2^64. Nesse caso, calculamos a função dada no problema para todos os valores até 64 e, depois fazíamos um for, chamando a nossa função para cada número que tivesse K = X &#8211; 1, sendo X o valor passado, pois iríamos calcular os números que em 1 passo chegaria no nosso teste (confuso né?). Nessa nossa função principal (que fazia praticamente todo o cálculo do problema) nós <strong>contávamos quantos números menores do que nosso parâmetro possuíam exatamente N bits acesos</strong> e deixamos como exercício para você pensar. Para cada chamada, a quantidade de números entre LO e HI com N bits acesos seria <strong>f(HI + 1) &#8211; f(LO),</strong> tratando apenas os casos em que aparece o número 1 na contagem&#8230; Será que você também consegue fazer? Tente e depois nos passe suas dúvidas e dicas!</p>
<ul>
<li>
<h4>Problem E: Abstract Extract</h4>
</li>
</ul>
<p><strong>LA ID:</strong> 4917. <strong>Link:</strong> <a title="Abstract Extract" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=403&amp;page=show_problem&amp;problem=2918" target="_blank">Abstract Extract</a>.<a title="Not One Bit More" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=403&amp;page=show_problem&amp;problem=2865" target="_blank"></a> <strong>Dificuldade (0 a 10):</strong> ? <strong>Assunto:</strong> ?</p>
<p>Não conseguimos fazer esse problema. Qualquer dica, nos envie um comentário.</p>
<ul>
<li>
<h4>Problem F: Roller Coaster</h4>
</li>
</ul>
<p><strong>LA ID:</strong> 4870. <strong>Link:</strong> <a title="Roller Coaster" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=403&amp;page=show_problem&amp;problem=2871" target="_blank">Roller Coaster</a>.   <strong>Dificuldade (0 a 10):</strong> 5. <strong>Assunto:</strong> Programação Dinâmica.</p>
<p>Bem, e esse foi o problema que só conseguimos fazer depois de a competição ter terminado. Na verdade, fiz somente um pouco antes de escrever esse post. Ele é um problema bem interessante e <strong>essencial para quem quer se dar bem em competições </strong>e aprender algoritmo em si, pois envolve a técnica de <a title="Programação Dinâmica" href="http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_din%C3%A2mica" target="_blank">Programação Dinâmica (PD)</a>, a qual não é trivial de se dominar. De início, havia pensado em uma PD <strong>sobre a seção e o enjôo</strong> (dizziness), maximizando a diversão que se conseguia, contudo vi que <strong>o limite de enjôo era 300.000,</strong> enquanto que o de diversão, embora não explicitado na questão, é calculado facilmente como sendo 20.000. Dessa forma, <strong>a PD mais tranquila</strong> para se fazer, na minha opinião, seria <strong>sobre a seção e a diversão alcançada, minimizando o enjôo,</strong> ou seja, teríamos uma &#8220;recursão&#8221; (mas na verdade é preciso fazer essa <strong>PD bottom-up,</strong> pois não há como armazenar a tabela como um todo, devendo armazenar apenas 2 linhas) em que <strong>d(i, j) seria o menor enjôo que poderia se conseguir ao chegar na seção &#8220;i&#8221; com uma diversão total de &#8220;j&#8221;</strong>, deu para entender? Pense um pouquinho em como implementar essa ideia de forma rápida e, qualquer coisa, mande-nos suas dúvidas!</p>
<ul>
<li>
<h4>Problem G: Spy Cam</h4>
</li>
</ul>
<p><strong>LA ID:</strong> 4918. <strong>Link:</strong> <a title="Spy Cam" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=403&amp;page=show_problem&amp;problem=2919" target="_blank">Spy Cam</a>.   <strong>Dificuldade (0 a 10):</strong> ? <strong>Assunto:</strong> ?</p>
<p>Não conseguimos fazer esse problema. Qualquer dica, nos envie um comentário.</p>
<ul>
<li>
<h4>Problem H: Underground Cables</h4>
</li>
</ul>
<p><strong>LA ID:</strong> 4872. <strong>Link:</strong> <a title="Underground Cables" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=403&amp;page=show_problem&amp;problem=2873" target="_blank">Underground Cables</a>.   <strong>Dificuldade (0 a 10):</strong> 3. <strong>Assunto:</strong> Grafos, Árvore Geradora Mínima.</p>
<p>Quando comecei a ler esse problema me animei, pois percebi logo que era uma clássica <a title="Árvore Geradora Mínima" href="http://pt.wikipedia.org/wiki/%C3%81rvore_de_extens%C3%A3o_m%C3%ADnimahttp://pt.wikipedia.org/wiki/%C3%81rvore_de_extens%C3%A3o_m%C3%ADnima" target="_blank">Árvore Geradora Mínima</a>, todavia li um pouco depois &#8220;os cabos não podem se cruzar&#8221; e pensei: minha ideia foi por água abaixo! <strong>Como adaptar o algoritmo de MST</strong> para que não haja cruzamento de arestas? Simples: <strong>não precisa fazer nada!</strong> É possível ver intuitivamente (não tentei provar) que se houver um cruzamento, então haveria outra forma melhor de ter ligado essas arestas, já que o grafo aqui é um grid cartesiano. Portanto, esse problema é muito simples<strong> ao ser reduzido para um caso clássico de grafos.</strong> Não entendeu a explicação? Mande-nos sua dúvida!</p>
<p>Nessa competição, já pudemos utilizar o <strong>BOCA</strong> para simular o ambiente da <a title="Maratona de Programação" href="http://maratona.ime.usp.br" target="_blank">Maratona de Programação</a> e foi um sucesso! A partir de agora, tentaremos sempre utilizar o sistema, a fim de testarmos seu uso e nos acostumarmos mais com a situação. Espero que vocês <strong>tentem fazer a prova </strong>e obtenham um bom resultado!</p>
<p><strong>Posts interessantes:</strong></p>
<ul>
<li><a title="North America - East Central Regional 2010" href="http://heltonduarte.com/2011/07/09/north-america-east-central-regional-2010/">North America &#8211; East Central Regional 2010</a></li>
<li><a title="Waterloo Contest 2009 - Fall 2" href="http://heltonduarte.com/2011/06/29/waterloo-contest-2009-fall-2/">Waterloo Contest 2009 &#8211; Fall 2</a></li>
<li><a title="Computação e Matemática" href="http://heltonduarte.com/2011/02/15/computacao-e-matematica/">Computação e Matemática</a></li>
<li><a title="Não é apenas o emprego dos sonhos!" href="http://heltonduarte.com/2010/02/06/nao-e-apenas-o-emprego-dos-sonhos/">Não é apenas o emprego dos sonhos!</a></li>
<li><a title="Programando Melhor" href="http://heltonduarte.com/category/cursos/programando-melhor/">Programando Melhor</a></li>
</ul>
<p><em>E você, tentou fazer a prova do Mid-Atlantic Regional 2010? Conseguiu fazer todas essas questões? Fez alguma das que não conseguimos? Deixe como comentário as suas dúvidas e as suas dicas!</em></p>
<p><strong>Helton de Melo Duarte</strong></p>
<p><em>&#8220;Purificando a vossa alma na obediência à verdade, para amor fraternal, não fingido, amai-vos ardentemente uns aos outros, com um coração puro&#8221;</em> <strong>1 Pe 1.22</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://heltonduarte.com/2011/07/15/north-america-mid-atlantic-regional-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>North America &#8211; East Central Regional 2010</title>
		<link>http://heltonduarte.com/2011/07/09/north-america-east-central-regional-2010/</link>
		<comments>http://heltonduarte.com/2011/07/09/north-america-east-central-regional-2010/#comments</comments>
		<pubDate>Sat, 09 Jul 2011 15:11:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Treinamento Maratona - UFRN]]></category>
		<category><![CDATA[algoritmos]]></category>
		<category><![CDATA[East Central NA Regional]]></category>
		<category><![CDATA[Maratona de Programação]]></category>
		<category><![CDATA[UFRN]]></category>

		<guid isPermaLink="false">http://heltonduarte.com/?p=395</guid>
		<description><![CDATA[Olá pessoal,

Venho aqui para falar da nossa segunda competição de treinamento para a Maratona de Programação. Novamente, compareceram somente os componentes das equipes "Absurdo Clássico" e "Score Limit Exceeded", da UFRN, apesar de saber que ainda existem alguns que querem mas não estão podendo comparecer. Como já foi dito, quem não pôde ir, tire  5 horas em algum local com sua equipe reunida e tente refazer essa prova, pois irá trazer muito mais conhecimento para vocês.]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal,</p>
<p>Venho aqui para falar da nossa segunda competição de <strong>treinamento</strong> para a <a title="Maratona de Programação" href="http://maratona.ime.usp.br/" target="_blank">Maratona de Programação</a>. Novamente, compareceram somente os componentes das equipes <strong>&#8220;Absurdo Clássico&#8221;</strong> e <strong>&#8220;Score Limit Exceeded&#8221;</strong>, da UFRN, apesar de saber que ainda existem alguns que querem mas não estão podendo comparecer. Como já foi dito, quem não pôde ir, <strong>tire  5 horas em algum local com sua equipe</strong> reunida e tente refazer essa prova, pois irá trazer muito mais conhecimento para vocês.</p>
<h3>East Central Regional 2010</h3>
<p>Bem, as provas das <strong>regionais dos Estados Unidos e Canadá</strong> são sempre de um enorme proveito para treinamento, pois consistem de problemas com <strong>dificuldade interessante,</strong> porém não dos mais difíceis, sendo ideal para equipes que estão começando um treinamento mais pesado, como as nossas equipes da UFRN. <a title="East Central Regional 2010" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=401" target="_blank">Essa prova</a> possuiu <strong>8 questões</strong> e nós a fizemos <strong>em equipe</strong> (na verdade, foram equipes de 2 pessoas, pois só compareceram 4 dessa vez e ainda 2 tiveram que sair mais cedo), <strong>conseguindo resolver, ao final, 4 problemas</strong>, sendo 3 na hora mesmo da competição e 1 depois do término do tempo. Vejamos como eles são!</p>
<ul>
<li>Problema A: Cut it out!</li>
</ul>
<p><strong>LA ID:</strong> 4900. <strong>Link:</strong> <a title="Cut it out!" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=401&amp;page=show_problem&amp;problem=2901" target="_blank">Cut it out!</a> <strong>Dificuldade (0 a 10):</strong> ? <strong>Assunto:</strong> ?</p>
<p>Não conseguimos fazer esse problema. Qualquer dica, mande um comentário!</p>
<ul>
<li>Problema B: Flip it!</li>
</ul>
<p><strong>LA ID:</strong> 4901. <strong>Link:</strong> <a title="Flip it!" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=401&amp;page=show_problem&amp;problem=2902" target="_blank">Flip it!</a> <strong>Dificuldade (0 a 10):</strong> 3 <strong>Assunto:</strong> Pilhas, Simulação</p>
<p>Esse problema era o segundo mais fácil da prova, acredito eu, pois envolvia somente a manipulação de um <strong>tabuleiro de pilhas.</strong> É um problema simples de simulação, o qual tem como dificuldade somente o fato de ter que manter cada quadrado do grid como uma pilha, a fim de facilitar as operações descritas no enunciado. Outro <strong>cuidado</strong> que deve-se tomar é <strong>na leitura da linha de operações,</strong> a qual é uma string, mas antes foi feita leitura de inteiros, portanto deve fazer um getline() antes, apenas para pegar o &#8216;\n&#8217; que ainda está no buffer. Mais informações sobre essa <strong>limpeza necessária no buffer</strong> pode ser encontrado no <a title="Common Mistakes in Online and Real-time Contests" href="http://rippedpants.wordpress.com/2009/12/16/common-mistakes-in-online-and-real-time-contests/" target="_blank">texto do Shahriar Manzoor</a>. Deu para entender a explicação? Qualquer dúvida, mande um comentário!</p>
<ul>
<li>Problema C: Maze</li>
</ul>
<p><strong>LA ID:</strong> 4902. <strong>Link:</strong> <a title="Maze" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=401&amp;page=show_problem&amp;problem=2903" target="_blank">Maze</a>. <strong>Dificuldade (0 a 10):</strong> ? <strong>Assunto:</strong> ?</p>
<p>Não conseguimos fazer esse problema. Qualquer dica, mande um comentário!</p>
<ul>
<li>Problema D: Photo Shoot</li>
</ul>
<p><strong>LA ID:</strong> 4903. <strong>Link:</strong> <a title="Photo Shoot" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=401&amp;page=show_problem&amp;problem=2904" target="_blank">Photo Shoot</a>.  <strong>Dificuldade (0 a 10):</strong> ? <strong>Assunto:</strong> ?</p>
<p>Não conseguimos fazer esse problema. Qualquer dica, mande um comentário!</p>
<ul>
<li>Problema E: Polar Bear</li>
</ul>
<p><strong>LA ID:</strong> 4904. <strong>Link:</strong> <a title="Polar Bear" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=401&amp;page=show_problem&amp;problem=2905" target="_blank">Polar Bear</a>.  <strong>Dificuldade (0 a 10):</strong> 3 <strong>Assunto:</strong> Grids</p>
<p>Esse problema é de Grids e, aparentemente, bem complexo. Logo que você abre o problema, <strong>tem medo do grid circular </strong>que aparece, com uma divisões estranhas, contudo esse tipo de grid é para ser tratado <strong>praticamente igual a um grid quadrado,</strong> o qual nós estamos mais acostumados a lidar. Não entendeu? Se você prestar atenção, vê que cada célula (sem contar as centrais e as de borda) possuem exatamente 8 vizinhos, como em um grid quadrado, mudando somente o fato de que é circular, ou seja, <strong>a última &#8220;coluna&#8221; é vizinha da primeira</strong>. Nesse caso, é só preciso <strong>tratar os casos especiais,</strong> que são descritos no próprio enunciado! Depois de montar o grid, é só fazer a simulação de um <a title="Jogo da Vida" href="http://pt.wikipedia.org/wiki/Jogo_da_vida" target="_blank">Jogo da Vida,</a> assim como nós aprendemos a fazer em OCaml, no 1º semestre do curso (para o pessoal que entrou até 2010, como o meu caso). Alguma dúvida na minha explicação? Mande um comentário!</p>
<ul>
<li>Problema F: Pro-Test Voting</li>
</ul>
<p><strong>LA ID:</strong> 4905. <strong>Link:</strong> <a title="Pro-Test Voting" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=401&amp;page=show_problem&amp;problem=2906" target="_blank">Pro-Test Voting</a><a title="Photo Shoot" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=401&amp;page=show_problem&amp;problem=2904" target="_blank"></a>.  <strong>Dificuldade (0 a 10):</strong> ? <strong>Assunto:</strong> ?</p>
<p>Não conseguimos fazer esse problema. Qualquer dica, mande um comentário!</p>
<ul>
<li>Problema G: Vampires!</li>
</ul>
<p><strong>LA ID:</strong> 4906. <strong>Link:</strong> <a title="Vampires!" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=401&amp;page=show_problem&amp;problem=2907" target="_blank">Vampires!</a>.  <strong>Dificuldade (0 a 10):</strong> 2 <strong>Assunto:</strong> Grids</p>
<p>Esse é o problema mais fácil do contest, envolvendo um <strong>grid simples</strong> (quadrado) e alguma ideia de como percorrê-lo. Acredito que a única confusão que pode ser feita no problema é tentar partir de cada espelho para chegar nos vampiros e ir armazenando esses encontros nos espelhos, pois deixa a codificação mais complexa e a eficiência do algoritmo menor. A melhor abordagem, pelo menos na minha opinião, é a de<strong> partir de cada vampiro até os espelhos</strong> e verificar para quais direções ele teria problemas. Fácil, não? Se tiver dúvidas, nos mande comentários!</p>
<ul>
<li>Problema H: We&#8217;ve Got Chemistry, Babe</li>
</ul>
<p><strong>LA ID:</strong> 4907. <strong>Link:</strong> <a title="We've Got Chemistry, Babe" href="http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=401&amp;page=show_problem&amp;problem=2908" target="_blank">We&#8217;ve Got Chemistry, Babe</a>.  <strong>Dificuldade (0 a 10):</strong> 7 <strong>Assunto:</strong> Sitemas lineares, Eliminação de Gauss-Jordan</p>
<p>Esse é certamente <strong>o problema mais trabalhoso da competição,</strong> tanto é que somente os 2 primeiros lugares da regional que conseguiram resolvê-lo. No entanto, como não estávamos com ideias para os demais problemas, partimos logo para o que a codificação seria mais demorada. A ideia inicial desse problema é conseguir entender como<strong> o balanceamento de uma equação química pode ser reduzido a resolução de um sistema linear</strong> e esse fato deve a tratar cada coeficiente a ser encontrado como uma variável e cada elemento como uma equação diferente. Além disso, como o problema pede somente os casos de balenceamento único, deve-se considerar somente as situações em que há apenas uma variável livre no sistema e também ignorar os casos em que são encontrados coeficientes não-positivos. Depois de toda essa ideia (e um código já bem extenso), esse problema <strong>ainda possui uma leitura de dados bem complexa e trabalhosa,</strong> fazendo com que o código cresça mais um bocadinho&#8230; Conseguiu fazer? Qualquer dúvida, pode nos perguntar!</p>
<p>E foi esse nosso segundo encontro de treinamento para a <a title="Maratona de Programação 2011" href="http://maratona.ime.usp.br">Maratona de Programação 2011</a>! Espero que tenham gostado dos comentários e nos vemos na próxima terça-feira, para mais uma competição! (lembrando que agora que o <strong>BOCA foi instalado nos servidores do LCC, graças a Edwyn,</strong> nossas competições poderão ficar ainda mais realísticas).</p>
<p><strong>Posts interessantes:</strong></p>
<ul>
<li><a title="Waterloo Contest 2009 - Fall 2" href="http://heltonduarte.com/2011/06/29/waterloo-contest-2009-fall-2/">Waterloo Contest 2009 &#8211; Fall 2</a></li>
<li><a title="Computação e Matemática" href="http://heltonduarte.com/2011/02/15/computacao-e-matematica/">Computação e Matemática</a></li>
<li><a title="Não é apenas o emprego dos sonhos" href="http://heltonduarte.com/2010/02/06/nao-e-apenas-o-emprego-dos-sonhos/">Não é apenas o emprego dos sonhos</a></li>
<li><a title="Segmentation Fault - a memória do PC pede ajuda!" href="http://heltonduarte.com/2010/01/27/segmentation-fault-a-memoria-do-pc-pede-ajuda/">Segmentation Fault &#8211; a memória do PC pede ajuda!</a></li>
<li><a title="Programando Melhor" href="http://heltonduarte.com/category/cursos/programando-melhor/">Programando Melhor</a></li>
</ul>
<p><em>E você, fez a competição do East Central Regional 2010? Conseguiu fazer quais questões? Deixe seu comentário com algumas dicas ou dúvidas!</em></p>
<p><strong>Helton de Melo Duarte</strong></p>
<p><em>&#8220;Mas estende a tua mão, e toca-lhe em tudo quanto tem, e verás se não blasfema de ti na tua face! [...] Em tudo isto Já não pecou, nem atribuiu a Deus falta alguma.&#8221;</em> <strong>Jó 1.11,22</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://heltonduarte.com/2011/07/09/north-america-east-central-regional-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Waterloo Contest 2009 &#8211; Fall 2</title>
		<link>http://heltonduarte.com/2011/06/29/waterloo-contest-2009-fall-2/</link>
		<comments>http://heltonduarte.com/2011/06/29/waterloo-contest-2009-fall-2/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 20:06:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Treinamento Maratona - UFRN]]></category>
		<category><![CDATA[Maratona de Programação]]></category>
		<category><![CDATA[UFRN]]></category>
		<category><![CDATA[UVa Online Judge]]></category>
		<category><![CDATA[Waterloo Contests]]></category>

		<guid isPermaLink="false">http://heltonduarte.com/?p=390</guid>
		<description><![CDATA[Olá pessoal,

Eu venho aqui, depois de um tempo enorme, para anunciar uma série de posts que serão feitos aqui no blog, como parte do treinamento das equipes da UFRN para a Maratona de Programação 2011. Nosso treinamento consistirá de diversas reuniões no LCC para simular competições passadas dos mais variados locais do mundo, tanto individuais quanto em equipe e, sempre que possível, no mesmo dia à tarde eu irei fazer um post com algumas dicas para os problemas que conseguirmos fazer. Além das dicas, terá o nível de dificuldade (variando de 0 a 10) e o assunto abordado. O que vocês acharam da novidade?]]></description>
			<content:encoded><![CDATA[<p><em>Olá pessoal,</em></p>
<p>Eu venho aqui, depois de um tempo enorme, para anunciar uma série de posts que serão feitos aqui no blog, como parte do <strong>treinamento das equipes da UFRN</strong> para a <a title="Maratona de Programação 2011" href="http://maratona.ime.usp.br/" target="_blank">Maratona de Programação 2011</a>. Nosso treinamento consistirá de diversas reuniões no LCC para simular <strong>competições passadas </strong>dos mais variados locais do mundo, <strong>tanto individuais quanto em equipe</strong> e, sempre que possível, no mesmo dia à tarde eu irei fazer <strong>um post com algumas dicas para os problemas</strong> que conseguirmos fazer. Além das dicas, terá o <strong>nível de dificuldade</strong> (variando de 0 a 10) e o <strong>assunto abordado.</strong> O que vocês acharam da novidade?</p>
<p>Começaremos hoje, com uma competição que fizemos individualmente, que é o <a title="Waterloo Contest 2009 - Fall 2" href="http://uva.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=13&amp;page=show_contest&amp;contest=238" target="_blank">Waterloo ACM Programming Contest 2009 &#8211; Fall 2</a>! Tivemos um comparecimento bem baixo, de apenas 5 pessoas (eu, Edwyn, Lucas, Zailton e Argus), esperando que esse número cresça, mas entendo que algumas pessoas gostariam de estar lá e não puderam, como os calouros de Cien Comp, que tinham aula no horário, além de Álvaro e Leon, que ainda estão em aulas no IFRN. <strong>Para vocês que queriam ir e não puderam</strong>, tirem 3 horas em casa mesmo e tentem fazer os problemas dessa competição, sem olhar as dicas abaixo; quando terminar o tempo, venha olhar ou dar alguma dica aqui no blog.</p>
<h3>Waterloo Contest 2009 &#8211; Fall 2</h3>
<p><a href="http://heltonduarte.com/wp-content/uploads/2011/06/UWaterloo-logo.gif"><img class="alignright size-full wp-image-391" title="UWaterloo-logo" src="http://heltonduarte.com/wp-content/uploads/2011/06/UWaterloo-logo.gif" alt="" width="135" height="93" /></a>Bem, as competições desenvolvidas pela <a title="University of Waterloo: School of Computer Science" href="http://www.cs.uwaterloo.ca/" target="_blank">Universidade de Waterloo, no Canadá</a>, sempre consistem de 5 problemas, para serem resolvido em 3 horas. Desse modo, sempre que formos refazer essas provas, nós iremos competir individualmente, para testar como está o empenho de cada um. Durante a nossa competição, <strong>cada competidor só conseguiu fazer o problema E</strong>, todavia logo que ela acabou nós nos reunimos para tentar <strong>entender a solução do problema C</strong>. No final, quando cheguei em casa, pensando mais um bocadinho, <strong>consegui ter uma ideia para o problema A.</strong> Curtam as dicas:</p>
<ul>
<li>
<h4>Problem A: Rooks</h4>
</li>
</ul>
<p><strong>UVa ID:</strong> 11699. <strong>Link:</strong> <a title="Problem A: Rooks" href="http://uva.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=78&amp;page=show_problem&amp;problem=2746" target="_blank">Rooks</a>. <strong>Dificuldade (0 a 10):</strong> 5. <strong>Assunto:</strong> Bitmasks.</p>
<p>Uma ideia interessante para o problema é perceber que com 15 torres você com certeza pode ter todos os quadrados do tabuleiro ocupados, pois <strong>você precisa no máximo de uma torre por linha.</strong> Dessa forma, podemos testar todos os possíveis subconjuntos das linhas, pois é um total de 32768. Para ver os subconjuntos, pensamos neles como os números de 0 a 32767, pois temos 15 bits &#8220;acesos&#8221; ou &#8220;apagados&#8221;, os quais representarão as linhas com ou sem torres. Para cada subconjunto, percorre-se somente <strong>as linhas que não possuem torres e verifica-se quantas colunas existem com hashes.</strong> Caso o número de colunas seja menor do que ou igual ao de torres, então pode-se colocar uma torre em cada uma dessas colunas (nas linhas &#8220;acesas&#8221;) e atacar todos os quadrados necessários. Deu para entender? Qualquer dúvida, mande um comentário!</p>
<ul>
<li>
<h4>Problem B: Pipes</h4>
</li>
</ul>
<p><strong>UVa ID:</strong> 11700. <strong>Link:</strong> <a title="Problem B: Pipes" href="http://uva.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=117&amp;page=show_problem&amp;problem=2747" target="_blank">Pipes</a>. <strong>Dificuldade (0 a 10):</strong> ? <strong>Assunto:</strong> ?</p>
<p>Não conseguimos fazer esse problema. Qualquer dica, mande um comentário!</p>
<ul>
<li>
<h4>Problem C: Cantor</h4>
</li>
</ul>
<p><strong>UVa ID:</strong> 11701. <strong>Link:</strong> <a title="Problem C: Cantor" href="http://uva.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=117&amp;page=show_problem&amp;problem=2748" target="_blank">Cantor</a>. <strong>Dificuldade (0 a 10):</strong> 4. <strong>Assunto:</strong> Sistemas numéricos.</p>
<p>O problema parece simples à primeira vista. Depois de levar o primeiro Wrong Answer, você pensa que ele está errado. Depois descobre que era besteira! Em problemas em que limita-se o número de casas decimais do número para algo baixo (como 6 nesse exemplo), normalmente <strong>é muito mais fácil você trabalhar com o número como inteiro,</strong> ao multiplicar pela potência de 10 adequada. A ideia é pré-calcular todos os membros e depois fazer somente uma consulta em um vetor. Primeiramente, deve-se calcular os números que <strong>no primeiro passo para transformar ele em base 3, já gera um dígito 1.</strong> Coloque esses números em uma fila. Além disso, você deve ter uma lista &#8220;reversa&#8221; para cada número N, indicando de quais números você chegará em N com 1 passo da mudança de base. Assim você marcará cada elemento colocado na fila como NON-MEMBER, e <strong>enfileirará aqueles que estão na lista &#8220;reversa&#8221; dele </strong>mas ainda não foram marcados. Deu para entender? Qualquer dúvida, mande um comentário!</p>
<ul>
<li>
<h4>Problem D: Meltdown</h4>
</li>
</ul>
<p><strong>UVa ID:</strong> 11702. <strong>Link:</strong> <a title="Problem D: Meltdown" href="http://uva.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=117&amp;page=show_problem&amp;problem=2749" target="_blank">Meltdown</a>. <strong>Dificuldade (0 a 10):</strong> ? <strong>Assunto:</strong> ?</p>
<p>Não conseguimos fazer esse problema. Qualquer dica, mande um comentário!</p>
<ul>
<li>
<h4>Problem E: sqrt log sin</h4>
</li>
</ul>
<p><strong>UVa ID:</strong> 11703. <strong>Link:</strong> <a title="Problem E: sqrt log sin" href="http://uva.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;category=117&amp;page=show_problem&amp;problem=2750" target="_blank">sqrt log sin</a>. <strong>Dificuldade (0 a 10):</strong> 2. <strong>Assunto:</strong> Recursão + Memoization.</p>
<p>Esse problema é o mais fácil do contest. E é realmente fácil. Nele, só é preciso <strong>implementar a recursão exatamente como é descrito</strong> no enunciado, sem alterações, e <strong>utilizar um memoization,</strong> ou seja, ter um vetor que irá armazenar o valor de Xi para cada 0 &lt;= i &lt;= 1000000, assim que ele for calculado a primeira vez, para que não haja cálculo repetido. Deu para entender? Qualquer dúvida, mande um comentário!</p>
<p>É isso aí, pessoal! Esse foi nosso primeiro treino para a <a title="Maratona de Programação 2011" href="http://maratona.ime.usp.br/" target="_blank">Maratona de Programação 2011</a> e espero que eu possa ter ajudado vocês com essas dicas!</p>
<p><strong>Posts interessantes:</strong></p>
<ul>
<li><a title="Computação e Matemática" href="http://heltonduarte.com/2011/02/15/computacao-e-matematica/" target="_self">Computação e Matemática</a></li>
<li><a title="Não é apenas o emprego dos sonhos" href="http://heltonduarte.com/2010/02/06/nao-e-apenas-o-emprego-dos-sonhos/" target="_self">Não é apenas o emprego dos sonhos</a></li>
<li><a title="Segmentation Fault - a memória do PC pede ajuda!" href="http://heltonduarte.com/2010/01/27/segmentation-fault-a-memoria-do-pc-pede-ajuda/" target="_self">Segmentation Fault &#8211; a memória do PC pede ajuda!</a></li>
<li><a title="Programando Melhor" href="http://heltonduarte.com/category/cursos/programando-melhor/" target="_self">Programando Melhor</a></li>
</ul>
<p><em>E você, como foi no Waterloo Contest 2009 &#8211; Fall 2? Gostou das dicas ou estavam meio confusas? Conseguiu resolver qual(is) problema(s)? Faça seu comentário e deixe sua opinião!</em></p>
<p><strong>Helton de Melo Duarte</strong></p>
<p><em>&#8220;E disse o SENHOR a Satanás: Observaste tu a meu servo Jó? Porque ninguém há na terra semelhante a ele, homem sincero, e reto, e temente a Deus, e desviando-se do mal.&#8221;</em> <strong>Jó 1.8</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://heltonduarte.com/2011/06/29/waterloo-contest-2009-fall-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Computação e Matemática</title>
		<link>http://heltonduarte.com/2011/02/15/computacao-e-matematica/</link>
		<comments>http://heltonduarte.com/2011/02/15/computacao-e-matematica/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 03:48:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Reflexões]]></category>
		<category><![CDATA[computação]]></category>
		<category><![CDATA[IMPA]]></category>
		<category><![CDATA[Matemática]]></category>
		<category><![CDATA[matemática aplicada]]></category>
		<category><![CDATA[ppgmae]]></category>

		<guid isPermaLink="false">http://heltonduarte.com/?p=384</guid>
		<description><![CDATA[Olá pessoal,

Participei da Escola de Verão 2011, realizada pelo PPGMAE (UFRN) e fiquei impressionado ainda mais com a matemática e os benefícios de dominá-la para um Cientista da Computação. Nela foram estudados tópicos em Análise Real e Probabilidade e ambas as disciplinas foram bem proveitosas, contudo gostei muito mais da Análise (e por isso vou comentar mais dela).]]></description>
			<content:encoded><![CDATA[<p><em><a href="http://heltonduarte.com/wp-content/uploads/2011/02/PPGMAE-icone.png"><img class="alignleft size-full wp-image-385" title="PPGMAE" src="http://heltonduarte.com/wp-content/uploads/2011/02/PPGMAE-icone.png" alt="" width="110" height="110" /></a>Olá pessoal,</em></p>
<p>Participei da <strong>Escola de Verão 2011</strong>, realizada pelo <a title="PPGMAE" href="http://www.posgraduacao.ufrn.br/ppgmae" target="_blank">PPGMAE</a> (<a title="UFRN" href="http://www.ufrn.br" target="_blank">UFRN)</a> e fiquei impressionado ainda mais com a matemática e os benefícios de dominá-la para um Cientista da Computação. No curso, foram estudados tópicos em <strong>Análise Real</strong> e <strong>Probabilidade</strong> e ambas as disciplinas foram bem proveitosas, contudo gostei muito mais de Análise (e por isso vou comentar mais dela).</p>
<p><strong>Quando um Cientista da Computação domina bem a Matemática</strong>, ele pode descobrir que <a title="Quadrilateral Mesh" href="http://www.trl.ibm.com/projects/meshing/t2q/t2qE.htm" target="_blank">gerar modelos 3D com quadriláteros</a> é  melhor do que gerar com triângulos para diversas situações, levando seu modelo a um menor custo de espaço e processamento. <strong>Quando um Cientista da Computação domina bem a Matemática</strong>, ele consegue pensar nos problemas de algoritmos e descobrir qual a melhor estrutura de dados para determinada situação <a title="Problem Solving Strategies" href="http://math.about.com/od/1/a/problemsolv.htm" target="_blank">pensando praticamente tudo como um problema matemático</a>, podendo até mesmo provar se sua solução ainda pode ser melhorada ou não. <strong>Quando um Cientista da Computação domina bem a Matemática</strong>, ele pode resolver seus problemas de funções recursivas mais complicados com os <a title="Akra-Bazzi method" href="http://en.wikipedia.org/wiki/Akra%E2%80%93Bazzi_method" target="_blank">mais diversos métodos de resolução de recorrências</a> conhecidos na matemática e até mesmo saber a eficiência de sua solução para a média dos casos.</p>
<p><a href="http://heltonduarte.com/wp-content/uploads/2011/02/impa_logo.gif"><img class="alignright size-full wp-image-386" title="IMPA" src="http://heltonduarte.com/wp-content/uploads/2011/02/impa_logo.gif" alt="" width="113" height="61" /></a>Bem, deu para perceber a importância, não é? Mas essa ajuda só irá ser percebida realmente em <strong>situações de alta complexidade</strong>, ou seja, você provavelmente não vai usar muito a matemática para criar o programa que gerencia o estoque de uma loja. No entanto, a familiarização com a <strong>resolução de problemas</strong> é o principal elo entre os <a title="SBM" href="http://www.sbm.org.br" target="_blank">Matemáticos</a> e os <a title="SBC" href="http://www.sbc.org.br" target="_blank">Cientistas da Computação</a>, fazendo com que a matemática esteja presente em praticamente todas as áreas da computação. Considero incomparável, por exemplo, um curso de verão de <strong>&#8220;Conceitos Básicos de Computação Gráfica&#8221;</strong> visto no <a title="IMPA" href="http://www.impa.br" target="_blank">IMPA</a> e qualquer outro curso desse assunto abordado por um CienComp &#8220;puro&#8221; (pode ser somente preconceito, mas é minha opinião =P ).</p>
<p><a href="http://heltonduarte.com/wp-content/uploads/2011/02/Introduction-to-Algorithms-Capa.jpg"><img class="alignleft size-thumbnail wp-image-387" title="Introduction to Algorithms (CLRS)" src="http://heltonduarte.com/wp-content/uploads/2011/02/Introduction-to-Algorithms-Capa-150x150.jpg" alt="" width="150" height="150" /></a>Hoje em dia, muitos consideram o livro <a title="Introduction to Algotithms (CLRS)" href="http://www.amazon.com/Introduction-Algorithms-Third-Thomas-Cormen/dp/0262033844/ref=sr_1_1?ie=UTF8&amp;qid=1297739996&amp;sr=8-1" target="_blank">&#8220;Introduction to Algorithms&#8221; (Cormen, Leiserson, Rivest e Stein)</a> como o principal para um Cientista da Computação ler e ele é bem rigoroso matematicamente (um dos fatos que o faz ser tão bom). Porém, hoje, depois de um curso de verão de <strong>Análise na Reta</strong>, posso dizer que olho para o CLRS sem temer, afinal, o que são alguns problemas de provas depois de você ler o livro de <a title="Análise Real - Volume 1 - Elon Lages Lima" href="http://www.impa.br/opencms/pt/publicacoes/colecao_matematica_universitaria/livro_analise_real/index.html" target="_blank">Análise do Elon</a>? Não que eu esteja &#8220;ninja&#8221; somente por causa do curso, mas estou com uma grande expectativa de melhorar na área da computação à medida que estudo mais matemática (se Deus quiser!). Tenho mais vários exemplos de como <strong>a matemática ajuda na computação e vice-versa,</strong> todavia acho que já deu para perceber a relação entre eles, certo?</p>
<p>Existem diversas áreas comuns entre <strong>Computação e Matemática</strong>, o que mostra quão próximas elas são. Eu só sei que pretendo seguir na área de <a title="SBMAC" href="http://www.sbmac.org.br/" target="_blank">Matemática Aplicada</a> e espero que tenha conseguido explicar um pouco disso aqui, fazendo com que alguns Cientistas da Computação até planejem um <strong>curso de verão no IMPA</strong> antes de terminar a graduação, ou pelo menos, cursar disciplinas como <strong>&#8220;Análise Matemática&#8221;</strong>, <strong>&#8220;Teoria dos Números&#8221;</strong> ou <strong>&#8220;Geometria Diferencial&#8221;</strong> como optativas&#8230;</p>
<p><strong>Posts interessantes:</strong></p>
<ul>
<li><a title="A Rede Social" href="http://heltonduarte.com/2010/12/24/a-rede-social/" target="_self">A Rede Social</a></li>
<li><a title="Small is Beautiful: The Design of Lua" href="http://heltonduarte.com/2010/03/03/small-is-beautiful-the-design-of-lua/" target="_self">Small is Beautiful: The Design of Lua</a></li>
<li><a title="Não é apenas o emprego dos sonhos" href="http://heltonduarte.com/2010/02/06/nao-e-apenas-o-emprego-dos-sonhos/" target="_self">Não é apenas o emprego dos sonhos</a></li>
<li><a title="Programando Melhor" href="http://heltonduarte.com/category/cursos/programando-melhor/" target="_self">Programando Melhor</a></li>
</ul>
<p><em>E o seu interesse pela matemática, como vai? Você acha que um Cientista da Computação deve mesmo se aprofundar em alguns aspectos da matemática ou seria isso perda de tempo? <strong>Comente</strong> e conte-nos sua opinião!</em></p>
<p><em>&#8220;Filho meu, atenta para as minhas palavras; às minhas razões inclina o teu ouvido. [...] Porque são vida para os que as acham e saúde, para o seu corpo.&#8221;</em> <strong>Provérbios 4.20,22</strong></p>
<p><strong>Helton de Melo Duarte</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://heltonduarte.com/2011/02/15/computacao-e-matematica/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A Rede Social</title>
		<link>http://heltonduarte.com/2010/12/24/a-rede-social/</link>
		<comments>http://heltonduarte.com/2010/12/24/a-rede-social/#comments</comments>
		<pubDate>Fri, 24 Dec 2010 04:35:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Recomendações]]></category>
		<category><![CDATA[eduardo saverin]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[mark zuckerberg]]></category>
		<category><![CDATA[sean parker]]></category>
		<category><![CDATA[the social network]]></category>

		<guid isPermaLink="false">http://heltonduarte.com/?p=377</guid>
		<description><![CDATA[Ontem, fui assistir ao filme "A Rede Social", ou "The Social Network" (título original), e estou empolgadíssimo até agora! Quem estuda ou trabalha com computação precisa ver esse filme! E mesmo quem não está nessa área e quer ter uma lição de empreendedorismo, eu recomendo. Para quem não sabe, o filme conta a história da criação do Facebook, rede social com mais de 500 milhões de usuários em todo o mundo, tendo como fundadores o americano Mark Zuckerberg e o brasileiro Eduardo Saverin, ambos estudantes de Harvard, na época. Algumas lições são possíveis de se extrair dessa história e vou tentar passá-las aqui.]]></description>
			<content:encoded><![CDATA[<p><em>Bem pessoal,</em></p>
<p><a href="http://www.facebook.com"><img class="alignleft size-medium wp-image-378" title="The_Social_Network_1" src="http://heltonduarte.com/wp-content/uploads/2010/12/The_Social_Network_1-190x300.jpg" alt="The Social Network" width="190" height="300" /></a>Ontem, fui assistir ao filme <strong>&#8220;A Rede Social&#8221;</strong>, ou <strong>&#8220;The Social Network&#8221;</strong> (título original), e estou empolgadíssimo até agora! Quem estuda ou trabalha com computação precisa ver esse filme! E mesmo quem não está nessa área e quer ter uma lição de empreendedorismo, eu recomendo. Para quem não sabe, o filme conta a história da criação do <a title="Facebook" href="http://www.facebook.com" target="_blank">Facebook,</a> rede social com mais de 500 milhões de usuários em todo o mundo, tendo como fundadores o americano <strong>Mark Zuckerberg</strong> e o brasileiro <strong>Eduardo Saverin,</strong> ambos estudantes de Harvard, na época. Algumas lições são possíveis de se extrair dessa história e vou tentar passá-las aqui:</p>
<p>Primeiramente, pode-se apreender que as grandes ideias surgem, mas nós <strong>temos que pensar alto </strong>e colocá-las em prática. Zuckerberg, segundo a história do filme, pegou a ideia do <strong>Harvard Connection</strong>, pensado por três estudantes de Harvard para estabelecer contato entre os membros daquela universidade, contudo ele teve uma maior ambição, no que diz respeito a esperar mais dessa rede social, e começou a lançar o <strong>&#8220;thefacebook.com&#8221;</strong> (nome inicial) para outras instituições. Às vezes, nós nos pegamos com ideias bem interessantes para produtos ou serviços, no entanto nós somos tendenciosos a &#8220;pensar pequeno&#8221; e querer implementá-la apenas no âmbito local. Claro que cada caso é um caso, mas <strong>é preciso pensar grande e voar mais alto</strong> para que possamos <strong>fazer a diferença nesse mundo tão competitivo</strong>.</p>
<p>Após ter alguma ideia brilhante e começar a pensar maior, <strong>não podemos chegar ao impasse de &#8220;como fazer?&#8221;</strong>. Para criar um produto de 25 bilhões de dólares, <strong>Mark</strong> não teve apenas uma grande ideia, ele também era um grande cientista de computação e<strong> sabia exatamente como deveria implementá-la</strong>. Fiquei impressionado na cena de criação do <strong>FaceMesh,</strong> em que ele vê cada situação e já pensa na solução para os problemas, sabendo qual linguagem utilizar e o que seria necessário fazer para pegar as fotos em cada local. Portanto, não fique sentado no sofá de casa e pensando em uma ideia que irá fazer sucesso, <strong>vá estudar os mais diversos assuntos</strong> da área de computação e se aprofundar nos que mais lhe chamar a atenção, para que quando um novo produto vier a sua mente, você saiba bem <strong>como fazer ele virar realidade</strong>.</p>
<p><a href="http://www.facebook.com"><img class="alignright size-thumbnail wp-image-379" title="The_Social_Network_2" src="http://heltonduarte.com/wp-content/uploads/2010/12/The_Social_Network_2-150x150.jpg" alt="Add as Friend" width="150" height="150" /></a>No final, você já tem o produto e sabe como implementá-lo, então só é preciso mais uma coisa: <strong>pessoas que sejam boas nas áreas em que você não é.</strong> O <em>Mark Zuckerberg</em> era o gênio da computação que sabia fazer o site, contudo o<em> Eduardo Saverin</em> e, depois, o<em> Sean Parker,</em> foram as mentes da empresa para a divulgação e o adminitração do negócio. Além disso, devem ser pessoas <strong>tão dispostas e capazes quanto você.</strong> Não é para ser uma empresa de irmãos gêmeos, mas que seja um local no qual todos queiram fazer o melhor e não meçam esforços em ajudar um ao outro, pois isso irá fazer com que o rendimento individual seja incrementado grandemente. Último conselho: <strong>cuidado com os seus sócios</strong>, principalmente se sua empresa tiver potencial para valer 25 bilhões de dólares.</p>
<p>Para quem deseja tentar uma vaga na empresa que foi considerada <strong>a melhor para se trabalhar em 2010,</strong> entre em <a title="Facebook Careers" href="http://www.facebook.com/careers" target="_blank">http://www.facebook.com/careers</a>.</p>
<p><strong>Posts interessantes:</strong></p>
<ul>
<li><a title="Oxente Rails 2010 - Dia 2" href="http://heltonduarte.com/2010/08/08/oxente-rails-2010-dia-2/" target="_self">Oxente Rails 2010 &#8211; Dia 2</a></li>
<li><a title="Oxente Rails 2010 - Dia 1" href="http://heltonduarte.com/2010/08/07/oxente-rails-2010-dia-1/" target="_self">Oxente Rails &#8211; Dia 1</a></li>
<li><a title="Não é apenas o emprego dos sonhos" href="http://heltonduarte.com/2010/02/06/nao-e-apenas-o-emprego-dos-sonhos/" target="_self">Não é apenas o emprego dos sonhos</a></li>
</ul>
<p><em>E você, o que achou do filme? Tem mais alguma lição que possa ser tirada dele? Se sim, <strong>comente</strong> e nos diga qual é.</em></p>
<p><em>&#8220;Mas Deus, que é riquíssimo em misericórdia, pelo seu muito amor com que nos amou, estando nós ainda mortos em nossas ofensas, nos vivificou juntamente com Cristo (pela graça sois salvos)&#8221;</em> <strong>Efésios 2.4-5</strong></p>
<p><strong>Helton de Melo Duarte</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://heltonduarte.com/2010/12/24/a-rede-social/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Oxente Rails 2010 &#8211; Dia 2</title>
		<link>http://heltonduarte.com/2010/08/08/oxente-rails-2010-dia-2/</link>
		<comments>http://heltonduarte.com/2010/08/08/oxente-rails-2010-dia-2/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 03:37:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[agilidade]]></category>
		<category><![CDATA[empreendedorismo]]></category>
		<category><![CDATA[oxente rails]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://heltonduarte.com/?p=372</guid>
		<description><![CDATA[Hoje venho fazer a análise do 2º dia do Oxente Rails 2010, contudo eu não pude assistir a quase nada do evento hoje (peço desculpas por isso =[ ). Antes do evento tive a oportunidade de sentar e conversar um pouco com o Adorilson sobre o ENSL (veja a chamada na lateral do blog) e outras coisas mais. Indo ao que interessa, vou falar sobre as duas primeiras palestras (as que eu vi), do Marcos Tapajós e do Carlos Brando, só achei ruim porque perdi as palestras de Vinícius Teles e Henrique Bastos (vocês que assistiram, comentem como foi, por favor!)... acredito que vocês vão gostar!]]></description>
			<content:encoded><![CDATA[<p><em>Olá pessoal,</em></p>
<p><a href="http://oxenterails.com"><img class="alignleft size-full wp-image-365" title="Oxente Rails 2010" src="http://heltonduarte.com/wp-content/uploads/2010/08/Oxente-Rails-2010-badgeC.jpg" alt="" width="125" height="125" /></a>Hoje venho fazer a análise do <strong>2º dia do <a title="Oxente Rails 2010" href="http://oxenterails.com" target="_blank">Oxente Rails 2010</a>,</strong> contudo eu não pude assistir a quase nada do evento hoje (peço desculpas por isso =[ ). Antes do evento tive a oportunidade de <strong>sentar e conversar um pouco</strong> com o <a title="@adorilson" href="http://twitter.com/adorilson" target="_blank">Adorilson</a> sobre o <a title="ENSL" href="http://rn.softwarelivre.org/ensl4/" target="_blank">ENSL</a> <em>(veja a chamada na lateral do blog)</em> e outras coisas mais. Indo ao que interessa, vou falar sobre as duas primeiras palestras (as que eu vi), do <a title="@tapajos" href="http://twitter.com/tapajos" target="_blank">Marcos Tapajós</a> e do <a title="@carlosbrando" href="http://twitter.com/carlosbrando" target="_blank">Carlos Brando,</a> só achei ruim porque perdi as palestras de <a title="@viniciusteles" href="http://twitter.com/viniciusteles" target="_blank">Vinícius Teles</a> (<a title="Vinícius Teles - Slides" href="http://www.slideshare.net/viniciusteles/fuja-da-escravido-antes-que-ela-te-alcance-4261724" target="_blank">slides</a>) e <a title="@henriquebastos" href="http://twitter.com/henriquebastos" target="_blank">Henrique Bastos</a> (vocês que assistiram, <strong>comentem como foi, por favor</strong>!)... acredito que vocês vão gostar!</p>
<h3>CouchDB on Rails, by <a title="@tapajos" href="http://twitter.com/tapajos" target="_blank">@tapajos</a></h3>
<p>O <strong>Marcos Tapajós</strong> tinha marcado para falar de <strong>NoSql,</strong> no entanto ele mudou o tema para <a title="CouchDB" href="http://couchdb.apache.org/" target="_blank">CouchDB</a> explicando que <strong>não daria para aprofundar muito no NoSql </strong>e iria ficar muito superficial (para quem não sabe, <a title="@tapajos" href="http://twitter.com/tapajos" target="_blank">Tapajós</a> é consultor oficial do <strong>Couch.io</strong> no Brasil)... O <a title="CouchDB" href="http://couchdb.apache.org/" target="_blank">CouchDB</a> é um dos <strong>bancos de dados não-relacionais</strong> da "moda" e trabalha com o conceito de <a title="Orientação a documento" href="http://en.wikipedia.org/wiki/Document-oriented_database" target="_blank">orientação a documento,</a> o qual é basicamente a criação de uma <strong>camada a mais </strong>sobre a camada de relacionamentos,<strong> </strong>para tornar o banco de ainda mais alto nível de abstração, além de ser <strong>mais fácil no quesito de replicação de bancos.</strong> O principal da palestra foi o <a title="CouchRest::Model" href="http://github.com/couchrest/couchrest_model" target="_blank">CouchRest::Model,</a> uma gem para utilizar com o <a title="CouchDB" href="http://couchdb.apache.org/" target="_blank">CouchDB</a> que ainda não foi lançada, pois <strong>trabalha com Rails 3,</strong> sendo citado também uma das novidades da <strong>nova versão do framework</strong> a qual é ser <strong>bem modular</strong> (ele criou um projeto desativando o<strong> Active Record,</strong> por exemplo). Outras vantagens do <a title="CouchDB" href="http://couchdb.apache.org/" target="_blank">CouchDB</a> é uma <strong>interface web,</strong> chamada <a title="Futon" href="http://wiki.apache.org/couchdb/Getting_started_with_Futon" target="_blank">Futon</a>, já pronta para os administradores do banco de dados, e a procura que o <a title="CouchRest::Model" href="http://github.com/couchrest/couchrest_model" target="_blank">CouchRest::Model</a> tem por trazer <strong>semelhança com o próprio Rails,</strong> evitando que o programador tenha que mudar muito código para embarcar nessa novidade.</p>
<h3>Criando uma carreira notável em desenvolvimento de software, by <a title="@carlosbrando" href="http://twitter.com/carlosbrando" target="_blank">@carlosbrando</a></h3>
<p>Como já era esperado por mim (e comentei isso ontem), <strong>a melhor palestra</strong> que eu vi no <strong><a title="Oxente Rails 2010" href="http://oxenterails.com" target="_blank">Oxente Rails</a><a title="Oxente Rails 2010" href="http://oxenterails.com" target="_blank"> 2010...</a></strong> primeiramente, <strong>não espere para estudar</strong> algo apenas quando você está sendo obrigado, pois pode lhe custar caro (um grande exemplo são os "diferenciais" das chamadas para currículos). Se você quer aumentar o seu salário, e acredito que isso seja verdade para praticamente todos, deve possuir um<strong> melhor uso,</strong> ou seja, ser mais útil para o mercado, sendo necessário ações para diferenciar:</p>
<ul>
<li><strong>Fundação: </strong>sua formação, não somente em qual instituição estudou, mas <strong>O QUÊ</strong> estudou e <strong>de qual forma,</strong> sendo que o <a title="@carlosbrando" href="http://twitter.com/carlosbrando" target="_blank">Brando</a> falou sobre seu curso de eletrônica e sua <strong>primeira experiência com programação...</strong>em Assembly! Isso foi utilizado para mostrar que os programadores, quando estão <strong>diante de um problema,</strong> olham apenas para <strong>sua caixa de ferramentas</strong> (linguagens e frameworks) <strong>e não para uma real solução.</strong></li>
<li><strong>Pensar como programador: </strong>ter pensamento <strong>científico, de matemático,</strong> o qual ajuda e muito o desenvolvimento da lógica de programação, para <strong>sair simples</strong> de situações complicadas.</li>
<li><strong>Aprenda outras linguagens</strong> (os <a title="Pragmatic Programmers" href="http://pragprog.com/" target="_blank">Pragmatic Programmers</a> dizem que é bom aprender uma por ano...é uma boa ideia, pelo menos para iniciantes)... aprenda <strong>a pesquisar</strong>...aprenda as <strong>teorias básicas</strong>, como algoritmos e matemática discreta...aprenda <strong>ideias avançadas em profundidade</strong>, como o comportamento de seu banco de dados ao salvar, apagar, enviar dados, ou ler a documentação de projetos...</li>
<li><strong>Pratique, </strong>pratique e pratique, pois, segundo muitos dizem, é necessário 10 anos ou 10.000 horas de prática sobre algum assunto para que seja realmente expert nele.</li>
<li><strong>Tenha mentores</strong>...e para isso os <strong>projetos open-source</strong> são especiais, além de ações como o <a title="Google Summer of Code" href="http://code.google.com/soc/" target="_blank">Google Summer of Code</a>.</li>
<li><strong>Tenha bons hábitos de programação</strong>, porque isso diferencia, muitas vezes, o iniciante do experiente (<strong>código limpo</strong>, não-repetitivo, com variáveis bem claras e comentários esclarecedores).</li>
<li>Por último...<strong>divirta-se</strong>, esse é o principal conselho que foi dado!!!</li>
</ul>
<p>Quando acabei de escrever esse último conselho do <a title="@carlosbrando" href="http://twitter.com/carlosbrando" target="_blank">Carlos Brando,</a> percebi uma <strong>certa contradição</strong> entre <strong>o que ele disse</strong> em sua palestra e o <strong>dito pelo</strong> <a title="@AkitaOnRails" href="http://twitter.com/akitaonrails" target="_blank">Akita,</a> ontem, pois o <a title="@carlosbrando" href="http://twitter.com/carlosbrando" target="_blank">Brando</a> fala que é essencial <strong>se divertir</strong> ao programar, sendo isso <strong>um diferencial</strong> para o desenvolvedor, no entanto o <a title="@AkitaOnRails" href="http://twitter.com/akitaonrails" target="_blank">Fábio Akita</a> falou ontem que se alguém está <strong>se "divertindo"</strong> no treinamento, então ele <strong>não está fazendo correto,</strong> porque o bom é treinar muito justamente aquilo que você <strong>não gosta e/ou tem pouca habilidade.</strong> Eu acredito numa "teoria" que meu irmão tem (ou seja, não concordo completamente com nenhum dos dois...=D ), de que uma pessoa <strong>deve dedicar</strong> seus tempos de treino principalmente para <strong>os aspectos em que ele está se destacando e os que ele é inferior,</strong> para ficar ruim no mínimo de partes possíveis e ter um diferencial em outros pontos (essa teoria basicamente mescla as duas outras). <strong>O que vocês acham?</strong> <em>Concordam com o <a title="@carlosbrando" href="http://twitter.com/carlosbrando" target="_blank">Brando</a>, com o <a title="@AkitaOnRails" href="http://twitter.com/akitaonrails" target="_blank">Akita</a>, comigo (leia-se: meu irmão), ou tem alguma outra teoria mirabolante?<span style="text-decoration: underline;"> </span></em><span style="text-decoration: underline;">[Por favor, não pensem que me sinto melhor do que algum deles não, tenho apenas uma posição diferente]</span><em><br />
</em></p>
<h3>Análise final</h3>
<p>O evento foi <strong>muito bom,</strong> com temas bem diversos e interessantes, porém focados no principal: <strong>Rails, Agilidade e Empreendedorismo.</strong> Os palestrantes foram bem escolhidos, contudo foram concentrados <strong>os melhores,</strong> na minha opinião, <strong>no primeiro dia </strong><em>(não quer dizer que no segundo dia não teve ninguém bom, afinal os já citados aqui são excelentes)</em>, o que pode ter <strong>diminuído a empolgação</strong> do pessoal no 2º dia (por favor, se você pensa o contrário deixe sua opinião, e se pensa igual, me apóie!). Espero que o <strong>Oxente Rails 2011</strong> aconteça em Natal-RN e, mesmo sem ser minha área de estudo, <strong>farei o máximo para participar</strong>, pois a comunidade <strong>Rails</strong> é impressionantemente unida e empolgada com o que faz, tendo prazer em divulgar a tecnologia, o que <strong>me atrai </strong>grandemente.</p>
<p><strong>Posts interessantes:</strong></p>
<ul>
<li><a title="Oxente Rails 2010 - Dia 1" href="http://heltonduarte.com/2010/08/07/oxente-rails-2010-dia-1/" target="_self">Oxente Rails 2010 &#8211; Dia 1</a></li>
<li><a title="Não percam as próximas atrações de 2010" href="http://heltonduarte.com/2010/07/24/nao-percam-as-proximas-atracoes-de-2010/" target="_self">Não percam as próximas atrações de 2010</a></li>
<li><a title="Google Summer of Code - Ajude o Software Livre!" href="http://heltonduarte.com/2010/03/29/google-summer-of-code-ajude-o-software-livre/" target="_self">Google Summer of Code &#8211; Ajude o Software Livre!</a></li>
<li><a title="Minhas 10 coisas favoritas sobre Ruby" href="http://heltonduarte.com/2009/09/12/minhas-10-coisas-favoritas-sobre-ruby/" target="_self">Minhas 10 coisas favoritas sobre Ruby</a></li>
<li><a title="Manifesto ágil" href="http://heltonduarte.com/2009/08/28/manifesto-agil/" target="_self">Manifesto Ágil</a></li>
</ul>
<p><em>E você, não pôde participar do evento? Tire suas dúvidas aqui! Para aqueles que participaram, deixem seu mini-review aqui e acrescentem sobre as palestras analisadas e não analisadas&#8230;Não perca a oportunidade de deixar sua opinião!</em></p>
<p><strong>Helton de Melo Duarte</strong></p>
<p><em>&#8220;Guardai-vos de fazer a vossa esmola diante dos homens, para serdes vistos por eles; aliás, não tereis galardão junto de vosso Pai, que está nos céus. [...] para que a tua esmola seja dada ocultamente, e teu Pai, que vê em secreto, te recompensará publicamente&#8221;</em> <strong>Mateus 6.1</strong>,<strong>4</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://heltonduarte.com/2010/08/08/oxente-rails-2010-dia-2/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Oxente Rails 2010 &#8211; Dia 1</title>
		<link>http://heltonduarte.com/2010/08/07/oxente-rails-2010-dia-1/</link>
		<comments>http://heltonduarte.com/2010/08/07/oxente-rails-2010-dia-1/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 03:24:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[agilidade]]></category>
		<category><![CDATA[empreendedorismo]]></category>
		<category><![CDATA[oxente rails]]></category>
		<category><![CDATA[rails 3]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://heltonduarte.com/?p=364</guid>
		<description><![CDATA[Venho fazer um review do primeiro dia de palestras do #oxenterails 2010... e foi muito massa! Como eu não sou de ferro nem super-homem, eu não vou colocar uma descrição / análise de todas as palestras, porém vou comentar as que achei mais importantes (no meu ponto de vista, claro).]]></description>
			<content:encoded><![CDATA[<p><em>Olá pessoal,</em></p>
<p><a href="http://oxenterails.com"><img class="alignleft size-full wp-image-365" title="Oxente Rails 2010" src="http://heltonduarte.com/wp-content/uploads/2010/08/Oxente-Rails-2010-badgeC.jpg" alt="" width="125" height="125" /></a>Venho fazer um<strong> review</strong> do primeiro dia de palestras do<strong> #oxenterails 2010</strong>&#8230; e foi muito massa! Como eu não sou de ferro nem super-homem, eu não vou colocar uma<strong> descrição / análise </strong>de todas as palestras, porém vou<strong> comentar as que achei mais importantes</strong> (no meu ponto de vista, claro). Já divulguei, mas para quem ainda não sabe, dias <strong>5 e 6 de novembro de 2010</strong> ocorrerá o <a title="IV Encontro Nordestino de Software Livre" href="http://rn.softwarelivre.org/ensl4/" target="_blank">IV ENSL e IV EPSL</a>, no Praia Mar também, o mesmo do <strong>#oxenterails</strong> (tá bom, vou parar com as hashtags). As palestras estarão aqui<strong> na ordem de importânci</strong>a e não de cronograma, ok?</p>
<h3>As últimas novidades no mundo Ruby, by <a title="@AkitaOnRails" href="http://twitter.com/akitaonrails" target="_blank">@AkitaOnRails</a></h3>
<p>Sensacional, instigante, esclarecedora, motivacional. Sinceramente, a palestra mais interessante que ouvi até agora (pela minha expectativa, a do <a title="@carlosbrando" href="http://twitter.com/carlosbrando" target="_blank">@carlosbrando</a> amanhã será melhor, mas veremos!). O Fábio Akita começou introduzindo o que era necessário para chegar ao tema da palestra, ou seja, ele deu uma história breve, contudo bem explicativa sobre o que foi o Ruby pré-Rails e pós-Rails, desde a criação pelo <a title="Yukihiro Matz" href="http://twitter.com/matz_translated" target="_blank">Yukihiro Matz</a>, fazendo qualquer um entender um pouco do grande processo que é a criação de uma linguagem e um framework como esses. No entanto, depois dessa parte histórica e de ele falar do que está por vir, começou uma parte abordando o sucesso de um desenvolvedor e como &#8220;qualquer um&#8221; pode chegar lá&#8230; mostrou que o principal é o treino na parte justamente em que o indivíduo não é bom e/ou não gosta tanto, precisando pensar que &#8220;se você nunca falhou, então você nunca viveu&#8221; e, com isso, assumindo os obstáculos pelo caminho. Ao final, é necessário perceber que o sucesso não vem sem a exposição aos riscos.</p>
<h3>O problema é seu&#8230; e a solução também, by <a title="@CeciFernandes" href="http://twitter.com/cecifernandes" target="_blank">@CeciFernandes</a></h3>
<p><strong>Cecília Fernandes</strong> trabalha para a <a title="Caelum" href="http://www.caelum.com.br/" target="_blank">Caelum</a> e foi falar de <strong>desenvolvimento ágil</strong> de verdade, para dar luz àqueles que pensam ser as <a href="http://www.caelum.com.br"><img class="alignright size-full wp-image-366" title="Caelum: Ensino e inovação" src="http://heltonduarte.com/wp-content/uploads/2010/08/caelum-ensino-inovacao.png" alt="" width="161" height="50" /></a>práticas do manifesto ágil o mesmo que seguir TODAS as regras de <a title="Scrum - Wikipedia" href="http://en.wikipedia.org/wiki/Scrum_%28development%29" target="_blank">Scrum</a> e <a title="Extreme Programming - Wikipedia" href="http://en.wikipedia.org/wiki/Extreme_programming" target="_blank">XP</a>&#8230; Primeiramente, ela comentou que <strong>o correto não é seguir qualquer regra</strong> (somente por ser ágil), mas sim <strong>alterar as regras conforme a necessidade</strong> da empresa / do produto, etc. A <strong>agilidade</strong> no desenvolvimento está ligada intrinsecamente à <strong>disciplina</strong> e, por isso, ao começar um pensamento novo, como <strong>o deploy de aplicações a cada 30 min</strong>, como ela disse que é realizado por algumas empresas (é verdade, me impressionei com isso também), deve-se seguí-lo da forma correta. Essa palestra também foi brilhante (mais ainda porque eu não conhecia a Cecília) e baseada <strong>nas retrospectivas que uma equipe deve fazer</strong> para melhorar sua prática ágil, passando de uma situação em que o cliente não usa o que foi feito e os bugs chegam todos de uma só vez, para a de <strong>entregar os features prioritários</strong> e com a <strong>equipe toda sabendo o que cada um está fazendo</strong> (inclusive com a sugestão de &#8220;excluir&#8221; o Scrum master&#8230;). Bom, não é? Na minha opinião, a palestra faz qualquer <strong>repensar o que entende por práticas ágeis de desenvolvimento</strong>.</p>
<h3>The &lt;plataforma/&gt; way, by <a title="@josevalim" href="http://twitter.com/josevalim">@josevalim</a></h3>
<p><a href="http://heltonduarte.com/wp-content/uploads/2010/08/plataforma_tec_logo.gif"><img class="alignleft size-full wp-image-367" title="Plataforma Tec" src="http://heltonduarte.com/wp-content/uploads/2010/08/plataforma_tec_logo.gif" alt="" width="282" height="60" /></a>Nessa palestra o <strong>José Valim</strong>, único membro brasileiro do <a title="Rails Core Team" href="http://rubyonrails.org/core" target="_blank">Rails Core Team</a>, como já citado no post anterior, falou sobre a <a title="Plataforma Tec" href="http://blog.plataformatec.com.br/" target="_blank">Plataforma Tec</a>, empresa em que ele trabalha desenvolvendo aplicações Rails (entre outras coisas) e as suas <strong>ferramentas open-sources que desempenham um papel importante no ganho de produtividade</strong> do dia-a-dia. Ele falou basicamente de <strong>como as aplicações</strong> desenvolvidas pela <a title="Plataforma Tec" href="http://blog.plataformatec.com.br/" target="_blank">Plataforma</a> <strong>se integram com o Rails 3</strong>, e são elas (estou deixando o link delas no <a title="Git Hub" href="http://github.com/" target="_blank">GitHub</a> para estimulá-los a dar uma olhadinha no que está por trás): o <a title="Devise - Plataforma Tec" href="http://github.com/plataformatec/devise" target="_blank">Devise</a>, <strong>sistema de autenticação</strong> na aplicação de forma ultra-simples; o <a title="Simple Form - Plataforma Tec" href="http://github.com/plataformatec/simple_form" target="_blank">SimpleForm,</a> que como o próprio nome já diz <strong>cria formulários web de forma simples</strong>; e o<a title="Responders" href="http://github.com/plataformatec/responders" target="_blank"> Responders</a>, o qual trabalha somente com Rails 3 e seu novo <strong>respond-with</strong> (não posso tirar dúvida sobre isso, porque não programo em Ruby nem mexo com Rails, blz?). Contudo, mesmo (ou principalmente) para mim que não utilizo <a title="Ruby on Rails" href="http://rubyonrails.org/" target="_blank">Ruby on Rails</a>, a apresentação dessas ferramentas mostrou claramente o <strong>quão simples é fazer</strong> aplicações web com Rails (comparado com outras linguagens/frameworks) e me deixou simplesmente<strong> apaixonado pelo que eu vi</strong>. Outra palestra imperdível.</p>
<h3>Transformando ideias em negócios rentáveis, by <a title="@rafaelp" href="http://twitter.com/rafaelp" target="_blank">@rafaelp</a></h3>
<p>Essa palestra era totalmente focada em <strong>empreendedorismo,</strong> uma área que nem me interessa tanto, todavia para aqueles que se interessam foi <strong>uma palestra muito interessante,</strong> pois mostrou na<strong> experiência</strong> que o <strong>Rafael Lima</strong> tem, como você fazer sua ideia dar lucro. Foi basicamente um <strong>histórico</strong> da <a title="BielSystems" href="http://www.bielsystems.com.br" target="_blank">BielSystems</a>, empresa do Rafael, contudo mostrando que é necessário <strong>buscar informações de outros sobre sua ideia</strong> para que se possa <strong>escolher &#8220;a melhor&#8221;</strong> e de como ter um <strong>modelo econômico,</strong> ou seja, ganhar dinheiro. <strong>Pensamento empreendedor</strong>: <em>em que essa ideia pode me dar lucro?</em> (eu, particularmente, não gosto muito disso, por isso quero ir para a área acadêmica, hehehehe)</p>
<h3>Demais palestras que assisti</h3>
<p>Além dessas que eu dei maior destaque, ainda assisti a palestra do <a title="Peed Code" href="http://peepcode.com" target="_blank">Geoffrey Grosenbach</a> (<a title="@topfunky" href="http://twitter.com/topfunky" target="_blank">@topfunky</a>), sobre <strong>quebrar as convenções do Rails</strong> para melhorar sua aplicação, ou seja, mostrando <strong>para os mais fanáticos que até o Rails tem coisas indesejáveis</strong> em certos momentos. A palestra do <strong>Daniel Cukier</strong> (<a title="@danicuki" href="http://twitter.com/danicuki" target="_blank">@danicuki</a>), sobre <strong>aprendizado ágil</strong> também foi interessante, com assuntos como aprender a aprender; usar o lado direito do cérebro <strong>(criatividade) para ser um desenvolvedor diferenciado;</strong> pensar diferente etc. Por último, vi a palestra (que estava marcada para amanhã, entretanto foi antecipada) do <strong>David William</strong> sobre <strong>cases de Rails no mercado local,</strong> a qual foi de grande proveito para aqueles que pretendem ingressar nesse ramo.</p>
<h3>Análises adicionais</h3>
<p>O fato de ter dado problema na vídeoconferência que seria feita com o <a title="@dhh" href="http://twitter.com/dhh" target="_blank">David Heinemeier Hansson</a> para <strong>perguntas e respostas sobre Rails 3</strong> foi uma pena, já que seria de extremo aproveitamento pelo público (não sei se terá isso amanhã), além do <strong>grande atraso</strong> que ocorreu no começo (cerca de 1h). Para &#8220;compensar&#8221; teve a <strong>agradabilíssima presença de um XBox 360, um PS3 e um Wii</strong> no lounge, para divertir a galera, além de novamente um divertidíssimo <strong>&#8220;Jogo da Comunicação&#8221;</strong> com o <a title="@viniciusteles" href="http://twitter.com/viniciusteles" target="_blank">Vinícius Teles</a> e o <a title="@rafaelp" href="http://twitter.com/rafaelp" target="_blank">Rafael Lima</a> (para quem participou do <strong>XP Game,</strong> comente sobre como foi, blz?). Por último, a <strong>&#8220;desmarcação&#8221; da desconferência </strong>para hoje <strong>não foi agradável,</strong> apesar de ter sido por votação (entendo que o horário estava apertado&#8230;).</p>
<p>Bem, no final das contas eu tenho para dizer que o dia hoje no<a title="Oxente Rails 2010" href="http://oxenterails.com" target="_blank"> Oxente Rails 2010 </a>foi muito bom, com <strong>palestras sensacionais</strong> e uma experiência que, acredito eu, <strong>nenhuma outra comunidade de desenvolvimento poderia proporcionar</strong>. Além de toda a parte técnica, ainda teve uma <strong>conversa </strong>sobre como anda a vida e desenvolvimento web com o <a title="@rafaelkin" href="http://twitter.com/rafaelkin" target="_blank">@rafaelkin</a> e o <a title="@eMyller" href="http://twitter.com/emyller" target="_blank">@eMyller</a>. Muito bom.</p>
<p><strong>Posts interessantes:</strong></p>
<ul>
<li><a title="Oxente Rails 2010 - Dia 2" href="http://heltonduarte.com/2010/08/08/oxente-rails-2010-dia-2/" target="_self">Oxente Rails 2010 &#8211; Dia 2</a></li>
<li><a title="Não percam as próximas atrações de 2010" href="http://heltonduarte.com/2010/07/24/nao-percam-as-proximas-atracoes-de-2010/" target="_self">Não percam as próximas atrações de 2010</a></li>
<li><a title="Google Summer of Code - Ajude o Software Livre!" href="http://heltonduarte.com/2010/03/29/google-summer-of-code-ajude-o-software-livre/" target="_self">Google Summer of Code &#8211; Ajude o Software Livre!</a></li>
<li><a title="Minhas 10 coisas favoritas sobre Ruby" href="http://heltonduarte.com/2009/09/12/minhas-10-coisas-favoritas-sobre-ruby/" target="_self">Minhas 10 coisas favoritas sobre Ruby</a></li>
<li><a title="Manifesto ágil" href="http://heltonduarte.com/2009/08/28/manifesto-agil/" target="_self">Manifesto ágil</a></li>
</ul>
<p><em>E aí, perdeu esse evento maravilhoso? Então deixe sua dúvida sobre algo que queira saber das palestras! E você, veio para palestras e queria comentar algo mais (ou sobre alguma palestra que não comentei)? Então dê logo a sua opinião e <strong>comente!</strong></em></p>
<p><strong>Helton de Melo Duarte</strong></p>
<p><em>&#8220;É Ele que perdoa todas as tuas iniquidades e sara todas as tuas enfermidades; quem redime a tua vida da perdição e te coroa de benignidade e de misericórdia.&#8221;</em> <strong>Salmos 103.3,4</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://heltonduarte.com/2010/08/07/oxente-rails-2010-dia-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Não percam as próximas atrações de 2010</title>
		<link>http://heltonduarte.com/2010/07/24/nao-percam-as-proximas-atracoes-de-2010/</link>
		<comments>http://heltonduarte.com/2010/07/24/nao-percam-as-proximas-atracoes-de-2010/#comments</comments>
		<pubDate>Sat, 24 Jul 2010 15:09:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Brasil Game Show]]></category>
		<category><![CDATA[CIENTEC]]></category>
		<category><![CDATA[CONFENIS 2010]]></category>
		<category><![CDATA[IV ENSL]]></category>
		<category><![CDATA[oxente rails]]></category>
		<category><![CDATA[SINEC]]></category>

		<guid isPermaLink="false">http://heltonduarte.com/?p=362</guid>
		<description><![CDATA[Um comentário sobre os principais eventos de computação que ocorrerão em Natal-RN até o fim do ano de 2010, para que os leitores possam conhecer e decidir para qual(is) deles irão. Não perca!]]></description>
			<content:encoded><![CDATA[<p><em>Olá pessoal,</em></p>
<p>Passei, novamente, um bom tempo sem fazer nenhum post aqui no blog, por causa de muita correria na universidade&#8230; Bem, mas espero voltar para <strong>escrever algumas coisas interessantes nessas minhas férias</strong> e, espero que quando as aulas começarem eu possa escrever pelo menos <strong>um post por semana</strong>. =D</p>
<p>Hoje eu venho falar dos <strong>bons eventos</strong> que estão para acontecer na cidade de <strong>Natal-RN</strong> daqui para o final do ano (pelo menos sobre os que eu tenho algum conhecimento a respeito). São eles o <a title="IV Encontro Nordestino de Software Livre" href="http://rn.softwarelivre.org/ensl4/" target="_blank">IV Encontro Nordestino de Software Livre</a>, <a title="Oxente Rails 2010" href="http://oxenterails.com" target="_blank">Oxente Rails 2010</a>, <a title="CONFENIS 2010" href="http://confenis2010.iff.edu.br/" target="_blank">CONFENIS 2010</a>, <a title="XVI CIENTEC" href="http://www.cientec.ufrn.br/index.html" target="_blank">XVI CIENTEC</a> e <a title="SINEC 2010" href="http://www.sinec-2010.appspot.com/" target="_blank">9º SINEC</a>, os quais abordarão <strong>temas bem diversificados e agradáveis</strong> da área de <strong>computação</strong>, principalmente.</p>
<h3>IV Encontro Nordestino de Software Livre</h3>
<p>O <a title="IV Encontro Nordestino de Software Livre" href="http://rn.softwarelivre.org/ensl4/" target="_blank">IV Encontro Nordestino de Software Livre e IV Encontro Potiguar de Software Livre</a> ocorrerá nos dias <strong>5 e 6 de novembro de 2010</strong> no <strong>Praia Mar Hotel e Convention</strong> e será organizado pelo <a title="PSL-RN" href="http://rn.softwarelivre.org/" target="_blank">Projeto Software Livre do RN (PSL-RN)</a> com a parceria do<strong> SEBRAE-RN</strong>, visando estimular o desenvolvimento tecnológico local, através do uso e  desenvolvimento de Softwares Livres. Nele serão abordados temas como: <strong>Casos de Sucesso e Negócios; Cultura Livre; Desenvolvimento; Educação e Inclusão digital ;Ferramentas e Soluções; Segurança e Redes</strong>. Terá também a realização conjunta do <strong>VII Fórum GNOME</strong> e o <strong>III Fórum KDE</strong>, ambos eventos de âmbito nacional, para abrilhantar as palestras, tornando-o um evento indispensável para os entusiastas da tecnologia e, principalmente, para aqueles que têm uma boa ligação com o Software Livre.</p>
<h3>Oxente Rails 2010</h3>
<p><a href="http://oxenterails.com"><img class="alignnone" title="Oxente Rails 2010" src="http://oxenterails.com/images/badges/badgeA.jpg" alt="" width="210" height="60" /></a></p>
<p>A segunda edição do <a title="Oxente Rails 2010" href="http://oxenterails.com" target="_blank">Oxente Rails</a> ocorrerá novamente em <strong>Natal-RN</strong>, nos dias <strong>6 e 7 de agosto de 2010</strong>, também no <strong>Praia Mar Hotel e Convention</strong>, com o objetivo de <strong>divulgar o Ruby e o Rails</strong> na comunidade de desenvolvedores do Nordeste e <strong>ampliar o conhecimento</strong> daqueles que já trabalham com isso. O evento terá participação de <strong>ícones internacionais</strong> do mundo Rails, como o <a title="David Heinemeier Hansson" href="http://37signals.com" target="_blank">David Heinemeier Hansson</a>, <a title="Dr. Nic Williams" href="http://mocra.com" target="_blank">Dr. Nic Williams</a> e <a title="Geoffrey Grosenbach" href="http://nubyonrails.com" target="_blank">Geoffrey Grosenbach</a>, além de destaques brasileiros, como <a title="José Valim" href="http://twitter.com/josevalim" target="_blank">José Valim</a> (membro brasileiro do Rails Core) e <a title="Fábio Akita" href="http://akitaonrails.com" target="_blank">Fábio Akita</a>.</p>
<h3>CONFENIS 2010</h3>
<p>O <a title="CONFENIS 2010" href="http://confenis2010.iff.edu.br/" target="_blank">CONFENIS 2010 (International Conference on Research and Practical Issues of Enterprise Information Systems)</a> será realizado nos dias <strong>25-27 de agosto de 2010</strong>, em <strong>Natal-RN (não sei exatamente o local)</strong> e, apesar de tratar sobre sistemas de informação, é um evento focado em um público <strong>um pouco mais acadêmico</strong>, tendo um conteúdo mais de pesquisas, por exemplo. Contudo, para o bem do desenvolovimento de software em Natal, <strong>seria de extrema importância que os desenvolvedores da cidade assistissem ao evento</strong>, para que parem de pensar que o melhor programa do mundo é feito em Delphi e os sites são todos escritos em PHP.</p>
<h3>XVI CIENTEC e 9º SINEC</h3>
<p>A <a title="XVI CIENTEC" href="http://www.cientec.ufrn.br/index.html" target="_blank">CIENTEC (Semana de Ciência, Tecnologia e Cultura da UFRN)</a> ocorrerá nos dias <strong>25 a 30 de julho de 2010</strong>, principalmente na <strong>Praça Cívica do Campus da UFRN</strong>, com mostras dos diversos departamentos da universidade e terá como tema <em>&#8220;UFRN: Produzindo saberes, Compreendendo a vida&#8221;</em>. Esse evento é bem interessante pela <strong>diversidade de temas</strong> que são tratados, possibilitando aos visitantes uma ampliação de seus conhecimentos de mundo, contudo o principal dele <strong>para a área de computação acontecerá no SINEC</strong>. O <a title="SINEC 2010" href="http://www.sinec-2010.appspot.com/" target="_blank">SINEC (Seminário de Informática e Engenharia da Computação)</a> é um evento recheado de palestras e mini-cursos que será realizado &#8220;dentro&#8221; da CIENTEC (<strong>de 26 a 30 de julho de 2010</strong>) e terá como destaque de última hora a <strong>apresentação da empresa multinacional</strong> <a title="Webarchitects" href="http://www.webarchitects.com.br/" target="_blank">Webarchitects</a> (a qual abrirá um escritório em Natal-RN), visando <strong>captar mão de obra</strong>.</p>
<p>Bem, acredito que esses eventos <strong>agradarão a quase todos</strong> os gostos da área de computação, especialmente aos programadores, e é uma boa escolha para ser feita até o final do ano. Para aqueles adeptos do <strong>desenvolvimento de jogos</strong>, não há eventos aqui em Natal-RN a esse respeito, contudo a partir desse ano acontecerá no <strong>Rio de Janeiro-RJ</strong> a <strong>maior feira de games da América do Sul</strong>, a <a title="Brasil Game Show" href="http://www.brasilgameshow.com.br/" target="_blank">Brasil Game Show</a>, nos dias <strong>20-21 de novembro de 2010</strong> (será um evento anual), e tem como <strong>patrocinadores</strong> nada mais, nada menos que <strong>Sony e Electronic Arts</strong>.</p>
<p><strong>Posts interessantes:</strong></p>
<ul>
<li><a title="Google Summer of Code - Ajude o Software Livre" href="http://heltonduarte.com/2010/03/29/google-summer-of-code-ajude-o-software-livre/" target="_self">Google Summer of Code &#8211; Ajude o Software Livre</a></li>
<li><a title="Small is Beautiful: The Design of Lua" href="http://heltonduarte.com/2010/03/03/small-is-beautiful-the-design-of-lua/" target="_self">Small is Beautiful: The Design of Lua</a></li>
<li><a title="Não é apenas o emprego dos sonhos" href="http://heltonduarte.com/2010/02/06/nao-e-apenas-o-emprego-dos-sonhos/" target="_self">Não é apenas o emprego dos sonhos</a></li>
<li><a title="Minhas 10 coisas favoritas sobre Ruby" href="http://heltonduarte.com/2009/09/12/minhas-10-coisas-favoritas-sobre-ruby/" target="_self">Minhas 10 coisas favoritas sobre Ruby</a></li>
</ul>
<p><em>E aí, vocês irão para quais desses eventos? Contem o que já conhecem sobre essas atrações! Ah, você vai organizar um evento de computação em Natal-RN que não foi citado aqui? Comente que anunciaremos!</em></p>
<p><strong>Helton de Melo Duarte</strong></p>
<p><em>&#8220;O SENHOR é o que tira a vida e a dá; faz descer à sepultura e faz tornar a subir dela. O SENHOR empobrece e enriquece; abaixa e também exalta.&#8221;</em> <strong>1Sm 2.6-7</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://heltonduarte.com/2010/07/24/nao-percam-as-proximas-atracoes-de-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Summer of Code &#8211; Ajude o Software Livre!</title>
		<link>http://heltonduarte.com/2010/03/29/google-summer-of-code-ajude-o-software-livre/</link>
		<comments>http://heltonduarte.com/2010/03/29/google-summer-of-code-ajude-o-software-livre/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 02:33:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[GSoC]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Software Livre]]></category>

		<guid isPermaLink="false">http://heltonduarte.com/?p=354</guid>
		<description><![CDATA[Historicamente, Google Summer of Code™ tem juntado aproximadamente 3.400 estudantes com mais de 200 projetos de código aberto para criar milhões de linhas de código. Nós estamos procurando mentores e estudantes para juntarem-se a nós e fazer 2010 o melhor Summer of Code até então! Nós estaremos oferecendo aos estudantes contribuintes que obtenham sucesso uma bolsa de US$ 5.000,00, permitindo-os focar em seus projetos de código por três meses.]]></description>
			<content:encoded><![CDATA[<p><em>Olá pessoal,</em></p>
<p>Hoje venho falar desse grande evento promovido pelo <a title="Google" href="http://www.google.com" target="_blank">Google</a> há alguns anos, o <a title="Google Summer of Code" href="http://code.google.com/soc/" target="_blank">Google Summer of Code</a>, uma reunião de diversos <strong>projetos de código aberto</strong> para que <strong>estudantes trabalhem neles e ganhem dinheiro</strong> por isso! A partir de hoje <strong>(29/03/2010) as inscrições estão abertas</strong> para os estudantes enviarem seus projetos, contudo, antes dissso, é bom que você leia as <a title="GSoC - Perguntas Frequentes" href="http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs" target="_blank">Perguntas Frequentes</a> e veja a <a title="GSoC - Lista das organizações escolhidas" href="http://socghop.appspot.com/gsoc/program/accepted_orgs/google/gsoc2010" target="_blank">lista das organizações escolhidas</a> com suas respectivas listas de ideias. Os projetos vão desde <strong>ajudar no desenvolvimento de um jogo livre </strong>como <a title="Battle for Wesnoth" href="http://wesnoth.org/" target="_blank">Battle for Wesnoth</a>, até <strong>aperfeiçoar o funcionamento</strong> do <a title="GCC - GNU Compiler Collection" href="http://gcc.gnu.org/" target="_blank">GCC,</a> <strong>compilador de C para Linux</strong>. Abaixo segue o <strong>poster informativo do GSoC</strong>, traduzido para o português por mim. =D</p>
<p><a href="http://heltonduarte.com/wp-content/uploads/2010/03/GSoc_Logo.png"><img class="aligncenter size-medium wp-image-355" title="Google Summer of Code" src="http://heltonduarte.com/wp-content/uploads/2010/03/GSoc_Logo-300x264.png" alt="" width="300" height="264" /></a></p>
<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p style="text-align: center;" lang="en-US"><span style="color: #000000;"><span style="font-family: ArialMT,sans-serif;"><span style="font-size: medium;">Quer escrever código aberto?</span></span></span></p>
<p style="text-align: center;" lang="en-US"><span style="color: #000000;"><span style="font-family: ArialMT,sans-serif;"><span style="font-size: medium;">Quer ganhar dinheiro?</span></span></span></p>
<p style="text-align: center;" lang="en-US"><span style="color: #000000;"><span style="font-family: ArialMT,sans-serif;"><span style="font-size: small;"><span style="font-size: medium;">Quer fazer os dois?</span></span></span></span></p>
<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p lang="en-US">Historicamente, <strong>Google Summer of Code™</strong> tem juntado aproximadamente <strong>3.400 estudantes</strong> com mais de <strong>200 projetos de código aberto</strong> para criar milhões de linhas de código. Nós estamos procurando mentores e estudantes para juntarem-se a nós e fazer 2010 o melhor Summer of Code até então! Nós estaremos oferecendo aos estudantes contribuintes que obtenham sucesso uma <strong>bolsa de US$ 5.000,00</strong>, permitindo-os focar em seus projetos de código por três meses.</p>
<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p lang="en-US">O programa <strong>Google Summer of Code</strong> é projetado para encorajar a participação de <strong>estudantes no desenvolvimento de código aberto</strong>. Iniciado em 2005, o programa tem diversos objetivos:</p>
<ul>
<li> Inspirar jovens desenvolvedores a começar a participar do desenvolvimento de código aberto</li>
<li>Fornecer a estudantes de Ciência da Computação e áreas correlatas a oportunidade de trabalhar em um projeto relacionado com sua carreira acadêmica durante o verão</li>
<li>Dar aos estudantes maior exposição aos cenários de desenvolvimento de softwares do mundo real (e.g., desenvolvimento distribuído, questões com licenças de software, comportamento em listas de discussão, etc.)</li>
<li>Conseguir a criação e lançamento de mais código aberto, para o benefício de todos</li>
<li>Ajudar projetos de código aberto a identificar e sondar novos desenvolvedores</li>
</ul>
<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } 		A:link { so-language: zxx } --><strong>Google </strong>aceitará requerimentos de projetos de código aberto no período de 8-12 de março de 2010. <strong>Requerimentos de estudantes </strong>serão aceitos no período de <strong>29 de março a 9 de abril de 2010</strong>.</p>
<p>Detalhes completos sobre os requerimentos de participação, incluindo como submetê-los em <a title="GSoC" href="http://socghop.appspot.com" target="_blank">http://socghop.appspot.com</a></p>
<p style="text-align: right;"><span style="color: #000000;">Traduções orgulhosamente fornecidas pela comunidade do <em>Google Summer of Code</em>.</span></p>
<p style="text-align: left;"><strong><span style="color: #000000;">Posts interessantes:</span></strong></p>
<ul>
<li><span style="color: #000000;"><a title="Small is Beautiful: The Design of Lua" href="http://heltonduarte.com/2010/03/03/small-is-beautiful-the-design-of-lua/" target="_self">Small is Beautiful: The Design of Lua</a></span></li>
<li><span style="color: #000000;"><a title="Não é apenas o emprego dos sonhos" href="http://heltonduarte.com/2010/02/06/nao-e-apenas-o-emprego-dos-sonhos/" target="_self">Não é apenas o emprego dos sonhos</a></span></li>
<li><span style="color: #000000;"><a title="Google Docs para estudantes" href="http://heltonduarte.com/2009/10/10/google-docs-para-estudantes/" target="_self">Google Docs para estudantes</a></span></li>
<li><span style="color: #000000;"><a title="Minhas 10 coisas favoritas sobre Ruby" href="http://heltonduarte.com/2009/09/12/minhas-10-coisas-favoritas-sobre-ruby/" target="_self">Minhas 10 coisas favoritas sobre Ruby</a></span></li>
<li><span style="color: #000000;"><a title="Google Code Jam 2009: uma nova oportunidade" href="http://heltonduarte.com/2009/08/17/google-code-jam-2009-uma-nova-oportunidade/" target="_self">Google Code Jam 2009: uma nova oportunidade</a></span></li>
</ul>
<p><em>E aí, o que está esperando para procurar o procurar o seu projeto? Encontre uma organização e ajude a comunidade de software livre! <strong>Comente </strong>sobre qual(is) projeto(s) você tentará ajudar!</em></p>
<p><strong>Helton de Melo Duarte</strong></p>
<p><em>&#8220;SENHOR dos Exércitos, bem-aventurado o homem que em ti põe a sua confiança.&#8221;</em><strong> Salmos 84.12</strong></p>
<p><em>&#8220;Pois tu, SENHOR, és bom e pronto a perdoar, e abundante em benignidade para com todos os que te invocam.&#8221;</em> <strong>Salmos 86.5</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://heltonduarte.com/2010/03/29/google-summer-of-code-ajude-o-software-livre/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Small is Beautiful: The Design of Lua</title>
		<link>http://heltonduarte.com/2010/03/03/small-is-beautiful-the-design-of-lua/</link>
		<comments>http://heltonduarte.com/2010/03/03/small-is-beautiful-the-design-of-lua/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 13:24:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Linguagens de programação]]></category>
		<category><![CDATA[Lua]]></category>
		<category><![CDATA[PUC-RJ]]></category>
		<category><![CDATA[Roberto Ierusalimschy]]></category>

		<guid isPermaLink="false">http://heltonduarte.com/?p=350</guid>
		<description><![CDATA[Hoje venho falar de mais um evento ocorrido em Natal-RN, o qual teve como palestrante o prof. Dr. Roberto Ierusalimschy, da PUC-RJ, criador da linguagem de programação Lua, utilizada em diversos projetos pelo mundo. A palestra abordou temas como o que considerar na criação de uma linguagem de programação e aspectos técnicos de Lua, como seu sistema de números e as chamadas co-rotinas.]]></description>
			<content:encoded><![CDATA[<p><em>Olá pessoal,</em></p>
<p>Hoje venho falar de mais um evento ocorrido em Natal-RN (em <strong>02/03/2010</strong>), no <strong>auditório da Biblioteca Zila Mamede</strong> (<a title="UFRN" href="http://www.ufrn.br" target="_blank">UFRN</a>), o qual teve como palestrante o <strong>prof. Dr. Roberto Ierusalimschy, </strong>da <a title="PUC-RJ" href="http://www.puc-rio.br/" target="_blank">PUC-RJ</a>, criador da <strong>linguagem de programação</strong> <a title="Lua Programming Language" href="http://www.lua.org" target="_blank">Lua</a>, utilizada em diversos projetos pelo mundo. A palestra abordou <strong>temas como o que considerar na criação de uma linguagem de programação</strong> e <strong>aspectos técnicos de Lua</strong>, como seu <em>sistema de números</em> e as chamadas <em>co-rotinas</em>. Em seguida, darei uma breve descrição do evento.</p>
<h3>O que escolher ao projetar uma linguagem</h3>
<p>Primeiramente, o professor Roberto definiu que <strong>não há uma linguagem ótima para tudo</strong>, pois na criação de qualquer uma é preciso escolher entre temas como <strong>Segurança vs. Flexibilidade</strong>, ao escolher tipagem estática ou dinâmica;<strong> Legibilidade vs. Concisão</strong>, no caso de haver diversos modos para realizar a mesma tarefa; e <strong>Desempenho vs. Abstração</strong>, principalmente em linguagens interpretadas. No entanto, o foco é <strong>Simplicidade vs. Quase todo o resto</strong>, ou seja, se você deseja criar uma linguagem bem simples, é preciso abdicar de muitas outras qualidades, já que <strong>muitos problemas podem ser resolvidos ao adicionar complexidade</strong>.</p>
<h3>Lua</h3>
<p>Em seguida, o docente da PUC-RJ explicou que um dos <strong>objetivos principais de Lua</strong>, se não o principal, é a <strong>simplicidade </strong>(<strong>&#8220;Tão simples quanto possível, mas não mais do que isso.&#8221;</strong>). Contudo, eles almejaram sempre algo com <strong>muitos usos e usuários</strong>, focando também em <strong>portabilidade</strong> e o termo <strong>&#8220;embedability&#8221;</strong>, criado pelo próprio Ierusalimschy para designar que <strong>pode ser incorporada a diversos outros projetos</strong>, como <strong>C/C++, Java, Fortran, C#, Perl, Ruby, Python, Ada</strong>, etc.</p>
<p><strong>Lua possui um tamanho extremamente pequeno</strong> se comparada com outras linguagens com o mesmo poder que ela, pois tem seu <strong>binário com menos do que 200KB</strong> e possui o núcleo da linguagem separado de <strong>diversas bibliotecas, sendo bem fácil removê-las e tornar um projeto ainda menor,</strong> sendo possível rodar em quase tudo o que já se ouviu falar. O professor Roberto deu algumas <strong>características fundamentais da linguagem</strong>, como: <strong>sintaxe convencional</strong>; <strong>sintaticamente parecida com Scheme</strong>; <strong>escopo estático</strong>; <strong>tipagem dinâmica</strong>; <strong>procedimentos são objetos e argumentos são passados por valor</strong> (as alterações no valor dos parâmetros não são feitos na própria variável passada, mas em uma cópia dela); <strong>modelo de aritmética do IEEE 754</strong>.</p>
<h3>Design</h3>
<p>Nesse ponto da palestra <strong>a discussão começou a ser mais técnica</strong>, abordando aspectos do projeto da linguagem <a title="Lua Programming Language" href="http://www.lua.org" target="_blank">Lua</a>, como seu <strong>sistema numérico</strong>, as <strong>tabelas</strong>, as <strong>co-rotinas</strong> e o <strong>casamento de padrões</strong> (também conhecido por expressões regulares, mas de forma equivocada, segundo o professor Roberto Ierusalimschy).</p>
<p>Os <strong>números</strong> em<a title="Lua Programming Language" href="http://www.lua.org" target="_blank"> Lua </a>são tratados em um <strong>único tipo numérico</strong>, o que possibilita<strong> regras claras e bem documentadas</strong>, <strong>evitanto regras de conversão</strong> entre tipos e possuindo uma <strong>implementação simples em C</strong>, contudo há uma enorme <strong>lentidão quando o hardware não suporta ponto flutuante </strong>e é <strong>difícil lidar com operações bit-a-bit</strong>, pois não se sabe quantos bits exatamente estão sendo usados para representar o número.</p>
<p>As <strong>tabelas são arrays associativos</strong>, ou seja, <strong>permitem qualquer valor como chave</strong>, e é a <strong>única estrutura de dados em Lua</strong>, podendo implementar <strong>tanto módulos (math.sin(3)) quanto objetos</strong>, no entanto <strong>não há controle de acesso</strong> com as palavras reservadas <em>private, protected, etc.</em>, sendo necessário convencionar entre os próprios programadores essa permissão. <strong>Outro problema é a determinação de tamanho de sequências</strong> utilizando tabelas, pois <strong>índices nil são tratados como inexistentes</strong>, gerando inconsistência em situações como (1, 2, nil, 4) <strong>[Quantos elementos há nessa sequência?]</strong>.</p>
<p>A <strong>co-rotina </strong>é uma funcionalidade de <a title="Lua Programming Language" href="http://www.lua.org" target="_blank">Lua </a>pouco presente em outras linguagens (<strong>parecida com as continuações de Scheme, mas com implementação e semântica mais simples</strong>) e podem ser chamadas em qualquer ponto do programa e controladas em qualquer nível de função (no caso de recursividade). Para entender melhor esse conceito e os outros, é recomendado que se veja a <a title="Lua Programming Language - Manual 5.1" href="http://www.lua.org/manual/5.1/" target="_blank">documentação da linguagem</a>.</p>
<p>Também foi abordado o <strong>casamento de padrões, funcionalidade não muito completa na linguagem</strong>, possuindo uma <strong>biblioteca padrão pequena </strong>e sendo desenvolvida a <strong>biblioteca LPEG, ainda não-padrão,</strong> com muitas alternativas, todavia ainda muito grande para ser incorporada a <a title="Lua Programming Language" href="http://www.lua.org" target="_blank">Lua</a> (~ 2200 linhas de código).</p>
<h3>Conclusão</h3>
<p>Por fim, pôde-se perceber que <strong>o projeto de qualquer linguagem envolve conflitos de objetivos </strong>e, dessa forma, é preciso ter bem definido na mente do criador quais são suas prioridades, porque, como o professor Roberto também frizou, <strong>é mais fácil fazer algo novo em uma linguagem do que tirar</strong>.</p>
<p><strong>Posts interessantes:</strong></p>
<ul>
<li><a title="Não é apenas o emprego dos sonhos" href="http://heltonduarte.com/2010/02/06/nao-e-apenas-o-emprego-dos-sonhos/" target="_self">Não é apenas o emprego dos sonhos</a></li>
<li><a title="Segmentation Fault - a memória do PC pede ajuda!" href="http://heltonduarte.com/2010/01/27/segmentation-fault-a-memoria-do-pc-pede-ajuda/" target="_self">Segmentation Fault &#8211; a memória do PC pede ajuda!</a></li>
<li><a title="Google Docs para Estudantes" href="http://heltonduarte.com/2009/10/10/google-docs-para-estudantes/" target="_self">Google Docs para estudantes</a></li>
<li><a title="Minhas 10 coisas favoritas sobre Ruby" href="http://heltonduarte.com/2009/09/12/minhas-10-coisas-favoritas-sobre-ruby/" target="_self">Minhas 10 coisas favoritas sobre Ruby</a></li>
</ul>
<p><em>E você, o que achou da palestra sobre a criação da linguagem Lua? Alguma dúvida? <strong>Comente</strong> e vamos discutir o assunto!</em></p>
<p><strong>Helton de Melo Duarte</strong></p>
<p><em>&#8220;Porque vale mais um dia nos teus átrios do que, em outra parte, mil. Preferiria estar à porta da Casa do meu Deus, a habitar nas tendas da impiedade.&#8221;</em> <strong>Salmos 84.10</strong></p>
<p><em>&#8220;Porque o SENHOR Deus é um sol e escudo; o SENHOR dará graça e glória; não negará bem algum aos que andam na retidão.&#8221;</em> <strong>Salmos 84.11</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://heltonduarte.com/2010/03/03/small-is-beautiful-the-design-of-lua/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

