<?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>SamuraiDio</title>
	<atom:link href="http://blog.diovani.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.diovani.com</link>
	<description>GNU/Linux &#124; PHP &#124; JavaScript</description>
	<lastBuildDate>Sat, 18 Dec 2010 21:19:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Usando Dropbox no Linux</title>
		<link>http://blog.diovani.com/2010/12/18/usando-dropbox-no-linux/</link>
		<comments>http://blog.diovani.com/2010/12/18/usando-dropbox-no-linux/#comments</comments>
		<pubDate>Sat, 18 Dec 2010 21:19:20 +0000</pubDate>
		<dc:creator>diovani</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>
		<category><![CDATA[ferramentas]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.diovani.com/?p=410</guid>
		<description><![CDATA[Para quem ainda não conhece, o Dropbox é um aplicativo de compartilhamento de arquivos online, com suporte para Windows, Mac OSX, GNU/Linux e ainda plataformas móveis, como o iPhone OS, Android e Blackberry, além de permitir acesso via qualquer navegador, que permite compartilhar arquivos entre diversos clientes, entre usuários, e ainda publicar galerias de imagens [...]]]></description>
			<content:encoded><![CDATA[<p>Para quem ainda não conhece, o <a href="https://www.dropbox.com/">Dropbox</a> é um aplicativo de compartilhamento de arquivos online, com suporte para Windows, Mac OSX, GNU/Linux e ainda plataformas móveis, como o iPhone OS, Android e Blackberry, além de permitir acesso via qualquer navegador, que permite compartilhar arquivos entre diversos clientes, entre usuários, e ainda publicar galerias de imagens online.</p>
<p style="text-align: center;"><img class="size-full wp-image-418  aligncenter" title="dropbox_logo_home" src="http://blog.diovani.com/wp-content/uploads/2010/12/dropbox_logo_home.png" alt="" width="290" height="75" /></p>
<p>Na minha opinião, a maior vantagem do Dropbox é permitir acesso aos mesmos documentos em casa, no trabalho e no celular.</p>
<p>A maneira mais fácil de utilizar o <a href="https://www.dropbox.com/downloading?os=lnx">Dropbox no GNU/Linux</a> é utilizando o plugin oficial para o gerenciador de arquivos <a href="http://live.gnome.org/Nautilus">Nautilus</a>. Acontece que este método só funciona com o gerenciador de arquivos citado, e ainda tem algumas dependências problemáticas (tive problemas para instalá-lo no Debian).</p>
<p>Como alternativa, existe uma maneira de instalar um cliente de linha de comando como um daemon (programa que roda como um sub-processo, de forma transparente para o usuário), permitindo acesso aos seus arquivos compartilhados com qualquer gerenciador desejado e inclusive por linha de comando. Apesar da desvantagem desta alternativa conter alguns binários de código fechado, ela se torna uma opção bem mais versátil que a anterior.</p>
<p>Para instalar o cliente  de linha comando, você irá precisar previamente dos seguintes requisitos:</p>
<ul>
<li><strong>Versão 2.4 ou superior da biblioteca C</strong></li>
<li><strong>wget</strong></li>
<li><strong>Python 2.5</strong></li>
<li><strong>um navegador web</strong></li>
</ul>
<p>Com as dependências instaladas, baixe o pacote <a href="http://www.dropbox.com/download/?plat=lnx.x86">Dropbox-lnx-x86</a> (ou a versão <a href="http://www.dropbox.com/download/?plat=lnx.x86_64">x86_64</a>) para sua <em>$HOME</em> (os arquivos serão descompactados no diretório <strong><em>.dropbox-dist</em></strong>).</p>
<p>Versão estável 32-bit:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-O</span> dropbox.tar.gz <span style="color: #ff0000;">&quot;http://www.dropbox.com/download/?plat=lnx.x86&quot;</span></pre></div></div>

<p>Versão estável 64-bit:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-O</span> dropbox.tar.gz <span style="color: #ff0000;">&quot;http://www.dropbox.com/download/?plat=lnx.x86_64&quot;</span></pre></div></div>

<p>Após baixar o pacote faça previamente um teste para garantir que os arquivos não serão descompactados diretamente do diretório atual:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-tzf</span> dropbox.tar.gz</pre></div></div>

<p>&#8230;E estando tudo certo, descompacte-os:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-xvzf</span> dropbox.tar.gz</pre></div></div>

<p>Após descompactar, inicie o daemon:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">~<span style="color: #000000; font-weight: bold;">/</span>.dropbox-dist<span style="color: #000000; font-weight: bold;">/</span>dropboxd</pre></div></div>

<p>Após executar o Daemon você deverá receber uma saída como a seguir:</p>
<pre>This client is not linked to any account...
Please visit https://www.dropbox.com/cli_link?host_id=7d44a557aa58f285f2da0x67334d02c1 to link this machine.</pre>
<p>Acessando o link fornecido no terminal você deve receber uma mensagem de sucesso no seu navegador (pode ser necessário logar em sua conta do Dropbox), indicando que tudo ocorreu bem. Depois disso, o <em>daemon</em> criará um diretório <strong><em>Dropbox</em></strong> sob sua <em>$HOME</em>, e iniciará a sincronização de arquivos, então você terá acesso aos seus arquivos compartilhados com com qualquer outro computador contendo um cliente Dropbox.</p>
<p>Para não precisar iniciar o <em>daemon</em> manualmente a cada vez que precisar, você pode criar um init script para iniciá-lo junto com o sistema. Para o Debian e Ubuntu, crie um script em <strong><em>/etc/init.d/dropbox</em></strong>, com o conteúdo a seguir e substitua os nomes na variável <em>DROPBOX_USERS</em> com os nomes de usuários que tem o Dropbox instalado:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># dropbox service</span>
<span style="color: #007800;">DROPBOX_USERS</span>=<span style="color: #ff0000;">&quot;user1 user2&quot;</span>
&nbsp;
<span style="color: #007800;">DAEMON</span>=.dropbox-dist<span style="color: #000000; font-weight: bold;">/</span>dropbox  
&nbsp;
start<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Starting dropbox...&quot;</span>
    <span style="color: #000000; font-weight: bold;">for</span> dbuser <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #007800;">$DROPBOX_USERS</span>; <span style="color: #000000; font-weight: bold;">do</span>
        <span style="color: #007800;">HOMEDIR</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">getent</span> <span style="color: #c20cb9; font-weight: bold;">passwd</span> <span style="color: #007800;">$dbuser</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> -d: -f6<span style="color: #000000; font-weight: bold;">`</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-x</span> <span style="color: #007800;">$HOMEDIR</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$DAEMON</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
            <span style="color: #007800;">HOME</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$HOMEDIR</span>&quot;</span> start-stop-daemon <span style="color: #660033;">-b</span> <span style="color: #660033;">-o</span> <span style="color: #660033;">-c</span> <span style="color: #007800;">$dbuser</span> <span style="color: #660033;">-S</span> <span style="color: #660033;">-u</span> <span style="color: #007800;">$dbuser</span> <span style="color: #660033;">-x</span> <span style="color: #007800;">$HOMEDIR</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$DAEMON</span>
        <span style="color: #000000; font-weight: bold;">fi</span>
    <span style="color: #000000; font-weight: bold;">done</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
stop<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Stopping dropbox...&quot;</span>
    <span style="color: #000000; font-weight: bold;">for</span> dbuser <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #007800;">$DROPBOX_USERS</span>; <span style="color: #000000; font-weight: bold;">do</span>
        <span style="color: #007800;">HOMEDIR</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">getent</span> <span style="color: #c20cb9; font-weight: bold;">passwd</span> <span style="color: #007800;">$dbuser</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> -d: -f6<span style="color: #000000; font-weight: bold;">`</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-x</span> <span style="color: #007800;">$HOMEDIR</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$DAEMON</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
            start-stop-daemon <span style="color: #660033;">-o</span> <span style="color: #660033;">-c</span> <span style="color: #007800;">$dbuser</span> <span style="color: #660033;">-K</span> <span style="color: #660033;">-u</span> <span style="color: #007800;">$dbuser</span> <span style="color: #660033;">-x</span> <span style="color: #007800;">$HOMEDIR</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$DAEMON</span>
        <span style="color: #000000; font-weight: bold;">fi</span>
    <span style="color: #000000; font-weight: bold;">done</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
status<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">for</span> dbuser <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #007800;">$DROPBOX_USERS</span>; <span style="color: #000000; font-weight: bold;">do</span>
        <span style="color: #007800;">dbpid</span>=<span style="color: #000000; font-weight: bold;">`</span>pgrep <span style="color: #660033;">-u</span> <span style="color: #007800;">$dbuser</span> dropbox<span style="color: #000000; font-weight: bold;">`</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-z</span> <span style="color: #007800;">$dbpid</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> ; <span style="color: #000000; font-weight: bold;">then</span>
            <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;dropboxd for USER <span style="color: #007800;">$dbuser</span>: not running.&quot;</span>
        <span style="color: #000000; font-weight: bold;">else</span>
            <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;dropboxd for USER <span style="color: #007800;">$dbuser</span>: running (pid <span style="color: #007800;">$dbpid</span>)&quot;</span>
        <span style="color: #000000; font-weight: bold;">fi</span>
    <span style="color: #000000; font-weight: bold;">done</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #ff0000;">&quot;$1&quot;</span> <span style="color: #000000; font-weight: bold;">in</span>
&nbsp;
    start<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        start
        <span style="color: #000000; font-weight: bold;">;;</span>
&nbsp;
    stop<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        stop
        <span style="color: #000000; font-weight: bold;">;;</span>
&nbsp;
    restart<span style="color: #000000; font-weight: bold;">|</span>reload<span style="color: #000000; font-weight: bold;">|</span>force-reload<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        stop
        start
        <span style="color: #000000; font-weight: bold;">;;</span>
&nbsp;
    status<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        status
        <span style="color: #000000; font-weight: bold;">;;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Usage: /etc/init.d/dropbox {start|stop|reload|force-reload|restart|status}&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">esac</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span></pre></div></div>

<p>&#8230;E então execute os comandos a seguir para adicionar o dropbox como um serviço do sistema:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">chmod</span> +x <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>dropbox
update-rc.d dropbox defaults</pre></div></div>

<p>Além do <a title="Debian/Ubuntu Dropbox startup script" href="http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall/UbuntuStartup">script para Debian/Ubuntu</a>, na <a href="http://wiki.dropbox.com">wiki do Dropbox</a> existem exemplos de versões para <a title="Fedora Dropbox startup script" href="http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall/FedoraStartup">Fedora</a> e <a title="Gentoo Dropbox startup script" href="http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall/GentooStartup">Gentoo</a>. Na wiki também existe um tutorial para instalar o <a title="Dropbox Debian/Ubuntu server isntall" href="http://wiki.dropbox.com/TipsAndTricks/UbuntuServerInstall">daemon Dropbox para ser executado para todos usuários</a> (útil para servidores).</p>
<p>Deste modo, sempre que iniciar o sistema e logar com seu usuário você terá acesso aos seus arquivos compartlhados no Dropbox (desde, claro, que possua uma conexão com a internet).</p>
<p><em>Fonte: <a href="http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall">http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diovani.com/2010/12/18/usando-dropbox-no-linux/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Por que utilizar utf-8?</title>
		<link>http://blog.diovani.com/2010/12/14/por-que-utilizar-utf-8/</link>
		<comments>http://blog.diovani.com/2010/12/14/por-que-utilizar-utf-8/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 23:21:52 +0000</pubDate>
		<dc:creator>diovani</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>
		<category><![CDATA[base de dados]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[programação]]></category>

		<guid isPermaLink="false">http://blog.diovani.com/?p=409</guid>
		<description><![CDATA[Um problema comum que vejo se repetindo constantemente em listas de discussão é devido a codificação de caracteres em páginas web.
Geralmente os desenvolvedores, inexperientes, solicitam ajuda por terem problemas que fazer caracteres acentuados aparecerem corrompidos, como &#8220;Ã§Ã£&#8221; e acabam adotando soluções pouco robustas, como editar o httpd.conf (no caso de um servidor web Apache) ou [...]]]></description>
			<content:encoded><![CDATA[<p>Um problema comum que vejo se repetindo constantemente em listas de discussão é devido a codificação de caracteres em páginas web.</p>
<p>Geralmente os desenvolvedores, inexperientes, solicitam ajuda por terem problemas que fazer caracteres acentuados aparecerem corrompidos, como <em>&#8220;Ã§Ã£&#8221;</em> e acabam adotando soluções pouco robustas, como editar o <em>httpd.conf</em> (no caso de um servidor web Apache) ou usar funções <em>utf8_encode/utf8_decode</em> (no caso de programação <em>PHP</em>).</p>
<p>Acontece que tais problemas ocorrem por causa de divergências na codificação de caracteres e é mais comum em ambientes Windows, que utilizam a codificação defasada <em>ISO-8859-1</em> (ou <em>latin-1</em>, como também é chamada).</p>
<p>O modo de evitar este tipo de problema, é desenvolver toda a sua aplicação utilizando uma única codificação de caracteres, desde a base de dados até o <em>HTML</em> exibido para o usuário, e também em seu editor de texto ou <em>IDE</em>. Para garantir isto, por exemplo, em uma aplicação<em> web</em>, desenvolvida com <em>PHP</em> + <em>MySQL,</em> rodando em um servidor <em>Apache2</em> e utilizando <strong><em>utf-8</em></strong>, atente para os seguintes detalhes:</p>
<ol>
<li>No arquivo de configuração do <em><strong>Apache</strong></em> (geralmente <em>httpd.conf</em>, mas podendo variar de um sistema para outro, no <em>Debian GNU/Linux</em>, o padrão é <em>/etc/apache2/apache2.conf</em>) comente a linha com a diretiva ﻿﻿﻿﻿﻿﻿﻿<em><strong>AddDefaultCharset</strong><span style="font-style: normal;">. Como vamos definir a codificação a nível de aplicação, esta diretiva não irá interferir, mas mesmo assim o ideal é deixá-la comentada para evitar surpresas ao colocar a aplicação em produção.</span></em></li>
<li><em><span style="font-style: normal;">O </span><strong>PHP</strong></em> também tem uma diretiva para definir a codificação padrão, geralmente desabilitada por padrão, no arquivo <em>php.ini</em> (no <em>Debian</em>, em <em>/etc/php5/apache2/php.ini</em>) localize e comente a linha com a diretiva <strong><em>default_charset</em></strong>. Assim como no <em>Apache</em>, tal diretiva não deve interferir, mas ainda assim é ideal deixá-la comentada.</li>
<li>Garanta que seu template <strong><em>HTML</em><span style="font-weight: normal;"> contenha a codificação correta definida no cabeçalho, utilizando uma tag <em>meta </em>(<em><strong>&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=UTF-8&#8243; /&gt;<span style="font-style: normal;">).<span style="font-weight: normal;"> Para documentos </span><em>XHTML</em><span style="font-weight: normal;">, também é ideal adicionar a codificação no cabeçalho </span><em><span style="font-weight: normal;">XML</span></em><span style="font-weight: normal;"> (﻿﻿<strong><em>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243; ?&gt;</em></strong>), obviamente esta regra também se aplica para documentos <em><strong>XML</strong></em>.</span></span></strong></em></span></strong></li>
<li><strong><span style="font-weight: normal;"><em><strong><span style="font-style: normal;"><span style="font-weight: normal;">Seu script principal da aplicação, ou seja, aquele que recebe as requisições, geralmente </span><em> index.php</em><span style="font-weight: normal;">, deve enviar um cabeçalho <em>http</em> com a codificação para o navegador antes de qualquer conteúdo. <em>Ex: <strong>header(&#8220;Content-type: text/html; charset=UTF-8&#8243;);</strong><span style="font-style: normal;">.</span></em></span></span></strong></em></span></strong></li>
<li><strong><span style="font-weight: normal;"><em><strong><span style="font-style: normal;"><span style="font-weight: normal;"><em><span style="font-style: normal;">Suas tabelas do </span><strong>MySQL</strong><span style="font-style: normal;"> devem ser criadas com a codificação definida explicitamente. </span>Ex: <strong>CREATE TABLE foo (&#8230;) CHARACTER SET utf8</strong><span style="font-style: normal;">. No </span>MySQL</em> também é possível definir a codificação de caracteres a nível de coluna ou de base de dados, mas a primeira dificilmente será necessária, e eu acho mais usual definir a codificação a nível de tabelas.</span></span></strong></em></span></strong></li>
<li><strong><span style="font-weight: normal;"><em><strong><span style="font-style: normal;"><span style="font-weight: normal;">Seu editor de texto ou <em>IDE</em> deve estar configurado para salvar arquivos em </span><span style="font-weight: normal;"><em>utf-8</em><span style="font-weight: normal;">. No <em>Eclipse</em>, por exemplo, basta configurar sua <em>Workspace</em> (<em>Window -&gt; Preferences -&gt; General -&gt; Workspace</em>), ou seu projeto (Clique direito -&gt; <em>Properties -&gt; Resource</em>) para utilizar a codificação desejada.</span></span></span></strong></em></span></strong></li>
</ol>
<p>Para ser sincero, em geral apenas os ítens <strong>4</strong> e <strong>6</strong> são suficientes para garantir que sua aplicação exiba textos na codificação correta, mas ainda assim vale a pena configurar cada parte dela.</p>
<p>Alguns desenvolvedores <em>web</em> mais antigos, ou pouco experientes podem acabar sugerindo que se utilize <em>htmlentities</em> para caracteres acentuados, como <em>&#8220;&amp;acute&#8221;</em> para escrever um <em>&#8220;á&#8221;</em>. Contudo esta prática é pouco viável para páginas dinâmicas, devido ao tamanho das strings. Por exemplo, nosso simples <em>&#8220;á&#8221;</em>, utilizando <em>htmlentities</em>, não poderia ocupar um campo <em>char(1)</em>, em sua base de dados, precisando de um <em>char(6)</em>, além de ser bem mais conteúdo para o navegador carregar ao visitar a página.</p>
<p>Agora a pergunta: <em>Por que utilizar utf-8</em> ao invés de <em>iso-8859-1</em>?</p>
<p>Bem, existem alguns bons motivos técnicos&#8230; Para começar, <em>utf-8</em> é compatível com caracteres <em>ASCII</em>, então para este não é necessária nenhuma conversão. Também, os caracteres unicode (<em>utf8</em>, <em>utf16</em> e <em>utf32</em>) foram desenvolvidos inicialmente para substituir <em>ASCII</em> e <em>ISO</em>, então é natural que sejam utilizados no lugar destes. Para finalizar, algumas bibliotecas do <em>PHP</em>, e também de outras linguagens, só funcionam com codificação <em>utf-8</em>, tais como <em>json</em>, <em>simpleXML</em> e <em>Soap</em>, assim, utilizando a aplicação toda em <em>utf-8</em> você evita converter constantemente caracteres de/para a codificação desejada.</p>
<p><em>Fontes: <a href="http://www.cl.cam.ac.uk/~mgk25/unicode.html">http://www.cl.cam.ac.uk/~mgk25/unicode.html</a>, <a href="http://wilker-dev.com/porque-usar-utf-8-codificandodecodificando">http://wilker-dev.com/porque-usar-utf-8-codificandodecodificando</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diovani.com/2010/12/14/por-que-utilizar-utf-8/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Zen-Coding &#8211; Um novo jeito de escrever HTML</title>
		<link>http://blog.diovani.com/2010/05/27/zen-coding-um-novo-jeito-de-escrever-html/</link>
		<comments>http://blog.diovani.com/2010/05/27/zen-coding-um-novo-jeito-de-escrever-html/#comments</comments>
		<pubDate>Fri, 28 May 2010 00:11:07 +0000</pubDate>
		<dc:creator>diovani</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://blog.diovani.com/?p=391</guid>
		<description><![CDATA[Uma coisa que desenvolvedores web sabem, é que não há nada mais demorado e cansativo do que escrever HTML. Diferente de linguagens de programação, um código HTML (e também XML e seus derivados) é pouco intuitivo e muito repetitivo, e mesmo as melhores IDEs do mercado não ajudam muito.
Já que nenhum desenvolvedor web que se [...]]]></description>
			<content:encoded><![CDATA[<p>Uma coisa que desenvolvedores web sabem, é que não há nada mais demorado e cansativo do que escrever HTML. Diferente de linguagens de programação, um código HTML (e também XML e seus derivados) é pouco intuitivo e muito repetitivo, e mesmo as melhores IDEs do mercado não ajudam muito.</p>
<p>Já que nenhum desenvolvedor web que se preze utiliza Dreamweaver ou outros editores <a href="http://en.wikipedia.org/wiki/WYSIWYG">WYSIWYG</a>, devido aos códigos sujos e de difícil manutenção gerados, uma ótima solução é utilizar o <a href="http://code.google.com/p/zen-coding/">Zen-Coding</a>.</p>
<p style="text-align: center;"><img src="http://blog.diovani.com/wp-content/uploads/2010/05/zen-coding-logo.png" alt="" title="zen-coding-logo" width="48" height="48" class="aligncenter size-full wp-image-404" /></p>
<p>O Zen-Coding não se trata de uma nova IDE, mas sim de um plugin, ou melhor, uma coleção de scripts, disponível para uma grande quantidade de IDEs, incluindo Eclipse e NetBeans, que permite a digitação rápida de HTML, XML e XSL, por meio de abreviações, muito semelhantes a seletores CSS, o que torna a curva de aprendizagem realmente pequena.</p>
<p>Com o Zen-Coding você digita algo como:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">div<span style="color: #cc00cc;">#page</span><span style="color: #00AA00;">&gt;</span>div.logo<span style="color: #00AA00;">+</span>ul<span style="color: #cc00cc;">#navigation</span><span style="color: #00AA00;">&gt;</span>li<span style="color: #00AA00;">*</span><span style="color: #cc66cc;">5</span><span style="color: #00AA00;">&gt;</span>a</pre></div></div>

<p>E obtém:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;page&quot;</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;navigation&quot;</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></div></div>

<p>Para conhecer a sua sintaxe, visite a <a href="http://code.google.com/p/zen-coding/wiki/ZenHTMLSelectorsEn">lista de seletores HTML do Zen-Coding</a>.</p>
<p>Agora vamos a um breve tutorial para instalar e utilizar o Zen-Coding no <a href="http://eclipse.org">Eclipse</a> (o que inclui <a href="http://www.zend.com/products/studio/">ZendStudio for Eclipse</a> e <a href="http://www.aptana.org/">Aptana Studio</a>).</p>
<ol>
<li>Primeiramente, será necessário instalar o plugin <a href="http://wiki.eclipse.org/Eclipse_Monkey_Overview">Eclipse Monkey</a>, que pode ser instalado pelo <em>Update Manager</em>, a partir do <em>update site</em> <a href="http://download.eclipse.org/technology/dash/update">http://download.eclipse.org/technology/dash/update</a>.</li>
<li>Crie um projeto em sua <em>worspace</em> com o nome <strong>zencoding</strong>.</li>
<li>Crie um diretório <strong><em>scripts</em></strong> em seu projeto recém criado.</li>
<li>Baixe o pacote <strong>Zen Coding for Aptana</strong> da <a href="http://code.google.com/p/zen-coding/downloads/list">página de downloads do projeto</a> e descompacte seu conteúdo no diretório <strong><em>scrips</em></strong>.
<p style="text-align: center;"><a href="http://blog.diovani.com/wp-content/uploads/2010/05/aptana-proj-structure.png"><img src="http://blog.diovani.com/wp-content/uploads/2010/05/aptana-proj-structure-150x108.png" alt="" title="aptana-proj-structure" width="150" height="108" class="aligncenter size-thumbnail wp-image-401" /></a></p>
</li>
<li>Reinicie o Eclipse.</li>
</ol>
<p>Agora você deve ter um menu <strong>scripts</strong>, com o sub-menu <strong>zencoding</strong> nele. Para transformar as abreviações em códigos HTML, basta utilizar a opção <strong>Expand Abbreviation</strong> após digitá-las.</p>
<p>Para cada opção no menu <strong>zencoding</strong> será exibido o respectivo atalho ao lado desta. Caso algum dos atalhos não esteja visível, provavelmente é porque o Eclipse já tem aquele atalho definido para outro comando. Para resolver isso há duas opções: Alterar o atalho do Eclipse (Window -&gt; Preferences -&gt; General -&gt; Keys) ou alterar o atalho do Zen-Coding.</p>
<p>Para a segunda opção, localize o <em>script</em> da função que deseja alterar o atalho na pasta <strong>scripts</strong> que você criou e edite o atalho no comentário do script, na linha escrito <strong>* Key:</strong>.</p>
<p>Ex:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">/*
 * Menu: Zen Coding &amp;gt; Expand Abbreviation
 * Kudos: Sergey Chikuyonok (http://chikuyonok.ru)
 * License: EPL 1.0
 * Key: M3+E
 * DOM: http://download.eclipse.org/technology/dash/update/org.eclipse.eclipsemonkey.lang.javascript
 *
 * @include &quot;/EclipseMonkey/scripts/monkey-doc.js&quot;
 * @include &quot;lib/core.js&quot;
 * @include &quot;settings.js&quot;
 */</span></pre></div></div>

<p>Após salvar, o novo atalho já estará disponível.</p>
<p><em>Fonte: <a href="http://code.google.com/p/zen-coding/wiki/AptanaHowToEn">http://code.google.com/p/zen-coding/wiki/AptanaHowToEn</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diovani.com/2010/05/27/zen-coding-um-novo-jeito-de-escrever-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Youtube sem Flash</title>
		<link>http://blog.diovani.com/2010/05/17/youtube-sem-flash/</link>
		<comments>http://blog.diovani.com/2010/05/17/youtube-sem-flash/#comments</comments>
		<pubDate>Mon, 17 May 2010 16:35:01 +0000</pubDate>
		<dc:creator>diovani</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[vídeo]]></category>

		<guid isPermaLink="false">http://blog.diovani.com/?p=373</guid>
		<description><![CDATA[Já pensou em poder assistir aos vídeos do Youtube sem precisar instalar um Flash Player? Pois é, até pouco tempo atrás isto era impossível, mas graças a tag HTML5 &#60;video&#62;, agora já podemos assistir a vídeos no Youtube sem Flash.
Como o HTML5 ainda é um Draft, e o uso da tag &#60;video&#62; ainda não é [...]]]></description>
			<content:encoded><![CDATA[<p>Já pensou em poder assistir aos vídeos do <a href="http://youtube.com">Youtube</a> sem precisar instalar um <a href="http://www.adobe.com/go/EN_US-H-GET-FLASH">Flash Player</a>? Pois é, até pouco tempo atrás isto era impossível, mas graças a tag <a href="http://www.w3.org/TR/html5/video.html#video">HTML5 &lt;video&gt;</a>, agora já podemos assistir a vídeos no Youtube sem Flash.</p>
<p>Como o HTML5 ainda é um <em>Draft</em>, e o uso da tag &lt;video&gt; ainda não é tão comum, a opção de assistir a vídeos sem Flash ainda está em fase beta, precisa ser habilitada, e por enquanto só funciona nos navegadores <a href="http://www.apple.com/safari/download/">Apple Safari</a> e <a href="http://www.google.com/chrome">Google Chrome</a>.</p>
<p>Para habilitá-la, basta acessar <a href="http://youtube.com/html5">http://youtube.com/html5</a> e clicar no link &#8220;<strong>Entrar no HTML Beta</strong>&#8221; abaixo da página.</p>
<p style="text-align: center;"><a href="http://blog.diovani.com/wp-content/uploads/2010/05/20100514234350569803480.jpg"><img class="size-thumbnail wp-image-381  aligncenter" title="20100514234350569803480" src="http://blog.diovani.com/wp-content/uploads/2010/05/20100514234350569803480-150x80.jpg" alt="" width="150" height="80" /></a></p>
<p>Após habilitar o modo HTML5 Beta, os vídeos visualizados passam a utilizar a tag &lt;video&gt; do navegador para serem exibidos, como na imagem abaixo:</p>
<p style="text-align: center;"><a href="http://blog.diovani.com/wp-content/uploads/2010/05/20100514235129687189200.jpg"><img class="size-thumbnail wp-image-382  aligncenter" title="20100514235129687189200" src="http://blog.diovani.com/wp-content/uploads/2010/05/20100514235129687189200-150x115.jpg" alt="" width="150" height="115" /></a></p>
<p style="text-align: left;">É possível notarmos pequenas diferenças na interface, como a inscrição html5 durante o <em>loading</em>, e alguns controles diferenciados. Estas diferenças devem variar dependo do navegador utilizado.</p>
<p style="text-align: left;">Como ainda é Beta, o modo tem algumas restrições. Não é possível assistir vídeos em tela inteira, e aqueles que contém anúncios ainda são exibidos no Flash Player. Além disso, como comentei anteriormente, apenas o Safari e Chrome podem visualizar os vídeos sem Flash.</p>
<p style="text-align: left;">Esta limitação de compatibilidade deve-se ao fato do uso da tag &lt;video&gt; não definir o codec que deve ser utilizado, o que deve ficar a cargo dos navegadores. Enquanto o Firefox e Opera suporte o formato <a href="http://www.theora.org/">Ogg Theora</a>, o Safari e Google Chrome (ambos com a engine <a href="http://webkit.org/">webkit</a>) suportam <a href="http://pt.wikipedia.org/wiki/H.264">H264</a>, e como o youtube já disponibiliza seus vídeos também em h264 (principalmente para visualização em smartphones), estes últimos são, atualmente, os únicos navegadores suportados.</p>
<p style="text-align: left;">Embora a opção de assistir vídeos no youtube com a tag &lt;video&gt; ainda seja prematura, não deixa de ser uma boa opção para conhecer o poder do HTML5, e até mesmo pode servir como alternativa para quando instalar um Flash Player não é possível. Em último caso, vale testar pela curiosidade.</p>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://blog.diovani.com/2010/05/17/youtube-sem-flash/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Novo arquivo de Snapshots do Debian</title>
		<link>http://blog.diovani.com/2010/04/14/novo-arquivo-de-snapshots-do-debian/</link>
		<comments>http://blog.diovani.com/2010/04/14/novo-arquivo-de-snapshots-do-debian/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 01:22:41 +0000</pubDate>
		<dc:creator>diovani</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.diovani.com/?p=363</guid>
		<description><![CDATA[Novidade para usuários do Debian GNU/Linux e administradores de servidores. Agora é possível instalar facilmente pacotes de versões antigas do Debian GNU/Linux com uso do apt-get pelo arquivo de snapshots do Debian.
http://snapshot.debian.org/
Lançado na última Segunda-feira, dia 12, o serviço é uma &#8220;máquina do tempo&#8221; que permite o acesso a pacotes e códigos fonte por versões [...]]]></description>
			<content:encoded><![CDATA[<p>Novidade para usuários do <a href="http://www.debian.org/">Debian GNU/Linux</a> e administradores de servidores. Agora é possível instalar facilmente pacotes de versões antigas do Debian GNU/Linux com uso do <em>apt-get</em> pelo arquivo de <em>snapshots</em> do Debian.</p>
<p style="text-align: center;"><a href="http://snapshot.debian.org/">http://snapshot.debian.org/</a></p>
<p>Lançado na última Segunda-feira, dia 12, o serviço é uma &#8220;máquina do tempo&#8221; que permite o acesso a pacotes e códigos fonte por versões ou datas, e é composto por pacotes antigos e atuais do Debian.</p>
<p>Praticamente todos (alguns pacotes foram removidos devido a licenças de software) os pacotes, desde Março de 2005, estão disponíveis, incluindo alguns repositórios adicionais como debian-volatile, debian-ports e backports.org, contanto com cerca de 6,5 terabytes, que devem aumentar constantemente.</p>
<p>O serviço é uma ótima ferramenta, especialmente para desenvolvedores resolver problemas de regressão de pacotes. Mas também para usuários que necessitem de pacotes em alguma versão anterior para que certa aplicação funcione.</p>
<p>A grande facilidade do arquivo é que qualquer pacote pode ser instalado com o <em>apt-get</em> ou <em>aptitude</em> normalmente, bastando adicionar a respectiva linha em <em>/etc/apt/sources.list</em>.</p>
<p>Para saber que linha adicionar, primeiramente navegue até umas das seguintes categorias:</p>
<ul>
<li><a href="http://snapshot.debian.org/archive/backports.org/">backports.org</a></li>
<li><a href="http://snapshot.debian.org/archive/debian/">debian</a></li>
<li><a href="http://snapshot.debian.org/archive/debian-archive/">debian-archive</a></li>
<li><a href="http://snapshot.debian.org/archive/debian-ports/">debian-ports</a></li>
<li><a href="http://snapshot.debian.org/archive/debian-security/">debian-security</a></li>
<li><a href="http://snapshot.debian.org/archive/debian-volatile/">debian-volatile</a></li>
</ul>
<p>Após acessar uma das categorias, selecione o <strong>ano</strong>, <strong>mês</strong> e finalmente, <strong>dia</strong> e <strong>hora</strong> do <em>snapshot</em>. Esta <em>url</em> completa é a <em>url</em> a ser adicionada em <em>/etc/apt/sources.list</em>, logo após a palavra-chave <em>deb</em> e seguida da versão e sessão desejadas. Ou seja, cada uma destas <em>url</em>s corresponde a uma cópia completa de um repositório do Debian no devido momento, e pode ser usada como tal.</p>
<p>Segue um exemplo&#8230;</p>
<p>caminho seguido: <strong>debian -&gt; 2007: 06 -&gt; 2007-06-21 00:00:00</strong><br />
url resultante:  <strong>http://snapshot.debian.org/archive/debian/20070621T000000Z/</strong></p>
<p>linha do <em>sources.list</em>:<br />
<strong>deb http://snapshot.debian.org/archive/debian/20070621T000000Z/ stable/ main</strong></p>
<p>Deste modo, fica extremamente fácil instalar pacotes de qualquer versão do Debian.</p>
<p><em>Fonte: <a href="http://www.debian.org/News/2010/20100412.en.html">http://www.debian.org/News/2010/20100412.en.html</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diovani.com/2010/04/14/novo-arquivo-de-snapshots-do-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flattr &#8211; um novo jeito de pagar por conteúdo online</title>
		<link>http://blog.diovani.com/2010/03/15/flattr-um-novo-jeito-de-pagar-por-conteudo-online/</link>
		<comments>http://blog.diovani.com/2010/03/15/flattr-um-novo-jeito-de-pagar-por-conteudo-online/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 16:52:58 +0000</pubDate>
		<dc:creator>diovani</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[micropayment]]></category>

		<guid isPermaLink="false">http://blog.diovani.com/?p=345</guid>
		<description><![CDATA[Já pensou como seria poder recompensar os criadores de sites, mídia ou softwares, dos quais você usufrui diariamente, com apenas um clique? Criado pelo co-fundador do piratebay, Peter Sunde, o Flattr é tanto um sistema de micro-pagamentos como uma rede social, que propõe uma maneira fácil e eficiente para isto.

Usuários da internet, como um todo, [...]]]></description>
			<content:encoded><![CDATA[<p>Já pensou como seria poder recompensar os criadores de sites, mídia ou softwares, dos quais você usufrui diariamente, com apenas um clique? Criado pelo co-fundador do piratebay, <a href="http://en.wikipedia.org/wiki/Peter_Sunde">Peter Sunde</a>, o <a href="http://flattr.com">Flattr</a> é tanto um sistema de micro-pagamentos como uma rede social, que propõe uma maneira fácil e eficiente para isto.</p>
<p style="text-align: center;"><a href="http://flattr.com/"><img class="aligncenter size-full wp-image-358" style="border: 0pt none;" title="flattr-logo-beta" src="http://blog.diovani.com/wp-content/uploads/2010/03/flattr-logo-beta.png" alt="flattr-logo-beta" width="218" height="43" /></a></p>
<p>Usuários da internet, como um todo, podem ser divididos em duas categorias distintas: um é o usuário que usufrui diariamente de serviços, mídia digital e aplicativos distribuidos gratuitamente pela internet e o outro é aquele que cria e publica estes serviços, mídia e aplicativos.</p>
<p>Segundo Sunde, o problema está quando o primeiro usuário deseja, de algum modo, recompensar o segundo. Hoje, não existe uma maneira eficaz de garantir que os esforços de quem publica algo, sejam convertidos em dinheiro a partir daqueles que usufruem deste trabalho. Uma opção seriam os métodos tradicionais de doações (transferências online, PayPal, PagSeguro&#8230;), estes, contudo, são pouco práticos ou flexíveis.</p>
<p>O Flattr propõe resolver este problema de uma maneira simples e transparente.</p>
<p>Os interessados, devem pagar, mensalmente, uma quantia fixa, que será distribuída posteriormente. A partir daí, seu funcionamento se assemelha muito ao <a href="http://digg.com">Digg</a>, ou <a href="http://tweetmeme.com">Tweetmeme</a>. Os criadores de conteúdo incluem um botão do Flattr em seu website, e quando um usuário clica neste botão, uma parte de sua quantia é destinada ao dono daquele site.</p>
<p>As partes são divididas igualmente para cada criador que o usuário decide recompensar. Ou seja, se o usuário clicou em 10 ícones do Flattr em um mês, um décimo de sua quantia mensal é destinada a estes criadores. Assim, o usuário terá certeza de que seu investimento será distribuído para aqueles que ele deseja.</p>
<p>Como o projeto ainda está em fase beta, estão sendo distribuídos alguns convites para usuários dispostos a testar o sistema. Quem tiver interesse, basta cadastrar seu e-mail no website <a href="http://Flattr.com">Flattr.com</a>, o qual inclui um vídeo explicativo do mecanismo do sistema.</p>
<p>A pouco tempo o <a href="http://flattr.com/blog/2010/03/first-money-calculation-today/">Flattr fez seu primeiro cálculo dos pagamentos</a>. Detalhes podem ser vistos no <a href="http://flattr.com/blog/">blog</a> do projeto (em inglês).</p>
<p>[updated] novo logo.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diovani.com/2010/03/15/flattr-um-novo-jeito-de-pagar-por-conteudo-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter e botões para Digg e Tweetmeme</title>
		<link>http://blog.diovani.com/2010/02/24/twitter-e-botoes-para-digg-e-tweetmeme/</link>
		<comments>http://blog.diovani.com/2010/02/24/twitter-e-botoes-para-digg-e-tweetmeme/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 04:20:22 +0000</pubDate>
		<dc:creator>diovani</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[digg]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.diovani.com/?p=339</guid>
		<description><![CDATA[Já faz algum tempo que eu queria colocar botões para incentivar os visitantes a divulgar meus posts no Digg e Delicious e Tweetmeme, mas nunca sobrava tempo para pesquisar plugins ou scripts para tal. Então resolvi fazer umas horinhas extras em casa hoje isso.
O resultado pode ser visto no painel lateral do blog, no Widget [...]]]></description>
			<content:encoded><![CDATA[<p>Já faz algum tempo que eu queria colocar botões para incentivar os visitantes a divulgar meus posts no <a href="http://digg.com">Digg</a> e <span style="text-decoration: line-through;"><a href="http://del.icio.us">Delicious</a></span> e <a href="http://tweetmeme.com/">Tweetmeme</a>, mas nunca sobrava tempo para pesquisar plugins ou scripts para tal. Então resolvi fazer umas horinhas extras em casa hoje isso.</p>
<p>O resultado pode ser visto no painel lateral do blog, no Widget <strong>Share</strong>, onde coloquei botões para compartilhar no Digg, Tweememe e ainda um botão de Follow para o novíssimo <a href="http://twitter.com/SamuraiDio">Twitter do blog</a>. <span style="text-decoration: line-through;">Ainda falta o botão para o Delicious, mas este fica para mais tarde.</span></p>
<p>Para quem quiser fazer o mesmo, basta adicionar fragmentos HTML e JavaScript no seu tema do WP, ou dentro de um Text Widget, seguindo os tutoriais a seguir. O máximo que precisa ser configurado é o nome de usuário do twitter.</p>
<p>Botão Digg: <a href="http://about.digg.com/button">http://about.digg.com/button</a><br />
Botão Retweet: <a href="http://help.tweetmeme.com/2009/04/06/tweetmeme-button/">http://help.tweetmeme.com/2009/04/06/tweetmeme-button/</a><br />
Botão Follow: <a href="http://help.tweetmeme.com/2010/02/23/follow-button/">http://help.tweetmeme.com/2010/02/23/follow-button/</a></p>
<p>Como comentei acima, criei também um twitter para o blog, <a href="http://twitter.com/SamuraiDio">@SamuraiDio</a>, e adicionei o plugin <a href="http://wordpress.org/extend/plugins/wp-to-twitter/">WP to Twitter</a>. Agora cada novo post vai também aparecer no twitter, facilitando para quem quiser &#8220;seguir&#8221; o blog mas não costuma usar feeds.</p>
<p>[updated]</p>
<p>Por motivos de performance (criados com JavaScript os botões demoram alguns segundos a mais para serem exibidos) procurei por uma solução em PHP, e encontrei combinando os plugins <a href="http://wordpress.org/extend/plugins/digg-digg/">Digg Digg</a> e <a href="http://wordpress.org/extend/plugins/php-code-widget/">PHP Code Widget</a>.</p>
<p>O primeiro é um plugin que adiciona botões para diversos serviços de compartilhamento, e o segundo é um Widget identico ao Text Widget do WP, mas que aceita também códigos PHP.</p>
<p>Para adicionar os botões no Widget, e não nos posts, eu desabilitei as exibições padrão do Digg Digg, e criei um PHP Code Widget com o seguinte código fonte:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&lt;center&gt;&lt;div id=&quot;dd_before&quot; style=&quot;height:80px; width:190px;&quot;&gt;&lt;ul&gt;
&lt;li class=&quot;li_horizontal&quot;&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> digg_digg_generate<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Normal'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;/li&gt;
&lt;li class=&quot;li_horizontal&quot;&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> digg_digg_reddit_generate<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Normal'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;/li&gt;
&lt;li class=&quot;li_horizontal&quot;&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> digg_digg_twitter_generate<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Normal'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'SamuraiDio'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/center&gt;</pre></div></div>

<p>Os métodos <em>digg_digg_*_generate()</em> são fornecidos pelo plugin Digg Digg, e podem ser usados também em qualquer lugar do template.</p>
<p>Também desisti de usar o botão para o Delicious, e adicionei um para o <a href="http://reddit.com">Reddit</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diovani.com/2010/02/24/twitter-e-botoes-para-digg-e-tweetmeme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery.canvasmetter plugin</title>
		<link>http://blog.diovani.com/2010/01/24/jquery-canvasmetter-plugin/</link>
		<comments>http://blog.diovani.com/2010/01/24/jquery-canvasmetter-plugin/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 15:22:25 +0000</pubDate>
		<dc:creator>diovani</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://blog.diovani.com/?p=324</guid>
		<description><![CDATA[Há alguns dias criei um plugin para jQuery, para desenhar medidores no estilo barômetros ou marcadores de velocidade, utilizando o elemento &#60;canvas&#62;.

Como um plugin requer uma atenção especial e atualizações periódicas, dediquei para ele uma página deste blog. E também o wave jQuery.canvasmetter, para o pessoal poder participar. Mais informações podem ser encontrados nestes.
Links:
página jQuery.canvasmetter
página [...]]]></description>
			<content:encoded><![CDATA[<p>Há alguns dias criei um plugin para jQuery, para desenhar medidores no estilo barômetros ou marcadores de velocidade, utilizando o elemento &lt;canvas&gt;.</p>
<p><a href="http://blog.diovani.com/wp-content/uploads/2010/01/CanvasMetter_1263859483929.png"><img class="alignnone size-thumbnail wp-image-302" title="screenshot" src="http://blog.diovani.com/wp-content/uploads/2010/01/CanvasMetter_1263859483929-150x150.png" alt="screenshot" width="150" height="150" /></a></p>
<p>Como um plugin requer uma atenção especial e atualizações periódicas, dediquei para ele uma <a href="http://blog.diovani.com/jquery-canvasmetter/">página deste blog</a>. E também o <a href="https://wave.google.com/wave/#restored:wave:googlewave.com!w%252BPOJ7yqi9A">wave jQuery.canvasmetter</a>, para o pessoal poder participar. Mais informações podem ser encontrados nestes.</p>
<p><em>Links:<a href="http://blog.diovani.com/jquery-canvasmetter/"><br />
página jQuery.canvasmetter</a><br />
<a href="http://blog.diovani.com/jquery-canvasmetter/download/">página de download do plugin jQuery.canvasmetter</a><br />
<a href="https://wave.google.com/wave/#restored:wave:googlewave.com!w%252BPOJ7yqi9A">wave jQuery.canvasmetter</a></em></p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">página jQuery.canvasmette</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.diovani.com/2010/01/24/jquery-canvasmetter-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery 1.4 lançado</title>
		<link>http://blog.diovani.com/2010/01/17/jquery-1-4-lancado/</link>
		<comments>http://blog.diovani.com/2010/01/17/jquery-1-4-lancado/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 22:30:00 +0000</pubDate>
		<dc:creator>diovani</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[notícias]]></category>

		<guid isPermaLink="false">http://blog.diovani.com/?p=294</guid>
		<description><![CDATA[Nesta última quinta-feira, dia 14, foi lançada a nova versão do jQuery, a biblioteca Javascript que promete (e cumpre) simplificar o desenvolvimento de scripts escrevendo-se muito menos linhas de código. A versão 1.4, foi lançada, intencionalmente, no dia 14 de Janeiro, por ser este o dia do aniversário da biblioteca.
Como comemoração pelo dia de lançamento, [...]]]></description>
			<content:encoded><![CDATA[<p>Nesta última quinta-feira, dia 14, foi lançada a nova versão do <a href="http://jquery.com/">jQuery</a>, a biblioteca Javascript que promete (e cumpre) simplificar o desenvolvimento de scripts escrevendo-se muito menos linhas de código. A versão 1.4, foi lançada, intencionalmente, no dia 14 de Janeiro, por ser este o dia do aniversário da biblioteca.</p>
<p>Como comemoração pelo dia de lançamento, o time do jQuery colocou no ar um <em>hot-site</em>, <a href="http://jquery14.com/">14 dias de jQuery</a>, que divulgará a cada dia, uma das novas melhorias da versão 1.4, e ainda terá promoções para os desenvolvedores que usam e apoiam a biblioteca. Visite o site <a href="http://jquery14.com/">http://jquery14.com/</a> para maiores informações. O download da nova versão pode ser feito no site oficial: <a href="http://jquery.com">http://jquery.com</a>.</p>
<p>Não vou me estender muito neste post, visto que estou alguns dias atrasado, e outros blogueiros já o fizeram. Então vou apenas adicionar alguns links blogs de alguns amigos que falaram sobre o lançamento. Não deixem de ler os posts, e baixarem a nova versão.</p>
<p>Links:<a href="http://ruancarlos.com.br/Blog/jquery-1-4-e-lancado/"></p>
<p>http://ruancarlos.com.br/Blog/jquery-1-4-e-lancado/</a></p>
<p><a href="http://net.tutsplus.com/tutorials/javascript-ajax/jquery-1-4-released-the-15-new-features-you-must-know/">http://net.tutsplus.com/tutorials/javascript-ajax/jquery-1-4-released-the-15-new-features-you-must-know/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diovani.com/2010/01/17/jquery-1-4-lancado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Contadores e auto-numeração em CSS2</title>
		<link>http://blog.diovani.com/2009/12/07/contadores-e-auto-numeracao-em-css2/</link>
		<comments>http://blog.diovani.com/2009/12/07/contadores-e-auto-numeracao-em-css2/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 21:58:18 +0000</pubDate>
		<dc:creator>diovani</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://blog.diovani.com/?p=284</guid>
		<description><![CDATA[Estive pesquisando hoje algumas técnicas novas de CSS, e me deparei com um recurso muito interessante, que nunca utilizei, e nunca reparei que fosse usado em lugar algum antes. Trata-se da possibilidade de utilizar CSS para adicionar contadores e auto-numeração para qualquer elemento HTML.
Qualquer designer CSS que se preze conhece a propriedades de numeração das [...]]]></description>
			<content:encoded><![CDATA[<p>Estive pesquisando hoje algumas técnicas novas de CSS, e me deparei com um recurso muito interessante, que nunca utilizei, e nunca reparei que fosse usado em lugar algum antes. Trata-se da possibilidade de utilizar CSS para adicionar contadores e auto-numeração para qualquer elemento HTML.</p>
<p>Qualquer designer CSS que se preze conhece a propriedades de numeração das listas (tags <em>&lt;li&gt;</em>), poucos mas sabem que os mesmos tipos de numerações podem ser adicionadas a qualquer conjunto de elementos, inclusive adicionando estilos personalizados aos contadores.</p>
<p>Veja o exemplo a seguir:</p>
<p style="text-align: center;"><img class="size-full wp-image-286 aligncenter" title="Elementos DIV numerados com CSS" src="http://blog.diovani.com/wp-content/uploads/2009/12/counters-01.png" alt="counter-1" width="77" height="69" /></p>
<p>A lista acima, foi criada utilizando apenas elementos div, e os seguintes estilos:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">div<span style="color: #6666ff;">.list</span> <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">counter-reset</span><span style="color: #00AA00;">:</span> my-list<span style="color: #00AA00;">;</span>     <span style="color: #808080; font-style: italic;">/* inicializa o contador */</span>
<span style="color: #00AA00;">&#125;</span>
div<span style="color: #6666ff;">.list</span> div <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">counter-increment</span><span style="color: #00AA00;">:</span> my-list<span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* incrementa */</span>
<span style="color: #00AA00;">&#125;</span>
div<span style="color: #6666ff;">.list</span> div<span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> counter<span style="color: #00AA00;">&#40;</span>my-list<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;. &quot;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* imprime */</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>A propriedade <strong>counter-reset</strong> inicializa a contagem com o identificador <em>my-list</em> a cada vez que um elemento &lt;div&gt; com a classe <em>list</em> é exibido. Já a propriedade <strong>counter-increment</strong>, incrementa este contador a cada elemento &lt;div&gt; &#8220;filho&#8221; do primeiro.</p>
<p>A partir daí, podemos utilizar os <em>pseudo-elements</em> <strong>:before</strong>, ou <strong>:after</strong>, para adicionar o valor do contador na propriedade <strong>content</strong>, utilizando a função <strong>counter().</strong> A propriedade <strong>content</strong>, pode também receber qualquer string adicional, permitindo o uso de separadores diversos do contador para o conteúdo do elemento.</p>
<p>O fragmento HTML utilizado no exemplo acima está a seguir:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;list&quot;</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>foo bar<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>foo bar<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>foo bar<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></div></div>

<p>As propriedades <strong>counter-reset</strong> e <strong>counter-increment</strong> aceitam também um segundo valor, numérico, usado, respectivamente, para definir o início da contagem (padrão 0) e o valor de incremento (padrão 1).</p>
<p>Veja o mesmo exemplo, iniciando o contador com -4, com incremento de 2:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">div<span style="color: #6666ff;">.list</span> <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">counter-reset</span><span style="color: #00AA00;">:</span> my-list -<span style="color: #cc66cc;">4</span><span style="color: #00AA00;">;</span>  <span style="color: #808080; font-style: italic;">/* inicializa o contador */</span>
<span style="color: #00AA00;">&#125;</span>
div<span style="color: #6666ff;">.list</span> div <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">counter-increment</span><span style="color: #00AA00;">:</span> my-list <span style="color: #cc66cc;">2</span><span style="color: #00AA00;">;</span>   <span style="color: #808080; font-style: italic;">/* incrementa */</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p style="text-align: center;"><img class="size-full wp-image-288 aligncenter" title="Contador com início e incremento alterados" src="http://blog.diovani.com/wp-content/uploads/2009/12/counters-02.png" alt="Contador com início e incremento alterados" width="78" height="105" /></p>
<p>A função <strong>counter()</strong> também aceita um segundo parâmetro, definindo o tipo de contador utilizado. Todos os tipos usados na propriedade <strong>list-style-type</strong> dos elementos &lt;ul&gt;, &lt;ol&gt; e &lt;li&gt; são suportados.</p>
<p>Para finalizar, vamos alterar os estilos e separadores dos nossos contadores, utilizando também um tipo diferente:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">div<span style="color: #6666ff;">.list</span> div<span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;[&quot;</span> counter<span style="color: #00AA00;">&#40;</span>my-list<span style="color: #00AA00;">,</span> <span style="color: #993333;">lower-alpha</span><span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;]&quot;</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">monospace</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">red</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>&#8230;e o resultado:</p>
<p style="text-align: center;"><img class="size-full wp-image-289 aligncenter" title="Contadores estilizados" src="http://blog.diovani.com/wp-content/uploads/2009/12/counters-03.png" alt="Contadores estilizados" width="94" height="101" /></p>
<p>Embora eu tenha utilizados elementos &lt;div&gt; nos meus exemplos, contadores podem ser adicionados a qualquer lista de elementos, incluindo as linhas ou colunas de uma tabela, por exemplo.</p>
<p>Todas as propriedades acima fazem parte das recomendações da W3C para CSS nível 2, que podem ser encontradas em <a href="http://www.w3.org/TR/CSS2/generate.html" target="_self">http://www.w3.org/TR/CSS2/generate.html</a>, e são suportadas pelos navegadores Firefox 3.0, MSIE 8, Google Chrome 2.0, Safari 3.0 e Opera 9.0, ou superiores.</p>
<p><em>Fonte: <a href="http://www.w3.org/TR/CSS2/generate.html" target="_self">http://www.w3.org/TR/CSS2/generate.html</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diovani.com/2009/12/07/contadores-e-auto-numeracao-em-css2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

