<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10portuguesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">

 <title>VidaGeek.net</title>
 
 <link href="http://www.vidageek.net/" />
 <updated>2013-04-07T01:33:00+00:00</updated>
 <id>http://www.vidageek.net/</id>
 <author>
   <name>Breno, Ceci, Fabs, Jonas e Luiz</name>
   <email>contato@vidageek.net</email>
 </author>

 
 <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/VidaGeek" /><feedburner:info uri="vidageek" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-sa/2.5/" /><logo>http://vidageek.net/public/images/escherCube.png</logo><feedburner:emailServiceId>VidaGeek</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FVidaGeek" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/VidaGeek" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FVidaGeek" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FVidaGeek" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><entry>
   <title>Código Livre</title>
   <link href="http://feedproxy.google.com/~r/VidaGeek/~3/1s0yCkeqkBc/" />
   <updated>2013-03-13T00:00:00+00:00</updated>
   <id>http://www.vidageek.net/2013/03/13/codigo-livre</id>
   <content type="html">
	
	
   	&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Você precisa colocar uma licença em todo o conteúdo que produz, se quer que outras pessoas possam modificar ou usar
além dos &lt;a href="http://www.planalto.gov.br/ccivil_03/leis/L9610.htm"&gt;casos pré-definidos no capítulo IV da lei 9610&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Discussão&lt;/h2&gt;

&lt;p&gt;Acompanhei &lt;a href="https://github.com/ThamaraHessel/DojoOnline/issues/13"&gt;uma discussão bem interessante&lt;/a&gt;. Dêem uma lida antes de continuar o post :)&lt;/p&gt;

&lt;p&gt;Existem vários pontos a serem explorados nessa discussão:&lt;/p&gt;

&lt;h2&gt;Porquê eu preciso de uma licensa para o meu software (mesmo que seja apenas uma linha de código)?&lt;/h2&gt;

&lt;p&gt;Vou me restringir ao pouco da legislação brasileira que conheço.&lt;/p&gt;

&lt;p&gt;A &lt;a href="http://www.planalto.gov.br/ccivil_03/leis/L9610.htm"&gt;lei federal 9610&lt;/a&gt; estabelece muito do que está protegido por direitos autorais no Brasil.
A &lt;a href="http://www.planalto.gov.br/ccivil_03/leis/L9609.htm"&gt;lei federal 9609&lt;/a&gt; fala especificamente sobre programas de computador.&lt;/p&gt;

&lt;p&gt;Basicamente, tudo que é produzido automaticamente tem um autor. Esse autor, automaticamente tem
direitos sobre a obra.&lt;/p&gt;

&lt;p&gt;Da lei 9609 (ênfase adicionada por mim):&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Fica assegurada a &lt;strong&gt;tutela dos direitos relativos a programa de computador pelo prazo de cinqüenta anos&lt;/strong&gt;,
contados a partir de 1º de janeiro do ano subseqüente ao da sua publicação ou, na ausência desta, da sua criação.&lt;/p&gt;

&lt;p&gt;A proteção aos direitos de que trata esta Lei &lt;strong&gt;independe de registro&lt;/strong&gt;.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Portanto, software produzido (independente do seu objetivo) está protegido por 50 anos mesmo que não seja feito
registro algum.&lt;/p&gt;

&lt;p&gt;Os direitos de um autor, estão determinados na lei 9610. Alguns deles (ênfase adicionada por mim):&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;V - o de &lt;strong&gt;modificar a obra, antes ou depois de utilizada&lt;/strong&gt;;
VI - o de &lt;strong&gt;retirar de circulação a obra&lt;/strong&gt; ou de &lt;strong&gt;suspender qualquer forma de utilização já autorizada&lt;/strong&gt;,
quando a circulação ou utilização implicarem afronta à sua reputação e imagem;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Notem que esses direitos são exclusivos. Pertencem apenas ao autor e mais ninguém. A não ser que o autor ceda
esses direitos (previsto no capítulo V da lei 9610), outras pessoas não podem fazer muita coisa.&lt;/p&gt;

&lt;p&gt;Então se você quer que outras pessoas possam colaborar ou até mesmo utilizar o seu código, você precisa ceder
esses direitos. Seja simplesmente informando que qualquer pessoa pode utilizar ou colocando uma licença
(versão preferível, uma vez que deixa claro em quais termos pode ser utilizado).&lt;/p&gt;

&lt;p&gt;Na discussão em questão, a frase do &lt;a href="https://github.com/ThamaraHessel/DojoOnline/issues/13#issuecomment-14743876"&gt;@felipebastosweb&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Todo o conteúdo é 100% livre, em todos os aspectos. Não é software, não é projeto, é apenas um depósito de materiais (entrada e saída) dos treinamentos.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;não é o suficiente, porque ele não é o autor do código ou texto presente no repositório.&lt;/p&gt;

&lt;p&gt;Inclusive, todas as citações que estou fazendo aqui só são permidas porque a lei 9610 estabelece que:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;a citação em livros, jornais, revistas ou qualquer outro meio de comunicação, de passagens de qualquer obra,
para fins de estudo, crítica ou polêmica, na medida justificada para o fim a atingir, indicando-se o nome do
autor e a origem da obra&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;não constitui ofensa aos direitos autorais (artigo 46).&lt;/p&gt;

&lt;h2&gt;Preciso colocar licença em código produzido em um Dojo?&lt;/h2&gt;

&lt;p&gt;Em geral as pessoas vão dizer que não. O código não tem como ser aproveitado em produção, então não faz sentido.&lt;/p&gt;

&lt;p&gt;Eu discordo. Um aproveitamento interessante seria, em um treinamento, apresentar várias formas de solução de um
problema de dojo. Outra, seria utilizar respostas de exercícios de dojo para treinar um algoritmo de medição de
performance com base em pequenos trechos de código (e não se enganem, isso é possível).&lt;/p&gt;

&lt;p&gt;Portanto, seria bem interessante para que outras pessoas já pudessem facilmente saber se podem ou não usar. É
realmente muito chato ter que ir atrás dos criadores para pedir autorização de uso.&lt;/p&gt;

&lt;h2&gt;Não é código. Preciso de uma licença?&lt;/h2&gt;

&lt;p&gt;Se você quer que outros utilizem ou contribuam, também precisa. Nada é livre por padrão. A liberdade é algo concedido
pelo autor.&lt;/p&gt;

&lt;p&gt;Isso inclusive é algo que notei no &lt;a href="https://github.com/vidageek/games/issues/263"&gt;Games&lt;/a&gt;. Toda a parte dos textos das explicações não estão sob licença
alguma. Terei que encontrar todos os que contribuíram para pedir autorização para colocar o conteúdo sob
&lt;a href="http://creativecommons.org/"&gt;Creative Commons&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;O projeto em questão precisa de uma licença?&lt;/h2&gt;

&lt;p&gt;Sim. O objetivo claro é que seja construído de forma colaborativa. Existem &lt;a href="https://github.com/ThamaraHessel/DojoOnline/blob/master/tests/PHPUnit/DummyTest.php"&gt;trechos&lt;/a&gt; de &lt;a href="https://github.com/ThamaraHessel/DojoOnline/blob/master/src/bootstrap.php"&gt;código&lt;/a&gt;. Existem outros
trechos de produção inédita que não são código (como o &lt;a href="https://github.com/ThamaraHessel/DojoOnline/blob/master/README.md"&gt;README&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;A única forma de garantir que outras pessoas possam colaborar é cedendo esse direito à elas (caso contrário elas podem
ser processadas ou não vão poder dizer nada se o código for utilizado de uma forma que vá contra o que acreditam, como
se for eventualmente fechado pelo autor).&lt;/p&gt;

&lt;p&gt;A maioria dos programadores que se dedicam à OpenSource que eu conheço, antes de
mais nada, verificam a licença para ver se faz sentido ou não contribuir com o projeto. Caso ela não exista, no máximo
vão abrir uma issue pedindo que a licença seja adicionada (como o &lt;a href="https://github.com/ThamaraHessel/DojoOnline/issues/13"&gt;Roberto Rodrigues fez nesse projeto&lt;/a&gt;).&lt;/p&gt;
 &lt;br /&gt;
	
	
		



	
   &lt;img src="http://feeds.feedburner.com/~r/VidaGeek/~4/1s0yCkeqkBc" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.vidageek.net/2013/03/13/codigo-livre/</feedburner:origLink></entry>
 
 <entry>
   <title>Lambda Day</title>
   <link href="http://feedproxy.google.com/~r/VidaGeek/~3/6jJ-HsG21WA/" />
   <updated>2013-03-11T00:00:00+00:00</updated>
   <id>http://www.vidageek.net/2013/03/11/lambda-day</id>
   <content type="html">
	
	
   	&lt;p&gt;Nessa sexta (Rio de Janeiro) e sábado (São Paulo) aconteceu o primeiro &lt;a href="http://day.lambda3.com.br/"&gt;Lambda Day&lt;/a&gt;, organizado pelo pessoal da &lt;a href="http://www.lambda3.com.br/"&gt;Lambda 3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O evento foi um dos melhores que participei nos últimos anos. Acho que perdeu apenas para o &lt;a href="http://www.agiles.org/"&gt;Ágiles&lt;/a&gt; em Lima, porque é
muito difícil competir com o &lt;a href="http://artfulmaking.com/"&gt;Lee Devin&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Eu poderia ficar horas falando sobre as palestras, mas acredito que eles ainda vão escrever sobre elas no &lt;a href="http://blog.lambda3.com.br/"&gt;blog da Lambda&lt;/a&gt;, então vou comentar sobre o resto do evento.&lt;/p&gt;

&lt;h2&gt;Palestrantes&lt;/h2&gt;

&lt;p&gt;Já faziam alguns anos que eu me perguntava se não poderia existir um evento em que as palestras não ficassem massantes.
Fiz algumas experiências mudando o formato (com o &lt;a href="/2011/05/14/conversa-rapida/"&gt;Conversa Rápida&lt;/a&gt;) ou ajudando na organização de outros eventos (
como a &lt;a href="http://www.thedevelopersconference.com.br/tdc/2012/saopaulo/trilha-scala#programacao"&gt;trilha de Scala do TDC&lt;/a&gt;, na qual tivemos um resultado bem legal), mas foi a primeira vez que vi um evento
onde &lt;strong&gt;todos&lt;/strong&gt; os palestrantes sabiam dar palestras e eram bons nisso.&lt;/p&gt;

&lt;p&gt;Eu estava exausto por causa de uma semana de muito trabalho e pouco tempo dormindo e mesmo assim todos me mantiveram preso
à palestra.&lt;/p&gt;

&lt;p&gt;E não estou falando de palestrantes experiêntes. Embora alguns sejam bem famosos e experiêntes (como Giovanni Bassi,
Victor Hugo e Victor Cavalcante), vários palestrantes eram um pouco menos experiêntes mas conduziram muito bem a
palestra. Foi muito nítida a sensação de que eles prepararam o material e ensaiaram as palestras algumas vezes antes
de apresentar.&lt;/p&gt;

&lt;p&gt;Só com isso, o nível do evento já estaria muito acima da média, mas não para por aqui.&lt;/p&gt;

&lt;h2&gt;Conhecimento do público&lt;/h2&gt;

&lt;p&gt;Eles sabiam perfeitamente qual era o público deles. As palestras não ficaram no mais do mesmo. Sempre era dada uma base
já conhecida para público, mas ela ia além, despertando interesse para se aprofundar mais. E não pensem que isso é fácil
de fazer. É realmente muito difícil medir onde você começa um assunto e onde você termina (a não ser que você não ligue
para isso, então eu provavelmente não vou querer assistir sua palestra ;) ).&lt;/p&gt;

&lt;p&gt;A palestra de &lt;a href="https://en.wikipedia.org/wiki/Functional_programming"&gt;Programação Funcional&lt;/a&gt; em &lt;a href="http://www.scala-lang.org/"&gt;Scala&lt;/a&gt; e &lt;a href="https://research.microsoft.com/en-us/projects/fsharp/"&gt;F#&lt;/a&gt; foi o perfeito exemplo disso. Programação funcional é um
assunto que tende a ficar massante (mesmo com todos os meus esforços, no TDC a minha palestra sobre FP ficou muito
pesada). E o Juliano Alves e o Vinicius Hana conseguiram conseguiram despertar interesse em diversas pessoas que quiseram
saber mais durante o coffe break.&lt;/p&gt;

&lt;h2&gt;Contando histórias&lt;/h2&gt;

&lt;p&gt;Contar histórias é uma das técnicas que mais gosto de ver em palestras. E uma das palestras foi basicamente isso. Contar
histórias do começo ao fim (outras usaram essa técnica, mas não foi do começo ao fim). Foi uma das palestras mais
divertidas e fáceis de acompanhar que assisti. E ao mesmo tempo era muito inspiradora, porque eram histórias reais de
fracasso e sucesso.&lt;/p&gt;

&lt;h2&gt;Pequenos problemas&lt;/h2&gt;

&lt;p&gt;Não dá para ser tão perfeito sempre. Também aconteceram alguns problemas, mas que não inpactaram muito no evento.&lt;/p&gt;

&lt;p&gt;Na palestra do Dyego Costa e do Victor Cavalcante, faltou alguma forma que não dependesse de 3G para acessar e brincar
com a aplicação enquanto eles deixavam ela mais responsiva. Nem precisava de acesso à internet (eu comentei que não
tinha acesso à internet e que isso não fez falta alguma?). Um simples roteador para montar uma rede local e todo
mundo poder acompanhar as mudanças do celular seria muito legal!&lt;/p&gt;

&lt;p&gt;As &lt;a href="https://en.wikipedia.org/wiki/Lightning_talk"&gt;Lightening Talks&lt;/a&gt; foram muito interessantes, mas em comparação com o resto do evento elas pareceram um pouco
menos preparadas. Em qualquer outro evento elas teriam sido o ponto alto, mas em um evento desse nível elas deixaram
um pouco a desejar.&lt;/p&gt;

&lt;p&gt;E teve o problema do endereço (o endereço estava errado. O certo ficava a 300 metros dali), o que provocou um pouco
de atrasos. Mas esse é fácil de não repetir :)&lt;/p&gt;

&lt;h2&gt;Como fazer um evento desse?&lt;/h2&gt;

&lt;p&gt;Esse evento conseguiu realizar algo que eu tentava fazia algum tempo. Um evento com palestras e que as pessoas saíssem
felizes, ao invéz de saírem com sono.&lt;/p&gt;

&lt;p&gt;Para mim, o principal segredo foi o corpo de palestrantes saber o que estava fazendo.&lt;/p&gt;

&lt;p&gt;Como disse, não é uma questão de experiência. Os palestrantes menos experiêntes mandaram muito bem também. É uma questão
de respeitar o tempo que as outras pessoas investem para assistir à uma palestra e investir mais tempo na preparação e
ensaio dela. É usar dicas como as do &lt;a href="http://www.presentationzen.com/"&gt;Presentation Zen&lt;/a&gt; e não ficar apenas no "Não escreva muito texto nos slides".
É lembrar que tendo 50 pessoas te assistindo por uma hora, se a sua palestra for ruim, você está jogando no lixo
50 horas de outras pessoas.&lt;/p&gt;

&lt;p&gt;Além disso, também vale a pena bater um papo com o &lt;a href="https://twitter.com/raphaelmolesim"&gt;Raphael Molesim&lt;/a&gt;, que parece que foi o principal "puxador"
do evento e que estou convidando publicamente à escrever como funcionou a organização do evento. Topa Molesim?&lt;/p&gt;

&lt;p&gt;Enfim, estou no aguardo do próximo Lambda Day. Por mim podia ter um desse por mês, mas como dá muito trabalho me
contento com um por semestre :)&lt;/p&gt;
 &lt;br /&gt;
	
	
		



	
   &lt;img src="http://feeds.feedburner.com/~r/VidaGeek/~4/6jJ-HsG21WA" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.vidageek.net/2013/03/11/lambda-day/</feedburner:origLink></entry>
 
 <entry>
   <title>MySQL Errcode 13</title>
   <link href="http://feedproxy.google.com/~r/VidaGeek/~3/1Hsf8MzhbXo/" />
   <updated>2013-02-27T00:00:00+00:00</updated>
   <id>http://www.vidageek.net/2013/02/27/mysql-errcode-13</id>
   <content type="html">
	
	
   	&lt;p&gt;Quando eu tentei &lt;a href="/2013/02/27/importar-csv-mysql/"&gt;importar um CSV para uma tabela do MySQL&lt;/a&gt; pela primeira vez, recebi um erro estranho. Dava &lt;strong&gt;File not Found (Errcode 13)&lt;/strong&gt; mesmo o arquivo existindo.&lt;/p&gt;

&lt;p&gt;Depois de procurar um pouco, descobri que esse erro é referente à permissões de leitura de arquivo. As permissões estavam corretas e o erro continuava.&lt;/p&gt;

&lt;p&gt;Depois de mais um tempo gasto, &lt;a href="http://ubuntuforums.org/showthread.php?t=822084"&gt;descobri que o Ubuntu agora usa um gerenciador de permissões diferente&lt;/a&gt;, que se chama &lt;a href="https://en.wikipedia.org/wiki/AppArmor"&gt;Apparmor&lt;/a&gt;. Esse Apparmor permite que a aplicação acesse apenas os arquivos que estão declarados no perfil da aplicação.&lt;/p&gt;

&lt;p&gt;No meu caso, como queria que o MySQL pudesse ler um arquivo, adicionei a seguinte linha no arquivo &lt;code&gt;/etc/apparmor.d/usr.sbin.mysqld&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/path/para/o/arquivo r,
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Depois, reiniciei o Apparmor&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/etc/init.d/apparmor restart
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;E simplesmente passou a funcionar.&lt;/p&gt;
 &lt;br /&gt;
	
	
		



	
   &lt;img src="http://feeds.feedburner.com/~r/VidaGeek/~4/1Hsf8MzhbXo" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.vidageek.net/2013/02/27/mysql-errcode-13/</feedburner:origLink></entry>
 
 <entry>
   <title>Rodar o MySQL em outra pasta</title>
   <link href="http://feedproxy.google.com/~r/VidaGeek/~3/mb7u9zG6VUg/" />
   <updated>2013-02-27T00:00:00+00:00</updated>
   <id>http://www.vidageek.net/2013/02/27/mysql-diretorio-diferente</id>
   <content type="html">
	
	
   	&lt;p&gt;No Ubuntu, por padrão o MySQL armazena os dados em &lt;code&gt;/var/lib/mysql&lt;/code&gt;. Isso em geral não é um problema, mas como eu precisava de 20x mais hd do que minha máquina tinha, eu precisei fazer ele armazenar em outro lugar.&lt;/p&gt;

&lt;p&gt;E é meio complicado fazer isso sem gambiarra. Gastei um dia tentando fazer direito e resolvi apelar para a &lt;a href="http://article.my-addr.com/?show=linux_ubuntu_change_datadir-move_mysql_database_to_other_path"&gt;gambiarra que vi em um fórum&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Basicamente você move a &lt;code&gt;/var/lib/mysql&lt;/code&gt; para onde você quer e coloca um link simbólico apontando para ela no lugar.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/etc/init.d/mysql stop
mv /var/lib/mysql pasta_nova
ln -s pasta_nova /var/lib/mysql
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Apenas isso ainda não vai funcionar. Precisa autorizar o &lt;a href="/2013/02/27/mysql-errcode-13/"&gt;acesso à pasta no Apparmor&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;E por fim, subir o mysql novamente&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/etc/init.d/mysql start
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Esse tipo de coisa me faz ter muita saudade do &lt;a href="https://www.sqlite.org/"&gt;Sqlite&lt;/a&gt;.&lt;/p&gt;
 &lt;br /&gt;
	
	
		



	
   &lt;img src="http://feeds.feedburner.com/~r/VidaGeek/~4/mb7u9zG6VUg" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.vidageek.net/2013/02/27/mysql-diretorio-diferente/</feedburner:origLink></entry>
 
 <entry>
   <title>Importar CSV no MySQL</title>
   <link href="http://feedproxy.google.com/~r/VidaGeek/~3/kmShSvDCwh0/" />
   <updated>2013-02-27T00:00:00+00:00</updated>
   <id>http://www.vidageek.net/2013/02/27/importar-csv-mysql</id>
   <content type="html">
	
	
   	&lt;p&gt;Dica rápida mas que me fez falta.&lt;/p&gt;

&lt;p&gt;O &lt;a href="https://www.mysql.com/"&gt;MySQL&lt;/a&gt; possui um comando para &lt;a href="https://dev.mysql.com/doc/refman/5.1/en/load-data.html"&gt;importar um arquivo CSV diretamente em uma tabela&lt;/a&gt; (e parece ser bem rápido).&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;LOAD DATA INFILE 'arquivo' INTO TABLE 'tabela'
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;No meu caso, eu rodei direto da shell com&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mysql -u root database -e "LOAD DATA INFILE 'arquivo' INTO TABLE 'tabela'"
&lt;/code&gt;&lt;/pre&gt;
 &lt;br /&gt;
	
	
		



	
   &lt;img src="http://feeds.feedburner.com/~r/VidaGeek/~4/kmShSvDCwh0" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.vidageek.net/2013/02/27/importar-csv-mysql/</feedburner:origLink></entry>
 
 <entry>
   <title>Converter DBF para CSV</title>
   <link href="http://feedproxy.google.com/~r/VidaGeek/~3/KhtarBbEcyo/" />
   <updated>2013-02-27T00:00:00+00:00</updated>
   <id>http://www.vidageek.net/2013/02/27/converter-dbf-csv</id>
   <content type="html">
	
	
   	&lt;p&gt;Por alguma razão estranha, o governo disponibiliza os &lt;a href="http://www2.datasus.gov.br/DATASUS/index.php"&gt;dados do SUS&lt;/a&gt; em arquivos &lt;a href="http://filext.com/file-extension/DBF"&gt;dbf&lt;/a&gt;
(dBase) e &lt;a href="http://filext.com/file-extension/DBC"&gt;dbc&lt;/a&gt; (Visual Fox Pro). Um formato de fácil extração e aberto. Só que não é.&lt;/p&gt;

&lt;p&gt;Como eu estou analisando os dados do SUS, precisava de alguma forma abrir esses dados em um linux. Depois de
bastante sofrimento (e tentando usar o &lt;a href="http://packages.ubuntu.com/quantal/dbf2mysql"&gt;dbf2mysql&lt;/a&gt;, que finge importar, mas não importa), encontrei um
&lt;a href="https://vijaydev.wordpress.com/2011/03/21/converting-dbf-to-csv/"&gt;post que me mostrou como transformar em CSV&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Basta você usar o programa &lt;code&gt;dbf_dump&lt;/code&gt;, que está no pacote &lt;a href="http://packages.ubuntu.com/quantal/libdbd-xbase-perl"&gt;libdbd-xbase-perl&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Depois disso, foi só &lt;a href="/2013/02/27/importar-csv-mysql/"&gt;importar o CSV no MySQL&lt;/a&gt;.&lt;/p&gt;
 &lt;br /&gt;
	
	
		



	
   &lt;img src="http://feeds.feedburner.com/~r/VidaGeek/~4/KhtarBbEcyo" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.vidageek.net/2013/02/27/converter-dbf-csv/</feedburner:origLink></entry>
 
 <entry>
   <title>Redirect de páginas no S3</title>
   <link href="http://feedproxy.google.com/~r/VidaGeek/~3/wOBFlivxnAs/" />
   <updated>2013-02-21T00:00:00+00:00</updated>
   <id>http://www.vidageek.net/2013/02/21/redirect-301-s3</id>
   <content type="html">
	
	
   	&lt;p&gt;Revisando alguns dos posts antigos do &lt;a href="http://www.vidageek.net"&gt;VidaGeek.net&lt;/a&gt;, notei que o WordPress que usávamos, em algum momento,
preferiu colocar o id do post como url, ao invés de criar uma a partir do título.&lt;/p&gt;

&lt;p&gt;Como isso é bem ruim para engines de busca (menos informação útil), resolvi montar uma url melhor.&lt;/p&gt;

&lt;p&gt;O problema é que existem links para esses posts antigos, então eu precisava redirecionar a página antiga para
a nova. Depois de procurar um pouco, encontrei no &lt;a href="http://stackoverflow.com/questions/2272835/amazon-s3-object-redirect"&gt;StackOverflow como fazer isso&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;No fim, é bem simples pelo &lt;a href="https://console.aws.amazon.com/s3"&gt;console do S3&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Entre no bucket que tem o arquivo que você quer redirecionar&lt;/li&gt;
&lt;li&gt;Selecione o arquivo&lt;/li&gt;
&lt;li&gt;Clique em Properties -&gt; Metadata -&gt; Add more metadata&lt;/li&gt;
&lt;li&gt;Escolha &lt;strong&gt;Website Redirect Location&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Coloque o valor que quer. Pode ser relativo ao começo do bucket.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;A cada dia o S3 fica melhor para hospedar html.&lt;/p&gt;
 &lt;br /&gt;
	
	
		



	
   &lt;img src="http://feeds.feedburner.com/~r/VidaGeek/~4/wOBFlivxnAs" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.vidageek.net/2013/02/21/redirect-301-s3/</feedburner:origLink></entry>
 
 <entry>
   <title>Como montar um EBS no Ubuntu</title>
   <link href="http://feedproxy.google.com/~r/VidaGeek/~3/OwtAEgLd5Ic/" />
   <updated>2013-02-18T00:00:00+00:00</updated>
   <id>http://www.vidageek.net/2013/02/18/montar-ebs-ubuntu</id>
   <content type="html">
	
	
   	&lt;p&gt;Uma coisa que tenho feito com frequência para processar grandes quantidades de dados (~50Gb) é criar um (ou mais) &lt;a href="https://aws.amazon.com/ebs/"&gt;EBS&lt;/a&gt;s temporários.&lt;/p&gt;

&lt;p&gt;Depois de criar um EBS novo e associar ele á máquina que precisa dele, ele ainda não está pronto para usar. Você precisa, antes de mais nada, formatar o EBS.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo mkfs.ext4 /dev/xvdf 
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Em versões de linux mais recentes, o primeiro EBS associado fica disponível em &lt;code&gt;/dev/xvdf&lt;/code&gt; (antes era em &lt;code&gt;/dev/sdf&lt;/code&gt;). O &lt;code&gt;mkfs.ext4&lt;/code&gt; formata o device com &lt;a href="https://en.wikipedia.org/wiki/Ext4"&gt;ext4&lt;/a&gt; como sistema de arquivos. Vale lembrar que se o EBS já estiver formatado e com dados dentro, &lt;strong&gt;TUDO&lt;/strong&gt; será apagado.&lt;/p&gt;

&lt;p&gt;Feito isso, só falta montar o volume.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mkdir pasta
sudo mount /dev/xvdf pasta
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Pronto. Agora é só usar o EBS.&lt;/p&gt;
 &lt;br /&gt;
	
	
		



	
   &lt;img src="http://feeds.feedburner.com/~r/VidaGeek/~4/OwtAEgLd5Ic" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.vidageek.net/2013/02/18/montar-ebs-ubuntu/</feedburner:origLink></entry>
 
 <entry>
   <title>Redirecionamento em Bash</title>
   <link href="http://feedproxy.google.com/~r/VidaGeek/~3/KNlYLc0YYks/" />
   <updated>2013-02-08T00:00:00+00:00</updated>
   <id>http://www.vidageek.net/2013/02/08/redirecionamento-bash</id>
   <content type="html">
	
	
   	&lt;p&gt;Costumo usar bastante redirecionamento em scripts bash. Alguns dos que uso com mais frequência são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;comando &amp;gt; arquivo&lt;/code&gt; redireciona a saída padrão (stdout) do comando para o arquivo&lt;/li&gt;
&lt;li&gt;&lt;code&gt;comando 2&amp;gt; arquivo&lt;/code&gt; redireciona a saída de erro (stderr) do comando para o arquivo&lt;/li&gt;
&lt;li&gt;&lt;code&gt;comando 2&amp;gt;&amp;amp;1&lt;/code&gt; redireciona a saída de erro (stderr) para a saída padrão (stdout)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;comando 1&amp;gt;&amp;amp;2&lt;/code&gt; redireciona a saída padrão (stdout) para a saída de erro (stderr)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;E o redirecionamento muito útil que descobri hoje:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;comando &amp;amp;&amp;gt; arquivo&lt;/code&gt; redireciona a saída de erro e a padrão para o arquivo.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Esse redirecionamento realmente fez falta :)&lt;/p&gt;
 &lt;br /&gt;
	
	
		



	
   &lt;img src="http://feeds.feedburner.com/~r/VidaGeek/~4/KNlYLc0YYks" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.vidageek.net/2013/02/08/redirecionamento-bash/</feedburner:origLink></entry>
 
 <entry>
   <title>Cópia recursiva de um ftp</title>
   <link href="http://feedproxy.google.com/~r/VidaGeek/~3/sw1GA7sV2EA/" />
   <updated>2013-02-08T00:00:00+00:00</updated>
   <id>http://www.vidageek.net/2013/02/08/copia-recursiva-ftp</id>
   <content type="html">
	
	
   	&lt;p&gt;Acabei de precisar fazer cópia recursiva de um ftp do governo. Como vocês devem saber, ftp é
um protocolo meio burro então ele não suporta isso.&lt;/p&gt;

&lt;p&gt;Para resolver o problema, descobri umas funcionalidades que não conhecia do &lt;a href="https://www.gnu.org/software/wget/"&gt;wget&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;O comando que usei foi o seguinte:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget --mirror --ftp-user=USERNAME --ftp-password=SENHA \
    --no-host-directories ftp://DOMINIO/CAMINHO/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;O grande segredo é o &lt;code&gt;--mirror&lt;/code&gt;, que entre outras coisas, habilita recursão infinita nos diretórios (além
dele baixar apenas os arquivos modificados em uma próxima atualização).&lt;/p&gt;

&lt;p&gt;Enfim, quase um &lt;a href="https://rsync.samba.org/"&gt;rsync&lt;/a&gt; para ftp.&lt;/p&gt;
 &lt;br /&gt;
	
	
		



	
   &lt;img src="http://feeds.feedburner.com/~r/VidaGeek/~4/sw1GA7sV2EA" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.vidageek.net/2013/02/08/copia-recursiva-ftp/</feedburner:origLink></entry>
 
 <entry>
   <title>Tempo x Prioridade</title>
   <link href="http://feedproxy.google.com/~r/VidaGeek/~3/bulDqdXCPlw/" />
   <updated>2013-02-07T00:00:00+00:00</updated>
   <id>http://www.vidageek.net/2013/02/07/tempo-prioridade</id>
   <content type="html">
	
	
   	&lt;blockquote&gt;&lt;p&gt;Não deu tempo de ir&lt;/p&gt;

&lt;p&gt;Estou sem tempo de estudar&lt;/p&gt;

&lt;p&gt;Não deu tempo de entregar&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Já ouviram ou falaram isso? Quem convive comigo já está acostumado a ouvir "todos temos 24 horas por dia".
E alguns ficam ofendidos com isso.&lt;/p&gt;

&lt;p&gt;Existe um grande problema nessas frases. Elas são uma fuga que passa despercebida afinal, se não deu tempo,
o que podemos fazer? No fim, a culpa implícita alí é do relógio que não parou de mover os ponteiros. Você se
exime da culpa e tudo está certo. Só que não está.&lt;/p&gt;

&lt;p&gt;Todos temos 24 horas por dia. Então se existem pessoas fazendo coisas que não conseguimos, não é por causa
do tempo. É uma questão das prioridades que escolhemos.&lt;/p&gt;

&lt;p&gt;E aqui a coisa fica feia. Afinal, se a prioridade está errada ou não agrada alguém, a culpa é nossa e não
de uma entidade independente de nós.&lt;/p&gt;

&lt;p&gt;Já pensaram responder para a(o) namorada(o) que você não foi encontrá-la(o) porque beber com os amigos era
uma prioridade maior? Certeza de briga.&lt;/p&gt;

&lt;p&gt;Mas essa é a verdade nua e crua. Você escolheu entre duas coisas mutualmente exclusivas. E venceu a que teve
maior prioridade, mesmo que você não tenha pensado nisso.&lt;/p&gt;

&lt;p&gt;Pensar dessa forma é complicado, mas traz uma vantagem importante. &lt;strong&gt;Você não tem mais algo a culpar além de
você&lt;/strong&gt;. O culpado de não estudar por causa do trabalho (que é uma prioridade maior do que estudar para algumas
pessoas) é você. Você não foi jantar com a sogra porque a prioridade maior era rever os amigos. Você não
terminou o trabalho porque jogar WoW era uma prioridade maior.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;E NÃO TEM ABSOLUTAMENTE NADA ERRADO COM ISSO!!!!!!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Você é quem determina onde você quer chegar. Como alguém pode dizer que as suas prioridades estão erradas?
No máximo, elas podem simplesmente ir contra a expectativa de outras pessoas. Mas quem disse que vivemos
para satisfazer expectativas de outras pessoas?&lt;/p&gt;
 &lt;br /&gt;
	
	
		



	
   &lt;img src="http://feeds.feedburner.com/~r/VidaGeek/~4/bulDqdXCPlw" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.vidageek.net/2013/02/07/tempo-prioridade/</feedburner:origLink></entry>
 
 <entry>
   <title>s3-jekyll-deploy</title>
   <link href="http://feedproxy.google.com/~r/VidaGeek/~3/FI9ujuAxJvs/" />
   <updated>2013-01-27T00:00:00+00:00</updated>
   <id>http://www.vidageek.net/2013/01/27/2-s3-jekyll-deploy</id>
   <content type="html">
	
	
   	&lt;p&gt;Desde que eu comecei a colocar &lt;a href="http://www.vidageek.net/2012/04/18/como-fazer-upload-para-o-s3-da-amazon/"&gt;sites no S3&lt;/a&gt;, uma coisa que me irritou bastante foi o tempo
que demorava para o deploy do site terminar.&lt;/p&gt;

&lt;p&gt;Um site como o VidaGeek.net, que tem quase 400 posts, demorava meia hora porque o script
que enviava os arquivos era muito burro.&lt;/p&gt;

&lt;p&gt;Pra resolver isso, criei &lt;a href="https://github.com/vidageek/s3-jekyll-deploy"&gt;um script sujo, imundo, porco e nojento&lt;/a&gt; que simplesmente verifica
se o MD5 (era SHA, mas estava demorando muito) do arquivo mudou desde o último deploy. Se mudou,
envia. Senão não faz nada :)&lt;/p&gt;

&lt;p&gt;Se mais alguém passa pelo mesmo problema, talvez ele ajude. Mas repito, é um código bem horrendo...&lt;/p&gt;
 &lt;br /&gt;
	
	
		



	
   &lt;img src="http://feeds.feedburner.com/~r/VidaGeek/~4/FI9ujuAxJvs" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.vidageek.net/2013/01/27/2-s3-jekyll-deploy/</feedburner:origLink></entry>
 
 <entry>
   <title>git push -f</title>
   <link href="http://feedproxy.google.com/~r/VidaGeek/~3/S4v6q29A9vk/" />
   <updated>2013-01-27T00:00:00+00:00</updated>
   <id>http://www.vidageek.net/2013/01/27/1-git-push-f</id>
   <content type="html">
	
	
   	&lt;p&gt;Hoje aconteceu algo interessante durante os commits no &lt;a href="http://games.vidageek.net/"&gt;Games&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Um dos commiters reverteu 3 commits que foram pra origin/master na hora errada usando &lt;code&gt;git push -f&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Aparentemente não existe problema algum nisso. Os commits não estavam lá, então o código estava correto.&lt;/p&gt;

&lt;p&gt;Mais ou menos. O código realmente não estava lá, mas eu tinha os commits que foram apagados porque tinha
rodado um &lt;code&gt;git pull&lt;/code&gt; antes do &lt;code&gt;git push -f&lt;/code&gt;. Isso era um problema. Como apenas eu tinha feito isso,
simplesmente removi os commits da minha árvore e tudo estava certo. Mas imaginem que alguém faça isso
em um projeto muito mais ativo. Nesse momento ou todos removem os commits apagados ou as portas do
inferno se abrem de uma forma que vai ser muito difícil de fechar.&lt;/p&gt;

&lt;p&gt;O &lt;code&gt;git push -f&lt;/code&gt; é uma operação muito destrutiva, uma vez que você simplesmente reescreve a árvore de commits
da origem para que ela fique igual à sua. Por essas razões ele só deve ser usado em situações de emergência
que você não consiga contornar de outra forma.&lt;/p&gt;

&lt;p&gt;No caso que comentei, o mais simples era rodar um &lt;a href="http://christoph.ruegg.name/blog/2010/5/5/git-howto-revert-a-commit-already-pushed-to-a-remote-reposit.html"&gt;git revert HASH_DO_COMMIT&lt;/a&gt; nos commits, que resolveria
o problema porque o &lt;code&gt;git revert&lt;/code&gt; gera um novo commit revertendo as modificações introduzidas no commit referenciado.&lt;/p&gt;
 &lt;br /&gt;
	
	
		

	&lt;div class="well"&gt;
	Quer aprender mais sobre esse assunto? Conheça o 
	&lt;a href="http://games.vidageek.net/play/git"&gt;Git Game&lt;/a&gt;
	&lt;/div&gt;



	
   &lt;img src="http://feeds.feedburner.com/~r/VidaGeek/~4/S4v6q29A9vk" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.vidageek.net/2013/01/27/1-git-push-f/</feedburner:origLink></entry>
 
 <entry>
   <title>Git Game</title>
   <link href="http://feedproxy.google.com/~r/VidaGeek/~3/IGJ_ejDg7e8/" />
   <updated>2013-01-12T00:00:00+00:00</updated>
   <id>http://www.vidageek.net/2013/01/12/git-game</id>
   <content type="html">
	
	
   	&lt;p&gt;No &lt;a href="http://www.vidageek.net/2012/02/24/jogos-para-aprender/"&gt;começo do ano passado&lt;/a&gt; colocamos uma PoC sobre jogos para aprendizado no ar. Estava
bem cru, com poucos exercícios mas já dava para ver se funcionava.&lt;/p&gt;

&lt;p&gt;Depois de quase um ano de horas vagas e muito trabalho para melhorar toda a parte interna
de como funciona o &lt;a href="http://games.vidageek.net/"&gt;VidaGeek Games&lt;/a&gt;, finalmente estamos lançando o segundo jogo, o
&lt;a href="http://games.vidageek.net/play/git"&gt;Git Game&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;O Git Game surgiu da necessidade de ensinar &lt;a href="http://git-scm.com/"&gt;Git&lt;/a&gt; para outras pessoas e do fato de um
post sobre o &lt;a href="http://www.vidageek.net/2009/07/06/git-workflow/"&gt;fluxo de trabalho com Git&lt;/a&gt; ser um dos mais visitados do blog.&lt;/p&gt;

&lt;p&gt;O jogo ainda possui poucos exercícios (mais ou menos 100), mas já contêm boa parte do que
uso no dia a dia.&lt;/p&gt;

&lt;p&gt;Ainda falta bastante polimento, mas já dá para aprender uma coisa ou outra.&lt;/p&gt;

&lt;p&gt;Espero que gostem.&lt;/p&gt;

&lt;p&gt;E como sempre, todo feedback é muito bem vindo!&lt;/p&gt;
 &lt;br /&gt;
	
	
		

	&lt;div class="well"&gt;
	Quer aprender mais sobre esse assunto? Conheça o 
	&lt;a href="http://games.vidageek.net/play/git"&gt;Git Game&lt;/a&gt;
	&lt;/div&gt;



	
   &lt;img src="http://feeds.feedburner.com/~r/VidaGeek/~4/IGJ_ejDg7e8" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.vidageek.net/2013/01/12/git-game/</feedburner:origLink></entry>
 
 <entry>
   <title>Produtividade pra quê?</title>
   <link href="http://feedproxy.google.com/~r/VidaGeek/~3/ZXV4HBtU7pQ/" />
   <updated>2012-12-06T00:00:00+00:00</updated>
   <id>http://www.vidageek.net/2012/12/06/produtividade-pra-que</id>
   <content type="html">
	
	
   	&lt;p&gt;O cálice sagrado do desenvolvimento de software. Um programador mais produtivo é melhor que o outro que produz menos.
Precisamos aumentar a produtividade do time. Se aquele cara não melhorar a produtividade dele, vamos ter que cortar ele.&lt;/p&gt;

&lt;h2&gt;WTF?&lt;/h2&gt;

&lt;p&gt;Pra que queremos tanta produtividade? Qual é a vantagem disso? O que estamos ganhando com isso? Não consigo encontrar uma resposta
minimamente razoável para nenhuma dessas perguntas.&lt;/p&gt;

&lt;p&gt;É claro que respostas como "Assim vamos conseguir entregar mais coisas" ou "Vamos ter vantagem sobre nossos concorrentes" e outras vem à cabeça, mas isso não faz sentido algum. &lt;strong&gt;Mais&lt;/strong&gt; não implica &lt;strong&gt;Melhor&lt;/strong&gt; (alguém aí usa Word?).&lt;/p&gt;

&lt;p&gt;Então porque continuar essa busca insana?&lt;/p&gt;

&lt;h2&gt;O que é ser produtivo?&lt;/h2&gt;

&lt;p&gt;Em desenvolvimento de software, o que significa ser produtivo? Entregar mais linhas de código? (Não. LoC morreu faz um tempo).
Mais pontos de função? (Não. Palavrões não são permitidos nesse blog). Mais Story Points? (Não serve pra isso)&lt;/p&gt;

&lt;p&gt;Como é que se mede isso? Não mede. É simplesmente um feeling das pessoas. Entregue duas telas com validação e você é produtivo.
Mude a arquitetura da aplicação inteira em uma semana e você não fez nada (mesmo que agora a sua aplicação finalmente aguente a
carga de usuários).&lt;/p&gt;

&lt;h2&gt;Lixo por Dia&lt;/h2&gt;

&lt;p&gt;Conheci pessoas/empresas consideradas muito produtivas. Muitos (não consigo dizer todos porquê não lembro de todos) deles
eu gostava de medir a produtividade em &lt;strong&gt;Lixo por Dia&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Basicamente, depois deles produzirem feito loucos varridos
(expressão engraçada essa) alguém tinha que passar e fazer uma senhora faxina no código.&lt;/p&gt;

&lt;p&gt;O tempo que o faxineiro gastava
para arrumar a casa impedia ele de entregar coisas. Logo, o criador de lixo era mais produtivo que o faxineiro.&lt;/p&gt;

&lt;p&gt;É um ótimo
estímulo para mais pessoas simplesmente colocarem lixo em cima de lixo sem se preocupar com quando tudo isso vai cair.&lt;/p&gt;

&lt;h2&gt;Linguagens mais produtivas&lt;/h2&gt;

&lt;p&gt;Isso é uma piada. Ruby/Python/Scala é mais produtivo que Java/C# porque eu escrevo menos código.&lt;/p&gt;

&lt;p&gt;Claro. Porque escrever menos
código é comprovadamente melhor. Você simplesmente se sente mais confortável escrevendo menos código. Ninguém consegue afirmar
(de forma responsável) se isso é melhor ou não. No fim, boa parte é simplesmente &lt;a href="https://pt.wikipedia.org/wiki/S%C3%ADndrome_de_Estocolmo"&gt;síndrome&lt;/a&gt; de &lt;a href="https://twitter.com/alex_gaynor/status/274384201447534592"&gt;estocolmo&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Flow&lt;/h2&gt;

&lt;p&gt;Um psicólogo húngaro chamado &lt;a href="https://en.wikipedia.org/wiki/Mihaly_Csikszentmihalyi"&gt;Mihaly Csikszentmihalyi&lt;/a&gt; criou o conceito chamado &lt;a href="https://en.wikipedia.org/wiki/Flow_(psychology)"&gt;Flow&lt;/a&gt;. Um estado em que estamos
completamente absorvidos no que estamos fazendo, tudo parece dar certo, produzimos mais que o normal, ficamos ligeiramente
eufóricos e experimentamos uma sensação de satisfação e felicidade bem alta. Algo parecido com o famoso &lt;strong&gt;programador 10X&lt;/strong&gt; e a
&lt;strong&gt;super produtividade&lt;/strong&gt; de alguns times ágeis.&lt;/p&gt;

&lt;p&gt;Um detalhe interessante do Flow, é que nesse estado ficamos &lt;strong&gt;completamente&lt;/strong&gt;
dedicados ao que estamos fazendo. Isso significa que aprender, compartilhar conhecimento, ajudar um programador com problemas
e vários outros pontos importantes para desenvolvimento de software ficam em segundo plano.&lt;/p&gt;

&lt;h2&gt;Enfim&lt;/h2&gt;

&lt;p&gt;Eu cada vez mais considero produtividade como uma (pseudo) métrica lesiva. Não temos como medir. Não sabemos que resultado tráz.
Não sabemos como otimizar. Não sabemos pra que serve. Só perdemos tempo e aumentamos o estresse acumulado.&lt;/p&gt;
 &lt;br /&gt;
	
	
		



	
   &lt;img src="http://feeds.feedburner.com/~r/VidaGeek/~4/ZXV4HBtU7pQ" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://www.vidageek.net/2012/12/06/produtividade-pra-que/</feedburner:origLink></entry>
 

</feed>
