<?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>:: LeoLuz ::</title>
	<atom:link href="http://leo.classluz.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://leo.classluz.net</link>
	<description>já começou..</description>
	<lastBuildDate>Sun, 06 Jun 2010 21:35:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Invertendo o controle</title>
		<link>http://leo.classluz.net/2010/06/06/invertendo-o-controle/</link>
		<comments>http://leo.classluz.net/2010/06/06/invertendo-o-controle/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 18:54:02 +0000</pubDate>
		<dc:creator>LeoLuz</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[Gestão]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://leo.classluz.net/?p=510</guid>
		<description><![CDATA[Intro Ultimamente tenho trabalhado bastante para contratar novos desenvolvedores Java para a empresa onde trabalho. Estou experimentando algumas técnicas para ver como consigo ser mais acertivo filtrando os melhores candidatos. Nesse post gostaria de citar uma delas que tenho achado bem relevante: A decisão em grupo. A técnica Basicamente consiste em promover uma entrevista coletiva [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">
<h3>Intro</h3>
<p>Ultimamente tenho trabalhado bastante para contratar novos desenvolvedores Java para a empresa onde trabalho. Estou experimentando algumas técnicas para ver como consigo ser mais acertivo filtrando os melhores candidatos. Nesse post gostaria de citar uma delas que tenho achado bem relevante: <strong>A decisão em grupo.</strong></p>
<h3>A técnica</h3>
<p>Basicamente consiste em promover uma entrevista coletiva entre os integrantes do time e o candidato dando a eles o poder da decisão final. Essa técnica tem uma inspiração no <a title="Ricardo Semler" target="_blank" href="http://pt.wikipedia.org/wiki/Ricardo_Semler">Ricardo Semler</a> que é reconhecido <a title="MIT" target="_blank" href="http://mitworld.mit.edu/video/308/">internacionalmente</a> por implementar a democracia industrial na <a title="Semco" target="_blank" href="http://www.semco.com.br/pt/">Semco</a> no final da década de 80 e até hoje é <a title="Mary Poppendieck" target="_blank" href="http://twitter.com/codezone/status/15247424644">citado</a> em <a title="XP2010" target="_blank" href="http://xp2010.org/">eventos</a> ao redor do mundo.</p>
<p>Se pararmos para pensar um pouco, e analisarmos cada ação que realizamos no nosso dia a dia, com certeza vamos ser capaz de identificar vários pontos de melhorias. Para ilustrar vou usar o exemplo da contratação de um novo integrante para um time de programadores. Vamos lembrar de como isso geralmente acontece:</p>
<ol>
<li>O RH da sua empresa acessa um banco de currículos;</li>
<li>O responsável pela contratação de pessoal filtra os currículos pela sopa de letrinhas (JSF, EJB, Rails, Python, etc..) que eles não fazem a mínima idéia do que significa.</li>
<li>Somente após terem levantado pelo menos uns 5 currículos eles convocam todo mundo para uma dinâmica de grupo.</li>
<li>Todos executam os mesmos testes psicotécnicos e os que passarem são enviados ao departamento responsável pela contratação.</li>
<li>O gerente da área chama cada candidato aprovado pelo RH e dá o veredito final contratando o que apresentou uma melhor desenvoltura na entrevista.</li>
</ol>
<p>Você já viu algo parecido com isso acontecendo em alguma empresa por ai? Você vê algo de errado com essas etapas do processo? Vamos lá..</p>
<p>O primeiro ponto é a questão curricular. O currículo nada mais é do que um papel, e papel aceita tudo. Se eu quiser colocar no meu currículo que sou especialista na tecnologia X sem nunca ao menos ter trabalhado com ela eu coloco. Nada vai me impedir disso. Alguns vão dizer: mas vai do caráter de cada um! Ok.. Mas ai eu pergunto: Você acredita no caráter de uma pessoa sem nunca tê-la visto na vida? (ah! O papai-noel te mandou lembranças). O fato é que podemos conviver anos com uma pessoa e nunca conhecê-la de verdade. O dirá um currículo então?</p>
<p>Não sou cético o bastante para não acreditar em dinâmicas de grupo, ou testes psicotécnicos. Muito pelo contrário, acredito que todos esses testes funcionem muito bem. Mas a questão não é se o teste funciona ou não. O fato é que Albert Einstein e Charles Darwin <a title="Disléxicos famosos" target="_blank" href="http://pt.wikipedia.org/wiki/Dislexia#Disl.C3.A9xicos_famosos">eram disléxicos</a> e provavelmente seriam reprovados em testes como esses. Você quer ter pessoas inteligentes trabalhando no seu time certo? Então por que deixá-las de lado?</p>
<p>Por fim o gerente que provavelmente não seja uma pessoa muito técnica vai conversar com o candidato para dar o veredito final. Já vi alguns farsantes com boa lábia se darem muito bem em entrevistas e depois virarem uma verdadeira pedra no sapato do time.</p>
<h3>Conclusão</h3>
<p>Não estou dizendo que o modelo tradicional seja 100% falível. Eu mesmo já contratei profissionais muito bons usando procedimentos parecidos. A questão é que ele apresenta muitos pontos de falhas e o que estou tentando fazer é ao menos minimizá-los encarando o problema e tentando achar uma uma solução que não seja “enlatada” fugindo um pouco do senso comum.</p>
<p><a href="http://leo.classluz.net/wp-content/uploads/2010/06/Lion.jpg" target="_blank"><br />
<img class="aligncenter size-full wp-image-387" style="border: 1px dotted white; padding: 3px;" src="http://leo.classluz.net/wp-content/uploads/2010/06/Lion.jpg" alt="Ouse mais" /></a></p>
<p>O que eu chamei de inversão de controle foi o fato de dar ao time como um todo a responsabilidade da contratação. Se o próprio time escolhe seu novo integrante, este será automaticamente aceito e o trabalho irá fluir muito melhor (experiência comprovada).
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://leo.classluz.net/2010/06/06/invertendo-o-controle/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ubuntu 10.04 (LucidLynx) &#8211; Primeiras Impressões</title>
		<link>http://leo.classluz.net/2010/04/20/ubuntu-10-04-lucid-lynx-primeiras-impressoes/</link>
		<comments>http://leo.classluz.net/2010/04/20/ubuntu-10-04-lucid-lynx-primeiras-impressoes/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 04:32:15 +0000</pubDate>
		<dc:creator>LeoLuz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[cloud-computing]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[kernel]]></category>

		<guid isPermaLink="false">http://leo.classluz.net/?p=463</guid>
		<description><![CDATA[Intro Já faz um tempo que eu acompanho o Ubuntu Project. Para ser mais preciso, venho usando esse sistema operacional desde a versão 6.06 (DapperDrake) lançada em junho de 2006. De la para cá muita coisa mudou e em dez dias a partir da data de hoje a Canonical irá lançar sua mais nova versão [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">
<h2>Intro</h2>
<p>Já faz um tempo que eu acompanho o Ubuntu Project. Para ser mais preciso, venho usando esse sistema operacional desde a versão 6.06 (DapperDrake) lançada em junho de 2006. De la para cá muita coisa mudou e em dez dias a partir da data de hoje a Canonical irá lançar sua mais nova versão desse SO, o Ubuntu 10.04 codinome LucidLynx.</p>
<h2>Objetivo do Post</h2>
<p>A Canonical já disponibilizou em seu site a versão beta para aqueles que já querem ir testando o novo sistema. Meu objetivo com esse post não é listar todas as novas funcionalidades pois essas informações podem ser facilmente obtidas pelo <a href="http://www.ubuntu.com/testing/lucid/beta2#New%20features%20since%20Ubuntu%209.10" target="_blank">site oficial</a>. A minha meta é mostrar as impressões gerais de um antigo usuário (que conhece alguns problemas das versões antigas). Para isso eu testei a versão beta instalada em 2 maquinas virtuais: Uma com o MacOSX como Host e outra com o Windows7. Infelizmente não fiz o teste com a instalação nativa e dessa forma não vou poder falar muita coisa em relação à performance e aceleração 3D.</p>
<h2>Instalação/Inicialização</h2>
<p>Tirando algumas pequenas mudanças no layout e alguns efeitos de &#8220;perfumaria&#8221; o processo de instalação não trouxe nenhuma grande novidade. Ele ainda te pede para executar os mesmos passos até concluir a instalação do SO. Como de costume o processo é bem fácil e qualquer criança é capaz de executar.</p>
<h2>Mudança de Layout</h2>
<p>O tema default do Ubuntu teve uma grande mudança, o que gerou um certo desconforto na comunidade. Os botões de controle de janelas passaram do lado direito (windows-like) para o lado esquerdo (macos-like). Como layout e design são questões de gosto, você já pode imaginar que a comunidade ficou bem agitada com essa mudança. Particularmente achei que ficou bem melhor do que estilo antigo. O próprio Mark Shuttleworth (dono da Canonical) respondeu para a comunidade colocando argumentos muito coerentes afirmando que o Ubuntu não é uma democracia onde qualquer pessoa pode decidir, e sim uma meritocracia, onde apenas aqueles que demonstram ter mérito em um determinado assunto podem tomar as decisões (IMHO: fair enough). A resposta pode ser lida na integra <a href="https://bugs.launchpad.net/ubuntu/+source/light-themes/+bug/532633/comments/167" target="_blank">aqui</a> (recomendo a leitura!).</p>
<p><a href="http://leo.classluz.net/wp-content/uploads/2010/04/lucidlynx_screen.png" target="_blank"><img class="aligncenter size-full wp-image-387" title="evil-santa" src="http://leo.classluz.net/wp-content/uploads/2010/04/lucidlynx_screen.png" alt="LucidLynx" width="400" height="315"  style="border: 1px dotted white; padding: 3px;"/></a></p>
<h2>Gnome 2.30</h2>
<p>Como de costume, uma nova versão do Ubuntu é lançada logo após a nova versão do Gnome. O LucidLynx vem com o Gnome 2.30 e este por si só já traz uma <a href="http://library.gnome.org/misc/release-notes/2.30/" target="_blank">serie de novidades</a>. </p>
<h4>Social Network</h4>
<p>No meu caso a primeira melhoria notada foi em relação à integração do InstantMessenger (Empathy) com o resto do sistema operacional. Pelo visto os desenvolvedores do Gnome estão dando ênfase a social networking pois tudo esta muito bem integrado. Rapidamente você configura suas contas de broadcast (Twitter, Facebook, Identi.ca, etc..) no Gwibber, suas contas de IM (MSN, GTalk, IRC, etc..) no Empathy, e tudo fica muito bem organizado em um único ponto, facilitando muito o gerenciamento. Esse gerenciador chama-se MeMenu , é bem simples e funcional. Vale a pena dar uma olhada na <a href="https://wiki.ubuntu.com/MeMenu" target="_blank">sua especificação</a> para entender melhor a idéia.</p>
<p>O antigo bug do Gwibber que não permitia configurá-lo em uma rede com proxy autenticado foi corrigido e as funções principais estão funcionando muito bem. Não é difícil notar que o novo layout desses aplicativos sofreram uma certa influencia de seus similares para o MacOS: Tweetie e Adium, o que na minha opinião significa um excelente avanço e uma ótima experiência de usuário.</p>
<h4>FileManager (Nautilus)</h4>
<p>O Nautilus também ganhou uma pequena melhoria em seu layout. Agora ele não só permite que se abram varias abas, mas como também permite que se abram duas áreas independentes para visualização simultânea.</p>
<p><a href="http://leo.classluz.net/wp-content/uploads/2010/04/nautilus_screen.png" target="_blank"><img class="aligncenter size-full wp-image-387" title="evil-santa" src="http://leo.classluz.net/wp-content/uploads/2010/04/nautilus_screen.png" alt="Nautilus" width="400" height="315"  style="border: 1px dotted white; padding: 3px;"/></a></p>
<h2>Ubuntu One</h2>
<p>O pessoal da Canonical está <a href="http://voices.canonical.com/ubuntuone/" target="_blank">nitidamente investindo</a> em sua solução de CloudComputing. De forma bem resumida, o <a href="https://one.ubuntu.com/features/" target="_blank">Ubuntu One</a> é um diretório virtual que permite que você integre os seus arquivos pessoais na &#8220;nuvem&#8221; da Canonical. Algo similar ao MobileMe da Apple.</p>
<p>Para aqueles que se interessam em saber um pouco mais da <a href="http://blogs.gnome.org/rodrigo/2009/06/03/desktop-datasettings-replication/" target="_blank">arquitetura do Ubuntu One</a>, vão descobrir alguns fatos curiosos como por exemplo, a utilização do <a href="http://couchdb.apache.org/" target="_blank">CouchDB</a> (Document Based Database) no projeto.</p>
<p>Infelizmente não consegui sincronizar nenhum arquivo com a minha conta pessoal. A aplicação apresentou alguns bugs graves e no final deu um crash feio. O relatório do bug foi devidamente enviado para a Canonical. Esperamos que até o lançamento da versão final já esteja mais funcional.</p>
<h2>Kernel 2.6.32</h2>
<p>As questões relacionadas ao kernel são de mais baixo nível e já não interessam a grande maioria das pessoas. Porém se você é um verdadeiro usuário Linux tenho certeza que vai procurar se informar um pouco sobre como <a href="http://kernelnewbies.org/Linux_2_6_32" target="_blank">anda a evolução</a> do cérebro do sistema. De qualquer forma, um fato que achei curioso pesquisando sobre a próxima versão (2.6.33) é que eles <a href="http://kernelnewbies.org/Linux_2_6_33#head-e62f8734739a22c3d2ae775e9052b290311083c4" target="_blank">removeram todo o código do Android</a>. Ou seja, no LucidLynx ainda há código obsoleto a ser removido. De qualquer forma isso não significa muita coisa em relação à performance do sistema conforme relatado. Segue o trecho do changelog que explica o ocorrido:</p>
<blockquote><p>
Google doesn&#8217;t seem to have interest in improving the Android drivers to have minimum quality standards which could allow to merge them in the main Linux tree and share them with the rest of community. Of course, that&#8217;s totally legal, but it&#8217;s sad that a project that is doing so much to bring open source to the masses has become an example of how not to interact with an open source community.
</p></blockquote>
<p>Artigo recomendado: <a href="http://www.kroah.com/log/linux/android-kernel-problems.html" target="_blank">Android and the Linux kernel community</a>.</p>
<h2>Conclusão</h2>
<p>Apesar de ter presenciado alguns bugs graves na integração do SO com o <a href="https://one.ubuntu.com/features/" target="_blank">Ubuntu One</a>, lembro que ainda estamos na versão beta. Até o lançamento da versão final esses problemas provavelmente já estarão corrigidos. A funcionalidade parece bem interessante e a Canonical esta com uma política de conta free com 2GB. Vai ficar bem legal quando tudo estiver 100% funcional. </p>
<p>Outra questão legal é que a Canonical está realmente trazendo algumas inovações para o sistema como uma área de social networking nativa totalmente integrada. Particularmente, não acredito que os 2 outros SOs irão lançar alguma solução similar a essa por questões de marketing, pois a principio eles estariam promovendo indiretamente outras marcas como o Google, Twitter, M$, etc, e isso talvez não seja algo tão interessante no mundo dos negócios. No meu ponto de vista, essa é mais uma vantagem em se usar qualquer distribuição Linux. Os distribuidores não tem que se preocupar tanto com estratégias comerciais. Se o software é livre e a funcionalidade é interessante o bastante para ser publicada por que não disponibilizá-la na próxima versão?
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://leo.classluz.net/2010/04/20/ubuntu-10-04-lucid-lynx-primeiras-impressoes/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>O Prazo do Papai-Noel</title>
		<link>http://leo.classluz.net/2009/12/08/o-prazo-do-papai-noel/</link>
		<comments>http://leo.classluz.net/2009/12/08/o-prazo-do-papai-noel/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 20:49:04 +0000</pubDate>
		<dc:creator>LeoLuz</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[software management]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://leo.classluz.net/?p=378</guid>
		<description><![CDATA[Tive um professor na época do cursinho que fazia uma brincadeira com a ingenuidade humana. Ele olhava para sua cara e questionava se você acreditava em Coelhinho da Pascoa, Alice no País das Maravilhas, Papai-Noel, etc.. No contexto da brincadeira ela se tornava sarcástica, inteligente e ao mesmo tempo engraçada. Porém nunca fui muito bom [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">
<p>Tive um professor na época do cursinho que fazia uma brincadeira com a ingenuidade humana. Ele olhava para sua cara e questionava se você acreditava em Coelhinho da Pascoa, Alice no País das Maravilhas, Papai-Noel, etc.. No contexto da brincadeira ela se tornava sarcástica, inteligente e ao mesmo tempo engraçada. Porém nunca fui muito bom com piadas e esse nem é meu objetivo. O meu ponto é que doze anos se passaram e parece que ainda escuto alguns fantasmas do passado. Claro que não são ditas de maneira tão explicita, mas a moral da história é a mesma, e geralmente acontece mais ou menos assim:</p>
<ol>
<li>Um solicitante pede uma estimativa para desenvolver um grande software.</li>
<li>O time quebra em pedaços de software menores e faz a estimativa de cada um.</li>
<li>O líder monta o cronograma do projeto com as informações estimadas pelo time.</li>
<li>O solicitante não aceita e fala que tudo tem que ser feito na metade do tempo.</li>
<li>O prazo das atividades é dividido ao meio e o cronograma é atualizado.</li>
<li>O time segue o novo cronograma.</li>
</ol>
<p>Pode ser que você já tenha se deparado com alguma situação parecida com essa. Esse é o &#8220;famigerado&#8221; Prazo do Papai-Noel: <strong>Você ganha o presente, acreditando nele ou não</strong>.  Na minha opinião, o maior perigo em um cenário desses é não perceber o quão prejudicial ele realmente é. Infelizmente, boa parte das pessoas são conformadas e aceitam a situação sem argumentar, negociar ou sequer refletir sobre o assunto.</p>
<p><img class="aligncenter size-full wp-image-387" title="evil-santa" src="http://leo.classluz.net/wp-content/uploads/2009/12/evil-santa.jpg" alt="evil-santa" width="400" height="315"  style="border: 1px dotted white; padding: 3px;"/></p>
<h2>Os Problemas</h2>
<h3>Motivação</h3>
<p>O primeiro problema que aparece é a nítida decepção e falta de motivação do time em decorrência da falta de credibilidade depositada em seu trabalho. Por incrível que pareça, existem gestores que não estão nenhum pouco empenhados ou nem mesmo preocupados em fazer com que o time trabalhe motivado. Muitos destes tais gestores são os mesmos que adoram um belo <a href="http://pt.wikipedia.org/wiki/Comando_e_Controle" target="_blank">comando-controle</a> a la moda antiga e juram de pé junto que esse é o melhor tipo de gerenciamento.</p>
<p>Para ilustrar a questão da falta de motivação farei uma simples analogia:</p>
<p>Imagine que você é um artista-plástico que gosta de desenhar histórias em quadrinhos. Você acaba de ser contratado pela Marvel, está muito feliz e obviamente bastante motivado. No primeiro dia de trabalho seu novo chefe diz que no primeiro mês sua atividade seria avaliar o desenho de outros artistas e achar e apontar erros e imperfeições. Por mais que ache estranho e sem entender direito como realizar essa atividade, você aceita, afinal acaba de ser contratado pela empresa dos seus sonhos.<br />
Pergunto:</p>
<ul>
<li>Como está a sua motivação no primeiro dia de trabalho?</li>
<li>Como está a sua motivação no final do primeiro mês?</li>
<li>Você foi informado que terá que ficar mais um ano nessa atividade. Como está sua motivação agora?</li>
<li>Você vai realizar um bom trabalho? Qual será o seu rendimento no decorrer desse ano?</li>
</ul>
<p>As respostas parecem meio obvias vistas por essa analogia extremamente simplista. Agora adicione vários fatores externos e traga para a sua realidade. Certamente as respostas não estarão tão evidentes mas provavelmente serão as mesmas. Última pergunta: Você como gestor.. Deveria se preocupar com o rendimento do seu time?</p>
<h3>Mas não era estimativa?</h3>
<p>Uma questão mais sutil, mas não menos importante, é o significado da palavra mágica citada no item 1: <strong>ESTIMATIVA</strong>. Acho incrível como uma estimativa vira um prazo concreto num piscar de olhos. Acredito que se alguém te pede para dar uma estimativa, está querendo na verdade ter uma noção do esforço de desenvolvimento para apoiar sua estratégia, entender se o custo é condizente com o budget, time-to-market, etc. Agora transformar uma estimativa em um prazo real não me parece muito coerente.. Basta acompanhar qualquer projeto nesse formato para perceber que a realidade é bem diferente do sonho. Tentar aproximar esses dois pontos, realidade e sonho, é um exercício que provavelmente trará alguns frutos positivos para seu projeto.</p>
<h3>O Ciclo Vicioso</h3>
<p>Não é difícil perceber que se iterarmos o cenário descrito nos itens 1 a 6 algumas vezes, ele tenderá a cair em um ciclo vicioso. Imagine que o time, após ter seu prazo cortado pela metade pela segunda ou terceira vez poderá sugerir um prazo maior. Por outro lado o solicitante também pode desconfiar da situação e diminuir o prazo cada vez mais. Isso criaria um ciclo vicioso de desconfianças. Não me parece algo saudável para se cultivar dentro da sua empresa, seja lá qual for o seu core-business.</p>
<h3>Escalabilidade</h3>
<p>Usando ainda a analogia do desenhista, imagine que você é o dono da editora e quer acelerar ao máximo sua produção de revistas e para isso a solução que te parece óbvia é contratar mais desenhistas e escalar sua linha de produção. Realmente pode ser que em duas pessoas seja possível dividir as atividades e ganhar mais agilidade. Talvez inserindo um terceiro elemento nesse grupo ainda traga algum ganho. Mas o que aconteceria se eu colocasse mais 10 pessoas para ajudar a desenhar uma única revista? A complexidade para fazer com que essas 10 pessoas se entendam e trabalhem em uma linha realmente mais produtiva será muito grande e provavelmente isso não ocorrerá.</p>
<h2>Os Argumentos</h2>
<p>Analogamente à ação de desenhar, do exemplo citado acima, <a href="http://agiletips.blogspot.com/2009/11/sw-development-is-empirical.html" target="_blank">a atividade de desenvolver software é empírica</a>, ou seja, é um conhecimento adquirido apenas pela prática. Vamos supor que você já tenha 10 anos de experiencia como programador, desenvolveu uma funcionalidade para o software X e por algum motivo você perdeu os fontes. A próxima vez que você for desenvolver a mesma funcionalidade com certeza fará de maneira diferente e provavelmente melhor do que a primeira vez não é mesmo? Agora imagine um pedreiro com 10 anos de experiencia tem que subir duas paredes de tijolos. Ele vai demorar o mesmo tempo para subir cada parede e provavelmente elas terão o mesmo nível de qualidade. Percebe a diferença na realização de uma atividade que não é empírica? Então por que as pessoas constantemente comparam a engenharia civil com a engenharia de software sendo que são duas atividades totalmente diferentes? Já escutei de um PMP a seguinte frase: &#8220;Desenvolver software e construir um prédio é a mesma coisa!&#8221;</p>
<p><object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7099091&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7099091&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=&#038;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="420" height="300"></embed></object></p>
<p>Dizem que existem 1000 técnicas para acertar prazos de projetos na mosca. Particularmente, sou meio cético em relação a isso. Os motivos para a minha falta de crença já foram exaustivamente pontuados pela comunidade ágil, como no vídeo do Akita acima, e realmente fazem todo o sentido. Creio que esses acertos são na verdade prazos bem engordurados seguidos de uma bela <a href="http://pt.wikipedia.org/wiki/Procrastina%C3%A7%C3%A3o#S.C3.ADndrome_do_estudante" target="_blank">síndrome do estudante</a>. Assim fica fácil de acertar, se é que dá para considerar isso, algo certo e positivo para a sua empresa.</p>
<p>Realizar um projeto de software no menor tempo possível da melhor maneira possível de forma que o solicitante goste e que tenha um bom nível técnico é o grande desafio e não existem formulas mágicas para alcançar esse objetivo. Cada caso é único e a liderança estratégica tem obrigação de se preocupar com isso.</p>
<p>E você? Acredita em Papai-Noel?<br />
Feliz Natal!</p></div>
]]></content:encoded>
			<wfw:commentRss>http://leo.classluz.net/2009/12/08/o-prazo-do-papai-noel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Blogando com Markdown no Github</title>
		<link>http://leo.classluz.net/2009/02/19/blogando-com-markdown-no-github/</link>
		<comments>http://leo.classluz.net/2009/02/19/blogando-com-markdown-no-github/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 03:43:28 +0000</pubDate>
		<dc:creator>LeoLuz</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[jekyll]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[rubygem]]></category>
		<category><![CDATA[textile]]></category>

		<guid isPermaLink="false">http://leo.classluz.net/?p=304</guid>
		<description><![CDATA[Ultimamente venho fuçando nos repositórios do github. Ficou realmente bem legal o lance de misturar comunidades, projetos open source e git. Para quem não sabe, o git é um SCM distribuido criado por Linus Torvalds que segue o conceito de versionadores modernos como o bazaar e o mercurial. Se você não conhece nada sobre git [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">
<p><img class="size-full wp-image-312 alignleft" title="github" src="http://leo.classluz.net/wp-content/uploads/2009/02/github.png" alt="github" width="179" height="179" /></p>
<p>Ultimamente venho fuçando nos repositórios do <a title="github" href="http://github.com" target="_blank">github</a>. Ficou realmente bem legal o lance de misturar comunidades, projetos open source e <a title="git" href="http://git-scm.com/" target="_blank">git</a>. Para quem não sabe, o <a title="git" href="http://git-scm.com/" target="_blank">git</a> é um SCM distribuido criado por Linus Torvalds que segue o conceito de versionadores modernos como o <a title="bazaar" href="http://bazaar-vcs.org/" target="_blank">bazaar</a> e o <a title="mercurial" href="http://www.selenic.com/mercurial/wiki/" target="_blank">mercurial</a>. Se você não conhece nada sobre <a title="git" href="http://git-scm.com/" target="_blank">git</a> mas quer dar uma fuçada no <a title="github" href="http://github.com" target="_blank">github</a> aconselho a ler primeiro o <a title="micro tutorial git" href="http://www.akitaonrails.com/2008/4/3/micro-tutorial-de-git" target="_blank">micro tutorial de git</a> do Akita para dar o ponta-pé inicial.</p>
<p>Atualmente o github é formado basicamente por projetos ruby e isso pode ser verificado <a title="github languages" href="http://github.com/languages" target="_blank">neste</a> gráfico. Nunca li um único tutorial sobre ruby; não por falta de vontade ou curiosidade, mas estou dando foco em aprender outras coisas ultimamente. Por enquanto, minha postura com ruby é meramente como usuário e isso já é o bastante para tirar proveito de projetos bem interessantes.</p>
<p>Semana passada descobri que o github oferece um serviço para que cada usuário possa publicar um site com as informações sobre seus projetos no formato de blog. Trata-se do <a title="github pages" href="http://pages.github.com/" target="_blank">github pages</a>. O github pages oferece suporte ao <a title="jekyll" href="http://github.com/mojombo/jekyll/tree/master" target="_blank">jekyll</a> que é uma espécie de blog engine que gera páginas estáticas.</p>
<p>Confesso que bati um pouco de cabeça até fazer as coisas funcionarem corretamente com a gem do <a title="jekyll" href="http://github.com/mojombo/jekyll/tree/master" target="_blank">jekyll</a> e entender o seu padrão de diretórios e nomes de arquivos. Mas no final foi até bom porque achei uma outra gem que facilitou e muito a minha vida. Trata-se do jekyll_generator. Irei falar desse generator mais adiante.</p>
<h3>Markdown ou textile?</h3>
<p>O último fator, não menos interessante, que me chamou muito a atenção é que o <a title="jekyll" href="http://github.com/mojombo/jekyll/tree/master" target="_blank">jekyll</a> suporta <a title="markdown" href="http://daringfireball.net/projects/markdown/" target="_blank">markdown</a> e <a title="textile" href="http://textile.thresholdstate.com/" target="_blank">textile</a>. Ambos provem um formato de texto de fácil leitura por um humano com a capacidade de gerar um documento html. Entre os dois eu particularmente prefiro o <a title="markdown" href="http://daringfireball.net/projects/markdown/" target="_blank">markdown</a> pois sua linguagem é extremamente limpa, livre de markups e tags. <a title="textile" href="http://textile.thresholdstate.com/" target="_blank">Textile</a> já não é limpo assim. Veja <a title="jekyll textile" href="http://github.com/mojombo/jekyll/raw/master/README.textile" target="_blank">esse</a> exemplo de textile na documentação do próprio <a title="jekyll" href="http://github.com/mojombo/jekyll/tree/master" target="_blank">jekyll</a> e tirem suas conclusões. Estou escrevendo esse post usando o <a title="vim" href="http://www.vim.org/" target="_blank">vim</a> com a syntax <a title="mkd.vim" href="http://www.vim.org/scripts/script.php?script_id=1242" target="_blank">mkd.vim</a> e nesse momento ele está com essa cara:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-313" style="border: 1px dotted white; padding: 3px;" title="vim-markdown" src="http://leo.classluz.net/wp-content/uploads/2009/02/vim-markdown.png" alt="vim-markdown" width="443" height="380" /></p>
<p>Bom chega de contar história e vamos ao que interessa!</p>
<h3>Pré-requisitos</h3>
<p>Se você usa Ubuntu como SO lembre-se que para poder instalar as gems você precisará de basicamente 3 pacotes: ruby, ruby-dev e o rubygems. Caso você não tenha instalado esses pacotes ou mesmo não sabe se tem ou não, execute:</p>
<div style="border:1px dashed white; padding:8px; text-align: left; font-size: 10pt"><code>$ sudo aptitude install ruby rubygems ruby-dev</code></div>
<p>As gems do ruby instalam um tipo de executável geralmente em: <code>/var/lib/gems/[versão do ruby]/bin</code>. Para não ter dor de cabeça toda vez que for instalar uma gem, adicionei esse caminho na minha variável <code>$PATH</code>.</p>
<p>Pronto.. Esses são os pré-requisitos para começar a brincadeira.</p>
<h3>Setup do seu repo do github pages</h3>
<p>Crie um novo repo no github com o nome no formato [seu usuário].github.com. O github sempre verifica se você tem um repo com o nome nesse formato e caso encontre, ele automaticamente publica seu conteúdo na respectiva url: <code>http://[seu usuário].github.com</code>.</p>
<p>Você pode sincronizar com esse repo, arquivos html estáticos, e a cada <code>git push</code> que você der, seu site será atualizado automaticamente. Mas até ai não tem muita graça.. É ai que entra o jekyll e as coisas começam a ficar mais interessantes.</p>
<h3>Criando a estrutura do Jekyll</h3>
<p>Como disse anteriormente o jekyll é uma espécie de blog engine, e para criar esse blog ele se baseia em uma determinada estrutura de arquivos e diretórios. Comecei a dar uma fuçada nesse padrão e a coisa começou a ficar meio chata.. Foi quando achei o jekyll_generator. Ele gera toda a estrutura do jekyll e já disponibiliza um template bem legal.</p>
<p>Para instalar a gem do jekyll_generator execute:</p>
<div style="border:1px dashed white;padding:8px; text-align: left; font-size: 10pt"><code>$ sudo gem source -a http://gems.github.com/<br />
$ sudo gem install jekyll_generator<br />
</code></div>
<p>Agora já está tudo devidamente instalado. Basta clonar o seu repo do github e gerar a estrutura do jekyll lá dentro. Para isso faça:</p>
<div style="border:1px dashed white;padding:8px; text-align: left; font-size: 10pt"><code>$ git clone git@github.com:[seu usuário]/[seu usuário].github.com.git github-blog<br />
$ cd github-blog<br />
$ jekyll_generator . --title "Meu blog do github" </code></div>
<p>Pronto.. Seu novo blog já está criado. Basta dar o push e tudo já vai automaticamente para o ar:</p>
<div style="border:1px dashed white;padding:8px; text-align: left; font-size: 10pt"><code>$ git add *<br />
$ git commit -am 'estrutura inicial do jekyll'<br />
$ git push<br />
</code></div>
<h3>Escrevendo seus posts</h3>
<p>Perceba que na estrutura do jekyll há um diretório chamado <code>_posts</code>. É lá que o jekyll busca os arquivos com o texto dos seus posts. Note que esse arquivo deve respeitar um padrão de nome para que ele seja devidamente identificado:</p>
<div style="border:1px dashed white;padding:8px; text-align: left; font-size: 10pt"><code>ano-mes-dia-nome-do-post.markdown<br />
</code></div>
<p>ou</p>
<div style="border:1px dashed white;padding:8px; text-align: left; font-size: 10pt"><code>ano-mes-dia-nome-do-post.textile<br />
</code></div>
<p>No topo do arquivo, é necessário utilizar uma notação <a title="yaml" href="http://www.yaml.org/" target="_blank">yaml</a> para informar ao jekyll qual o template ele deverá usar e qual será o título do post. Por exemplo:</p>
<div style="border:1px dashed white;padding:8px; text-align: left; font-size: 10pt"><code>---<br />
layout: post<br />
title: Blogando com Markdown no Github<br />
---<br />
</code></div>
<p>Para ter uma noção do produto final verifique o meu blog do github <a title="LeoLuz Github Page" href="http://leoluz.github.com" target="_blank">aqui</a> e sinta-se a vontade para fuçar, clonar, etc <a title="LeoLuz Github Repo" href="http://github.com/leoluz/leoluz.github.com/tree/master" target="_blank">esse</a> meu repo.</p>
<p>Até a próxima e qualquer dúvida ou sugestão, estamos ai!</p>
<p>[]&#8216;s<br />
-LeoLuz-</p></div>
]]></content:encoded>
			<wfw:commentRss>http://leo.classluz.net/2009/02/19/blogando-com-markdown-no-github/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>GEM &#8211; Seu vídeo a mil por hora no kernel 2.6.28!</title>
		<link>http://leo.classluz.net/2009/01/12/gem-seu-video-a-mil-por-hora-no-kernel-2628/</link>
		<comments>http://leo.classluz.net/2009/01/12/gem-seu-video-a-mil-por-hora-no-kernel-2628/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 23:54:37 +0000</pubDate>
		<dc:creator>LeoLuz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[GEM]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://leo.classluz.net/?p=272</guid>
		<description><![CDATA[Uma das grandes vantagens em utilizar qualquer distribuição Linux, é que você pode acompanhar a sua evolução de perto sem precisar fazer verdadeiros malabarismos atras de informação confiável. Vamos supor que você seja usuário de windows.. Imagine que você quisesse saber como vai funcionar o engine do próximo DirectX e quais os chipsets seriam melhor [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">
<p>Uma das grandes vantagens em utilizar qualquer distribuição Linux, é que você pode acompanhar a sua evolução de perto sem precisar fazer verdadeiros malabarismos atras de informação confiável. Vamos supor que você seja usuário de windows.. Imagine que você quisesse saber como vai funcionar o engine do próximo DirectX e quais os chipsets seriam melhor beneficiados por essa nova arquitetura? Imagino que seja quase uma missão impossível uma vez que há estratégia de mercado envolvida nesse processo de desenvolvimento e a Microsoft quer você, mero usuário, a quilômetros de distancia de suas decisões e negociações.</p>
<p style="text-align: center;"><img class="size-full wp-image-278" style="border: 1px dotted white; padding: 3px;" title="impossiblemission" src="http://leo.classluz.net/wp-content/uploads/2009/01/mission.jpg" alt="impossible mission" width="440" height="366" /></p>
<p>Porém se você tem alguma noção de informática e está disposto a investir uma boa grana em um desktop para que ele possa durar uns 3 anos sem precisar fazer upgrade (o que é meio difícil), saber as tendencias dos seu sistema operacional é uma informação crucial não é mesmo?</p>
<p>Essa é uma das maravilhas do mundo open source, e ao contrário do que muita gente pensa, você não precisa ser expert em C para entender o que está rolando de novidades no kernel do linux. Essa é a idéia do <a href="http://kernelnewbies.org" target="_blank">kernelnewbies</a>. Fornecer informações que possam ser lidas por um ser humano &#8220;normal&#8221; sobre as últimas implementações desse projeto.</p>
<p>Uma vez que você sabe exatamente o que contem a nova versão do <a href="http://en.wikipedia.org/wiki/Linux_kernel" target="_blank">core do Linux</a> você tem a opção de esperar a sua distribuição atualizar para uma versão que contenha o novo kernel ou até mesmo compilá-lo se não tiver paciência de esperar.</p>
<p>Então vamos a algumas novidades interessantes no último release..</p>
<p>Em 25 de Dezembro foi lançado a versão do kernel 2.6.28 e com ele vem a inauguração de um novo módulo para controle de memória da <a href="http://en.wikipedia.org/wiki/GPU" target="_blank">GPU</a> chamado GEM (Graphic Execution Manager). O GEM foi concebido pelo pessoal da Intel e se mostrou <a href="http://lwn.net/Articles/283793/" target="_blank">superior</a> ao seu similar TTM. Segundo o <a href="http://kernelnewbies.org/LinuxChanges" target="_blank">changelog</a> do kernelnewbies, alguns benchmarks apresentaram uma <a href="http://article.gmane.org/gmane.comp.video.dri.devel/30488" target="_blank">melhora de 50%</a> com a utilização do GEM!</p>
<p>Infelizmente, serão beneficiados a principio, apenas os possuidores de uma placa de vídeo com chipset Intel e que utilizem o driver i915 (meu caso.. espero que também seja o seu! :). A boa noticia, segundo o kernelnewbies, é que muitos drivers já estão implementando o suporte ao GEM.</p>
<p>Além dele, há outras novidades não menos interessantes como o lançamento, agora oficial, do <a href="http://en.wikipedia.org/wiki/Ext4" target="_blank">EXT4</a> que também apresenta uma <a href="http://www.phoronix.com/scan.php?page=article&amp;item=ubuntu_ext4&amp;num=1" target="_blank">melhoria em performance</a> considerável e não será necessário formatar todo o seu disco para fazer o upgrade!</p>
<p>Embora a vontade seja grande, vou aguardar o lançamento do Jaunty para testar o GEM e comprovar a sua melhora de performance. Afinal.. é por isso que eu escolhi o Ubuntu.. Para me preocupar o mínimo possível compilando pacotes gigantescos, resolvendo quilos de dependências e consequentemente focando no que realmente me interessa e tendo boas noites de sono! :)</p>
<p>Se você não conseguir se conter, compile o kernel ou atualize para o Jaunty beta e comente o resultado!</p>
<p>Um abraço, um bom 2009 e até a próxima!</p></div>
<p>-LeoLuz-</p>
]]></content:encoded>
			<wfw:commentRss>http://leo.classluz.net/2009/01/12/gem-seu-video-a-mil-por-hora-no-kernel-2628/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sincronizando seu Iphone/Ipod Touch no Linux &#8211; Parte2</title>
		<link>http://leo.classluz.net/2008/12/22/sincronizando-seu-iphoneipod-touch-no-linux-parte2/</link>
		<comments>http://leo.classluz.net/2008/12/22/sincronizando-seu-iphoneipod-touch-no-linux-parte2/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 23:45:58 +0000</pubDate>
		<dc:creator>LeoLuz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[virtualbox]]></category>

		<guid isPermaLink="false">http://leo.classluz.net/?p=224</guid>
		<description><![CDATA[Atualizado 04-03-2010: Já faz um bom tempo que publiquei esse post e recentemente foi relatado um novo método de sincronia sem a necessidade de instalar uma VM Windows. Esse novo método de sincronização está publicado aqui, porém eu ainda não testei e dessa forma não posso assegurar se funciona corretamente. De qualquer maneira parece bem [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">
<p />
<div style="border:1px solid white;padding:10px;"><em>Atualizado 04-03-2010</em>: Já faz um bom tempo que publiquei esse post e recentemente foi relatado um novo método de sincronia sem a necessidade de instalar uma VM Windows. Esse novo método de sincronização está publicado <a target="_blank" href="http://maketecheasier.com/sync-iphone-with-rhythmbox/2010/02/13">aqui</a>, porém eu ainda não testei e dessa forma <b>não</b> posso assegurar se funciona corretamente. De qualquer maneira parece bem tranquilo e acho q vale o teste.</div>
<p>Até que enfim saiu o tão esperado VirtualBox 2.1 com a correção do bug que não permitia sincronizar o Iphone/Ipod Touch com um Linux box como host. Neste momento estou sincronizando e está funcionando perfeitamente.</p>
<p>Porém, algumas dicas para que tudo ocorra bem.</p>
<p><b>Importante</b>: As configurações abaixo foram testadas no Ubuntu 8.10 Intrepid Ibex. Caso você use outra distro ou ainda não tenha atualizado seu Ubuntu, não garanto o funcionamento 100%.</p>
<p>Vamos lá:</p>
<p>Após ter instalado/atualizado seu Virtualbox para a versão 2.1, adicione no final do seu arquivo <code>fstab</code> em <code>/etc/fstab</code>:</p>
<div style="border:1px dashed white;padding:8px;">
<code>none /proc/bus/usb usbfs devgid=46,devmode=666 0 0</code>
</div>
<p>Lembre-se que o grupo que o device (devgid) deve pertencer é o grupo do usuário <code>vboxusers</code>. Portanto deve-se substituir id 46 do exemplo acima pelo id correto. Para descobrir o id correto execute:</p>
<div style="border:1px dashed white;padding:8px;">
<code>$ cat /etc/group | grep vboxusers</code>
</div>
<p>Deverá aparecer algo como:</p>
<div style="border:1px dashed white;padding:8px;">
<code>vboxusers:x:46:leoluz</code>
</div>
<p>Na sua maquiná provavelmente aparecerá outro id. Então substitua pelo id correto no seu arquivo <code>fstab</code> citado acima. Em seguida verifique se o seu usuário faz parte do grupo <code>vboxusers</code> com o comando:</p>
<div style="border:1px dashed white;padding:8px;">
<code>$ groups</code>
</div>
<p>Caso não faça parte, adicione o seu usuário a esse grupo com:</p>
<div style="border:1px dashed white;padding:8px;">
<code>$ sudo gpasswd -a SEUUSUARIO vboxusers</code>
</div>
<p>Após feito isso digite o comando abaixo ou se preferir, reinicie o seu computador (<- eu sei que isso é uma heresia para a comunidade Linux! :p ):</p>
<div style="border:1px dashed white;padding:8px;">
<code>$ sudo mount -a</code>
</div>
<p>Agora o Virtualbox vai conseguir conversar com sua porta USB e o melhor de tudo, o iTunes vai sincronizar com o seu Iphone/Ipod Touch sem problema!
</p></div>
<p>Abraços!</p>
<p>-leoluz-</p>
]]></content:encoded>
			<wfw:commentRss>http://leo.classluz.net/2008/12/22/sincronizando-seu-iphoneipod-touch-no-linux-parte2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Casa Nova</title>
		<link>http://leo.classluz.net/2008/12/21/casa-nova/</link>
		<comments>http://leo.classluz.net/2008/12/21/casa-nova/#comments</comments>
		<pubDate>Sun, 21 Dec 2008 19:08:08 +0000</pubDate>
		<dc:creator>LeoLuz</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://leo.classluz.net/?p=209</guid>
		<description><![CDATA[O classluz está de casa nova com o objetivo de melhor atender seu público. Na verdade o que fiz foi unir o útil ao agradável. Meu pai estava precisando hospedar um portal que ele desenvolveu com um de seus sócios. Como sempre escutei falar bem e tinha muita curiosidade para testar os serviços da Locaweb, [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">
<p>O classluz está de casa nova com o objetivo de melhor atender seu público.</p>
<p>Na verdade o que fiz foi unir o útil ao agradável. Meu pai estava precisando hospedar um portal que ele desenvolveu com um de seus sócios. Como sempre escutei falar bem e tinha muita curiosidade para testar os serviços da <a href="http://www.locaweb.com.br/" target="_blank">Locaweb</a>, acabei escolhendo esse provedor. Principalmente por que eles são os <a href="http://pcmag.uol.com.br/conteudo.php?id=412" target="_blank">pioneiros</a> no Brasil em <a href="http://en.wikipedia.org/wiki/Cloud_computing" target="_blank">Cloud Computing</a>, um conceito muito interessante de prover infra-estrutura computacional como serviço.</p>
<p>Logo após o cadastro já pude comprovar a promessa e em poucos minutos eu já tinha um ambiente muito bem configurado em uma VM rodando Redhat EL 5.2.</p>
<p>Utilizando o painel de controle da Locaweb (sistema web) foi muito facil disponibilizar:</p>
<ul>
<li> 3 bancos de dados <a href="http://www.mysql.com/" target="_blank">mySql</a></li>
<li> 1 banco de dados <a href="http://www.postgresql.org/" target="_blank">Postgre</a></li>
<li> 1 serviço <a href="http://www.joomla.org/" target="_blank">Joomla!</a></li>
<li> 1 serviço <a href="http://wordpress.org/" target="_blank">WordPress</a></li>
</ul>
<p>Porém como sou da velha guarda, os dois últimos preferi zerar e configurar na mão mesmo disponibilizando a última versão de ambos.</p>
<p>Não menos interessante é o suporte a aplicações web desenvolvidas em Python e Ruby com os seus respectivos frameworks:</p>
<ul>
<li>Python
<ul>
<li><a href="http://www.djangoproject.com/" target="_blank">Django</a></li>
<li><a href="http://wiki.pylonshq.com/display/pylonsdocs/Home" target="_blank">Pylons</a></li>
<li><a href="http://turbogears.org/" target="_blank">TurboGears</a></li>
</ul>
</li>
<li>Ruby
<ul>
<li><a href="http://www.rubyonrails.org/" target="_blank">Rails</a></li>
</ul>
</li>
</ul>
<p>É isso ai.. Agora tenho um verdadeiro arsenal de ferramentas.. :)</p>
<p style="text-align: center;"><img class="size-full wp-image-214 aligncenter" style="border: 1px dotted white; padding: 3px;" title="rambo" src="http://leo.classluz.net/wp-content/uploads/rambo.jpg" alt="rambo" width="383" height="306" /></p>
<p>A única coisa que com certeza vai faltar é tempo livre para destrinchar todos esses brinquedos. Mas aos poucos eu chego lá!</p></div>
<p>Abraços e sejam bem vindos a essa nova fase!<br />
-leoluz-</p>
]]></content:encoded>
			<wfw:commentRss>http://leo.classluz.net/2008/12/21/casa-nova/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dia do ninja!</title>
		<link>http://leo.classluz.net/2008/12/05/dia-do-ninja/</link>
		<comments>http://leo.classluz.net/2008/12/05/dia-do-ninja/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 01:02:52 +0000</pubDate>
		<dc:creator>LeoLuz</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://classluz.wordpress.com/?p=176</guid>
		<description><![CDATA[Está quase acabando o dia mas ainda da tempo de mandar essa homenagem! Estava lendo meus feeds quando descobri que hoje é o dia do ninja! Nem sabia que nós tínhamos esse dia! Então aqui vai meu salve não só para aqueles que praticam a arte em si mas também a todos os ninjas de [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align:justify;">
<p>Está quase acabando o dia mas ainda da tempo de mandar essa homenagem! Estava lendo meus feeds quando descobri que hoje é o <a href="http://googleblog.blogspot.com/2008/12/pirates-vs-ninjas-who-would-win.html">dia do ninja</a>! Nem sabia que nós tínhamos esse dia! Então aqui vai meu salve não só para aqueles que praticam a arte em si mas também a todos os ninjas de coração!</div>
<p style="text-align:center;"><img class="size-full wp-image-175" style="border:1px dotted white;padding:3px; aligncenter;" title="shuriken" src="http://classluz.files.wordpress.com/2008/12/shuriken.jpg" alt="shuriken" width="254" height="203" /></p>
]]></content:encoded>
			<wfw:commentRss>http://leo.classluz.net/2008/12/05/dia-do-ninja/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mas onde está a retórica?</title>
		<link>http://leo.classluz.net/2008/12/01/mas-onde-esta-a-retorica-aristoteles/</link>
		<comments>http://leo.classluz.net/2008/12/01/mas-onde-esta-a-retorica-aristoteles/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 23:54:49 +0000</pubDate>
		<dc:creator>LeoLuz</dc:creator>
				<category><![CDATA[Filosofia]]></category>
		<category><![CDATA[Geral]]></category>

		<guid isPermaLink="false">http://classluz.wordpress.com/?p=136</guid>
		<description><![CDATA[Não apenas no ambiente de trabalho, mas também em ocasiões do meu cotidiano vejo pessoas se queixando por diversas situações. É o chefe que tem uma determinada postura.. Os subordinados que não te respeitam.. O dono que não enxerga as tendências de mercado.. Os pais que são muito rígidos com seus filhos.. Entre outras infinidades [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align:justify;">
<p><img class="alignleft size-full wp-image-142" style="border: 1px dotted white; padding: 3px;" title="pessoas_reclamando" src="http://classluz.files.wordpress.com/2008/12/pessoas_reclamando.jpg" alt="pessoas_reclamando" width="218" height="290" />Não apenas no ambiente de trabalho, mas também em ocasiões do meu cotidiano vejo pessoas se queixando por diversas situações. É o chefe que tem uma determinada postura.. Os subordinados que não te respeitam.. O dono que não enxerga as tendências de mercado.. Os pais que são muito rígidos com seus filhos.. Entre outras infinidades de situações. Confesso que quando vejo alguém com essa postura, penso comigo: &#8220;Mas o que você está fazendo de efetivo para mudar esse cenário, o qual você discorda?&#8221;. Ao se queixarem, talvez estejam tentando te repassar o problema, uma vez que se vêem incapazes de solucioná-lo. Talvez estejam realmente desabafando para sentirem-se aliviados. Certamente o que não estão fazendo é tentando achar uma forma de solucionar aquele problema.Essas situações são ocasionadas por nossa capacidade racional de discernimento(bem e mal, ruim e agradável, etc&#8230;). Dessa forma, é fácil perceber que esses &#8220;problemas&#8221;, ou melhor dizendo, discordâncias, são muito mais antigas do que se imagina e na verdade sempre estiveram presentes na vida de um homem. Inevitavelmente todos iremos nos deparar com a necessidade de provar o nosso ponto de vista.</p>
<p>Porém, onde para alguns a vida parece ser tão cruel e injusta, outros vêem uma grande oportunidade para treinarem a sua retórica! O fato é: uma vez que uma discordância, seja ela qual for, é na verdade fruto de uma característica humana(razão), ela também pode ser solucionada utilizando-se esse dom. É exatamente nesse ponto que entra em cena a retórica. Retórica é uma arte de discurso onde o objetivo do interlocutor é persuadir o seu publico alvo, fazendo com que esses aceitem o seu ponto de vista como certo.</p>
<p>Um dos primeiros filósofos a dedicar uma obra inteira sobre a <a href="http://en.wikipedia.org/wiki/Rhetoric_(Aristotle)" target="_blank">retórica foi Aristóteles</a> (<em>Rhetoric &#8211; 350 A.C.</em>). Na obra ele identifica que a retórica se divide em trés níveis(ou &#8220;apelos&#8221; como o próprio Aristóteles os referencia):</p>
<ol>
<li><strong>Ethos</strong> (Credibilidade): Está relacionado ao convencimento em função do caráter do interlocutor. O ser humano tem uma tendencia natural em acreditar mais em pessoas que já tenham um certo nível de credibilidade. Dessa forma, quanto mais respeito tivermos por uma pessoa mais tendenciosos seremos para acreditarmos nela. Quanto mais credibilidade uma pessoa cultivar, mais credibilidade ela irá adquirir justamente em função dessa característica que carregamos.</li>
<li><strong>Pathos</strong> (Emocional): É a forma de persuadir uma pessoa, ou grupo de pessoas em função da emoção. Um exemplo de apelo emocional é claramente notado em algumas instituições  religiosas que agem de má fé para conseguirem mais e mais fiéis. Muitas pessoas procuram essas instituições quando estão abaladas emocionalmente por algum problema de suas vidas e dessa forma ficam vulneráveis aos apelos que são minuciosamente trabalhados para atingí-los. (De qualquer forma gostaria de enfatizar que não são todas as instituições religiosas que agem dessa forma e nem é de meu interesse julgar esta ou aquela).</li>
<li><strong>Logos</strong> (Logica): É a forma de persuasão preferida de Aristóteles onde o interlocutor convence seu publico alvo utilizando-se da técnica da argumentação racional. O apelo lógico é de certa maneira inqüestionável e com certeza a técnica mais efetiva de convencimento, uma vez que são apresentados argumentos racionais para provar uma determinada tese.</li>
</ol>
<p style="text-align:center;"><img class="size-medium wp-image-146" style="border: 1px dotted white; padding: 3px; aligncenter;" title="charge-aristoteles-e-cia" src="http://classluz.files.wordpress.com/2008/12/charge-aristoteles-e-cia.jpg?w=300" alt="charge-aristoteles-e-cia" width="300" height="263" /></p>
<p>Aristóteles identifica no apelo lógico o <a href="http://pt.wikipedia.org/wiki/Silogismo#Entimema" target="_blank">entimema</a> onde são apresentadas duas proposições com o objetivo de se fazer subentender uma terceira, mesmo que essa possa não ser 100% correta, embora de alguma forma seja verdadeira. A definição não ficou tão clara, mas com um exemplo básico, vemos que na verdade é bem mais simples do que parece. Vamos assumir as seguintes proposições:</p>
<ul>
<li>A CVC é uma empresa de turismo.</li>
<li>Eu trabalho na CVC.</li>
</ul>
<p>Ao raciocinarmos sobre as duas proposições acima, podemos facilmente concluir que:</p>
<ul>
<li>Eu trabalho com turismo.</li>
</ul>
<p>Embora essa conclusão pareça até meio óbvia, ela não é puramente verdadeira uma vez que trabalho na área de Arquitetura de Software da CVC e o meu trabalho não está ligado diretamente às práticas do turismo. Acontece que sábios conhecedores do entimema podem usar essa técnica para fazer com que você pense que chegou a uma determinada conclusão sozinho, quando na verdade foi induzido para tal.</p>
<p>Meu objetivo não é me aprofundar muito nas técnicas de Aristóteles e caso você queira ler sua obra na íntegra basta clicar <a href="http://classics.mit.edu/Aristotle/rhetoric.mb.txt" target="_blank">aqui</a>. Apenas quis mostrar, ou melhor, provar o meu ponto de vista, que se você realmente quiser e estiver bem embasado, você pode sim fazer a diferença! Tenho certeza que a retórica não resolve todos os problemas do mundo e talvez nem a metade deles. Porém ela é uma forte aliada a qual devemos aprender a utilizar e a lidar. Digo.. isso se você for uma pessoa séria, e não apenas mais um fanfarrão misturado na multidão.</p>
<p style="text-align:center;"><img class="aligncenter size-full wp-image-148" style="border:1px dotted white;padding:3px;" title="em-cima-do-muro-21" src="http://classluz.files.wordpress.com/2008/12/em-cima-do-muro-21.jpg" alt="em-cima-do-muro-21" width="440" height="345" /></p>
<p>Resgatando o objetivo inicial do post; Entendo que seja muito mais fácil e comodo assumir uma postura defensiva e ficar em cima do muro, mesmo que isto não contribua em nada para melhorar a sua vida, afinal para que esquentar a cabeça se já está chegando a hora da novela e amanhã é apenas mais um dia ??!</p></div>
<p>Como diria um velho colega:<br />
&#8220;Eu é que te perrgunto&#8230;&#8221;</p>
<p>Até amanhã!<br />
-l30-</p>
]]></content:encoded>
			<wfw:commentRss>http://leo.classluz.net/2008/12/01/mas-onde-esta-a-retorica-aristoteles/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>A melhor maneira de sincronizar seu Iphone/Ipod Touch no Linux</title>
		<link>http://leo.classluz.net/2008/11/25/a-melhor-maneira-de-sincronizar-seu-iphone-ipod-touch-no-linux-intrepid/</link>
		<comments>http://leo.classluz.net/2008/11/25/a-melhor-maneira-de-sincronizar-seu-iphone-ipod-touch-no-linux-intrepid/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 01:59:24 +0000</pubDate>
		<dc:creator>LeoLuz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://classluz.wordpress.com/?p=125</guid>
		<description><![CDATA[Atualizado 04-01-09: Clique aqui para ver o post sobre a versão 2.1 do Virtualbox! Resolvi publicar esse post como forma de retribuição. Na verdade a minha intenção inicial era ter achado informações como estas para evitar todo o trabalho que tive. Após procurar bastante sem nada muito conclusivo, resolvi &#8220;meter as caras&#8221; mesmo e por [...]]]></description>
			<content:encoded><![CDATA[<p />
<div style="border:1px solid white;padding:10px;"><em>Atualizado 04-01-09</em>: Clique <a href="http://leo.classluz.net/2008/12/22/sincronizando-seu-iphoneipod-touch-no-linux-parte2/">aqui</a> para ver o post sobre a versão 2.1 do Virtualbox!</div>
<div style="text-align:justify;">
<p />Resolvi publicar esse post como forma de retribuição. Na verdade a minha intenção inicial era ter achado informações como estas para evitar todo o trabalho que tive. Após procurar bastante sem nada muito conclusivo, resolvi &#8220;meter as caras&#8221; mesmo e por a mão na massa! Como já li tantos posts ótimos que me livraram de verdadeiras enrascadas, me senti na obrigação de publicar esse! O fato é.. existem n maneiras de sincronizar seu Ipod Touch/Iphone com um sistema operacional Linux. Mas uma maneira descente mesmo eu só achei uma..</p>
<p>A seguir, minha trajetória..</p>
<p>Se você também achou <a href="https://help.ubuntu.com/community/PortableDevices/iPhone" target="_blank">esse howto</a> de sincronização pela rede wireless com o <a href="http://amarok.kde.org/" target="_blank">Amarok</a>, desista, é furada.. Esse método simplesmente corrompeu o file system do meu iTouch. Tive que fazer o processo de restore e carregar todas as minhas aplicações de novo. Além de ser uma solução lenta.. Imagina sincronizar 16gb de música pela sua rede wireless. Isso é.. se o seu roteador agüentar e não abrir o bico no meio do processo.</p>
<p>Já que a Apple não está nem ai para a comunidade Linux e nem sonha em lançar a %$#$ do iTunes para esse SO, resolvi partir para uma solução de virtualização(<a href="http://bfcentral.oi.com.br/forum/showthread.php?t=15121" target="_blank">TinyXP</a> numa VM só com o itunes instalado). O primeiro nome que me veio a cabeça foi o <a href="http://www.virtualbox.org/" target="_blank">VirtualBox</a> por ser uma solução mais &#8220;limpa&#8221;:</p>
<ul>
<li> Tem uma grande empresa por trás (Sun)</li>
<li> Está disponível no repositório do Ubuntu (minha distro)</li>
<li> É leve e o SO roda transparente. (Só não tem emulação 3D)</li>
</ul>
<p>Quando parecia tudo perfeito, tive o desprazer de descobrir que há um bug no tratamento de memória do VirtualBox 2.0.6 para acesso ao dispositivo USB. Esse bug não permite que o itunes reconheça o ipod/iphone conectado. O time de desenvolvimento prometeu <a href="http://www.virtualbox.org/ticket/491" target="_blank">corrigir</a> isso para a versão 2.1. Então, vou ter que esperar até lá para testá-lo novamente. :/</p>
<p>Para virtualização só me restou o velho <a href="http://www.vmware.com/" target="_blank">VMWare</a>, porém há alguns fatores negativos nessa solução.  A grande questão é que existem duas linhas principais de produtos para virtualização com VMWare. Qual dos dois utilizar? São eles:</p>
<ul>
<li> VMWare Server (Free, só que extremamente pesado!)</li>
<li> VMWare Workstation (Muitos recursos, host roda com performance excelente, porém é pago..)</li>
</ul>
<p>Se você está pensando em tentar uma virtualização com o VMWare e usa o Intrepid ou qualquer outra distro com kernel 2.6.27, nem tente instalar o VMWare server. Ele não funciona bem para esse kernel, e você precisa aplicar um <a href="http://ubuntu-tutorials.com/2008/11/01/vmware-server-107-on-ubuntu-810-intrepid-2627-7-generic/" target="_blank">patch</a> no SO antes de instalá-lo.</p>
<p>A única solução 100% que eu achei foi instalar o VMWare Workstation 6.5.0. Não tem segredo! É baixar e instalar.. O SO host roda perfeito e o melhor, sincroniza tranqüilamente com o seu ipod touch/iphone. O único problema é que para subir a VM você vai precisar de um serial válido.. Esse você acha num desses sites que você já conhece.. Ou se você for uma pessoa politicamente correta como eu&#8230; Baixa o trial e testa por 30 dias.. :p</p>
<p>Só mais um detalhe, para que o vmware consiga identificar seus dispositivos usb&#8217;s, você precisa montá-lo em algum diretório:</p>
<p>Para isso adicione a linha abaixo no seu <code>/etc/fstab</code> e reinicie:</p>
<div style="border:1px dashed white;padding:10px;"><code style="margin:10px;">usbfs /proc/bus/usb usbfs auto 0 0</code></div>
<p>Todas as soluções mencionadas acimas foram testadas por mim utilizando o Ubuntu 8.10 (Intrepid Ibex) kernel 2.6.27-7. A minha opinião é que a melhor solução (atualmente!) para resolver esse problema é realmente o VMWare Workstation 6.5. Porém, por um motivo ou outro você pode discordar. Dessa forma sinta-se a vontade para deixar um comentário e mostrar/provar o seu ponto de vista!</p>
<p>Boa sorte e que venha o Virtualbox 2.1..</p>
</div>
<p>[]&#8216;s<br />
-l30-</p>
]]></content:encoded>
			<wfw:commentRss>http://leo.classluz.net/2008/11/25/a-melhor-maneira-de-sincronizar-seu-iphone-ipod-touch-no-linux-intrepid/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
