<?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>Tutsmais</title>
	<atom:link href="http://tutsmais.com.br/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://tutsmais.com.br/blog</link>
	<description>+ tutoriais e dicas</description>
	<lastBuildDate>Mon, 06 May 2013 12:51:36 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Slides de Front-end do OlhóSEO</title>
		<link>http://tutsmais.com.br/blog/slides/slides-de-front-end-do-olhoseo/</link>
		<comments>http://tutsmais.com.br/blog/slides/slides-de-front-end-do-olhoseo/#comments</comments>
		<pubDate>Sun, 05 May 2013 18:11:12 +0000</pubDate>
		<dc:creator>ofelquis</dc:creator>
				<category><![CDATA[Slides]]></category>

		<guid isPermaLink="false">http://tutsmais.com.br/blog/?p=1748</guid>
		<description><![CDATA[<p>Nos dias 3 e 4 de maio(2013) aconteceu o OlhóSEO em Floripa, eu infelizmente não pude ir ;´( mas pelo o que acompanhei no Twitter, o evento foi muito bom. Como eu vivo estudando mais e mais, resolvi escrever um &#8230; <a href="http://tutsmais.com.br/blog/slides/slides-de-front-end-do-olhoseo/">Continue lendo <span class="meta-nav">&#8594;</span></a></p><p>O post <a href="http://tutsmais.com.br/blog/slides/slides-de-front-end-do-olhoseo/">Slides de Front-end do OlhóSEO</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Nos dias 3 e 4 de maio(2013) aconteceu o <a href="http://olhoseo.com.br/" target="_blank">OlhóSEO</a> em Floripa, eu infelizmente não pude ir ;´( mas pelo o que acompanhei no Twitter, o evento foi muito bom.</p>
<p>Como eu vivo estudando mais e mais, resolvi escrever um post para citar todos os slides de Front-end do OlhóSEO, vamos lá.<br />
<span id="more-1748"></span></p>
<h1>Primeiro dia</h1>
<h2><a href="https://twitter.com/shiota" target="_blank">Eduardo Shiota</a> &#8211; Front-end para Ecommerce</h2>
<p><script async class="speakerdeck-embed" data-id="535beaa096470130d49d4a0bed3063c9" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script></p>
<h2><a href="https://twitter.com/sergio_caelum" target="_blank">Sérgio Lopes</a> &#8211; Design Responsivo por uma Web única</h2>
<p><iframe src="http://www.slideshare.net/slideshow/embed_code/20505297" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen> </iframe></p>
<h2><a href="https://twitter.com/diegoeis" target="_blank">Diego Eis</a> &#8211; O papel do desenvolvedor Front-end</h2>
<p><script async class="speakerdeck-embed" data-id="503b9c4754097b0002057eac" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script></p>
<h2><a href="https://twitter.com/almirfilho" target="_blank">Almir Filho</a> &#8211; Web Audio Hero</h2>
<p><script async class="speakerdeck-embed" data-id="d97154106db601306d261231392858a6" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script></p>
<h1>Segundo dia</h1>
<h2><a href="https://twitter.com/priscillaac" target="_blank">Priscilla Albuquerque</a> &#8211; Desenvolvimento em tempos de UX &#8211; Como projetar para usuários exigentes</h2>
<p><iframe src="http://www.slideshare.net/slideshow/embed_code/20602193" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen> </iframe> </p>
<h2><a href="https://twitter.com/GugaAlves" target="_blank">Guga Alves</a> &#8211; Otimização Front-end para WordPress</h2>
<p><iframe src="http://www.slideshare.net/slideshow/embed_code/20554557" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen> </iframe></p>
<h2><a href="https://twitter.com/caio_gondim" target="_blank">Caio Gondim</a> &#8211; HTML5 Sensitivo: Seu browser no plano astral</h2>
<p><script async class="speakerdeck-embed" data-id="50913356b8afea0002002915" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script></p>
<h2><a href="https://twitter.com/bernarddeluna" target="_blank">Bernard de Luna</a> &#8211; Modularização CSS</h2>
<p><iframe src="http://www.slideshare.net/slideshow/embed_code/13878948" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen> </iframe> </p>
<h2><a href="https://twitter.com/fnando" target="_blank">Nando Vieira</a> &#8211; Organizando o JavaScript (Redux)</h2>
<p><script async class="speakerdeck-embed" data-id="1d40b210971d0130dc6b2a1468281d21" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script></p>
<h2><a href="https://twitter.com/zenorocha" target="_blank">Zeno Rocha</a> &#8211; Como Perder Peso (no browser)</h2>
<p><script async class="speakerdeck-embed" data-id="31ed55c06ab8013086e822000a8f982b" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script></p>
<p>O post <a href="http://tutsmais.com.br/blog/slides/slides-de-front-end-do-olhoseo/">Slides de Front-end do OlhóSEO</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://tutsmais.com.br/blog/slides/slides-de-front-end-do-olhoseo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como fazer um build customizado do jQuery</title>
		<link>http://tutsmais.com.br/blog/javascript-2/como-fazer-um-build-do-jquery/</link>
		<comments>http://tutsmais.com.br/blog/javascript-2/como-fazer-um-build-do-jquery/#comments</comments>
		<pubDate>Wed, 24 Apr 2013 21:08:03 +0000</pubDate>
		<dc:creator>ofelquis</dc:creator>
				<category><![CDATA[javaScript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[custom]]></category>
		<category><![CDATA[grunt]]></category>
		<category><![CDATA[nodejs]]></category>

		<guid isPermaLink="false">http://tutsmais.com.br/blog/?p=1723</guid>
		<description><![CDATA[<p>O jQuery é uma lib que contem muitos funções que tornam fazem nosso trabalho ser executado com grande velocidade, a pergunta que eu quero que você reflita é: Precisamos de todas as funcionalidades do jQuery ou apenas de algumas? Por &#8230; <a href="http://tutsmais.com.br/blog/javascript-2/como-fazer-um-build-do-jquery/">Continue lendo <span class="meta-nav">&#8594;</span></a></p><p>O post <a href="http://tutsmais.com.br/blog/javascript-2/como-fazer-um-build-do-jquery/">Como fazer um build customizado do jQuery</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://tutsmais.com.br/blog/wp-content/uploads/2011/11/jquery-logo.png"><img src="http://tutsmais.com.br/blog/wp-content/uploads/2011/11/jquery-logo.png" alt="jquery-logo" width="268" height="268" class="alignleft size-full wp-image-1037" /></a>O jQuery é uma lib que contem muitos funções que tornam fazem nosso trabalho ser executado com grande velocidade, a pergunta que eu quero que você reflita é: Precisamos de todas as funcionalidades do jQuery ou apenas de algumas?<br />
<span id="more-1723"></span><br />
Por exemplo, se você precisa fazer animações com jQuery pra que você precisa dos métodos de Ajax dele? Não seria fantástico se pudessemos tirar essa parte de Ajax e deixar só o que precisamos? Pois então é isso que eu vou ensinar neste post.</p>
<h2>Programas que você precisa ter instalados</h2>
<p>Pra fazer esse Custom Build do jQuery você precisa ter instalado:</p>
<ul>
<li><a target="_blank" href="http://nodejs.org/">Nodejs.org</a></li>
<li><a target="_blank" href="http://git-scm.com/">git-scm.com</a></li>
<li><a target="_blank" href="http://gruntjs.com">gruntjs.com</a></li>
</ul>
<p>Tenha certeza que esses programas estão instalados corretamente antes de continuar os passos deste post.</p>
<h2>Clone o repositório do jQuery</h2>
<p><code><br />
	git clone git://github.com/jquery/jquery.git<br />
</code></p>
<p>Em seguida vá para a pasta <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">jquery</spam> que foi criada, e rode o comando:</p>
<p><code><br />
	npm install<br />
</code><br />
Nota: Dependendo do seu sistema operacional, você precisará usar um <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">sudo</spam> antes do <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">npm install</spam></p>
<p>Este comando irá instalar todas as dependências do projeto, isso pode demorar alguns minutos dependendo da velocidade da sua conexão.</p>
<p>Depois de todas as depêndencias instaladas você vai ter uma estrutura parecidade com essa aqui:</p>
<p><a href="http://tutsmais.com.br/blog/wp-content/uploads/2013/04/jquery-estrutura-de-pastas.png"><img src="http://tutsmais.com.br/blog/wp-content/uploads/2013/04/jquery-estrutura-de-pastas.png" alt="jquery-estrutura-de-pastas" width="447" height="371" class="aligncenter size-full wp-image-1737" /></a></p>
<p>Agora que já aprendemos como clonar e instalar as dependências do jQuery, vamos fazer nosso primeiro build.</p>
<h2>Fazendo o primeiro build do jQuery</h2>
<p>Para fazer um build do jQuery apenas rode em seu terminal:<br />
<code><br />
	grunt custom<br />
</code></p>
<p>Com este comando várias tarefas serão executadas e finalmente quando terminar, teremos a ultima versão do jQuery pronta para ser usada. Você poderá conferir que uma pasta chamada <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">dist</spam> foi criada, essa pasta contém o resultado do build, terá um arquivo chamado <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">jquery.js</spam> e outro chamado <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">jquery.min.js</spam> com seu jQuery devidamente minificado.</p>
<p>Não é difícil né? Então vamos pro próximo passo <img src='http://tutsmais.com.br/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h2>Navegue por diferentes versões do jQuery</h2>
<p>Caso você não queira a ultima versão do jQuery, você pode fazer um <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">checkout</spam> em uma outra versão do jQuery e fazer um build dela.</p>
<p>Para ver todas as versões do jQuery execute:<br />
<code><br />
	git tag<br />
</code></p>
<p>Este comando mostrará uma lista de todas as tags(versões) do jQuery, uma lista semelhante a essa:<br />
<a href="http://tutsmais.com.br/blog/wp-content/uploads/2013/04/jquery-lista-de-tags.png"><img src="http://tutsmais.com.br/blog/wp-content/uploads/2013/04/jquery-lista-de-tags.png" alt="jquery-lista-de-tags" width="119" height="366" class="aligncenter size-full wp-image-1738" /></a></p>
<p>Por exemplo se você precisa da versão 1.9.1 do jQuery basta executar:<br />
<code><br />
	git checkout 1.9.1<br />
</code><br />
E em seguida:<br />
<code><br />
	grunt custom<br />
</code></p>
<p>Assim que as tarefas serem concluídas, você já terá seu jQuery 1.9.1 recém tirado do forno disponível na pasta <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">dist</spam> <img src='http://tutsmais.com.br/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h2>Fazendo um build passando parâmetros</h2>
<p>É neste build que realmente fazemos um &#8220;Custom Build&#8221; do jQuery. Cada parâmetro que passamos, corresponde a um modulo do jQuery que não será incluído no build, por exemplo se você precisa de uma versão do jQuery sem nenhum método que manipule o CSS, basta executar o comando <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">grunt custom</spam> passando <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">-css</spam> como parâmetro:</p>
<p><code><br />
	grunt custom:-css<br />
</code></p>
<p>Sem os métodos que manipulam o CSS, nossa versão do jQuery 1.9.1 fica com 76kb, já é bem menos comparado aos 93kb que tem a versão completa.</p>
<p>Algo que você tem que ter em mente, é que quando você coloca um parâmetro ao build, o build também irá retirar todos os modulos que dependem do modulo que você passou como parâmetro. Por exemplo o <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">-css</spam> vai retirar também o modulos <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">-effects</spam> que contem os métodos <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">.animate()</spam>, <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">.slideUp()</spam> etc..</p>
<p>Pra você passar mais de um parâmetro é só ir separando por virgula, por exemplo uma versão do jQuery sem os métodos que manipulam CSS e sem métodos que ajudam a trabalhar com Ajax:<br />
<code><br />
	grunt custom:-css,-ajax<br />
</code></p>
<p>Essa versão do jQuery ficou com apenas 67kb, bom né? <img src='http://tutsmais.com.br/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h2>Conhecendo os modulos que existem</h2>
<p>Todos os nomes dos modulos, são atalhos para o código que esta na pasta <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">/src</spam> assim temos:</p>
<ul>
<li><strong>css:</strong> remove o método .css() e .animate() entre outros;</li>
<li><strong>event-alias:</strong> remove atalhos para eventos como .click(), mousemove() entre outros;</li>
<li><strong>ajax:</strong> remove todos os métodos que trabalham com ajax, como .post(), .getJSON() entre outros e também eventos como .ajaxStart()</li>
<li><strong>ajax/script:</strong> depende de: <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">ajax</spam> remove a capacidade de carregar scripts via tag script;</li>
<li><strong>ajax/jsonp:</strong> depende de: <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">ajax</spam> e <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">ajax/script</spam>, remove a cabacidade de carregar scripts de outros domínios;</li>
<li><strong>ajax/xhr:</strong> depende de: <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">ajax</spam> retira apenas o XMLHTTPRequest</li>
<li><strong>effects:</strong> depende de: <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">css</spam> remove o .animate() e atalhos par ele como .slideUp(), .slideDown() etc&#8230;</li>
<li><strong>offset:</strong> depende de: <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">css</spam> remove os métodos .offset(), .position(), .offsetParent(), .scrollLeft(), e .scrollTop();</li>
<li><strong>dimensions:</strong> depende de: <spam style="background: rgb(236, 236, 236);border: 1px solid silver;border-radius: 4px;padding: 1px">css</spam> Remove os métodos .width(), .height() e as variações de .innerWidth() e .outerWidth();</li>
<li><strong>deprecated:</strong> remove todos os métodos que estão para sair das próximas atualizações do jQuery mas que ainda não foram retirados;</li>
<li><strong>wrap:</strong> remove os métodos .wrap(), .wrapAll(), .wrapInner(), e .unwrap();</li>
<li><strong>sizzle:</strong> remove a Sizzle selector engine do jQuery. Quando este modulo é excluído, é usado outra engine mais simples.</li>
</ul>
<h2>Conclusão</h2>
<p>Usar um custom build é muito útil, pra quer usar todo o jQuery se você quer apenas 1 coisa <img src='http://tutsmais.com.br/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Esperoq que este post tenha sido útil pra você, mais informações sobre este assunto você pode ver no <a target="_blank" href="https://github.com/jquery/jquery">readme do repositório do jQuery</a>.<br />
Até mais.</p>
<p>O post <a href="http://tutsmais.com.br/blog/javascript-2/como-fazer-um-build-do-jquery/">Como fazer um build customizado do jQuery</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://tutsmais.com.br/blog/javascript-2/como-fazer-um-build-do-jquery/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Como usar as funções de manipulação de cor do Sass para criar template a partir de apenas uma cor</title>
		<link>http://tutsmais.com.br/blog/pre-processadores/como-usar-as-funcoes-de-manipulacao-de-cor-do-sass-para-criar-template-a-partir-de-apenas-uma-cor/</link>
		<comments>http://tutsmais.com.br/blog/pre-processadores/como-usar-as-funcoes-de-manipulacao-de-cor-do-sass-para-criar-template-a-partir-de-apenas-uma-cor/#comments</comments>
		<pubDate>Tue, 26 Feb 2013 21:08:57 +0000</pubDate>
		<dc:creator>ofelquis</dc:creator>
				<category><![CDATA[pre-processadores]]></category>
		<category><![CDATA[compass]]></category>
		<category><![CDATA[sass]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://tutsmais.com.br/blog/?p=1688</guid>
		<description><![CDATA[<p>O Sass oferece várias funções que nos permitem manipular cores no CSS. Funções que torna uma cor mais clara ou mais escura, mais cinza, com mais cor. Funções que trabalha com cores HSL, RGB, RGBA que inverte cores enfim. Neste &#8230; <a href="http://tutsmais.com.br/blog/pre-processadores/como-usar-as-funcoes-de-manipulacao-de-cor-do-sass-para-criar-template-a-partir-de-apenas-uma-cor/">Continue lendo <span class="meta-nav">&#8594;</span></a></p><p>O post <a href="http://tutsmais.com.br/blog/pre-processadores/como-usar-as-funcoes-de-manipulacao-de-cor-do-sass-para-criar-template-a-partir-de-apenas-uma-cor/">Como usar as funções de manipulação de cor do Sass para criar template a partir de apenas uma cor</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img src="http://tutsmais.com.br/blog/wp-content/uploads/2013/02/template-facebook-final.jpg" alt="template-facebook-final" width="590" height="490" class="aligncenter" style="width:590px; height: 490px" /><br />
O Sass oferece várias funções que nos permitem manipular cores no CSS. Funções que torna uma cor mais clara ou mais escura, mais cinza, com mais cor. Funções que trabalha com cores HSL, RGB, RGBA que inverte cores enfim. Neste post irei mostrar como usar essas funções para criar um template que apenas passando 1 cor, usando as funções de cores do Sass nós não precisamos fazer mais nada, o Sass já faz tudo para nós.<br />
<span id="more-1688"></span></p>
<h2>Quais funções de cores existem?</h2>
<p>Vamos ver algumas funções interessantes:</p>
<dl>
<dt>lighten($color, $quantidade);</dt>
<dd>Essa função tem como objetivo clariar uma cor, recebe dois parametros o primeiro é a cor a ser manipulada e o segundo é a quantidade de clareamento em porcentagem de 0% a 100%. Por exemplo lighten(#000, 50%); o Sass retorna a cor gray, e se eu por 100% ele retorna a cor white.</dd>
<dt>darken($color, $quantidade);</dt>
<dd>Essa função tem como objetivo escurecer uma cor, recebe dois parametros o primeiro é a cor a ser manipulada e o segundo é a quantidade de escurecimento em porcentagem de 0% a 100%. Por exemplo darken(#fff, 50%); o Sass retorna a cor gray, e se eu por 100% ele retorna a cor black</dd>
<dt>saturate($color, $quantidade);</dt>
<dd>Essa função tem como objetivo tornar uma cor menos saturada em outras palavras com menos cinza e mais cor, aumentando a luminosidade dela. Recebe dois parametros o primeiro é a cor a ser manipulada e o segundo é a quantidade da &#8216;desaturação&#8217; de 0% a 100%. Por exemplo saturate(#d14836, 100%) o Sass retorna #ff2508 que é a cor #d14836 sem o cinza.</dd>
<dt>desaturate($color, $quantidade);</dt>
<dd>Essa função tem como objetivo tornar uma cor mais saturada em outras palavras torna-la em escala de cinza, recebe dois parametros o primeiro é a cor a ser manipulada e o segundo é a quantidade de saturãção de 0% a 100%. Por exemplo desaturate(red, 100%) o Sass retorna gray e se por 50% ele retorna o meio termo entre red e gray, então retorna #bf4040</dd>
<dt>invert($color)</dt>
<dd>Essa função tem como objetivo retorna a cor inversa da cor informada. Recebe apenas um parametro que é a cor que será manipulada. Por exemplo, invert(white) o Sass retorna black e invert(blue) O Sass retorna yellow.</dd>
</dl>
<p>Uma lista completa de funções que manipulam cores você ve na <a href="http://ads.tt/IoECAQ" title="documentação de Funções do Sass" target="_blank">documentação de Funções do Sass</a>.</p>
<p>Tem algumas funções interessante por exemplo red(#bf4040) o Sass retorna o RED do RGB da cor, que no exemplo retornou 191, também tem as funções green($color), blue($color) e muitas outras.</p>
<h2>Para que essas funções do Sass serão úteis para meu dia-a-dia?</h2>
<p>Pensando em como essas funções podem me ajudar, eu descobri que tem gente que precisa usa-las, e tem gente que não tem a minima necessidade de usa-las.</p>
<p>Por exemplo se você é uma cara que trabalha em uma agência web, onde o desenvolvimento rápido e eficiente para a entrega rápida e de qualidade do projeto é o principal foco, provavelmente você não precisará usar as funções mostradas aqui. Mas se você for um cara que esta desenvolvendo um template de WordPress ou e-commerce ou template de qualquer tipo de website, provavelmente essas funções lhe serão muito úteis por que gerar um novo template, a partir de apenas 1 cor, será extremamente mais rápido!</p>
<p>Para demostrar essa velocidade em gerar templates utilizando apenas uma cor como base, usando o Sass, eu criei um HTML que representa a minha página pessoal no Facebook, <a href="http://j.mp/128VB1H" title="confira aqui" target="_blank">confira aqui<a>. e criei algumas outras versões como <a href="http://j.mp/128VGlS" title="magenta" target="_blank">magenta</a>, <a href="http://j.mp/13RHrNJ" title="verde" target="_blank">verde</a>, e <a href="http://j.mp/WgwqHG" title="verde marinho" target="_blank">verde marinho</a>.</p>
<p>Para conseguir encontrar as cores que eu precisava, usei <a href="http://j.mp/YwUmD8" title="essa ferramenta" target="_blank">essa ferramenta</a> que não é muito boa mas ajudou bastante.</p>
<p>Para você ver as funções que eu usei para criar as variações de cores, acesso o <a href="http://j.mp/XApW4H" title="código fonte" target="_blank">código fonte</a> de um CTRL+F procure por &#8220;tenta alcan&#8221; que você vai ver cada lugar onde eu usei as funções.</p>
<h2>ultima questão</h2>
<p>Se você viu que essa funções de cores são fantásticas, talvez esteja se perguntando se também pode gerar imagens adequadas com as cores do novo template. Eu sai a busca de como gerar imagens com Sass e Compass e encontri um plugin chamado <a href="http://j.mp/13RIblV" title="compass-magick" target="_blank">compass-magick</a> que permite criar imagens até com degradê, mas para o que eu julgo util para o template, como por exemplo alterar a cor dos ícones de notificações no topo do Facebook isso eu ainda não consegui fazer. Quando eu conseguir eu escrevo um post explicando.</p>
<h2>Conclusão</h2>
<p>Bom, essas funções são muito bacanas de usar e espero que você tenham gostado do post. Deixe sua opinião ou dúvida nos comentários.</p>
<p>O post <a href="http://tutsmais.com.br/blog/pre-processadores/como-usar-as-funcoes-de-manipulacao-de-cor-do-sass-para-criar-template-a-partir-de-apenas-uma-cor/">Como usar as funções de manipulação de cor do Sass para criar template a partir de apenas uma cor</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://tutsmais.com.br/blog/pre-processadores/como-usar-as-funcoes-de-manipulacao-de-cor-do-sass-para-criar-template-a-partir-de-apenas-uma-cor/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Introdução a Web Speech API</title>
		<link>http://tutsmais.com.br/blog/chrome-2/introducao-a-web-speech-api/</link>
		<comments>http://tutsmais.com.br/blog/chrome-2/introducao-a-web-speech-api/#comments</comments>
		<pubDate>Thu, 21 Feb 2013 20:16:42 +0000</pubDate>
		<dc:creator>ofelquis</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web speech]]></category>

		<guid isPermaLink="false">http://tutsmais.com.br/blog/?p=1668</guid>
		<description><![CDATA[<p>A Web Speech API é uma API de reconhecimento de fala que esta implementada no Chrome 25 e superiores. Neste post vou dar uma visão geral de como ela funciona. Tudo gira em torno de um objeto chamado webkitSpeechRecognition, para &#8230; <a href="http://tutsmais.com.br/blog/chrome-2/introducao-a-web-speech-api/">Continue lendo <span class="meta-nav">&#8594;</span></a></p><p>O post <a href="http://tutsmais.com.br/blog/chrome-2/introducao-a-web-speech-api/">Introdução a Web Speech API</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>A Web Speech API é uma API de reconhecimento de fala que esta implementada no Chrome 25 e superiores. Neste post vou dar uma visão geral de como ela funciona.<br />
<span id="more-1668"></span><br />
Tudo gira em torno de um objeto chamado webkitSpeechRecognition, para saber se o browser tem suporte a Web Speech basta verificar se esse objeto existe, uma maneira de fazer isso é assim:</p>
<pre class="brush: jscript; title: ; notranslate">
if (!('webkitSpeechRecognition' in window)) {
	console.log('Esse browser não suporta');
}
</pre>
<p>O segundo passo para usa-la(o primeiro passo é testar o suporte) é criar uma instancia do objeto webkitSpeechRecognition, assim:</p>
<pre class="brush: jscript; title: ; notranslate">
var recognition = new webkitSpeechRecognition();
</pre>
<p>Se você testar a nossa variável recognition com console.log, vai ver algumas propriedades e eventos interessantes.</p>
<p>para usarmos a API reconhecendo a fala continuamente e com uma prévia do que esta sendo reconhecido temos que setar as propriedades continuous e interimResults como true:</p>
<pre class="brush: jscript; title: ; notranslate">
recognition.continuous = true;
recognition.interimResults = true;
</pre>
<p>Também temos a opção de setar o idioma do reconhecimento de fala, caso você não informe um idioma a API usará o idioma padrão. Então se você estiver em um ambiente em inglês e querer testar a API em português, basta setar a propriedade lang para pt-BR assim:</p>
<pre class="brush: jscript; title: ; notranslate">
recognition.lang = 'pt-BR';
</pre>
<p>A API tem alguns eventos bem intuitivos como:</p>
<pre class="brush: jscript; title: ; notranslate">
recognition.onstart = function() { ... };
recognition.onresult = function(event) { ... };
recognition.onerror = function(event) { ... };
recognition.onend = function() { ... };
</pre>
<p>e também alguns métodos como start e stop para parar e começar o reconhecimento de fala. Se nós executarmos o método start:</p>
<pre class="brush: jscript; title: ; notranslate">
recognition.start();
</pre>
<p>O browser vai mostrar uma barrinha pedindo permissão para usar o reconhecimento de fala, e assim que você começar a falar a API vai começar a disparar o evento onresult, esse evento nos passa alguns dados interessantes e os dados principais que precisamos esta nas propriedades results e resultsIndex, para acessamos o resultado do reconhecimendo de fala basta fazer o seguinte:</p>
<pre class="brush: jscript; title: ; notranslate">
recognition.onresult = function(event) {
	console.log(event.results);
	// event.resultsIndex
};
</pre>
<p>A propriedade results, é um array com objetos em que cada item do array contem um possível resultado do reconhecimento de fala, podemos verificar se já é um resultado final ou não através da propriedade isFinal que é booleana.</p>
<p>Uma característica dessa API que você deve manter em mente é que ela inicia com a propriedade results vazia, e a cada resultado bem sucedido é adicionado um item a ela, por isso que a propriedade resultsIndex é importante, para evitar usar o resultado de uma outra fala, em uma fala atual.</p>
<p>Então se você pretende usar essa API para escrever em um textarea por exemplo poderá fazer mais ou menos assim: </p>
<pre class="brush: jscript; title: ; notranslate">
	recognition.onresult = function(event) {

	    for (var i = event.resultIndex; i &lt; event.results.length; ++i) {

	      if (event.results[i].isFinal) {

	      	// Resultado final
	        resultadoFinal += event.results[i][0].transcript;

	      } else {
			
			// Resultado provisório
			event.results[i][0].transcript;
	      }
	    }
	};
</pre>
<p>Basicamente a Web Speech API é isso, se você esta louco para ver uma demonstração, Glen Shires desenvolveu uma <a href="https://www.google.com/intl/en/chrome/demos/speech.html" title="demo para você escrever emails com essa API" target="_blank">demonstração que você escreve emails com essa API</a> e Brandom Nicholls desenvolveu um <a href="http://iambrandonn.github.com/FlashCards/" title="joguinho de perguntas e respostas" target="_blank">joguinho de perguntas e respostas</a> bem legal. A API esta evoluindo, acredito que logo teremos demonstrações inspiradas no Googles Glasses, com comandos de voz fantásticos.</p>
<p>Se você quiser ficar ligado nas novidades dessa API e outras APIs, participe do <a href="https://groups.google.com/a/chromium.org/forum/?fromgroups=#!forum/chromium-html5" title="grupo Chromium HTML5" target="_blank">grupo Chromium HTML5</a> e de uma olhada na <a href="http://lists.w3.org/Archives/Public/public-speech-api/" title="lista de discussão da W3C" target="_blank">lista de discussão da W3C</a></p>
<p>O post <a href="http://tutsmais.com.br/blog/chrome-2/introducao-a-web-speech-api/">Introdução a Web Speech API</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://tutsmais.com.br/blog/chrome-2/introducao-a-web-speech-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como testar suas aplicações com HTML, CSS e JS de forma rápida e fácil com o http-server do Node.js</title>
		<link>http://tutsmais.com.br/blog/node-js/tutorial-como-usar-um-http-server-com-node-js/</link>
		<comments>http://tutsmais.com.br/blog/node-js/tutorial-como-usar-um-http-server-com-node-js/#comments</comments>
		<pubDate>Sun, 27 Jan 2013 21:36:33 +0000</pubDate>
		<dc:creator>ofelquis</dc:creator>
				<category><![CDATA[Node.js]]></category>

		<guid isPermaLink="false">http://tutsmais.com.br/blog/?p=1649</guid>
		<description><![CDATA[<p>Para os Front-ends que precisam testar aplicações com HTML, CSS e JS de forma rápida e prática, vou mostrar neste post como criar um servidor com um comando super simples no terminal e que sua aplicação ficará acessível em localhost:8080/ &#8230; <a href="http://tutsmais.com.br/blog/node-js/tutorial-como-usar-um-http-server-com-node-js/">Continue lendo <span class="meta-nav">&#8594;</span></a></p><p>O post <a href="http://tutsmais.com.br/blog/node-js/tutorial-como-usar-um-http-server-com-node-js/">Como testar suas aplicações com HTML, CSS e JS de forma rápida e fácil com o http-server do Node.js</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://tutsmais.com.br/blog/sem-categoria/como-usar-um-s…ver-com-nodejs/"><img src="http://tutsmais.com.br/blog/wp-content/uploads/2013/01/http-server-no-nodejs-300x243.png" alt="http-server no node.js" width="300" height="243" class="alignleft size-medium wp-image-1650" /></a> Para os Front-ends que precisam testar aplicações com HTML, CSS e JS de forma rápida e prática, vou mostrar neste post como criar um servidor com um comando super simples no terminal e que sua aplicação ficará acessível em localhost:8080/ como em um passe de mágica.<span id="more-1649"></span></p>
<h2>Primeiro entenda o que é um Static Server</h2>
<p>Um Static Server, é um servidor que trabalha apenas com arquivos estáticos, arquivos estáticos são arquivos que não &#8216;compilados/executados&#8217; no servidor, então HTML, CSS e JS são arquivos estáticos assim como imagens, XML e deve ter outros linguagens. Um arquivo PHP por exemplo não é um arquivo estático, por que ele é &#8216;compilado&#8217; no servidor e depois servido para o client.</p>
<p>Basicamente um Servidor Estático é um servidor apenas com um protocolo HTTP e nada mais.</p>
<p>Vamos instala-lo é muito fácil.</p>
<h2>Instale o Node.JS</h2>
<p>Se você não tem o Node.JS instalado acesse <a href="http://nodejs.org/download/" target="_blank">nodejs.org/download/</a> baixe e instale, tem para Windows, Mac, Linux e até outros =s A instalação é muito simples, e se tiver problemas tem muita coisa no Google que fala sobre isso.</p>
<p>Depois que você instalar o Node.js você terá no seu Terminal ou CMD o comando <code style="background: #F0F0F0; padding: 3px; border: 1px solid #CCC; border-radius: 9px;">npm</code> e a maioria das coisas que você instala com o <code style="background: #F0F0F0; padding: 3px; border: 1px solid #CCC; border-radius: 9px;">npm install</code> ficará disponível para você usar como um comando, assim como no exemplo que você vai ver abaixo <img src='http://tutsmais.com.br/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h2>Instale o pacote http-server do Node.JS</h2>
<p>Temos que instalar o pacote <a href="https://npmjs.org/package/http-server" title="http-server" target="_blank">http-server</a> do Node.JS, para instala-lo apenas rode em seu terminal.</p>
<pre class="brush: bash; title: ; notranslate">
npm install http-server -g
</pre>
<p>Se tiver algum problema na instalação tente usar o <code style="background: #F0F0F0; padding: 3px; border: 1px solid #CCC; border-radius: 9px;">sudo</code>.</p>
<h2>Como usar</h2>
<p>Acesse a pasta que esta os arquivos de sua aplicação, por exemplo:</p>
<pre class="brush: bash; title: ; notranslate">
cd /var/www/como-usar-um-static-server/
</pre>
<p>É onde esta o <code style="background: #F0F0F0; padding: 3px; border: 1px solid #CCC; border-radius: 9px;">index.html</code>, seus arquivos CSS e JavaScript, em seguida inicie o http-server com o comando:</p>
<pre class="brush: bash; title: ; notranslate">
http-server ./
</pre>
<p>Agora basta acessar localhost:8080 que sua aplicação estará rodando perfeitamente ;D</p>
<p>Na parte <code style="background: #F0F0F0; padding: 3px; border: 1px solid #CCC; border-radius: 9px;">./</code> você deve especificar o caminho da pasta que será a raiz do servidor, no caso <code style="background: #F0F0F0; padding: 3px; border: 1px solid #CCC; border-radius: 9px;">./</code> significa que a pasta que você esta, será a pasta raiz. Então se você rodar:</p>
<pre class="brush: bash; title: ; notranslate">
http-server /var/www/como-usar-um-static-server/
</pre>
<p>Funcionará maravilhosamente bem <img src='http://tutsmais.com.br/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Conclusão</h2>
<p>Bom pessoal é isso, espero que isso seja útil para vocês e que ajude a vocês testarem coisas muito mais rápido, para saber mais sobre o http-server acesse a página em <a href="https://npmjs.org/package/http-server/" target="_blank">npmjs.org/package/http-server/</a>.</p>
<p>Até o próximo.</p>
<p>O post <a href="http://tutsmais.com.br/blog/node-js/tutorial-como-usar-um-http-server-com-node-js/">Como testar suas aplicações com HTML, CSS e JS de forma rápida e fácil com o http-server do Node.js</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://tutsmais.com.br/blog/node-js/tutorial-como-usar-um-http-server-com-node-js/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Redesign do Can I Use</title>
		<link>http://tutsmais.com.br/blog/design/redesign-do-can-i-use/</link>
		<comments>http://tutsmais.com.br/blog/design/redesign-do-can-i-use/#comments</comments>
		<pubDate>Mon, 21 Jan 2013 18:30:37 +0000</pubDate>
		<dc:creator>ofelquis</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://tutsmais.com.br/blog/?p=1634</guid>
		<description><![CDATA[<p>Digamos que, todo web developer conhece o Can I Use, o site gringo que mostra em quais navegadores tanto mobile quanto desktop uma feature do HTML5, CSS3, e APIs funcionam. Esse é o Can I Use, o amigo leal de &#8230; <a href="http://tutsmais.com.br/blog/design/redesign-do-can-i-use/">Continue lendo <span class="meta-nav">&#8594;</span></a></p><p>O post <a href="http://tutsmais.com.br/blog/design/redesign-do-can-i-use/">Redesign do Can I Use</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://tutsmais.com.br/blog/sem-categoria/redesign-do-can-i-use/" title="Redesign do Can I Use"><img src="http://tutsmais.com.br/blog/wp-content/uploads/2013/01/Screen-Shot-2013-01-21-at-3.46.52-PM.png" alt="Screen Shot 2013-01-21 at 3.46.52 PM" width="597" height="120" class="aligncenter size-full wp-image-1640" /></a> Digamos que, todo web developer conhece o Can I Use, o site gringo que mostra em quais navegadores tanto mobile quanto desktop uma feature do HTML5, CSS3, e APIs funcionam. Esse é o Can I Use, o amigo leal de muito. Mas a pergunta é, você acha que ele precisa, sei la, derepente de um redesign? Um cara chamado Lennart fez isso.<br />
<span id="more-1634"></span></p>
<p>O Redesign ficou fantástico e avale a observação que é apenas um protótipo, ou seja, os links e formulários nada funciona.</p>
<p>Antes:<br />
<a href="http://caniuse.com/#search=webworkers" target="_blank"><img src="http://tutsmais.com.br/blog/wp-content/uploads/2013/01/Screen-Shot-2013-01-21-at-3.52.39-PM.png" alt="Screen Shot 2013-01-21 at 3.52.39 PM" width="600" class="aligncenter size-full" style="width: 600px" /></a></p>
<p>Depois:<br />
<a href="http://caniuse.lensco.be/" target="_blank"><img src="http://tutsmais.com.br/blog/wp-content/uploads/2013/01/Screen-Shot-2013-01-21-at-3.31.44-PM.png" alt="Screen Shot 2013-01-21 at 3.31.44 PM" width="600" class="aligncenter size-full" style="width: 600px" /></a></p>
<p>Minha opinião é que inovar é preciso, ainda mais um site com tanta gente acessando e amando como este, por que deixar um visual grotesco, mesmo que o visual não importe, o conteúdo é fantástico, por que não apresantar esse conteúdo fantástico de uma maneira fantástica, não?</p>
<p>O twitter do cabloco que fez essa obra de arte é <a href="https://twitter.com/lensco" title="Twitter Lensco" target="_blank">@lensco</a> e se você quiser acessar o redesign dele basta acessar <a href="http://caniuse.lensco.be/" title="caniuse.lensco.be" target="_blank">caniuse.lensco.be/</a></p>
<p>O post <a href="http://tutsmais.com.br/blog/design/redesign-do-can-i-use/">Redesign do Can I Use</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://tutsmais.com.br/blog/design/redesign-do-can-i-use/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como aprender a usar o GIT?</title>
		<link>http://tutsmais.com.br/blog/git/tutorial-como-aprender-a-usar-o-git/</link>
		<comments>http://tutsmais.com.br/blog/git/tutorial-como-aprender-a-usar-o-git/#comments</comments>
		<pubDate>Sun, 20 Jan 2013 03:43:24 +0000</pubDate>
		<dc:creator>ofelquis</dc:creator>
				<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>

		<guid isPermaLink="false">http://tutsmais.com.br/blog/?p=1621</guid>
		<description><![CDATA[<p>Neste post tenho tudo o que você precisa aprender para usar o git, todos os comandos, todos os prós e contras, tudo certinho documentado você terminará de ler, e POW! Estará pronto. Bem provavelmente você estará pronto antes mesmo de &#8230; <a href="http://tutsmais.com.br/blog/git/tutorial-como-aprender-a-usar-o-git/">Continue lendo <span class="meta-nav">&#8594;</span></a></p><p>O post <a href="http://tutsmais.com.br/blog/git/tutorial-como-aprender-a-usar-o-git/">Como aprender a usar o GIT?</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img src="http://tutsmais.com.br/blog/wp-content/uploads/2013/01/Git-Logo-2Color-300x125.png" alt="Git-Logo-2Color" width="300" height="125" class="alignleft size-medium wp-image-1622" />Neste post tenho <strong>tudo</strong> o que <strong>você precisa</strong> aprender para usar o git, <strong>todos os comandos</strong>, todos os prós e contras, tudo certinho documentado você terminará de ler, e POW! <strong>Estará pronto</strong>. Bem provavelmente você estará pronto antes mesmo de terminar de ler (comigo foi assim).<span id="more-1621"></span></p>
<p>A <strong>comunidade</strong> do <strong>GIT</strong>, <strong>traduziu</strong> todo o livro <strong>PRO GIT</strong> em <strong>português do Brasil</strong>, e isso é muito bom por que todos nós agora poderemos <strong>aprender</strong> a usar o GIT <strong>diretamente da fonte</strong> e em português.</p>
<p>Para começar a ler o livro do GIT, acesse <a href="http://j.mp/VS5GLL" title="http://git-scm.com/book/pt-br" target="_blank">http://git-scm.com/book/pt-br</a> e torne-se um ninja no GIT.</p>
<p>Isso é muito melhor que um tutorial, um tutorial é uma coisa básica, com o livro do GIT você vai simplesmente aprender tudo sobre o GIT por que o livro diz tudo sobre o git, não é como um simples tutorial. Se bem que em alguns casos os tutoriais ajudam muito né? rs</p>
<p>=D</p>
<p>O post <a href="http://tutsmais.com.br/blog/git/tutorial-como-aprender-a-usar-o-git/">Como aprender a usar o GIT?</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://tutsmais.com.br/blog/git/tutorial-como-aprender-a-usar-o-git/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>4 motivos para amar o Firefox OS</title>
		<link>http://tutsmais.com.br/blog/html5/4-motivos-para-amar-o-firefox-os/</link>
		<comments>http://tutsmais.com.br/blog/html5/4-motivos-para-amar-o-firefox-os/#comments</comments>
		<pubDate>Mon, 10 Dec 2012 07:26:02 +0000</pubDate>
		<dc:creator>ofelquis</dc:creator>
				<category><![CDATA[Html5]]></category>

		<guid isPermaLink="false">http://tutsmais.com.br/blog/?p=1565</guid>
		<description><![CDATA[<p>Que o Firefox OS esta ai todos já sabem, mas por que você ainda esta com um pé atrás com o Firefox OS? Bom isso eu não sei, mas aqui vou citar 4 razões que me fazem amar o Firefox &#8230; <a href="http://tutsmais.com.br/blog/html5/4-motivos-para-amar-o-firefox-os/">Continue lendo <span class="meta-nav">&#8594;</span></a></p><p>O post <a href="http://tutsmais.com.br/blog/html5/4-motivos-para-amar-o-firefox-os/">4 motivos para amar o Firefox OS</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img src="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/firefox-phone-300x243.png" alt="" title="firefox-phone" width="300" height="243" class="alignleft size-medium wp-image-1566" /></p>
<p>Que o Firefox OS esta ai todos já sabem, mas por que você ainda esta com um pé atrás com o Firefox OS? Bom isso eu não sei, mas aqui vou citar 4 razões que me fazem amar o Firefox OS e que provavelmente vai te encantar também(ou não). Vamos ao primeiro fato que torna o Firefox OS tão incrível.<span id="more-1565"></span></p>
<h2>1 &#8211; Os aplicativos são desenvolvidos com HTML, CSS, JavaScript</h2>
<p><a href="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/firefox-example-apps.jpg"><img src="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/firefox-example-apps.jpg" alt="" title="firefox-example-apps" width="220" height="330" class="alignright size-full wp-image-1575" /></a><br />
Ou se você preferir, HTML5, CSS3 e JavaScript é isso mesmo <a href="http://j.mp/vc-e-lindo" title="querido leitor(a)" target="_blank">querido leitor(a)</a>. A intenção é que todos os Apps sejam desenvolvidos com essas tecnologias, hoje já conseguimos desenvolver para o iOS e Android usando HTML, CSS e JavaScript, mas temos que usar um empacotador como o <a href="http://j.mp/RkiRVx" title="Site do PhoneGap" target="_blank">PhoneGap</a>, para o App funcionar no iOS e Android e outros sistemas, já o Firefox OS você vai desenvolver em HTML, CSS e JavaScript e pronto essa é a linguagem nativa. </p>
<p>No futuro poderemos desenvolver para qualquer dispositivo(se ainda existir a limitação do dispositivo) usando uma só linguagem, uma linguagem livre e aberta(sabe qual né?), sem precisar fazer o que acontece hoje, que é ter 10 dispositivos e ter que criar do zero 10 vezes o mesmo app em 10 linguagens diferentes.</p>
<h2>2 &#8211; O Firefox OS é feito com HTML, CSS e JavaScript</h2>
<p><a href="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/fire-fox-example-music.jpg"><img src="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/fire-fox-example-music.jpg" alt="" title="fire-fox-example-music" width="220" height="330" class="alignleft size-full wp-image-1577" /></a>Se você estava achando fantástico a ideia de desenvolver Apps para o Firefox OS em HTML5, <a href="http://j.mp/TOxvn0" title="pasmem" target="_blank">pasmem</a>! Toda a interface do Firefox OS é desenvolvida com HTML5, o sistema é muito simples, segundo a <a href="http://j.mp/QS0JRs" title="Wikipédia, no Firefox" target="_blank">Wikipédia, no Firefox</a> OS existem 3 camadas, a mais baixa que é um Kernel Linux que faz a comunicação com o Hardware, depois vem uma segunda camada que é o Gecko que responsável pelo funcionamento o HTML, CSS e JavaScript, e a terceira camada é o Gaia, que é toda a interface gráfica do Firefox OS, tudo desde a tela de desbloqueio até a tela que você digita o número para ligar pra alguém é o Gaia, e é tudo desenvolvido com HTML5.</p>
<h2>3 &#8211; Os aparelhos com Firefox OS serão baratos</h2>
<p>Se você acha caro um Smartphone decente por mais de 1500R$ no Brasil, o terceiro(talvez o primeiro) motivo segundo minhas fontes(Google) que me deixou (loucamente)apaixonado pelo Firefox OS, é que os caras querem atingir o povão, li que os primeiros Smartphones com Firefox OS estariam saindo por pouco mais de 300R$ e que a intenção é ser barato mesmo, sabe o que isso significa? Na minha opinião significa adesão em massa, quando um cara compraria 1 iPhone 5(que hoje <a href="http://j.mp/RTHDvC" target="_blank">esta por 2300 na Tim</a>), ele poderia comprar até 7 Smartphones com Firefox OS, então o povão vai comprar mesmo, vai ter consumidor e a coisa vai crescer. Em alguns blogs diz que os primeiros Smartphones com Firefox OS serão vendido no inicio de 2013, vamos torcer pra que isso aconteça.</p>
<h3>4 &#8211; Já esta pronto pra você desenvolver aplicativos</h3>
<p>&#8220;Como assim nem foi lançado ainda, então quando for lançando o meu aplicativo será o primeiro&#8221;. Isso mesmo, imagina você sendo o pioneiro em algo, imagina as oportunidades que isso vai oferecer, é fantástico, talvez seja este um dos motivos pra eu estar as 4:10 da manhã escrevendo este post, o site da <a href="http://j.mp/TXbrUh" title="Marktplace" target="_blank">Marktplace é este aqui</a> e já tem vários aplicativos lá que podem ser testados em qualquer Android através do Firefox Aurora disponível pra download no mesmo site, caraca estou fascinado, olha só estes prints marotos que eu tirei.</p>
<p><a style="margin:0 5px 5px" href="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/Screenshot_2012-12-10-04-21-48.png" target="_blank"><img src="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/Screenshot_2012-12-10-04-21-48-180x300.png" alt="" title="Screenshot_2012-12-10-04-21-48" width="180" height="300" class="" /></a><a style="margin:0 5px 5px" href="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/Screenshot_2012-12-10-04-24-56.png" target="_blank"><img src="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/Screenshot_2012-12-10-04-24-56-180x300.png" alt="" title="Screenshot_2012-12-10-04-24-56" width="180" height="300" class="" /></a><a style="margin:0 5px 5px" href="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/Screenshot_2012-12-10-04-25-17.png" target="_blank"><img src="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/Screenshot_2012-12-10-04-25-17-180x300.png" alt="" title="Screenshot_2012-12-10-04-25-17" width="180" height="300" class="" /></a><a style="margin:0 5px 5px" href="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/Screenshot_2012-12-10-04-25-23.png" target="_blank"><img src="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/Screenshot_2012-12-10-04-25-23-180x300.png" alt="" title="Screenshot_2012-12-10-04-25-23" width="180" height="300" class="" /></a><a style="margin:0 5px 5px" href="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/Screenshot_2012-12-10-04-25-46.png" target="_blank"><img src="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/Screenshot_2012-12-10-04-25-46-180x300.png" alt="" title="Screenshot_2012-12-10-04-25-46" width="180" height="300" class="" /></a><a style="margin:0 5px 5px" href="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/Screenshot_2012-12-10-04-26-49.png" target="_blank"><img src="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/Screenshot_2012-12-10-04-26-49-180x300.png" alt="" title="Screenshot_2012-12-10-04-26-49" width="180" height="300" class="" /></a></p>
<p>Clique nas imagens pra ver em tamanho completo, e atenção que abre em uma nova aba.</p>
<h2>Conclusão</h2>
<p>Bom acho que já foi exitante de mais as palavras anteriores, vou finalizar com uma frase &#8220;Vamos botar pra quebrar&#8221; e passar pra vocês uma lista de links que provavelmente vocês gostarão de ver:</p>
<ul>
<li><a href="http://j.mp/P73kR7" title="Conheça de verdade o Boot2Gecko (ou FirefoxOS)" target="_blank">Conheça de verdade o Boot2Gecko (ou FirefoxOS)</a></li>
<li><a href="http://j.mp/U8yAT6" title="Firefox OS" target="_blank">Firefox OS</a></li>
<li><a href="http://j.mp/SZZTAp" title="Build and distribute cross-platform HTML5 apps" target="_blank">Build and distribute cross-platform HTML5 apps</a></li>
<li><a href="http://j.mp/Z3N0ue" title="Projete, construa e publique seu aplicativo" target="_blank">Projete, construa e publique seu aplicativo</a></li>
<li><a href="http://j.mp/TXbrUh" title="Marktplace" target="_blank">Marktplace</a></li>
</ul>
<p>Qualquer observação deixe nos comentários, até mais.</p>
<p>Fonte: Google. As imagens prints meus e reproduções do site <a href="http://j.mp/U8yAT6" title="Firefox OS" target="_blank">Firefox OS</a></p>
<p>O post <a href="http://tutsmais.com.br/blog/html5/4-motivos-para-amar-o-firefox-os/">4 motivos para amar o Firefox OS</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://tutsmais.com.br/blog/html5/4-motivos-para-amar-o-firefox-os/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como escrever CSS só para o Internet Explorer 10</title>
		<link>http://tutsmais.com.br/blog/internet-explorer-10/como-escrever-css-so-para-o-internet-explorer-10/</link>
		<comments>http://tutsmais.com.br/blog/internet-explorer-10/como-escrever-css-so-para-o-internet-explorer-10/#comments</comments>
		<pubDate>Mon, 10 Dec 2012 04:37:58 +0000</pubDate>
		<dc:creator>ofelquis</dc:creator>
				<category><![CDATA[Internet Explorer 10]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[IE10]]></category>
		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://tutsmais.com.br/blog/?p=1550</guid>
		<description><![CDATA[<p>Todo Front-end que se preze conhece os comentários condicionais que detecta as versões do Internet Explorer, isso acontece no IE6, IE7, IE8, IE9 e acaba sendo muito simples escrever um CSS especifico para todas as versões visto que o IE &#8230; <a href="http://tutsmais.com.br/blog/internet-explorer-10/como-escrever-css-so-para-o-internet-explorer-10/">Continue lendo <span class="meta-nav">&#8594;</span></a></p><p>O post <a href="http://tutsmais.com.br/blog/internet-explorer-10/como-escrever-css-so-para-o-internet-explorer-10/">Como escrever CSS só para o Internet Explorer 10</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img src="http://tutsmais.com.br/blog/wp-content/uploads/2012/12/ie_sucks_300.jpg" alt="" title="ie_sucks_300" width="300" height="270" class="aligncenter size-full wp-image-1562" style="display:none;" /></p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/lD9FAOPBiDk" frameborder="0" allowfullscreen></iframe><br />
Todo Front-end que se <a href="http://j.mp/VdqCYT" title="preze" target="_blank">preze</a> conhece os <a href="http://j.mp/YkzVxq" title="comentários condicionais" target="_blank">comentários condicionais</a> que detecta as versões do Internet Explorer, isso acontece no <a href="http://j.mp/U8U7Ka" title="IE6" target="_blank">IE6</a>, IE7, IE8, IE9 e acaba sendo muito simples escrever um CSS especifico para todas as versões visto que o IE tem vários problemas de compatibilidade. Bom, o problema é que o Internet Explorer 10 não tem suporte a esses comentários condicionais, eu sei você esta afim de dar um chute na bunda do <a href="http://j.mp/11iATcu" title="Bill Gates" target="_blank">Bill Gates</a> mas vamos manter a calma, pra começo de conversa o Internet Explorer 10 vai ter um bom suporte pra um monte de features do HTML5, será maravilhosamente fantástico comparado com o IE9, mas comparado a um Chrome e Firefox, continuará sendo um lixo, e pode ser que você vá precisar escrever CSS só para ele<span id="more-1550"></span> então, chega de papo e vamos ao que interessa.</p>
<h2>1º &#8211; Media Queries -ms-high-contrast</h2>
<p>O Internet Explorer 10 tem uma Media que só ele tem, ai fica fácil escrever CSS só pro Internet Explorer 10 e sem depender de JavaScript pra isso, o snippet fica assim:</p>
<pre class="brush: css; title: ; notranslate">
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {  
   /* CSS especifico para o IE10 aqui */
} 
</pre>
<p>E isso funciona perfeitamente, sem bugs, sem brechas.</p>
<h2>2º &#8211; Testar o -ms-high-contrast por JavaScript</h2>
<p>Uma segunda abordagem pra aproveitar essa feature das Media Queries do Internet Explorer 10, é testar por JavaScript e colocar uma classe na tag HTML, o snippet fica assim:</p>
<pre class="brush: jscript; title: ; notranslate">
if (window.matchMedia(&quot;screen and (-ms-high-contrast: active), (-ms-high-contrast: none)&quot;).matches) {
    document.documentElement.className += &quot;ie10&quot;;
}
</pre>
<p>No CSS você continua fazendo da mesma forma, assim:</p>
<pre class="brush: css; title: ; notranslate">
.ie10 seletor {
    /* CSS Especifico para o IE10 aqui */
}
</pre>
<p>Assim você tem um final feliz sempre =D</p>
<h2>Conclusão</h2>
<p>Acredito que o Internet Explorer 10 será bom o suficiente pra que não precisemos usar essas magias negras, mas se precisarmos vamos usar né? O problema é que não sei se isso vai sempre funciona, e não sei se o Internet Explorer 10 vai ter uma atualização surpresa removendo esse Hack, enfim. Quando sair a versão final do IE10 ai poderemos julgar definitivamente, por hora isso resolve nossos problemas.</p>
<p>Eu sei que existem outros tipos de Hacks pra identificar o IE10, mas este foi método mais eficiente, curto e grosso que eu identifiquei, não vou perder o meu tempo escrevendo algo que não será útil pra você =D Haaa antes que eu me esqueça, este hacks eu encontrei <a href="http://j.mp/SQyqTa" title="aqui" target="_blank">aqui</a>.</p>
<p>É isso ai, espero feedbacks nos comentários, até mais.</p>
<p>O post <a href="http://tutsmais.com.br/blog/internet-explorer-10/como-escrever-css-so-para-o-internet-explorer-10/">Como escrever CSS só para o Internet Explorer 10</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://tutsmais.com.br/blog/internet-explorer-10/como-escrever-css-so-para-o-internet-explorer-10/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Imagens responsivas nativas</title>
		<link>http://tutsmais.com.br/blog/css3/imagens-responsivas-nativas/</link>
		<comments>http://tutsmais.com.br/blog/css3/imagens-responsivas-nativas/#comments</comments>
		<pubDate>Sun, 25 Nov 2012 04:06:37 +0000</pubDate>
		<dc:creator>ofelquis</dc:creator>
				<category><![CDATA[css3]]></category>
		<category><![CDATA[Html5]]></category>

		<guid isPermaLink="false">http://tutsmais.com.br/blog/?p=1532</guid>
		<description><![CDATA[<p>Um desafio que desenvolvedores web(leia-se Front-end developers) tem hoje ao desenvolver web sites, é como servir imagens responsivas ao tamanho da tela do usuário, claro que hoje já temos um infinidade de plugins JavaScript que tentam fazer isso de uma &#8230; <a href="http://tutsmais.com.br/blog/css3/imagens-responsivas-nativas/">Continue lendo <span class="meta-nav">&#8594;</span></a></p><p>O post <a href="http://tutsmais.com.br/blog/css3/imagens-responsivas-nativas/">Imagens responsivas nativas</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><div id="attachment_1533" class="wp-caption aligncenter" style="width: 451px"><a href="http://tutsmais.com.br/blog/2012/imagens-responsivas-nativas/"><img src="http://tutsmais.com.br/blog/wp-content/uploads/2012/11/gambiarra_batedor.jpg" alt="" title="Gambiarra" width="441" height="336" class="size-full wp-image-1533" /></a><p class="wp-caption-text">Reprodução de Usabilidoido</p></div><br />
Um desafio que desenvolvedores web(leia-se Front-end developers) tem hoje ao desenvolver web sites, é como servir imagens responsivas ao tamanho da tela do usuário, claro que hoje já temos um infinidade de plugins JavaScript que tentam fazer isso de uma forma decente/elegante, mas usando JavaScript logo não é uma forma muito convincente e deixa a desejar, neste post vou mostrar uma solução não muito honrosa, mas que na minha opinião algo semelhante poderá aparecer nas linhas de código que você digita no dia-a-dia.<span id="more-1532"></span></p>
<h2>De quem é a ideia</h2>
<p>A ideia é de um cara chamado <a href="http://j.mp/Tm88J5" title="Twitter da figura." target="_blank">Ian Devlin</a>(será que o nome tem algo a ver com development line? Morreremos sem saber) e ele postou toda a ideia que ele teve <a href="http://j.mp/10yY9Cv" title="aqui" target="_blank">aqui</a>, este post não é nada a mais que uma reprodução da ideia dele.</p>
<h2>Qual a ideia?</h2>
<p>Bom, quando colocamos audio e vídeo no HTML, nós definimos os sources de cada uma certo? Quando a pagina é carregada acontece uma especie de seleção, em que o browser define qual será o source que ele usará, então não importa quantas tags source você usa nas tags audio e video, ele apenas irá carregar o que tem de ser carregado, pode ter 14 tags source com 14 formatos de videos ou audio diferentes que ele só carregará um deles, que é o que ele precisa.</p>
<p>Essas tags source aceitam um atributo chamado media, &#8220;responsivelmente&#8221; falando, todos que estão lendo este post sabem que o que são media queries certo? Se você não sabe o que é, <a href="http://j.mp/XPBaEB" title="leia este post" target="_blank">leia este post</a> e assista este <a href="http://j.mp/TnqoRu" title="Webinar sobre design responsivo" target="_blank">Webinar sobre design responsivo</a> do <a href="http://j.mp/JX0fC5" title="DevCast" target="_blank">DevCast</a> e depois volte a ler este post(ou simplesmente ignore as dicas). Usando este atributo media na tag source é possível carregar um determinado tipo de audio ou video, conforme as condições da tela detectadas, então se detectar uma tela enorme com mais de 1200px eu posso servir um video com tamanho maior, e se for uma tela pequena tipo menos de 400px eu posso servir um video com tamanho menor.</p>
<p>Bom, mas o que as tags de audio e video tem a ver com detecção nativa para imagens responsivas? Tudo, a verdade é que com video e audio já temos como detectar nativamente e servir um conteúdo mais adequado, para o dispositivo que o usuário esta usando, mas com imagens não! Ai você pode pensar, audio e um tipo de midia, video é um tipo de midia e imagens, bom, até onde eu sei imagens também são um tipo de mídia , logo seria justo eu poder usa-las da mesma forma(ou semelhante) que audio e video, mas isso não acontece.</p>
<h2>A gambiarra que funciona que Ian bolou</h2>
<p>Visto que com videos o atributo media funciona perfeitamente, ele decidiu tentar converter uma imagem em um video e então colocar uma imagem-video em uma tag video, claro que isso é uma gambiarra mas é só pra provar que é uma boa ideia.</p>
<p>Então, ele encontrou um web site que faz essa conversão, <a href="http://j.mp/R9t4DK" title="que é este aqui" target="_blank">que é este aqui</a> e gerou algo assim:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;video&gt; 
   &lt;source type=&quot;video/webm&quot; src=&quot;african-elephant-small.webm&quot; media=&quot;all and (max-width:36em)&quot;&gt; 
   &lt;source type=&quot;video/webm&quot; src=&quot;african-elephant-med.webm&quot; media=&quot;all and (max-width:48em)&quot;&gt; 
   &lt;source type=&quot;video/webm&quot; src=&quot;african-elephant-large.webm&quot;&gt; 
&lt;/video&gt;
</pre>
<p>Ele também colocou este exemplo online pra vocês testarem, <a href="http://j.mp/V52e13" title="vejam aqui" target="_blank">vejam aqui</a>, haa este exemplo ele fez apenas com formato &#8220;.webm&#8221; e para você testar, redimensione o seu browser e atualize a pagina, se você apenas redimensionar nada vai acontecer, a magica acontece apenas assim que a pagina é carregada.</p>
<h2>Conclusão</h2>
<p>Novamente vou explicar que o teste que ele fez colocando uma imagem como video foi só em caráter de teste, é claro que não faremos assim, mas acredito que essa ideia tem potencial, por que não né? Alias é bem simples, já que estamos acostumados com a sintaxe para inserir audio e video por que será diferente para imagens?</p>
<p>Qual sua opinião sobre isso?</p>
<p>O post <a href="http://tutsmais.com.br/blog/css3/imagens-responsivas-nativas/">Imagens responsivas nativas</a> apareceu primeiro em <a href="http://tutsmais.com.br/blog">Tutsmais</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://tutsmais.com.br/blog/css3/imagens-responsivas-nativas/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
