﻿<?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>TidBits</title>
	<atom:link href="http://www.tidbits.com.br/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tidbits.com.br</link>
	<description>Desenvolvimento de Front End</description>
	<lastBuildDate>Wed, 06 Jun 2012 13:59:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Desenhando setas no HTML sem usar imagem (cross browser)</title>
		<link>http://www.tidbits.com.br/desenhando-setas-no-html-sem-usar-imagem-cross-browser</link>
		<comments>http://www.tidbits.com.br/desenhando-setas-no-html-sem-usar-imagem-cross-browser#comments</comments>
		<pubDate>Thu, 03 May 2012 17:29:14 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=1840</guid>
		<description><![CDATA[Uma técnica antiga mas ainda pouco explorada nos deixa desenhar setas usando apenas bordas. E o mais interessante de tudo é que funciona até em versões antigas do IE. Alguns dias atrás eu ví um post muito interssante no NetTuts, falando sobre bordas. Achei genial, acabei postando como fazer circulos no HTML e agora vamos [...]]]></description>
			<content:encoded><![CDATA[<p>Uma técnica antiga mas ainda pouco explorada nos deixa desenhar setas usando apenas bordas. E o mais interessante de tudo é que funciona até em versões antigas do IE.</p>
<p>Alguns dias atrás eu ví um post muito interssante no NetTuts, <a href="http://net.tutsplus.com/tutorials/html-css-techniques/css-refreshers-borders/" target="_blank">falando sobre bordas</a>. Achei genial, acabei postando <a href="http://www.tidbits.com.br/como-fazer-um-circulo-em-html">como fazer circulos no HTML</a> e agora vamos fazer setas sem usar nenhuma imagem. </p>
<p>É simples, precisamos ter um elemento com width e height 0 e declarar a borda do objeto com o tamanho da seta.</p>
<p>Vamos aos códigos:</p>
<p>Faça um &lt;span&gt; </p>
<pre class="brush: xml; title: ; notranslate">
&lt;span class=&quot;colorido&quot;&gt;&lt;/span&gt;
</pre>
<p>E depois no CSS:</p>
<pre class="brush: css; title: ; notranslate">
span{
	width:0;
	height:0;
	border:100px solid transparent;
	display:block;
}
</pre>
<p>Isso deixa um elemento com 200px de altura e largura, sendo 0 de height e 100px de cada borda.</p>
<pre class="brush: css; title: ; notranslate">
span.colorido{
	border-top-color:#f00;
	border-left-color:#ff0;
	border-right-color:#0f0;
	border-bottom-color:#0ff;
}
</pre>
<p>O resultado vai ser esse quadrado colorido:</p>
<p><a href="http://www.tidbits.com.br/wp-content/uploads/2012/05/fazendo-setas-com-borda.jpg"><img src="http://www.tidbits.com.br/wp-content/uploads/2012/05/fazendo-setas-com-borda.jpg" alt="" title="Fazendo setas com borda no HTML sem usar imagem" width="465" height="319" class="alignnone size-full wp-image-1843" /></a></p>
<p>E colocando cor em somente uma borda, dá o efeito da seta. Veja os exemplos:</p>
<h2>Seta pra cima</h2>
<p>HTML</p>
<pre class="brush: xml; title: ; notranslate">
&lt;span class=&quot;cima&quot;&gt;&lt;/span&gt;
</pre>
<p>CSS:</p>
<pre class="brush: css; title: ; notranslate">
span.baixo{ border-bottom-color:#000; }
</pre>
<p>Resultado:<br />
<a href="http://www.tidbits.com.br/wp-content/uploads/2012/05/seta-pra-cima.gif"><img src="http://www.tidbits.com.br/wp-content/uploads/2012/05/seta-pra-cima.gif" alt="" title="Seta pra cima feita com CSS" width="200" height="200" class="alignnone size-full wp-image-1845" /></a></p>
<h2>Seta pra baixo</h2>
<p>HTML</p>
<pre class="brush: xml; title: ; notranslate">
&lt;span class=&quot;baixo&quot;&gt;&lt;/span&gt;
</pre>
<p>CSS:</p>
<pre class="brush: css; title: ; notranslate">
span.baixo{ border-top-color:#000; }
</pre>
<p>Resultado:<br />
<a href="http://www.tidbits.com.br/wp-content/uploads/2012/05/seta-pra-baixo.gif"><img src="http://www.tidbits.com.br/wp-content/uploads/2012/05/seta-pra-baixo.gif" alt="" title="Seta pra baixo feita com CSS" width="200" height="200" class="alignnone size-full wp-image-1845" /></a></p>
<h2>Seta pra esquerda</h2>
<p>HTML</p>
<pre class="brush: xml; title: ; notranslate">
&lt;span class=&quot;esquerda&quot;&gt;&lt;/span&gt;
</pre>
<p>CSS:</p>
<pre class="brush: css; title: ; notranslate">
span.baixo{ border-right-color:#000; }
</pre>
<p>Resultado:<br />
<a href="http://www.tidbits.com.br/wp-content/uploads/2012/05/seta-pra-esquerda.gif"><img src="http://www.tidbits.com.br/wp-content/uploads/2012/05/seta-pra-esquerda.gif" alt="" title="Seta pra esquerda feita com CSS" width="200" height="200" class="alignnone size-full wp-image-1845" /></a></p>
<h2>Seta pra direita</h2>
<p>HTML</p>
<pre class="brush: xml; title: ; notranslate">
&lt;span class=&quot;direita&quot;&gt;&lt;/span&gt;
</pre>
<p>CSS:</p>
<pre class="brush: css; title: ; notranslate">
span.baixo{ border-left-color:#000; }
</pre>
<p>Resultado:<br />
<a href="http://www.tidbits.com.br/wp-content/uploads/2012/05/seta-pra-direita.gif"><img src="http://www.tidbits.com.br/wp-content/uploads/2012/05/seta-pra-direita.gif" alt="" title="Seta pra direita feita com CSS" width="200" height="200" class="alignnone size-full wp-image-1845" /></a></p>
<p>[]s,</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/desenhando-setas-no-html-sem-usar-imagem-cross-browser/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Desenhando em 3d com a tag Canvas em HTML5</title>
		<link>http://www.tidbits.com.br/desenhando-em-3d-com-a-tag-canvas-em-html5</link>
		<comments>http://www.tidbits.com.br/desenhando-em-3d-com-a-tag-canvas-em-html5#comments</comments>
		<pubDate>Fri, 27 Apr 2012 13:42:10 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=1835</guid>
		<description><![CDATA[Com processadores, browsers, placas de vídeo e motores de javascript e cada vez mais rápidos, hoje já vemos jogos e aplicações gráficas mais pesadas rodando direto no navegador, o Chrome que o diga, na sua loja de aplicativos. E apps / sites explorando 3d estão começando a aparecer por aí. Num momento de mais tranquilidade [...]]]></description>
			<content:encoded><![CDATA[<p>Com processadores, browsers, placas de vídeo e motores de javascript e cada vez mais rápidos, hoje já vemos jogos e aplicações gráficas mais pesadas rodando direto no navegador, o Chrome que o diga, na sua loja de aplicativos. E apps / sites explorando 3d estão começando a aparecer por aí.</p>
<p>Num momento de mais tranquilidade aqui na agência, eu e <a href="http://www.linkedin.com/in/claudiagusson">Claudia Gusson</a> resolvemos desenhar (ou pelo menos esboçar) nossa sala de trabalho, em 3d.</p>
<p>O resultado (parcial) foi esse:</p>
<p><iframe width="465" height="400" frameborder="0" scrolling="no" src="http://www.tidbits.com.br/download/exemplos/m3d/operacoes.html"></iframe>	</p>
<p>O código fonte de tudo <a href="http://www.tidbits.com.br/download/exemplos/m3d/m3d.zip">está aqui zipado</a>.</p>
<p>Existem diversas libs pra isso, a que usamos foi essa <a href="http://www.dhteumeuleu.com/canvas-3d/">desse exemplo aqui</a>.</p>
<p>Dá bastante trabalho pois cada shape precisa ser escrito, um a um no JSON que a lib carrega, e não existe nenhuma ferramenta visual pra isso.</p>
<p>Funciona em FF, Chrome, Safari, IE9+ (a soma disso representa 82% no market sharet brasileiro atualmente)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/desenhando-em-3d-com-a-tag-canvas-em-html5/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como fazer um círculo em HTML</title>
		<link>http://www.tidbits.com.br/como-fazer-um-circulo-em-html</link>
		<comments>http://www.tidbits.com.br/como-fazer-um-circulo-em-html#comments</comments>
		<pubDate>Wed, 11 Apr 2012 14:35:00 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=1818</guid>
		<description><![CDATA[Usando CSS3 há um truque simples pra desenhar um circulo em HTML usando 50% border-radius. Primeiro, faz lá uma div. E agora um pouco de CSS na div. Agora, o border-radius de 50% Resultado: Usando máscaras em imagens O mesmo truque pode ser feito com imagens e funciona como se fosse uma máscara: Imagem normal: [...]]]></description>
			<content:encoded><![CDATA[<p>Usando CSS3 há um truque simples pra desenhar um circulo em HTML usando 50% border-radius.</p>
<p>Primeiro, faz lá uma div.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div&gt; Tidbits &lt;/div&gt;
</pre>
<p>E agora um pouco de CSS na div.</p>
<pre class="brush: css; title: ; notranslate">
div{
background:#fa0c01;
color:#fff;
width:300px;
height:300px;
line-height:300px;
vertical-align:middle;
text-align:center;
font-size:30px;
}
 </pre>
<p><a href="http://www.tidbits.com.br/wp-content/uploads/2012/04/como-fazer-circulos-com-border-radius.jpg"><img class="alignnone size-full wp-image-1820" title="como-fazer-circulos-com-border-radius" src="http://www.tidbits.com.br/wp-content/uploads/2012/04/como-fazer-circulos-com-border-radius.jpg" alt="Como fazer círculos com border-radius" width="304" height="304" /></a></p>
<h2>Agora, o border-radius de 50%</h2>
<pre class="brush: css; title: ; notranslate">
 div{
border-radius:50%;
-moz-border-radius:50%;
-webkit-border-radius:50%;
}
 </pre>
<p>Resultado:</p>
<p><a href="http://www.tidbits.com.br/wp-content/uploads/2012/04/circulo-com-html.jpg"><img class="alignnone size-full wp-image-1819" title="circulo-com-html" src="http://www.tidbits.com.br/wp-content/uploads/2012/04/circulo-com-html.jpg" alt="Circulo com HTML" width="304" height="304" /></a></p>
<h2> Usando máscaras em imagens </h2>
<p>O mesmo truque pode ser feito com imagens e funciona como se fosse uma máscara:</p>
<p>Imagem normal:<br />
<a href="http://www.tidbits.com.br/wp-content/uploads/2012/04/praia.jpg"><img src="http://www.tidbits.com.br/wp-content/uploads/2012/04/praia.jpg" alt="" title="Mascara de círculo em HTML" width="300" height="300" class="alignnone size-full wp-image-1828" /></a></p>
<p>CSS aplicado:</p>
<pre class="brush: css; title: ; notranslate">
img{
border-radius:50%;
-moz-border-radius:50%;
-webkit-border-radius:50%;
}
</pre>
<p>Resultado:<br />
<a href="http://www.tidbits.com.br/wp-content/uploads/2012/04/mascara-de-circulo-usando-css.jpg"><img src="http://www.tidbits.com.br/wp-content/uploads/2012/04/mascara-de-circulo-usando-css.jpg" alt="" title="Máscara de círculo usando CSS3" width="300" height="300" class="alignnone size-full wp-image-1829" /></a></p>
<p>Funciona em IE9+, Firefox, Chrome, Safari, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/como-fazer-um-circulo-em-html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Scroll não serve só para se fazer parallax</title>
		<link>http://www.tidbits.com.br/scroll-nao-serve-so-para-se-fazer-parallax</link>
		<comments>http://www.tidbits.com.br/scroll-nao-serve-so-para-se-fazer-parallax#comments</comments>
		<pubDate>Mon, 26 Mar 2012 17:46:10 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[scroll]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=1814</guid>
		<description><![CDATA[Menu que fixa no topo http://www.carterdigital.com.au/ Scrollando o menu, ao invés de sumir após a dobra, é fixado no topo. Travando a sidebar pra não ficar buraco http://9gag.com/ Em sites de paginação infinita, não tem como popular a coluna da direita pra encher de conteúdo até o fim do mundo. O 9gag criou uma solução [...]]]></description>
			<content:encoded><![CDATA[<h2>Menu que fixa no topo</h2>
<p><a href="#">http://www.carterdigital.com.au/</a></p>
<p>Scrollando o menu, ao invés de sumir após a dobra, é fixado no topo.</p>
<p><img src="http://www.tidbits.com.br/download/posts/scroll-nao-so-para-parallax/carter-digital.jpg" alt="Menu que fixa no topo" width="460" /></p>
<h2>Travando a sidebar pra não ficar buraco</h2>
<p><a href="http://9gag.com/">http://9gag.com/</a></p>
<p>Em sites de paginação infinita, não tem como popular a coluna da direita pra encher de conteúdo até o fim do mundo.</p>
<p>O 9gag criou uma solução interessante, travando a coluna a partir de um determinado ponto do scroll.</p>
<p>O Facebook também fez isso.</p>
<p><img src="http://www.tidbits.com.br/download/posts/scroll-nao-so-para-parallax/9gag-scroll.jpg" alt="Travando a sidebar pra não ficar buraco" width="460" /></p>
<h2>Alterando o conteúdo</h2>
<p><a href="http://krystalrae.com/">http://krystalrae.com/</a></p>
<p>Ao Scrollar, a modelo vai trocando de roupa</p>
<p><img src="http://www.tidbits.com.br/download/posts/scroll-nao-so-para-parallax/krystalrae.jpg" alt="Alterando o conteúdo" width="460" /></p>
<h2>Fixando o título / share ao lado do conteúdo</h2>
<p><a href="http://9gag.com/</a>&#8220;>http://9gag.com/</a></p>
<p>Quando scrollamos, normalmente o titulo / share somem da área visível.</p>
<p>O 9gag trata isso de forma interessante.</p>
<p><img src="http://www.tidbits.com.br/download/posts/scroll-nao-so-para-parallax/9gag-titulo.jpg" alt="Fixando o título / share ao lado do conteúdo" width="460" /></p>
<h2>Mostrando conteúdo relacionado</h2>
<p><a href="http://mashable.com/2012/03/26/kaggle/">http://mashable.com/2012/03/26/kaggle/</a></p>
<p>Na interna do mashable, eles detectam quando você acabou de ler um post (baseado no seu scroll top) e mostram um box com algum conteúdo relacionado.</p>
<p><img src="http://www.tidbits.com.br/download/posts/scroll-nao-so-para-parallax/mashable.jpg" alt="Mostrando conteúdo relacionado" width="460" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/scroll-nao-serve-so-para-se-fazer-parallax/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como aplicar Blur numa imagem usando html5 / canvas</title>
		<link>http://www.tidbits.com.br/como-aplicar-blur-numa-imagem-usando-canvas-em-html5</link>
		<comments>http://www.tidbits.com.br/como-aplicar-blur-numa-imagem-usando-canvas-em-html5#comments</comments>
		<pubDate>Tue, 14 Feb 2012 18:23:21 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[canvas]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=1804</guid>
		<description><![CDATA[O efeito é o seguinte, pegar uma imagem e aplicar o efeito de blur usando somente javascript, sem carregar outra imagem. Pra isso, é manipulado, pixel a pixel, colocando um pixel alpha por cima da imagem. Veja a imagem original: Imagem com filtro de Blur Como a imagem é gerada automaticamente, dá pra aplicar o [...]]]></description>
			<content:encoded><![CDATA[<p>O efeito é o seguinte, pegar uma imagem e aplicar o efeito de blur usando somente javascript, sem carregar outra imagem.</p>
<p>Pra isso, é manipulado, pixel a pixel, colocando um pixel alpha por cima da imagem.</p>
<p>Veja a imagem original:</p>
<p><img src="http://www.tidbits.com.br/download/exemplos/blur/img/mico.jpg" alt="Blur em canvas"/></p>
<h2> Imagem com filtro de Blur </h2>
<p><iframe width="460" height="420" frameborder="0" scrolling="no" src="http://www.tidbits.com.br/download/exemplos/blur/blur.html"></iframe>	</p>
<p>Como a imagem é gerada automaticamente, dá pra aplicar o efeito no mousemove, ou em qualquer outra ação. Veja o exemplo abaixo.</p>
<h2> Imagem com filtro de Blur no mousemove</h2>
<p><iframe width="460" height="490" frameborder="0" scrolling="no" src="http://www.tidbits.com.br/download/exemplos/blur/blur-com-mouse-move-e-2-canvas.html"></iframe>	</p>
<p>Pro processamento ficar mais rápido, eu gerei um segundo canvas, só com pro efeito de criar a imagem dentro da máscara.</p>
<p>Todos os exemplos <a href="http://www.tidbits.com.br/download/exemplos/blur/blur.zip">estão disponíveis aqui</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/como-aplicar-blur-numa-imagem-usando-canvas-em-html5/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gráfico de Pizza interativo em HTML5 usando JavaScript e Canvas</title>
		<link>http://www.tidbits.com.br/grafico-de-pizza-interativo-em-html5-usando-javascript-e-canvas</link>
		<comments>http://www.tidbits.com.br/grafico-de-pizza-interativo-em-html5-usando-javascript-e-canvas#comments</comments>
		<pubDate>Mon, 13 Feb 2012 13:41:32 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[canvas]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=1797</guid>
		<description><![CDATA[Codando O código é bem pequeno, fiz com menor número de linhas possíveis pra ficar bem legível. html: javascript: E por último, o drag, onde utilizo o jQuery UI, aí fica simples: html: javascript:]]></description>
			<content:encoded><![CDATA[<p><iframe width="460" height="620" frameborder="0" scrolling="no" src="http://www.tidbits.com.br/download/exemplos/grafico-pizza/"></iframe>	</p>
<h2>Codando</h2>
<p>O código é bem pequeno, fiz com menor número de linhas possíveis pra ficar bem legível.</p>
<p>html:</p>
<pre class="brush: xml; title: ; notranslate">
	&lt;canvas id=&quot;pizza&quot; width=&quot;400&quot; height=&quot;400&quot;&gt;
		Seu browser não suporta canvas
	&lt;/canvas&gt;
</pre>
<p>javascript:</p>
<pre class="brush: jscript; title: ; notranslate">
var Pizza = {

	// Configuração
	canvas:document.getElementById('pizza'),
	height:400,
	width:400,
	cor:'#293F8A',

	// Calculando variaveis pra desenhar
	_init:function(){
		Pizza.ctx = Pizza.canvas.getContext(&quot;2d&quot;);
		Pizza.radius = Math.min(Pizza.width, Pizza.height) / 2;
		Pizza.center_x = Pizza.width/2;
		Pizza.center_y = Pizza.height/2;
	},

	// Desenhando -  é só colocar Pizza._draw(60) pra desenhar
	// o gráfico com 60% de ocupação
	_draw:function(percentual){
		Pizza.ctx.clearRect(0,0,Pizza.width,Pizza.height);
		Pizza.ctx.beginPath();
		Pizza.ctx.moveTo(Pizza.center_x, Pizza.center_y);
		Pizza.ctx.arc(
			Pizza.center_x,
			Pizza.center_y,
			Pizza.radius,
			Math.PI * (- 0.5), // inicio da fatia
			Math.PI * (- 0.5 + 2 * percentual/100), // fim da fatia
			false
		);
		Pizza.ctx.closePath();
		Pizza.ctx.fillStyle = Pizza.cor;
		Pizza.ctx.fill();
	}
}
Pizza._init();
</pre>
<p>E por último, o drag, onde utilizo o jQuery UI, aí fica simples:</p>
<p>html:</p>
<pre class="brush: xml; title: ; notranslate">
	&lt;div id=&quot;mascara_percentual&quot;&gt;
		&lt;span id=&quot;slider&quot;&gt;drag&lt;br/&gt;me&lt;/span&gt;
	&lt;/div&gt;
</pre>
<p>javascript:</p>
<pre class="brush: jscript; title: ; notranslate">
$('#slider').draggable({
	containment:'#mascara_percentual',
	drag:function() {
		var left = parseInt($(this).css('left').replace('px',''));
		var percentual = parseInt(left / 350 * 100);
		// (350 = 400 do width da mascara - 50 do width do slider)
		Pizza._draw(percentual);
	}
});

// Iniciando em 70%
$('#slider').css('left','70%'); // drag
Pizza._draw(70); // canvas
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/grafico-de-pizza-interativo-em-html5-usando-javascript-e-canvas/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Porque a chave no Javascript deve ser aberta na linha de cima</title>
		<link>http://www.tidbits.com.br/porque-a-chave-no-javascript-deve-ser-aberta-na-linha-de-cima</link>
		<comments>http://www.tidbits.com.br/porque-a-chave-no-javascript-deve-ser-aberta-na-linha-de-cima#comments</comments>
		<pubDate>Wed, 18 Jan 2012 00:41:33 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Padrões]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=1793</guid>
		<description><![CDATA[O Visual Studio, além de ser uma IDE mega pesada, tem um problema que gera intrigas entre equipes: ele abre por padrão uma função no JavaScript colocando a chave na linha de baixo. Parece algo mínimo, mas irrita profundamente quem está acostumado a trabalhar da forma correta. Porque forma correta? Simples, porque pode dar erro [...]]]></description>
			<content:encoded><![CDATA[<p>O Visual Studio, além de ser uma IDE mega pesada, tem um problema que gera intrigas entre equipes: ele abre por padrão uma função no JavaScript colocando a chave na linha de baixo. </p>
<p>Parece algo mínimo, mas irrita profundamente quem está acostumado a trabalhar da forma correta.</p>
<p>Porque forma correta? Simples, porque pode dar erro se colocar a chave na linha de baixo.</p>
<p>Pensem na função abaixo getUser que retorna um objeto em JavaScript</p>
<pre class="brush: jscript; title: ; notranslate">
function getUser(){
	return {
		nome:'Danilo',
		idade:28
	}
}

getUser() // retorna um objeto
</pre>
<p>Se fosse pra deixar a chave embaixo, ficaria assim:</p>
<pre class="brush: jscript; title: ; notranslate">
function getUser()
{
	return
	{
		nome:'Danilo',
		idade:28
	}
}

getUser() // retorna undefined
</pre>
<p>Só que há um problema: pelo fato do ponto e vírgula indicando quebra de linha ser no JavaScript ser opcional, o return não entende que é pra retornar um objeto e encerra a função ali, retornando undefined.</p>
<p>E tem um caso pior, que simplesmente dá erro de sintaxe:</p>
<pre class="brush: jscript; title: ; notranslate">
function getPosition()
{
   return
   {
       top:32,
       left:50
   }
}
// dá erro &quot;SyntaxError: Unexpected token :&quot;
</pre>
<p>E se fosse feito com os braces na linha de cima, daria certo.</p>
<p>O incrível é que mesmo com esse argumento, tem programador que não dá o braço a torcer e insiste dizendo que JavaScript veio do java e no java se programa assim. ERRADO, JavaScript veio de <a href="http://pt.wikipedia.org/wiki/Scheme" target="_blank">Scheme</a> e qualquer livro de <a href="http://novatec.com.br/livros/padroesjavascript/" target="_blank">Padrões em Javascript</a> vai aconselhar abrir o bloco com a chave na linha de cima.</p>
<p>Dá pra configurar isso no Visual Studio 2010 (no 2008 deve dar também).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/porque-a-chave-no-javascript-deve-ser-aberta-na-linha-de-cima/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>A carta ao SINDPD pra não roubarem 30 reais do seu salário todo mês</title>
		<link>http://www.tidbits.com.br/a-carta-ao-sindp-pra-nao-roubarem-seu-salari</link>
		<comments>http://www.tidbits.com.br/a-carta-ao-sindp-pra-nao-roubarem-seu-salari#comments</comments>
		<pubDate>Thu, 12 Jan 2012 02:41:29 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[Carreira]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=1786</guid>
		<description><![CDATA[Trabalho em agência em publicidade e, em São Paulo, algumas delas respondem ao Sindicato dos Publicitários enquanto outras (normalmente com maior tempo de vida) respondem ao Sindicato dos Trabalhadores em Processamento de Dados e Tecnologia da Informação, o chamado SINDPD e essas sim sofrem. Todo mês o SINDPD por regra fica com 30 reais do [...]]]></description>
			<content:encoded><![CDATA[<p>Trabalho em agência em publicidade e, em São Paulo, algumas delas respondem ao Sindicato dos Publicitários enquanto outras (normalmente com maior tempo de vida) respondem ao Sindicato dos Trabalhadores em Processamento de Dados e Tecnologia da Informação, o chamado SINDPD e essas sim sofrem.</p>
<p>Todo mês o SINDPD por regra fica com 30 reais do seu salário. E pra que isso não ocorra só tem uma forma: você tem que escrever uma carta num modelo que eles criam e trocam todo ano e levar <strong>pessoalmente</strong> duas cópias assinadas ao sindicato, <strong>em horário comercial</strong> obviamente e você só pode fazer isso nas duas primeiras semanas do ano (período em que normalmente pessoas felizes tiram férias). Se você não entregar até a segunda sexta feira do ano aí já era. No estilo &#8220;perdeu playboy&#8221; mesmo. Até dezembro você vai perder 30 reais todo mês por não ter levado a cartinha deles.</p>
<p>O processo todo é feito pra você não conseguir entregar o documento a eles. Afinal, é só pensar um pouco: Sindicato de Tecnologia da Informação ter que levar uma carta, pessoalmente, pra eles carimbarem, é ridículo. Qualquer programador podia fazer um sistema básico pra todo mundo poder autorizar ou não, de casa ou do trabalho, o dinheiro tomado por eles. Mas não, e são filas longas (ano passado eu perdi 2 horas e meia na fila que dava uma volta no quarteirão).Pra intimidar, eles colocam cerca de 30 seguranças pra não deixar ninguem &#8220;dar pitizinho&#8221;. E funciona assim: quanto mais gente voltar pro trabalho ao invés de perder meio dia de serviço pra entregar um papel, melhor (mais dinheiro) pro sindicato.</p>
<p><img src="http://www.tidbits.com.br/wp-content/uploads/2012/01/fila-no-sindicato-.jpg" alt="Fila no Sindicato" width="465" height="275" class="alignnone size-full wp-image-1787" /></p>
<p>Além disso, no modelo da carta, é necessário colocar seu e-mail lá. Não vejo outro motivo pra eles ter seu e-mail a não ser vender a base, já que somos obrigados a ir pessoalmente lá.</p>
<p>Eu me recuso a deixar 330 reais na mão do sindicato ( 30 reais x 11 meses, em janeiro é cobrado de toda forma, levando cartinha ou não) e quem trabalhar em alguma empresa que também responde ao SINDPD deveria fazer o mesmo. O modelo da carta de 2012 <a href="/download/modelo_carta_de_oposicao_sindpd2012.doc" target="_blank">está aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/a-carta-ao-sindp-pra-nao-roubarem-seu-salari/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Desenhando com a tag canvas em HTML5</title>
		<link>http://www.tidbits.com.br/desenhando-com-a-tag-canvas-em-html</link>
		<comments>http://www.tidbits.com.br/desenhando-com-a-tag-canvas-em-html#comments</comments>
		<pubDate>Tue, 25 Oct 2011 20:37:50 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=1773</guid>
		<description><![CDATA[A maioria das pessoas (inclusivo programadores front end) vê alguma aplicação onde é possível desenhar e pensa que é algo do capeta, complexo e precisa de 1 ano pra fazer, mas provavelmente ninguém nunca tentou. É simples! Obviamente precisa de um belo work-around pra funcionar em interfaces touch e o pior, versões antigas de IE. [...]]]></description>
			<content:encoded><![CDATA[<p>A maioria das pessoas (inclusivo programadores front end) vê alguma aplicação onde é possível desenhar e pensa que é algo do capeta, complexo e precisa de 1 ano pra fazer, mas provavelmente ninguém nunca tentou. É simples!</p>
<p>Obviamente precisa de um belo work-around pra funcionar em interfaces touch e o pior, versões antigas de IE. Mas a ideia em si é simples, basicamente no mousemove em cima do canvas você escreve uma linha com o LineTo, veja abaixo como ficou:</p>
<p><iframe width="460" height="470" frameborder="0" scrolling="no" src="http://www.tidbits.com.br/download/exemplos/desenhando-com-canvas-usando-html5/"></iframe>	</p>
<p>Bom, vamos aos códigos:</p>
<h3>HTML</h3>
<p>Criando a tag canvas e deixando uma mensagem caso o usuário não tenho um browser compatível com HTML5.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;canvas id=&quot;canvas&quot; class=&quot;canvas&quot; width=&quot;400&quot; height=&quot;400&quot;&gt;
    Seu browser não suporta canvas, é hora de trocar!.
&lt;/canvas&gt;
</pre>
<h3>Javascript</h3>
<p>São só 29 linhas (bem indentadas e organizadas) de javascript</p>
<pre class="brush: jscript; title: ; notranslate">
var Draw = {
	obj : document.getElementById('canvas'),
	contexto : document.getElementById('canvas').getContext(&quot;2d&quot;),
	_init:function(){
		Draw.obj.onmousemove = Draw._over;
		Draw.obj.onmousedown = Draw._ativa;
		Draw.obj.onmouseup = Draw._inativa;
		Draw.obj.onselectstart = function () { return false; };
	},
	_over:function(e){
		if(!Draw.ativo) return;
		Draw.contexto.beginPath();
		Draw.contexto.lineTo(Draw.x,Draw.y);
		Draw.contexto.lineTo(e.layerX, e.layerY);
		Draw.contexto.stroke();
		Draw.contexto.closePath();
		Draw.x = e.layerX;
		Draw.y = e.layerY;
	},
	_ativa:function(e){
		Draw.ativo = true;
		Draw.x = e.layerX;
		Draw.y = e.layerY;
	},
	_inativa:function(){
		Draw.ativo = false;
	}
}
Draw._init();
</pre>
<h3>CSS</h3>
<p>Basicamente, é adicionar o cursor no elemento Canvas</p>
<pre class="brush: css; title: ; notranslate">
#canvas{ cursor: url(&quot;../img/pencil.gif&quot;), default; }
</pre>
<p>Então, não parece tão complicado, parece?</p>
<p>[]s,</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/desenhando-com-a-tag-canvas-em-html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Transição de Flip usando CSS3</title>
		<link>http://www.tidbits.com.br/transicao-de-flip-usando-css</link>
		<comments>http://www.tidbits.com.br/transicao-de-flip-usando-css#comments</comments>
		<pubDate>Mon, 24 Oct 2011 17:57:53 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=1767</guid>
		<description><![CDATA[Novos efeitos em css3 vão sendo adicionados. Por enquanto por causa do translate 3d, somente webkit reproduzem isso (resumindo só funciona em Google Chrome e Safari). Parece inútil, mas se parar pra pensar. Em sites mobiles ou pra tablets, isso funciona praticamente em 100% dos acessos. Veja o efeito, com o mínimo de código possível: [...]]]></description>
			<content:encoded><![CDATA[<p>Novos efeitos em css3 vão sendo adicionados. Por enquanto por causa do translate 3d, somente webkit reproduzem isso (resumindo <strong>só funciona em Google Chrome e Safari</strong>).</p>
<p>Parece inútil, mas se parar pra pensar. Em sites mobiles ou pra tablets, isso funciona praticamente em 100% dos acessos.</p>
<p>Veja o efeito, com o mínimo de código possível:</p>
<p><iframe width="460" height="300" frameborder="0" scrolling="no" src="http://www.tidbits.com.br/download/css3-flip/"></iframe>	</p>
<p>Pra quem se interessou, pode fazer <a href="http://www.tidbits.com.br/download/css3-flip/css3-flip.zip">download do exemplo aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/transicao-de-flip-usando-css/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 2.255 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2013-06-17 13:41:13 -->
