<?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>Leandro Rodrigues</title>
	<atom:link href="http://www.lrodrigues.com/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.lrodrigues.com/blog</link>
	<description>programação web, música e eletrônica</description>
	<lastBuildDate>Mon, 07 Dec 2009 12:56:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tutoriais, artigos e referências 06/12</title>
		<link>http://www.lrodrigues.com/blog/links/tutoriais-artigos-e-referencias-2009120</link>
		<comments>http://www.lrodrigues.com/blog/links/tutoriais-artigos-e-referencias-2009120#comments</comments>
		<pubDate>Mon, 07 Dec 2009 12:50:53 +0000</pubDate>
		<dc:creator>leandro</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://www.lrodrigues.com/blog/?p=109</guid>
		<description><![CDATA[Links da primeira semana de Dezembro/2009]]></description>
			<content:encoded><![CDATA[<p>Semanalmente vou publicar aqui alguns links que serviram de ajuda ou trouxeram idéias durante os ultimos dias.</p>
<p>Inaugurando a seção, aí vai alguns:</p>
<p><span id="more-109"></span></p>
<ul>
<li><strong>Cats Who Code &#8211; <a href="http://www.catswhocode.com/blog/10-front-end-techniques-to-improve-your-site-usability" target="_blank" title="10 front-end techniques to improve your site usability">10 front-end techniques to improve your site usability</a>:</strong> Apanhado de artigos sobre técnicas de usabilidade utilizando jQuery, CSS e outras ferramentas. </li>
<li><strong>Hungred.com &#8211; <a href="http://hungred.com/how-to/determine-whether-javascript-is-enabled-disabled-via-php/" target="_blank" title="Determine Whether JavaScript Is Enabled/Disabled Via PHP">Determine Whether JavaScript Is Enabled/Disabled Via PHP</a>:</strong> Uma outra técnica baseada em cookies para verificar se o Javascript está desativado. Um exemplo de uso é modificar um trecho do site para não usar Ajax ou validação client side caso esteja desativado ou redirecionar para outra página.</li>
<li><strong>Nettuts+ &#8211; <a href="http://net.tutsplus.com/tutorials/other/http-headers-for-dummies/" target="_blank" title="HTTP Headers for Dummies">HTTP Headers for Dummies</a>:</strong> Normalmente nos treinamentos que dou uma das primeiras aulas é sobre os headers HTTP. Quem não compreende o funcionamento disso acaba ficando devendo na produção PHP. </li>
<li><strong>Twitter @usejquery &#8211; <a href="http://www.bloggingdeveloper.com/post/Top-3-jQuery-Tips-for-Beginners.aspx" target="_blank" title="Top 3 jQuery Tips for Beginners">Top 3 jQuery Tips for Beginners</a>:</strong> Parece bobagem, mas as vezes a gente esquece dos detalhes. </li>
<li><strong>Twitter @usejquery &#8211; <a href="http://www.chromaloop.com/posts/fixed-position-table-headers" target="_blank" title="Fixed Position Table Headers (jQuery Plugin)">Fixed Position Table Headers (jQuery Plugin)</a>:</strong> Totalmente excelente para tabelas muito grandes </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.lrodrigues.com/blog/links/tutoriais-artigos-e-referencias-2009120/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sidebar ToDo e Timer: Activity Tracker</title>
		<link>http://www.lrodrigues.com/blog/producao/sidebar-todo-e-timer-activity-tracker</link>
		<comments>http://www.lrodrigues.com/blog/producao/sidebar-todo-e-timer-activity-tracker#comments</comments>
		<pubDate>Wed, 02 Dec 2009 05:53:26 +0000</pubDate>
		<dc:creator>leandro</dc:creator>
				<category><![CDATA[Produção]]></category>
		<category><![CDATA[gadget]]></category>
		<category><![CDATA[projetos]]></category>
		<category><![CDATA[timer]]></category>

		<guid isPermaLink="false">http://www.verticis.com.br/~jscristo/leandro/blog/?p=50</guid>
		<description><![CDATA[Activity Tracker - Ferramenta que pode ajudar a você a medir o tempo de etapas e processos de um projeto.]]></description>
			<content:encoded><![CDATA[<p>Há algum tempo estava atrás de uma ferramenta para medir o tempo que gastava com os projetos pessoais, seja para ver os custos ou então otimizar certas tarefas.<br />
Achei muitos aplicativos avançados que faziam gráficos e planílias do uso do sistema e do tempo de trabalho mas isso tudo dava mais trabalho para gerenciar que o trabalho em si. Procurei então plugins que se acoplavam na minha ide ou programas menores. Então fiquei com uma solução mais simples e funcional: os gadgets para a sidebar do Windows.<span id="more-50"></span><br />
Dos encontrados, o único que tem o timer incorporado a TODO List do jeito que eu queria é o <strong>Activity Tracker</strong>.</p>
<p></p>
<p>Depois de instalado na sidebar do Windows, você pode adicionar suas tarefas como uma ToDo List normal e assim que começar na determinada tarefa um cronômetro é acionado para a tal. Nas pausas e trocas de projeto você pode parar o cronômetro e continuar quando quiser. Dessa forma o tempo gasto com cada projeto é calculado com precisão e com a facilidade de um gadget.</p>
<p><div id="attachment_89" class="wp-caption alignnone" style="width: 257px"><img src="http://www.lrodrigues.com/blog/wp-content/uploads/PCVistaSidebar_min.png" alt="Tela Activity Tracker  em exibição minimizada" title="Exibição minimizada" width="247" height="218" class="size-full wp-image-89" /><p class="wp-caption-text">Tela Activity Tracker  em exibição minimizada: Mostra o tempo total e o botão de acionar e parar a tarefa</p></div><br />
<div id="attachment_90" class="wp-caption alignnone" style="width: 310px"><img src="http://www.lrodrigues.com/blog/wp-content/uploads/PCVistaSidebar_max.png" alt="Tela Activity Tracker em exibição maximizada" title="Exibição maximizada" width="300" height="287" class="size-full wp-image-90" /><p class="wp-caption-text">Tela Activity Tracker em exibição maximizada: mostra informações de inicio e término das tarefas e dá acesso aos logs de trabalho</p></div><br />
</p>
<h3><a href="http://www.screeperzone.com/static/ActivityTracker.gadget" title="Download do Activity Tracker">Download do Activity Tracker &#8211; Clique Aqui</a></h3>
<p>
<small>Este link aponta para download no site do projeto. Caso encontre algum link externo quebrado deixe sua resposta que corrijo assim que encontrar o problema.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lrodrigues.com/blog/producao/sidebar-todo-e-timer-activity-tracker/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Use tabelas!</title>
		<link>http://www.lrodrigues.com/blog/html/use-tabelas</link>
		<comments>http://www.lrodrigues.com/blog/html/use-tabelas#comments</comments>
		<pubDate>Mon, 30 Nov 2009 07:26:36 +0000</pubDate>
		<dc:creator>leandro</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[div]]></category>
		<category><![CDATA[semântica]]></category>
		<category><![CDATA[table]]></category>
		<category><![CDATA[tableless]]></category>

		<guid isPermaLink="false">http://www.lrodrigues.com/blog/?p=74</guid>
		<description><![CDATA[Porque usar tabelas quando necessário em um site tableless.]]></description>
			<content:encoded><![CDATA[<p>Outro dia vi no twitter o <a href="http://www.pinceladasdaweb.com.br/blog/" title="Blog Pinceladas da Web" target="_blank">Pedro Rogério</a> (<a href="http://www.twitter.com/pinceladasdaweb" title="twitter @pinceladasdaweb">@pinceladasdaweb</a>), referência em html5 e webstandarts, criticar a montagem do html do orkut todo em div. Ele tava com razão.<br />
Coincidentemente, na mesma semana, na empresa onde eu trabalho, estavamos discutindo sobre usar div ou table em um trecho do sistema onde há uma listagem de ítens cadastrados em forma de tabela. Também optei por não usar div naquela situação. Vejamos porquê:</p>
<p><span id="more-74"></span></p>
<p>A tag <strong>DIV</strong> significa divisão de texto, uma seção de texto ou conteúdo. Ela (sempre) deve ser usada para a montagem geral do layout do seu site. Neste caso não deve-se utilizar tabelas &#8211; pelo amor de deus &#8211; como se usava antigamente.<br />
Apesar da abolição da tag <strong>TABLE</strong> para a montagem geral dos sites (tableless), esta tag ainda existe e deve ser usado para dados tabulados, dados que normalmente se apresentariam em forma de tabela mesmo. Ela apresenta uma vantagem semântica e de implementação, inclusive, quando empregada no uso correto.<br />
No meu caso, como se tratavam de listagem de ítens, poderia usar a tag <strong>UL</strong> em caso de amostragem do nome do ítem ou com <strong>TABLE</strong> quando é apresentado de forma de uma tabela.</p>
<h3>Uma boa tabela deve ter:</h3>
<ol>
<li><strong>Sumário:</strong> O atributo summary especifíca um resumo do conteúdo da tabela</li>
<li><strong>Caption quando necessário:</strong> A tag caption pode ser usada quando deseja imprimir o título da tabela</li>
<li><strong>thead, tfoot e tbody quando necessário:</strong> A tag thead engloba as linhas pertencem ao cabeçalho, tbody ao corpo e tfoot ao rodapé. o não uso fará que todas as linhas sejam do corpo da tabela</li>
<li><strong>Uso correto de th e td:</strong><strong> td define uma célula comum e th uma célula de título, normalmente usada no cabeçalho da tabela</strong></li>
</ol>
<h3>Exemplo de uso destas recomendações:</h3>
<p><pre><pre name="code" class="html">
&lt;table summary=&quot;Lista de compras&quot;&gt;
&nbsp;&nbsp;&lt;caption&gt;Compras&lt;/caption&gt;
&nbsp;&nbsp;&lt;thead&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;Quantidade&lt;/th&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;Unidade&lt;/th&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;Produto&lt;/th&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;Preço&lt;/th&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&lt;/thead&gt;
&nbsp;&nbsp;&lt;tbody&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;5&lt;/td&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;Und&lt;/td&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;Peras&lt;/td&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;0,00&lt;/td&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;5&lt;/td&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;Kg&lt;/td&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;Arroz&lt;/td&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;0,00&lt;/td&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;7&lt;/td&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;Fls&lt;/td&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;Alface&lt;/td&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;0,00&lt;/td&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;
&nbsp;&nbsp;&lt;/tbody&gt;
&nbsp;&nbsp;&lt;tfoot&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th colspan=&quot;3&quot;&gt;Total:&lt;/th&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;0,00&lt;/td&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;
&lt;/table&gt;
</pre></pre> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.lrodrigues.com/blog/html/use-tabelas/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Lendo o hash em abas e conteúdos seletivos jQuery</title>
		<link>http://www.lrodrigues.com/blog/jquery/lendo-o-hash-em-abas-e-conteudos-seletivos-jquery</link>
		<comments>http://www.lrodrigues.com/blog/jquery/lendo-o-hash-em-abas-e-conteudos-seletivos-jquery#comments</comments>
		<pubDate>Thu, 26 Nov 2009 22:03:45 +0000</pubDate>
		<dc:creator>leandro</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tabs]]></category>

		<guid isPermaLink="false">http://www.verticis.com.br/~jscristo/leandro/blog/?p=10</guid>
		<description><![CDATA[Como usar a hash para carregar o conteúdo inicial de uma página com seletor/abas]]></description>
			<content:encoded><![CDATA[<p>Ao trabalhar com jQuery nas páginas, sabemos o quanto ficou fácil ocultar e mostrar containers, criar abas de navegação e criar conteúdos seletivos. O problema é que como não é carregado uma nova página, nossa url permanece a mesma ao ser passado o link ou colocado em favoritos. Ao visitar novamente o site que utiliza deste recurso, o link o trará ao conteúdo inicial nos containers, e não aquele que ele já havia acessado/preenchido. Para evitar esse tipo de problema podemos ler a hash, parte da url que é tratada somente &#8216;client side&#8217;, ao carregar a página conferir qual o conteúdo está setado para aparecer no estado inicial.</p>
<p><span id="more-10"></span></p>
<h3>Mão na massa:</h3>
<p>Queremos criar um seletor de conteúdo que oculta e mostra as divs conforme a seleção seguindo o html abaixo:<br />
<pre><pre name="code" class="html">
&lt;div id=&quot;nav&quot;&gt;
&nbsp;&nbsp;&lt;a href=&quot;#conteudo1&quot;&gt;Conteúdo 1&lt;/a&gt;
&nbsp;&nbsp;&lt;a href=&quot;#conteudo2&quot;&gt;Conteúdo 2&lt;/a&gt;
&nbsp;&nbsp;&lt;a href=&quot;#conteudo3&quot;&gt;Conteúdo 3&lt;/a&gt;
&lt;/div&gt;
&lt;div id=&quot;conteudo1&quot; class=&quot;conteudo&quot;&gt;Este é conteúdo 1&lt;/div&gt;
&lt;div id=&quot;conteudo2&quot; class=&quot;conteudo&quot;&gt;Este é conteúdo 2&lt;/div&gt;
&lt;div id=&quot;conteudo3&quot; class=&quot;conteudo&quot;&gt;Este é conteúdo 3&lt;/div&gt;</pre></pre><br />
Para fazer este efeito, existem várias formas usando jquery, escolhi uma delas e tratando com a técnica de usar a hash que expliquei em cima. Segue o código:<br />
<pre><pre name="code" class="javascript">&lt;script type=&quot;text/javascript&quot;&gt;
&nbsp;&nbsp;$(document).ready(function(){
&nbsp;&nbsp;&nbsp;&nbsp;hash = window.location.hash;
&nbsp;&nbsp;&nbsp;&nbsp;$(&quot;.conteudo&quot;).not(hash).hide();
&nbsp;&nbsp;&nbsp;&nbsp;$(&quot;#nav a&quot;).click(function(){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(&quot;.conteudo&quot;).slideUp(&quot;slow&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conteudo = $(this).attr(&quot;href&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(conteudo).slideDown();
&nbsp;&nbsp;&nbsp;&nbsp;});
&nbsp;&nbsp;});
&lt;/script&gt;
</pre></pre><br />
Note que ao carregar ele acessa o atributo window.location.hash que me dá a hash chamada no navegador. Em seguida ele esconde todas as divs de conteúdo, MENOS a que tava na hash com o filtro de seletor not. Deixando então o estado de seleção conforme o link descreve. O &#8220;#conteudo1&#8243; da hash é a mesma string que faz a seleção da div &#8220;conteudo1&#8243;, neste exemplo. Caso você quiser usar classes ou outros operadores jQuery, terá que tratar a string.</p>
<h3><a href="http://www.lrodrigues.com/demos/hash1.htm" target="_blank"><br />
Veja a demonstração aqui</a></h3>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lrodrigues.com/blog/jquery/lendo-o-hash-em-abas-e-conteudos-seletivos-jquery/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
