<?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/" version="2.0">

<channel>
	<title>blog do Vítor</title>
	
	<link>http://vitoravelino.net/blog</link>
	<description>Do útil ao mais inútil post em sua vida!</description>
	<lastBuildDate>Sat, 18 Jul 2009 22:21:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/vitoravelino" type="application/rss+xml" /><item>
		<title>Randomizando nomes de arquivos</title>
		<link>http://vitoravelino.net/blog/2009/07/18/randomizando-nomes-de-arquivos/</link>
		<comments>http://vitoravelino.net/blog/2009/07/18/randomizando-nomes-de-arquivos/#comments</comments>
		<pubDate>Sat, 18 Jul 2009 19:02:02 +0000</pubDate>
		<dc:creator>Vítor Avelino</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[gpl]]></category>
		<category><![CDATA[música]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[shuffle]]></category>

		<guid isPermaLink="false">http://vitoravelino.net/blog/?p=84</guid>
		<description><![CDATA[A idéia surgiu devido o aparelho de som do carro do meu pai não ser lá um iPod Shuffle. Então pensei:
Já que ele não randomiza muito bem, que tal levar os nomes dos arquivos já randomizados?

Decidi fazer rapidinho em Java e deu nisso aí:
RandomFiles.java

/*
 *  RandomFiles.java
 *  Copyright (C) 2009  Vítor Avelino
 [...]]]></description>
			<content:encoded><![CDATA[<p>A idéia surgiu devido o aparelho de som do carro do meu pai não ser lá um iPod Shuffle. Então pensei:</p>
<blockquote><p>Já que ele não randomiza muito bem, que tal levar os nomes dos arquivos já randomizados?</p></blockquote>
<p><span id="more-84"></span></p>
<p>Decidi fazer rapidinho em Java e deu nisso aí:</p>
<p>RandomFiles.java</p>
<pre class="brush: java;">
/*
 *  RandomFiles.java
 *  Copyright (C) 2009  Vítor Avelino
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see &lt;http://www.gnu.org/licenses/&gt;.
 */

import java.io.File;
import java.util.Random;

public class RandomFiles {

    private static Random randomizer = new Random();

    /**
    * Randomize the files of a specific directory.
    *
    * @param directory 	The directory that will have its file renamed
    * @param subdir	&lt;code&gt;true&lt;/code&gt; if subdirectories' files have to be renamed
    * 			&lt;code&gt;false&lt;/code&gt; if it's not necessary rename subdirectories' files
    */
    public static void randomize(String directory, boolean includeSubdirs) {
        File dir = new File(directory);
        if (!dir.isDirectory() || !dir.exists()) {
            System.err.println(directory + &quot; não é um diretório ou não existe!&quot;);
            System.exit(-1);
        }

        System.out.println(&quot;Inicializando renomeamento randômico...&quot;);
        navigateInDirectories(dir, includeSubdirs);
        System.out.println(&quot;Finalizado!&quot;);
    }

    private static void navigateInDirectories(File dir, boolean includeSubdirs) {
        File renamed = null;
        int randomNumber = 0;

        for (File f : dir.listFiles()) {
            do {
                randomNumber = randomizer.nextInt();
            } while (randomNumber &lt;= 0);

            if (!f.isDirectory()) {
                renamed = new File(FileUtil.getPath(f) + randomNumber + FileUtil.getExtension(f));
                f.renameTo(renamed);
                System.out.println(&quot;&gt;&gt;&gt; &quot; + f.getName() + &quot; renomeado para &quot; + randomNumber + FileUtil.getExtension(f));
            } else if (includeSubdirs) {
                System.out.println(&quot;- &quot; + f.getName() + File.separator);
                navigateInDirectories(f, includeSubdirs);
            }
        }
    }

}
</pre>
<p>FileUtil.java</p>
<pre class="brush: java;">
/*
 *  FileUtil.java
 *  Copyright (C) 2009  Vítor Avelino
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see &lt;http://www.gnu.org/licenses/&gt;.
 */

import java.io.File;

public class FileUtil {

    /**
    * Returns just the pathname of a file as string.
    *
    * @param f The file that will have the path extracted
    * @return The pathname of a file
    */
    public static String getPath(File f) {
        String absolutePath = f.getAbsolutePath();
        return absolutePath.substring(0, absolutePath.lastIndexOf(File.separator) + 1);
    }

    /**
    * Returns the extension of a file.
    *
    * @param The file that will have the extension extracted
    * @return &lt;code&gt;null&lt;/code&gt; if the extension of a file doesn't exist, &lt;code&gt;extension&lt;/code&gt; if the file has one
    */
    public static String getExtension(File f) {
        String name = f.getName();
        return name.substring(name.lastIndexOf('.'));
    }

}
</pre>
<p>A forma de utilizar é simples, segue um exemplo abaixo:</p>
<pre class="brush: java;">
RandomFiles.randomize(&quot;D:\Teste\&quot;, false);
RandomFiles.randomize(&quot;D:\Teste\&quot;, true);
</pre>
<p>Para a primeira chamada a saída será:</p>
<blockquote><p>Inicializando renomeamento randômico&#8230;<br />
&gt;&gt;&gt; arquivo1.PDF renomeado para 538981388.PDF<br />
&gt;&gt;&gt; arquivo2.doc renomeado para 65861820.doc<br />
&gt;&gt;&gt; arquivo3.html renomeado para 210904720.html<br />
Finalizado!</p></blockquote>
<p>Para a segunda chamada a saída será:</p>
<blockquote><p>Inicializando renomeamento randômico&#8230;<br />
&gt;&gt;&gt; 210904720.html renomeado para 668609286.html<br />
&gt;&gt;&gt; 538981388.PDF renomeado para 573146098.PDF<br />
&gt;&gt;&gt; 65861820.doc renomeado para 417987190.doc<br />
- sub\<br />
&gt;&gt;&gt; arquivo4.PDF renomeado para 233716363.PDF<br />
&gt;&gt;&gt; arquivo5.doc renomeado para 657621617.doc<br />
&gt;&gt;&gt; arquivo6.html renomeado para 118165004.html<br />
Finalizado!</p></blockquote>
<p>As mensagens de saída foram utilizadas apenas para acompanhar a execução do programa.</p>
<p>Espero que seja útil para alguém assim como foi para mim. Quando tiver tempo farei uma versão em Python e/ou Shell-Script e também instalarei um SO decente (viram o exemplo lixo, né?) aqui no PC da casa dos meus pais.</p>
<p>Férias já! :~</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 891px; width: 1px; height: 1px;">import java.io.File;<br />
import java.util.Random;public class RandomFiles {private static Random randomizer = new Random();public static void randomize(String directory, boolean includeSubdirs) {<br />
File dir = new File(directory);<br />
if (!dir.isDirectory() || !dir.exists()) {<br />
System.err.println(directory + &#8221; não é um diretório ou não existe!&#8221;);<br />
System.exit(-1);<br />
}</p>
<p>System.out.println(&#8221;Inicializando renomeamento randômico&#8230;&#8221;);<br />
navigateInDirectories(dir, includeSubdirs);<br />
System.out.println(&#8221;Finalizado!&#8221;);<br />
}</p>
<p>private static void navigateInDirectories(File dir, boolean includeSubdirs) {<br />
File renamed = null;<br />
int randomNumber = 0;</p>
<p>for (File f : dir.listFiles()) {<br />
do {<br />
randomNumber = randomizer.nextInt();<br />
} while (randomNumber &lt;= 0);</p>
<p>if (!f.isDirectory()) {<br />
renamed = new File(FileUtil.getPath(f) + randomNumber + FileUtil.getExtension(f));<br />
f.renameTo(renamed);<br />
System.out.println(&#8221;&gt;&gt;&gt; &#8221; + f.getName() + &#8221; renomeado para &#8221; + randomNumber + FileUtil.getExtension(f));<br />
} else if (includeSubdirs) {<br />
System.out.println(&#8221;- &#8221; + f.getName() + File.separator);<br />
navigateInDirectories(f, includeSubdirs);<br />
}<br />
}<br />
}</p>
<p>public static void main(String[] args) {<br />
RandomFiles.randomize(&#8221;D:/teste/&#8221;, false);<br />
}</p>
<p>}</p>
</div>
<h3>Artigos relacionados:</h3>
<ul class="related_post">
<li><a href="http://vitoravelino.net/blog/2009/07/08/mpb-musica-para-baixar/" title="MPB &#8211; Música Para Baixar">MPB &#8211; Música Para Baixar</a></li>
</ul>
<p class="tweetthis"><a class="tt" href="http://twitter.com/home/?status=Randomizando+nomes+de+arquivos+http://is.gd/1DyhL" title="Post to Twitter"><img class="nothumb" src="http://vitoravelino.net/blog/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="[Post to Twitter]" border="0" /></a> <a class="tt" href="http://twitter.com/home/?status=Randomizando+nomes+de+arquivos+http://is.gd/1DyhL" title="Post to Twitter">Tweet This Post</a>&nbsp; </p></div>]]></content:encoded>
			<wfw:commentRss>http://vitoravelino.net/blog/2009/07/18/randomizando-nomes-de-arquivos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Encontro de Software Livre do Brejo Paraibano</title>
		<link>http://vitoravelino.net/blog/2009/07/13/i-encontro-de-software-livre-do-brejo-paraibano/</link>
		<comments>http://vitoravelino.net/blog/2009/07/13/i-encontro-de-software-livre-do-brejo-paraibano/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 00:15:26 +0000</pubDate>
		<dc:creator>Vítor Avelino</dc:creator>
				<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[encontro]]></category>
		<category><![CDATA[ESLBP]]></category>
		<category><![CDATA[guarabira]]></category>

		<guid isPermaLink="false">http://vitoravelino.net/blog/?p=77</guid>
		<description><![CDATA[Segue a chamada&#8230;
&#8220;O I ESLBP (Encontro de Software Livre do Brejo Paraibano) é uma iniciativa do Grupo de Software Livre do Brejo Paraibano. O principal objetivo do evento é divulgar e promover o uso de software livre na região.
Este ano, o evento contará com várias palestras. As palestras serão de caráter técnico ou temático, abordando [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Segue a chamada&#8230;</p>
<p style="text-align: justify;">&#8220;O <strong>I ESLBP</strong> (Encontro de Software Livre do Brejo Paraibano) é uma iniciativa do Grupo de Software Livre do Brejo Paraibano. O principal objetivo do evento é divulgar e promover o uso de software livre na região.</p>
<p style="text-align: justify;">Este ano, o evento contará com várias palestras. As palestras serão de caráter técnico ou temático, abordando o uso do software livre na inclusão digital, casos de sucesso e o seu uso político.</p>
<p style="text-align: justify;">Além dos palestrantes convidados, será aberto um espaço para que as pessoas possam <a href="http://brejolivre.com.br/index.php?option=com_content&amp;view=article&amp;id=5&amp;Itemid=8" target="_blank">submeter</a> propostas de palestras. Contamos com a sua presença. Venha e participe. O movimento de software livre da Paraíba e mais especificamente da região do Brejo agradece.&#8221;</p>
<p><span id="more-77"></span></p>
<p style="text-align: justify;">É isso mesmo! Fiquei surpreso ao receber a notícia de um conhecido, que é um dos organizadores, a respeito do evento. A idéia surgiu após a criação do <a href="http://groups.google.com/group/usuarios-linux-de-guarabira-pb">grupo de usuários</a> de software livre de Guarabira e região do brejo. Há poucas semanas participei do FISL que <a href="http://vitoravelino.net/blog/2009/07/03/experiencia-fisl10/">deixou-me empolgado</a> a participar de outros eventos sobre software livre.</p>
<p style="text-align: justify;">A data do encontro será no dia <strong>15 de agosto de 2009</strong> no auditório do <strong>SESC</strong> em <strong>Guarabira/PB</strong> com início as 8:00h. A <a href="http://brejolivre.com.br/index.php?option=com_content&amp;view=article&amp;id=2:inscricoes&amp;Itemid=3" target="_blank">inscrição</a> é somente 1kg de alimento não perecível. Faça já a sua!</p>
<p style="text-align: justify;">Estarei dando minha pequena contribuição na organização do evento e também em algum bar ao fim do encontro. =P</p>
<p style="text-align: justify;">Para maiores informações, acompanhe <a href="http://www.brejolivre.com.br/" target="_blank">http://www.brejolivre.com.br/</a>.</p>
<h3>Artigos relacionados:</h3>
<ul class="related_post">
<li><a href="http://vitoravelino.net/blog/2009/07/03/experiencia-fisl10/" title="Experiência FISL10">Experiência FISL10</a></li>
<li><a href="http://vitoravelino.net/blog/2009/06/13/fisl-10/" title="FISL 10">FISL 10</a></li>
</ul>
<p class="tweetthis"><a class="tt" href="http://twitter.com/home/?status=I+Encontro+de+Software+Livre+do+Brejo+Paraibano+http://is.gd/1zXoN" title="Post to Twitter"><img class="nothumb" src="http://vitoravelino.net/blog/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="[Post to Twitter]" border="0" /></a> <a class="tt" href="http://twitter.com/home/?status=I+Encontro+de+Software+Livre+do+Brejo+Paraibano+http://is.gd/1zXoN" title="Post to Twitter">Tweet This Post</a>&nbsp; </p></div>]]></content:encoded>
			<wfw:commentRss>http://vitoravelino.net/blog/2009/07/13/i-encontro-de-software-livre-do-brejo-paraibano/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MPB – Música Para Baixar</title>
		<link>http://vitoravelino.net/blog/2009/07/08/mpb-musica-para-baixar/</link>
		<comments>http://vitoravelino.net/blog/2009/07/08/mpb-musica-para-baixar/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 18:04:34 +0000</pubDate>
		<dc:creator>Vítor Avelino</dc:creator>
				<category><![CDATA[Outros]]></category>
		<category><![CDATA[fisl]]></category>
		<category><![CDATA[livre]]></category>
		<category><![CDATA[mpb]]></category>
		<category><![CDATA[música]]></category>

		<guid isPermaLink="false">http://vitoravelino.net/blog/?p=72</guid>
		<description><![CDATA[Eu não conhecia a iniciativa até ter assistindo a um debate sobre música livre no FISL. Apesar de não ser músico, apoio a idéia do movimento.
Foi feita uma petição online. Se você entede o novo mundo da música, participe!
Para maiores informações: http://musicaparabaixar.org.br/
Artigos relacionados:

Randomizando nomes de arquivos
Experiência FISL10
FISL 10

 Tweet This Post&#160; ]]></description>
			<content:encoded><![CDATA[<p>Eu não conhecia a iniciativa até ter assistindo a um debate sobre música livre no FISL. Apesar de não ser músico, apoio a idéia do movimento.</p>
<p>Foi feita uma <a href="http://www.petitiononline.com/mpb/petition.html">petição</a> online. Se você entede o novo mundo da música, participe!</p>
<p>Para maiores informações: <a href="http://musicaparabaixar.org.br/">http://musicaparabaixar.org.br/</a></p>
<h3>Artigos relacionados:</h3>
<ul class="related_post">
<li><a href="http://vitoravelino.net/blog/2009/07/18/randomizando-nomes-de-arquivos/" title="Randomizando nomes de arquivos">Randomizando nomes de arquivos</a></li>
<li><a href="http://vitoravelino.net/blog/2009/07/03/experiencia-fisl10/" title="Experiência FISL10">Experiência FISL10</a></li>
<li><a href="http://vitoravelino.net/blog/2009/06/13/fisl-10/" title="FISL 10">FISL 10</a></li>
</ul>
<p class="tweetthis"><a class="tt" href="http://twitter.com/home/?status=MPB+--+M%C3%BAsica+Para+Baixar+http://is.gd/1zXoP" title="Post to Twitter"><img class="nothumb" src="http://vitoravelino.net/blog/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="[Post to Twitter]" border="0" /></a> <a class="tt" href="http://twitter.com/home/?status=MPB+--+M%C3%BAsica+Para+Baixar+http://is.gd/1zXoP" title="Post to Twitter">Tweet This Post</a>&nbsp; </p></div>]]></content:encoded>
			<wfw:commentRss>http://vitoravelino.net/blog/2009/07/08/mpb-musica-para-baixar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Experiência FISL10</title>
		<link>http://vitoravelino.net/blog/2009/07/03/experiencia-fisl10/</link>
		<comments>http://vitoravelino.net/blog/2009/07/03/experiencia-fisl10/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 23:55:18 +0000</pubDate>
		<dc:creator>Vítor Avelino</dc:creator>
				<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[fisl]]></category>
		<category><![CDATA[porto alegre]]></category>
		<category><![CDATA[viagens]]></category>

		<guid isPermaLink="false">http://vitoravelino.net/blog/?p=59</guid>
		<description><![CDATA[É, parece que foi ontem que estava arrumando a mochila para pegar o vôo com destino ao FISL. Cheguei alguns dias antes do evento para sentir como eram as noites em Porto Alegre. Acabei por apaixonar-me pela cidade, mas isso é assunto para um outro post. =P
Voltando ao FISL, foi uma experiência ótima. Eu não [...]]]></description>
			<content:encoded><![CDATA[<p>É, parece que foi ontem que estava arrumando a mochila para pegar o vôo com destino ao FISL. Cheguei alguns dias antes do evento para sentir como eram as noites em Porto Alegre. Acabei por apaixonar-me pela cidade, mas isso é assunto para um outro post. =P</p>
<p>Voltando ao FISL, foi uma experiência ótima. Eu não tinha noção do quão o software livre significava para as pessoas. Apesar de não ser entusiasta (ainda!), fiquei empolgado após o evento. Tentarei contribuir em algum software em breve; logo que arrumar tempo para tal.</p>
<p><span id="more-59"></span></p>
<p>Não posso dizer que aproveitei bem o evento, até porque as noites de Porto Alegre não deixaram. ^^ Mas deu pra conhecer bastante coisa e absorver o mínimo suficiente para engajar-me de vez nesse treco legal que é a comunidade do software livre. Não irei escrever rios de palavras relatando como o evento foi <em>tri</em> bom e que quem não foi deve ir próximo ano. Quem for, aproveite para conhecer melhor Porto Alegre. ;D</p>
<p>Segue alguns links interessantes e um outro não:</p>
<ul>
<li><a href="http://fisl.softwarelivre.org/10/www/06/27/fisl10-reune-mais-de-8-mil-pessoas-em-porto-alegre/">http://fisl.softwarelivre.org/10/www/06/27/fisl10-reune-mais-de-8-mil-pessoas-em-porto-alegre/</a></li>
<li><a href="http://br-linux.org/2009/convenio-confirma-que-o-fisl-continua-em-porto-alegre/">http://br-linux.org/2009/convenio-confirma-que-o-fisl-continua-em-porto-alegre/</a></li>
<li><a href="http://br-linux.org/2009/rescaldos-do-fisl-9-relatos-da-comunidade/">http://br-linux.org/2009/rescaldos-do-fisl-9-relatos-da-comunidade/</a></li>
<li><a href="http://br-linux.org/2009/presidente-no-fisl-projeto-de-lei-que-endurece-penas-a-crimes-ciberneticos-e-censura/">http://br-linux.org/2009/presidente-no-fisl-projeto-de-lei-que-endurece-penas-a-crimes-ciberneticos-e-censura/</a></li>
<li><a href="http://br-linux.org/2009/video-stallman-e-o-funk-dos-gnus-no-fisl/">http://br-linux.org/2009/video-stallman-e-o-funk-dos-gnus-no-fisl/</a></li>
<li>[Update]</li>
<li><a href="http://br-linux.org/2009/culpa-e-dos-usuarios-por-que-o-wi-fi-do-fisl-nao-funciona-direito/">http://br-linux.org/2009/culpa-e-dos-usuarios-por-que-o-wi-fi-do-fisl-nao-funciona-direito/</a></li>
<li><a href="http://br-linux.org/2009/fisl-fotos-do-bloqueio-aos-expositores-e-comunidades-motivado-pela-visita-do-presidente/">http://br-linux.org/2009/fisl-fotos-do-bloqueio-aos-expositores-e-comunidades-motivado-pela-visita-do-presidente/</a></li>
<li><a href="http://br-linux.org/2009/fisl-2009-o-que-o-co-fundador-do-the-pirate-bay-veio-dizer-aqui/">http://br-linux.org/2009/fisl-2009-o-que-o-co-fundador-do-the-pirate-bay-veio-dizer-aqui/</a></li>
</ul>
<p>Mais informações em <a href="http://fisl.softwarelivre.org/">http://fisl.softwarelivre.org/</a></p>
<h3>Artigos relacionados:</h3>
<ul class="related_post">
<li><a href="http://vitoravelino.net/blog/2009/06/13/fisl-10/" title="FISL 10">FISL 10</a></li>
<li><a href="http://vitoravelino.net/blog/2009/07/13/i-encontro-de-software-livre-do-brejo-paraibano/" title="I Encontro de Software Livre do Brejo Paraibano">I Encontro de Software Livre do Brejo Paraibano</a></li>
<li><a href="http://vitoravelino.net/blog/2009/07/08/mpb-musica-para-baixar/" title="MPB &#8211; Música Para Baixar">MPB &#8211; Música Para Baixar</a></li>
</ul>
<p class="tweetthis"><a class="tt" href="http://twitter.com/home/?status=Experi%C3%AAncia+FISL10+http://is.gd/1zXoQ" title="Post to Twitter"><img class="nothumb" src="http://vitoravelino.net/blog/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="[Post to Twitter]" border="0" /></a> <a class="tt" href="http://twitter.com/home/?status=Experi%C3%AAncia+FISL10+http://is.gd/1zXoQ" title="Post to Twitter">Tweet This Post</a>&nbsp; </p></div>]]></content:encoded>
			<wfw:commentRss>http://vitoravelino.net/blog/2009/07/03/experiencia-fisl10/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>10 maneiras de tornar seu site mais acessível utilizando padrões web</title>
		<link>http://vitoravelino.net/blog/2009/06/19/10-maneiras-de-tornar-seu-site-mais-acessivel-utilizando-padroes-web/</link>
		<comments>http://vitoravelino.net/blog/2009/06/19/10-maneiras-de-tornar-seu-site-mais-acessivel-utilizando-padroes-web/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 20:48:33 +0000</pubDate>
		<dc:creator>Vítor Avelino</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[acessibilidade]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://vitoravelino.net/blog/?p=44</guid>
		<description><![CDATA[Quando trata-se de criar websites hoje, a principal preocupação que vem a cabeça é se eles estão acessíveis a todos os possíveis usuários que os visitarão. Pode parecer besteira a primeira vista, mas uma simples mudança ou adição de uma tag no cabeçalho faz diferença. Isso reflete, também, num melhor rastreamento dos robôs das páginas [...]]]></description>
			<content:encoded><![CDATA[<p>Quando trata-se de criar websites hoje, a principal preocupação que vem a cabeça é se eles estão acessíveis a todos os possíveis usuários que os visitarão. Pode parecer besteira a primeira vista, mas uma simples mudança ou adição de uma tag no cabeçalho faz diferença. Isso reflete, também, num melhor rastreamento dos robôs das páginas de busca.</p>
<p>Sempre preocupei-me em utilizar os padrões web para que meus websites tivessem, além de uma boa sintaxe e semântica, maior acessibilidade.</p>
<p><span id="more-44"></span></p>
<p>Navegando ontem pelo <a href="http://www.smashingmagazine.com/">SmashingMagazine</a>, encontrei um <a href="http://www.smashingmagazine.com/2009/06/18/10-ways-to-make-your-site-accessible-using-web-standards/">post</a> muito interessante e simples que falava sobre acessibilidade junto com padrões web. São abordados os seguintes pontos:</p>
<ol>
<li>Especificar o DOCTYPE correto;</li>
<li>Definir o namespace e a linguagem padrão;</li>
<li>Utilizar http-equiv, language, description e keywords meta tags;</li>
<li>Utilize uma navegação acessível;</li>
<li>Utilize corretamente JavaScript no meio da página;</li>
<li>Utilize corretamente os <em>HTML Entities</em>;</li>
<li>Utilize apenas tags e atributos minúsculos;</li>
<li>Utilize Label para todos os elementos input de um form;</li>
<li>Utilize conteúdo alternativo para imagens;</li>
<li>Utilize os atributos &#8216;id&#8217; e &#8216;class&#8217; do CSS corretamente.</li>
</ol>
<p>Lembrando que, não é o fato de alguém estar seguindo todos os pontos acima que o website estará 100% acessível. Propunho um estudo maior sobre o assunto, pois valerá a pena.</p>
<p>Veja o post <a href="http://www.smashingmagazine.com/2009/06/18/10-ways-to-make-your-site-accessible-using-web-standards/">10 Ways To Make Your Site Accessible Using Web Standards</a> na íntegra.</p>
<h3>Artigos relacionados:</h3>
<ul class="related_post">
<li>Nenhum post relacionado.</li>
</ul>
<p class="tweetthis"><a class="tt" href="http://twitter.com/home/?status=10+maneiras+de+tornar+seu+site+mais+acess%C3%ADvel+utilizando+padr%C3%B5es+web+http://is.gd/1zXoS" title="Post to Twitter"><img class="nothumb" src="http://vitoravelino.net/blog/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="[Post to Twitter]" border="0" /></a> <a class="tt" href="http://twitter.com/home/?status=10+maneiras+de+tornar+seu+site+mais+acess%C3%ADvel+utilizando+padr%C3%B5es+web+http://is.gd/1zXoS" title="Post to Twitter">Tweet This Post</a>&nbsp; </p></div>]]></content:encoded>
			<wfw:commentRss>http://vitoravelino.net/blog/2009/06/19/10-maneiras-de-tornar-seu-site-mais-acessivel-utilizando-padroes-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exibindo informações do seu Twitter com PHP</title>
		<link>http://vitoravelino.net/blog/2009/06/14/exibindo-informacoes-do-seu-twitter-com-php/</link>
		<comments>http://vitoravelino.net/blog/2009/06/14/exibindo-informacoes-do-seu-twitter-com-php/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 00:42:06 +0000</pubDate>
		<dc:creator>Vítor Avelino</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://vitoravelino.net/blog/?p=25</guid>
		<description><![CDATA[Na semana passada quando montei minha página de entrada, estive pensando em por mais informações além de um simples sobre. Uma das coisas que eu tinha em mente era os meus últimos tweets que são mostrados aqui no blog através do Twitter Tools. Porém, eu necessitava saber como ter acesso aos tweets sem qualquer complicação. [...]]]></description>
			<content:encoded><![CDATA[<p>Na semana passada quando montei minha <a href="http://vitoravelino.net/">página de entrada</a>, estive pensando em por mais informações além de um simples <em>sobre</em>. Uma das coisas que eu tinha em mente era os meus últimos tweets que são mostrados aqui no blog através do <a href="http://wordpress.org/extend/plugins/twitter-tools/">Twitter Tools</a>. Porém, eu necessitava saber como ter acesso aos tweets sem qualquer complicação. Ao pesquisar um pouco, encontrei uma solução legal e gostaria de compartilhá-la aqui.</p>
<p>Mostrarei dois exemplos de métodos, da <a href="http://apiwiki.twitter.com/Twitter-API-Documentation">API do Twitter</a>, que não precisam de autenticação e servem apenas para a exibição de informações, que é o meu objetivo.</p>
<p>Para tratamento do arquivo XML de retorno da API utilizarei algumas funções <a href="http://br.php.net/simplexml">SimpleXML</a> do PHP5. O primeiro exemplo exibirá os últimos cinco tweets de um usuário, equanto o segundo informações sobre o usuário.</p>
<p><span id="more-25"></span></p>
<p><strong>1º exemplo:</strong></p>
<pre class="brush: php;">&lt;?
	$xml = simplexml_load_file(&quot;http://twitter.com/statuses/user_timeline/nome-usuario.xml?count=5&quot;);
	for ($i = 0; $i &lt; count($xml-&gt;status); $i++) {
		echo $xml-&gt;status[$i]-&gt;text;
	}
?&gt;</pre>
<p>No código acima é requisitado a API do Twitter os cinco últimos tweets do usuário <em>nome-usuario</em>. Perceba que é o parâmetro <em>count</em> é quem limita a quantidade de tweets que será retornado no XML. No meu caso, a url ficaria:</p>
<blockquote><p>http://twitter.com/statuses/user_timeline/vitoravelino.xml?count=5</p></blockquote>
<p><strong>2º exemplo:</strong></p>
<pre class="brush: php;">&lt;?
	$xml = simplexml_load_file(&quot;http://twitter.com/users/show/nome-usuario.xml&quot;);
	echo $xml-&gt;name;
	echo $xml-&gt;screen_name;
	echo $xml-&gt;location;
	echo $xml-&gt;followers_count;
	echo $xml-&gt;friends_count;
?&gt;</pre>
<p>No código acima é requisitado todas as informações públicas do usuário <em>nome-usuario</em>. Não é necessário passar nenhum parâmetro. As informações só serão retornadas se o usuário não ativar a proteção do seu perfil. No meu caso, a url ficaria:</p>
<blockquote><p>http://twitter.com/users/show/vitoravelino.xml</p></blockquote>
<p>Veja o <a href="http://vitoravelino.net/exemplos/php/1/">EXEMPLO</a> na prática e o <a href="http://vitoravelino.net/exemplos/php/1/index.phps">CÓDIGO FONTE</a>.</p>
<p>Texto interessante sobre a API do Twitter: <a href="http://www.insideria.com/2009/06/chapter-4-meet-the-twitter-api.html">http://www.insideria.com/2009/06/chapter-4-meet-the-twitter-api.html</a></p>
<h3>Artigos relacionados:</h3>
<ul class="related_post">
<li>Nenhum post relacionado.</li>
</ul>
<p class="tweetthis"><a class="tt" href="http://twitter.com/home/?status=Exibindo+informa%C3%A7%C3%B5es+do+seu+Twitter+com+PHP+http://is.gd/1zXoW" title="Post to Twitter"><img class="nothumb" src="http://vitoravelino.net/blog/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="[Post to Twitter]" border="0" /></a> <a class="tt" href="http://twitter.com/home/?status=Exibindo+informa%C3%A7%C3%B5es+do+seu+Twitter+com+PHP+http://is.gd/1zXoW" title="Post to Twitter">Tweet This Post</a>&nbsp; </p></div>]]></content:encoded>
			<wfw:commentRss>http://vitoravelino.net/blog/2009/06/14/exibindo-informacoes-do-seu-twitter-com-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FISL 10</title>
		<link>http://vitoravelino.net/blog/2009/06/13/fisl-10/</link>
		<comments>http://vitoravelino.net/blog/2009/06/13/fisl-10/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 01:10:57 +0000</pubDate>
		<dc:creator>Vítor Avelino</dc:creator>
				<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[fisl]]></category>

		<guid isPermaLink="false">http://vitoravelino.net/blog/?p=13</guid>
		<description><![CDATA[Esse ano, o FISL, Fórum Internacional do Software Livre, acontecerá de 24 a 27 de junho, no Centro de Eventos da PUCRS, em Porto Alegre (RS). O encontro já conta com mais de 5500 inscritos e vários palestrantes de grande nome. Além de dezenas de trabalhos pessoais em diversas áreas. Essa será a 10ª edição [...]]]></description>
			<content:encoded><![CDATA[<p>Esse ano, o FISL, Fórum Internacional do Software Livre, acontecerá de 24 a 27 de junho, no Centro de Eventos da PUCRS, em Porto Alegre (RS). O encontro já conta com mais de 5500 inscritos e vários <a href="http://fisl.org.br/10/www/palestrantes">palestrantes</a> de grande nome. Além de dezenas de trabalhos pessoais em diversas <a href="http://www.fisl.org.br/10/www/descricao-dos-macrotemas-fisl10/">áreas</a>. Essa será a 10ª edição do evento que com certeza não vai deixar a desejar em nada [assim espero!].</p>
<p>Quem curte software livre e tem condições de ir ao evento, <strong>participe</strong>! Ainda dá tempo de <a href="https://fisl.softwarelivre.org/10/greve/">inscrever-se</a>. Valerá cada centavo que você gastar. Quem sabe não nos batemos por lá?</p>
<p>Há menos de duas semanas para o início do evento e estou muito, mas muito animado para o tal. Além de sentir aquele friozinho que está rolando no sul do país. <img src='http://vitoravelino.net/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  Vou tentar blogar e/ou <a href="http://twitter.com/vitoravelino">twittar</a> sobre o evento quando estiver por lá.</p>
<p>Maiores informações sobre o FISL10 em <a href="http://fisl.org.br/10/www/">http://fisl.org.br/10/www/</a>.</p>
<h3>Artigos relacionados:</h3>
<ul class="related_post">
<li><a href="http://vitoravelino.net/blog/2009/07/03/experiencia-fisl10/" title="Experiência FISL10">Experiência FISL10</a></li>
<li><a href="http://vitoravelino.net/blog/2009/07/13/i-encontro-de-software-livre-do-brejo-paraibano/" title="I Encontro de Software Livre do Brejo Paraibano">I Encontro de Software Livre do Brejo Paraibano</a></li>
<li><a href="http://vitoravelino.net/blog/2009/07/08/mpb-musica-para-baixar/" title="MPB &#8211; Música Para Baixar">MPB &#8211; Música Para Baixar</a></li>
</ul>
<p class="tweetthis"><a class="tt" href="http://twitter.com/home/?status=FISL+10+http://is.gd/1zXp1" title="Post to Twitter"><img class="nothumb" src="http://vitoravelino.net/blog/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="[Post to Twitter]" border="0" /></a> <a class="tt" href="http://twitter.com/home/?status=FISL+10+http://is.gd/1zXp1" title="Post to Twitter">Tweet This Post</a>&nbsp; </p></div>]]></content:encoded>
			<wfw:commentRss>http://vitoravelino.net/blog/2009/06/13/fisl-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WTF?</title>
		<link>http://vitoravelino.net/blog/2009/06/13/wtf/</link>
		<comments>http://vitoravelino.net/blog/2009/06/13/wtf/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 00:13:03 +0000</pubDate>
		<dc:creator>Vítor Avelino</dc:creator>
				<category><![CDATA[Outros]]></category>
		<category><![CDATA[wtf]]></category>

		<guid isPermaLink="false">http://vitoravelino.net/blog/?p=9</guid>
		<description><![CDATA[Por mais que o tempo passe, jamais aprenderei como fazer um primeiro post decente.
Err&#8230; Sem mais delongas, mãos na massa! =D
Artigos relacionados:

Nenhum post relacionado.

 Tweet This Post&#160; ]]></description>
			<content:encoded><![CDATA[<p>Por mais que o tempo passe, jamais aprenderei como fazer um primeiro post decente.<br />
Err&#8230; Sem mais delongas, mãos na massa! =D</p>
<h3>Artigos relacionados:</h3>
<ul class="related_post">
<li>Nenhum post relacionado.</li>
</ul>
<p class="tweetthis"><a class="tt" href="http://twitter.com/home/?status=WTF%3F+http://is.gd/1zXp4" title="Post to Twitter"><img class="nothumb" src="http://vitoravelino.net/blog/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="[Post to Twitter]" border="0" /></a> <a class="tt" href="http://twitter.com/home/?status=WTF%3F+http://is.gd/1zXp4" title="Post to Twitter">Tweet This Post</a>&nbsp; </p></div>]]></content:encoded>
			<wfw:commentRss>http://vitoravelino.net/blog/2009/06/13/wtf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
