<?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>Meio Pixel</title>
	<atom:link href="http://meiopixel.com.br/feed" rel="self" type="application/rss+xml" />
	<link>http://meiopixel.com.br</link>
	<description>Um blog sobre design e desenvolvimento de sites e aplicações web.</description>
	<lastBuildDate>Tue, 17 Apr 2012 22:53:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Elimine inconsistências na raiz com um “CSS Reset”</title>
		<link>http://meiopixel.com.br/2012/04/17/elimine-inconsistencias-na-raiz-com-um-css-reset.html</link>
		<comments>http://meiopixel.com.br/2012/04/17/elimine-inconsistencias-na-raiz-com-um-css-reset.html#comments</comments>
		<pubDate>Tue, 17 Apr 2012 22:53:19 +0000</pubDate>
		<dc:creator>Emanuel Felipe</dc:creator>
				<category><![CDATA[Desenvolvimento Front-end]]></category>

		<guid isPermaLink="false">http://meiopixel.com.br/?p=249</guid>
		<description><![CDATA[Mesmo de conhecimento do fato que páginas na web não precisam ficar exatamente iguais em todos os navegadores, normalmente um certo grau de consistência é uma qualidade desejada. Tornar uma página consistente entre os principais navegadores do mercado é sem dúvidas um grande &#8230; <a href="http://meiopixel.com.br/2012/04/17/elimine-inconsistencias-na-raiz-com-um-css-reset.html">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Mesmo de conhecimento do fato que <a href="http://dowebsitesneedtolookexactlythesameineverybrowser.com/">páginas na web não precisam ficar exatamente iguais em todos os navegadores</a>, normalmente um certo grau de consistência é uma qualidade desejada. Tornar uma página consistente entre os principais navegadores do mercado é sem dúvidas um grande desafio para o desenvolvedor <em>front-end</em>.</p>
<p>Neste artigo abordarei uma das principais causas de inconsistências entre navegadores, que é a existência das <em>user agent stylesheets</em>, e explicarei como é possível evitar muitas complicações simplesmente “resetando” o CSS.</p>
<h2>Mas o que é uma <em>user agent stylesheet</em>?</h2>
<p>Aposto que você já notou a aparência um tanto quanto desagradável de uma página com CSS desabilitado, entretanto, por mais estranho que isso possa parecer, ainda existe um pouco de CSS aplicado naquela página. Por exemplo, o texto possui uma fonte específica e certos elementos possuem margens e espaçamentos internos.</p>
<div id="attachment_1139" class="wp-caption alignnone" style="width: 752px"><img class="size-full wp-image-1139" title="semcss" src="http://meiopixel.com.br/wp-content/uploads/2012/04/semcss.png" alt="Exemplo de documento sem CSS" width="742" height="352" /><p class="wp-caption-text">Exemplo de documento sem CSS</p></div>
<p>Os estilos de que estou falando não foram escritos pelo autor da página, e nem possuem qualquer relação com esta, eles são provenientes da <em>user agent stylesheet</em> do navegador em questão, seja ele qual for. São regras iniciais de formatação que o navegador aplica por padrão em todas as páginas que abre.</p>
<p>Embora o CSS aplicado por padrão nos principais navegadores se apresentem muito semelhantes, isso não quer dizer que sejam completamente idênticos, e qualquer mínima diferença aqui pode gerar inconsistências nas páginas de seus projetos.</p>
<h2>Solucione o problema “resetando” o CSS</h2>
<p>Para remediar as inconsistências presentes nas <em>user agent stylesheets</em> de diferentes navegadores surgiu uma técnica conhecida como <strong>CSS Reset</strong>. Ela consiste em nivelar os estilos padrões de todos os navegadores para um único resultado mais consistente, que funcione como uma base sólida para o trabalho do desenvolvedor <em>front-end</em>.</p>
<p>A seguir abordarei três alternativas para “resetar” o CSS.</p>
<h2>1. O seletor universal “*”</h2>
<p>O seletor universal “*” contempla todos os elementos presentes em uma página, e com todos eles selecionados é possível eliminar margens, espaçamentos internos e qualquer outra propriedade desejada de uma única vez.</p>
<pre class="brush: css; title: ; notranslate">
/* versão básica do CSS Reset com o seletor universal “*” */
* {
	margin: 0;
	padding: 0;
}
</pre>
<p>Esta técnica<strong> não é recomendada</strong> devido aos seguintes problemas:</p>
<ul>
<li>Não há controle sobre exatamente quais elementos serão “resetados”;</li>
<li>Perde-se a herança de propriedades pois o seletor universal sempre ganha;</li>
<li>Requer mais processamento podendo tornar a página mais lenta.</li>
</ul>
<h2>2. O CSS Reset de Eric Meyer</h2>
<p>No ano de 2008 Eric Meyer, referência mundial quando o assunto é CSS, publicou uma alternativa mais bem elaborada que ficou conhecida como <a href="http://meyerweb.com/eric/tools/css/reset/">Eric Meyer “Reset CSS”</a>, e atualmente se encontra em sua segunda versão, publicada no ano de 2011. Veja como fica um documento com esta técnica:</p>
<div id="attachment_1141" class="wp-caption alignnone" style="width: 752px"><img class="size-full wp-image-1141" title="ericmeyercssreset2" src="http://meiopixel.com.br/wp-content/uploads/2012/04/ericmeyercssreset2.png" alt="Exemplo de documento com o CSS Reset de Eric Meyer" width="742" height="218" /><p class="wp-caption-text">Exemplo de documento com o CSS Reset de Eric Meyer</p></div>
<p>A solução de Eric Meyer é interessante por evitar os problemas apontados na técnica do seletor universal. Entretanto o próprio autor ressalta que seu código deve ser apenas um ponto de partida, ou seja, deve ser adaptado para as necessidades de cada projeto.</p>
<h2>3. O normalize.css de Nicolas Gallagher</h2>
<p>Um problema com a maioria dos CSS Resets é a perda de formatações que já são interessantes por padrão, como, por exemplo, o negrito de títulos. Este comportamento leva o desenvolvedor <em>front-end</em> a perder tempo restaurando certas propriedades. Para tentar solucionar este e outros problemas Nicolas Gallagher criou o <a href="http://necolas.github.com/normalize.css/">normalize.css</a>.</p>
<div id="attachment_1144" class="wp-caption alignnone" style="width: 752px"><img class="size-full wp-image-1144" title="normalizecss" src="http://meiopixel.com.br/wp-content/uploads/2012/04/normalizecss.png" alt="Exemplo de documento com o normalize.css de Nicolas Gallagher" width="742" height="384" /><p class="wp-caption-text">Exemplo de documento com o normalize.css de Nicolas Gallagher</p></div>
<p>O normalize.css pode ser considerado uma evolução dos CSS Resets conhecidos até então, e já foi adotado por projetos importantes como o <a href="http://html5boilerplate.com/">HTML5 Boilerplate</a> e o <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap</a> sinalizando que chegou para ficar.</p>
<h2>Conclusões</h2>
<p>Quando o objetivo é eliminar inconsistências visuais entre diferentes navegadores a utilização de um CSS Reset deve se a sua primeira medida. É claro que essa técnica não vai resolver todos os problemas possíveis, mas com certeza deverá fornecer uma base sólida para se trabalhar, e muito provavelmente vai poupar muita dor de cabeça.</p>
<p><em>Crédito da imagem destacada: <a href="http://www.flickr.com/photos/redux/3219068532/">patrick h. lauke</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://meiopixel.com.br/2012/04/17/elimine-inconsistencias-na-raiz-com-um-css-reset.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como resolver os problemas do Internet Explorer</title>
		<link>http://meiopixel.com.br/2012/04/10/como-resolver-os-problemas-do-internet-explorer.html</link>
		<comments>http://meiopixel.com.br/2012/04/10/como-resolver-os-problemas-do-internet-explorer.html#comments</comments>
		<pubDate>Tue, 10 Apr 2012 17:24:53 +0000</pubDate>
		<dc:creator>Emanuel Felipe</dc:creator>
				<category><![CDATA[Desenvolvimento Front-end]]></category>

		<guid isPermaLink="false">http://meiopixel.com.br/?p=3</guid>
		<description><![CDATA[Qualquer pessoa que vier a se aventurar com desenvolvimento front-end logo descobre que existe um gargalo nesta área: usuários cujo navegador possui suporte limitado ou incorreto aos padrões web, com destaque é claro para as versões antigas do navegador mais odiado de todos &#8230; <a href="http://meiopixel.com.br/2012/04/10/como-resolver-os-problemas-do-internet-explorer.html">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Qualquer pessoa que vier a se aventurar com desenvolvimento <em>front-end</em> logo descobre que existe um gargalo nesta área: usuários cujo navegador possui suporte limitado ou incorreto aos padrões web, com destaque é claro para as versões antigas do navegador mais odiado de todos os tempos, o <strong>Internet Explorer</strong>.</p>
<p>Neste artigo abordarei alguns problemas bastante conhecidos e citarei técnicas que surgiram para contorná-los, mas destacando uma delas que é relativamente nova e se mostra a opção mais elegante disponível.</p>
<h2>Os problemas do Internet Explorer</h2>
<p>Justiça seja feita, <strong>ele não é necessariamente ruim</strong>. Até o mais odiado deles, a versão 6, teve em sua época de lançamento o melhor suporte aos padrões web já visto até então. O problema é que a web e os concorrentes evoluíram, mas a Microsoft apenas observou seu navegador ficar extremamente defasado.</p>
<div id="attachment_1050" class="wp-caption alignnone" style="width: 810px"><img class="size-full wp-image-1050" title="internet-explorer-9" src="http://meiopixel.com.br/wp-content/uploads/2012/04/internet-explorer-9.jpg" alt="Internet Explorer 9" width="800" height="189" /><p class="wp-caption-text">A versão 9 possui uma interface interessante e bom suporte aos padrões web.</p></div>
<p>As versões 6 e 7 são conhecidas por bugs que resultam em inconsistências visuais entre outros navegadores, como posicionamentos incorretos e cálculos errados de dimensões. A versão 8 corrigiu praticamente todos estes problemas, mas não conta com suporte a recursos mais recentes como bordas arredondadas ou sombras.</p>
<p>A versão atual, o Internet Explorer 9, possui suporte razoável a estes novos padrões, e a próxima já está a caminho com a promessa de um suporte ainda melhor. Aparentemente não veremos mais navegadores ruins por parte da Microsoft, entretanto as demoras em lançar novas versões e um método ineficiente de atualização no passado resultaram em uma <a href="http://meiopixel.com.br/2011/08/17/morte-ao-internet-explorer-6-agora-vai.html">quantidade significativa de usuários</a> ainda utilizando versões antigas.</p>
<p>Como é importante que um site ou aplicação web funcione para todos, ao longo dos anos surgiram diversas técnicas destinadas a contornar os problemas causados por versões defasadas do Internet Explorer.</p>
<h2>Antigas técnicas para isolar o Internet Explorer</h2>
<p>Cada técnica, de uma maneira diferente, faz com que determinado trecho do código seja interpretado apenas pelo Internet Explorer, ou o contrário. Deste modo elas permitem a correção de problemas através de novas propriedades e valores.</p>
<h3>CSS Hacks</h3>
<p><em>Hacks</em> são técnicas controversas que exploram <em>bugs</em> de versões específicas dos navegadores. Por exemplo, uma <em>underline</em> antes de qualquer propriedade faz com que apenas a versão 6 a interprete, já com um asterisco ela é interpretada também pela versão 7, conforme pode ser observado no exemplo abaixo:</p>
<pre class="brush: css; title: ; notranslate">
.seletor {
	color: blue; /* todos os navegadores */
	*color: green; /* Internet Explorer 6 e 7 */
	_color: red; /* Internet Explorer 6 */
}
</pre>
<h3>Folhas de estilo condicionais</h3>
<p>Folhas de estilo condicionais são arquivos CSS exclusivos para o Internet Explorer referenciados através de <a href="http://www.quirksmode.org/css/condcom.html">comentários condicionais</a>. Enquanto outros navegadores vão ignorá-las como qualquer comentário, o da Microsoft vai respeitar a condição de acordo com sua versão para decidir se o código será ignorado ou executado. Vide exemplo:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!-- para todos os navegadores --&gt;
&lt;link rel=&quot;stylesheet&quot; href=&quot;style.css&quot;  /&gt;

&lt;!-- para todas as versões do Internet Explorer --&gt;
&lt;!--[if IE]&gt;	&lt;link rel=&quot;stylesheet&quot; href=&quot;ie.css&quot;  /&gt;&lt; ![endif]--&gt;

&lt;!-- apenas para o Internet Explorer 6 --&gt;
&lt;!--[if IE 6]&gt;	&lt;link rel=&quot;stylesheet&quot; href=&quot;ie6.css&quot;  /&gt;&lt; ![endif]--&gt;

&lt;!-- apenas para o Internet Explorer 7 --&gt;
&lt;!--[if IE 7]&gt;	&lt;link rel=&quot;stylesheet&quot; href=&quot;ie7.css&quot;  /&gt;&lt; ![endif]--&gt;
</pre>
<h2>Uma solução mais elegante</h2>
<p>Embora as técnicas acima tenham servido ao seu propósito por bastante tempo, não é nada interessante “sujar” seu código com <em>hacks</em> baseados em <em>bugs</em>, e nem é prático manter uma folha de estilos separada para cada versão do Internet Explorer. Estes motivos incentivaram a criação de uma solução mais inteligente.</p>
<h3>Classes condicionais na tag &lt;html&gt;</h3>
<p>A <a href="http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/">técnica criada por Paul Irish</a> consiste em utilizar comentários condicionais para, se for o caso, adicionar classes específicas na <em>tag</em> <code>&lt;html&gt;</code>, como <code>.ie6</code>, <code>.ie7</code>, <code>.ie8</code> e assim por diante, deste modo as diferentes versões do navegador da Microsoft podem ser isoladas através de seletores específicos.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!--[if IE 7]&gt;&lt;html class=&quot;ie7&quot;&gt;&lt;![endif]--&gt;
&lt;!--[if IE 8]&gt;&lt;html class=&quot;ie8&quot;&gt;&lt;![endif]--&gt;
&lt;!--[if gt IE 8]&gt;&lt;html&gt;&lt;![endif]--&gt;
&lt;!--[if !IE]&gt;&lt;!--&gt;&lt;html&gt;&lt;!--&lt;![endif]--&gt;
</pre>
<p>É claro que quais versões serão isoladas deve ser totalmente de seu critério. O código é relativamente simples e facilmente customizado, basta compreender o funcionamento dos comentários condicionais e colocar a mão na massa. O <a href="http://html5boilerplate.com/">HTML5 Boilerplate</a>, por exemplo, utiliza uma variação mais avançada.</p>
<h2>Mas e os outros navegadores?</h2>
<p>O Internet Explorer não deve ser a única preocupação, é verdade, mas ao mesmo tempo é inviável criar condições para cada versão de cada outro navegador disponível, isso sem mencionar versões futuras. Neste caso é muito mais prático utilizar uma biblioteca como o <a href="http://modernizr.com/">Modernizr</a> para testar o suporte a determinadas funcionalidades, e então acomodar seu código de acordo com os recursos suportados.</p>
<h2>Conclusões</h2>
<p>Versões antigas do Internet Explorer de fato ainda podem ser um incômodo, ainda mais para quem está apenas começando no desenvolvimento <em>front-end</em>. A técnica de inserir classes condicionais na <em>tag</em> <code>&lt;html&gt;</code> certamente é a solução mais elegante disponível para isolar o navegador da Microsoft e portanto é altamente recomendada.</p>
]]></content:encoded>
			<wfw:commentRss>http://meiopixel.com.br/2012/04/10/como-resolver-os-problemas-do-internet-explorer.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como criar botões com CSS3 sem utilizar imagens</title>
		<link>http://meiopixel.com.br/2012/03/26/como-criar-botoes-com-css3-sem-utilizar-imagens.html</link>
		<comments>http://meiopixel.com.br/2012/03/26/como-criar-botoes-com-css3-sem-utilizar-imagens.html#comments</comments>
		<pubDate>Tue, 27 Mar 2012 01:15:13 +0000</pubDate>
		<dc:creator>Emanuel Felipe</dc:creator>
				<category><![CDATA[Desenvolvimento Front-end]]></category>

		<guid isPermaLink="false">http://meiopixel.com.br/?p=567</guid>
		<description><![CDATA[Como já abordei anteriormente, estamos vivendo um momento completamente único considerando a perspectiva tecnológica do desenvolvimento front-end. A velocidade com que novas tecnologias são propostas, padronizadas e implementadas nos principais navegadores do mercado é algo totalmente sem precedentes, e como resultado o &#8230; <a href="http://meiopixel.com.br/2012/03/26/como-criar-botoes-com-css3-sem-utilizar-imagens.html">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Como já <a href="http://meiopixel.com.br/2012/03/06/prefixos-no-css-o-que-sao-e-como-utiliza-los-corretamente.html">abordei anteriormente</a>, estamos vivendo um momento completamente único considerando a perspectiva tecnológica do desenvolvimento <em>front-end</em>. A velocidade com que novas tecnologias são propostas, padronizadas e implementadas nos principais navegadores do mercado é algo totalmente sem precedentes, e como resultado o desenvolvedor <em>front-end</em> possui um leque cada vez maior de opções.</p>
<p>Neste tutorial vou abordar uma nova opção que vem se popularizando recentemente que é a de criar botões apenas com CSS3, ou seja, formatar elementos de uma página de modo que se assemelhem a botões físicos sem fazer uso de qualquer tipo de imagem. Primeiro falarei sobre vantagens e desvantagens, e em seguida iniciarei o tutorial, mas se você está ansioso para ver o resultado final pode verificar o link abaixo.</p>
<p><a href="http://demo.meiopixel.com.br/2012/03/26/como-criar-botoes-com-css3-sem-utilizar-imagens/5.html">Confira qual será o resultado do tutorial</a>.</p>
<h2>Vantagens</h2>
<ul>
<li>Grande flexibilidade dada a renderização no próprio navegador;</li>
<li>Facilidade na customização através de poucas linhas de código;</li>
<li>Redução no tempo total de carregamento da página.</li>
</ul>
<h2>Desvantagens</h2>
<ul>
<li>Os botões terão uma aparência simplificada em navegadores limitados;</li>
<li>Necessidade de utilizar <a href="http://meiopixel.com.br/2012/03/06/prefixos-no-css-o-que-sao-e-como-utiliza-los-corretamente.html">prefixos no CSS</a> para suportar mais navegadores.</li>
</ul>
<h2>Passo 1: crie o elemento desejado</h2>
<p>Primeiramente você deve criar o elemento que deseja utilizar como botão, ele pode ser um link, um botão de envio de formulário ou até mesmo um <em>button</em>. Para cada situação escolha o elemento que considerar mais adequado, mas lembre-se de que o mesmo código poderá ser aproveitado por todos.</p>
<p>Adicione a classe <code>botao</code> para cada elemento que você quiser formatar como botão, e em seguida adicione uma segunda classe com o nome da cor desejada para ele, deste modo você poderá ter botões de diversas cores com maior facilidade. Segue um código de exemplo:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;a class=&quot;botao vermelho&quot; href=&quot;#&quot;&gt;Link
&lt;button class=&quot;botao azul&quot;&gt;Button &lt;button&gt;&lt;/button&gt;
&lt;input class=&quot;botao magenta&quot; type=&quot;submit&quot; value=&quot;&lt;input type=&amp;quot;submit&amp;quot; /&gt;&quot; /&gt;
</pre>
<p><a href="http://demo.meiopixel.com.br/2012/03/26/como-criar-botoes-com-css3-sem-utilizar-imagens/1.html">Confira o resultado do passo 1.</a></p>
<h2>Passo 2: adicione um pouco de cor</h2>
<p>A cor é um atributo fundamental para que o botão seja atrativo para o usuário, mas para que as cores escolhidas no passo anterior funcionem será necessário criar regras para cada uma delas nas CSS. Crie classes reaproveitáveis para cada cor que quiser utilizar em seus botões, sendo que a cor desejada deverá ser declarada como cor de fundo do elemento. O código abaixo possui algumas cores de exemplo.</p>
<pre class="brush: css; title: ; notranslate">
.vermelho { background-color: #FF0000; }
.laranja { background-color: #FF9B00; }
.amarelo { background-color: #DCDC00; }
.verde { background-color: #00D200; }
.azul { background-color: #3737FF; }
.roxo { background-color: #D200D2; }
.magenta { background-color: #FF0078; }
</pre>
<p><a href="http://demo.meiopixel.com.br/2012/03/26/como-criar-botoes-com-css3-sem-utilizar-imagens/2.html">Confira o resultado do passo 2.</a></p>
<h2>Passo 3: formate o botão com regras amplamente suportadas</h2>
<p>Por enquanto nossos botões não estão nem perto de serem esteticamente agradáveis, mas vamos começar a resolver este problema com regras de formatação amplamente suportadas. O foco neste passo é definir um aspecto básico para eles, mas utilizando regras que até mesmo navegadores antigos suportam.</p>
<p>Primeiramente selecione uma cor para o texto que apresente bom contraste com as cores de fundo utilizadas, recomendo a cor branca para os fundos exemplificados no passo anterior, e para uma melhor legibilidade também recomendo que o texto esteja em um tamanho relativamente grande, em negrito e sem sublinhado, mas todas essas configurações são de seu critério é claro.</p>
<p>Para completar o aspecto básico de nossos botões adicione uma borda sutilmente escura, configure um pouco de espaçamento interno e garanta que o texto do botão não “quebre” em espaços horizontalmente muito apertados utilizando a propriedade <code>white-space</code> com o valor <code>nowrap</code>. O código deve ficar semelhante a este:</p>
<pre class="brush: css; title: ; notranslate">
.botao {
	color: #ffffff;
	font-size: 1.5em;
	font-weight: bold;
	text-decoration: none;
	border: 1px solid rgba(0, 0, 0, 0.1);
	padding: 5px 20px;
	white-space: nowrap;
}
</pre>
<p><a href="http://demo.meiopixel.com.br/2012/03/26/como-criar-botoes-com-css3-sem-utilizar-imagens/3.html">Confira o resultado do passo 3.</a></p>
<h2>Passo 4: incremente a formatação do botão com regras avançadas</h2>
<p>Vamos entrar agora na parte mais interessante deste tutorial, a que envolve utilizar recursos avançados destinados para navegadores modernos. Enquanto os navegadores antigos terão um botão simples, mas funcional, navegadores modernos serão beneficiados com todos os recursos avançados que suportarem.</p>
<p>Primeiramente vamos ser gentis com nosso usuário e melhorar ainda mais a legibilidade do rótulo dos botões, para isso adicione uma leve sombra ao texto. Recomendo uma sombra posicionada apenas um pixel tanto para a direita quanto para baixo, com um leve desfoque e na cor preta, mas com grande transparência.</p>
<p>Agora vamos libertar nossos botões deste mundo quadrado de navegadores com pouco suporte aos padrões web. Adicione bordas arredondadas com o valor que preferir, mas lembre-se de que este recurso ainda precisa de prefixos. Em seguida, para criar uma leve sensação de relevo, crie uma sombra interna na cor branca com um pouco de transparência e a posicione um pixel abaixo da posição original, este recurso também precisa de prefixos.</p>
<p>O código resultante deste passo deve ser semelhante a este:</p>
<pre class="brush: css; highlight: [9,10,11,12,13,14,15]; title: ; notranslate">
.botao {
	color: #ffffff;
	font-size: 1.5em;
	font-weight: bold;
	text-decoration: none;
	border: 1px solid rgba(0, 0, 0, 0.1);
	padding: 5px 20px;
	white-space: nowrap;
	text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
	-webkit-border-radius: 10px;
	-moz-border-radius: 10px;
	border-radius: 10px;
	-webkit-box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.6);
	-moz-box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.6);
	box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.6);
}
</pre>
<p><a href="http://demo.meiopixel.com.br/2012/03/26/como-criar-botoes-com-css3-sem-utilizar-imagens/4.html">Confira o resultado do passo 4.</a></p>
<h2>Passo 5: lembre-se da interação com o botão</h2>
<p>Nossos botões ficaram bonitões, não ficaram? Mas ainda não acabamos. Lembre-se do fato que botões são elementos com os quais os usuários interagem, isto é, devemos fornecer  formatação também para determinadas situações de interação. Consideremos: quando o usuário posiciona o mouse acima do botão, quando navega até ele através do teclado e quando o ativa (normalmente através de um clique).</p>
<p>Para quando o usuário posicionar o mouse acima do botão ou chegar até ele através de navegação pelo teclado mude a cor de fundo para uma tonalidade um pouco mais clara, este será um <em>feedback</em> visual útil para o usuário. Para quando o botão for ativado mude sua sombra interna de modo a aparentar que ele foi pressionado fisicamente, este também é um <em>feedback</em> visual interessante. O código resultante será o seguinte:</p>
<pre class="brush: css; title: ; notranslate">
.vermelho:hover, .vermelho:focus { background-color: #FF3333; }
.laranja:hover, .laranja:focus { background-color: #FFAD33; }
.amarelo:hover, .amarelo:focus { background-color: #E3E300; }
.verde:hover, .verde:focus { background-color: #00E500; }
.azul:hover, .azul:focus { background-color: #5252FF; }
.roxo:hover, .roxo:focus { background-color: #EB00EB; }
.magenta:hover, .magenta:focus { background-color: #FF3392; }

.botao:active {
	-webkit-box-shadow: inset 0px 3px 0px 0px rgba(0, 0, 0, 0.3);
	-moz-box-shadow: inset 0px 3px 0px 0px rgba(0, 0, 0, 0.3);
	box-shadow: inset 0px 1px 3px 0px rgba(0, 0, 0, 0.3);
	position: relative;
	top: 1px;
}
</pre>
<p>Por fim vamos tornar essas transições suaves através de um recurso interessante do CSS3, as <em>transitions</em>. Crie uma transição que afete todos os efeitos possíveis, utilize a curva de animação e o tempo de duração que preferir, uma animação linear e com 100 milissegundos de duração é um bom exemplo, mas não se esqueça dos prefixos, infelizmente eles também são necessários aqui. O código deverá ficar assim:</p>
<pre class="brush: css; highlight: [16,17,18,19,20]; title: ; notranslate">
.botao {
	color: #ffffff;
	font-size: 1.5em;
	font-weight: bold;
	text-decoration: none;
	border: 1px solid rgba(0, 0, 0, 0.1);
	padding: 5px 20px;
	white-space: nowrap;
	text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
	-webkit-border-radius: 10px;
	-moz-border-radius: 10px;
	border-radius: 10px;
	-webkit-box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.6);
	-moz-box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.6);
	box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.6);
	-webkit-transition: all linear 100ms;
	-moz-transition: all linear 100ms;
	-o-transition: all linear 100ms;
	-ms-transition: all linear 100ms;
	transition: all linear 100ms;
}
</pre>
<p><a href="http://demo.meiopixel.com.br/2012/03/26/como-criar-botoes-com-css3-sem-utilizar-imagens/5.html">Confira o resultado do passo 5 (que é o resultado deste tutorial).</a></p>
<h2>Passo 6: seja criativo e vá além deste tutorial</h2>
<p>Embora já seja um resultado bem interessante, é verdade que os botões ficaram simples, mas esse era o meu objetivo desde o início. Eu recomendo que você continue a trabalhar neles e faça experimentos, assim você pode chegar a um resultado único, um resultado apenas seu. Entre as possibilidades sugiro experimentar as pseudo-classes do CSS e com efeitos do CSS3 como <em><a href="http://www.w3schools.com/cssref/css3_pr_box-shadow.asp">box shadows</a></em>, <em><a href="http://www.w3schools.com/css3/css3_transitions.asp">transitions</a></em> e <em><a href="http://www.colorzilla.com/gradient-editor/">gradients</a>.</em></p>
<h2>Conclusões</h2>
<p>Como foi possível notar neste tutorial é perfeitamente possível criar botões com CSS3 sem utilizar imagens, uma técnica que apresenta grandes vantagens. O resultado é um tanto quanto simples, mas pode facilmente ser customizado e incrementado para as mais diversas finalidades.</p>
]]></content:encoded>
			<wfw:commentRss>http://meiopixel.com.br/2012/03/26/como-criar-botoes-com-css3-sem-utilizar-imagens.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 verdadeiras alternativas ao Lorem ipsum</title>
		<link>http://meiopixel.com.br/2012/03/19/10-verdadeiras-alternativas-ao-lorem-ipsum.html</link>
		<comments>http://meiopixel.com.br/2012/03/19/10-verdadeiras-alternativas-ao-lorem-ipsum.html#comments</comments>
		<pubDate>Mon, 19 Mar 2012 21:10:44 +0000</pubDate>
		<dc:creator>Emanuel Felipe</dc:creator>
				<category><![CDATA[Design Gráfico]]></category>

		<guid isPermaLink="false">http://meiopixel.com.br/?p=832</guid>
		<description><![CDATA[Lorem ipsum, como você provavelmente já deve saber, é um texto padrão em latim que não carrega significado algum. Normalmente ele é utilizado por designers para preencher o espaço destinado ao conteúdo, seja em materiais impressos ou páginas na web. Além &#8230; <a href="http://meiopixel.com.br/2012/03/19/10-verdadeiras-alternativas-ao-lorem-ipsum.html">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>Lorem ipsum</em>, como você provavelmente já deve saber, é um texto padrão em latim que não carrega significado algum. Normalmente ele é utilizado por designers para preencher o espaço destinado ao conteúdo, seja em materiais impressos ou páginas na web.</p>
<p>Além do tradicional site <em><a href="http://www.lipsum.com/">Lorem Ipsum</a></em> existem diversas ferramentas e variações do texto padrão que podem ser encontradas na web. O site <a href="http://html-ipsum.com/">HTML-Ipsum</a>, por exemplo, oferece o texto padrão, mas com opções de marcação para facilitar a sua inserção páginas na web, já o <a href="http://baconipsum.com/">Bacon Ipsum</a> é uma alternativa bem humorada ao texto padrão, mas sendo curiosas ou interessantes, essas ferramentas não fogem da “mesmice” do original.</p>
<p>Para buscar algo realmente diferente e não apenas paródias do texto original, neste artigo você encontra 10 verdadeiras alternativas ao tradicional <em>Lorem Ipsum</em>.</p>
<h1>1. Escreva conteúdo verdadeiro</h1>
<p>Tudo bem, eu entendo que este item não é exatamente o que você esperava encontrar nessa lista, mas é importante ressaltar que <strong>conteúdo verdadeiro deve ser sempre a primeira opção. </strong>Quando o texto não é real ele pode induzir o designer a perder o foco e criar um <em>layout</em> que chame a atenção para si ao invés de priorizar o conteúdo.</p>
<p>Geradores de conteúdo devem ser utilizados em situações onde o conteúdo real realmente não estará disponível, como é o caso de templates, ou quando o conteúdo real ainda está distante, como na fase inicial de algum projeto. Com essa observação feita, vamos de fato para as alternativas.</p>
<h2>2. Fillerati</h2>
<p><a href="http://www.fillerati.com/"><img class="alignleft size-full wp-image-930" title="fillerati" src="http://meiopixel.com.br/wp-content/uploads/2012/03/fillerati.jpg" alt="Fillerati" width="120" height="120" /></a> O <a href="http://www.fillerati.com/">Fillerati</a> é, em todos os aspectos, uma alternativa mais elegante. Ele permite selecionar trechos de obras de diversos autores consagrados, como <em>The Wizard of Oz</em> de L. Frank Baum ou <em>Alice in Wonderland</em> de Lewis Carroll. O serviço ainda oferece facilidades para quem prefere o conteúdo já marcado em HTML com parágrafos, títulos ou listas.</p>
<h3>Exemplo</h3>
<p><em>There was a long silence after this, and Alice could only hear whispers  now and then; such as, &#8216;Sure, I don&#8217;t like it, yer honour, at all, at  all!&#8217; &#8216;Do as I tell you, you coward!&#8217; and at last she spread out her  hand again, and made another snatch in the air.</em></p>
<h2>3. Not Lorem Ipsum</h2>
<p><a href="http://notloremipsum.com/"><img class="alignleft size-full wp-image-933" title="notloremipsum" src="http://meiopixel.com.br/wp-content/uploads/2012/03/notloremipsum.jpg" alt="Not Lorem Ipsum" width="120" height="120" /></a> O <a href="http://notloremipsum.com/">Not Lorem Ipsum</a> oferece textos genéricos de acordo com a área desejada. O texto abaixo, por exemplo, é destinado a empresas da área de desenvolvimento de aplicativos, mas existem opções para bancos, consultores, dentistas, igrejas e o que mais você puder imaginar, a <a href="http://notloremipsum.com/industry/">lista completa</a> é extensa.</p>
<h3>Exemplo</h3>
<p><em>This app does everything you could possibly want it to do and not only that, it is beautifully designed and extremely intuitive to use. Download it from the App Store for FREE if you don’t mind some adverts popping up or if you prefer an ad-free experience then you can down load the ad-free version for 99p.</em></p>
<h2>4. Malevole Text Generator</h2>
<p><a href="http://www.malevole.com/mv/misc/text/"><img class="alignleft size-full wp-image-935" title="malevoletextgenerator" src="http://meiopixel.com.br/wp-content/uploads/2012/03/malevoletextgenerator.jpg" alt="Malevole Text Generator" width="120" height="120" /></a> O <a href="http://www.malevole.com/mv/misc/text/">Malevole Text Generator</a> é uma alternativa bastante simples que gera textos aleatórios com o número de parágrafos que foi selecionado. O destaque está na qualidade do texto gerado, o seu criador garante que ela foi desenvolvida com base em anos de muita pesquisa. Verdade ou não, é uma ótima alternativa.</p>
<h3>Exemplo</h3>
<p><em>Top Cat! The most effectual Top Cat! Who&#8217;s intellectual close friends get to call him T.C., providing it&#8217;s with dignity. Top Cat! The indisputable leader of the gang. He&#8217;s the boss, he&#8217;s a pip, he&#8217;s the championship. He&#8217;s the most tip top, Top Cat.</em></p>
<h2>5. F*** Lorem Ipsum</h2>
<p><a href="http://fucklorem.com/"><img class="alignleft size-full wp-image-934" title="floremipsum" src="http://meiopixel.com.br/wp-content/uploads/2012/03/floremipsum.jpg" alt="F*** Lorem Ipsum" width="120" height="120" /></a> O <a href="http://fucklorem.com/">F*** Lorem Ipsum</a>, apesar do nome malcriado, é uma ferramenta bastante amigável. Ela oferece textos provenientes de programas de televisão como comédias, dramas, programas infantis e variados. A ferramenta ainda permite gerar o texto já com marcação, muito útil para seu uso em páginas na web.</p>
<h3>Exemplo</h3>
<p><em>Making the world a better place, starts with one more smiling face. And Ronald&#8217;s smile is just the thing, To make everybody sing! Put a smile on, put a smile on, everybody come on! Put a smile on!</em></p>
<h2>6. Blind Text Generator</h2>
<p><a href="http://www.blindtextgenerator.com/lorem-ipsum"><img class="alignleft size-full wp-image-939" title="blindtextgenerator" src="http://meiopixel.com.br/wp-content/uploads/2012/03/blindtextgenerator.jpg" alt="Blind Text Generator" width="120" height="120" /></a> O <a href="http://www.blindtextgenerator.com/lorem-ipsum">Blind Text Generator</a>, apesar de oferecer <em>Lorem Ipsum</em> por padrão, possui outras opções para o texto a ser gerado. Um aspecto interessante é o bom controle sobre o resultado, permitindo customizações de número de palavras, caracteres e parágrafos, e também a geração automática de marcação.</p>
<h3>Exemplo</h3>
<p><em>A wonderful serenity has taken possession of my entire soul, like these sweet mornings of spring which I enjoy with my whole heart. I am alone, and feel the charm of existence in this spot, which was created for the bliss of souls like mine.</em></p>
<h2>7. Random Text</h2>
<p><a href="http://www.randomtext.me/"><img class="alignleft size-full wp-image-936" title="randomtext" src="http://meiopixel.com.br/wp-content/uploads/2012/03/randomtext.jpg" alt="Random Text" width="120" height="120" /></a> O <a href="http://www.randomtext.me/">Random Text</a> é mais uma ferramenta que fornece o <em>Lorem Ipsum</em> por padrão, mas que possui outra opção para o texto a ser gerado. Ela possui um bom controle sobre o resultado através da geração automática de marcação, seleção do número de frases e de quantidades mínima e máxima de palavras. O serviço ainda possui uma API que retorna o texto gerado no formato JSON.</p>
<h3>Exemplo</h3>
<p><em>Alas or soulfully darn monkey crud seal where fawning hurt that well this dolphin this one fussily delinquent one sadistically bombastic yet hence the clapped hey spread oh befell vulture far some worm celestially howled boomed minute straightly one wearisome but luscious astride less pending up the.</em></p>
<h2>8. United Ipsums</h2>
<p><a href="http://unitedipsums.com/"><img class="alignleft size-full wp-image-938" title="unitedipsums" src="http://meiopixel.com.br/wp-content/uploads/2012/03/unitedipsums.jpg" alt="United Ipsums" width="120" height="120" /></a> O <a href="http://unitedipsums.com/">United Ipsums</a> é extremamente original na fonte de seus textos, autodenominando-se um gerador de jargões políticos, ele utiliza os discursos vagos dos candidatos e pré-candidatos da eleição presidencial estadunidense de 2012. Entre os candidatos estão Barack Obama, Ron Paul e Mitt Romney. Será que um dia teremos uma versão nacional?</p>
<h3>Exemplo</h3>
<p><em>These things are true. There is not a black America and white America and Latino America and Asian America &#8211; there is the United States of America. We may come from different places and have different stories, but we share common hopes, and one very American dream. This is our time. Yes we can.</em></p>
<h2>9. Simpson Ipsum</h2>
<p><a href="http://simpsonipsum.com/"><img class="alignleft size-full wp-image-937" title="simpsonipsum" src="http://meiopixel.com.br/wp-content/uploads/2012/03/simpsonipsum.jpg" alt="Simpson Ipsum" width="120" height="120" /></a> O <a href="http://simpsonipsum.com/">Simpson Ipsum</a> é uma alternativa bem humorada, mas não menos útil que as demais. Como você já deve ter imaginado, o serviço oferece textos provenientes do seriado de televisão <em>The Simpsons</em>. Entre as opções disponíveis estão gerar parágrafos comuns, linhas únicas e até mesmo o tradicional <em>d&#8217;oh!</em> do personagem principal da série.</p>
<h3>Exemplo</h3>
<p><em>Operator! Give me the number for 911! Attempted murder? Now honestly, what is that? Do they give a Nobel Prize for attempted chemistry? Oh, I&#8217;m in no condition to drive. Wait a minute. I don&#8217;t have to listen to myself. I&#8217;m drunk. Don&#8217;t kid yourself, Jimmy.</em></p>
<h2>10. Fillerama</h2>
<p><a href="http://chrisvalleskey.com/fillerama/"><img class="alignleft size-full wp-image-940" title="fillerama" src="http://meiopixel.com.br/wp-content/uploads/2012/03/fillerama.jpg" alt="Fillerama" width="120" height="120" /></a> Seguindo a mesma linha do item anterior, o <a href="http://chrisvalleskey.com/fillerama/">Fillerama</a> utiliza textos provenientes de programas de televisão. Por padrão os textos são retirados do seriado <em>Futurama</em>, mas existem outras opções como <em>Dexter</em> (o <em>serial killer</em>, não o cientista de desenho animado) e <em>Doctor Who</em>. Entre as opções disponíveis, além do programa, existe a possibilidade de gerar listas, cabeçalhos e controlar quantos parágrafos serão exibidos.</p>
<h3>Exemplo</h3>
<p><em>Okay, I like a challenge. Tell them I hate them. And I&#8217;m his friend Jesus. Why would I want to know that? There&#8217;s one way and only one way to determine if an animal is intelligent. Dissect its brain!</em></p>
<h2>Conclusões</h2>
<p>Mesmo de conhecimento do fato que utilizar qualquer uma dessas opções de maneira equivocada pode ser tão prejudicial ao design quanto a opção tradicional, certamente é interessante possuir conhecimento de alternativas que ofereçam mais opções ou um texto mais rico que o apático <em>Lorem Ipsum</em>. Mas eu ressalto novamente, utilize-as apenas para templates, projetos em fase inicial ou em algum outro contexto onde o conteúdo verdadeiro realmente não esteja disponível.</p>
]]></content:encoded>
			<wfw:commentRss>http://meiopixel.com.br/2012/03/19/10-verdadeiras-alternativas-ao-lorem-ipsum.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A definição de usabilidade de Jakob Nielsen</title>
		<link>http://meiopixel.com.br/2012/03/12/a-definicao-de-usabilidade-de-jakob-nielsen.html</link>
		<comments>http://meiopixel.com.br/2012/03/12/a-definicao-de-usabilidade-de-jakob-nielsen.html#comments</comments>
		<pubDate>Mon, 12 Mar 2012 20:39:21 +0000</pubDate>
		<dc:creator>Emanuel Felipe</dc:creator>
				<category><![CDATA[Ciência do Usuário]]></category>

		<guid isPermaLink="false">http://meiopixel.com.br/?p=892</guid>
		<description><![CDATA[Atualmente o termo usabilidade vem ganhando destaque dentro do mercado de sites e aplicações web. De maneira consciente ou não, todo contratante deseja um produto que seja de fácil utilização, e por outro lado praticamente todos os profissionais da área ressaltam que seus &#8230; <a href="http://meiopixel.com.br/2012/03/12/a-definicao-de-usabilidade-de-jakob-nielsen.html">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Atualmente o termo usabilidade vem ganhando destaque dentro do mercado de sites e aplicações web. De maneira consciente ou não, todo contratante deseja um produto que seja de fácil utilização, e por outro lado praticamente todos os profissionais da área ressaltam que seus produtos possuem boa usabilidade. Parece um cenário bastante promissor, mas as aparências enganam.</p>
<p>Se a usabilidade já é, ou ao menos aparenta ser, um conceito difundido, por que ainda nos deparamos diariamente com produtos frustantes e mal projetados do ponto de vista do usuário? Talvez seja porque a qualidade “fácil de usar” é subjetiva demais.</p>
<h2>A subjetividade da facilidade de uso</h2>
<p>Como podemos definir com precisão se um produto possui boa usabilidade quando estamos falando de algo até então completamente subjetivo? Exemplo: o desenvolvedor que afirma que seu produto é fácil de utilizar, mesmo que na prática não seja, não está necessariamente mentido, afinal quem criou o produto e conhece seu funcionamento nos mínimos detalhes de fato vai utilizá-lo com muita facilidade.</p>
<div id="attachment_908" class="wp-caption alignnone" style="width: 810px"><img class="size-full wp-image-908" title="cockpit" src="http://meiopixel.com.br/wp-content/uploads/2012/03/cockpit.jpg" alt="" width="800" height="534" /><p class="wp-caption-text">Fácil? Para um piloto sim. ¹</p></div>
<p>Notou como a usabilidade necessita de uma definição mais precisa para ser avaliada? Apenas considerar um produto fácil de usar pode não significar nada, ainda mais vindo da pessoa que o criou ou de outra com grandes conhecimentos sobre seu funcionamento.</p>
<h2>Uma definição mais precisa para a usabilidade</h2>
<p>Jakob Nielsen, em seu livro <em><a href="http://www.useit.com/jakob/useengbook.html">Usability Engineering</a></em> de 1993, ressalta como a usabilidade não é uma simples propriedade unidimensional (adeus resposta binária para a pergunta “é fácil de usar?”), e sim que ela é composta por múltiplos componentes. O autor define que ela está na grande maioria dos casos associada a cinco atributos específicos, que são eles: <strong>apreensibilidade</strong>, <strong>eficiência</strong>, <strong>memorabilidade</strong>, <strong>erros</strong> e <strong>satisfação</strong>.</p>
<div id="attachment_900" class="wp-caption alignnone" style="width: 414px"><img class="size-full wp-image-900" title="Usability-Engineering" src="http://meiopixel.com.br/wp-content/uploads/2012/03/Usability-Engineering.jpg" alt="" width="404" height="625" /><p class="wp-caption-text">Capa do livro Usability Engineering de Jakob Nielsen. Leitura recomendada para quem se interessa por usabilidade.</p></div>
<h3>Apreensibilidade</h3>
<p>A apreensibilidade pode ser considerada o mais fundamental atributo da usabilidade, pois <strong>a primeira experiência com um produto é a de aprender a utilizá-lo</strong>. Por se tratar de uma experiência com forte tendência a fixar-se na memoria do usuário, é importante que seja positiva e proporcione uma boa imagem percebida do produto.</p>
<h3>Eficiência de uso</h3>
<p>A eficiência de uso está diretamente relacionada ao <strong>desempenho de utilização</strong> de um usuário que já atingiu o ponto de equilíbrio em sua curva de aprendizado do produto, ou seja, estamos falando da eficiência de um usuário que já aprendeu o máximo que é capaz ou que está disposto a aprender.</p>
<h3>Memorabilidade</h3>
<p>Aprender a utilizar um produto pela primeira vez é consideravelmente diferente de relembrar como se faz. O conceito de memorabilidade está diretamente relacionado à <strong>facilidade de usuários antigos de relembrarem como se utiliza o produto</strong>. É uma característica muito importante para aqueles que são utilizados exclusivamente em circunstâncias extraordinárias.</p>
<h3>Poucos erros e não catastróficos</h3>
<p>Durante a utilização de um produto os usuários devem cometer tão poucos erros quanto for possível, <strong>considerando como erro qualquer ação cujo resultado obtido seja diferente do desejado</strong>. Alguns são percebidos e corrigidos imediatamente, prejudicando a eficiência de uso, mas erros de proporção catastrófica podem resultar em um trabalho incorreto ou perda de informação, portanto devem ser evitados ao máximo.</p>
<h3>Satisfação subjetiva</h3>
<p>A satisfação do usuário é um atributo subjetivo, ou seja, <strong>cada indivíduo pode possuir uma resposta completamente diferente</strong> para a pergunta de o quanto ele considera agradável utilizar do produto. Ela não obrigatoriamente reflete a realidade dos aspectos da facilidade de uso, mas mesmo assim é um dado importante sobre a usabilidade. É um atributo particularmente desejado em produtos destinados ao entretenimento.</p>
<h2>Conclusões</h2>
<p>O mercado já percebeu a importância da usabilidade, e agora ela é uma qualidade muito desejada para qualquer site ou aplicação web, entretanto cabe a nós, profissionais de design e desenvolvimento, compreendermos estes atributos que a compõem e com base neles projetar produtos verdadeiramente fáceis de se utilizar, mas sempre avaliando essa qualidade através de <a href="http://meiopixel.com.br/2012/01/16/teste-de-usabilidade-uma-introducao-aos-testes-com-usuarios.html">testes de usabilidade</a> é claro.</p>
<p><em>Crédito da imagem: (1) <a href="http://www.flickr.com/photos/dirkjankraan/5586122388/">dirkjankraan.com</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://meiopixel.com.br/2012/03/12/a-definicao-de-usabilidade-de-jakob-nielsen.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prefixos no CSS: o que são e como utilizá-los corretamente</title>
		<link>http://meiopixel.com.br/2012/03/06/prefixos-no-css-o-que-sao-e-como-utiliza-los-corretamente.html</link>
		<comments>http://meiopixel.com.br/2012/03/06/prefixos-no-css-o-que-sao-e-como-utiliza-los-corretamente.html#comments</comments>
		<pubDate>Tue, 06 Mar 2012 18:29:43 +0000</pubDate>
		<dc:creator>Emanuel Felipe</dc:creator>
				<category><![CDATA[Desenvolvimento Front-end]]></category>

		<guid isPermaLink="false">http://meiopixel.com.br/?p=835</guid>
		<description><![CDATA[Atualmente vivenciamos um momento totalmente sem precedentes no que diz respeito ao desenvolvimento front-end. HTML5 e CSS3, mesmo que em partes, já são realidade em navegadores modernos a algum tempo e podem ser utilizados com certa segurança, entretanto, infelizmente essas tecnologias &#8230; <a href="http://meiopixel.com.br/2012/03/06/prefixos-no-css-o-que-sao-e-como-utiliza-los-corretamente.html">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Atualmente vivenciamos um momento totalmente sem precedentes no que diz respeito ao desenvolvimento <em>front-end.</em> HTML5 e CSS3, mesmo que em partes, já são realidade em navegadores modernos a algum tempo e podem ser utilizados com certa segurança, entretanto, infelizmente essas tecnologias nem sempre são compreendidas por completo e utilizadas da maneira adequada.</p>
<p>Recentemente a <a href="http://www.mozilla.org/">Mozilla</a>, organização responsável pelo navegador <a href="http://www.mozilla.org/firefox/">Firefox</a>, anunciou a controversa ideia de interpretar propriedades de CSS com o prefixo <code>-webkit-</code> em seu navegador para dispositivos móveis, causando bastante agitação na comunidade. Ela alega que muitos desenvolvedores as utilizam de maneira inadequada, criando produtos que funcionam por completo apenas em navegadores com o <em>engine</em> WebKit.</p>
<div id="attachment_848" class="wp-caption alignnone" style="width: 810px"><img class="size-full wp-image-848" title="chrome-safari-firefox" src="http://meiopixel.com.br/wp-content/uploads/2012/03/chrome-safari-firefox.jpg" alt="" width="800" height="250" /><p class="wp-caption-text">Estariam os navegadores com WebKit formando uma panelinha?</p></div>
<h2>Mas em primeiro lugar, por que existem prefixos no CSS?</h2>
<p>A especificação do CSS3 é composta por uma série de módulos independentes, cada um evolui e é implementado pelos navegadores em seu próprio tempo. Neste processo é comum que ocorra o suporte experimental de determinadas funcionalidades, ou seja, elas são implementadas mesmo que ainda não estejam totalmente padronizadas.</p>
<p>Além disso, um fabricante de navegador ainda pode por criar uma nova funcionalidade através de uma propriedade experimental. Caso seja bem aceita pela indústria ela poderá futuramente vir a se tornar um padrão.</p>
<p>Surge então um problema, como é possível distinguir uma recurso experimental sujeito a mudanças de um padrão já estabelecido? <strong>Para resolver este problema foram criados os prefixos de fabricantes de navegadores</strong>, os principais são:</p>
<ul>
<li><code>-webkit-</code> para navegadores com o <em>engine</em> WebKit;</li>
<li><code>-moz-</code> para o Mozilla Firefox;</li>
<li><code>-ms-</code> para o Internet Explorer;</li>
<li><code>-o-</code> para o Opera;</li>
</ul>
<p>Ainda é importante ressaltar que normalmente as <strong>propriedades com prefixo são temporárias</strong>, isto é, assim que o seu trabalho de padronização estiver concluído é provável que o fabricante passe a reconhecê-la apenas sem o prefixo.</p>
<h2>A diferença entre código proprietário e CSS3</h2>
<p>O WebKit é disparado o <em>engine</em> mais utilizado em dispositivos móveis, afinal de contas os navegadores do iOS e do Android são baseados neste motor. O problema é que este fato levou muitas pessoas a desenvolverem apenas para ele, utilizando recursos proprietários enquanto acreditavam estar utilizando CSS3. O artigo <em><a href="http://www.alistapart.com/articles/every-time-you-call-a-proprietary-feature-css3-a-kitten-dies/">Every Time You Call a Proprietary Feature “CSS3,” a Kitten Dies</a></em>, deixa bem claro (tradução livre):</p>
<blockquote><p>Qualquer recurso -webkit- que não exista em uma especificação (nem mesmo em um rascunho) não é CSS3.</p></blockquote>
<div id="attachment_853" class="wp-caption alignnone" style="width: 510px"><img class="size-full wp-image-853" title="gatinho" src="http://meiopixel.com.br/wp-content/uploads/2012/03/gatinho.jpg" alt="" width="500" height="333" /><p class="wp-caption-text">Um gatinho morre a cada vez que você chama um recurso proprietário de CSS3. Pense nos gatinhos. ¹</p></div>
<p>Infelizmente este ainda não é um conhecimento bem difundido, levando ao problema relatado pela Mozilla: mesmo que seu navegador possua amplo suporte aos padrões web, seus usuários visualizam versões inferiores e pouco funcionais de produtos desenvolvidos apenas com o WebKit em mente.</p>
<h2>Como utilizar corretamente prefixos no CSS</h2>
<p>Existem duas maneiras para se utilizar prefixos no CSS adequadamente: inserindo-os manualmente ou utilizando uma ferramenta para automatizar o processo. Mesmo que você opte por uma ferramenta para a automação do processo, lembre-se que inseri-los manualmente é uma atividade importante na compreensão do funcionamento da ferramenta, e que deste modo você nunca será dependente delas.</p>
<h3>Utilizando os prefixos manualmente</h3>
<p>Para obter o recurso desejado no maior número possível de navegadores, sejam eles atuais ou futuros, além de incluir todos os prefixos aplicáveis <strong>é muito importante incluir também a propriedade sem nenhum prefixo ao final do código</strong>. Por exemplo, o código da propriedade <code>border-radius</code> deve ficar assim:</p>
<pre class="brush: css; title: ; notranslate">
.classe {
	-webkit-border-radius: 10px;
	-moz-border-radius: 10px;
	border-radius: 10px;
}
</pre>
<p>Desta maneira o recurso funciona nos navegadores especificados por possuírem suporte experimental ao recurso, mas ele também funcionará em todos os navegadores que vierem a adotar o formato padronizado, incluindo versões futuras de WebKit e Firefox que eventualmente deixarão de suportar a propriedade com prefixo.</p>
<h3>Utilizando ferramentas para a automação dos prefixos</h3>
<p>Escrever manualmente propriedades com prefixos pode ser um trabalho muito chato e repetitivo, e ainda existe o problema de saber exatamente quais prefixos utilizar para cada propriedade. Felizmente existem diversas ferramentas destinadas a realizarem o trabalho duro por você, duas que merecem destaque são:</p>
<ul>
<li><a href="http://prefixr.com/">Nettuts+ Prefixr</a>: trata-se de um serviço que recebe uma folha de estilos sem prefixos e a devolve devidamente “prefixada”, existem diversos concorrentes semelhantes, mas um grande diferencial é a sua <a href="http://www.prefixr.com/api/usage/">API</a>;</li>
<li><a href="http://leaverou.github.com/prefixfree/">Prefix free</a>: trata-se de um código JavaScript que lê as folhas de estilos e adiciona os prefixos necessários dinamicamente, ou seja, sem gerar novos arquivos para você cuidar pois tudo ocorre no próprio navegador do usuário.</li>
</ul>
<h2>Conclusões</h2>
<p>Há quem alegue que os prefixos são ruins e estão gerando uma nova crise de falta de padronização, mas é inegável o fato de que eles foram fundamentais para compor o cenário positivo que descrevi no primeiro parágrafo. Abrir mão dos prefixos seria um grande retrocesso, pois compreendidos e utilizados de maneira adequada eles não causam mau algum, pelo contrário, são ferramentas poderosas que permitem utilizar funcionalidades com alguns anos de antecedência.</p>
<p><em>Crédito da imagem: (1) <a href="http://www.flickr.com/photos/goney/5929632971/">Goneys</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://meiopixel.com.br/2012/03/06/prefixos-no-css-o-que-sao-e-como-utiliza-los-corretamente.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O uso da tecnologia e algo mais em prol do aprendizado</title>
		<link>http://meiopixel.com.br/2012/02/15/o-uso-da-tecnologia-e-algo-mais-em-prol-do-aprendizado.html</link>
		<comments>http://meiopixel.com.br/2012/02/15/o-uso-da-tecnologia-e-algo-mais-em-prol-do-aprendizado.html#comments</comments>
		<pubDate>Wed, 15 Feb 2012 22:17:58 +0000</pubDate>
		<dc:creator>Emanuel Felipe</dc:creator>
				<category><![CDATA[Prática Profissional]]></category>

		<guid isPermaLink="false">http://meiopixel.com.br/?p=574</guid>
		<description><![CDATA[Devido a diversos fatores é possível afirmar que o conhecimento certamente nunca foi tão acessível como é hoje. O surgimento da era da computação ubíqua significa que podemos contar com uma grande quantidade de computadores nos mais diversos formatos, sendo que &#8230; <a href="http://meiopixel.com.br/2012/02/15/o-uso-da-tecnologia-e-algo-mais-em-prol-do-aprendizado.html">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Devido a diversos fatores é possível afirmar que o conhecimento certamente nunca foi tão acessível como é hoje. O surgimento da <a href="http://meiopixel.com.br/2012/02/01/mark-weiser-e-as-tres-eras-da-computacao.html">era da computação ubíqua</a> significa que podemos contar com uma grande quantidade de computadores nos mais diversos formatos, sendo que muitos deles podem funcionar como ferramentas de aprendizado para diferentes necessidades. A Internet por sua vez possibilita o acesso universal a um gigantesco universo de informação e interatividade totalmente sem precedentes.</p>
<h2>Os impactos da tecnologia no aprendizado</h2>
<p>No vídeo abaixo é possível assistir a uma entrevista gravada ainda no ano de 1988. O entrevistador Bill Moyers conversa com o brilhante <a href="http://pt.wikipedia.org/wiki/Isaac_Asimov">Isaac Asimov</a> sobre passado e futuro do aprendizado, considerando principalmente o impacto que futuras tecnologias causarão (em teoria) na maneira em como estudamos.</p>
<!-- Enhanced YouTube Shortcode -->
<object style="height: 340px; width: 600px">
<param name="movie" value="http://www.youtube.com/v/CI5NKP1y6Ng?version=3&fs=1&hd=1&autohide=1&rel=0"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowScriptAccess" value="always"></param>
<embed src="http://www.youtube.com/v/CI5NKP1y6Ng?version=3&fs=1&hd=1&autohide=1&rel=0" type="application/x-shockwave-flash"	allowfullscreen="true" 
allowScriptAccess="always" width="600" height="340"></embed>
</object>
<p>O famoso escritor descreve um futuro onde as novas tecnologias permitiriam um modelo completamente inédito de ensino. Através de computadores conectados a grandes bases de conhecimento cada pessoa seria capaz de estudar apenas aquilo que lhe interessar, e ainda no seu próprio ritmo, no seu próprio tempo e sem sair de casa. Desta maneira existiria um interesse maior no aprendizado, já que este deixaria de ser uma simples imposição social para <strong>ser uma atividade genuinamente interessante</strong>.</p>
<p>Mais de duas décadas já se passaram desde que a entrevista em questão foi gravada, e é possível afirmar que as previsões tecnológicas foram certeiras. Os computadores já são muito populares e cada vez mais acessíveis, e a Internet permite a existência e o acesso a grandes bases dos mais diversos tipos de conhecimento onde os usuários podem se comunicar e interagir uns com os outros.</p>
<p>Infelizmente não se pode dizer o mesmo das previsões sociais. Mesmo contando com o fato de que as ferramentas disponíveis para o aprendizado estão melhores do que nunca, isso não foi suficiente para que ocorresse uma revolução na maneira como aprendemos. Ainda existem barreiras que impedem que a maioria das pessoas desenvolva um legítimo interesse pelo estudo e o carregue por toda a sua vida.</p>
<h2>Os problemas que a tecnologia sozinha não resolve</h2>
<p>Com certeza existe quem tire proveito de todas essas novas tecnologias para facilitar seu aprendizado e até mesmo para permitir o estudo de determinados conteúdos que sem elas sequer seria possível, mas essa é apenas uma minoria. Para a grande maioria das pessoas o estudo ainda é encarado de maneira negativa, como uma obrigação social com prazo de encerramento.</p>
<h3>O aprendizado deve ser legitimamente interessante</h3>
<p>Embora muitas tecnologias com grande potencial de tornar o aprendizado interessante e até mesmo divertido já existam, estas nem sempre se encontram disponíveis nas escolas e nas instituições de ensino superior. Porém, até mesmo quando encontram-se ainda existe o risco de que a instituição não conte com profissionais preparados para explorá-las de maneira adequada.</p>
<p>Isso se deve pelo fato de que muitas instituições ainda acreditam que o investimento em equipamentos de ponta é o único tipo necessário, quando na realidade a capacitação dos profissionais para um uso adequado destas tecnologias pode ser o grande diferencial. Que tal um exemplo simples? Um projetor multimídia pode agregar valor para aula ou simplesmente deixar os alunos sonolentos, sendo que o resultado não depende diretamente da tecnologia, mas sim da maneira como ela é utilizada.</p>
<p>Um exemplo ainda mais atual são os recentemente anunciados <a href="http://www.apple.com/education/ibooks-textbooks/">iBooks textbooks para iPads</a>, da Apple. A ideia é ótima e torço para que dê certo (o conceito, não a tentativa de monopolizar a educação obrigando editoras a publicarem apenas no iBooks e estudantes a utilizarem apenas o iPad), mas deverá ser realizado um trabalho muito bem elaborado para que estes materiais tornem o aprendizado uma atividade interessante. Mais interessante do que trocar de aplicativo para jogar Angry Birds, por exemplo.</p>
<div id="attachment_795" class="wp-caption alignnone" style="width: 648px"><img class="size-full wp-image-795" title="iBooks-textbooks-para-iPads" src="http://meiopixel.com.br/wp-content/uploads/2012/02/iBooks-textbooks-para-iPads.jpg" alt="" width="638" height="515" /><p class="wp-caption-text">iBooks textbooks para iPad: um grande desafio pela frente.</p></div>
<h3>O aprendizado deve ser constante e sem fim</h3>
<p>Muito semelhante ao cenário antiquado descrito por Asimov, o nosso ensino infelizmente ainda é baseado na ideia de que um dia os estudos são finalmente “concluídos”, ou seja, a grande maioria das pessoas ainda considera o estudo como uma espécie de fardo, que uma vez concluído nunca mais será necessário estudar novamente. <strong>Este pensamento não poderia ser mais equivocado</strong>.</p>
<p>Antigamente o objetivo comum era concluir o ensino médio para finalmente considerar-se “livre”, para tornar-se um verdadeiro adulto (inclusive, como pode ser constatado no vídeo, é comum a um jovem que abandona os estudos considerar-se prematuramente um adulto). Hoje essa sensação é prometida ao término de uma graduação, ou até mesmo de uma pós-graduação, mas mesmo que as pessoas possuam um passo a mais em sua educação o problema continua o mesmo.</p>
<p>Em um mundo globalizado e com um mercado extremamente competitivo o aprendizado deve ser constante, caso contrário você corre o risco de tornar-se obsoleto. Mas este não é o único bom motivo para dar continuidade aos estudos, talvez o melhor motivo de todos seja o simples fato de que <strong>o aprendizado aprimora a sua mente</strong>, e esta sem dúvidas é uma sensação sem igual que apenas quem já consegue gostar de estudar conhece.</p>
<h2>Conclusões</h2>
<p>Apesar das grandes evoluções tecnológicas, a qualidade do aprendizado somente poderá apresentar uma melhoria significativa quando pelo menos dois requisitos fundamentais forem atendidos. Primeiramente o ato de estudar deve ser trabalhado de modo a tornar-se uma atividade genuinamente interessante, e em segundo lugar as pessoas precisam compreender que o aprendizado deve ser uma atividade constante e sem fim, isto é, perceber que não existe tal coisa como “concluir os estudos”.</p>
<p><em>Crédito da imagem destacada: <a href="http://www.flickr.com/photos/hobocracy/389725895/">HoboElvis</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://meiopixel.com.br/2012/02/15/o-uso-da-tecnologia-e-algo-mais-em-prol-do-aprendizado.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O potencial da web como mídia digital</title>
		<link>http://meiopixel.com.br/2012/02/06/o-potencial-da-web-como-midia-digital.html</link>
		<comments>http://meiopixel.com.br/2012/02/06/o-potencial-da-web-como-midia-digital.html#comments</comments>
		<pubDate>Tue, 07 Feb 2012 01:17:04 +0000</pubDate>
		<dc:creator>Emanuel Felipe</dc:creator>
				<category><![CDATA[Design Gráfico]]></category>

		<guid isPermaLink="false">http://meiopixel.com.br/?p=576</guid>
		<description><![CDATA[Mídias tradicionais, como a mídia impressa em especial, sempre contaram com um grande controle visual por parte de quem produz o conteúdo, enquanto que o usuário por sua vez sempre esteve totalmente sujeito a configurações físicas completamente imutáveis. Por exemplo, &#8230; <a href="http://meiopixel.com.br/2012/02/06/o-potencial-da-web-como-midia-digital.html">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Mídias tradicionais, como a mídia impressa em especial, sempre contaram com um grande controle visual por parte de quem produz o conteúdo, enquanto que o usuário por sua vez sempre esteve totalmente sujeito a configurações físicas completamente imutáveis. Por exemplo, não é possível aumentar o tamanho da fonte de um livro, ele sempre será rigorosamente igual para todos os usuários, que sempre deverão adaptar-se ao livro caso queiram consumi-lo.</p>
<p>Ainda considerando mídias tradicionais, em qualquer meio criativo sempre foi comum que o criador começasse seu trabalho com a seleção de uma “tela”, não necessariamente uma tela de pintura como é o caso de pintores, para um escultor, por exemplo, sua “tela” seria o bloco de pedra que foi escolhido para ser esculpido. O resultado de qualquer criação sempre esteve fadado a herdar as limitações do formato escolhido.</p>
<div id="attachment_586" class="wp-caption alignnone" style="width: 710px"><img class="size-full wp-image-586" title="van-gogh" src="http://meiopixel.com.br/wp-content/uploads/2012/02/van-gogh1.jpg" alt="" width="700" height="453" /><p class="wp-caption-text">Pintado por Van Gogh ou não, um quadro sempre será limitado a sua tela.</p></div>
<h2>O que muda em uma mídia digital</h2>
<p>Com o surgimento das mídias digitais muitas limitações anteriores tornaram-se obsoletas. Por exemplo, um livro pode existir também em formato digital como alternativa ao material impresso, e este novo formato não será tão limitado como o antigo sempre foi. Um livro digital pode ser seu conteúdo buscado (quem nunca quis pressionar <code>CTRL+F</code> em um livro físico que atire a primeira pedra), lido através de diversas configurações de tipografia e até mesmo escutado através de um sintetizador de voz.</p>
<p>O controle, ao menos em teoria, passou a ser completamente do usuário.Mas infelizmente teoria e realidade nem sempre caminham juntas.</p>
<p>John Allsopp escreveu ainda no ano de 2000 um artigo intitulado “<a href="http://www.alistapart.com/articles/dao/">A Dao of Web Design</a>”, que incrivelmente continua relevante mais de uma década depois. Nele o autor argumenta que desde seu início a web vem sendo utilizada de modo a manter antigas limitações do meio impresso, mesmo que estas não sejam mais aplicáveis.</p>
<p>A herança desnecessária de limitações da mídia impressa tornou o web design em uma atividade muito semelhante ao design de materiais impressos: o designer continua com o controle total sobre o resultado e o usuário ainda é obrigado a adaptar-se caso queira consumir algum conteúdo. Uma realidade um tanto quanto incoerente. Sobre o assunto, o autor argumenta (tradução livre):</p>
<blockquote><p>O controle conhecido pelos designers dentro do meio impresso, e muitas vezes desejado no meio da web, é simplesmente uma função da limitação de uma página impressa. Nós devemos abraçar o fato de que a web não possui as mesmas limitações, e projetar para essa flexibilidade. Mas primeiramente, nós devemos “aceitar o fluxo e refluxo das coisas”.</p></blockquote>
<p>O controle proveniente de ferramentas do tipo <em>what you see is what you get</em> (Adobe Dreamweaver e semelhantes, estou olhando para vocês) herdado da mídia impressa, embora muito desejado pelos designers na web com o propósito de reaproveitar seus conhecimentos em produção gráfica impressa, não é coerente com a natureza deste novo meio, e a adoção de tais ferramentas é, na verdade, prejudicial.</p>
<p>Sem dúvidas, o primeiro passo para se começar a explorar o verdadeiro potencial de uma mídia digital, como é o caso da web, é compreender que o controle total do designer sobre uma página impressa é na verdade uma função da limitação do meio impresso, ou seja, possuir um controle total deve ser o papel de um web designer.</p>
<h2>O verdadeiro papel do web designer</h2>
<p>De início pode parecer bastante desconfortável a ideia de que seu site ou aplicação web não aparecerá de maneira idêntica para todos os usuários, mas de fato isso nunca foi coerente com o meio e é cada vez mais impossível. Vou explicar o motivo.</p>
<p>Considerando a <a href="http://meiopixel.com.br/2012/02/01/mark-weiser-e-as-tres-eras-da-computacao.html">computação ubíqua</a>, hoje mais do que nunca cada usuário pode utilizar um dispositivo completamente diferente para navegar na web, como desktops, laptops, tablets e smartphones (isso para mencionar apenas os mais comuns e disponíveis no mercado enquanto escrevo este artigo). Cada um destes tipos de dispositivos apresenta tamanhos de tela e resoluções bem particulares, modelos de interação diferenciados (teclados físicos, telas sensíveis ao toque, comandos de voz e assim por diante), além de muitas outras características relevantes.</p>
<p>Este novo cenário, que envolve uma grande mudança na maneira como utilizamos computadores e também no próprio conceito social de o que é um computador, revela que simplesmente <strong>não é possível que uma interface seja mostrada de maneira idêntica  em todos os dispositivos</strong>. Em vez de tentar lutar contra essa realidade, é muito mais interessante abraçar a natureza polimórfica da web e projetar produtos flexíveis e adaptáveis, sendo este o verdadeiro papel do web designer.</p>
<div id="attachment_588" class="wp-caption alignnone" style="width: 710px"><img class="size-full wp-image-588" title="computacao-ubiqua" src="http://meiopixel.com.br/wp-content/uploads/2012/02/computacao-ubiqua.jpg" alt="" width="700" height="453" /><p class="wp-caption-text">Diferentes dispositivos requerem interfaces flexíveis e adaptáveis.</p></div>
<p>Notou como o paradigma de uma mídia digital é completamente diferente do paradigma de uma mídia tradicional, como a impressa? Isso significa que é um grande equívoco considerar o web design como sendo uma atividade semelhante ao design de materiais impressos. Como acabei de dizer no parágrafo anterior e irei repetir, <strong>o verdadeiro papel do web designer é o de projetar produtos flexíveis e adaptáveis</strong>.</p>
<h2>Conclusões</h2>
<p>A web sem dúvidas apresenta um grande potencial. Mas para que este potencial seja totalmente explorado é de extrema importância compreender os conceitos que envolvem esta mídia digital. Apenas compreendendo estes conceitos é possível abandonar as limitações obsoletas de outras mídias que a antecederam e finalmente conhecer o verdadeiro papel do web designer. E então, está pronto para projetar sites e aplicações web flexíveis e adaptáveis?</p>
]]></content:encoded>
			<wfw:commentRss>http://meiopixel.com.br/2012/02/06/o-potencial-da-web-como-midia-digital.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mark Weiser e as três eras da computação</title>
		<link>http://meiopixel.com.br/2012/02/01/mark-weiser-e-as-tres-eras-da-computacao.html</link>
		<comments>http://meiopixel.com.br/2012/02/01/mark-weiser-e-as-tres-eras-da-computacao.html#comments</comments>
		<pubDate>Wed, 01 Feb 2012 02:05:21 +0000</pubDate>
		<dc:creator>Emanuel Felipe</dc:creator>
				<category><![CDATA[Fundamentos]]></category>

		<guid isPermaLink="false">http://meiopixel.com.br/?p=446</guid>
		<description><![CDATA[Quando o assunto é projetar e desenvolver sites e aplicações web visando sempre o máximo de qualidade, além de compreender exatamente o que é a Internet e o que é a web, é de suma importância conhecer um pouco da &#8230; <a href="http://meiopixel.com.br/2012/02/01/mark-weiser-e-as-tres-eras-da-computacao.html">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Quando o assunto é projetar e desenvolver sites e aplicações web visando sempre o máximo de qualidade, além de <a title="Compreendendo o que é a Internet e o que é a web" href="http://meiopixel.com.br/2012/01/09/compreendendo-o-que-e-a-internet-e-o-que-e-a-web.html">compreender exatamente o que é a Internet e o que é a web</a>, é de suma importância conhecer um pouco da história da própria computação e seus paradigmas ao longo dos anos, já que este é o meio onde Internet e web estão envolvidas. Para este propósito abordarei um pouco do trabalho de Mark Weiser, que é considerado o “pai da computação ubíqua”.</p>
<p>Weiser foi um importante pesquisador que trabalhou entre os anos de 1988 e 1999 no antigo e amplamente conhecido centro de pesquisas da Xerox situado em Palo Alto, que talvez você conheça pelo nome de “Xerox PARC”. Esse centro de pesquisa é digno de ser lembrado por ser o ser berço de diversas invenções que revolucionaram a maneira como utilizamos computadores, entre elas posso citar nada menos do que o mouse a interface gráfica para usuários.</p>
<p>Em seu notável trabalho, o pesquisador define a computação como possuindo três grandes eras ao longo de sua história, sendo que cada uma dessas eras apresenta um paradigma único que a diferencia das demais. As três grandes eras descritas por Weiser são: <strong>a era de um computador para muitos usuários</strong>, <strong>a era de um computador por usuário</strong> e <strong>a era da computação ubíqua</strong>. Abaixo abordarei cada uma delas, explicando o seu contexto histórico e tecnológico, assim como suas principais características.</p>
<h2>A era de um computador para muitos usuários</h2>
<p>A primeira era de todas, como não poderia ser diferente, está diretamente ligada ao próprio surgimento da computação. Os primeiros computadores a serem construídos possuíam características físicas que hoje são no mínimo surpreendentes, eles eram demasiadamente grandes, a ponto de ocuparem salas inteiras ou até mesmo todo um prédio, e também bastante caros. Tais limitações levaram a este momento histórico ser caracterizado pelo acesso simultâneo de diversos usuários a um único computador.</p>
<p>Talvez o exemplo mais simples deste tipo de uso seja o dos antigos mainframes que existiam em determinadas universidades, eles eram acessados por diversos estudantes ao mesmo tempo, acesso este realizado através de diferentes terminais com interfaces de linha de comando. Este foi um modelo encontrado com bastante facilidade nas universidades estadunidenses durante os anos que precederam o surgimento e a popularização dos computadores pessoais.</p>
<div id="attachment_455" class="wp-caption alignnone" style="width: 810px"><img class=" wp-image-455" title="a-era-de-um-computador-para-muitos-usuarios" src="http://meiopixel.com.br/wp-content/uploads/2012/01/a-era-de-um-computador-para-muitos-usuarios.jpg" alt="" width="800" height="600" /><p class="wp-caption-text">A era de um computador para muitos usuários.</p></div>
<h2>A era de um computador por usuário</h2>
<p>É curioso o fato de que em determinados momentos históricos pode ter sido muito difícil imaginar que algum dia os computadores seriam pequenos e baratos o suficiente para que praticamente qualquer pessoa pudesse adquirir o seu. Mas foi apenas questão de tempo para que estas limitações fossem superadas, e como consequência a própria computação passou a possuir um paradigma completamente novo, o paradigma do computador como objeto pessoal.</p>
<p>O surgimento do paradigma do computador pessoal, proveniente da popularização destes, foi um grande marco. Neste período foi possível que o computador deixa-se de ser o objeto público descrito na era anterior. Agora o computador passou a ser um objeto pessoal como tantos outros, e que como o próprio nome dado ao período já sugere, é utilizado apenas por uma pessoa por vez. Este paradigma lhe parece familiar? Mesmo sendo antigo ele ainda é bastante atual. Mas por quanto tempo?</p>
<div id="attachment_456" class="wp-caption alignnone" style="width: 810px"><img class=" wp-image-456" title="a-era-de-um-computador-por-usuario" src="http://meiopixel.com.br/wp-content/uploads/2012/01/a-era-de-um-computador-por-usuario.jpg" alt="" width="800" height="600" /><p class="wp-caption-text">A era de um computador por usuário.</p></div>
<h2>A era da computação ubíqua</h2>
<p>Mark Weiser cunhou o termo “computação ubíqua” para descrever sua visão para o futuro  da computação, que, segundo o autor, seria caracterizado pela existência de diversos computadores que seriam todos utilizados por um único usuário, ou seja, um modelo inverso ao paradigma da primeira era da computação. Pode parecer estranho e pouco prático que uma pessoa venha a utilizar diversos computadores, mas <strong>a ideia é que cada computador possua formas e funções diferenciadas</strong>.</p>
<p>Embora o paradigma da era anterior ainda seja forte no momento em que escrevo este artigo, hoje mesmo já existe um crescente número de dispositivos que fazem cada vez mais parte do nosso dia-a-dia, com destaque para smartphones e tablets. Cada um destes dispositivos é tecnicamente um computador, e cada um apresenta características de uso bastante diferentes dos demais. Deste modo <strong>a era da computação ubíqua é uma descrição bastante fiel do rumo que estamos presenciando para a computação</strong>, aos poucos este novo paradigma estará presente cada vez mais em nossas vidas.</p>
<p>Weiser ainda acredita que o computador, assim como diversas outras tecnologias mais simples já consolidadas em nossas vidas, tende a “desaparecer”, mas não no sentido de deixar de existir, e sim no de deixar de ser percebido, tamanha a sua integração com o nosso dia-a-dia. Seguindo a mesma lógica, a Internet e a web também são grandes candidatas a “desaparecer”, conforme evoluem e estão presentes cada vez mais em nossas vidas é possível que comecem a se tornar “invisíveis” para seus usuários, ou seja, indistinguíveis do que o autor chama de “o tecido da vida cotidiana”.</p>
<div id="attachment_457" class="wp-caption alignnone" style="width: 810px"><img class="size-full wp-image-457" title="a-era-da-computacao-ubiqua" src="http://meiopixel.com.br/wp-content/uploads/2012/01/a-era-da-computacao-ubiqua.jpg" alt="" width="800" height="600" /><p class="wp-caption-text">A era da computação Ubíqua.</p></div>
<h2>Conclusões</h2>
<p>Prever o futuro não é uma tarefa fácil, é possível que o paradigma do computador pessoal esteja longe de ser extinto, sendo assim destinado a coexistir com o paradigma da computação ubíqua. Mas também é possível que nos próximos anos a computação ubíqua substitua totalmente o conceito de computador pessoal. O próprio Steve Jobs, que foi um dos responsáveis pela popularização dos computadores pessoais, afirmava em suas apresentações que já estamos na “era pós PC”.</p>
<p>De qualquer maneira é possível notar que o modo como utilizamos computadores vêm sofrendo grandes alterações desde o início da computação. No momento que escrevo este artigo, embora o paradigma da segunda era descrita por Weiser ainda predomine, posso afirmar que a computação ubíqua já é uma realidade para um número cada vez maior de pessoas, e isso definitivamente deve ser levado em consideração no momento de projetar e construir produtos baseados na web, pelo menos por quem busca a excelência em seus trabalhos.</p>
<p>Se você preza por qualidade, em pouco tempo é bastante provável que seu produto precise funcionar em desktops, laptops, tablets, smartphones, televisões e qualquer outro dispositivo atual ou futuro que vier a possuir conectividade e um navegador web. E como cada um desses produtos apresenta uma interação humano-computador diferenciada, é crucial que a interface do seu produto adapta-se da melhor maneira possível para cada um destes eventuais modelos de interação. Tudo isso certamente será bastante trabalhoso, mas acredito que também bastante gratificante.</p>
]]></content:encoded>
			<wfw:commentRss>http://meiopixel.com.br/2012/02/01/mark-weiser-e-as-tres-eras-da-computacao.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como instalar manualmente o Google Analytics no WordPress</title>
		<link>http://meiopixel.com.br/2012/01/23/como-instalar-manualmente-o-google-analytics-no-wordpress.html</link>
		<comments>http://meiopixel.com.br/2012/01/23/como-instalar-manualmente-o-google-analytics-no-wordpress.html#comments</comments>
		<pubDate>Mon, 23 Jan 2012 16:39:15 +0000</pubDate>
		<dc:creator>Emanuel Felipe</dc:creator>
				<category><![CDATA[Desenvolvimento Back-end]]></category>

		<guid isPermaLink="false">http://meiopixel.com.br/?p=402</guid>
		<description><![CDATA[O WordPress é um sistema gerenciador de conteúdo bastante popular em todo o mundo, e também muito interessante por sua facilidade de uso e flexibilidade através de temas e plugins. O Google Analytics por sua vez é um ótimo serviço gratuito &#8230; <a href="http://meiopixel.com.br/2012/01/23/como-instalar-manualmente-o-google-analytics-no-wordpress.html">Continuar lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://wordpress.org/">WordPress</a> é um sistema gerenciador de conteúdo bastante popular em todo o mundo, e também muito interessante por sua facilidade de uso e flexibilidade através de temas e plugins. O <a href="http://www.google.com/analytics/">Google Analytics</a> por sua vez é um ótimo serviço gratuito para rastrear e analisar o tráfego em sites na web. Neste artigo abordarei de maneira direta e técnica uma solução bastante simples para inserir o serviço do Google Analytics ao WordPress manualmente, isto é, sem depender de plugins.</p>
<h2>Motivos para não utilizar um plugin para essa tarefa</h2>
<p>A funcionalidade de adicionar plugins ao WordPress é realmente muito interessante, ainda mais aliada ao repositório oficial que permite buscar e instalar novos plugins com grande facilidade dentro do próprio painel de administração do sistema. Entretanto, ao escolher instalar um plugin você pode acabar adquirindo uma solução demasiadamente complexa a qual você não controla precisamente o funcionamento, e que de certo modo pode poluir a base de dados da sua instalação do WordPress.</p>
<p>Plugins podem sim ser muito úteis em diversas ocasiões, principalmente para pessoas leigas, mas determinadas tarefas são tão simples de serem realizadas manualmente por pessoas não leigas que não há necessidade de sair instalando plugins os quais você não possui total controle sobre o seu funcionamento. É por esse motivo que elaborei esta simples solução de como inserir o <em>tracker</em> do Google Analytics no WordPress, e estarei disponibilizado o código em questão logo abaixo.</p>
<h2>O código necessário para inserir o Google Analytics</h2>
<pre class="brush: php; title: ; notranslate">
&lt;?php

/**
 * As seguintes linhas deverão ser colocadas ao final do arquivo.
**/

function insertGoogleAnalytics()
{
	if ( !is_user_logged_in() )
	{
	?&gt;

		&lt;script type=&quot;text/javascript&quot;&gt;

			var _gaq = _gaq || [];
			_gaq.push(['_setAccount', 'UA-9999999-9']); //substitua &quot;UA-9999999-9&quot; pelo seu código do Google Analytics

			//descomente para permitir um domínio com vários subdomínios
			//_gaq.push(['_setDomainName', 'dominio.com.br']); //substitua &quot;dominio.com.br&quot; pelo seu domínio

			//descomente para permitir vários domínios de nível superior
			//_gaq.push(['_setAllowLinker', true]);

			_gaq.push(['_trackPageview']); 

			(function() {
				var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
				ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
				var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
			})();

		&lt;/script&gt;

	&lt;?php
	}
}

add_action('wp_head', 'insertGoogleAnalytics');
</pre>
<p>Este código deve ser inserido no arquivo <code>functions.php</code>, que é um arquivo opcional para cada tema desenvolvido para o WordPress. Praticamente todos os temas que são criados fazem uso deste arquivo, e se este for o caso, o código acima deverá ser inserido ao final do arquivo existente, caso contrário você pode criar normalmente o arquivo em branco na pasta raiz do tema que utiliza e então inserir o código em questão.</p>
<p>O primeiro passo envolvido na produção deste código é declarar uma função nomeada <code>insertGoogleAnalytics</code> (que na verdade é um procedimento por não possuir retorno, mas como o PHP não distingue os dois, continuarei chamando de função). Tal função será responsável por escrever nas páginas em HTML que serão geradas dinamicamente o código responsável pelo funcionamento do Google Analytics, que trata-se de um trecho em JavaScript que é fornecido pelo próprio serviço.</p>
<p>Por ser comum que o autor fique visitando o próprio blog repetidamente para verificar se tudo está correto, para visualizar e revisar artigos, ou por qualquer outro motivo, não é interessante que as suas próprias visitas sejam contabilizadas nas estatísticas. Tendo em mente este motivo, a função citada no parágrafo anterior possui um bloco condicional que utiliza a negação do método <a href="http://codex.wordpress.org/Function_Reference/is_user_logged_in"><code>is_user_logged_in</code></a> do WordPress, ou seja, o código dentro deste bloco será executado <strong>apenas quando o visitante não estiver logado.</strong></p>
<p>Como o código fornecido pelo Google Analytics está em JavaScript (linguagem de programação <em>front-end</em>), e estamos trabalhando com PHP (linguagem de programação <em>back-end</em>), a solução que utilizei dentro do bloco condicional mencionado no parágrafo anterior foi delimitar o encerramento do código PHP, inserir o JavaScript, e então inserir novamente a tag de abertura do PHP. Um <code>echo</code> com concatenações (ou até mesmo diversos deles) também funcionaria, mas seria muito mais trabalhoso para um grande bloco de JavaScript como este.</p>
<p>No momento em que escrevo este artigo existem três opções oferecidas pelo Google Analytics na etapa de solicitar o código de rastreamento, são elas: um único domínio, um domínio com vários subdomínios e vários domínios de nível superior. O código acima está de acordo com a primeira opção, para a segunda opção basta descomentar a linha 19, e para a terceira opção basta descomentar as linhas 19 e 21. Para que sejam facilmente identificadas ambas as linhas estão isoladas das demais e devidamente demarcadas com comentários que explicam sua função.</p>
<p>A função responsável por inserir o código de rastreamento na página já está pronta, mas ela é apenas uma função, para que o seu código seja de fato executado ela deverá ser invocada em algum momento. Por esse motivo a função <a href="http://codex.wordpress.org/Function_Reference/add_action"><code>add_action</code></a> do WordPress é chamada ao final do código. Com estes parâmetros a nossa <code>insertGoogleAnalytics</code> será executada no cabeçalho, inserindo o código de rastreamento no <a href="http://support.google.com/googleanalytics/bin/answer.py?hl=pt-BR&amp;answer=161379">local recomendado pela pela Google</a> (caso não funcione, certifique-se de que seu tema execute a ação <a href="http://codex.wordpress.org/Plugin_API/Action_Reference/wp_head"><code>wp_head</code></a>).</p>
<h2>Conclusões</h2>
<p>Quando nos acomodamos com determinadas facilidades destinadas a leigos corremos o risco de não perceber como essas atividades poderiam ser realizadas manualmente sem grandes esforços, e ainda trazendo resultados os quais possuímos total controle sobre. Neste artigo foi possível averiguar a relativamente facilidade para inserir manualmente o código de rastreamento do Google Analytics em uma instalação do WordPress, posso dizer que trata-se de uma tarefa totalmente acessível a qualquer pessoa que trabalhe com desenvolvimento web, e o resultado estará totalmente ao seu controle se você souber o que está fazendo.</p>
]]></content:encoded>
			<wfw:commentRss>http://meiopixel.com.br/2012/01/23/como-instalar-manualmente-o-google-analytics-no-wordpress.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

