<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Chris B. - idéias e pensamentos</title>
	
	<link>http://www.chrisb.com.br/blog</link>
	<description>Misturando ideias e pensamentos: tecnologia (PHP, Wordpress, javascript, programação), web 2.0 (javascript, ajax, prototype, jQuery) e experiências de vida</description>
	<lastBuildDate>Tue, 18 May 2010 19:32:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/chrisb" /><feedburner:info uri="chrisb" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Script para baixar arquivos do SVN e gerar .zip automaticamente</title>
		<link>http://feedproxy.google.com/~r/chrisb/~3/5xUCdZo2TlU/</link>
		<comments>http://www.chrisb.com.br/blog/script-para-baixar-arquivos-do-svn-e-gerar-zip-automaticamente/#comments</comments>
		<pubDate>Tue, 18 May 2010 19:32:58 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.chrisb.com.br/blog/?p=2292</guid>
		<description><![CDATA[Depois de zilhões de meses fazendo isso manualmente aqui na agência, resolvi me aventurar nesse misterioso e nada mágico mundo do shell script. Até que não achei complexo. Não vou me dar ao trabalho &#8211; aliás, não o faço ultimamente nos meus últimos posts&#8230; ando sem paciência &#8211; de explicar linha a linha. O que [...]]]></description>
			<content:encoded><![CDATA[<p>Depois de zilhões de meses fazendo isso manualmente aqui na agência, resolvi me aventurar nesse misterioso e nada mágico mundo do shell script. Até que não achei complexo.<br />
Não vou me dar ao trabalho &#8211; aliás, não o faço ultimamente nos meus últimos posts&#8230; ando sem paciência &#8211; de explicar linha a linha. O que o script faz é receber por parâmetro o caminho do SVN para fazer checkout e o caminho da pasta onde deve ser gerado o .zip. Com isso, ele se conecta ao SVN, faz checkout, gera o .zip e apaga a pasta com os arquivos.</p>
<p>Obs.: não esqueçam que isso só funciona em unix e que o arquivo gerado com esse conteúdo deve ter permissão 777 para ser executado.</p>
<blockquote><p><em>#! /bin/sh<br />
clear<br />
svnpath=$1<br />
rootfolder=$2<br />
subfolder=$rootfolder&#8221;sub/&#8221;<br />
svn checkout $svnpath  $subfolder<br />
sudo find $rootfolder -iname &#8220;.svn&#8221; -exec rm -fr {} \;<br />
cd $subfolder<br />
zip -r package.zip *<br />
mv package.zip $rootfolder<br />
rm -rf $subfolder</em></p></blockquote>
<p>Exemplo de chamada (imaginando que foi gerado um arquivo com o nome <strong>package.sh</strong>):<br />
<em>./package.sh http://myserver/myclient/svn/trunk/ /home/mmc/myfolder/</em></p>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.chrisb.com.br/blog/qual-distro-linux-voce-utiliza/" title="Qual distro linux você utiliza?">Qual distro linux você utiliza?</a> (6)</li><li><a href="http://www.chrisb.com.br/blog/do-dos-para-unix-traducao-dos-comandos/" title="Do DOS para Unix: tradução dos comandos">Do DOS para Unix: tradução dos comandos</a> (5)</li><li><a href="http://www.chrisb.com.br/blog/e-minha-time-capsule-chegou/" title="E minha Time Capsule chegou">E minha Time Capsule chegou</a> (11)</li><li><a href="http://www.chrisb.com.br/blog/ubuntu-9-10-karmic-koala-esta-chegando/" title="Ubuntu 9.10 Karmic Koala &#8211; está chegando">Ubuntu 9.10 Karmic Koala &#8211; está chegando</a> (12)</li><li><a href="http://www.chrisb.com.br/blog/sendmail-no-servidor-linux-muito-lento/" title="Sendmail no servidor linux muito lento?">Sendmail no servidor linux muito lento?</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.chrisb.com.br/blog/script-para-baixar-arquivos-do-svn-e-gerar-zip-automaticamente/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.chrisb.com.br/blog/script-para-baixar-arquivos-do-svn-e-gerar-zip-automaticamente/</feedburner:origLink></item>
		<item>
		<title>Sem som no flash ao atualizar o Firefox 3.6 no Ubuntu</title>
		<link>http://feedproxy.google.com/~r/chrisb/~3/PjpzvAw-EKI/</link>
		<comments>http://www.chrisb.com.br/blog/sem-som-no-flash-ao-atualizar-o-firefox-3-6-no-ubuntu/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 11:55:00 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[player]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.chrisb.com.br/blog/?p=2289</guid>
		<description><![CDATA[No post passado falei que para testar algumas coisas, era necessário usar o Firefox 3.6 Bem, eu fiz isso por aqui, no Ubuntu 9.10, e parou de funcionar o som no flash player. Claro, coisas bizarras das integrações entre Ubuntu/Firefox e os plugins; toda vez que atualizo a versão do Firefox, dá esse erro. Se [...]]]></description>
			<content:encoded><![CDATA[<p>No post passado falei que para testar algumas coisas, era necessário usar o Firefox 3.6<br />
Bem, eu fiz isso por aqui, no Ubuntu 9.10, e parou de funcionar o som no flash player. Claro, coisas bizarras das integrações entre Ubuntu/Firefox e os plugins; toda vez que atualizo a versão do Firefox, dá esse erro.</p>
<p>Se você passou por isso, segue o meu procedimento &#8211; simples &#8211; para corrigir. Atualizar a versão do flash player direto do site.</p>
<ul>
<li>vá em <a href="http://get.adobe.com/br/flashplayer/?promoid=DXLUJ">http://get.adobe.com/br/flashplayer/?promoid=DXLUJ</a> e baixe o pacote .tar.gz</li>
<li>descompacte-o</li>
<li>copie/cole o arquivo libflashplayer.so para a pasta /usr/lib/mozilla/plugins</li>
</ul>
<p>Voi-lá!</p>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.chrisb.com.br/blog/o-pog-nosso-de-cada-dia-18/" title="O POG nosso de cada dia #18">O POG nosso de cada dia #18</a> (10)</li><li><a href="http://www.chrisb.com.br/blog/nova-versao-da-avant-window-navigator-beta/" title="Nova versão da Avant Window Navigator (beta)">Nova versão da Avant Window Navigator (beta)</a> (2)</li><li><a href="http://www.chrisb.com.br/blog/notificadores-do-gmail-para-ubuntu/" title="Notificadores do Gmail para Ubuntu">Notificadores do Gmail para Ubuntu</a> (3)</li><li><a href="http://www.chrisb.com.br/blog/ubuntu-9-10-karmic-koala-esta-chegando/" title="Ubuntu 9.10 Karmic Koala &#8211; está chegando">Ubuntu 9.10 Karmic Koala &#8211; está chegando</a> (12)</li><li><a href="http://www.chrisb.com.br/blog/configurando-um-servidor-ftp-no-linux/" title="Configurando um servidor FTP no linux">Configurando um servidor FTP no linux</a> (4)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.chrisb.com.br/blog/sem-som-no-flash-ao-atualizar-o-firefox-3-6-no-ubuntu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.chrisb.com.br/blog/sem-som-no-flash-ao-atualizar-o-firefox-3-6-no-ubuntu/</feedburner:origLink></item>
		<item>
		<title>Upload de arquivos do file system direto pela interface web</title>
		<link>http://feedproxy.google.com/~r/chrisb/~3/uHoPFlMoSH8/</link>
		<comments>http://www.chrisb.com.br/blog/upload-de-arquivos-do-file-system-direto-pela-interface-web/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 21:39:46 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[xmlhttprequest]]></category>

		<guid isPermaLink="false">http://www.chrisb.com.br/blog/?p=2286</guid>
		<description><![CDATA[Certa vez, anos atrás, pesquisei como seria possível fazer upload de arquivos do desktop direto para uma aplicação web, arrastando-e-colando. Não era. A única coisa que achei seria implementando um java applet ou alguma solução proprietária &#8211; a Microsoft tem um lance desses no Sharepoint, o CMS deles. Desencanei. Ai, semana passada saiu uma notícia [...]]]></description>
			<content:encoded><![CDATA[<p>Certa vez, anos atrás, pesquisei como seria possível fazer upload de arquivos do desktop direto para uma aplicação web, arrastando-e-colando. Não era.<br />
A única coisa que achei seria implementando um <em>java applet</em> ou alguma solução proprietária &#8211; a <strong>Microsoft</strong> tem um lance desses no <em>Sharepoint</em>, o CMS deles. Desencanei.</p>
<p>Ai, semana passada saiu uma notícia que era possível fazer isso pelo <strong>Gmail</strong>. Acredito que a solução a qual eles chegaram não é a mesma que eu encontrei na web, mas acredito que seja algo do gênero. Basicamente, dá pra fazer isso com <strong>HTML5</strong> se você estiver usando um <em>browser</em> adequado. Adequado, nesse contexto, é o <strong>Chrome 2.0+</strong> ou <strong>Firefox 3.6</strong></p>
<p><span style="color: #ff0000;">Não vou me dar ao trabalho de fazer uma explicação muito didática; se você chegou até aqui, acredito que tenha experiência em desenvolvimento de interfaces web e vai entender o que estou falando. Se não, dê alguns passos para trás antes de continuar.</span></p>
<p>Com o HTML5, muita coisa diferente em javascript foi implementada. Para o usuário poder arrastar-e-colar arquivos do file system para uma interface web, são usadas 2 funcionalidades (desculpem o nome, não achei um mais adequado):</p>
<ul>
<li><strong>File API</strong></li>
<li><strong>XMLHttpRequest 2</strong></li>
</ul>
<p>Com o primeiro (File API), você consegue manipular arquivos que são &#8220;arrastados-e-colados&#8221; para uma certa área da sua página. Manipular, nesse caso, pode ser muita coisa, mas você consegue saber o nome, file syze, content type, conteúdo do mesmo (em binário, por exemplo), etc&#8230;<br />
Com o XMLHttpRequest versão 2 é possível fazer o envio de dados nas suas requisições em formato binário. E bacana é que existem métodos nativos para saber o status e a porcentagem da mesma &#8211; ou seja, você consegue criar uma progress bar, por exemplo.</p>
<p>Vou colar logo abaixo o conteúdo da página de teste, que possui comentários. Sei que o post ficou meio superficial, mas ele serve mais como referência para vocês saberem mais uma coisa do que é possível ser feito com HTML5!</p>
<p>Url de teste: <a href="http://www.chrisb.com.br/teste.html">http://www.chrisb.com.br/teste.html</a><br />
*no caso, arraste arquivos do file system para a caixa com bordas pretas.</p>
<p><em>&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;script&gt;</em></p>
<p><em>function dodrop(event) {<br />
//retorna os arquivos que estão sendo transferidos<br />
var dt = event.dataTransfer;<br />
var files = dt.files;<br />
//percorre os arquivos<br />
var count = files.length;<br />
output(&#8220;File Count: &#8221; + count + &#8220;\n&#8221;);<br />
for (var i = 0; i &lt; files.length; i++) {<br />
//escreve infotmações do arquivos<br />
output(&#8221; File &#8221; + i + &#8220;:\n(&#8221; + (typeof files[i]) + &#8220;) : &lt;&#8221; + files[i] + &#8221; &gt; &#8221; +<br />
files[i].name + &#8221; &#8221; + files[i].size + &#8220;\n&#8221;);<br />
new FileUpload(files[i]); //instancia objeto dessa classe, passando o arquivo para o construtor</em></p>
<p><em>}<br />
}</em></p>
<p><em>function output(text) {<br />
document.getElementById(&#8220;output&#8221;).textContent += text;<br />
dump(text);<br />
}</em></p>
<p><em>function FileUpload(file) {</em></p>
<p><em>//cria objeto para requisições assíncronas<br />
var xhr = new XMLHttpRequest();</em></p>
<p><em>//cria listeners para o upload (que é quando o xmlhttprequest está enviando o arquivo):</em></p>
<p><em>//para o durante o processo<br />
xhr.upload.onprogress = function(e) {<br />
if (e.lengthComputable) {<br />
var percentage = Math.round((e.loaded * 100) / e.total);<br />
document.getElementById(&#8220;p&#8221;).innerHTML = percentage;<br />
}<br />
}</em></p>
<p><em>//caso ocorra algum erro<br />
xhr.upload.onerror = function(e){<br />
alert(&#8220;Erro&#8221;);<br />
}</em></p>
<p><em>//quando finalizar o upload<br />
xhr.upload.onload = function(event){<br />
document.getElementById(&#8220;p&#8221;).innerHTML = 100;<br />
}</em></p>
<p><em>//abre a conexão; o segundo parâmetro é da url a ser requisitada, que recebe o arquovo<br />
xhr.open(&#8220;POST&#8221;, &#8220;http://www.chrisb.com.br/up.php&#8221;);<br />
xhr.overrideMimeType(&#8216;text/plain; charset=x-user-defined-binary&#8217;);</em></p>
<p><em>//cria objeto FileReader para ler o arquivo<br />
var reader = new FileReader();<br />
//quando acabar de ler o arquivo&#8230;<br />
reader.onload = function(e) {<br />
//pega o retorno da função, que é um dado binário<br />
var bin = e.target.result;<br />
//e faz o xmlhttprequest enviar como binário<br />
xhr.sendAsBinary(bin);<br />
};<br />
reader.readAsBinaryString(file); //lê o arquivo como binário</em></p>
<p><em>}</em></p>
<p><em>window.onload = function() {<br />
var output = document.getElementById(&#8220;output&#8221;);<br />
output.ondragenter = function(event) {<br />
document.getElementById(&#8216;output&#8217;).textContent = &#8221;; event.stopPropagation(); event.preventDefault();<br />
}<br />
output.ondragover = function(event) {<br />
event.stopPropagation(); event.preventDefault();<br />
}<br />
output.ondrop = function(event) {<br />
event.stopPropagation(); event.preventDefault();<br />
dodrop(event);<br />
}<br />
}</em></p>
<p><em>&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;</em></p>
<p><em>&lt;div id=&#8221;output&#8221; style=&#8221;min-height: 100px; white-space: pre; border: 1px solid black;&#8221;&gt;&lt;/div&gt;<br />
&lt;span id=&#8221;p&#8221;&gt;&lt;/span&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</em></p>
<p><em> </em></p>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.chrisb.com.br/blog/o-pog-nosso-de-cada-dia-18/" title="O POG nosso de cada dia #18">O POG nosso de cada dia #18</a> (10)</li><li><a href="http://www.chrisb.com.br/blog/plugin-jquery-para-criar-janela-modal/" title="Plugin jQuery para criar janela modal">Plugin jQuery para criar janela modal</a> (2)</li><li><a href="http://www.chrisb.com.br/blog/iui-framework-para-desenvolvimento-de-interfaces-para-iphone/" title="iui &#8211; framework para desenvolvimento de interfaces para iPhone">iui &#8211; framework para desenvolvimento de interfaces para iPhone</a> (1)</li><li><a href="http://www.chrisb.com.br/blog/novo-release-da-prototype-e-atualizacao-da-scriptaculous-agora-scripty2/" title="Novo release da Prototype e atualização da Scriptaculous &#8211; agora scripty2">Novo release da Prototype e atualização da Scriptaculous &#8211; agora scripty2</a> (2)</li><li><a href="http://www.chrisb.com.br/blog/o-pog-nosso-de-cada-dia-16/" title="O POG nosso de cada dia #16">O POG nosso de cada dia #16</a> (8)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.chrisb.com.br/blog/upload-de-arquivos-do-file-system-direto-pela-interface-web/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.chrisb.com.br/blog/upload-de-arquivos-do-file-system-direto-pela-interface-web/</feedburner:origLink></item>
		<item>
		<title>Links bacanas sobre Progressive Enhancement e Graceful Degradation</title>
		<link>http://feedproxy.google.com/~r/chrisb/~3/ZJHAIiqy-2Q/</link>
		<comments>http://www.chrisb.com.br/blog/links-bacanas-sobre-progressive-enhancement-e-graceful-degradation/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 12:03:59 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Graceful Degradation]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[Progressive Enhancement]]></category>

		<guid isPermaLink="false">http://www.chrisb.com.br/blog/?p=2279</guid>
		<description><![CDATA[Se você trabalha com interfaces web, pode não ter ouvido falar (ainda) desses dois conceitos, mas certamente muito já discutiu sobre eles. Semana passada comecei a ler mais profundamente a respeito; ainda não tenho uma opinião formada sobre ambos, nem se uma é melhor do que a outra ou, ainda, se alguma delas pode ser [...]]]></description>
			<content:encoded><![CDATA[<p>Se você trabalha com <em>interfaces web</em>, pode não ter ouvido falar (ainda) desses dois conceitos, mas certamente muito já discutiu sobre eles. Semana passada comecei a ler mais profundamente a respeito; ainda não tenho uma opinião formada sobre ambos, nem se uma é melhor do que a outra ou, ainda, se alguma delas pode ser levada ao pé da letra no ciclo de vida de um projeto web.<br />
Resumidamente, <strong>Graceful Degradation</strong> é sobre ter sua interface web funcionando em todos os dispositivos que o acessem, mesmo que aqueles com menos recursos tenham uma perda de qualidade e usabilidade (ou seja, a interface vai se <em>degradando</em>; você foca no melhor dispositivo). Já o <strong>Progressive Enhancement</strong> foca em definir um dispositivo com o mínimo de recursos (no caso, um browser mais antigo) no qual a sua aplicação seja funcional e usável, e para cada dispositivo melhor você terá funcionalidades extras, que usarão recursos do dispositivo que versões mais antigas não possuem (ou seja, sua interface vai melhorando/<em>progredindo</em>).<br />
Seguem abaixo alguns links bem interessantes sobre o assunto:</p>
<ul>
<li><a href="http://www.sitepoint.com/blogs/2009/09/23/progressive-enhancement-graceful-degradation-choice/">Progressive Enhancement and Graceful Degradation: Making a Choice</a></li>
<li><a href="http://planeta.gnulinuxbrasil.org/?cat=516">Gracefull Degradation, Progressive Enhancement e Fluid Layout</a></li>
<li><a href="http://dev.opera.com/articles/view/progressive-enhancement-with-css-3-a-be/">Progressive Enhancement with CSS 3: A better experience for modern browsers</a></li>
<li><a href="http://www.tableless.com.br/graceful-degradation-e-tudo-sobre-acessibilidade">Graceful degradation é tudo sobre Acessibilidade</a></li>
<li><a href="http://www.luiztiago.com/blog/41/progressive_enhancement_melhoria_necessaria_na_web/">Progressive Enhancement, melhoria necessária na web</a></li>
</ul>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.chrisb.com.br/blog/plugin-para-estilizar-selects-com-jquery/" title="Plugin para estilizar selects com jQuery">Plugin para estilizar selects com jQuery</a> (2)</li><li><a href="http://www.chrisb.com.br/blog/atualizacao-na-pagina-de-jobs/" title="Atualização na página de jobs">Atualização na página de jobs</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.chrisb.com.br/blog/links-bacanas-sobre-progressive-enhancement-e-graceful-degradation/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.chrisb.com.br/blog/links-bacanas-sobre-progressive-enhancement-e-graceful-degradation/</feedburner:origLink></item>
		<item>
		<title>My Category Order – como ordenar categorias no WP</title>
		<link>http://feedproxy.google.com/~r/chrisb/~3/B5knRmxvD0Q/</link>
		<comments>http://www.chrisb.com.br/blog/my-category-order-como-ordenar-categorias-no-wp/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 20:03:10 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[categorias]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.chrisb.com.br/blog/?p=2269</guid>
		<description><![CDATA[Antes de mais nada, deixem-me dar um olá. Faz quase 3 meses que não posto &#8211; parei antes do Natal e fiquei um bom tempo off. Por diversos motivos, os quais não vem ao caso. Muitos problemas daquela época ainda continuam, mas vou tentar voltar a postar &#8211; não sei com qual frequencia &#8211; coisas [...]]]></description>
			<content:encoded><![CDATA[<p>Antes de mais nada, deixem-me dar um olá. Faz quase 3 meses que não posto &#8211; parei antes do Natal e fiquei um bom tempo off. Por diversos motivos, os quais não vem ao caso. Muitos problemas daquela época ainda continuam, mas vou tentar voltar a postar &#8211; não sei com qual frequencia &#8211; coisas úteis para os demais desenvolvedores web (preferencialmente os voltados à interface).</p>
<p>Como um recomeço, fica a dica desse plugin do <strong>WordPress</strong>, o <a href="http://wordpress.org/extend/plugins/my-category-order/">My Category Order</a>. Ele permite que você ordene as categorias e sub-categorias criadas de maneira muito fácil: <em>drag&#8217;n drop</em>. Conheci esse plugin depois de uma vasculhada no <em>Google</em> quando aoareceu um requisito num projeto: o cliente precisaria ordenar os itens de um menu, que são as categorias.</p>
<p>Depois de instalado, na área de administração é tudo feito de maneira simples. No <em>template</em>, para listar as categorias por essa ordem, use orderby=order.</p>
<p>Por exemplo: <em>wp_list_categories(&#8216;orderby=order&#8217;)</em></p>
<p>url: <a href="http://wordpress.org/extend/plugins/my-category-order/">http://wordpress.org/extend/plugins/my-category-order/</a></p>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.chrisb.com.br/blog/os-plugins-essenciais-do-wordpress-que-eu-uso/" title="Os plugins essenciais do Wordpress que eu uso">Os plugins essenciais do Wordpress que eu uso</a> (6)</li><li><a href="http://www.chrisb.com.br/blog/aumentando-interatividade-blog-plugins-wordpress/" title="Aumentando a interatividade do blog com três plugins do Wordpress">Aumentando a interatividade do blog com três plugins do Wordpress</a> (1)</li><li><a href="http://www.chrisb.com.br/blog/plug-ins-do-wordpress-que-uso/" title="Plug-ins do Wordpress que uso">Plug-ins do Wordpress que uso</a> (3)</li><li><a href="http://www.chrisb.com.br/blog/otimizando-o-banco-do-seu-wordpress/" title="Otimizando o banco do seu Wordpress">Otimizando o banco do seu Wordpress</a> (5)</li><li><a href="http://www.chrisb.com.br/blog/plugins-seo-wordpress/" title="8 plugins de SEO para o Wordpress">8 plugins de SEO para o Wordpress</a> (7)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.chrisb.com.br/blog/my-category-order-como-ordenar-categorias-no-wp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.chrisb.com.br/blog/my-category-order-como-ordenar-categorias-no-wp/</feedburner:origLink></item>
		<item>
		<title>Agora, só em 2010</title>
		<link>http://feedproxy.google.com/~r/chrisb/~3/73KxZSbVFIo/</link>
		<comments>http://www.chrisb.com.br/blog/agora-so-em-2010/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 12:47:15 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Pensamentos]]></category>
		<category><![CDATA[feliz natal]]></category>

		<guid isPermaLink="false">http://www.chrisb.com.br/blog/?p=2265</guid>
		<description><![CDATA[GalerE, vou aproveitar que não tenho atualizado muito o blog (desde o começo da semana, nunca fiquei tanto tempo sem colocar algo por aqui) devido a inúmeros fatores &#8211; cansaço, muito trabalho, falta de inspiração, preocupações pessoais que tiram o sono &#8211; para finalizar os trabalhos por aqui nesse ano de 2009 &#8211; o primeiro [...]]]></description>
			<content:encoded><![CDATA[<p>GalerE, vou aproveitar que não tenho atualizado muito o blog (desde o começo da semana, nunca fiquei tanto tempo sem colocar algo por aqui) devido a inúmeros fatores &#8211; cansaço, muito trabalho, falta de inspiração, preocupações pessoais que tiram o sono &#8211; para finalizar os trabalhos por aqui nesse ano de 2009 &#8211; o primeiro ano completo.</p>
<p>Muita coisa continuou acontecendo: conheci gente bacana, troquei idéias, escrevi mais do que nunca, aprendi bastante, fui alvo de <em>stalker</em>&#8230; ou seja, o normal na vida de quem desenvolve e expõe conteúdo.</p>
<p style="text-align: center;"><a href="http://www.chrisb.com.br/blog/wp-content/uploads/2009/12/tux-christmas.jpg"><img class="size-full wp-image-2266 aligncenter" title="tux-christmas" src="http://www.chrisb.com.br/blog/wp-content/uploads/2009/12/tux-christmas.jpg" alt="tux-christmas" width="640" height="512" /></a></p>
<p>Então, para aqueles que não são anti-festas de final de ano, desejo um Feliz Natal a todos e que a virada de ano traga coisas boas.</p>
<h3  class="related_post_title">Veja também</h3><ul class="related_post"></ul>]]></content:encoded>
			<wfw:commentRss>http://www.chrisb.com.br/blog/agora-so-em-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.chrisb.com.br/blog/agora-so-em-2010/</feedburner:origLink></item>
		<item>
		<title>Boas referências (e divertidas) sobre POG</title>
		<link>http://feedproxy.google.com/~r/chrisb/~3/CghbJ5Goz68/</link>
		<comments>http://www.chrisb.com.br/blog/boas-referencias-e-divertidas-sobre-pog/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 11:57:26 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[POG]]></category>
		<category><![CDATA[ajuste]]></category>
		<category><![CDATA[gambiarra]]></category>
		<category><![CDATA[work-around]]></category>

		<guid isPermaLink="false">http://www.chrisb.com.br/blog/?p=2228</guid>
		<description><![CDATA[Desde o começo do blog comecei a fazer posts sobre gambiarras, que dentro do mundo (de alguns desenvolvedores) também são conhecidas como POG (Programação Orientada a Objetos). http://www.chrisb.com.br/blog/category/pog/ Não vou entrar no mérito ou não do uso das gambiarras (ou contornos técnicos, ou work-arounds) pois tem gente que não pode nem ouvir a expressão e [...]]]></description>
			<content:encoded><![CDATA[<p>Desde o começo do blog comecei a fazer posts sobre gambiarras, que dentro do mundo (de alguns desenvolvedores) também são conhecidas como <strong>POG</strong> (Programação Orientada a Objetos).</p>
<p><a href="http://www.chrisb.com.br/blog/category/pog/">http://www.chrisb.com.br/blog/category/pog/</a></p>
<p>Não vou entrar no mérito ou não do uso das gambiarras (ou contornos técnicos, ou <em>work-arounds</em>) pois tem gente que não pode nem ouvir a expressão e não consegue entender que não passa &#8211; pelo menos da minha parte &#8211; de uma brincadeira e que o uso de tais <em>ajustes</em> são feitos como última saída. Mas, o intuíto do desse texto é divulgar mais referências sobre as gambiarras na vida dos programadores &#8211; das mais diversas áreas. Se tiverem sugestões, me mandem, que vou adicionando à lista:</p>
<ul>
<li><a href="http://desciclo.pedia.ws/wiki/Programa%C3%A7%C3%A3o_Orientada_a_Gambiarras">http://desciclo.pedia.ws/wiki/Programa%C3%A7%C3%A3o_Orientada_a_Gambiarras</a></li>
<li><a href="http://bruno.alves.in/programacao-orientada-a-gambiarras-pog.html">http://bruno.alves.in/programacao-orientada-a-gambiarras-pog.html</a></li>
<li><a href="http://www.programei.org/index.php/08/09/2009/pog-programacao-orientada-a-gambiarra/">http://www.programei.org/index.php/08/09/2009/pog-programacao-orientada-a-gambiarra/</a></li>
<li><a href="http://blog.lp7.com.br/2007/04/24/pog-programacao-orientada-a-gambiarras/">http://blog.lp7.com.br/2007/04/24/pog-programacao-orientada-a-gambiarras/</a></li>
</ul>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.chrisb.com.br/blog/o-pog-nosso-de-cada-dia-18/" title="O POG nosso de cada dia #18">O POG nosso de cada dia #18</a> (10)</li><li><a href="http://www.chrisb.com.br/blog/o-pog-nosso-de-cada-dia-17/" title="O POG nosso de cada dia #17">O POG nosso de cada dia #17</a> (4)</li><li><a href="http://www.chrisb.com.br/blog/o-pog-nosso-de-cada-dia-16/" title="O POG nosso de cada dia #16">O POG nosso de cada dia #16</a> (8)</li><li><a href="http://www.chrisb.com.br/blog/o-pog-nosso-de-cada-dia-15/" title="O POG nosso de cada dia #15">O POG nosso de cada dia #15</a> (6)</li><li><a href="http://www.chrisb.com.br/blog/o-pog-nosso-de-cada-dia-12/" title="O POG nosso de cada dia #12">O POG nosso de cada dia #12</a> (12)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.chrisb.com.br/blog/boas-referencias-e-divertidas-sobre-pog/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.chrisb.com.br/blog/boas-referencias-e-divertidas-sobre-pog/</feedburner:origLink></item>
		<item>
		<title>Novidades na versão 2.9 do WordPress</title>
		<link>http://feedproxy.google.com/~r/chrisb/~3/RmBhlOhQS1M/</link>
		<comments>http://www.chrisb.com.br/blog/novidades-na-versao-2-9-do-wordpress/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 13:55:05 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.chrisb.com.br/blog/?p=2255</guid>
		<description><![CDATA[Recebi uma newsletter direcionada para quem está cadastrado como developer no WordPress, falando sobre novidades na versão 2.9 do CMS. São as mais importantes, para desenvolvedores: meta-table para comentários suporte a tipos customizados de posts melhor manipulação de temas uso de JSON para integrações entre javascript e PHP Para os usuários finais: melhoria na incorporação [...]]]></description>
			<content:encoded><![CDATA[<p>Recebi uma newsletter direcionada para quem está cadastrado como <em>developer</em> no <strong>WordPress</strong>, falando sobre novidades na versão 2.9 do <strong>CMS</strong>.</p>
<p>São as mais importantes, para desenvolvedores:</p>
<ul>
<li>meta-table para comentários</li>
<li>suporte a tipos customizados de posts</li>
<li>melhor manipulação de temas</li>
<li>uso de JSON para integrações entre javascript e PHP</li>
</ul>
<p>Para os usuários finais:</p>
<ul>
<li>melhoria na incorporação (embed) de mídias</li>
<li>lixeira para posts, páginas e comentários</li>
<li>suporte a miniaturas (thumbnails) de posts</li>
<li>um editor básico de imagens</li>
</ul>
<p>Foram corrigidos já mais de 400 bugs da versão 2.8. Para mais informações, visite <a href="http://codex.wordpress.org/Version_2.9">http://codex.wordpress.org/Version_2.9</a><br />
É possível usar a versão beta do sistema para testar seus temas e plugins!</p>
<p>E, não, o WordPress não vai ser reescrito em Ruby (só pra brincar com um tweet que vi agora pouco falando que seria bacana ele ser portado para Ruby!)</p>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.chrisb.com.br/blog/configurando-acesso-a-pasta-de-uploads-do-wordpress-na-locaweb/" title="Configurando acesso a pasta de uploads do Wordpress na Locaweb">Configurando acesso a pasta de uploads do Wordpress na Locaweb</a> (8)</li><li><a href="http://www.chrisb.com.br/blog/wordpress-ganha-premio-de-melhor-cms-open-source-2009/" title="Wordpress ganha prêmio de melhor CMS Open Source 2009">Wordpress ganha prêmio de melhor CMS Open Source 2009</a> (8)</li><li><a href="http://www.chrisb.com.br/blog/como-criar-seu-proprio-tema-do-wordpress/" title="Como criar seu próprio tema do Wordpress">Como criar seu próprio tema do Wordpress</a> (10)</li><li><a href="http://www.chrisb.com.br/blog/sites-que-usam-wordpress/" title="Sites que usam Wordpress">Sites que usam Wordpress</a> (3)</li><li><a href="http://www.chrisb.com.br/blog/8-perguntas-para-cayo-yogodoshi/" title="8++ perguntas para Cayo Yogodoshi">8++ perguntas para Cayo Yogodoshi</a> (9)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.chrisb.com.br/blog/novidades-na-versao-2-9-do-wordpress/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.chrisb.com.br/blog/novidades-na-versao-2-9-do-wordpress/</feedburner:origLink></item>
		<item>
		<title>Sinais que indicam que você não deve contratar aquele profissional de web</title>
		<link>http://feedproxy.google.com/~r/chrisb/~3/-8zpaPHaV1U/</link>
		<comments>http://www.chrisb.com.br/blog/sinais-que-indicam-que-voce-nao-deve-contratar-aquele-profissional-de-web/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 13:32:34 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Pensamentos]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webmaster]]></category>

		<guid isPermaLink="false">http://www.chrisb.com.br/blog/?p=2222</guid>
		<description><![CDATA[Felizmente há tempos eu tenho mandado bem (uia!) ao contratar profissionais para a equipe de interface (@tivasconcelos, @renanrobe, @gserrano e outros sem @&#8217;s). Fazer isso é um processo que envolve muitos fatores &#8211; e a indicação ainda é a melhor forma. Mas, tem um texto divertido que mostra alguns pontos a serem levados em conta [...]]]></description>
			<content:encoded><![CDATA[<p>Felizmente há tempos eu tenho mandado bem (uia!) ao contratar profissionais para a equipe de interface (<a href="http://twitter.com/tivasconcelos">@tivasconcelos</a>, <a href="http://twitter.com/renanrobe">@renanrobe</a>, <a href="http://twitter.com/gserrano">@gserrano</a> e outros sem @&#8217;s). Fazer isso é um processo que envolve muitos fatores &#8211; e a indicação ainda é a melhor forma. Mas, tem um texto divertido que mostra alguns pontos a serem levados em conta quando você for contratar um profissional web:</p>
<h1>Ele se auto-intitula &#8220;webmaster&#8221;</h1>
<p>E web precisa de especialistas em áreas específicas que conheçam o básico do &#8220;todo&#8221;, mas ninguém consegue dominar tudo. Se ele se chama assim, ele na verdade não sabe nada.</p>
<h1>Ele é um expert em Frontpage</h1>
<p>Primeiro que a ferramenta é ruim. Segundo que quem coloca a ferramenta à frente da tecnologia não merece crédito</p>
<h1>Ele vai submeter seu site para diversos mecanismos de buscas</h1>
<p>Desnecessário comentar a inutilidade disso, né?</p>
<h1>Ele quer um &#8220;Designed by&#8230;&#8221; no rodapé</h1>
<p>O site é para você, pro seu cliente, ou é simples parte do portfólio dele?</p>
<h1>Ele criou um site para alguém da família</h1>
<p>A chamada sobrinhagem: a única referência que tem são os sites feitos pro tio, pro pai, etc&#8230;</p>
<h1>Ele vai inserir um contador de visitas no seu site</h1>
<p>Isso era bacana na época da <em>Geocities</em>&#8230; e morreu lá, ok?!?!</p>
<h1>Ele vai colocar um &#8220;melhor visualizado em&#8230;&#8221; no seu site</h1>
<p>Ok, há toda essa celeuma do IE6 atualmente, mas ninguém pode partir do pressuposto em todos os projetos de que isso é viável</p>
<p>Fonte: <a href="http://davidwalsh.name/9-signs-not-to-hire-that-web-guy">http://davidwalsh.name/9-signs-not-to-hire-that-web-guy</a></p>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.chrisb.com.br/blog/conferencia-web-w3c-debate-sobre-certificacoes/" title="Conferência Web W3C &#8211; debate sobre certificações">Conferência Web W3C &#8211; debate sobre certificações</a> (12)</li><li><a href="http://www.chrisb.com.br/blog/5-novos-blogs-que-tenho-seguido-2/" title="5 novos blogs que tenho seguido #2">5 novos blogs que tenho seguido #2</a> (4)</li><li><a href="http://www.chrisb.com.br/blog/sem-precisar-mais-validar-as-interfaces-no-ie6-consegui/" title="Sem precisar mais validar as interfaces no IE6: consegui!">Sem precisar mais validar as interfaces no IE6: consegui!</a> (14)</li><li><a href="http://www.chrisb.com.br/blog/novos-blogs-bacanas-desenvolvimento-web/" title="Novos blogs bacanas de desenvolvimento web">Novos blogs bacanas de desenvolvimento web</a> (6)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.chrisb.com.br/blog/sinais-que-indicam-que-voce-nao-deve-contratar-aquele-profissional-de-web/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		<feedburner:origLink>http://www.chrisb.com.br/blog/sinais-que-indicam-que-voce-nao-deve-contratar-aquele-profissional-de-web/</feedburner:origLink></item>
		<item>
		<title>Configurando acesso a pasta de uploads do WordPress na Locaweb</title>
		<link>http://feedproxy.google.com/~r/chrisb/~3/oo_I4HJZUWM/</link>
		<comments>http://www.chrisb.com.br/blog/configurando-acesso-a-pasta-de-uploads-do-wordpress-na-locaweb/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 20:54:29 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[locaweb]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[servidor]]></category>

		<guid isPermaLink="false">http://www.chrisb.com.br/blog/?p=2242</guid>
		<description><![CDATA[Dou graças a Deus por anos atrás ter começado a usar Linux &#8211; foi na época em que o Red Hat estava estourando, alguém na faculdade me fez uma cópia. Porque desse agradecimento? Pois não existem as bizarrices do Windows. Hoje, estava ajudando na configuração de um site que usa WordPress num servidor da Locaweb [...]]]></description>
			<content:encoded><![CDATA[<p>Dou graças a Deus por anos atrás ter começado a usar <strong>Linux</strong> &#8211; foi na época em que o <em>Red Hat</em> estava estourando, alguém na faculdade me fez uma cópia.<br />
Porque desse agradecimento? Pois não existem as bizarrices do <strong>Windows</strong>. Hoje, estava ajudando na configuração de um site que usa <strong>WordPress</strong> num servidor da Locaweb (esses planos básicos, coxinhas) com Windows. Tinha esse ambiente rodando no meu Mac OS e num servidor Linux, para testar e homologar, tudo perfeito. Fiz a devida migração &#8211; arquivos por FTP, banco pelo <em>phpMyAdmin</em>&#8230; tudo belezinha!<br />
Ai, reportaram um problema: não estava sendo possível fazer upload de novos arquivos pelo <strong>WordPress</strong>. Conferi, a pasta de upload com o caminho correto e com permissão 777 (setando pelo cliente de FTP, o <em>Filezilla</em> no caso). Pensei: xiii, lá vem&#8230;</p>
<p>Olhei, olhei e olhei a configuração, tudo perfeito. Mudei, e nada. E nada&#8230; e a mensagem sempre aparecendo:</p>
<p><em>O arquivo enviado não pôde ser movido para E:\home\[nome do meu cliente]\Web\wp-content\uploads</em></p>
<p>Não sei porque tive a grande &#8211; e sem sentido &#8211; idéia de tentar entrar no gerenciador de arquivos do painel de controle da Locaweb e alterar por lá as permissões:</p>
<div id="attachment_2243" class="wp-caption aligncenter" style="width: 608px"><a href="http://www.chrisb.com.br/blog/wp-content/uploads/2009/11/Imagem6.png"><img class="size-full wp-image-2243" title="Imagem6" src="http://www.chrisb.com.br/blog/wp-content/uploads/2009/11/Imagem6.png" alt="Mas eu tinha mudado pra 777..." width="598" height="410" /></a><p class="wp-caption-text">Mas eu tinha mudado pra 777...</p></div>
<div id="attachment_2244" class="wp-caption aligncenter" style="width: 526px"><a href="http://www.chrisb.com.br/blog/wp-content/uploads/2009/11/Imagem7.png"><img class="size-full wp-image-2244" title="Imagem7" src="http://www.chrisb.com.br/blog/wp-content/uploads/2009/11/Imagem7.png" alt="Forcei a permissão por aqui..." width="516" height="197" /></a><p class="wp-caption-text">Forcei a permissão por aqui...</p></div>
<p>E, aí, tudo funcionou perfeitamente. Pelo menos fica a dica para caso alguém tenha esse mesmo problema, algum dia!</p>
<h3  class="related_post_title">Posts relacionados</h3><ul class="related_post"><li><a href="http://www.chrisb.com.br/blog/novidades-na-versao-2-9-do-wordpress/" title="Novidades na versão 2.9 do Wordpress">Novidades na versão 2.9 do Wordpress</a> (3)</li><li><a href="http://www.chrisb.com.br/blog/vnstat-php-frontend/" title="vnStat PHP Frontend">vnStat PHP Frontend</a> (0)</li><li><a href="http://www.chrisb.com.br/blog/8-perguntas-para-cayo-yogodoshi/" title="8++ perguntas para Cayo Yogodoshi">8++ perguntas para Cayo Yogodoshi</a> (9)</li><li><a href="http://www.chrisb.com.br/blog/tipos-de-usuarios-e-o-que-eles-podem-fazer-no-wordpress/" title="Tipos de usuários e o que eles podem fazer no Wordpress">Tipos de usuários e o que eles podem fazer no Wordpress</a> (0)</li><li><a href="http://www.chrisb.com.br/blog/my-category-order-como-ordenar-categorias-no-wp/" title="My Category Order &#8211; como ordenar categorias no WP">My Category Order &#8211; como ordenar categorias no WP</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.chrisb.com.br/blog/configurando-acesso-a-pasta-de-uploads-do-wordpress-na-locaweb/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.chrisb.com.br/blog/configurando-acesso-a-pasta-de-uploads-do-wordpress-na-locaweb/</feedburner:origLink></item>
	</channel>
</rss><!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
