<?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>hlegius &#187; Dia-a-dia</title>
	<atom:link href="http://programe.me/category/dia-a-dia/feed/" rel="self" type="application/rss+xml" />
	<link>http://programe.me</link>
	<description>programação, desenvolvimento, tecnologia e muito o que contar.</description>
	<lastBuildDate>Wed, 23 Nov 2011 17:26:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>PHP Conference Brasil 2011</title>
		<link>http://programe.me/php-conference-brasil-2011/</link>
		<comments>http://programe.me/php-conference-brasil-2011/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 12:00:29 +0000</pubDate>
		<dc:creator>hlegius</dc:creator>
				<category><![CDATA[Dia-a-dia]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[palestra]]></category>
		<category><![CDATA[phpconf]]></category>

		<guid isPermaLink="false">http://programe.me/?p=809</guid>
		<description><![CDATA[Quer concorrer a um convite Silver na faixa? Até 26/11! Diferentemente dos outros anos, em 2011 eu estarei na PHPConference como palestrante. Meu maior impasse era quanto ao tema, por fim, decidi submeter algo polêmico que foi aceito! Acredito conseguir abrir a mente de alguns possíveis espectadores com o tema: Definir classe não é programar [...]]]></description>
			<content:encoded><![CDATA[<pre><strong><a href="http://twitter.com/hlegius/status/139395194549313536">Quer concorrer a um convite Silver na faixa? </a>Até 26/11!</strong></pre>
<p>Diferentemente dos outros anos, em 2011 eu estarei na <a href="http://phpconference.com.br/schedule/day1">PHPConference como palestrante</a>. Meu maior impasse era quanto ao tema, por fim, decidi submeter algo polêmico que foi aceito! Acredito conseguir abrir a mente de alguns possíveis espectadores com o tema:</p>
<blockquote><p><a>Definir classe não é programar com orientação a objetos.</a></p></blockquote>
<p>Do que <strong>não</strong> falarei:</p>
<ul>
<li>Como definir uma classe com PHP;</li>
<li>Classe e Objeto no âmbito técnico do PHP;</li>
<li>Parâmetros, métodos e objetos;</li>
<li>Padrões de projeto (design patterns).</li>
</ul>
<p>Do que falarei:</p>
<ul>
<li>Design (projeto) orientado a objetos;</li>
<li>Princípios de orientação a objetos;</li>
<li>Como <strong>não</strong> definir uma classe (code smell);</li>
<li>Composição, agregação, value object e entidades;</li>
<li>Ubiquitous Language (ourindo do Domain-Driven Design)</li>
<li>Getters, setters burros;</li>
<li>Ciclo de vida de um objeto.</li>
</ul>
<p>O objetivo é abrir a mente dos presentes para uma orientação a objetos pura, legível e realmente manutenível. Minha palestra será na sexta-feira, 2 de dezembro às 11hs (<a href="http://phpconference.com.br/schedule/">de acordo com a grade atual</a>). <a href="http://www.phpconference.com.br/presentations/show/id/90">Interessou</a>? Aparece por lá! <img src='http://programe.me/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://programe.me/php-conference-brasil-2011/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Documentar para a eternidade</title>
		<link>http://programe.me/documentar-para-a-eternidade/</link>
		<comments>http://programe.me/documentar-para-a-eternidade/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 14:20:06 +0000</pubDate>
		<dc:creator>hlegius</dc:creator>
				<category><![CDATA[Dia-a-dia]]></category>
		<category><![CDATA[equipes]]></category>
		<category><![CDATA[gestão]]></category>

		<guid isPermaLink="false">http://www.hlegius.pro.br/?p=739</guid>
		<description><![CDATA[Quando trabalhava sozinho, salvar e propagar o conhecimento de domínio das aplicações era uma tarefa fácil. Eu criava; eu codificava; eu catalogava tais conhecimentos e eu os mantinham atualizados. Após começar a efetivamente trabalhar em equipe, encontrei uma dificuldade imensa em documentar para a eternidade o que eu codificava. Ao longo do tempo, tentei várias [...]]]></description>
			<content:encoded><![CDATA[<p>Quando trabalhava sozinho, salvar e propagar o conhecimento de domínio das aplicações era uma tarefa fácil. Eu criava; eu codificava; eu catalogava tais conhecimentos e eu os mantinham atualizados. Após começar a efetivamente trabalhar em equipe, encontrei uma dificuldade imensa em <em><strong>documentar</strong></em><strong><em> para a eternidade</em></strong> o que eu codificava. Ao longo do tempo, tentei várias coisas, uma com mais e outras com nenhum efeito positivo sobre o problema. Contarei aqui, um relato resumido deste processo.</p>
<p><strong>O problema</strong></p>
<p>Documentar para a eternidade.</p>
<p><strong>1. pseudossolução: texto e mais textos</strong></p>
<p>No ano de 2009, eu entrei  no time de web da <a href="http://vexcorp.com" target="_blank">Vex</a> e como tal fiz minha primeira tentativa a fim de resolver o problema da documentação do que eu fazia. Tentei <strong>documentos de especificação técnica</strong>.</p>
<p>Escrevia em um arquivo .odt tudo o que eu havia entendido sobre o projeto e com aquilo, começava as atividades de design e codificação. Era engraçado, pois essa atividade assemelha-se ao renomado processo cascata e increvelmente, era simples e parecia solucionar o problema. Não satisfeito em escrever o .odt eu o salvei no servidor de versão e ainda por cima mandei por email para toda equipe Web.</p>
<p>Após algum tempo, novos requisitos apareceram e eu até mudei o .odt, mas não enviei novamente à Web, pois, na primeira vez, percebi que ninguém leu o arquivo, afinal, não era do interesse deles aquele montante de informação escrita e até, confusa.</p>
<p>Mais modificações vieram e eu modifiquei direto o sistema sem passar pelo documento.</p>
<p><strong>Resultados:</strong> após algumas semanas, o documento já não servia para mais nada.</p>
<p><strong>2. pseudossolução: report email</strong></p>
<p>Como documentos extensos não deram resultados para a equipe &#8211; incluindo-me nisto &#8211; resolvi em outro projeto, enviar um pequeno email report relatando como estava o processo e o que estava adotando para seguir. Ficou parecendo um diário de bordo resumido do projeto, enviado apenas umas duas vezes. Não fui buscar resultados, mas alguma coisa me diz que ninguém leu ou lembra-se disto.</p>
<p><strong>Resultados</strong>: fail.</p>
<p><strong>3. pseudossolução: diagramas</strong></p>
<p>Durante os projetos comecei a pensar: porque não disponibilizar os esboços de diagramas de classe que faço de meus designs ? Assim, ajudaria os demais a visualizar por um nível macro o que relaciona com quem. Esta ideia ficou somente na ideia, pois eu me deparei com a situação: como disponibilizar isto e manter atualizado ?</p>
<p>E foi daí que venho minha quarta ideia&#8230;</p>
<p><strong>4. pseudossolução: wiki !</strong></p>
<p>Ferramenta utilizada na Vex antes de 2009 sem sucesso, o Wiki foi uma forma que eu vi para documentar os projetos. Cheguei a comentar com o <a href="http://twitter.com/esampaio" target="_blank">@esampaio</a> sobre isto, mas ele disse que na primeira tentativa (antes de 2009) somente dois ou três desenvolvedores preocupavam-se em atualizar a ferramenta e por fim, acabou morrendo por desatualização.</p>
<p><strong>Após idas e vindas</strong> do trabalho pra aula e para casa pensando sobre isto, percebi que o ponto de interseção entre todas as pseudossoluções era: <strong>fazer algo além do sistema funcionar.</strong></p>
<p>Eu como programador sei bem o quão relutante eu era para escrever documentos e realizar processos burocráticos de software. Incrivelmente, com estas ditas soluções eu acabaria adicionando (mais) um processo burocrátivo na minha vida, desfocando daquilo que realmente importa: <a href="http://agilemanifesto.org" target="_blank">software funcionando</a>. Percebi também que ao longo do tempo eu escrevia testes e aquilo sim agregava valor ao &#8220;software funcionando&#8221; e mais do que isto, me auxiliava à ver <em>codificadamente</em> as soluções de design tomadas no processo. Possibilitou que eu mudasse a funcionabilidade sem medo de side-effects pois os testes diziam exatamente o que era esperado daquele software.</p>
<p>É aí que entra a escrita de bons testes. Simples, coesos e desacoplados. Para atingir tal estágio não é fácil, requer muitas tentativas e erros (<span style="text-decoration: line-through;">eXtreme Go Horse</span>), mas que no final recompensam cada hora focada na melhoria da técnica de escrever testes.</p>
<p>Meu próximo passo é tentar as <em>retrospectivas</em>. Por isto, realizo hoje uma palestra interna na Vex com o título: Retrospectiva. Nela, apresento a timeline idêntica a este post &#8211; com muito mais detalhes, claro &#8211; com o objetivo de mostrar para o resto da equipe de TI o que a Web passou durante 2 anos. Pedi que levassem também, um &#8220;problema&#8221; que cada um vê em seu trabalho atualmente, visando assim encontrar soluções em grupo para tais problemas &#8211; que podem até serem recorrentes.</p>
<p>Até o momento não vi motivos para as retrospectivas não funcionarem, mas isto só poderei afirmar daqui algumas semanas.</p>
]]></content:encoded>
			<wfw:commentRss>http://programe.me/documentar-para-a-eternidade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recuperando um commit no meio da linha de morte no Git</title>
		<link>http://programe.me/recuperando-um-commit-no-meio-da-linha-de-morte-no-git/</link>
		<comments>http://programe.me/recuperando-um-commit-no-meio-da-linha-de-morte-no-git/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 14:23:13 +0000</pubDate>
		<dc:creator>hlegius</dc:creator>
				<category><![CDATA[Dia-a-dia]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.hlegius.pro.br/?p=732</guid>
		<description><![CDATA[Situação do dia-a-dia: Cenário: Uma timeline com os últimos 10 commits apenas locais contendo uns testes malucos seu. Destes 10, você precisa tirar um para um push no servidor remoto, porém ele está lá no meio, entre o quinto e sétimo commit. E agora ? Solução: git reset + git  diff + git apply Primeiro, [...]]]></description>
			<content:encoded><![CDATA[<p>Situação do dia-a-dia:</p>
<p><strong>Cenário:</strong></p>
<p>Uma timeline com os últimos 10 commits apenas locais contendo uns testes malucos seu. Destes 10, você precisa tirar um para um push no servidor remoto, porém ele está lá no meio, entre o quinto e sétimo commit. E agora ?</p>
<p><strong>Solução:</strong></p>
<p><em>git reset + git  diff + git apply</em></p>
<p>Primeiro, peguei o hash do commit que me interessa da lista. Com ele em mãos, fiz um reset para ele:</p>
<blockquote><p>$ git reset d3fb9</p></blockquote>
<p>Fiz um diff entre o commit HEAD (ele próprio) e o penúltimo commit da timeline gerando um .patch da diferença:</p>
<blockquote><p>$ git diff -u 691ac &gt; meu_commit_importante.patch</p></blockquote>
<p>Após ter meu patch a salvo, fiz o reset apontando para o último commit que tenho sincronizado com meu servidor remoto:</p>
<blockquote><p>$ git reset 12345</p></blockquote>
<p>Após, eu utilizei o git apply &#8211;check para verificar se meu patch não ocasionaria problemas e por fim o apliquei:</p>
<blockquote><p>$ git apply meu_commit_importante.patch</p></blockquote>
<p>Como eu não preciso logar no histórico que fiz isso (eram commits locais, lembra ?) não utilizei o git am conforme o pessoal costuma utilizar. Após isto, git commit -a -m &#8220;Modificação XPTO&#8221; e done.</p>
<p>Como me é interessante manter o que estou fazendo vivo, obviamente o coloquei em um branch separado após isto.</p>
]]></content:encoded>
			<wfw:commentRss>http://programe.me/recuperando-um-commit-no-meio-da-linha-de-morte-no-git/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ALM Conference Brasil</title>
		<link>http://programe.me/alm-conference-brasil/</link>
		<comments>http://programe.me/alm-conference-brasil/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 10:03:23 +0000</pubDate>
		<dc:creator>hlegius</dc:creator>
				<category><![CDATA[Dia-a-dia]]></category>
		<category><![CDATA[eventos]]></category>

		<guid isPermaLink="false">http://www.hlegius.pro.br/?p=721</guid>
		<description><![CDATA[Quarta-feira passada, aconteceu aqui em São Paulo a primeira ALM Conference Brasil. Por ser a primeira, claro que não poderia faltar ele, o Ken Schwaber abrindo o dia do evento com sua excelente palestra sobre ALM e Scrum não são suficientes. Ele abordou rapidamente o que é ALM (Application Lifecycle Management); dedicou uma boa parte do [...]]]></description>
			<content:encoded><![CDATA[<p>Quarta-feira passada, aconteceu aqui em São Paulo a primeira ALM Conference Brasil. Por ser a primeira, claro que não poderia faltar ele, o <a href="http://en.wikipedia.org/wiki/Ken_Schwaber" target="_blank">Ken Schwaber</a> abrindo o dia do evento com sua excelente palestra sobre <em><strong>ALM e Scrum não são suficientes</strong></em>.</p>
<p>Ele abordou rapidamente o que é ALM (<a href="http://en.wikipedia.org/wiki/Application_lifecycle_management" target="_blank">Application Lifecycle Management</a>); dedicou uma boa parte do tempo explicando o que realmente é o framework Scrum e da junção de ambos no desenvolvimento de software. O interessante da palestra foi ele propor duas atividades de 5 minutos para que os participantes pensassem sobre a situação-problema por ele anunciada e após abriu para debate.</p>
<p>Após a palestra dele,<a href="http://twitter.com/#!/josepapo" target="_blank"> José Papo</a> assumiu o palco para abordar o tema <strong><em>ALM com governança e qualidade</em></strong>. Ele defendeu que é possível agradar <span style="text-decoration: line-through;">gregos e troianos</span> equipes que gostam da utilização do Scrum no ciclo de vida do software sem esquecer daquele gestor ou diretor que vive de planilhas e gráficos de Gantt daquela empresa que você sabe o nome.</p>
<p>Aliás, uma coisa &#8211; ao meu ver &#8211; quebrou o brilho do evento: o marketing invasivo da Microsoft. Ridículo, imaturo e desnecessário são as palavras que cabem para o que fora lá praticado.</p>
<p>O José papo por ser da área técnica do Visual Studio no Brasil, precisou ao longo de sua palestra, puxar sardinha pro lado da empresa <span style="text-decoration: line-through;">que paga parte de seu salário</span> de tal forma que ficou nítido que ele era forçado a fazer aquilo.</p>
<p>Utilizar gráficos para exibir uma <em>autoafirmativa</em> liderança no mercado de ferramentas para developers no meio da palestra &#8211; inclusive foi citado isso &#8211; foi feio; &#8220;Utilizem o &#8216;Bing&#8217; caso não saibam o que é tal coisa&#8221; &#8211; e não era uma brincadeira quando falava isto. Para não ser injusto, a única descontração que houve foi o diretor de produto Visual Studio citar: <em>&#8220;A Microsoft faz coisas boas, com exceção ao [Windows] Vista !&#8221;</em></p>
<p>Apesar do marketing <em>burro</em> da Microsoft, a palestra do Papo agregou muito e desmistificou outras tantas também.</p>
<p>Após o almoço, voltamos com um convite para uma espécie de &#8220;Mão na Massa&#8221; com a plataforma Team Foundation Server e Visual Studio. Não sei se todas as vagas foram preenchidas, o que posso afirmar é que a palestra que concorria com esse laboratório estava cheia.</p>
<div class="wp-caption aligncenter" style="width: 550px"><a href="http://twitpic.com/40gpco"><img class=" " title="ALM Conference Brasil" src="http://s3.amazonaws.com/twitpic/photos/large/242644056.jpg?AWSAccessKeyId=0ZRYP5X5F6FSMBCCSE82&amp;Expires=1298023692&amp;Signature=DUTUd9UbCb%2BPjJ8FbDIC3QF2Lok%3D" alt="" width="540" height="405" /></a><p class="wp-caption-text">Scrum na prática @ ALM Conference Brasil</p></div>
<p style="text-align: center;">
<p>O pessoal da <em>Programmer&#8217;s</em>, apresentou de forma bem didática como eles aplicam Scrum e melhor: a palestra foi instrumentada com Scrum elucidando ainda mais o que era por eles explicado. Destaque para o Kanban 3D com monitor touch screen que estava em exposição no stand deles.</p>
<p>O evento foi proveitoso, grátis e incrivelmente tranquilo. A divulgação deste evento ao meu ver foi fraca, haja vista que sobraram muitas vagas em um evento que eu aposto que seria bem baladado ainda mais por ser gratuito.</p>
<p>Espero que ano que vem ocorra o &#8220;II ALM conference Brasil&#8221;, mas por favor: eu topo pagar a entrada à ter que ouvir e ver um marketing tão &#8220;brutal&#8221; praticado por algumas empresas de software.</p>
]]></content:encoded>
			<wfw:commentRss>http://programe.me/alm-conference-brasil/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Você assinou seu código hoje ?</title>
		<link>http://programe.me/voce-assinou-seu-codigo-hoje/</link>
		<comments>http://programe.me/voce-assinou-seu-codigo-hoje/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 10:42:37 +0000</pubDate>
		<dc:creator>hlegius</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dia-a-dia]]></category>
		<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[entrevista]]></category>
		<category><![CDATA[opinião]]></category>

		<guid isPermaLink="false">http://www.hlegius.pro.br/?p=674</guid>
		<description><![CDATA[Quem utiliza-se ou já utilizou da annotation @author no cabeçalho de seus códigos levanta a mão ! o/ Desde que comecei a programar no ínicio do segundo semestre de 2004, eu utilizo desse tal de arroba-aútor. Já vi algumas variantes dela, por exemplo: Há ainda aqueles que detalham no cabeçalho sua pog contribuição: Sinceramente eu [...]]]></description>
			<content:encoded><![CDATA[<p>Quem utiliza-se ou já utilizou da <em>annotation</em> @author no cabeçalho de seus códigos levanta a mão ! o/</p>
<div id="attachment_675" class="wp-caption aligncenter" style="width: 448px"><a href="http://www.hlegius.pro.br/wp-content/uploads/2011/01/author.png"><img class="size-full wp-image-675" title="author" src="http://www.hlegius.pro.br/wp-content/uploads/2011/01/author.png" alt="Annotation @author" width="438" height="121" /></a><p class="wp-caption-text">Annotation @author</p></div>
<p>Desde que comecei a programar no ínicio do segundo semestre de 2004, eu utilizo desse tal de <em>arroba-aútor.</em> Já vi algumas variantes dela, por exemplo:</p>
<div id="attachment_676" class="wp-caption aligncenter" style="width: 443px"><a href="http://www.hlegius.pro.br/wp-content/uploads/2011/01/author-combo.png"><img class="size-full wp-image-676" title="Annotation @author pastel" src="http://www.hlegius.pro.br/wp-content/uploads/2011/01/author-combo.png" alt="Annotation @author pastel" width="433" height="173" /></a><p class="wp-caption-text">Annotation @author Augusta edition</p></div>
<p>Há ainda aqueles que detalham no cabeçalho sua <span style="text-decoration: line-through;">pog</span> contribuição:</p>
<div id="attachment_677" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.hlegius.pro.br/wp-content/uploads/2011/01/author-combo2.png"><img class="size-medium wp-image-677" title="Blablabla no annotation" src="http://www.hlegius.pro.br/wp-content/uploads/2011/01/author-combo2-300x77.png" alt="Blablabla no annotation" width="300" height="77" /></a><p class="wp-caption-text">Blablabla no annotation (clique para ampliar - ou não)</p></div>
<p>Sinceramente eu nunca fui pesquisar se há uma convenção na utilização deste annotation. O fato é que meu uso com isto é descomplicado:</p>
<ul>
<li>Insiro meu nome em novos arquivos;</li>
<li>Adiciono meu nome abaixo do último se eu fiz alguma adição ao arquivo, ou;</li>
<li>Não adiciono quando faço pequenas modificações sem acrescentar algo de valor ao então domínio/objetivo/proposta do arquivo.</li>
</ul>
<p>Mas mesmo assim, sempre coloco no formato <strong>Nome completo &lt;email@provedor&gt;</strong></p>
<p>Porém, não pela primeira vez vejo um developer defendendo o não uso deste annotation. A última vez foi numa discussão &#8211; no bom sentido &#8211; entre <a href="http://twitter.com/sergioprado" target="_blank">@sergioprado</a> e <a href="http://twitter.com/lfamorim" target="_blank">@lfamorim</a>. Com isto, fui perguntar a eles &#8211; e alguns outros mais &#8211; a opinião pessoal em relação ao tal annotation. Confira:</p>
<p><strong>Eduardo Guerra</strong> &#8211; <a href="http://twitter.com/emguerra" target="_blank">@emguerra</a></p>
<blockquote><p>﻿Obviamente se o uso de @author nas classes for uma prática da equipe irei segui-la sem problemas, mas se a escolha for minha opto por não colocar. Esse tipo de marcação no meu ponto de vista atrapalha a propriedade coletiva do código por determinar explicitamente os autores da classe. No caso de erros na classe, sempre haverão dedos apontando o autor como culpado, mesmo se não foi ele quem introduziu o problema.</p>
<p>Como toda documentação não-executável, pode deixar de ser atualizado com a evolução de um projeto e muitas vezes o autor original não é mais quem mais contribuiu para a classe no seu estado atual. Adicionalmente, sou a favor de manter o código o mais limpo possível e esse tipo de coisa acaba deixando o código de todas as classes mais verboso.</p></blockquote>
<p><strong>Cainan Costa -<a href="http://twitter.com/sryche" target="_blank"> @</a></strong>﻿<a href="http://twitter.com/sryche" target="_blank">﻿sryche</a><strong> </strong>via Jabber</p>
<blockquote><p>[20:03:08] cainan.costa: não faz sentido, porque o VCS já mostra =P<br />
[20:03:16] cainan.costa: quem é o maluco que fez a parada<br />
[20:03:25] cainan.costa: aí tu usa um git blame<br />
[20:03:33] cainan.costa: e já sabe quem encher de porrada</p></blockquote>
<p><a href="http://lfamorim.com" target="_blank"><strong>Lucas Fernando Amorim</strong></a> &#8211; <a href="http://twitter.com/lfamorim" target="_blank">@lfamorim</a></p>
<blockquote><p>Hoje em dia a tag @author é tão obsoleta quanto respeitar um limite de colunas para seu código, mas ainda assim acho elegante e talvez até relevante.</p>
<p>Fica muito mais fácil para aqueles programadores que não usam a IDE XPTO verem o criador de determinado arquivo, método ou função sem ter que recorrer a um programa. É repetitivo você pode alegar, mas eu posso retrucar que a tarefa pode ser automatizada.</p>
<p>Eu aprecio muita essa tag, pois a partir dela posso usando minha humilde IDE identificar o criador de determinados códigos, antecipando os vícios do autor e me adaptando para a leitura. Tudo isso sem abrir a shell e digitar N^C comandos.</p>
<p>N = Familiaridade com o programa X de controle de versão.<br />
C = Commits anteriores.</p></blockquote>
<p><strong><a href="http://www.chrisb.com.br/" target="_blank">Christian Benseler </a></strong>- <a href="http://twitter.com/chrisbenseler" target="_blank">@chrisbenseler﻿﻿﻿</a></p>
<blockquote><p>﻿﻿Tenho uma visão que o negócio é &#8220;mais embaixo&#8221;. Antes de tentar assinar um script como seu, o desenvolvedor tem que se preocupar com outros assuntos mais importantes: é um projeto pessoal ou colaborativo? Está prestando serviços a alguém, outra empresa? Qual a política do seu cliente? Qual a versão do script? E qual o tipo de licensa que será adotada?<br />
Só assinar o script não vai fazer a menor diferença se não tiver essas informações. E não vai fazer nenhuma diferença se a comunidade não parar de copiar o script feito por A, retirar os author notes do script e redistribuir o script sem dar esses créditos e/ou sem levar em conta o tipo de licensa adotado.</p></blockquote>
<p><strong><a href="http://chester.blog.br" target="_blank">Carlos Duarte do Nascimento</a></strong> &#8211; <a href="http://twitter.com/chesterbr" target="_blank">@chesterbr</a></p>
<blockquote><p>Antes de mais nada, você se refere a qual linguagem? Em Java, @author pode significar tanto uma anotação em si (e aí depende do contexto), tal como:</p>
<p>@author(&#8220;chester&#8221;)<br />
public foo(int bar) {<br />
&#8230;</p>
<p>quanto (o que eu imagino que você queira dizer) a anotação feita em um doclet, i.e.:</p>
<pre>/**
 * Um elemento coberto por JavaDoc.
 * @author chester
 */
public foo(int bar) {
...</pre>
<p>No segundo caso, eu gosto de @author devido à facilidade em lidar com a autoria coletiva: ela permite anotar classes inteiras ou métodos/atributos particulares; você pode colocar múltiplos autores, e<br />
o Eclipse pode ser facilmente configurado para adicioná-la automaticamente. No PHP, se me recordo, é possível usar algo<br />
equivalente (phpdoc) em cabeçalhos de código, mas não sei se é válido colocar em métodos/atributos, ou se é possível ter múltiplas declarações no mesmo escopo.</p>
<p>Em qualquer caso, vale notar que sistemas de controle de versão como svn e git são mais eficientes para descobrir quem efetivamente contribuiu com uma classe/método do que esse tipo de tag. Além disso, elas não são suficientes para notas de copyright (ou seja, teriam que ser replicadas apropriadamente para o correto licenciamento do código, independente da licença utlizada), o que limita de fato sua utilidade prática.</p></blockquote>
<p><a href="http://sergioprado.org" target="_blank"><strong>Sérgio Prado</strong></a> &#8211; <a href="http://twitter.com/sergioprado" target="_blank">@sergioprado</a></p>
<blockquote><p>﻿Há muito tempo atrás, as ferramentas disponíveis aos programadores eram escassas e limitadas.</p>
<p>&lt;oldschool&gt;Já programei em Assembly com um DOS rodando num x86 e monitor CGA de 80 colunas x 25 linhas &lt;/oldschool&gt;</p>
<p>Nesta época, ferramentas de controle de versão não eram tão comuns, nem monitores de 21 polegadas. Foi então que surgiram alguns paradigmas. Eram consideradas boas práticas de programação usar no máximo 80 colunas por linha de código (limitação causada pelos monitores da época), e incluir informações no cabeçalho do arquivo como @version, @author, @date, @changes etc.</p>
<p>O problema é que para muitas pessoas estes paradigmas perduram até hoje, por herança, por gosto (ou mazoquismo mesmo). Qualquer ferramenta decente de controle de versão pode te trazer, desde sua criação, todo o histórico de alteração de um arquivo. Além de ser mais seguro e confiável. Se eu usar no código-fonte &#8220;@author pica-pau&#8221;, grande parte das pessoas não irá perceber, porque ninguem lê o cabeçalho do arquivo. Também não existe garantia de que o nome documentado no código-fonte é realmente o do desenvolvedor. Já com uma ferramenta de controle de versão esta garantia existe.</p>
<p>Eu mesmo usava @author nos cabeçalhos uns tempos atrás, mas parei de usar depois que comecei a criticar alguns paradigmas que tinha. É tudo questão de delegar para ferramentas o que pode ser automatizado e buscar novas soluções para os mesmos problemas.</p></blockquote>
<p><strong><a href="http://fabiolnm.blogspot.com" target="_blank">Fábio Miranda</a></strong> &#8211; <a href="http://twitter.com/fabiolnm" target="_blank">@fabiolnm</a></p>
<blockquote><p>﻿Não uso por pura falta de hábito &#8211; nunca trabalhei em um projeto onde essa prática fosse adotada.<br />
Mas acho interessante, não só o autor, como o email / github tb.</p>
<p>Pode ocorrer de ser necessário dar manutenção em determinado código cuja compreensão não seja trivial, e a possibilidade de contactar o autor, mesmo que remota, deve ser considerada e viabilizada.<br />
Não vejo razão para ser contra.</p></blockquote>
<p>E pra finalizar, os comentários fundamentados de <a href="http://hannelita.wordpress.com" target="_blank">Hanneli Carolina Tavante</a> <a href="http://twitter.com/hannelita" target="_blank">@hannelita</a> &#8211; sobre o uso de @author e muito mais:</p>
<blockquote><p>Bom, vou dar minha opinião sobre comentários no código antes de qualquer coisa&#8230;. Também utilizarei algumas metáforas e exemplos reais.</p>
<p>Eu já trabalhei com códigos de sistemas legados &#8211; Mainframes e sistemas bem antigos &#8211; , envolvendo C e Assembly. Vou contar uma coisa &#8211; quando abríamos um código e víamos infinitas linhas de comentário, já sabíamos que vinha coisa ruim pela frente. Tudo bem para aquele tipo de código sempre achei necessário comentar &#8211; Há algumas subrotinas do inferno que precisam de explicação. E o cara que fez isso tem idade pra ser meu pai, já faleceu ou se aposentou. Portanto, códigos assim são &#8220;legíveis&#8221; graças aos comentários deixados para trás. Já peguei código em Assembly sem comentários. E fiquei quase 10 dias só pra entender por cima o que o programa fazia.</p>
<p>Mas atualmente estamos em uma época onde encontramos linguagens extremamente expressivas, como Ruby e Python. E pra ajudar ainda tem uns framewroks tipo Sinatra, incorporando DSLs. Ou seja, hoje é possível escrever códigos que HUMANOS são capazes de ler. (humanos comuns, quis dizer hehehe). Se você escreve códigos em Ruby que humanos não entendem, então sinto muito, meu amigo, vá ler o Clean Code ou aprender a programar de forma limpa. Aliás, práticas de TDD ou BDD, por exemplo, influenciam e praticamente geram um código limpo e legível dadas as etapas que sugerem na construção da aplicação. Por exemplo, o famoso &#8220;Vermelho, verde, refatorar&#8221; do TDD &#8211; O refatorar ocasiona um cógido extremamente mais compreensivo. Construído tal código sólido e bem estruturado, eu questiono &#8211; comentários para que? Eles perdem o sentido. Por exemplo, você se depara com a seguinte expressão em Ruby:</p>
<pre> unless valor == 0
  puts "Valor diferente de zero!"
 end</pre>
<p>Bem expressivo, certo? Pra que um comentário então? Uma das coisas que me irrita um pouco é encontrar códigos assim:</p>
<pre>public class Pessoa {
  private String nome; //define o nome da pessoa
  private int idade; // define idade da pessoa
}</pre>
<p>Ou pior, bem pior que isso:</p>
<pre>public class Pessoa {
  private String a; //define o nome da pessoa
}</pre>
<p>Ambos os casos eu considero inapropriados. O primeiro por gerer redundância &#8211; é ÓBVIO que o atributo &#8220;nome&#8221; faz menção ao nome da entidade pessoa! O segundo exemplo nos remete a alguém que não fez uso de bom senso de orientaćão a objetos para definir o nome do atributo. O comentário era necessário porque não houve refatoração e uso de um nom esclarecedor ao campo. De qualquer forma, isso é incorreto no meu ponto de vista.</p>
<p>Então quando usar comentários? Costumo usar comentários quando, por exemplo, utilizei algum recurso pouco conhecido da linguagem. Por exemplo, o uso de Fibers no Ruby &#8211; poucas pessoas sabem o que são Fibers; coloquei um comentário no meu código extremamente sucinto explicando o que era e onde achar mais informações. Ou se você utilizar alguma magia-negra no código, embebida por metaprogramação, por exemplo, acho que é bom deixar um comentário sucinto do que aquilo quis dizer. Esse tipo de comentário ajuda programadores juniors a adquirir experiência e ajuda até memso os seniors a captar a idéia geral de um método/bloco que possui lógica complexa.<br />
E há alguns casos que comentários podem ajudar a leitura do código fluir e ficar mais agradável. Pra Java, por exemplo, existe uma API &#8211; GAG =&gt; <a href="http://code.google.com/p/gag/" target="_blank">http://code.google.com/p/gag/</a> &#8211; Google Annotations Gallery, da qual já fui colaboradora. Essas anotações dão emoćão ao código; de vez em quando acho interessante utilziar algumas delas; tornam o coódigo mais expressivo. Novamente, acho que se deve usar sem abusos =)</p>
<p>Sobre o uso do <strong>@author</strong> &#8211; Aí já acho que é uma cosia meio pessoal. Eu não coloco. Saber que sou colaboradora/commiter do projeto já está bom pra mim. A ligaćão entre eu e o código fonte vai muito mais além que um @author. Claro, tem o lado bom de se colocar; todos que tiverem o fonte saberão o responsável por aquela ciração, e poderão parabenizá-lo, encontrá-lo no Twitter ou no Facebook e coisas do gênero. Ou poderão xingar sua mãe com vontade. Mas acredito que há outras formas de se descobrir e pedir ajuda sobre algum fonte que não são através do @author.</p>
<p>Bom, essa é minha visão geral da coisa! =D</p></blockquote>
<p>E aí, é contra ou a favor do @author ?</p>
<p><strong> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://programe.me/voce-assinou-seu-codigo-hoje/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Meu ambiente de trabalho em 7 itens</title>
		<link>http://programe.me/meu-ambiente-de-trabalho-em-7-itens/</link>
		<comments>http://programe.me/meu-ambiente-de-trabalho-em-7-itens/#comments</comments>
		<pubDate>Mon, 27 Dec 2010 09:54:14 +0000</pubDate>
		<dc:creator>hlegius</dc:creator>
				<category><![CDATA[Dia-a-dia]]></category>
		<category><![CDATA[ambiente]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Organização]]></category>

		<guid isPermaLink="false">http://www.hlegius.pro.br/?p=661</guid>
		<description><![CDATA[Neste meme iniciado por @duodraco, fui pelo @brgomes indicado a postar sobre os 7 itens mais relevantes em meu ambiente de trabalho. Dentre os vários itens que utilizo / dependo, destaco aqui os de maior importância: 1. Sistema Operacional: Linux. Utilizo tal plataforma pela simplicidade no gerenciamento e performance. Dentre as distribuições, opto sempre por [...]]]></description>
			<content:encoded><![CDATA[<p>Neste meme iniciado por <a href="http://twitter.com/duodraco" target="_blank">@duodraco</a>, fui pelo <a href="http://twitter.com/brgomes" target="_blank">@brgomes</a> indicado a postar sobre os 7 itens mais relevantes em meu ambiente de trabalho. Dentre os vários itens que utilizo / dependo, destaco aqui os de maior importância:</p>
<p><strong>1. Sistema Operacional:</strong> Linux. Utilizo tal plataforma pela simplicidade no gerenciamento e performance. Dentre as distribuições, opto sempre por Arch, Slackware ou Gentoo, nesta ordem.</p>
<p><strong>2. Controle de versão:</strong> Git. Já tem uns meses que uso em novos projetos, recentemente porém, adotei também nos projetos SVN <a href="http://vexcorp.com" target="_blank">lá na empresa</a> com o git-svn enquanto a migração pra Git por lá não acontece.</p>
<p><strong>3. IDE: </strong>Há quem fale que uma IDE não agrega em nada, pois eu vejo o contrário. Ter praticidade ao programar é muito bom. Eu costumo utilizar muitos atalhos de teclado para evitar utilizar o mouse ao codificar, elevando o desempenho. Já utilizei várias IDEs para um <em>trial </em>até que há mais de um ano venho utilizando Zend Studio (Eclipse based) para PHP e Eclipse JEE/Ruby para Java e Ruby. Assim os atalhos de uma funcionam na outra <img src='http://programe.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.flickr.com/photos/hlegius/4732094176/"><img title="Home Office v1" src="http://farm2.static.flickr.com/1437/4732094176_28b2f2486e.jpg" alt="Home Office v1" width="500" height="375" /></a><p class="wp-caption-text">Home Office v1</p></div>
<p style="text-align: center;">
<p><strong>4. Ambiente:</strong> o ambiente em volta é deveras importante para mim ! Recinto calmo, com iluminação adequada e recursos a mão fazem toda diferença ao trabalhar. Até a cor do ambiente influência. Neste caso, porque não <a href="http://www.google.com.br/search?hl=pt-BR&amp;client=opera&amp;hs=wTp&amp;rls=pt-BR&amp;channel=suggest&amp;&amp;sa=X&amp;ei=7FsYTf-TBIyr8AbI5M33DQ&amp;ved=0CCwQBSgA&amp;q=Feng+shui&amp;spell=1" target="_blank">seguir as dicas</a>, não é ?</p>
<p><strong>5. Remoto:</strong> servidores e apps remotas auxiliam o compartilhamento, armazenamento e controle dos softwares/programas/<span style="text-decoration: line-through;">malwares</span> desenvolvidos. Utilizo um server shared na Dreamhost com dois domínios apontando nele e estou cogitando a ideia de utilizar uma VPS. Lá ficam salvos além das versões comitadas dos softwares, um ambiente de deploy e meu servidor Git remoto para onde comito meus projetos particulares. No Github ficam somente os open <img src='http://programe.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>6.  Controle de atividades:</strong> Utilizava até um tempinho atrás o renomado <a href="http://basecamphq.com" target="_blank">Basecamp</a>. Porém, na Rubyconf deste ano, fui apresentado ao seu concorrente mais em conta, <a href="http://goplanapp.com" target="_blank">Go Plan</a>. Fiz um teste e gostei da ferramenta. Atualmente estou migrando os dados do Basecamp para lá. Issue tracker <span style="text-decoration: line-through;">eu não uso, afinal, não produzo bugs <img src='http://programe.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </span> eu também coloco no Basecamp/Go Plan.</p>
<p><strong>7.  Monitores:</strong> sou viciado em monitor. Comecei comprando um de 19&#8242; que virou um de 22&#8242; e depois um de 24&#8242;. Espaço na área de trabalho virtual agrega muito quando trabalha-se com desenvolvimento. Não é ter visão de uma linha com trocentas colunas, mas sim, utilizar as abas da IDE com suas funções &#8211; unit test, shell, filesystem, outline, type&#8230; &#8211; o que ocupa um bom espaço na tela.</p>
<p>Para continuar, convido:</p>
<p>@tmadeira<br />
@lfamorim<br />
@gchapiewski<br />
@loiane<br />
@chesterbr</p>
]]></content:encoded>
			<wfw:commentRss>http://programe.me/meu-ambiente-de-trabalho-em-7-itens/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Programador apaixonado</title>
		<link>http://programe.me/programador-apaixonado/</link>
		<comments>http://programe.me/programador-apaixonado/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 22:10:24 +0000</pubDate>
		<dc:creator>hlegius</dc:creator>
				<category><![CDATA[Carreira]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dia-a-dia]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.hlegius.pro.br/?p=599</guid>
		<description><![CDATA[Ser programador é uma coisa engraçada ! Tenho visto recentemente várias movimentações por parte de programadores, buscando juntar-se para: programar ! É possível reparar que a quantidade de grupinhos que buscam aprender coisas novas &#8211; sejam elas linguagens da hype &#8211; metodologias ou ainda algum projeto pessoal integrando algumas linguagens, dados públicos e uma interface [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Ser Programador" href="http://hlegius.pro.br/ser-programador" target="_blank">Ser programador</a> é uma coisa engraçada ! Tenho visto recentemente várias movimentações por parte de programadores, buscando juntar-se para: <strong>programar</strong> !<br />
É possível reparar que a quantidade de grupinhos que buscam aprender coisas novas &#8211; sejam elas linguagens da <em>hype</em> &#8211; metodologias ou ainda algum projeto pessoal integrando algumas linguagens, dados públicos e uma interface dita Web 2.0.</p>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.flickr.com/photos/danicuki/4671867058/in/set-72157624208353028/"><img title="Random Hack of Kindness São Paulo 2010 por danicuki" src="http://farm2.static.flickr.com/1275/4671867058_104bf2b4eb.jpg" alt="" width="500" height="333" /></a><p class="wp-caption-text">Random Hack of Kindness São Paulo 2010 por danicuki</p></div>
<p>Eventos como Yahoo! Open Hack day; Google Developer Day; o recente Random Hack of Kindness; <a href="http://www.codingdojo.org" target="_blank">Coding Dojo</a> (o de Sampa no IME da USP está meio inativo ao que consta); e vários outros movimentos iniciados até por empresas, como a própria <a href="http://www.caelum.com.br" target="_blank">Caelum</a> que já abriu as portas para criar um ambiente onde programdores pudessem se juntar e desenvolver suas coisas, ou mesmo que fechado ao grupo de programadores da mesma como já ouvi relatos de programadores.</p>
<p>O que leva esse bando de programador <em>malhucos</em> das cavernas a participarem com empolgação destes eventos &#8211; muitas das vezes apenas com <em>free lunch</em> e Internet 0800 ? São desocupados ? Loucos ?</p>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.flickr.com/photos/acarlos1000/4448541107/"><img title="Yahoo! Open Hack Day Brazil 2010" src="http://farm5.static.flickr.com/4020/4448541107_bf35ab2bea.jpg" alt="Yahoo! Open Hack Day Brazil 2010" width="500" height="281" /></a><p class="wp-caption-text">Yahoo! Open Hack Day Brazil 2010 por Antônio Carlos</p></div>
<p>Simples: adoram o que fazem ! São essas pessoas que geralmente criam tendências, aplicam ideias e tomam iniciativas nas corporações em que trabalham; São os mesmos developers que passam horas a fio programando com vários livros de nomes <em>nonsense</em> à tira-colo; ou que criam projetos pessoais para suprir uma necessidade própria e acabam chamando a atenção de muita gente &#8211; vide tantas <em>startups</em> bem sucessidas criadas e mantidas por programadores.</p>
<p>Geralmente esses mesmos programadores conhecem pelo menos duas linguagens. O motivo ? Curiosidade ! Pouco importa se Ruby on Rails fará sucesso no mercado coorporativo ou se Python não agrada o chefe. É legal para eles, então, investem tempo nisto.</p>
<p>Sempre em busca de novos conhecimentos, fanáticos pela arte em programar e fazer coisas novas; de novas formas e com novas ferramentas. Criam coisas, compartilham o feito e ainda passam a diante o novo conhecimento com artigos, blogs ou seminários. São programadores sempre motivados que buscam fazer uma análise crítica sobre suas próprias formas de programação buscando a evolução das ideias.</p>
<p>Vida social ? Muito bem, obrigado ! Nestas idas e vindas acabam conhecendo pessoas, lugares e oportunidades diferentes. Trocam ideias, conversam, trocam contactos das redes sociais; <acronym title="PHPinga, oi ?">juntam-se em botecos</acronym> ou equivalentes tornando o simples ato de programar em grupo em praticamente uma festa completa ! <img src='http://programe.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://programe.me/programador-apaixonado/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Um ano depois&#8230;</title>
		<link>http://programe.me/um-ano-depois/</link>
		<comments>http://programe.me/um-ano-depois/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 20:31:15 +0000</pubDate>
		<dc:creator>hlegius</dc:creator>
				<category><![CDATA[Dia-a-dia]]></category>
		<category><![CDATA[hlegius]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.hlegius.pro.br/?p=544</guid>
		<description><![CDATA[Há pouco mais de um ano, comecei a desenvolver pela Vex, minha primeira experiência non-freela, criando aplicações internas web-based em PHP, claro. A &#8220;ideia&#8221; de trabalhar fora veio repentinamente, basicamente com um pseudoconvite de meu amigo de longa data @Otata, que já estava trabalhando por lá e disse-me não por uma, nem duas, mas algumas [...]]]></description>
			<content:encoded><![CDATA[<p>Há pouco mais de um ano, comecei a desenvolver pela <a href="http://www.vexcorp.com">Vex</a>, minha primeira experiência non-freela, criando aplicações internas web-based em PHP, claro. <img src='http://programe.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.flickr.com/photos/hlegius/3575945402/in/photostream/"><img title="Vex - Maio 2009" src="http://farm3.static.flickr.com/2455/3575945402_708ae7b821.jpg" alt="" width="500" height="375" /></a><p class="wp-caption-text">Vex - Setores TI e Operações - Maio 2009</p></div>
<p style="text-align: left;">A &#8220;ideia&#8221; de trabalhar fora veio repentinamente, basicamente com um pseudoconvite de meu amigo de longa data <a href="http://twitter.com/otata" target="_blank">@Otata</a>, que já estava trabalhando por lá e disse-me não por uma, nem duas, mas algumas vezes, de que a Vex estava contratando mais developers para fechar o time e que era para eu enviar meu &#8220;currículo&#8221;.</p>
<p style="text-align: left;">Após enviar meu currículo para o pessoal, houve os tramites default de conversa por telefone, entrevista pessoal, a renomada provinha tira-teima e no final do dia após enviar meu currículo estava ingressando no time.</p>
<p style="text-align: left;">Algo que achei peculiar foi a rápida contratação &#8211; comigo pelo menos. Tudo bem que houve ele, o QI, mas fiquei surpreso com a confiança que recebi dos coordenadores, afinal eu era até aquele momento um freela de cabelo comprido e que morava há alguns quilômetros de distância da empresa.</p>
<p style="text-align: left;">
<p style="text-align: left;"><strong>Ambiente</strong></p>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.flickr.com/photos/hlegius/3535317787/"><img title="Vex - Galere Web - Maio 2009" src="http://farm4.static.flickr.com/3352/3535317787_a58de59980.jpg" alt="" width="500" height="375" /></a><p class="wp-caption-text">Vex - Galere Web - Maio 2009</p></div>
<p style="text-align: left;">Obviamente, totalmente diferente do até então <em>escritório-casa</em> que eu trabalhava enquanto freelancer. A adaptação não foi um problema, pois na Vex eu também utilizo notebook para desenvolver plugado à um monitor externo quase nos mesmos moldes que tenho em meu home office.</p>
<p style="text-align: left;">Por não recebermos visitas de clientes no prédio, podemos ir com roupas menos formais. Isso não quer dizer que eu possa ir de bermudas ou chinelos igual já tentaram fazer por lá <img src='http://programe.me/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p style="text-align: left;">No andar do desenvolvimento, há também o pessoal de sistemas embarcados e redes. O relacionamento com todos sempre foi bem tranquilo, mesmo quando saía uns flamewars do tipo: Python vs PHP; Zimbra não é <acronym title="Sim, sou Yahoo! fanboy">Yahoo!</acronym>; e todo mundo contra o <a href="http://twitter.com/otata" target="_blank">@Otata</a>.</p>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.flickr.com/photos/hlegius/3655840182/"><img src="http://farm4.static.flickr.com/3396/3655840182_986d765840.jpg" alt="" width="500" height="375" /></a><p class="wp-caption-text">Vex - Junho 2009</p></div>
<p style="text-align: left;">Durante esse período uma coisa ficou clara: a empresa movimenta-se bastante. Houve pessoas entrando; pessoas mudando de área, pessoas deixando a Vex e até, pessoas que saíram e estão retornando novamente. As saídas, do ponto de vista pessoal, são ruins, pois todos no andar tem um contato diário, uma amizade e que depois de sua saída o contato praticamente se extingue.</p>
<p style="text-align: left;">
<p><strong>Os PHP&#8217;ers</strong></p>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.flickr.com/photos/hlegius/4328427633/"><img src="http://farm5.static.flickr.com/4057/4328427633_8172122753.jpg" alt="" width="500" height="375" /></a><p class="wp-caption-text">Vex - Galere Webdev (@bufoni)</p></div>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.flickr.com/photos/hlegius/4497018828/"><img src="http://farm5.static.flickr.com/4036/4497018828_06f4333761.jpg" alt="" width="500" height="375" /></a><p class="wp-caption-text">Vex - Galere Web (@Sugamele)</p></div>
<p>Se os developers geralmente não batem muito bem das ideias, essa turma bate menos ainda ! (haha, vão me matar com esse comentário). O pessoal na Vex é bem tranquilo e são bem espontâneos. O que surpreende nessa turma são as diferenças: cada um possui seu temperamento, opiniões &#8211; muitas das vezes bem diferentes &#8211; e suas especialidades. Mesmo com tantas diferenças, nós, que trabalhamos geralmente aos pares ou trios e raramente individualmente, temos um envolvimento excelente nos projetos.</p>
<p>Ao que estive olhando nos logs do controle de versão, passaram aproximadamente 12 pessoas (achismo mode on) pelo time Web durante um período de 4 anos.</p>
<p>Inclusive, o <a href="http://twitter.com/esampaio" target="_blank">@esampaio</a>, aqui conhecido como meu chefe, publicou um vídeo com o histórico do SVN de um de nossos projetos internos.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="275" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=9383180&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="500" height="275" src="http://vimeo.com/moogaloop.swf?clip_id=9383180&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object><a href="http://vimeo.com/9383180"></a></p>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.flickr.com/photos/hlegius/3877838088/"><img title="Vex - Webdev" src="http://farm3.static.flickr.com/2529/3877838088_e2c2dd9b4e.jpg" alt="" width="500" height="375" /></a><p class="wp-caption-text">Vex - Webdev. @Sugamele e eu - Agosto, 2009</p></div>
<p>Pela quantidade de pessoas que ao longo desse período trabalharam em cima desse projeto em específico é um pouco previsível o que pode-se encontrar nele. Há coisas realmente muito boas &#8211; tanto código quanto solução para um problema &#8211; a própria engine de i18n é uma delas, porém, há também coisas desenvolvidas no estilo <a title="WOP" href="http://desciclo.pedia.ws/wiki/POG#Modelagem_Orientada_a_Gambiarras" target="_blank">WOP</a>. (Workaround-oriented programming).</p>
<p>O que me chamou a atenção nessa área é a real vontade do pessoal em evoluir e melhorar os pontos que hoje não estão bons. <strong><em>Quality of Code</em></strong> está literalmente em alta e o princípio <strong><em>&#8220;Don&#8217;t live with broken windows&#8221;</em></strong> (para mais leia o livro: <a href="http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1271881011&amp;sr=8-1" target="_blank">The Pragmatic Programmer</a>) tem feito sucesso. <img src='http://programe.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Quando é necessário atualizar alguma coisa ou sempre que possível &#8211; mesmo não estando na lista de prioridades, os códigos obscuros do passado são atualizados, melhorando não só a leitura e documentação (leia-se PHPdoc), mas também o relacionamento daquele módulo com todo o resto. Anima muito ver uma equipe &#8211; o que inclui os coordenadores da área &#8211; interessados em adotar metodologias e princípios que visam melhorar o código e entendem que isto no final, traz benefícios não só para os developers, mas também para os usuários da ferramenta.</p>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.flickr.com/photos/hlegius/3576906072/"><img src="http://farm4.static.flickr.com/3331/3576906072_c0577e878a.jpg" alt="" width="500" height="375" /></a><p class="wp-caption-text">Vex - (@lfamorim e @sergioprado ao fundo) @Otata e @acidcode - Maio, 2009</p></div>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.flickr.com/photos/hlegius/4328427647/"><img title="Vex" src="http://farm5.static.flickr.com/4019/4328427647_dea0894017.jpg" alt="" width="500" height="375" /></a><p class="wp-caption-text">Vex - @bufoni @esampaio e @sergioprado - Fevereiro, 2010</p></div>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.flickr.com/photos/hlegius/3966572478/"><img src="http://farm3.static.flickr.com/2484/3966572478_8d8b0de070.jpg" alt="" width="500" height="375" /></a><p class="wp-caption-text">Vex Webdev - @bufoni e @Sugamele - Setembro, 2009</p></div>
<p><strong>Trabalho em grupo</strong></p>
<p>Por ter o costume de trabalhar sozinho na época dos freelas &#8211; claro, havia o designer <a href="http://twitter.com/jorgeveteran" target="_blank">@jorgeveteran</a> &#8211; eu, achei no começo que seria algo complicado. E sim, é complicado ! Não guardar as ideias ou soluções contigo é uma das coisas mais complicadas. Deixar o pessoal que está contigo no projeto atualizado das ações, estabelecer uma linha e manter as coisas alinhadas durante todo o projeto é algo que eu precisei reeducar quando comecei na Vex. Mas até hoje não houve nenhum tipo de problema com o pessoal que já trabalhei em conjunto. <img src='http://programe.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Um dos maiores problemas foi encontrar paciência para explicar as coisas técnicas para o pessoal. Não sou o melhor exemplo de paciência quando a tarefa é explicar coisas &#8211; que eu julgo claras e simples de entender &#8211; aos outros. Consigo explicar tudo numa boa, porém, dúvidas e erros que eu julgo primários me deixa meio: &#8220;Não acredito que você fez/perguntou isso !?&#8221;.</p>
<p>Outra particularidade é que dependendo da pergunta &#8211; na realidade, quase todas &#8211; eu não forneço a resposta pronta. Forneço links, materiais e até títulos de livros para que a pessoa leia, estude e tire suas próprias conclusões a respeito. Antes eu debater com ela aquele assunto à eu &#8220;formar robozinhos&#8221; que repetem tudo que eu julgo ser verdade até aquele momento. Se eles não entendiam o motivo pelo qual faço isso, agora eles ficaram sabendo ! <img src='http://programe.me/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.flickr.com/photos/hlegius/4343683541/"><img title="Vex Webdev" src="http://farm5.static.flickr.com/4066/4343683541_e496d9cdc8.jpg" alt="" width="500" height="375" /></a><p class="wp-caption-text">Vex Webdev - Playground - Fevereiro, 2010</p></div>
<p>Esse período que é um pouco mais de um ano realmente está valendo muito. Ao que percebo de comentários &#8211; críticas, na realidade &#8211; dos developers nas empresas em que trabalham, é possível ter uma clara noção de que a Vex é uma exceção. Uma equipe jovem, de jovens líderes e com ideias muito boas. O setor de tecnologia está de parabéns !</p>
<p>Retratos que coleciono desde quando iniciei na Vex podem serem <a title="Vex Pics." href="http://www.flickr.com/search/?w=59288595%40N00&amp;q=vex+OR+vexcorp&amp;m=tags" target="_blank">vistos aqui, ó !</a></p>
]]></content:encoded>
			<wfw:commentRss>http://programe.me/um-ano-depois/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Freelancer vs agência: Revista TI Digital</title>
		<link>http://programe.me/freelancer-vs-agencia-revista-ti-digital/</link>
		<comments>http://programe.me/freelancer-vs-agencia-revista-ti-digital/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 14:17:13 +0000</pubDate>
		<dc:creator>hlegius</dc:creator>
				<category><![CDATA[Carreira]]></category>
		<category><![CDATA[Dia-a-dia]]></category>
		<category><![CDATA[hlegius]]></category>
		<category><![CDATA[Rápidas]]></category>
		<category><![CDATA[vida de freela]]></category>

		<guid isPermaLink="false">http://www.hlegius.pro.br/?p=328</guid>
		<description><![CDATA[Salve ! A primeira edição da Revista TI Digital saiu no começo de março, porém, aqui na Terra da Maçã, chegou às bancas apenas na semana passada. As matérias da revista estão focadas no desenvolvimento de software no geral, seja PHP, Java e qualquer outra ferramenta livre ou proprietária. Uma das matérias da edição foi [...]]]></description>
			<content:encoded><![CDATA[<p>Salve !</p>
<p>A primeira edição da <a href="http://www.revistatidigital.com.br" target="_blank">Revista TI Digital</a> saiu no começo de março, porém, aqui na Terra da Maçã, chegou às bancas apenas na semana passada.<br />
As matérias da revista estão focadas no desenvolvimento de software no geral, seja PHP, Java e qualquer outra ferramenta livre ou proprietária.</p>
<p>Uma das matérias da edição foi os prós e contras de ser freelancer ou um contratado normal. A matéria ao meu ver ficou balanceada, havendo quem defendesse totalmente o salário &#8220;fixo&#8221;; outro que defende o salário fixo, porém, sempre pega uns freelas e outro que vive apenas como freela <img src='http://programe.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: center;"><a href="http://www.hlegius.pro.br/wp-content/uploads/2009/03/materia_helio.jpg" target="_blank"><img class="aligncenter size-medium wp-image-329" title="Matéria Freela vs Agência: Revista TI Digital" src="http://www.hlegius.pro.br/wp-content/uploads/2009/03/materia_helio-300x170.jpg" alt="materia_helio" width="300" height="170" /></a></p>
<p>Apresentando o lado 100% freelancer da matéria eu procurei  expor minha experiência nessa área, abordando a liberdade que há em trabalhar desta forma; aspectos como liberdade em escolher ferramentas e métodos de trabalho e também o lado gerencial da coisa.</p>
<p>Li o ponto de vista dos demais entrevistados, concordo com certos pontos apontados por eles, mas não acredito em &#8220;estabilidade financeira&#8221;. Um freelancer pode ficar sem projetos assim como um funcionário regular pode ficar sem emprego. Tudo depende do momento, do seu trabalho e claro, de seus contatos <img src='http://programe.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Não repudio quem trabalha assim, cada qual joga seu jogo, quem sabe até, eu experimente trabalhar em agência para ver como é !</p>
<p>Por fim, quem leu a revista e tenha algo a considerar sobre esta matéria, por favor, fique à vontade para perguntar, criticar ou elogiar <img src='http://programe.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://programe.me/freelancer-vs-agencia-revista-ti-digital/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Gerenciando seus projetos e seu tempo</title>
		<link>http://programe.me/gerenciando-seus-projetos-e-seu-tempo/</link>
		<comments>http://programe.me/gerenciando-seus-projetos-e-seu-tempo/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 19:19:37 +0000</pubDate>
		<dc:creator>hlegius</dc:creator>
				<category><![CDATA[Carreira]]></category>
		<category><![CDATA[Dia-a-dia]]></category>
		<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[Organização]]></category>
		<category><![CDATA[gtd]]></category>
		<category><![CDATA[projetos]]></category>
		<category><![CDATA[tempo]]></category>

		<guid isPermaLink="false">http://www.hlegius.pro.br/gerenciando-seus-projetos-e-seu-tempo/</guid>
		<description><![CDATA[Meu modelo de organização de tarefas. Ser freelancer não é uma tarefa fácil, quem é freelance sabe muito bem como que é o dia-a-dia. A grande diferença é que além de exercer a profissão de forma autônoma, você precisa gerenciar seu negócio, relação com clientes e seu tempo. A idéia é ir adequando suas tarefas [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/hlegius/2929974444/"><img src="http://farm4.static.flickr.com/3274/2929974444_ff2907ccb7_m.jpg" alt="Scrum hlegius.pro.br" /></a><br />
Meu modelo de organização de tarefas.</p>
<p>Ser freelancer não é uma tarefa fácil, quem é freelance sabe muito bem como que é o dia-a-dia. A grande diferença é que além de exercer a profissão de forma autônoma, você precisa gerenciar seu negócio, relação com clientes e seu tempo.</p>
<p>A idéia é ir adequando suas tarefas na ordem que melhor combinar no seu dia-a-dia, mas como isso leva um tempo e essas adequações só vêm com o passar do tempo (e experiência) vou listar algumas idéias aqui que podem lhe serem úteis.</p>
<p><strong>1. Separando seus horários.</strong></p>
<p>Obviamente, você como freelance, tem toda a autonomia do mundo para controlar seus horários, logo, é fundamental separá-los para dedicar-se às tarefas com mais empenho. Aqui funciona assim:<br />
Pela manhã, eu leio o meu Scrum e minha agenda (de papel) vendo e separando os compromissos das tarefas. É fundamental ter em mente que Compromisso é diferente de tarefa.</p>
<blockquote><p>Um <em>compromisso </em> é algo que tem dia e hora para começar e para acabar. Podemos assumir como exemplo a visita a um cliente ou levar seu cachorro para passear, por exemplo <img src='http://programe.me/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p></blockquote>
<blockquote><p>Uma <em>tarefa </em> é algo que tem um dia para começar e acabar, mas não estritamente tem uma hora para começar e finalizar. Como por exemplo, postar no seu blog ou aprontar aquele orçamento bacana do seu futuro cliente (amém).</p></blockquote>
<p>Depois de ver que não tenho compromisso algum naquele dia, vejo as tarefas que tenho que cumprir para manter-me em dia e dou o start. Sempre atento ao <a href="http://pt.wikipedia.org/wiki/Scrum">Scrum </a> e a agenda sigo durante o dia, atualizando eles quando finalizo algo.</p>
<p>No fim da tarde, com as tarefas em dia, eu planejo o próximo dia, definindo prioridades e atualizo Scrum e a agenda.<br />
Na parte de noite, como não tenho mais a faculdade, eu dou um <em>tapa</em> no escritório, estudo alguma coisa ou simplesmente não faço nada.</p>
<p><strong>Resumo</strong>: vejo minhas tarefas, desenvolvo-as, atualizo scrum e agenda, preparo as novidades, estudo ou descanso.</p>
<p><strong>2. Fazendo as coisas funcionarem</strong></p>
<p>Obviamente no papel (ou na tela) é tudo mágico e simples, porém, eu sei muito bem que no dia-a-dia a <em>porca torce o rabo</em>.</p>
<p>Você até consegue organizar suas prioridades antes das 8hs. Mas depois, é cliente ligando, problemas aparecendo, uma verdadeira loucura !</p>
<p>Para contornar isto, é simples: organize-se ! Sim, é simples. Antes das 8hs esteja de pé e acordado em seu local de trabalho. Até as 8:30hs tenha sua lista de pendências diária pronta e seu &#8220;roteiro&#8221; definido.</p>
<p>Se já tomou seu café, dê o start nas tarefas, agora caso seje igual a mim, então, tome um café da manhã esperto e comece a fazer as coisas funcionarem.</p>
<p>Se nesse intervalo algum cliente ligar querendo uma visita sua, tente negociar para o dia seguinte (consulte sua agenda antes !) marcando um horário certo e tão rápido quanto desligar o telefone, já anote este evento em sua agenda. É batata ! Não tem erros !</p>
<p>Após finalizar suas tarefas do dia, se ainda houver tempo, planeje seu próximo dia, e tente andar com seus projetos pessoais, afinal ficar na mesmisse sempre pode custar caro no futuro <img src='http://programe.me/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>3. Analisando as evoluções</strong></p>
<p>O <a href="http://pt.wikipedia.org/wiki/Scrum">Scrum </a> (sim, falo muito dele pois, é bem eficiente !) permite que você controle suas tarefas semanalmente, ou seja, se você tropeçar em alguma coisa durante a semana, você perceberá que isto lhe atrasou &#8211; ou não &#8211; e se aplicável planeje novamente sua agenda para colocar as coisas em dia.</p>
<p><strong>4. Vendo resultados</strong></p>
<p>A adoção de um &#8220;padrão de organização&#8221; é meio sofrida às vezes, mas é bem recompensador depois que você consegue usá-la no dia-a-dia. Após uma semana você verá que não irá passar o dia arrancando os cabelos com deadlines chegando, compromissos esquecidos e &#8220;sobrecarga&#8221; de horários na sua agenda, pois você não irá agendar nada além do que você tem de disponível na semana.</p>
<p>Tudo que citei aqui pode parecer super óbvio, porém, não é o que nós costumamos aplicar no nosso dia-a-dia. Contamos muito com nossa memória, que às vezes pode funcionar muito bem, mas infelizmente ela não implementa uma agenda.</p>
<p>O modelo que mostrei no começo do post, foi baseado no modelo que o <a href="http://www.lecowd.com.br">Alexandre</a> implementa &#8211; ou implementava na época &#8211; e foi ele quem me apresentou isto. Gostei, apliquei e depois nunca mais larguei. Recomendadíssimo !</p>
]]></content:encoded>
			<wfw:commentRss>http://programe.me/gerenciando-seus-projetos-e-seu-tempo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

