<?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>Diogo Santos &#187; Desenvolvimento</title>
	<atom:link href="http://blog.diogosantos.com/category/desenvolvimento-web/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.diogosantos.com</link>
	<description>É sobre um cara aprendendo a fazer chover :)</description>
	<lastBuildDate>Thu, 22 Jul 2010 12:11:30 +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>Martin in Rio</title>
		<link>http://blog.diogosantos.com/2010/06/martin-in-rio/</link>
		<comments>http://blog.diogosantos.com/2010/06/martin-in-rio/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 02:19:33 +0000</pubDate>
		<dc:creator>Diogo Santos</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[DSL]]></category>
		<category><![CDATA[Martin Fowler]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://blog.diogosantos.com/2010/06/martin-fowler-design-de-software-no-seculo-xxi/</guid>
		<description><![CDATA[Estive nesta última segunda-feira, dia 14/06 na PUC/RJ para assistir a primeira palestra de Martin Fowler na América do Sul.
O evento começou com a apresentação “Como Agile tem transformado a área de TI” de Paulo Caroli e Rodrigo Toledo e em seguida, Mr. Fowler fez o que ele chamou de Suite of Talks e falou [...]]]></description>
			<content:encoded><![CDATA[<p>Estive nesta última segunda-feira, dia 14/06 na PUC/RJ para assistir a primeira palestra de <a href="http://martinfowler.com">Martin Fowler</a> na América do Sul.</p>
<p>O evento começou com a apresentação “<a href="http://www.slideshare.net/paulocaroli/como-agile-tem-transformado-a-rea-de-ti">Como Agile tem transformado a área de TI</a>” de Paulo Caroli e Rodrigo Toledo e em seguida, Mr. Fowler fez o que ele chamou de <a href="http://martinfowler.com/bliki/SuiteOfTalks.html">Suite of Talks</a> e falou sobre três assuntos, separados em três mini-palestras. A seguir falo um pouco de cada um dos três assuntos.</p>
<p><span id="more-697"></span><strong>1) Domain Specific Languages (DSLs)</strong></p>
<p>O auditório em silêncio ouviu Martin Fowler falar que DSLs são basicamente linguagens de expressividade limitada ao domínio do problema em que se propõe a resolver.</p>
<p>E que o fator importante que torna as DSLs diferentes de linguagens “normais” é que elas são feitas com foco na leitura e não na escrita. Escrever DSLs tem a ver com tornar o código em uma linguagem limpa e clara que explique facilmente o domínio ao desenvolvedor.</p>
<p>Linguagens de programação normais, ainda que codificadas de forma simples e clara, falham em ensinar ao desenvolvedor sobre o domínio. Além disto, linguagens como o Java, não permitem alterações de comportamento em runtime, o que facilita muito na hora de entender o comportamento do domínio.</p>
<p>Mr. Fowler deu um exemplo de DSL em XML que permite alteração em runtime, sem precisar recompilar o código, mas o exemplo era muito verboso e este é o problema do XML.</p>
<p>Ele também mostrou um exemplo em uma linguagem que foi logo reconhecida por alguns do auditório que gritaram: Ruby! Com certeza este exemplo foi o mais expressivo de todos. (Alguém tem fotos dos exemplos?)</p>
<p>Ainda falando sobre expressividade de códigos, Mr. Fowler  mostrou um exemplo com <a href="http://en.wikipedia.org/wiki/Regular_expression">Expressões Regulares</a> e soltou a bomba:</p>
<blockquote><p>&#8220;Toda vez que você tenta resolver um problema com expressões regulares, você acaba arrumando dois problemas.&#8221;</p></blockquote>
<p>Martin Fowler terminou a palestra falando do seu livro “<a href="http://my.safaribooksonline.com/9780132107549">Domain Specific Languages</a>” que será lançado em Setembro deste ano.</p>
<p><strong>2) Richardson Maturity Model</strong></p>
<p>Mr. Fowler falou sobre o modelo criado por <a href="http://www.crummy.com/">Leonard Richardson</a> que mostra os três passos necessários para se alcançar a excelência em implementações de web services REST.</p>
<p>Esta palestra teve o mesmo conteúdo que o artigo “<a href="http://martinfowler.com/articles/richardsonMaturityModel.html">Richardson Maturity Model: steps toward the glory of REST</a>” escrito por Martin Fowler. Por este motivo, não vejo a necessidade de falar mais sobre o assunto.</p>
<p><strong>3) Continuous Integration e Continuous Delivery</strong></p>
<p>Já esta mini-palestra foi dividida em duas:</p>
<p><strong><em>3.1 Continuous Integration</em></strong></p>
<p>Martin Fowler falou rapidamente sobre o assunto dando o  exemplo de dois desenvolvedores criando duas funcionalidades distintas, cada um trabalhando em uma linha separada e adicionando as funcionalidades a linha principal assim que terminavam.</p>
<p>O exemplo foi sendo incrementado com situações que iam sempre complicando a vida dos dois desenvolvedores até que eles precisaram usar Continuous Integration.</p>
<p>E os detalhes sobre o assunto, estão no livro <a href="http://www.amazon.com/exec/obidos/ASIN/0321336380">Continuous Integration: Improving Software Quality and Reducing Risk</a> de Paul M. Duvall. Um livro da série de assinaturas de Martin Fowler.</p>
<p>Ele ainda ressaltou que se o time desenvolve em linhas de desenvolvimento separadas, é imprescindível que cada desenvolvedor integre seu código a linha principal pelo menos uma vez por dia.</p>
<p><strong><em>3.2 Continuous Delivery</em></strong></p>
<p>Ele falou sobre como era demorado para os desenvolvedores verem seus códigos subindo para produção e como era trabalhoso dar suporte a estas subidas.</p>
<p>Madrugadas em claro, semanas estressantes. Toda essa dificuldade foi simplificada com o Continuous Delivery, que é um passo adiante do Continuous Integration.</p>
<p>Ele falou de como colegas dele na ThoughtWorks estão utilizando o processo automático que roda testes desde unitários até de performance e caso todos os testes passem, o código sobe para produção.</p>
<p>Os detalhes sobre Continuous Delivery estão no livro <a href="http://www.amazon.com/exec/obidos/ASIN/0321601912">Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation</a> de Jez Humble. Sim, mais um livro da série de assinaturas de Martin Fowler.</p>
<p><strong>4) Perguntas</strong></p>
<p>Um fato interessante: não houve perguntas sobre Continuous Integration, nem sobre Continuous Delivery e nem sobre Richardson Maturity Model. As pessoas estavam mesmo interessadas em DSLs e &#8211; acredite &#8211; em Domain-driven Design.</p>
<p>Martin Fowler fechou a sessão de perguntas com uma piada depois que um professor da PUC o perguntou se ele voaria num avião construído com metodologia ágil:</p>
<blockquote><p>“Uma vez, numa conferência de desenvolvimento de software com vários professores, alguém os perguntou se eles voariam em aviões criados pelos seus alunos. Todos riram e afirmaram que com certeza voariam em aviões criados por seus alunos. Mas um professor foi bem firme em sua resposta:</p>
<p>- Eu não voaria de jeito algum! Sabem por que!? Porque com certeza nenhum código dos meus alunos faria um avião decolar!”</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.diogosantos.com/2010/06/martin-in-rio/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Upload elegante com Javascript e SWFUpload</title>
		<link>http://blog.diogosantos.com/2009/01/upload-elegante-com-javascript-e-swfupload/</link>
		<comments>http://blog.diogosantos.com/2009/01/upload-elegante-com-javascript-e-swfupload/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 14:32:28 +0000</pubDate>
		<dc:creator>Diogo Santos</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[SWFUpload]]></category>
		<category><![CDATA[Upload]]></category>

		<guid isPermaLink="false">http://blog.diogosantos.com/?p=251</guid>
		<description><![CDATA[Para quem vem das antigas do Javascript e HTML, onde os efeitos AJAX eram feitos com frames escondidos, sabe que uma das maiores dificuldades era a formatação do botão de upload num formulário html. Os designers ficavam loucos quando criavam botões estilosos para upload em seus layouts e os programadores nunca conseguiam implementá-los.

Há um tempo [...]]]></description>
			<content:encoded><![CDATA[<p>Para quem vem das antigas do Javascript e HTML, onde os efeitos AJAX eram feitos com frames escondidos, sabe que uma das maiores dificuldades era a formatação do botão de upload num formulário html. Os designers ficavam loucos quando criavam botões estilosos para upload em seus layouts e os programadores nunca conseguiam implementá-los.</p>
<p><span id="more-251"></span></p>
<p><a href="http://blog.diogosantos.com/wp-content/resources/2009/01/minnelli_logo.png"><img class="alignright size-full wp-image-252" title="SWFUpload" src="http://blog.diogosantos.com/wp-content/resources/2009/01/minnelli_logo.png" alt="" width="252" height="85" /></a>Há um tempo atrás, eu até conseguia resolver o problema criando um campo de upload escondido e invocando seu click &#8211; o que fazia janela de seleção de arquivos aparecer &#8211; via Javascript, mas esta solução foi logo vetada pelos browsers por questões de segurança &#8211; até mesmo no IE &#8211; e aí ficamos sem uploads elegantes novamente por alguns anos.</p>
<p>Foi então que eu vi pela primeira vez um botão de upload simples e elegante no Flickr e, depois de um tempo, no Orkut e comecei uma caçada por algo similar. Nesta procura, eu encontrei o <a href="http://swfupload.org/" target="_blank">SWFUpload</a>, um componente Javascript que usa Flash para fazer campos de upload simples, elegantes e customizáveis.</p>
<p>SWFUpload é simples de usar, a<a href="http://swfupload.org/documentation" target="_blank"> documentação</a> é bem explicativa e existe uma <a href="http://demo.swfupload.org/v220beta4/index.htm" target="_blank">página de exemplos</a> que com certeza terá uma implementação parecida com a que você está procurando.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diogosantos.com/2009/01/upload-elegante-com-javascript-e-swfupload/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Schrödinger&#8217;s cat</title>
		<link>http://blog.diogosantos.com/2008/08/schrodingers-cat/</link>
		<comments>http://blog.diogosantos.com/2008/08/schrodingers-cat/#comments</comments>
		<pubDate>Sun, 31 Aug 2008 18:04:45 +0000</pubDate>
		<dc:creator>Diogo Santos</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Arquitetura]]></category>
		<category><![CDATA[Boas Práticas]]></category>
		<category><![CDATA[Shrödinger's Cat]]></category>
		<category><![CDATA[The Big Bang Theory]]></category>
		<category><![CDATA[The Pragmatic Programmer]]></category>

		<guid isPermaLink="false">http://blog.diogosantos.com/?p=162</guid>
		<description><![CDATA[Outro dia destes eu estava assistindo um episódio de The Big Bang Theory no qual um dos personagens menciona o experimento de Schrödinger. Isso me fez lembrar do livro The Pragmatic Programmer (PragProg) que eu li recentemente.

O experimento é mais ou menos o seguinte: imagine um gato dentro de uma caixa fechada com alguma substancia [...]]]></description>
			<content:encoded><![CDATA[<p>Outro dia destes eu estava assistindo um episódio de <a href="http://www.imdb.com/title/tt0898266/" target="_blank">The Big Bang Theory</a> no qual um dos personagens menciona o experimento de Schrödinger. Isso me fez lembrar do livro <a href="http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X%3FSubscriptionId%3D08WX39XKK81ZEWHZ52R2%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D020161622X" target="_blank">The Pragmatic Programmer</a> (PragProg) que eu <a href="http://blog.diogosantos.com/2008/07/the-pragmatic-programmer/" target="_blank">li recentemente</a>.</p>
<p><span id="more-162"></span></p>
<p>O experimento é mais ou menos o seguinte: imagine um gato dentro de uma caixa fechada com alguma substancia radioativa, onde há 50% de chances desta substancia infectar o gato. Se isso acontecer o gato morrerá, se não ele ficará bem. Então, neste momento o gato está vivo ou morto? Segundo Schrödinger, a resposta correta é <em>ambos</em>. As duas possibilidades acontecem em universos paralelos, em um universo o gato morre e no outro ele vive. Apenas precisamos abrir a caixa para descobrirmos em qual universo nós estamos.</p>
<p>No seriado, o personagem mencionou o experimento para persuadir uma garota que estava na duvida ser deveria sair com ele ou não. Bom, ela só saberá se vale a pena se ela abrir a caixa. <img src='http://blog.diogosantos.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>No PragProg, os autores mencionam o experimento fazendo um comparativo com evolução do código em desenvolvimento de softwares:</p>
<blockquote><p>Think of code evolution along the same lines as a box full of Schrödinger&#8217;s cats: every decision results in a different version of the future. How many possible futures can your code support? Which ones are more likely? How hard will it be to support them when the time comes?</p></blockquote>
<p>O livro questiona o quão flexível à mudanças é o seu software e ressalta a importância de ser ter arquiteturas que suportem mudanças sem grandes custos.</p>
<p>Certa vez, eu vi um projeto ter que ser praticamente todo reescrito quando chegou a hora de criar o módulo que seria usado no Palm. Muitas decisões que foram tomadas no início do projeto não levaram em conta este futuro. Em conseqüência disso, houve um re-trabalho enorme, gerou um estresse gigantesco e exigiu bastante esforço da equipe que virou noites e finais de semana para que tudo fosse entregue no prazo.</p>
<p>O quão flexivel à mudanças é o seu software?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diogosantos.com/2008/08/schrodingers-cat/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Janelas Quebradas</title>
		<link>http://blog.diogosantos.com/2008/05/janelas-quebradas/</link>
		<comments>http://blog.diogosantos.com/2008/05/janelas-quebradas/#comments</comments>
		<pubDate>Tue, 27 May 2008 01:10:32 +0000</pubDate>
		<dc:creator>Diogo Santos</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Boas Práticas]]></category>
		<category><![CDATA[Falando em Java]]></category>
		<category><![CDATA[Janelas Quebradas]]></category>
		<category><![CDATA[Refactory]]></category>

		<guid isPermaLink="false">http://blog.diogosantos.com/?p=96</guid>
		<description><![CDATA[Foi na apresentação do Guilherme Silveira no Falando em Java 2008 que eu ouvi falar a primeira vez sobre Janelas Quebradas. Depois disso, percebi que este assunto não é nada novo na engenharia de softwares e que ele é abordado num livro que eu acabei de comprar, o The Pragmatic Programmer: From Journeyman to Master. [...]]]></description>
			<content:encoded><![CDATA[<p>Foi na apresentação do <a href="http://www.caelum.com.br/caelum/instrutores.jsp" target="_blank">Guilherme Silveira</a> no <a href="http://blog.caelum.com.br/2008/05/20/falando-em-java-2008-eu-fui/" target="_blank">Falando em Java 2008</a> que eu ouvi falar a primeira vez sobre <a href="http://en.wikipedia.org/wiki/Broken_Windows">Janelas Quebradas</a>. Depois disso, percebi que este assunto não é nada novo na engenharia de softwares e que ele é abordado num livro que eu acabei de comprar, o <a href="http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X/sr=8-1/qid=1168005327/ref=pd_bbs_sr_1/002-0042091-6362405?ie=UTF8&amp;s=books" target="_blank">The Pragmatic Programmer: From Journeyman to Master</a>. Trata-se de uma teoria baseada num experimento que criminologistas americanos fizeram.</p>
<p><span id="more-96"></span></p>
<blockquote><p>Um automóvel foi deixado em um bairro de classe alta na Califórnia. Na primeira semana, o carro não foi danificado. Os pesquisadores então quebraram uma das janelas. Poucas horas depois, o carro foi completamente destroçado e roubado por grupos vândalos.</p></blockquote>
<p>Eu já pude acompanhar este fenômeno duas vezes. Na primeira vez foi um ciclo bem parecido com o experimento original, mas não foi proposital: Eu era criança e morava num prédio onde o irmão de um morador deixou seu carro estacionado. O carro estava bem sujo e meio amassado em algumas partes. Em pouco tempo, este carro virou o assento padrão de todas as crianças do prédio, depois já estava sem as janelas e então mais tarde, dois indivíduos &#8211; que não eram crianças &#8211; roubaram a bateria do carro. O caso foi sério, no final deu uma grande confusão e os caras que roubaram a bateria acabaram levando a culpa de tudo.  Posso apostar que se o carro estivesse em, não vou nem dizer perfeitas, mas em condições normais, assim como todos os carros que estavam na garagem do prédio, isso não teria acontecido.</p>
<p>Na segunda vez que eu vi este fenômeno, ele não chegou a causar muitos estragos. E o que nos poupou de estragos maiores foi o fato das pessoas terem enxergado que tínhamos uma &#8220;Janela Quebrada&#8221;. Eu falei aqui no blog sobre o <a href="http://blog.diogosantos.com/2008/05/mau-copiador/">Mau Copiador</a>, o cara que senta pra desenvolver o sistema sem saber o que está fazendo e vai copiando o código dos sites, dos outros sistemas da empresa, de todo mundo e de qualquer maneira. Pois é, ele era uma janela quebrada e estava lá na empresa para fazer com que todo um sistema, ou até a empresa inteira fosse por água abaixo, ou melhor, por janela abaixo (com trocadilho).</p>
<p>Acontece que esse cara não era mau em se auto promover para as pessoas que não viam o código que ele gerava e com isso ele acabou ganhando a tarefa de treinar os estagiários que entraram no projeto. E aí não foram só janelas quebradas, foram portas, mesas, cadeiras e tudo mais que viam pela frente até que os gerentes foram alertados e medidas foram tomadas.</p>
<p>Não posso dizer que não houve estragos, eu perdi algumas boas horas corrigindo &#8220;cópias mal feitas em larga escala&#8221; no sistema, mas nada que um bom <a href="http://en.wikipedia.org/wiki/Refactor" target="_blank">Refactoring</a> &#8211; e eu gosto de refactoring &#8211; não resolvesse.</p>
<p>O Guilherme Silveira apontou o cuidado para não deixar janelas quebradas no sistema como um dos hábitos que os arquitetos de softwares altamente eficazes devem ter.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diogosantos.com/2008/05/janelas-quebradas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cadê a linguagem ubíqua?</title>
		<link>http://blog.diogosantos.com/2008/05/cade-a-linguagem-ubiqua/</link>
		<comments>http://blog.diogosantos.com/2008/05/cade-a-linguagem-ubiqua/#comments</comments>
		<pubDate>Thu, 22 May 2008 13:51:44 +0000</pubDate>
		<dc:creator>Diogo Santos</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Domain-Driven Design]]></category>
		<category><![CDATA[Falando em Java]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://blog.diogosantos.com/?p=98</guid>
		<description><![CDATA[Eu estava escrevendo um comentário para o artigo &#8220;Domain-Driven Design é Simples: Basta Chamar DAOs de Repositórios&#8221; do Phillip Calçado, mas acabei escrevendo muito e achei melhor comentar por aqui.

Na empresa onde trabalho, uma empresa de três letrinhas, tentamos implantar DDD em um projeto, mas é difícil fazer isso já que quem tem contato com [...]]]></description>
			<content:encoded><![CDATA[<p>Eu estava escrevendo um comentário para o artigo &#8220;<a href="http://blog.fragmental.com.br/2008/05/22/domain-driven-design-e-simples/" target="_blank">Domain-Driven Design é Simples: Basta Chamar DAOs de Repositórios</a>&#8221; do <a href="http://blog.fragmental.com.br" target="_blank">Phillip Calçado</a>, mas acabei escrevendo muito e achei melhor comentar por aqui.</p>
<p><span id="more-98"></span></p>
<p>Na empresa onde trabalho, uma<a href="http://blog.fragmental.com.br/2007/06/07/3-letrinhas/" target="_blank"> empresa de três letrinhas</a>, tentamos implantar DDD em um projeto, mas é difícil fazer isso já que quem tem contato com o cliente não somos nós, os desenvolvedores. O que chega para nós já é a &#8220;solução de todos os problemas&#8221; que o <a href="http://blog.fragmental.com.br/2008/01/15/quando-eu-crescer-quero-ser-analista-de-sistemas/" target="_blank">analista de sistemas</a> criou enquanto conversava com o cliente. Na verdade, a nossa <a href="http://www.domaindrivendesign.org/discussion/messageboardarchive/UbiquitousLanguage.html" target="_blank">linguagem ubíqua</a> não é feita entre o cliente e nós, mas sim entre nós e o analista.</p>
<p>Eu não acho certo dizer que o sistema está usando DDD também, e achei muito interessante o artigo do Phillip, porque eu estava pensando exatemte nisso outro dia deste. Inclusive, na apresentação de DDD que o Sérgio Lopes fez no Falando em Java 2008, foi a primeira coisa que ele demonstrou: a criação de uma línguagem que fosse clara para o cliente e para o desenvolvedor.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diogosantos.com/2008/05/cade-a-linguagem-ubiqua/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mau copiador</title>
		<link>http://blog.diogosantos.com/2008/05/mau-copiador/</link>
		<comments>http://blog.diogosantos.com/2008/05/mau-copiador/#comments</comments>
		<pubDate>Sat, 03 May 2008 16:55:41 +0000</pubDate>
		<dc:creator>Diogo Santos</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Boas Práticas]]></category>

		<guid isPermaLink="false">http://diogosantos.com/?p=84</guid>
		<description><![CDATA[É impressionante a capacidade que algumas pessoas têm de não pensar no código que está copiando, seja de um exemplo na internet, de um sistema existente da empresa ou até do desenvolvedor da baia ao lado.

Se você for copiar um código, pelo menos, veja se o que você está copiando se aplica ao problema que [...]]]></description>
			<content:encoded><![CDATA[<p>É impressionante a capacidade que algumas pessoas têm de não pensar no código que está copiando, seja de um exemplo na internet, de um sistema existente da empresa ou até do desenvolvedor da baia ao lado.</p>
<p><span id="more-84"></span></p>
<p>Se você for copiar um código, pelo menos, veja se o que você está copiando se aplica ao problema que você quer resolver e, é claro, adéqüe tudo que está copiando ao seu contexto. Caso contrário você estará sendo um&#8230; eh&#8230; mau copiador, não podendo nem se dar ao luxo de ser chamado de desenvolvedor.</p>
<p>É claro que erros todo nós cometemos, mas também tem aquela velha história:</p>
<blockquote><p><em>Errar é humano, persistir no erro é burrice.</em></p></blockquote>
<p>Concluindo, prestar muita atenção antes de copiar um padrão, um trecho de código ou qualquer outra coisa. Porque você poderá passar por situações delicadas e até ser considerado uma piada dentro da empresa, se copiar coisas sem saber o que está fazendo.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diogosantos.com/2008/05/mau-copiador/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Nem Struts Nem JSF, HTML e CSS</title>
		<link>http://blog.diogosantos.com/2008/02/nem-struts-nem-jsf-html-e-css/</link>
		<comments>http://blog.diogosantos.com/2008/02/nem-struts-nem-jsf-html-e-css/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 04:30:53 +0000</pubDate>
		<dc:creator>Diogo Santos</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[Struts]]></category>
		<category><![CDATA[Wicket]]></category>

		<guid isPermaLink="false">http://diogosantos.com/2008/02/21/nem-struts-nem-jsf-html-e-css/</guid>
		<description><![CDATA[Quem quer começar a desenvolver aplicações web com Java deve aprender HTML, CSS e Javascript antes de qualquer coisa. Não adianta aprender Struts, JSF, Wicket ou o que for se o HTML não está legível e muito menos atende aos padrões estabelecidos pelo World Wide Web Consortium.

Isso é uma coisa que eu penso há muito [...]]]></description>
			<content:encoded><![CDATA[<p>Quem quer começar a desenvolver aplicações web com Java deve aprender <a title="HTML" href="http://pt.wikipedia.org/wiki/HTML" target="_blank">HTML</a>, <a title="CSS" href="http://pt.wikipedia.org/wiki/Cascading_Style_Sheets" target="_blank">CSS</a> e <a title="Javascript" href="http://pt.wikipedia.org/wiki/JavaScript" target="_blank">Javascript</a><strong> <em>antes de qualquer coisa</em></strong>. Não adianta aprender <a title="Struts" href="http://pt.wikipedia.org/wiki/Apache_Struts" target="_blank">Struts</a>, <a title="JSF" href="http://pt.wikipedia.org/wiki/JavaServer_Faces" target="_blank">JSF</a>, <a title="Wicket" href="http://en.wikipedia.org/wiki/Apache_Wicket" target="_blank">Wicket</a> ou o que for se o HTML não está legível e muito menos atende aos padrões estabelecidos pelo <a title="W3C" href="http://www.w3.org/" target="_blank">World Wide Web Consortium</a>.</p>
<p><span id="more-65"></span></p>
<p>Isso é uma coisa que eu penso há muito tempo e como eu havia lido o artigo <a href="http://trsenna.wordpress.com/2007/05/23/roadmap-html-e-css/">roadmap: html e css</a> do<a href="http://trsenna.wordpress.com/">Thiago Senna</a> há um tempinho atrás, decidi postar aqui para tentar disseminar a idéia.</p>
<p>O que eu tenho visto é muita gente preocupada em aprender inúmeras frameworks, mas ninguém dá a devida atenção que HTML, CSS e  Javascript merecem. E com isso acaba acontecendo o que eu vejo muito nos projetos que eu participo: tabelas dentro de tabelas, deixando as páginas muito mais pesadas e difícil de entender e dar manutenção.</p>
<p>Então, para quem deseja ingressar na carreira de desenvolvedor web, aprender HTML, CSS e Javascript é obrigatório.</p>
<p>Um bom site com tutoriais e referências completas é o <a title="W3 Schools" href="http://www.w3schools.com/" target="_blank">W3 Schools</a>, que fica como dica.</p>
<p>Abraço!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diogosantos.com/2008/02/nem-struts-nem-jsf-html-e-css/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>48 maneiras de impressionar seus amigos</title>
		<link>http://blog.diogosantos.com/2007/03/48-maneiras-de-impressionar-seus-amigos/</link>
		<comments>http://blog.diogosantos.com/2007/03/48-maneiras-de-impressionar-seus-amigos/#comments</comments>
		<pubDate>Tue, 27 Mar 2007 00:47:52 +0000</pubDate>
		<dc:creator>Diogo Santos</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://diogosantos.com/2007/03/26/48-maneiras-de-impressionar-seus-amigos/</guid>
		<description><![CDATA[O 24 ways traz 48 dicas dividas em duas edições anuais do site - 2005 e  2006. Você pode navegar pelas edições nos links que ficam na parte superior-direita do site. A maioria das dicas abordam tópicos como AJAX, CSS, usabilidade, programação cross-browser, tableless e uso correto de cores.

A dica que mais chamou minha atenção na época que conheci [...]]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://24ways.org/">24 ways</a> traz 48 dicas dividas em duas edições anuais do site - <a href="http://24ways.org/2005/">2005</a> e  <a href="http://24ways.org/2006/">2006</a>. Você pode navegar pelas edições nos links que ficam na parte superior-direita do site. A maioria das dicas abordam tópicos como AJAX, CSS, usabilidade, programação cross-browser, tableless e uso correto de cores.</p>
<p><span id="more-24"></span></p>
<p>A dica que mais chamou minha atenção na época que conheci o site e que realmente impressionou meus amigos e clientes foi a <a href="http://24ways.org/2005/edit-in-place-with-ajax">&#8220;Edit-in-Place  with AJAX&#8221;</a>. Esta dica foi muito útil para editar pequenos dados diretamente numa listagem, agilizando o trabalho dos clientes.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diogosantos.com/2007/03/48-maneiras-de-impressionar-seus-amigos/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
