<?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>Keep Learning &#187; Artigos</title>
	<atom:link href="http://www.makemesimple.com/blog/category/artigos/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.makemesimple.com/blog</link>
	<description>Conhecimento nunca é o bastante</description>
	<lastBuildDate>Wed, 28 Apr 2010 21:28:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Como aumentei minha produtividade eliminando distrações</title>
		<link>http://www.makemesimple.com/blog/2009/08/27/como-aumentei-minha-produtividade-eliminando-distracoes/</link>
		<comments>http://www.makemesimple.com/blog/2009/08/27/como-aumentei-minha-produtividade-eliminando-distracoes/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 16:23:20 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Opinião]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/?p=261</guid>
		<description><![CDATA[(ou: Como deixei de me preocupar e deixei de assinar muitos feeds)
Não, ainda não sou uma pessoa super-mega-produtiva, mas aqui está como consegui aumentar minha produtividade usando alguns truques (e o incrível sistema operacional que é o Mac OS X em conjunto com ótimas aplicações):

Não verifique seu e-mail mais de quatro vezes ao dia: se [...]]]></description>
			<content:encoded><![CDATA[<p>(ou: Como deixei de me preocupar e deixei de assinar muitos feeds)</p>
<p>Não, ainda não sou uma pessoa super-mega-produtiva, mas aqui está como consegui aumentar minha produtividade usando alguns truques (e o incrível sistema operacional que é o Mac OS X em conjunto com ótimas aplicações):</p>
<ul>
<li>Não verifique seu e-mail mais de quatro vezes ao dia: se você está esperando algum e-mail importante, peça para quem for enviá-lo que te avise quando isso acontecer, usando, por exemplo, uma SMS;</li>
<li>Não verifique seu e-mail se você sabe que não estará apto a agir sobre alguma mensagem imediatamente: por exemplo, verificar seu e-mail de trabalho no final da tarde de Sexta &#8211; deixe para fazer isso na Segunda;</li>
<li>Livre-se dos feeds que você assina: você não vai realmente sentir falta deles sem ficar um tempo longe. Se, após alguns dias, você sentir muita falta de ler um deles, assine-o novamente, mas não verifique seus feeds mais do que uma vez ao dia. Essa é uma excelente técnica para descobrir o que é realmente importante dentre tudo que você consome;</li>
<li>Deixe que as pessoas sejam seu filtro: acredite em mim, se algo é realmente importante (ou banal, mas &#8220;quente&#8221;), vai chegar a você. Você não precisa ficar garimpando. O recurso de &#8220;shared items&#8221; do Google Reader é excelente nesse ponto &#8211; estou à caminho de usar apenas ele, me livrando de todos os feeds que assino (são por volta de oito hoje). Quando realmente precisar encontrar algo, o Google é seu amigo;</li>
<li>Desabilite notificações desnecessárias: como muitas do Growl ou os &#8220;contadores vermelhos&#8221; nos ícones de aplicações na Dock do OS X &#8211; mantenha apenas as que você realmente precisa (por exemplo, eu mantenho as notificações do <a target="_blank" href="http://propaneapp.com/">Propane</a>, já que é importante saber o que meus colegas de trabalho dizem no Campfire);</li>
<li>Não use um monitor muito grande: isso pode parecer estranho, mas <a target="_blank" href="http://lifehacker.com/367391/do-larger-monitors-make-you-more-productive">pesquisas</a> mostram que, após aproximadamente 26 polegadas, o tamanho do monitor diminui a produtividade. É óbvio: muitas coisas no seu campo visual vão lhe distrair. Use o Spaces e divida as telas de acordo com a tarefa (uma para programação, uma para navegação na internet etc);</li>
<li>Aumente o espaço livre na sua tela eliminando itens do seu Desktop: configura o Finder para não exibir discos rígidos (eu deixo apenas discos ópticos e dispositivos removíveis). Elimine da Dock as aplicações que você não usa muito frequentemente. Use o QuickSilver ou algo similar para acessar as aplicações e arquivos que você não usa frequentemente, apenas não deixe que eles se empilhem na Dock e no Desktop;</li>
<li>Elimine da Menu Bar os itens que você não precisa, como o ícone de status do Bluetooth, o indicador AM/PM se você usa o formato americano (é fácil saber isso olhando pela janela), o ícone do Time Machine etc;</li>
<li>Use o <a target="_blank" href="http://adium.im/">Adium</a> e configure-o para que fique oculto a menos que seja a aplicação ativa (veja aqui: <a target="_blank" href="http://yfrog.com/amactivep">ativo</a>, <a target="_blank" href="http://yfrog.com/ajinactive2p">inativo</a>, <a target="_blank" href="http://yfrog.com/e3picture2fuap">configurações 1</a>, <a target="_blank" href="http://yfrog.com/avpicture12xp">configurações 2</a>);</li>
<li>Use o <a target="_blank" href="http://fluidapp.com/">Fluid</a> para criar SSBs para as aplicações web que você precisa para trabalhar: o motivo para isso é evitar ter um browser repleto de abas abertas te distraindo enquanto você usa uma aplicação para trabalhar. Com as aplicações Fluid você pode focar apenas na tarefa à mão;</li>
<li>Use o <a target="_blank" href="http://www.gravityapps.com/tags/">Tags</a> para facilitar o processo de organização e busca de arquivos.</li>
</ul>
<p>É difícil tomar algumas dessas ações, como se livrar dos feeds que você assina &#8211; especialmente porque o número de feeds assinados geralmente é motivo de &#8220;disputazinhas&#8221; entre nerds/geeks. É estupidez pura, como competir para ver <a target="_blank" href="http://37signals.com/svn/posts/1006-sleep-deprivation-is-not-a-badge-of-honor">quem dorme menos e fica acordado programando por mais tempo</a>.</p>
<p>De qualquer modo, dê uma chance. Após algum tempo (eu recomendo tentar por, pelo menos, dez dias), você vai sentir falta das coisas que realmente precisa e pode tê-las novamente assim que quiser.</p>
<p><strong>Update</strong>: Como bem notado pelo <a target="_blank" href="http://www.arthurgeek.net/">ArthurGeek</a>, a imagem de configuração do Adium para que a lista de contatos se esconda automaticamente estava errada (a que eu chamei de &#8220;configuração 2&#8243;). Arrumei o link e deixo aqui também: <a target="_blank" href="http://yfrog.com/avpicture12xp">http://yfrog.com/avpicture12xp</a>.</p>
<p>&#8211;</p>
<p>Também <a target="_blank" href="http://lucashungaro.github.com/productivity/2009/08/27/how-i-increased-my-productivity.html">em inglês</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makemesimple.com/blog/2009/08/27/como-aumentei-minha-produtividade-eliminando-distracoes/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Palestras e artigos altamente recomendados</title>
		<link>http://www.makemesimple.com/blog/2009/08/19/palestras-e-artigos-altamente-recomendados/</link>
		<comments>http://www.makemesimple.com/blog/2009/08/19/palestras-e-artigos-altamente-recomendados/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 16:51:14 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Apresentações]]></category>
		<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Desenvolvimento]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/?p=234</guid>
		<description><![CDATA[Segue abaixo uma lista concisa de vídeos, artigos e slides que mantenho por perto como referência. Há material técnico e não-técnico e, é claro, não se trata de uma referência completa para desenvolvimento de software.
A intenção é ter algo que possa ser consumido em pouco tempo, resultando numa base sólida para o desenvolvedor profissional (ou [...]]]></description>
			<content:encoded><![CDATA[<p>Segue abaixo uma lista concisa de vídeos, artigos e slides que mantenho por perto como referência. Há material técnico e não-técnico e, é claro, não se trata de uma referência completa para desenvolvimento de software.</p>
<p>A intenção é ter algo que possa ser consumido em pouco tempo, resultando numa base sólida para o desenvolvedor profissional (ou seja, não há tópicos básicos para iniciantes) e, ao mesmo tempo, ser mantido como referência (o asterisco denota meus itens preferidos).</p>
<p>Vídeos de conferências:</p>
<ul>
<li><a href="http://blip.tv/file/2145004" target="_blank">Don&#8217;t Mock Yourself Out &#8211; David Chelimsky</a></li>
<li><a href="http://aac2009.confreaks.com/06-feb-2009-11-00-the-grand-unified-theory-jim-weirich.html" target="_blank">The Grand Unified Theory &#8211; Jim Weirich*</a></li>
<li><a href="http://rubyhoedown2008.confreaks.com/02-joe-obrien-and-jim-weirich-mock-dialogue.html" target="_blank">Mock Dialogue &#8211; Joe O&#8217;Brien and Jim Weirich </a></li>
<li><a href="http://goruco2009.confreaks.com/30-may-2009-15-40-solid-object-oriented-design-sandi-metz.html" target="_blank">SOLID Object-Oriented Design- Sandi Metz*</a></li>
<li><a href="http://rubyconf2008.confreaks.com/testing-heresies.html" target="_blank">Testing Heresies &#8211; Francis Hwang*</a></li>
<li><a href="http://rubyconf2007.confreaks.com/d1t1p1_what_makes_code_beautiful.html" target="_blank">What Makes Code Beautiful? &#8211; Marcel Molina Jr</a></li>
</ul>
<p>Artigos/Slides:</p>
<ul>
<li><a href="http://www.prescod.net/rest/mistakes/" target="_blank">Common REST mistakes</a></li>
<li><a href="http://www.defmacro.org/ramblings/fp.html" target="_blank">Functional Programming For The Rest of Us*</a> &#8211; finalmente alguém que explica programação funcional de forma simples, sem querer parecer um &#8220;sabe-tudo&#8221;</li>
<li><a href="http://tomayko.com/writings/rest-to-my-wife" target="_blank">How I Explained REST to My Wife*</a> &#8211; ótimo artigo, sempre uma referência ímpar</li>
<li><a href="http://www.fourhourworkweek.com/blog/2009/04/24/on-the-shortness-of-life-an-introduction-to-seneca/" target="_blank">On The Shortness of Life: An Introduction to Seneca</a></li>
<li><a href="http://www.dcmanges.com/blog/smart-model-dumb-controller" target="_blank">Smart Model, Dumb Controller</a> &#8211; focado em Rails, mas vale para qualquer MVC</li>
<li><a href="http://www.taylor.se/blog/2007/03/22/top-ten-things-ten-years-of-professional-software-development-has-taught-me/" target="_blank">Top ten things ten years of professional software development has taught me</a></li>
<li><a href="http://www.slideshare.net/rolfsky/web20-why-we-got-here-and-whats-next" target="_blank">Web2.0: Why we got here and what&#8217;s next</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.makemesimple.com/blog/2009/08/19/palestras-e-artigos-altamente-recomendados/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>O modelo Dreyfus e a fuga de cérebros</title>
		<link>http://www.makemesimple.com/blog/2008/05/01/o-modelo-dreyfus-e-a-fuga-de-cerebros/</link>
		<comments>http://www.makemesimple.com/blog/2008/05/01/o-modelo-dreyfus-e-a-fuga-de-cerebros/#comments</comments>
		<pubDate>Thu, 01 May 2008 04:31:49 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Cultura]]></category>
		<category><![CDATA[Desenvolvimento]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/2008/05/01/o-modelo-dreyfus-e-a-fuga-de-cerebros/</guid>
		<description><![CDATA[Muitas empresas sofrem com o que se chama &#8220;fuga de cérebros&#8221;: os melhores profissionais da empresa estão sempre saindo para outros empregos. Isso pode ter vários motivos, como problemas de relacionamento pessoal, baixos salários, mudança de foco profissional, insatisfação com a estratégia ou foco da empresa e vários outros. Mas há um fator muito importante [...]]]></description>
			<content:encoded><![CDATA[<p>Muitas empresas sofrem com o que se chama &#8220;fuga de cérebros&#8221;: os melhores profissionais da empresa estão sempre saindo para outros empregos. Isso pode ter vários motivos, como problemas de relacionamento pessoal, baixos salários, mudança de foco profissional, insatisfação com a estratégia ou foco da empresa e vários outros. Mas há um fator muito importante que geralmente é ignorado: a falta de confiança na intuição do profissional especialista (<em>expert</em>).</p>
<p>Pausa para explicação.</p>
<p>O modelo Dreyfus de aquisição de habilidades divide os profissionais em cinco níveis de conhecimento para uma dada habilidade (isto é, você pode estar no nível 1 em culinária e no nível 5 em jardinagem, ninguém &#8220;é&#8221; um nível 5 e pronto). Bem resumidamente, são eles:</p>
<ol>
<li><strong>Novato</strong>: o novato precisa de regras claras e independentes de contexto (&#8220;receita de bolo&#8221;) para guiar seu trabalho, e não sabe lidar com problemas pois não tem experiência para tomar decisões sozinho. Também não toma responsabilidade pelas regras que segue &#8211; &#8220;Eu estava apenas seguindo ordens!&#8221;.</li>
<li><strong>Iniciante avançado</strong>: começa a tomar decisões mais básicas pois já possui alguma experiência e percebe que pode adaptar algumas regras a certos contextos. Ainda não toma decisões contrárias às regras, não sabe lidar com problemas inesperados e não experimenta a sensação de responsabilidade pessoal. A maioria das pessoas está nesse nível.</li>
<li><strong>Competente</strong>: questiona as regras de acordo com sua experiência e percebe consequências a longo prazo. Começa a tomar decisões de acordo com o contexto, resolver problemas inesperados e a tomar a responsabilidade sobre seus atos.</li>
<li><strong>Proficiente</strong>: se utiliza de pouquíssimas regras, começa a valorizar mais sua intuição e sempre analisa o contexto em que está inserido de acordo com o que já experimentou. Sente-se completamente responsável por suas decisões e respectivas consequências.</li>
<li><strong>Especialista</strong>: o especialista usa a intuição que adquiriu com a experiência e faz tudo parecer muito fácil. Toma decisões e resolve problemas sem esforço, pois reconhece padrões muito rapidamente. É o pior professor para um novato, pois não segue qualquer receita, apenas sabe o que fazer.</li>
</ol>
<p>Um ponto interessante é que pessoas nos níveis mais baixos costumam se sobreavaliar, enquanto as pessoas nos níveis mais altos são bem mais críticos em relação ao seu trabalho e nível de conhecimento.</p>
<p><span id="more-120"></span><br />
Citando Dave Thomas:</p>
<blockquote><p>So, high-quality experience turns us from a novice to something approaching an expert. We process information in a qualitatively different way in the two states: novices need rules, experts need concepts and contexts. Novices need external feedback, experts generate their own. Stuff that works when teaching a novice drives an expert up the wall, and vice-versa. Experts are often the worst teachers of novices.</p></blockquote>
<p>Este modelo foi utilizado na década de 80 para resolver alguns problemas na profissão de enfermagem, problemas esses que são agora enfrentados pelos desenvolvedores de software: a profissão não é valorizada (sendo considerada simplesmente operacional), os salários são baixos (o que torna mais interessante financeiramente dar palestras/consultoria ou partir para cargos administrativos), a educação de novos profissionais piora cada vez mais (devido à sobrevalorização de modelos formais e desvalorização da experiência prática) e a perda de visão do real objetivo (satisfazer aos clientes ao invés de simplesmente &#8220;fabricar&#8221; software).</p>
<p>Voltando:</p>
<p>Tudo o que você precisa fazer para arruinar o trabalho de um especialista é fazer com que ele siga regras. É o que Andy Hunt chama de &#8220;arrebanhar cavalos de corrida&#8221;. Para arruinar o trabalho de um novato, deixe-o livre de receitas, o que Andy chama de &#8220;colocar ovelhas para correr&#8221;. É por isso que metodologias e regras não podem ser aplicadas a todos em uma equipe: equipes são heterogêneas, possuem profissionais em vários níveis de conhecimento em uma dada habilidade. Os chamados &#8220;gestores de pessoas&#8221; simplesmente não conseguem perceber isso, ou fingem não perceber.</p>
<p>Outro fator que atrapalha é acreditar que todos devem ser tratados da mesma forma ou haverá insatisfação: dado que os tratamentos diferenciados não sejam coisas absurdas e seja deixado bem claro que qualquer um que se torne mais experiente pode alcançar os benefícios, não há problema nisso. Basta haver transparência.</p>
<p>Esses mesmos gestores ignoram a intuição dos especialistas e usam a justificativa de que <em>não é científico</em> ou <em>não segue a metodologia XYZ</em>. Desta forma, forçam seus melhores profissionais a seguir regras que não fazem o menor sentido para eles. Resultado: insatisfação, baixa produtividade, qualidade do trabalho acaba menor do que poderia ser e, finalmente, a perda do profissional. Basicamente, pagam mais para os especialistas e desperdiçam o que os torna diferentes. Não é assim em todos os lugares mas, infelizmente, é o que acontece na grande maioria.</p>
<p>Escute seus especialistas. Dê espaço àqueles que já provaram seu valor e são referência dentro de sua equipe. Ignore o senso de &#8220;politicamente correto&#8221; e, sim, trate os desenvolvedores de sua equipe de forma diferente, de acordo com o respeito natural que surge dentro da equipe em relação aos melhores e mais experientes. Lembre-se que métodos formais não alimentam criatividade, intuição e inventividade. Não há &#8220;tamanho único&#8221; quando falamos de experiência e competência.</p>
<p><strong>Referências</strong>:<br />
Dave Thomas &#8211; <a href="http://pragdave.pragprog.com/pragdave/2004/04/end_of_the_know.html" target="_blank">End of the Knowledge Worker? </a><br />
Andy Hunt &#8211; <a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning" target="_blank">Pragmatic Thinking and Learning: Refactor Your &#8220;Wetware&#8221;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.makemesimple.com/blog/2008/05/01/o-modelo-dreyfus-e-a-fuga-de-cerebros/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Links interessantes</title>
		<link>http://www.makemesimple.com/blog/2008/04/25/links-interessantes-2/</link>
		<comments>http://www.makemesimple.com/blog/2008/04/25/links-interessantes-2/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 21:20:07 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dicas]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/2008/04/25/links-interessantes-2/</guid>
		<description><![CDATA[
Ezra Zygmuntowicz anunciou que está fazendo modificações no ActionPack em seu fork do Rails no Github. Basicamente, ele está migrando a funcionalidade de integração com Rack do Merb para o Rails e, com isso, fazendo uma limpeza geral no código, conseguindo mais desempenho e estabilidade e caminhando para uma possível implementação thread-safe.
Ruby Hero Awards &#8211; [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://brainspl.at/" target="_blank">Ezra Zygmuntowicz</a> anunciou <a href="http://brainspl.at/articles/2008/04/25/hey-rails-nice-rack" target="_blank">que está fazendo modificações no ActionPack</a> em <a href="http://github.com/ezmobius/rails/commits/master" target="_blank">seu fork do Rails no Github</a>. Basicamente, ele está migrando a funcionalidade de integração com Rack do Merb para o Rails e, com isso, fazendo uma limpeza geral no código, conseguindo mais desempenho e estabilidade e caminhando para uma possível implementação thread-safe.</li>
<li><a href="http://www.rubyheroes.com/" target="_blank">Ruby Hero Awards</a> &#8211; indique os membros da comunidade que, para você, fazem um trabalho importante. Reconhecimento é uma grande motivação. <img src='http://www.makemesimple.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li><a href="http://www.akitaonrails.com/2008/4/19/o-que-ruby-enterprise-edition" target="_blank">O que é Ruby Enterprise Edition?</a> &#8211; Fábio Akita &#8211; o Railer que nunca dorme &#8211; em mais um excelente artigo.</li>
<li>Interessado em Git? Então<a href="http://www.slash7.com/articles/2008/4/25/interested-in-git" target="_blank"> dê uma olhada nesse post</a> para algumas boas referências</li>
<li><a href="http://www.railsenvy.com/2008/4/24/web-2-0-talk" target="_blank">A arte de testar aplicações web</a> &#8211; mais uma ótima apresentação de Gregg Pollack</li>
<li>Posts do Signal vs. Noise: <a href="http://www.37signals.com/svn/posts/997-start-a-business-not-a-startup" target="_blank">Start a business, not a startup</a>, <a href="http://www.37signals.com/svn/posts/995-if-youre-working-in-a-big-group-youre-fighting-human-nature" target="_blank">If you’re working in a big group, you’re fighting human nature</a>, <a href="http://www.37signals.com/svn/posts/979-quit-your-job" target="_blank">Quit your job!</a>.</li>
<li>
<a href="http://www.stifflog.com/2008/04/19/metaprogramming-ruby/" target="_blank">Metaprogramming Ruby Presentation</a>
        </li>
<li><a href="http://rorblog.techcfl.com/2008/04/18/import-gmail-contacts-using-ruby-on-rails/" target="_blank">Import GMail contacts using Rails</a></li>
<li><a href="http://www.ubuntu.com/news/ubuntu-8.04-lts-desktop" target="_blank">Lançado Ubuntu 8.04</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.makemesimple.com/blog/2008/04/25/links-interessantes-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pessoas ou máquinas?</title>
		<link>http://www.makemesimple.com/blog/2008/04/16/pessoas-ou-maquinas/</link>
		<comments>http://www.makemesimple.com/blog/2008/04/16/pessoas-ou-maquinas/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 14:07:42 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Desenvolvimento]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/2008/04/16/pessoas-ou-maquinas/</guid>
		<description><![CDATA[Você trabalha com o quê?
Máquinas? Ok, então você desenvolve softwares que são utilizados por máquinas, certo?
Errado. Desenvolvedores trabalham com pessoas. Com clientes, gerentes, vendedores e outros desenvolvedores.
Médicos não trabalham com estetoscópios ou bisturis. Essas são ferramentas. Aprenda a utilizá-las bem, mas não esqueça do foco: pessoas, anseios, desejos, expectativas. Não importa se você domina Python [...]]]></description>
			<content:encoded><![CDATA[<p>Você trabalha com o quê?</p>
<p>Máquinas? Ok, então você desenvolve softwares que são utilizados por máquinas, certo?</p>
<p>Errado. Desenvolvedores trabalham com pessoas. Com clientes, gerentes, vendedores e outros desenvolvedores.</p>
<p>Médicos não trabalham com estetoscópios ou bisturis. Essas são ferramentas. Aprenda a utilizá-las bem, mas não esqueça do foco: pessoas, anseios, desejos, expectativas. Não importa se você domina Python ou 32 frameworks Java: se você não souber satisfazer aos anseios de pessoas, será um fracasso.</p>
<p>Ferramentas vem e vão, se aperfeiçoam, mudam, inovam e são deixadas para trás, ainda mais em nossa profissão. Um pedreiro não usa um martelo para tudo que faz. Um médico não depende de um esfigmômetro para fazer seu trabalho. Ferramentas são facilitadoras, não substituem a competência.</p>
<p>Não se prenda à ferramentas. Não dê atenção apenas aos aspectos técnicos. Uma solução que usa uma tecnologia simples ou &#8220;velha&#8221; (em TI, 6 meses bastam) que supra as expectativas do cliente é muito (muito mesmo) melhor do que uma solução que usa todos os últimos frameworks e deixa o cliente insatisfeito.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makemesimple.com/blog/2008/04/16/pessoas-ou-maquinas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jason Fried: Questione seu trabalho</title>
		<link>http://www.makemesimple.com/blog/2008/03/18/jason-fried-questione-seu-trabalho/</link>
		<comments>http://www.makemesimple.com/blog/2008/03/18/jason-fried-questione-seu-trabalho/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 15:48:56 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dicas]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/2008/03/18/jason-fried-questione-seu-trabalho/</guid>
		<description><![CDATA[Em sua apresentação na conferência South by Southwest, Jason Fried novamente enfatizou a importância do sofware simples e de atitudes como dividir grandes decisões em várias pequenas decisões e de questionar seu trabalho.

Essas perguntas são sempre muito importante ao analisarmos as vantagens de se fazer algo. Realmente vale a pena? Poderíamos fazer mais simples? Poderíamos [...]]]></description>
			<content:encoded><![CDATA[<p>Em sua apresentação na conferência South by Southwest, Jason Fried novamente enfatizou a importância do sofware simples e de atitudes como dividir grandes decisões em várias pequenas decisões e de questionar seu trabalho.</p>
<p style="text-align: center"><img src="http://www.makemesimple.com/blog/wp-content/uploads/2008/03/sxsw-slide_by_jasonfried.png" alt="slide_JF" /></p>
<p>Essas perguntas são sempre muito importante ao analisarmos as vantagens de se fazer algo. Realmente vale a pena? Poderíamos fazer mais simples? Poderíamos fazer outra coisa que agregue mais valor?</p>
<p>Outros pontos de destaque da apresentação:</p>
<ul>
<li>Otimize para agora, deixe o amanhã para amanhã;</li>
<li>As decisões que você faz hoje não precisam durar para sempre;</li>
<li>Tome pequenas decisões. Elas são mais fáceis de mudar caso não dêem resultado;</li>
<li>Tenha sucesso e dinheiro ajudando outras pessoas a ter sucesso e dinheiro;</li>
<li>Comece com o jeito mais fácil. Ele geralmente lhe entrega de 80 a 90% do que você quer;</li>
<li>Invista mais no que não muda (ex: velocidade de busca sempre será necessário, então a Google investe muito nisso);</li>
<li>Compartilhe seu conhecimento;</li>
<li>Interrupções são inimigas da produtividade;</li>
<li>Seja aberto, honesto e responsável;</li>
<li>Quase nada é urgente ou complicado demais. Nós é que tornamos assim.</li>
</ul>
<p>Confira <a href="http://www.37signals.com/svn/posts/913-question-your-work" target="_blank">o post de Jason</a> e também o <a href="http://www.hooversbiz.com/2008/03/09/sxsw-session-recap-jason-fried-of-37signals/" target="_blank">resumo de sua apresentação</a>, feito por Tim Walker.</li>
]]></content:encoded>
			<wfw:commentRss>http://www.makemesimple.com/blog/2008/03/18/jason-fried-questione-seu-trabalho/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>&#8220;Rápido e Sujo&#8221; ou &#8220;Lento e Limpo&#8221;. Porque não &#8220;Rápido e Limpo&#8221;?</title>
		<link>http://www.makemesimple.com/blog/2008/03/14/rapido-e-sujo-ou-lento-e-limpo-porque-nao-rapido-e-limpo/</link>
		<comments>http://www.makemesimple.com/blog/2008/03/14/rapido-e-sujo-ou-lento-e-limpo-porque-nao-rapido-e-limpo/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 17:41:28 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/2008/03/14/rapido-e-sujo-ou-lento-e-limpo-porque-nao-rapido-e-limpo/</guid>
		<description><![CDATA[Há algum tempo atrás assisti ao vídeo da apresentação de Martin Fowler na RailsConf 2006. Nessa apresentação ele fala sobre o que o faz gostar do Rails (e do Ruby) como plataforma para desenvolvimento de software comercial.
Um dos pontos mais interessantes mencionados por ele é o seguinte: com Rails, conseguimos software limpo entregue rapidamente. Antes [...]]]></description>
			<content:encoded><![CDATA[<p>Há algum tempo atrás assisti ao vídeo da <a href="http://www.scribemedia.org/2006/07/03/rails-martin-fowler/" target="_blank">apresentação de Martin Fowler</a> na RailsConf 2006. Nessa apresentação ele fala sobre o que o faz gostar do Rails (e do Ruby) como plataforma para desenvolvimento de software comercial.</p>
<p>Um dos pontos mais interessantes mencionados por ele é o seguinte: com Rails, conseguimos software limpo entregue rapidamente. Antes disso, você tinha duas frentes: a do &#8220;Rápido e Sujo&#8221;, geralmente representada por PHP e VB (até a versão 6) e a do &#8220;Lento e Limpo&#8221;, com Java e .NET.</p>
<p>O grupo do &#8220;Rápido e Sujo&#8221; promete entregar o software em menos tempo mas, geralmente, o código é uma bagunça e qualquer correção, alteração ou melhoria torna-se um pesadelo.</p>
<p>Já o grupo do &#8220;Lento e Limpo&#8221; lhe promete entregar uma maravilha da engenharia de software, utilizando cada design pattern já visto nesse mundo (o que é algo bem prejudicial mas, ainda assim, comum), interfaces e IoC por todos os lados, enfim, um código com alta manutenabilidade e extensibilidade (ê palavrinhas&#8230;), o que demora uma eternidade e nem sempre é atingido.</p>
<p>Rails estimula uma visão diferente: &#8220;Rápido e Limpo&#8221;. O framework deve fazer todo o &#8220;trabalho sujo&#8221; por você, permitindo que você foque apenas no domínio do problema, eliminando muita complexidade acidental e permitindo menores tempos de entrega. Rails atinge isso através do extensivo uso de DSLs e convenções, entre outros conceitos. Além disso, está estimulando essa visão em outras plataformas, o que é muito bom.</p>
<p>Equilíbrio sempre é importante: você quer sim entregar software rapidamente (assim consegue vender mais), mas não quer ficar com uma bizarrice nas mãos para dar manutenção. Por outro lado, não precisa do código mais perfeito do universo, principalmente se isso significa demora excessiva. Pragmatismo é a chave. Faça o que funciona pra você.</p>
<p>Duas observações importantes:</p>
<p>1. Estou generalizando um pouco quanto à PHP, VB, Java e .NET. A qualidade do código depende muito do desenvolvedor, mas algumas linguagens/plataformas estimulam estilos de programação diferentes. Não se sinta ofendido ou menosprezado. <img src='http://www.makemesimple.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>2. Por favor, não faça como muita gente e saia alardeando que Rails permite desenvolvimento rápido e ponto. Muita gente está fazendo todo tipo de atrocidade com o framework em nome da rapidez, isto é, prazos reduzidos. O foco da comunidade é na qualidade, por isso falamos tanto sobre TDD, beleza no código, DRY, KISS e outros conceitos. Os prazos menores são consequências, não são objetivos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makemesimple.com/blog/2008/03/14/rapido-e-sujo-ou-lento-e-limpo-porque-nao-rapido-e-limpo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Web: a terra do grátis</title>
		<link>http://www.makemesimple.com/blog/2008/02/29/web-a-terra-do-gratis/</link>
		<comments>http://www.makemesimple.com/blog/2008/02/29/web-a-terra-do-gratis/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 20:18:45 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Economia]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/2008/02/29/web-a-terra-do-gratis/</guid>
		<description><![CDATA[Acabo de ler mais um ótimo artigo de Chris Anderson (autor de The Long Tail) e recomendo a leitura a todos: Free! Why $0.00 Is the Future of Business.
Neste artigo, Chris discute os modelos de negócio utilizados na Web e argumenta que, como poder de computação, largura de banda e armazenamento ficaram tão baratos à [...]]]></description>
			<content:encoded><![CDATA[<p>Acabo de ler mais um ótimo artigo de Chris Anderson (autor de <a href="http://www.amazon.com/Long-Tail-Future-Business-Selling/dp/1401302378/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1204316062&amp;sr=8-1" target="_blank">The Long Tail</a>) e recomendo a leitura a todos: <a href="http://www.wired.com/techbiz/it/magazine/16-03/ff_free?currentPage=all" target="_blank">Free! Why $0.00 Is the Future of Business</a>.</p>
<p>Neste artigo, Chris discute os modelos de negócio utilizados na Web e argumenta que, como poder de computação, largura de banda e armazenamento ficaram tão baratos à ponto de poder ser &#8220;desperdiçados&#8221;, praticamente tudo que vai para a web tende a tornar-se gratuito (pelo menos aos usuários finais).</p>
<p>Boa leitura!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makemesimple.com/blog/2008/02/29/web-a-terra-do-gratis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developer 101: Codificação de caracteres</title>
		<link>http://www.makemesimple.com/blog/2008/02/12/developer-101-codificacao-de-caracteres/</link>
		<comments>http://www.makemesimple.com/blog/2008/02/12/developer-101-codificacao-de-caracteres/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 16:44:06 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Developer 101]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/2008/02/12/developer-101-codificacao-de-caracteres/</guid>
		<description><![CDATA[De tempos em tempos gosto de fazer uma &#8220;revisão geral&#8221; sobre conceitos que considero fundamentais para todo desenvolvedor de software. É natural que algumas coisas que estudamos acabem caindo no &#8220;limbo da memória&#8221; pela falta de uso, mas é sempre bom dar uma atualizada nesses conceitos, pois nunca se sabe quando eles serão necessário.
Resolvi, então, [...]]]></description>
			<content:encoded><![CDATA[<p>De tempos em tempos gosto de fazer uma &#8220;revisão geral&#8221; sobre conceitos que considero fundamentais para todo desenvolvedor de software. É natural que algumas coisas que estudamos acabem caindo no &#8220;limbo da memória&#8221; pela falta de uso, mas é sempre bom dar uma atualizada nesses conceitos, pois nunca se sabe quando eles serão necessário.</p>
<p>Resolvi, então, iniciar a série &#8220;Developer 101&#8243; onde, à medida que faço minhas revisões, vou publicar um pouco sobre o assunto e listar links para mais recursos.</p>
<p>No primeiro artigo da série, falarei um pouco sobre algo fundamental e, geralmente, negligenciado por escolas e profissionais: a codificação de caracteres. Não é algo muito fácil de entender e muito dessa dificuldade deve-se às confusões e ambigüidades criadas pelas próprias empresas e entidades de padronização.</p>
<p><span id="more-93"></span></p>
<p>Em resumo, a codificação de caracteres define como caracteres (grafemas e símbolos utilizados em alfabetos e outros símbolos específicos) são representados internamente para armazenamento, processamento ou transmissão.</p>
<p>Para entender a codificação de caracteres, precisamos de três definições básicas:</p>
<p><strong>1. Repertório de caracteres (character repertoire ou character set)</strong></p>
<p>Um repertório de caracteres é um conjunto de caracteres distintos. Um repertório não tem qualquer ligação com dados computacionais.</p>
<p>Exemplo: o alfabeto grego, o conjunto de caracteres que uma criança chinesa aprenderá na terceira série, etc.</p>
<p><strong>2. Conjunto codificado de caracteres (coded character set)</strong></p>
<p>Um mapeamento um a um entre um caractere de um repertório e um código único. Esse código possui diversas nomenclaturas, como code point, code position ou code value, mas todos se referem à mesma coisa.</p>
<p>Exemplo de conjuntos: Braile, Unicode, I Ching.</p>
<p>Exemplo de mapeamento: o code point U+0041 representa a letra A no conjunto Unicode.</p>
<p><strong>3. Codificação de caracteres (character encoding)</strong></p>
<p>Um método (algoritmo) para apresentar caracteres em formato digital, mapeando códigos de caracteres para bytes. Existem diversos tipos de codificações. Algumas fixam o número de bytes de cada caractere, outros permitem caracteres multibytes variáveis.</p>
<p>Exemplos: ASCII (um byte por caractere), UTF-8 (multibyte variável).</p>
<p><strong>A ambigüidade</strong></p>
<p>O nome <em><strong>character set</strong></em> (conjunto de caracteres) é usado para se referir a repertórios, conjuntos codificados ou codificações. <em><strong>Charset</strong></em> também é bastante utilizado para se referir à codificação. Esse tipo de confusão torna o assunto bastante complexo, por isso é necessário entender bem os conceitos descritos mais acima.</p>
<p><strong>Juntando as partes</strong></p>
<p>Suponha que queremos representar todos os caracteres do <a href="http://pt.wikipedia.org/wiki/Alfabeto_latino" target="_blank">alfabeto latino</a> mais todos os símbolos especiais e <a href="http://pt.wikipedia.org/wiki/Diacr%C3%ADtico">diacríticos</a> utilizados na língua portuguesa. Esse é o nosso <em><strong>repertório de caracteres</strong></em>.</p>
<p>Para isso, criamos uma grande tabela com todos esses caracteres e, a cada um, atribuímos um código único. Temos agora um <em><strong>conjunto codificado de caracteres</strong></em>.</p>
<p>Em seguida vamos buscar uma forma eficiente de representar esses caracteres em um meio digital. O que vamos representar, na verdade, é o código de cada caractere.</p>
<p>Supondo que temos 1000 códigos, estabelecemos que cada código poderá ocupar até dois bytes de espaço, o que nos habilita a representar até 65536 códigos (2 bytes é igual a 16 bits, 2^16 é igual a 65536). Tomamos essa decisão pois com 1 byte conseguiríamos representar até 256 códigos. Além disso, é sempre uma medida de bom senso deixar &#8220;espaços livres&#8221; para caracteres especiais (para representar uma quebra de linha, por exemplo) e possíveis necessidades de compatibilidade. Temos, então, nossa própria <em><strong>codificação</strong></em>.</p>
<p>É importante notar que <strong>a idéia de caractere é diferente de sua representação</strong>. Por exemplo, o conceito da letra &#8220;A&#8221; é diferente do fonema em português ou da sequência de bytes no UTF-8.</p>
<p>Além disso, cada representação utiliza uma codificação diferente: no exemplo anterior, sons e bytes, respectivamente. Ou seja, <strong>uma codificação é uma maneira de representar um conceito</strong>.</p>
<p>É por esses motivos que a codificação de caracteres é tão importante: experimente salvar um arquivo em uma codificação (UTF-8, por exemplo) e tentar ler o mesmo arquivo utilizando outra codificação (ASCII, por exemplo). Grande parte, senão todo o conteúdo, será perdido.</p>
<p><strong>Exemplos</strong></p>
<p>Veja, na tabela abaixo, como fica a codificação (representação em bytes) dos caracteres A, א e 好 do conjunto codificado Unicode, nas codificações UTF-8, UTF-16 e UTF-32:</p>
<table id="bytes" border="1" cellpadding="1">
<tr>
<th></th>
<th class="bytes">A</th>
<th class="bytes">א</th>
<th class="bytes">好</th>
</tr>
<tr>
<th>Code point</th>
<td>U+0041</td>
<td>U+05D0</td>
<td>U+597D</td>
</tr>
<tr>
<th>UTF-8</th>
<td>41</td>
<td>D7 90</td>
<td>E5 A5 BD</td>
</tr>
<tr>
<th>UTF-16</th>
<td>00 41</td>
<td>05 D0</td>
<td>59 7D</td>
</tr>
<tr>
<th>UTF-32</th>
<td>00 00 00 41</td>
<td>00 00 05 D0</td>
<td>00 00 59 7D</td>
</tr>
</table>
<p><br/></p>
<p><strong>Recomendações para desenvolvimento</strong></p>
<p>Desde o início do projeto, utilize sempre o conjunto Unicode e, de preferência, a codificação (encoding) UTF-8.</p>
<p>Isso abrange o conjunto codificado e a codificação utilizados para salvar cada arquivo com texto (código-fonte, xml, arquivos para internacionalização etc), cabeçalhos HTTP e meta tags content-type em aplicações web, servidores web, armazenamento em banco de dados e conexões com o mesmo.</p>
<p><strong>Lembre-se</strong>: isso não é uma verdade universal. Utilizar Unicode e UTF-8 cobre a maioria dos casos, mas não todos.</p>
<p><strong>Finalizando</strong></p>
<p>Desde o início, preste atenção na codificação que você está utilizando ao desenvolver software, pois isso pode poupar muito tempo, evitando sérios problemas.</p>
<p>De forma alguma esse artigo é algo completo, é apenas o que consegui rever com algumas horas de leitura, exposto de forma simples. Aprofunde-se e, se encontrar algum erro ou inconsistência no que escrevi, por favor, me avise. <img src='http://www.makemesimple.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Veja também</strong></p>
<ul>
<li><a href="http://www.joelonsoftware.com/articles/Unicode.html" target="_blank">The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)</a></li>
<li><a href="http://www.sitepoint.com/blogs/2006/03/15/do-you-know-your-character-encodings/" target="_blank">Do you know your character encodings?</a></li>
<li><a href="http://www.w3.org/International/tutorials/tutorial-char-enc/" target="_blank">Tutorial: Character sets &amp; encodings in XHTML, HTML and CSS (W3C)</a></li>
<li><a href="http://betterexplained.com/articles/unicode/" target="_blank">Unicode and You</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.makemesimple.com/blog/2008/02/12/developer-101-codificacao-de-caracteres/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Se você escreve mal, programa mal</title>
		<link>http://www.makemesimple.com/blog/2008/02/01/se-voce-escreve-mal-programa-mal/</link>
		<comments>http://www.makemesimple.com/blog/2008/02/01/se-voce-escreve-mal-programa-mal/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 17:11:45 +0000</pubDate>
		<dc:creator>Lucas Húngaro</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Desenvolvimento]]></category>

		<guid isPermaLink="false">http://www.makemesimple.com/blog/2008/02/01/se-voce-escreve-mal-programa-mal/</guid>
		<description><![CDATA[E ponto final.
É impressionante a quantidade de pessoas com curso superior na área de informática (o que sugere que a pessoa deveria ter mais conhecimento do que uma sem curso superior&#8230;) que não sabe escrever um texto minimamente coeso, muito menos manter uma linha de argumentação consistente em uma conversa.
Não estou dizendo que sou um [...]]]></description>
			<content:encoded><![CDATA[<p>E ponto final.</p>
<p>É impressionante a quantidade de pessoas com curso superior na área de informática (o que sugere que a pessoa deveria ter mais conhecimento do que uma sem curso superior&#8230;) que não sabe escrever um texto minimamente coeso, muito menos manter uma linha de argumentação consistente em uma conversa.</p>
<p>Não estou dizendo que sou um <a href="http://pt.wikipedia.org/wiki/Pasquale_Cipro_Neto" target="_blank">professor Pasquale</a>, muito menos um <a href="http://www.skepdic.com/refuge/ctlessons/lesson1.html" target="_blank">mestre na arte da argumentação</a>, mas sempre gostei das ciências humanas e me esforço para melhorar na comunicação. Por quê? Bom, desenvolvimento de software é 90% comunicação. Comunicação com clientes, com membros da equipe, com parceiros, comunicação do seu pensamento em forma de código.</p>
<p>A &#8220;era da internet&#8221;, de Orkuts, Messengers e afins, tornou o cenário ainda pior: além da deficiência lógica, a total falta de conhecimento gramatical e ortográfica se tornou uma epidemia. A &#8220;preguiça&#8221; de escrever corretamente, em nome da agilidade na comunicação virtual, tornou-se hábito e &#8220;emburreceu&#8221; as pessoas.</p>
<p>Programar é uma atividade criativa, envolvendo muito raciocínio e lógica. O mesmo ocorre com a argumentação. Existem técnicas bem definidas para ambas, mas a qualidade do produto final depende das habilidades do executor.</p>
<p>Como discuti anteriormente, o programador apenas programa, traduz, codifica como uma máquina. O desenvolvedor de software, que tem na programação uma de suas principais atividades, busca mais conhecimento, se aprimora, sabe se comunicar.</p>
<p>Então, como alguém espera (ou afirma) ser um bom desenvolvedor de software quando não consegue escrever uma simples frase sem cometer seguidos erros ortográficos e lógicos?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makemesimple.com/blog/2008/02/01/se-voce-escreve-mal-programa-mal/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.537 seconds -->
