<?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"
	>

<channel>
	<title>Rafael Marin</title>
	<atom:link href="http://rafaelmarin.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://rafaelmarin.net</link>
	<description>Desenvolvimento e padrões Web</description>
	<pubDate>Wed, 02 Jul 2008 13:40:57 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>PHPolêmico e o constante crescimento na programação</title>
		<link>http://rafaelmarin.net/php-polemico/</link>
		<comments>http://rafaelmarin.net/php-polemico/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 13:40:57 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Produtividade]]></category>

		<guid isPermaLink="false">http://rafaelmarin.net/?p=148</guid>
		<description><![CDATA[O Julio Greff mostrou sua opinião ácida sobre PHP, e isso gerou uma polêmica gigantesca. Na verdade a discussão foi além da opinião de cada um sobre a linguagem, e o pessoal - com certa ignorância - colocou na roda argumentos ridículos, como idade e &#8220;amadorismo&#8221;. Cada um tem o direito sim de ter uma [...]]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://juliogreff.blog.br/frameworks-por-um-php-menos-ruim/">Julio Greff mostrou sua opinião ácida sobre PHP</a>, e isso gerou uma polêmica gigantesca. Na verdade a discussão foi além da opinião de cada um sobre a linguagem, e o pessoal - com certa ignorância - colocou na roda argumentos ridículos, como idade e &#8220;amadorismo&#8221;. Cada um tem o direito sim de ter uma opinião e poder expressá-la, ainda mais em seu blog. Nunca achei que blogs fossem espaços democráticos, mas lá no blog dele a tolerância foi grande.</p>
<p>Enfim, o assunto não é esse. Mesmo tendo mudado de título definitivamente (de quase-programador para aprendiz-de-designer), não nego a importância da programação para o Web designer. Você tem sim que saber um pouco de XHTML e CSS, mas um pouco de programação não faz mal. Não é questão de prioridades, de se focar num assunto específico, isso é bobagem. O profissional deve ser bom sim no que faz, mas sempre deve estar aberto e ter conhecimento do trabalho do colega ao lado.</p>
<p>Eis que então, meus amigos, como é de conhecimento de vocês, eu já tenho <a href="http://rafaelmarin.net/eu-quero-um-framework/">alguma experiência básica</a> com <a href="http://cakephp.org">CakePHP</a>. Começamos a utilizá-lo na agência onde eu e o Julio trabalhamos, e eu realmente fiquei surpreso com o grande potencial tanto do framework quanto do PHP. Li por várias vezes a documentação, a API, e as entranhas do Cake, e vi como o funcionamento é simples.</p>
<p>PHP, de fato, não é uma linguagem ruim. Eu digo que não gosto da sintaxe do PHP, pois prefiro a do Ruby, mas nem por isso odeio o PHP. Essa é a minha opinião. Quanto mais eu conheço a linguagem, mais estou gostando dela. Até pouco tempo utilizava PHP4, mas em 2008 <a href="http://rafaelmarin.net/cara-orientacao-a-objetos-e-tao-divertido/">comecei a entender toda a lógica por traz da orientação a objetos</a>. Isso me abriu as portas para entender esse potencial do PHP.</p>
<p>PHP, apesar da sintaxe não tão legal (<strong>opinião pessoal</strong>), está bastante madura, a julgar pela quantidade de extensões existentes, sem falar na grande abrangência desta linguagem.</p>
<p>Como eu <a href="http://rafaelmarin.net/vamos-falar-de-produtividade/">havia dito</a>, independente da linguagem cada um tem que procurar ser mais produtivo. Talvez eu não seja mais produtivo que o pessoal que comentou lá (cujo tom de arrogância de alguns faz parecer que estes sabem tudo de PHP), mas eu sei que estou amadurecendo e que estou me tornando produtivo se comparado a mim mesmo há um ano. Inclusive no design.</p>
<p>Espero não entrar mais nessas discussões, pois já disse aqui várias vezes o que penso e que estou me distanciando um pouco da programação pois - <strong>salvas excessões</strong> - há muita arrogância e ignorância entre os programadores.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.net/php-polemico/feed/</wfw:commentRss>
		</item>
		<item>
		<title>O design e o Web designer</title>
		<link>http://rafaelmarin.net/o-design-e-o-web-designer/</link>
		<comments>http://rafaelmarin.net/o-design-e-o-web-designer/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 14:39:04 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://rafaelmarin.net/?p=147</guid>
		<description><![CDATA[Muita, muita gente se considera Web designer. Utilizar um software, como o Fireworks, é fácil e acessível a qualquer um, mas infelizmente, meus amigos, não torna ninguém designer. Desenho também, é uma arte incrível, mas infelizmente também não é design. Alguém de vocês já teve a curiosidade de saber o que significa a palavra design? [...]]]></description>
			<content:encoded><![CDATA[<p>Muita, muita gente se considera Web designer. Utilizar um software, como o Fireworks, é fácil e acessível a qualquer um, mas infelizmente, meus amigos, não torna ninguém <em>designer</em>. Desenho também, é uma arte incrível, mas infelizmente também não é design. Alguém de vocês já teve a <strong>curiosidade</strong> de saber o que significa a palavra <strong>design</strong>? Design, segundo nosso dicionário, significa plano, planta, <em>pattern</em>, designação, dar forma e boa aparência, leiautar.</p>
<p>Como eu estou decidido que quero seguir na carreira de designer, já estou tomando providências. Trabalho com design e, mais do que isso, estudo design. Só acho ridículo - e confesso com vergonha que já fui assim - que muitos que se dizem designers não estudam e não se interessam pelo estudo do design e da arte.</p>
<h3>A ferramenta não faz o designer</h3>
<p>Você pode ser o ninja do Photoshop, saber tudo de Fireworks e Flash. Mas nada disso é válido se você não souber como utilizar essas ferramentas para tornar o seu design efetivo.</p>
<h3>Design é função</h3>
<p>É isso o que difere design de arte. Você faz um trabalho de arte, e ele pode ser tão subjetivo, tão abstrato, que ninguém pode entendê-lo. Seu design <strong>não pode</strong> ser assim. E arte só é design quando esta arte for aplicada. Você deve fazer com que o seu design - ou melhor, a mensagem que você quer passar - seja compreendido pelo seu público-alvo, pelo seu consumidor. Você faz design para vender seu produto ou idéia, não pela simples expressão do seu eu interior. O design Web possui técnicas que, quando bem dominadas, tornam seu serviço, site ou campanha na Web realmente funcional.</p>
<p>Claro, existe uma liberdade gigante na criação, e prova disso é a enorme variedade de peças distribuídas no mundo, mas perceba que os projetos de sucesso seguem algumas orientações básicas, entre elas o alinhamento racional, a escolha da boa tipografia e a harmonia de cores.</p>
<h3>Web 2.0: uma nova abordagem ao design na Web</h3>
<p>Por muitos anos, a abordagem que vigorou pelos então designers de Web foi o design centrado na utilização, na tarefa. Nesta abordagem, todo o design era focado nos objetivos e tarefas que envolviam um produto ou serviço on-line, sem preocupações com o que o usuário realmente precisava e conseguia utilizar. Com o estouro da bolha uma nova tendência se fortaleceu, e os novos serviços - chamados &#8220;2.0&#8243; - seguiam (e ainda vêm seguindo) a abordagem do <strong>design centrado no usuário (UCD)</strong>, que se preocupa diretamente com as limitações e capacidades do usuário final.</p>
<p>O design centrado no usuário foi um marco para o design da Web por dar o merecido valor ao usuário final. Nesta abordagem de design, os designers de Web não apenas projetam interfaces de acordo com o que consideram melhor para o usuário final, mas testam e avaliam a efetiva funcionalidade de suas telas. Isto ocorre pois os designers possuem experiências que divergem das do usuário final, o que influencia também na maneira com que fazem design para Web. Assim, o que é simples e intuitivo para eles pode não ser para o grande público.</p>
<p>São quatro os elementos principais do design centrado no usuário: visibilidade, acessibilidade, legibilidade e linguagem.</p>
<h4>Visibilidade</h4>
<p>A visibilidade ajuda o usuário a construir um <strong>modelo mental</strong>. O modelo mental ajuda o usuário a formar uma imagem sobre o funcionamento do seu serviço, e também prever os efeitos das suas ações. Eu já escrevi sobre isso. Seu site deve ter navegação clara, e o usuário deve saber exatamente onde está, para onde pode ir e por onde já passou.</p>
<h4>Acessibilidade</h4>
<p>Não são apenas os cegos e pessoas com dificuldades motoras que são o alvo da acessibilidade de um site. No design de interação, todos os usuário possuem suas particularidades e são, pois alvo da acessibilidade. Cada usuário possui - devido às experiências anteriores - um modelo mental de como sites geralmente funcionam. Esperam um logo no canto superior, navegação logo abaixo ou em barra lateral, e busca no canto superior direito.</p>
<p>Quando algum desses itens não está presente, o usuário pode se sentir desorientado. Assim, um projeto de design na Web, geralmente na forma de um site, deve manter sempre claras e visíveis as informações básicas que o usuário deve ter. Além disso, o conteúdo deve ser escrito de maneira a tornar fácil a leitura e escaneamento do texto, pois o usuário provavelmente não lerá o conteúdo todo para encontrar o que precisa.</p>
<h4>Legibilidade</h4>
<p>Nunca esqueça que o usuário está em seu site em busca de conteúdo, e que geralmente este se encontra em forma de texto. Tornar esse texto legível e escaneável, então, é o mínimo que você pode fazer. Lembre-se de dar preferência às fontes sem serifas, que são mais legíveis em monitores do que as serifadas, pois a resolução dos monitores é muito inferior à dos livros impressos. Além disso, a relação das cores do texto com a cor do fundo é importante para a legibilidade, pois se o texto for pouco contrastante fica difícil a leitura.</p>
<h4>Linguagens</h4>
<p>Algo que está escrito em todos os livros de usabilidade que já li: use terminologias comuns, não específicas e nem aquelas que fazem sentido apenas a um grupo específico. Ou seja, &#8220;marketês&#8221; pode não fazer sentido para a grande maioria. Além disso, se a sua empresa utiliza nomenclaturas internas (jargões) para produtos e seções do site que diferem do vocabulário esperado pelo usuário, pense novamente.</p>
<h3>Por onde começo?</h3>
<p>Resumindo: para ser um Web designer, você precisa estudar design. Se não souber nada de tipografia, teoria de cores, alinhamento e posicionamento, semiótica, estética e comportamento humano, você não está nem perto de ser um designer, quem dirá um Web designer. Li esses dias no <a href="http://www.plurk.com/user/rafaelmarin">Plurk</a> alguém que disse &#8220;ainda bem que escolhi design, assim não preciso ler tanto&#8221;.</p>
<p>Muito pelo contrário, meus colegas. Leitura é essencial em qualquer área, o conhecimento é muito, e livros são uma ótima maneira de adquiri-lo. Se você freqüenta uma universidade, sua biblioteca deve ter bons títulos sobre o assunto.</p>
<h3>Conclusão</h3>
<p>As ferramentas não fazem um bom designer, e um Web designer não é um Web designer se não souber a teoria básica sobre design. Vejo que falta em muita gente a vontade de estudar e aprender design. Talento é importante e conta, mas se você tem talento e não possui técnica e teoria, você é uma pedra preciosa não lapidada. Estude, estude e estude, e você brilhará.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.net/o-design-e-o-web-designer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Considerações importantes sobre a usabilidade das páginas iniciais</title>
		<link>http://rafaelmarin.net/consideracoes-importantes-sobre-a-usabilidade-das-paginas-iniciais/</link>
		<comments>http://rafaelmarin.net/consideracoes-importantes-sobre-a-usabilidade-das-paginas-iniciais/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 13:06:15 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
		
		<category><![CDATA[Usabilidade]]></category>

		<category><![CDATA[homepages]]></category>

		<category><![CDATA[jakob nielsen]]></category>

		<guid isPermaLink="false">http://rafaelmarin.net/?p=142</guid>
		<description><![CDATA[Estes são alguns pontos que considero importantes, em relação à usabilidade das páginas iniciais. Alguns pontos foram extraídos do Homepage Usability: 50 websites deconstructed, livro interessantíssimo de Jakob Nielsen e Marie Tahir sobre a usabilidade das páginas iniciais.
Sua página inicial é o ponto de partida para todo o site
Nunca tire isso da mente. As páginas [...]]]></description>
			<content:encoded><![CDATA[<p>Estes são alguns pontos que considero importantes, em relação à usabilidade das páginas iniciais. Alguns pontos foram extraídos do <strong>Homepage Usability: 50 websites deconstructed</strong>, livro interessantíssimo de Jakob Nielsen e Marie Tahir sobre a usabilidade das páginas iniciais.</p>
<h3>Sua página inicial é o ponto de partida para todo o site</h3>
<p>Nunca tire isso da mente. As páginas iniciais devem prover informações claras sobre o que é o site, o que o usuário encontrará no site e amostras de conteúdos importantes. As páginas testadas no livro de Nielsen possuem, em média, 770 pixels de largura e até três telas de comprimento (em resolução 1024X768). Tome cuidado para não desperdiçar espaço na sua página inicial com conteúdo ambíguo.</p>
<h3>Se seu site possui busca, coloque-a na página inicial</h3>
<p>Usuários começam a navegar em seu site ou através de links, ou através da busca. Sobre a sua busca funcionar corretamente ou não, fica para um próximo artigo, mas ela deve sim estar presente na página inicial, pelo fato de ser um dos grandes pontos de partida para a navegação. Segundo as estatísticas das análises de Nielsen, o lugar mais apropriado para colocar sua caixa de busca é no canto superior direito. Sua caixa deve ter, no mínimo, 27 caracteres de extensão, para permitir que os usuários consigam rever o que digitaram, e o botão mais apropriado deve ter a palavra &#8220;Buscar&#8221;.</p>
<h3>Comunique a proposta de seu site</h3>
<p>Seja claro sobre o que sua empresa faz e para que serve o seu site, logo de cara. Para tal use algum texto introdutório curto e sem &#8220;marketês&#8221;. Além disso, aposte em uma <em>tagline</em> clara e objetiva, que seja curta mas que explique exatamente a proposta do seu site.</p>
<h3>Não ofereça formulários de registro sem dar vantagens</h3>
<p>É interessante e importante que seu usuário registre-se no seu site. Informações de registro, como um link, devem estar disponíveis logo na página inicial. Contudo, é importante citar vantagens de ser um usuário registrado naquele momento, e não apenas um link do tipo &#8220;Clique para Registrar&#8221;. Ofereça conteúdo mais atrativo, como  &#8220;Registre-se agora e ganhe descontos nos produtos&#8221;, que explicita realmente alguma vantagem em efetuar um cadastro.</p>
<h3>Sobre as boas-vindas</h3>
<p>Dar as boas vindas aos usuários se mostrou não tão efetivo, a menos que acompanhado do nome da pessoa. Dizer &#8220;Seja bem vindo&#8221;, apenas, não traz vantagem alguma para a simpatização do usuário com seu site. Se ele for registrado e estiver logado, aí sim vale utilizar uma mensagem customizada como &#8220;Olá Rafael, seja bem vindo&#8221;.</p>
<h3>Atenção aos gráficos animados</h3>
<p>Os usuários, ao longo dos anos, desenvolveram um instinto inigualável para evitar anúncios. Eles têm associado os <em>banners</em> à propaganda e hoje muitos possuem uma certa &#8220;cegueira&#8221; aos anúncios. O problema então é que se você tiver algo em sua página que lembre um banner, há grandes chances de que esta seção seja descartada pelo usuário. Preste atenção, então, ao uso de gráficos animados e mesmo gráficos coloridos e chamativos demais, principalmente quando estiverem em formato de anúncio. Eles podem ser totalmente ignorados pelo visitante.</p>
<p>Estas são algumas conclusões que eu tirei da leitura do livro de Jakob e Marie. São muitas as análises feitas durante o livro, todas muito bem justificadas. Vale ressaltar que trata-se de um livro de 2002, e mesmo que algumas falhas na usabilidade permaneçam, como a Web está mudando e o usuário está mudando, precisamos ter certo discernimento que nem tudo que Nielsen disse há 6 anos é válido hoje.</p>
<p>Além disso, Jakob Nielsen é radical em sua opinião sobre usabilidade. Fica com você avaliar o que mudou, o que não mudou, e quanto radicalismo você pretende impor à sua criação. De qualquer maneira, todos os livros que li de Nielsen até então são muito esclarecedores e abriram a minha mente para o lado crítico que precisamos ter.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.net/consideracoes-importantes-sobre-a-usabilidade-das-paginas-iniciais/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CodeCast 5: Frameworks Web</title>
		<link>http://rafaelmarin.net/codecast-5/</link>
		<comments>http://rafaelmarin.net/codecast-5/#comments</comments>
		<pubDate>Sun, 15 Jun 2008 20:14:41 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
		
		<category><![CDATA[Podcast CodeCast]]></category>

		<category><![CDATA[podcast]]></category>

		<guid isPermaLink="false">http://rafaelmarin.net/?p=145</guid>
		<description><![CDATA[
Desconsiderando o fato do grande atraso na publicação do episódio, está no ar o quinto podcast de CodeCast! Nesta edição, temos um convidado especial, Jader Rubini, que conversou conosco sobre linguagens de programação e frameworks Web, CakePHP para PHP, Ruby on Rails para Ruby e Django para Python, e jQuery como framework de Javascript.
Esperamos realmente [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://codecast.rafaelmarin.net"><img class="alignnone size-full wp-image-146" title="CodeCast 5 sobre frameworks" src="http://rafaelmarin.net/wp-content/uploads/2008/06/codecast5.gif" alt="" width="500" height="171" /></a></p>
<p>Desconsiderando o fato do grande atraso na publicação do episódio, está no ar o quinto podcast de CodeCast! Nesta edição, temos um convidado especial, <a href="http://jaderubini.wordpress.com">Jader Rubini</a>, que conversou conosco sobre linguagens de programação e <em>frameworks</em> Web, CakePHP para PHP, Ruby on Rails para Ruby e Django para Python, e jQuery como framework de Javascript.</p>
<p>Esperamos realmente que vocês gostem, pois o papo rendeu e o podcast está comprido (56 minutos). Falamos também do Plurk, serviço de <em>microblogging</em>, e também respondemos aos e-mails dos ouvintes. Desta vez está pesando 39MB, mas vale a pena.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.net/codecast-5/feed/</wfw:commentRss>
		</item>
		<item>
		<title>E com vocês, Techzilla</title>
		<link>http://rafaelmarin.net/e-com-voces-techzilla/</link>
		<comments>http://rafaelmarin.net/e-com-voces-techzilla/#comments</comments>
		<pubDate>Sat, 14 Jun 2008 00:24:53 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
		
		<category><![CDATA[Portfolio]]></category>

		<category><![CDATA[techzilla]]></category>

		<guid isPermaLink="false">http://rafaelmarin.net/?p=143</guid>
		<description><![CDATA[Desculpem a falta de atualização, mesmo. É que é fim de semestre na faculdade, sabem como é.

Mas hoje estou aqui pra anunciar mais um trabalho que estive/estou envolvido de umas semanas para cá. É o blog de tecnologia TechZilla. Fiz o redesign do blog e agora, como serviço periódico, estarei por lá postando artigos legais [...]]]></description>
			<content:encoded><![CDATA[<p>Desculpem a falta de atualização, mesmo. É que é fim de semestre na faculdade, sabem como é.</p>
<p><img title="Techzilla" src="http://rafaelmarin.net/wp-content/uploads/2008/06/techzilla.jpg" alt="TechZilla" /></p>
<p>Mas hoje estou aqui pra anunciar mais um trabalho que estive/estou envolvido de umas semanas para cá. É o blog de tecnologia <a href="http://techzilla.com.br/">TechZilla</a>. Fiz o <em>redesign</em> do blog e agora, como serviço periódico, estarei por lá postando artigos legais sobre tecnologia. Desde já agradeço pela oportunidade ao Julio Câmara, que me convidou para esta tarefa. Me sinto muito feliz de saber que divido um blog com gente grande da blogosfera.</p>
<p>A única coisa que posso dizer é que o conteúdo é bem legal, e que vocês podem descobrir mais entrando e conhecendo nosso conteúdo. <a href="http://techzilla.com.br/">www.techzilla.com.br</a>.</p>
<p>E voltamos agora com nossa programação normal.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.net/e-com-voces-techzilla/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Vamos falar de produtividade</title>
		<link>http://rafaelmarin.net/vamos-falar-de-produtividade/</link>
		<comments>http://rafaelmarin.net/vamos-falar-de-produtividade/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 19:51:52 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
		
		<category><![CDATA[Produtividade]]></category>

		<category><![CDATA[cake]]></category>

		<category><![CDATA[django]]></category>

		<category><![CDATA[frameworks]]></category>

		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://rafaelmarin.net/?p=141</guid>
		<description><![CDATA[O Júlio iniciou uma discussão que merece mais que um simples comentário. Estamos passando por uma série de mudancinhas no cotidiano que influenciam diretamente na nossa produtividade. Eu, Rafael, estou caminhando em direção ao design, estudando teoria, buscando muita inspiração. Mas, mesmo assim, continuo amando a dobradinha XHTML+CSS e um pouco de programação.
Mesmo trabalhando com [...]]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://juliogreff.blog.br">Júlio</a> iniciou <a href="http://juliogreff.blog.br/comodismo-vs-inovacao/">uma discussão</a> que merece mais que um simples comentário. Estamos passando por uma série de mudancinhas no cotidiano que influenciam diretamente na nossa produtividade. Eu, Rafael, estou caminhando em direção ao <em>design</em>, estudando teoria, buscando muita inspiração. Mas, mesmo assim, continuo amando a dobradinha XHTML+CSS e um pouco de programação.</p>
<p>Mesmo trabalhando com <em>design</em>, a gente acaba fazendo um pouco de código também, é bom e faço questão de continuar fazendo. Vejo meu progresso no <em>design</em> diariamente, a cada trabalho entregue, a cada cliente satisfeito. Mas na programação eu estive um pouco relaxado nos últimos anos. Fiz um bom trabalho com Padrões Web, e hoje domino XHTML e CSS. Mas com PHP era diferente.</p>
<p>Eu já tinha <a href="http://rafaelmarin.net/eu-quero-um-framework/">começado a estudar CakePHP</a> um tempinho atrás. A idéia do <em>framework</em> era ótima, mas eu não entendia como ele funcionava, pois todo o código é orientado a objetos. Esse ano resolvi estudar um pouco sobre os conceitos da orientação a objetos e também um pouco da organização de software seguindo o <em>pattern</em> MVC. Foi aí que Ruby on Rails e CakePHP começaram a fazer muito sentido para mim. São ambos frameworks que, no meu ponto de vista, são muito parecidos no funcionamento.</p>
<p>A questão não é se eu prefiro Rails, Django ou Cake, mas a questão é que eu estou usando um <em>framework</em>. Ponto. Depois de assistir algumas palestras do <a href="http://blog.elcio.com.br">Elcio</a>, a gente aprende que precisa mesmo ser mais produtivo, e que uma das melhores maneiras é usar um <em>framework</em>, ou criar o seu próprio. Estou me distanciando um pouco da programação ultimamente; reconheço. Mas mesmo assim, toda esse estudo tem valido a pena.</p>
<p>Acho interessante, mais do que usar um framework criado por outros, criar o seu próprio. Ou sua biblioteca, que seja. Eu já tinha percebido que reinventava a roda a cada novo site que começava, e já tinha feito uma pequena biblioteca padrão para os novos sites. Isso é bem bacana, evita bastante retrabalho.</p>
<h2>Próximo passo: Controle de versão</h2>
<p>No início é complicado, e parece trabalhoso. Pode até ser, mas estamos perseverantes. Queremos tentar usar controle de versão pois, se não fosse bom, tanta gente não estaria falando tão bem. Não me lembro de ter perdido arquivos por conta de trabalho em equipe, mas já sofri com código espalhado em vários lugares. Por isso, é interessante pensar na implantação do controle de versão do código.</p>
<h2>Conclusão: Não seja preguiçoso!</h2>
<p>Permanecer no <em>status quo</em> é fácil, muito cômodo. Anime-se, desenvolvedor! Tanto comodismo é prejudicial à produtividade, e quem ainda nem se importa com isso não tem muito futuro. A programação se torna divertida quando há organização, pois tomando certas medidas para aumento de produtividade, o trabalho se torna muito mais fácil.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.net/vamos-falar-de-produtividade/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sim Sim Sim! CodeCast número 4!</title>
		<link>http://rafaelmarin.net/sim-sim-sim-codecast-numero-4/</link>
		<comments>http://rafaelmarin.net/sim-sim-sim-codecast-numero-4/#comments</comments>
		<pubDate>Thu, 15 May 2008 22:29:37 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
		
		<category><![CDATA[Podcast CodeCast]]></category>

		<category><![CDATA[codecast]]></category>

		<category><![CDATA[podcast]]></category>

		<guid isPermaLink="false">http://rafaelmarin.net/?p=137</guid>
		<description><![CDATA[
Não há hoje, em termos de Web, software mais polêmico que o Adobe Flash. Neste episódio do CodeCast discutimos sobre ele, e sobre como foi nossa experiência com ele. Falamos da história do software, dos prós e contras, de ActionScript e do Silverlight, a tentativa da Microsoft de desbancar o Flash. Além disso, lemos alguns [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://codecast.rafaelmarin.net"><img class="alignnone size-full wp-image-138" title="O CodeCast 4 é sobre Flash!" src="http://rafaelmarin.net/wp-content/uploads/2008/05/codecast4.png" alt="O CodeCast 4 é sobre Flash!" width="500" height="171" /></a></p>
<p>Não há hoje, em termos de Web, software mais polêmico que o Adobe Flash. Neste episódio do CodeCast discutimos sobre ele, e sobre como foi nossa experiência com ele. Falamos da história do <em>software</em>, dos prós e contras, de ActionScript e do Silverlight, a tentativa da Microsoft de desbancar o Flash. Além disso, lemos alguns comentários dos ouvintes, e no final dei uma dica de um <em>software</em> bem bacana.</p>
<p>Nesta edição o arquivo pesa 14MB, e possui duração média de 30 minutos. Para baixar acesse o site do <a href="http://codecast.rafaelmarin.net">CodeCast</a>. Espero que goste!</p>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.net/sim-sim-sim-codecast-numero-4/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dicas avançadas para otimizar seu CSS</title>
		<link>http://rafaelmarin.net/dicas-avancadas-para-otimizar-seu-css/</link>
		<comments>http://rafaelmarin.net/dicas-avancadas-para-otimizar-seu-css/#comments</comments>
		<pubDate>Sat, 10 May 2008 20:16:56 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<category><![CDATA[melhore-seu-css]]></category>

		<guid isPermaLink="false">http://rafaelmarin.net/?p=131</guid>
		<description><![CDATA[Caso tenha perdido, leia Dicas para melhorar seu CSS, que contém a introdução e dicas básicas de otimização das folhas de estilo em cascata.
Você sempre pode ir além, é claro. Existem mais maneiras, tão simples quanto as outras, de escrever código CSS ainda mais estruturado. As dicas que seguem são especialmente dirigidas àqueles que mantêm [...]]]></description>
			<content:encoded><![CDATA[<p>Caso tenha perdido, leia <a href="http://rafaelmarin.net/melhore-seu-css/">Dicas para melhorar seu CSS</a>, que contém a introdução e dicas básicas de otimização das folhas de estilo em cascata.</p>
<p>Você sempre pode ir além, é claro. Existem mais maneiras, tão simples quanto as outras, de escrever código CSS ainda mais estruturado. As dicas que seguem são especialmente dirigidas àqueles que mantêm grandes quantidades de código, aos que atualizam seus CSS&#8217;s com freqüência, ou àqueles que trabalham em equipe - onde todos podem fazer eventuais alterações.</p>
<p>Grandes sites, que conseqüentemente possuem folhas de estilo maiores, exigem certa modularidade em todo o processo de desenvolvimento. Do Javascript ao PHP, do HTML ao banco de dados, passando (é claro) pelo CSS, o código inteiro carece de constante atualização. Como otimizar, então, nossos estilos para que nossa vida seja mais fácil?</p>
<h2>Nada como código comentado</h2>
<p>Use e abuse dos comentários para descrever seletores complexos, e para organizar todo seu CSS de maneira geral.</p>
<h2>Zerar os estilos</h2>
<p>Cada browser faz sutis modificações na maneira com que os estilos são renderizados. Para evitar a dor de cabeça posterior, algo interessante de se fazer ainda no início de desenvolvimento é o <a href="http://rafaelmarin.net/reset-de-estilos/"><em>reset</em> de estilos</a>, que já falei sobre anteriormente.</p>
<h2>Crie estilos padrão para elementos comuns</h2>
<p>Seus elementos <code>a</code>, cabeçalhos <code>h1</code>, <code>h2</code>, <code>h3</code>, <code>h4</code>, <code>h5</code>, <code>h6</code>, parágrafos <code>p</code>, listas não-ordenadas <code>ul</code> e ordenadas <code>ol</code> - entre outros - geralmente possuem exatamente a mesma formatação em todo o site. Por isso, você pode aplicar certas propriedades diretamente ao elemento. Por exemplo, se seus links são sempre verdes, não coloque um <code>color: green;</code> em cada lugar que os links aparecem, como em <code>#sidebar a, #post a, #header a, #footer a, .caixa a { color: green; }</code>.</p>
<p>Prefira definir um estilo padrão, como <code>a { color:green }</code>, e então faça modificações apenas onde for necessário. Isso evita que seu código fique muito ambíguo, o que torna difícil a manutenção, pois se você determina a mesma cor para os links dentro de diferentes elementos, a cada modificação serão vários lugares a serem alterados.</p>
<p>Com os cabeçalhos, de <code>h1</code> a <code>h6</code>, você pode e deve definir os tamanhos, pois a medida padrão para os cabeçalhos pode mudar um pouco de acordo com o browser.</p>
<h2>Crie um índice com o conteúdo do arquivo</h2>
<p><img src="http://rafaelmarin.net/wp-content/uploads/2008/05/otimizacaocss-toc.gif" alt="Otimização CSS - Table of Contents" /></p>
<p>Pode ser uma boa, caso você não tenha o costume de identar o código. Defina uma <acronym title="Table of Contents">TOC</acronym> no início do documento, utilizando texto comentado, e então insira as marcações sinalizando o início de uma nova seção ao longo do código. Se isso ajuda ou não, depende de cada um. Só um código bem identado às vezes já vale mais do que esta estruturação com índice.</p>
<h2>Separe seu código CSS em arquivos diferentes</h2>
<p><img class="alignnone size-full wp-image-133" title="Otimização CSS - Incluindo arquivos CSS" src="http://rafaelmarin.net/wp-content/uploads/2008/05/otimizacaocss-include.gif" alt="" width="500" height="83" /></p>
<p>Se você optar, pode separar cada pedaço do seu CSS em outros arquivos, e então chamá-los em um global. Isso é ótimo na manutenção, já que você sempre saberá exatamente onde procurar cada trecho de código, e o encontrará mais fácil pois cada arquivo não será tão extenso.</p>
<p><strong>Importante:</strong> Leve sempre em consideração a performance, a velocidade de carregamento. Quanto mais arquivos forem chamados, mais requisições HTTP serão necessárias e mais tempo levará para o carregamento completo. Use esta dica com moderação.</p>
<h2>Otimize seu CSS automaticamente com PHP</h2>
<p>Chegamos na dica interessante do dia. Você provavelmente, em busca de otimização e melhora de performance, deve ter a sua própria maneira de otimizar o CSS antes de enviá-lo ao site. Existem inúmeros sites, como o CSS Cleaner, que otimiza o código para você, só que a cada alteração é necessário passar todo o código pelo otimizador novamente. Ou então, alguns preferem escrever todas as propriedades na mesma linha, <em>etc, etc</em>. Queremos uma boa manutenção, mas não podemos abrir mão da performance.</p>
<p>Trouxe um macete bem legal, mas é só para quem usa PHP. Adicione ao arquivo .htaccess da pasta dos seus arquivos CSS o seguinte código:</p>
<p><code><br />
&lt;Files otimizar.css&gt;</code></p>
<p><code>SetHandler  application/x-httpd-php</code></p>
<p><code>&lt;/Files&gt;</code></p>
<p>Nesta mesma pasta, crie um arquivo chamado <code>otimizar.css</code>, e inclua nele o seguinte código.</p>
<p><code>&lt;?php</code><br />
<code><br />
header('Content-type: text/css');</code></p>
<p><code>ob_start("comprimir");</code><br />
<code><br />
function comprimir($buffer){</code><br />
<code>$buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!&#8217;, &#8221;, $buffer);</code><br />
<code><br />
$buffer = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $buffer);</code></p>
<p><code>return $buffer;</code></p>
<p><code>}</code></p>
<p><code>include($_GET['file'].&#8221;.css&#8221;);</code><br />
<code><br />
ob_end_flush();</code></p>
<p><code>?&gt;</code></p>
<p>A partir de então, passe a chamar seus arquivos CSS pelo endereço otimizar.css?file=<em>nome_do_css</em>. A alteração no arquivo .htaccess tornará possível a execução de scripts PHP no arquivo otimizar.css, e o arquivo otimizar.css removerá espaços, comentários e quebras de linha no seu arquivo, retornando um CSS compactado do jeito que você gosta. <strong>Este código não é de minha autoria, mas como não lembro mais de onde tirei, não posso dar os devidos créditos.</strong></p>
<p>Espero que tenham gostado, pessoal. Deste e do primeiro <a href="http://rafaelmarin.net/melhore-seu-css/">artigo sobre Otimização de CSS</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.net/dicas-avancadas-para-otimizar-seu-css/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dicas para melhorar seu CSS</title>
		<link>http://rafaelmarin.net/melhore-seu-css/</link>
		<comments>http://rafaelmarin.net/melhore-seu-css/#comments</comments>
		<pubDate>Wed, 07 May 2008 13:21:22 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<category><![CDATA[melhore-seu-css]]></category>

		<guid isPermaLink="false">http://rafaelmarin.net/?p=127</guid>
		<description><![CDATA[Você provavelmente é bem organizado e toma conta direitinho do seu código PHP, Ruby, Python, ASP(?). Arquivos de classes organizados em pastas, todos com nomenclatura extremamente lógica. Seu HTML é impecavelmente semântico, e seu Javascript brilha, de tão bem estruturado. Agora, como anda a saúde das suas folhas de estilo?
CSS é, na maioria dos casos, [...]]]></description>
			<content:encoded><![CDATA[<p>Você provavelmente é bem organizado e toma conta direitinho do seu código PHP, Ruby, Python, ASP(?). Arquivos de classes organizados em pastas, todos com nomenclatura extremamente lógica. Seu HTML é impecavelmente semântico, e seu Javascript brilha, de tão bem estruturado. Agora, como anda a saúde das suas folhas de estilo?</p>
<p>CSS é, na maioria dos casos, a ovelha negra das linguagens no que se refere à manutenção. Já aconteceu com você de ter que mudar algum detalhe nos estilos de um site meses depois de ele ter sido concluído e custar um pouco até achar os seletores e propriedades corretas? Ou então, de criar seletores ambíguos, apenas com nomes de classe diferentes, e quando você precisa fazer alterações precisa mexer em mais de um lugar? Você ultimamente tem se perdido em centenas (milhares?) de linhas de código CSS?</p>
<p>Faça um esforço, e traga a organização que você já possui com seus <em>scripts</em> para a sua folha de estilo em cascata. Não é dificíl, pois as orientações você provavelmente já conhece e aplica, quase naturalmente. São algumas das sugestões que eu vi por aí e outras que eu mesmo sugiro a você.</p>
<h2>Identação</h2>
<p><img title="Melhore seu CSS - Identação do CSS" src="http://rafaelmarin.net/wp-content/uploads/2008/05/melhore-css-identacao.gif" alt="Melhore seu CSS - Identação do CSS" /></p>
<p>Mantenha seu código CSS identado de acordo com a hierarquia que os seletores representam. No exemplo acima, <code>#topo ul li</code> pertence à <code>#topo ul</code>, e este pertence à <code>#topo</code> - assim como <code>#topo img</code> também pertence à <code>#topo</code>. Repare então que cada bloco de código recebeu uma identação de acordo com seu nível hierárquico. Identar seu CSS é importante justamente para visualizar facilmente a estrutura do seu site, sem necessariamente ter que ver o HTML todo novamente.</p>
<h2>Ordem alfabética nas propriedades</h2>
<p><img title="Melhore seu CSS - Ordem alfabética nas propriedades" src="http://rafaelmarin.net/wp-content/uploads/2008/05/melhore-css-alfabetica.gif" alt="" /></p>
<p>Alguns de vocês podem julgar esta dica um tanto inútil. Na hora de escrever o código pela primeira vez, colocar as propriedades em ordem alfabética pode ser um pouco chato, cansativo. Mas se você reparar, na hora de fazer manutenção, você quase sempre fica procurando as propriedades no meio da confusão de caracteres. Para mim faz bastante diferença colocá-las nesta ordem, já deixa o código pronto para o futuro.</p>
<h2>Agrupamento das propriedades</h2>
<p><img title="Melhore seu CSS - Agrupamento das propriedades" src="http://rafaelmarin.net/wp-content/uploads/2008/05/melhore-css-agrupamento.gif" alt="Melhore seu CSS - Agrupamento das propriedades" /></p>
<p>Os seletores <code>#certo</code> e <code>#errado</code> já dizem tudo. Você pode e deve resumir, por razões óbvias, a declaração das propriedades. Acredite, os dois blocos de código fazem <strong>exatamente</strong> a mesma coisa.</p>
<p>Na continuação desta série, veremos dicas avançadas para otimizar e estruturar seu CSS. Lembre-se sempre que todo esforço é sempre recompensado, e você é quem ganha quando precisar fazer manutenção e encontrar um código estruturado e intuitivo.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.net/melhore-seu-css/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Minha nossa, a audiência está grande!</title>
		<link>http://rafaelmarin.net/minha-nossa-a-audiencia-esta-grande/</link>
		<comments>http://rafaelmarin.net/minha-nossa-a-audiencia-esta-grande/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 15:07:22 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
		
		<category><![CDATA[Cotidiano]]></category>

		<guid isPermaLink="false">http://rafaelmarin.net/?p=126</guid>
		<description><![CDATA[
Acho que a imagem fala por si, pessoal. Vocês não sabem o quanto sou grato e quanto eu aprendi escrevendo e interagindo com vocês. Ainda estou pensando em uma maneira de recompensar vocês (spoiler: haverá sorteio por aqui). Obrigado pela audiência e pela feedelidade.
]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.rafaelmarin.net/wp-content/uploads/2008/04/cem-leitores.jpg" alt="" /></p>
<p>Acho que a imagem fala por si, pessoal. Vocês não sabem o quanto sou grato e quanto eu aprendi escrevendo e interagindo com vocês. Ainda estou pensando em uma maneira de recompensar vocês <em>(<strong>spoiler: </strong>haverá sorteio por aqui)</em>. Obrigado pela audiência e pela <em>feedelidade</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.net/minha-nossa-a-audiencia-esta-grande/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
