<?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>idealMind &#187; geral</title>
	<atom:link href="http://blog.idealmind.com.br/topicos/geral/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.idealmind.com.br</link>
	<description>Soluções que facilitam a sua vida</description>
	<lastBuildDate>Mon, 26 Dec 2011 00:11:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Como ler um arquivo CSV ou TXT usando Python</title>
		<link>http://blog.idealmind.com.br/geral/como-ler-um-arquivo-csv-ou-txt-usando-python/</link>
		<comments>http://blog.idealmind.com.br/geral/como-ler-um-arquivo-csv-ou-txt-usando-python/#comments</comments>
		<pubDate>Mon, 26 Dec 2011 00:11:31 +0000</pubDate>
		<dc:creator>Wellington Ribeiro</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[abrir csv em python]]></category>
		<category><![CDATA[expressão regular em python]]></category>
		<category><![CDATA[ler csv em python]]></category>
		<category><![CDATA[ler txt em python]]></category>
		<category><![CDATA[manipulação de arquivs em python]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.idealmind.com.br/?p=438</guid>
		<description><![CDATA[Como ler arquivos txt e cvs em python, fazer substituições usando expressões regulares e salvar uma cópia. Manipulação de arquivos em Python.]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p>Continuando o artigo anterior, onde eu tive a necessidade de ler 3 arquivos em formatos de textos mas com padrões diferentes, em que precisei padronizá-los para cadastrar num banco de dados MySQL, vou mostrar como fiz para ler os arquivos CSV e TXT, e depois salvar em arquivos temporários (para manter os originais).</p>
<pre class="brush: plain; title: ; notranslate">

import csv
import re
import os

nome = raw_input(&quot;Nome do arquivo: &quot;) # deve ser digitado o caminho do arquivo também

ifile  = open(nome, &quot;r&quot;) # arquivo de leitura, original

ofile  = open(nome + &quot;.tmp&quot;, &quot;w+&quot;) # arquivo temporário, de leitura e gravação

for line in ifile:
linha = line;

#print &quot;Substituindo '\\t\r' por ''&quot;
pattern = re.compile(r'\t\r')
linha = pattern.sub(&quot;&quot;,linha)

#print &quot;Substituindo ',' por '.'&quot;
pattern = re.compile(r',')
linha = pattern.sub(&quot;.&quot;,linha)

#print &quot;Substituindo '\t' por ','&quot;
pattern = re.compile('\t')
linha = pattern.sub(&quot;,&quot;,linha)

#print &quot;Padronizando as datas... \n&quot;
pattern = re.compile(r'([0-9]{2})/([0-9]{2})/([0-9]{4}) ([0-9]{2}):([0-9]{2}):([0-9]{2})')
linha = pattern.sub(r&quot;\3-\2-\1 \4:\5:\6&quot;,linha)

print '\n' + line + '\n' + linha + '\n'

ofile.write(linha)

ofile.close()

ifile.close()
</pre>
<p>Neste ponto, foram feitas algumas substituições utilizando expressões regulares a partir do arquivo original, e salvando num arquivo temporário com a extensão .tmp. Agora vamos abrir o arquivo temporário para leitura. No meu caso, utilizei os dados para cadastrá-los no banco MySQL, mas neste exemplo, apenas vamos imprimir o resultado na tela.</p>
<pre class="brush: plain; title: ; notranslate">

ofile  = open(nome + &quot;.tmp&quot;, &quot;rb&quot;)
reader = csv.reader(ofile)

rownum = 0
for row in reader:
# Salva o cabeçalho
if rownum == 0:
header = row
else:
colnum = 0
for col in row:

# imprime a linha, com o respectivo nome do campo, salvo do cabeçalho
print '%-8s: %s - %d' % (header[colnum], col, colnum)

colnum += 1

rownum += 1

ofile.close()
os.remove(nome + &quot;.tmp&quot;)
</pre>
<p>&nbsp;</p>
<p>&nbsp;<br />
<h3 class='related_post_title'>Posts Relacionados:</h3>
<ul class='related_post'>
<li><a href='http://blog.idealmind.com.br/mysql/como-conectar-ao-mysql-usando-python/' title='Como conectar ao MySQL usando Python'>Como conectar ao MySQL usando Python</a></li>
</ul>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.idealmind.com.br/geral/como-ler-um-arquivo-csv-ou-txt-usando-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O Hobbit em quadrinhos (the hoobit)</title>
		<link>http://blog.idealmind.com.br/geral/o-hobbit-em-quadrinhos-the-hoobit/</link>
		<comments>http://blog.idealmind.com.br/geral/o-hobbit-em-quadrinhos-the-hoobit/#comments</comments>
		<pubDate>Sun, 25 Sep 2011 22:53:44 +0000</pubDate>
		<dc:creator>Wellington Ribeiro</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[baixar o hobbit]]></category>
		<category><![CDATA[filme hobbit]]></category>
		<category><![CDATA[hobbit movie]]></category>
		<category><![CDATA[hobbit movie trailer]]></category>
		<category><![CDATA[hobbit news]]></category>
		<category><![CDATA[hobbit the game]]></category>
		<category><![CDATA[hobbit the movie]]></category>
		<category><![CDATA[hobbit trailer]]></category>
		<category><![CDATA[imdb the hobbit]]></category>
		<category><![CDATA[o hobbit]]></category>
		<category><![CDATA[o hobbit download]]></category>
		<category><![CDATA[o hobbit filme]]></category>
		<category><![CDATA[o hobbit livro]]></category>
		<category><![CDATA[o hobbit movie]]></category>
		<category><![CDATA[o silmarillion]]></category>
		<category><![CDATA[peter jackson]]></category>
		<category><![CDATA[peter jackson hobbit]]></category>
		<category><![CDATA[the hobbit 2011]]></category>
		<category><![CDATA[the hobbit book]]></category>
		<category><![CDATA[the hobbit jackson]]></category>
		<category><![CDATA[the hobbit movie]]></category>
		<category><![CDATA[the hobbit movies]]></category>
		<category><![CDATA[the hobbit new]]></category>
		<category><![CDATA[the hobbit release]]></category>
		<category><![CDATA[the hobbit trailer]]></category>
		<category><![CDATA[the hobbit wiki]]></category>
		<category><![CDATA[tolkien]]></category>
		<category><![CDATA[trailer o hobbit]]></category>

		<guid isPermaLink="false">http://blog.idealmind.com.br/?p=419</guid>
		<description><![CDATA[Apesar deste assunto fugir do propósito deste blog, resolvi compartilhar esse link, pois o livro O Hobbit foi dos livros que mais gostei de ler. Recentemente encontrei uma versão em quadrinhos, ideal para ler em tablet. O Hobbit O Hobbit é um dos livros mais importantes de J. R. R. Tolkien, prelúdio a O Senhor [...]]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p><a title="O Hobbit" rel="O Hobbit em quadrinhos" href="http://blog.idealmind.com.br/wp-content/uploads/2011/09/the_hobbit.jpeg"><img class="alignleft size-full wp-image-425" style="margin: 0 10px 10px 0;" title="O Hobbit - capa de revista em quadrinhos" src="http://blog.idealmind.com.br/wp-content/uploads/2011/09/the_hobbit.jpeg" alt="O Hobbit - capa de revista em quadrinhos" width="175" height="230" /></a>Apesar deste assunto fugir do propósito deste blog, resolvi compartilhar esse link, pois o livro O Hobbit foi dos livros que mais gostei de ler. Recentemente encontrei uma versão em quadrinhos, ideal para ler em tablet.</p>
<h2><strong>O Hobbit</strong></h2>
<p><strong> </strong>O Hobbit é um dos livros mais importantes de J. R. R. Tolkien, prelúdio a O Senhor dos Anéis. Conta a história de Bilbo Bolseiro, um Hobbit pacato e satisfeito cuja vida vira de cabeça para baixo quando ele se junta ao mago Gandalf e a treze anões em sua jornada para reaver um tesouro roubado. Esta versão em quadrinhos, cuidadosamente condensada por Charles Dixon e ilustrada por David Wenzel, tornou-se por si só um best-seller clássico.</p>
<p>Muitos fãs de Tolkien citam a história de <strong>&#8220;O Hobbit&#8221;</strong> como a sua favorita, mais do que a cosmologia de <strong>&#8220;Silmarilion&#8221;</strong> ou o caráter épico da Trilogia do Anel. A história, escrita para crianças, foi um grande sucesso editorial quando lançado em 1937 e se tornou um prelúdio fascinante para &#8220;Senhor dos Anéis&#8221;. O livro conta a história de Bilbo Bolseiro, um Hobbit pacato e satisfeito cuja vida vira de cabeça para baixo quando ele se junta ao mago Gandalf e a treze anões em sua jornada para reaver um tesouro roubado.</p>
<p>É uma viagem repleta de perigos &#8211; e no fim Bilbo encara sozinho o guardião do tesouro, o mais terrível dragão de toda a Terra-Média.</p>
<p>Esta versão em quadrinhos, cuidadosamente condensada por Charles Dixon e ilustrada por David Wenzel, tornou-se por si só um best-seller clássico. Um belo &#8220;aperitivo&#8221; aos fãs até o filme, com direção de Guilhermo Del Toro e previsão de lançamento em 2011.</p>
<p><span style="font-size: 20px; font-weight: bold;">O Hobbit Download</span></p>
<p><a href="http://www.easy-share.com/D19835E2E52411E09676002481FAD55A/O_Hobbit_jrr_tolkien.zip">http://www.easy-share.com/D19835E2E52411E09676002481FAD55A/O_Hobbit_jrr_tolkien.zip</a></p>
<p>Gandalf tricks Bilbo into hosting a party for Thorin and his band of twelve dwarves, who sing of reclaiming the <a title="Lonely Mountain" href="http://en.wikipedia.org/wiki/Lonely_Mountain">Lonely Mountain</a> and its vast treasure from the <a title="Dragon (Middle-earth)" href="http://en.wikipedia.org/wiki/Dragon_(Middle-earth)">dragon</a> Smaug. When the music ends, Gandalf unveils a map showing a <a title="Secret passage" href="http://en.wikipedia.org/wiki/Secret_passage">secret door</a> into the Mountain and proposes that the dumbfounded Bilbo serve as the expedition&#8217;s &#8220;burglar&#8221;. The dwarves ridicule the idea, but Bilbo, indignant, joins despite himself.</p>
<p>The group travel into the wild, where Gandalf saves the company from trolls and leads them to <a title="Rivendell" href="http://en.wikipedia.org/wiki/Rivendell">Rivendell</a>, where Elrond reveals more secrets from the map. Passing over the <a title="Misty Mountains" href="http://en.wikipedia.org/wiki/Misty_Mountains">Misty Mountains</a>, they are caught by goblins and driven deep underground. Although Gandalf rescues them, Bilbo gets separated from the others as they flee the goblins. Lost in the goblin tunnels, he stumbles across <a title="One Ring" href="http://en.wikipedia.org/wiki/One_Ring">a mysterious ring</a> and then encounters Gollum, who engages him in a game of riddles for the path out of the tunnels, or his demise. With the help of the ring, which confers <a title="Invisibility" href="http://en.wikipedia.org/wiki/Invisibility">invisibility</a>, Bilbo escapes and rejoins the dwarves, improving his reputation with them. The goblins and <a title="Warg" href="http://en.wikipedia.org/wiki/Warg#Tolkien.27s_wargs">Wargs</a> give chase but the company are saved by eagles before resting in the house of <a title="Beorn" href="http://en.wikipedia.org/wiki/Beorn">Beorn</a>.</p>
<p>The company enter the black forest of <a title="Mirkwood" href="http://en.wikipedia.org/wiki/Mirkwood">Mirkwood</a> without Gandalf. In Mirkwood, Bilbo first saves the dwarves from <a title="Giant Spider" href="http://en.wikipedia.org/wiki/Giant_Spider#Great_Spiders">giant spiders</a> and then from the dungeons of the <a title="Silvan Elves" href="http://en.wikipedia.org/wiki/Silvan_Elves">Wood-elves</a>. Nearing the Lonely Mountain, the travellers are welcomed by the human inhabitants of Lake-town, who hope the dwarves will fulfil prophecies of Smaug&#8217;s demise. The expedition travel to the Mountain and find the secret door; Bilbo scouts the dragon&#8217;s lair, stealing a great cup and learning of a weakness in Smaug&#8217;s armour. The enraged dragon, deducing that Lake-town has aided the intruder, sets out to destroy the town. A noble <a title="Thrush (bird)" href="http://en.wikipedia.org/wiki/Thrush_(bird)">thrush</a> who overheard Bilbo&#8217;s report of Smaug&#8217;s vulnerability reports it to Bard, who slays the Dragon.</p>
<p>When the dwarves take possession of the mountain, Bilbo finds the <a title="List of Middle-earth objects" href="http://en.wikipedia.org/wiki/List_of_Middle-earth_objects#Arkenstone">Arkenstone</a>, an heirloom of Thorin&#8217;s dynasty, and steals it. The Wood-elves and Lake-men besiege the Mountain and request compensation for their aid, reparations for Lake-town&#8217;s destruction, and settlement of old claims on the treasure. Thorin refuses and, having summoned his kin from the mountains of the North, reinforces his position. Bilbo tries to ransom the Arkenstone to head off a war, but Thorin is intransigent. He banishes Bilbo, and battle seems inevitable.</p>
<p>Gandalf reappears to warn all of an approaching army of goblins and Wargs. The dwarves, men, and elves band together, but only with the timely arrival of the eagles and Beorn do they win the climactic <a title="Battle of Five Armies" href="http://en.wikipedia.org/wiki/Battle_of_Five_Armies">Battle of Five Armies</a>. Thorin is fatally wounded and reconciles with Bilbo before he dies. Bilbo accepts only a small portion of his share of the treasure, having no want or need for more, but still returns home a very wealthy hobbit.</p>
<h2>O Hobbit Download</h2>
<p><a href="http://www.easy-share.com/D19835E2E52411E09676002481FAD55A/O_Hobbit_jrr_tolkien.zip">http://www.easy-share.com/D19835E2E52411E09676002481FAD55A/O_Hobbit_jrr_tolkien.zip</a><br />
<h3 class='related_post_title'>Posts Relacionados:</h3>
<ul class='related_post'>
<li>Nenhum</li>
</ul>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.idealmind.com.br/geral/o-hobbit-em-quadrinhos-the-hoobit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Desenvolvimento web: frameworks PHP vs Ruby on Rails vs Python on Django</title>
		<link>http://blog.idealmind.com.br/geral/desenvolvimento-web-frameworks-php-vs-ruby-on-rails-vs-python-on-django/</link>
		<comments>http://blog.idealmind.com.br/geral/desenvolvimento-web-frameworks-php-vs-ruby-on-rails-vs-python-on-django/#comments</comments>
		<pubDate>Sat, 02 Apr 2011 21:54:45 +0000</pubDate>
		<dc:creator>Wellington Ribeiro</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[cake php]]></category>
		<category><![CDATA[code igniter]]></category>
		<category><![CDATA[codeigniter php]]></category>
		<category><![CDATA[codeigniter vs cakephp]]></category>
		<category><![CDATA[codeigniter vs yii]]></category>
		<category><![CDATA[codeigniter vs yii vs cake vs zend vs ruby on rails vs pyton django]]></category>
		<category><![CDATA[codeigniter yii]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[php frameworks]]></category>
		<category><![CDATA[php on rails]]></category>
		<category><![CDATA[php vs django]]></category>
		<category><![CDATA[php vs ruby on rails]]></category>
		<category><![CDATA[yii framework]]></category>
		<category><![CDATA[zend php]]></category>

		<guid isPermaLink="false">http://blog.idealmind.com.br/?p=395</guid>
		<description><![CDATA[Resultados de pesquisas e comparação entre frameworks PHP Yii, Zend, CakePHP, CodeIgniter, e o Ruby on Rails e Python Django para o desenvolvimento web.]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><div>Com o objetivo de encontrar uma linguagem/framework de programação web, que tenha robustez, rapidez e simplicidade de desenvolvimento e manutenção, facilidade de gerenciamento de templates/design, facilidade de integração de novas funcionalidades, menor curva de aprendizagem e melhor relação custo-benefício, ampla documentação e comunidade envolvida entre outros fatores que facilitam a vida de um desenvolvedor web, fiz algumas pesquisas para comparar linguagens de programação para a web, e seus respectivos frameworks de desenvolvimento.</div>
<div>Escolhi as linguagens <strong>PHP, Ruby e Python</strong> para a pesquisa, devido aos seguintes fatores:</div>
<div>
<ul>
<li><strong>PHP:</strong> maior comunidade do mundo de desenvolvimento Web, minha linguagem atual</li>
<li><strong>Ruby (on Rails):</strong> Teve um boom de muitos desenvolvedores falando que é melhor, mais limpo e mais rápido de desenvolver do  que PHP, e que migraram para o Rails. Grandes portais, como o Twitter, usam Ruby on Rails.</li>
<li><strong>Python:</strong> Ultimamente tenho ouvido muito falar de Python para o desenvolvimento web, com muitos elogios sobre a robustez e rapidez de desenvolvimento.</li>
</ul>
</div>
<div>Usei também o Google Insights for Search para pesquisar o interesse das pessoas, e usei um filtro para o nicho Internet -&gt; Web Design e Desenvolvimento. Portanto, nos gráficos do Insigths, para uma melhor comparação por nicho, clique na aba &#8221;Crescimento com relação à categoria Web design e desenvo…&#8221;.</div>
<h4><strong>Gráficos do Google Insights for Search</strong></h4>
<div>Lembre-se de clicar na aba &#8220;Crescimento com relação à categoria Web design e desenvo…&#8221;.</div>
<p>Interesses por PHP, Ruby e Python, usando como termso de pesquisa os frameworks yii (php), rails (ruby), django (python), cake php, zend :</p>
<p><a href="http://www.google.com/insights/search/#cat=422&amp;q=yii%2Crails%2Cdjango%2Ccake%20php%2Czend%20framework&amp;cmpt=q" target="_blank">http://www.google.com/insights/search/#cat=422&amp;q=yii%2Crails%2Cdjango%2Ccake%20php%2Czend%20framework&amp;cmpt=q</a></p>
<div>Pelas linguagens puras (PHP, Ruby, Python e Java):</div>
<div><span style="font-family: arial, sans-serif;"><a href="http://www.google.com/insights/search/#cat=422&amp;q=php%2Cruby%2Cpython%2Cjava&amp;cmpt=q" target="_blank">http://www.google.com/insights/search/#cat=422&amp;q=php%2Cruby%2Cpython%2Cjava&amp;cmpt=q</a></span></div>
<div>
<p><span style="font-family: arial, sans-serif;"> </span></p>
</div>
<div>Numa comparação de interesses entre PHP, Ruby, Ruby on Rails, Yii e Django, temos o seguinte gráfico:</div>
<div><span style="font-family: arial, sans-serif;"><a href="http://www.google.com/insights/search/#cat=422&amp;q=php%2Cruby%20on%20rails%2Cyii%2Cruby%2Cdjango&amp;cmpt=q">http://www.google.com/insights/search/#cat=422&amp;q=php%2Cruby%20on%20rails%2Cyii%2Cruby%2Cdjango&amp;cmpt=q</a></span></div>
<div>&nbsp;</div>
<div><span style="font-family: arial, sans-serif;">É perceptível que existe uma rivalidade desigual entre PHP e Ruby on Rails. Isso porque Rails é um framework de desenvolvimento em Ruby. A comunidade Rails, dos quais muitos migraram do PHP, diz que o PHP é sujo, de difícil manutenção, enquanto o Ruby on Rails é limpo, e de rápido desenvolvimento e manutenção. Porém, o correto seria comparar Ruby on Rails com algum framework PHP. Em função disso, e por eu não possuir muita experiência com framework PHP, resolvi buscar, na opnião da comunidade PHP, qual é o melhor framework PHP. Pesquisei no google por &#8221;<a title="Busca no Google pelo melhor Framework em PHP" href="http://www.google.com.br/#hl=pt-BR&amp;source=hp&amp;biw=1440&amp;bih=790&amp;q=best+php+framework&amp;aq=f&amp;aqi=&amp;aql=&amp;oq=&amp;fp=5e99c62b076e8770">best php framework</a>&#8220;.</span></div>
<div>
<p><span style="font-family: arial, sans-serif;"> </span></p>
</div>
<div><span style="font-family: arial, sans-serif;">Conforme uma pesquisa realizada, cujo resultado está em <a href="http://www.phpframeworks.com/top-10-php-frameworks/">http://www.phpframeworks.com/top-10-php-frameworks/</a>, Yii é o mais votado como o melhor framework PHP, em resultados recentes, seguido pelo CodeIgniter e depois pelo Cake PHP. </span><span style="font-family: arial, sans-serif;">Cake PHP é um framework inspirado no Ruby on Rails.</span></div>
<div>
<p><span style="font-family: arial, sans-serif;"> </span></p>
</div>
<div><span style="font-family: arial, sans-serif;">Conforme o gráfico do Google Insights, o interesse por Django, um framework para Python, vem crescendo numa escala menor do que o Yii, porém, percebe-se que não existe um modismo como aconteceu com o Ruby on Rails, que deu um salto, e que começou a cair com o lançamento do Yii (o interesse pelo framework Zend também caiu).</span></div>
<div>
<p><span style="font-family: arial, sans-serif;"> </span></p>
</div>
<div><span style="font-family: arial, sans-serif;">Uma pesquisa de comparação entre o CodeIgniter, o Yii, o Cake PHP e o Zend foi realizada pelo HipRank: <a href="http://www.hiprank.com/cakephp-vs-codeigniter-vs-yii-vs-zend.html">http://www.hiprank.com/cakephp-vs-codeigniter-vs-yii-vs-zend.html</a>. Os resultados mostram que o Yii e CodeIgniner são jovens, porém muito bem cotados, seguido pelo Cake PHP, com muitos pontos positivos, enaquanto o Zend não está muito bem cotado, tendo quase 50% de pontos negativos.</span></div>
<div>
<p><span style="font-family: arial, sans-serif;"> </span></p>
</div>
<div><span style="font-family: arial, sans-serif;">Particularmente, minha experiência com Zend não foi muito boa. Achei complicado, e acredito não ser a melhor referência para comparar com o Ruby on Rails. Também não levei muito a fundo a minha experiência com o Cake PHP, mas pelo pouco que tive, foi muito melhor que com o Zend. Nunca usei o CodeIgniter nem o Yii.</span></div>
<div><span style="font-family: arial, sans-serif;"><br />
</span></div>
<div>
<p><span style="font-family: arial, sans-serif;"> </span></p>
</div>
<h4><strong>Comparando Ruby on Rails com frameworks PHP</strong></h4>
<div><span style="font-family: arial, sans-serif;">A partir dos resultados do Google Insights (<a href="http://www.google.com/insights/search/#cat=422&amp;q=yii%2Crails%2Czend%2Ccake%20php%2Ccodeigniter&amp;cmpt=q">http://www.google.com/insights/search/#cat=422&amp;q=yii%2Crails%2Czend%2Ccake%20php%2Ccodeigniter&amp;cmpt=q</a>), comparando Yii, CodeIgniter, Rails, Zend, e Cake PHP, é possível obter as seguintes conclusões:</span></div>
<div>
<ul>
<li><span style="font-family: arial, sans-serif;">Zend é mais antigo de todos, portanto, deve possuir uma maior comunidade.</span></li>
<li><span style="font-family: arial, sans-serif;">O interesse por Ruby on Rails começou a cair após o lançamento do CodeIgniter (meados de 2006).</span></li>
<li>O interesse pelo Zend começou a cair após o lançamento do Yii (meados de 2008), assim como o interesse pelo Cake PHP.</li>
<li>O interesse por CodeIgniter é o maior de todos, desde antes do lançamento do Yii.</li>
<li>A curva de interesse pelo Yii vem crescendo de forma semelhante ao do CodeIgniter, consistente e muito menor que o crescimento do interesse por Ruby on Rails (considero que a taxa de interesse do Ruby on Rails foi um boom quando não existia um bom framework PHP que pudesse ser equiparado).</li>
</ul>
</div>
<div>A partir do post no blog do O&#8217;Reilly, um grande formador de opniões, foram apresentadas 7 razões para que o autor do post <a title="7 razões para voltar ao PHP após 2 anos usando Ruby on Raiuls" href="http://www.oreillynet.com/ruby/blog/2007/09/7_reasons_i_switched_back_to_p_1.html">voltasse ao PHP após 2 anos de experiência com o Ruby on Rails</a>.</div>
<div>Neste momento, ainda prefiro usar um framework PHP ao invés de Ruby on Rails, ficando entre os dois frameworks PHP: Yii e CodeIgniter. Falta ainda a comparação com <em>Python on Django</em>.</div>
<div>Uma nova comparação por interesse no Google Insights for Search entre Django, CodeIgniter e Yii (<a href="http://www.google.com/insights/search/#cat=422&amp;q=yii%2Ccodeigniter%2Cdjango&amp;cmpt=q">http://www.google.com/insights/search/#cat=422&amp;q=yii%2Ccodeigniter%2Cdjango&amp;cmpt=q</a>) mostra que o interesse por Django ficou praticamente estável após o lançamento do Yii.</div>
<div>Como a taxa de crescimento do CodeIgniter permaneceu, e a partir das análises anteriores, concluo superficialmente que os desenvolvedores do Ruby on Rails migraram para o CodeIgniter, e os do Zend, Cake PHP e Django começaram a migrar para o Yii (para o desenvolvimento web).</div>
<h4><strong>Comparação entre PHP e Python</strong></h4>
<div>Na pesquisa, encontrei algumas comparações entre Python e PHP, como disponíveis em  <a href="http://wiki.python.org/moin/PythonVsPhp">http://wiki.python.org/moin/PythonVsPhp</a> e <a href="http://tech.t9i.in/2010/07/php-vs-python-for-web-apps/">http://tech.t9i.in/2010/07/php-vs-python-for-web-apps/</a>. Minhas conclusões embasadas nestas comparações são:</div>
<div>
<ul>
<li>Python é mais geral que PHP, podendo ser usado tando para web como para aplicações desktop</li>
<li>PHP é totalmente voltado para a web, sendo melhor de se utilizar para este propósito</li>
<li>Praticamente, para a web, tudo o que o PHP faz, o Pyton faz, e vice-versa.</li>
<li>PHP é mais fácil de se aprender do que Python, para a Web.</li>
<li>A configuração PHP é mais fácil que a do Python (assim como Ruby)</li>
<li>Python está inclinando esforços para facilitar o desenvolvimento web.</li>
</ul>
</div>
<h4><strong>Conlusão entre Python e PHP</strong></h4>
<div>Para aplicações web, ainda prefiro usar o PHP. Mas acredito que o Python possa se tornar uma linguagem para o futuro da web. Apesar de não ter realizado uma pesquisa mais aprofundada, acredito que com Python é ou será possível construir funcionalidades como o Google Docs (atualmente feito em Java). Logo, vou aprender mais sobre Python, mas ainda continuarei usando PHP.</div>
<h4><strong>CodeIgniter vs Yii</strong></h4>
<div>Uma comparação realizada em <a href="http://www.phpframeworks.com/php-framework-comparison/comparion.php?id=9-19">http://www.phpframeworks.com/php-framework-comparison/comparion.php?id=9-19</a>, mostra que o Yii é superior ao CodeIgniter. Pesquisas semelhantes revelam que os desenvolvedores do CodeIgniter estão testando e preferindo trabalhar com o Yii.</div>
<div>Avaliando as informações disponíveis nos sites do Yii (<a href="http://www.yiiframework.com/">http://www.yiiframework.com/</a>) e no site do CodeIgniter (<a href="http://codeigniter.com/">http://codeigniter.com/</a>), e as opiniões da comunidade de desenvolvedores, para o desenvolvimento PHP, vou apostar no Yii.</div>
<h3 class='related_post_title'>Posts Relacionados:</h3>
<ul class='related_post'>
<li>Nenhum</li>
</ul>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.idealmind.com.br/geral/desenvolvimento-web-frameworks-php-vs-ruby-on-rails-vs-python-on-django/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Descubra o seu nível de inglês &#8211; teste de inglês online gratuito</title>
		<link>http://blog.idealmind.com.br/geral/descubra-o-seu-nivel-de-ingles-teste-de-ingles-online-gratuito/</link>
		<comments>http://blog.idealmind.com.br/geral/descubra-o-seu-nivel-de-ingles-teste-de-ingles-online-gratuito/#comments</comments>
		<pubDate>Mon, 08 Nov 2010 22:11:44 +0000</pubDate>
		<dc:creator>Wellington Ribeiro</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[nível de inglês]]></category>
		<category><![CDATA[prova de inglês]]></category>
		<category><![CDATA[teste de ingles]]></category>
		<category><![CDATA[teste de nível]]></category>
		<category><![CDATA[teste de nivelamento]]></category>
		<category><![CDATA[teste em inglês]]></category>
		<category><![CDATA[teste inglês online]]></category>
		<category><![CDATA[teste seu inglês]]></category>
		<category><![CDATA[testes de ingles]]></category>

		<guid isPermaLink="false">http://blog.idealmind.com.br/?p=349</guid>
		<description><![CDATA[Faça um teste de inglês online grátis e saiba seu nível de inglês e como melhorá-lo e concorra a uma bolsa de estudos de inglês]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p><a href="http://www.testemeuingles.com/?idi=6">O melhor teste de inglês do Brasil!</a></p>
<p>Faça um teste de inglês online grátis e saiba seu nível de inglês e como melhorá-lo e concorra a uma bolsa de estudos de inglês.</p>
<ul>
<li>Saiba seu nível de inglês em 10 minutos.</li>
<li>Descubra quanto tempo você precisa para aprender inglês.</li>
<li>Ganhe um estudo personalizado e 7 dias de curso grátis.</li>
</ul>
<p>Participe e concorra a 3 meses grátis</p>
<p><a href="http://www.testemeuingles.com/?idi=6">http://www.testemeuingles.com/?idi=6</a></p>
<h3 class='related_post_title'>Posts Relacionados:</h3>
<ul class='related_post'>
<li>Nenhum</li>
</ul>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.idealmind.com.br/geral/descubra-o-seu-nivel-de-ingles-teste-de-ingles-online-gratuito/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como proteger arquivos e pastas com senha no ubuntu linux usando htaccess e htpasswd</title>
		<link>http://blog.idealmind.com.br/geral/como-proteger-arquivos-e-pastas-com-senha-no-ubuntu-linux-usando-htaccess-e-htpasswd/</link>
		<comments>http://blog.idealmind.com.br/geral/como-proteger-arquivos-e-pastas-com-senha-no-ubuntu-linux-usando-htaccess-e-htpasswd/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 03:37:40 +0000</pubDate>
		<dc:creator>Wellington Ribeiro</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[htaccess e htpasswd]]></category>
		<category><![CDATA[htpasswd]]></category>
		<category><![CDATA[htpasswd e htaccess]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[pedir senha]]></category>
		<category><![CDATA[pedir senha para acessar arquivo]]></category>
		<category><![CDATA[pedir senha para acessar pasta]]></category>
		<category><![CDATA[restirngir acesso a pasta]]></category>
		<category><![CDATA[restringir acesso a arquivos]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ubuntu linux]]></category>

		<guid isPermaLink="false">http://blog.idealmind.com.br/?p=323</guid>
		<description><![CDATA[Exemplo de como restringir acesso a pastas e arquivos através de login e senha, utlizando htaccess e htpasswd, no servidor linux]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p>Seguindo o exemplo do post anterior (<a href="http://blog.idealmind.com.br/servidores/como-criar-um-link-simbolico-no-ubuntu-linux/">http://blog.idealmind.com.br/servidores/como-criar-um-link-simbolico-no-ubuntu-linux/</a>), vou exemplificar como criar uma proteção, ou seja, restringir o acesso de um arquivo através de login e senha, onde o servidor requer autenticação, através de htaccess e htpasswd, para acessar ou fazer o download de um arquivo restrito.</p>
<p>Como no exemplo do post  anterior, a idéia é proteger o download do arquivo em http://www.exemplo.com.br/backup/backupdb.sql.gz (que é um link simbólico puxando um arquivo em outro diretório do servidor).</p>
<p>A proteção pode ser feita utilizando o htacces e o htpasswd. Assim:</p>
<p>Entre no diretório onde está o arquivo que você quer restringir:<br />
$ cd /home/exemplo/backup<br />
home/exemplo/backup$ htpasswd -c restrito nomedousuario<br />
New password:<br />
Re-type new password:<br />
Adding password for user nomedousuario<br />
home/exemplo/backup$</p>
<p>onde restrito é o nome do arquivo que arqmazena os usuários e as senhas, e nome do usuário é o nome do usuário que terá acesso.Você vai digitar a senha de acesso para este usuário logo em seguida, e confirmar a senha.</p>
<p>Neste momento, você terá criado um usuário que poderá acessar o arquivo. Porém, o arquivo ainda não está protegido. Então faça o seguinte:<br />
Crie um arquivo .htaccess dentro dessa pasta (/home/exemplo/backup), utilizando, por exemplo,o vim:</p>
<p>home/exemplo/backup$ vim .htaccess</p>
<p>e insira o seguinte conteúdo no arquivo .htaccess:</p>
<p>AuthName &#8220;Acesso Restrito&#8221;<br />
AuthType Basic<br />
AuthUserFile /home/exemplo/backup/restrito<br />
require valid-user</p>
<p>salve e feche o vim (:x).</p>
<p>Pronto, a partir desse momento, para qualquer usuário que acessar http://www.exemplo.com.br/backup/backupdb.sql.gz, será solicitado um login e uma senha, e o acesso ao download do arquivo somente será liberado se o usuário for autenticado com sucesso.</p>
<p>A analogia é a mesma para restrição de diretórios.</p>
<p>Se você quiser adicionar mais usuários para se autenticar com logins e senhas diferentes, basta dar o comando:</p>
<p>home/exemplo/backup$ htpasswd restrito nomedeoutrousuario<br />
New password:<br />
Re-type new password:<br />
Adding password for user nomedeoutrousuario</p>
<p>Note que não precisa do parâmetro -c, que especifica que o arquivo restrito deve ser criado, pois ele já existe.<br />
<h3 class='related_post_title'>Posts Relacionados:</h3>
<ul class='related_post'>
<li><a href='http://blog.idealmind.com.br/mysql/como-instalar-facilmente-o-lamp-apache-mysql-e-php-no-ubuntu-com-taskse/' title='Como instalar facilmente o LAMP (apache, mysql e php) no ubuntu com tasksel'>Como instalar facilmente o LAMP (apache, mysql e php) no ubuntu com tasksel</a></li>
<li><a href='http://blog.idealmind.com.br/geral/como-criar-um-link-simbolico-no-ubuntu-linux/' title='Como criar um link simbólico no ubuntu linux'>Como criar um link simbólico no ubuntu linux</a></li>
<li><a href='http://blog.idealmind.com.br/geral/forcar-download-em-servidor-remoto-como-amazon-s3-com-opcao-salvar-como/' title='Forçar download em servidor remoto como Amazon S3 com opção &#8220;salvar como&#8221;'>Forçar download em servidor remoto como Amazon S3 com opção &#8220;salvar como&#8221;</a></li>
<li><a href='http://blog.idealmind.com.br/ubuntu/qual-a-diferenca-entre-apt-get-e-aptitude/' title='Qual a diferença entre apt-get e aptitude'>Qual a diferença entre apt-get e aptitude</a></li>
<li><a href='http://blog.idealmind.com.br/ubuntu/como-pesquisar-por-arquivos-em-pastas-e-subpastas/' title='Como pesquisar por arquivos em pastas e subpastas'>Como pesquisar por arquivos em pastas e subpastas</a></li>
</ul>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.idealmind.com.br/geral/como-proteger-arquivos-e-pastas-com-senha-no-ubuntu-linux-usando-htaccess-e-htpasswd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como criar um link simbólico no ubuntu linux</title>
		<link>http://blog.idealmind.com.br/geral/como-criar-um-link-simbolico-no-ubuntu-linux/</link>
		<comments>http://blog.idealmind.com.br/geral/como-criar-um-link-simbolico-no-ubuntu-linux/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 03:15:28 +0000</pubDate>
		<dc:creator>Wellington Ribeiro</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[download via http]]></category>
		<category><![CDATA[link simbólico]]></category>
		<category><![CDATA[servidor apache]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ubuntu linux]]></category>

		<guid isPermaLink="false">http://blog.idealmind.com.br/?p=322</guid>
		<description><![CDATA[Exemplo de como criar um link simbólico de um arquivo em outra pasta do servidor e disponibilizar para download via http.]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p>Ontem eu tive a necessidade de criar um link simbólico, de forma a disponibilizar o download de um arquivo dentro de uma pasta na raíz do servidor linux.</p>
<p>Para ser mais específico, eu precisei disponibilizar o download do backup do banco de dados, via http, para usuários que não têm acesso ssh e ftp ao servidor, mas que precisam da ultima versão do backup do banco de dados. Porém, o backup fica armazenado em uma pasta dentro da raíz do servidor, de forma que não seria muito prático apenas colocar o backup do banco dentro de uma pasta real que possibilitasse o download direto via http.</p>
<p>A solução foi criar um link simbólico, para que quando os usuários solicitassem o acesso ao arquivo via http, fosse disponibilizado o download do arquivo original, na pasta original.</p>
<p>Vamos à prática.</p>
<p>Supondo que você tenha um arquivo, tipo, no meu caso, backupbd.sql.gz, na pasta /home/backups/, e você quer disponibilizar o download via http, através de um link http://www.exemplo.com.br/backup/backupdb.sql.gz, desse mesmo arquivo.</p>
<p>Se a pasta raíz do seu site se localiza em /home/exemplo ( http://www.exemplo.com.br aponta para /home/exemplo ), você vai criar a pasta backup dentro desse diretório.</p>
<p>$ cd /home/exemplo<br />
home/exemplo$ mkdir backup<br />
home/exemplo$ cd backup<br />
home/exemplo/backups$ ln -s /home/backups/backupbd.sql.gz backupdb.sql.gz</p>
<p>Pronto, você fez um link simbólico, onde se os usuários acessarem http://www.exemplo.com.br/backup/backupdb.sql.gz, será disponibilizado o download do arquivo backupbd.sql.gz localizado em /home/backups/.</p>
<p>Para criar um link simbólico de uma pasta, você usa a mesma lógica.</p>
<p>No próximo post, vou mostrar, ainda em cima deste exemplo, como proteger o download do arquivo via http, solicitando uma senha, através do .htaccess e .htpasswd.<br />
<h3 class='related_post_title'>Posts Relacionados:</h3>
<ul class='related_post'>
<li><a href='http://blog.idealmind.com.br/geral/como-proteger-arquivos-e-pastas-com-senha-no-ubuntu-linux-usando-htaccess-e-htpasswd/' title='Como proteger arquivos e pastas com senha no ubuntu linux usando htaccess e htpasswd'>Como proteger arquivos e pastas com senha no ubuntu linux usando htaccess e htpasswd</a></li>
<li><a href='http://blog.idealmind.com.br/mysql/como-instalar-facilmente-o-lamp-apache-mysql-e-php-no-ubuntu-com-taskse/' title='Como instalar facilmente o LAMP (apache, mysql e php) no ubuntu com tasksel'>Como instalar facilmente o LAMP (apache, mysql e php) no ubuntu com tasksel</a></li>
<li><a href='http://blog.idealmind.com.br/ubuntu/qual-a-diferenca-entre-apt-get-e-aptitude/' title='Qual a diferença entre apt-get e aptitude'>Qual a diferença entre apt-get e aptitude</a></li>
<li><a href='http://blog.idealmind.com.br/ubuntu/como-pesquisar-por-arquivos-em-pastas-e-subpastas/' title='Como pesquisar por arquivos em pastas e subpastas'>Como pesquisar por arquivos em pastas e subpastas</a></li>
<li><a href='http://blog.idealmind.com.br/geral/forcar-download-em-servidor-remoto-como-amazon-s3-com-opcao-salvar-como/' title='Forçar download em servidor remoto como Amazon S3 com opção &#8220;salvar como&#8221;'>Forçar download em servidor remoto como Amazon S3 com opção &#8220;salvar como&#8221;</a></li>
</ul>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.idealmind.com.br/geral/como-criar-um-link-simbolico-no-ubuntu-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Criando virtual hosts no linux ubuntu 9.10</title>
		<link>http://blog.idealmind.com.br/geral/criando-virtual-hosts-no-linux-ubuntu-9-10/</link>
		<comments>http://blog.idealmind.com.br/geral/criando-virtual-hosts-no-linux-ubuntu-9-10/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 18:09:25 +0000</pubDate>
		<dc:creator>Wellington Ribeiro</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[apache 2]]></category>
		<category><![CDATA[como criar vhost]]></category>
		<category><![CDATA[como criar virtual hosts]]></category>
		<category><![CDATA[tutorial vhost]]></category>
		<category><![CDATA[tutorial virtual hosts]]></category>
		<category><![CDATA[vhosts]]></category>
		<category><![CDATA[vhosts apache]]></category>
		<category><![CDATA[vhosts apache2]]></category>
		<category><![CDATA[vhosts linux]]></category>
		<category><![CDATA[vhosts linux apache]]></category>
		<category><![CDATA[vhosts ubuntu]]></category>
		<category><![CDATA[virtual hosts]]></category>
		<category><![CDATA[virtual hosts apache]]></category>
		<category><![CDATA[virtual hosts linux]]></category>
		<category><![CDATA[virtual hosts ubuntu]]></category>

		<guid isPermaLink="false">http://blog.idealmind.com.br/?p=315</guid>
		<description><![CDATA[Tutorial detalhado e completo de criação de virtual hosts (vhosts) do apache2 no Ubuntu, com exemplo de uso.]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p>Para criar um virtual host no apache2 instalado no ubuntu 9.10 (acerdito que funciona também em outras versões do ubuntu), siga os passos abaixo:</p>
<p>Por padrão, o diretório do apache é /var/www</p>
<p>Você pode criar pastas dentro desse diretório, que serão os vhosts. Se o diretório estiver protegido, no terminal execute o seguinte comando:</p>
<p>sudo chmod 777 /var/www</p>
<p>Crie dentro desse diretório um novo diretório chamado, por exemplo, meusite.local<br />
No terminal:<br />
mkdir /var/www/meusite.local<br />
sudo getdit /etc/apache2/sites-available/meusite.local</p>
<p>Adicione o seguinte código:</p>
<pre class="brush: plain; title: ; notranslate">
&lt;VirtualHost *:80&gt;
	ServerName meusite.local
	DocumentRoot /var/www/meusite.local
	&lt;Directory /var/www/meusite.local/&gt;
		Options FollowSymLinks
		AllowOverride None
		Order deny,allow
		Allow from all
	&lt;/Directory&gt;
&lt;/VirtualHost&gt;
</pre>
<p>Salve e feche.</p>
<p>Edite o arquivo hosts do Ubuntu:</p>
<p>sudo gedit /etc/hosts</p>
<p>Adicione a seguinte linha:<br />
127.0.0.1	meusite.local</p>
<p>Salve e feche.</p>
<p>Abra o arquivo<br />
sudo gedit /etc/apache2/apache2.conf<br />
e certifique-se de que ele possua as linhas</p>
<p>NameVirtualHost *:80<br />
Listen 80</p>
<p>Edite se preciso (adicione as linhas), salve e feche.</p>
<p>No terminal, desabilite o site default do apache:<br />
a2dissite default<br />
e habilite o seu vhost:<br />
a2ensite meusite.local</p>
<p>Dê o seguinte comando<br />
sudo /etc/init.d/apache2 reload</p>
<p>Vá até o diretório /var/www/meusite.local, e crie um novo arquivo, index.html, e insira e salve o seguinte código:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;h1&gt;Funciona!&lt;/h1&gt;&lt;h2&gt;Esta é a página inicial de meusite.local&lt;/h2&gt;
</pre>
<p>Abra o navegador e acesse http://meusite.local</p>
<p>Você deverá ver as mensagens editadas no arquivo.</p>
<p>Pronto! Você criou um virtual host!</p>
<p>Para criar outros, siga o mesmo processo, substituindo meusite.local pelo nome do seu novo virtual host.</p>
<p>Só para deixar claro, o diretório não precisa ter o mesmo nome do virtual host.</p>
<h3 class='related_post_title'>Posts Relacionados:</h3>
<ul class='related_post'>
<li>Nenhum</li>
</ul>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.idealmind.com.br/geral/criando-virtual-hosts-no-linux-ubuntu-9-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>fixPng Jquery Plugin ie6</title>
		<link>http://blog.idealmind.com.br/geral/fixpng-jquery-plugin-for-ie6/</link>
		<comments>http://blog.idealmind.com.br/geral/fixpng-jquery-plugin-for-ie6/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 21:32:38 +0000</pubDate>
		<dc:creator>Wellington Ribeiro</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[background png ie6]]></category>
		<category><![CDATA[fix png ie6]]></category>
		<category><![CDATA[fixpng]]></category>
		<category><![CDATA[png fix jquery plugin]]></category>
		<category><![CDATA[png fix plugin]]></category>
		<category><![CDATA[png ie6 css]]></category>
		<category><![CDATA[png jquery]]></category>
		<category><![CDATA[png no ie6]]></category>
		<category><![CDATA[png transparent ie6]]></category>
		<category><![CDATA[png transparente ie6]]></category>

		<guid isPermaLink="false">http://blog.idealmind.com.br/?p=308</guid>
		<description><![CDATA[This plugin solves png transparency issues in IE 6, and it is free and easy to use. Este plugin gratuito e fácil de usar resolve o problema de transparência no IE6.]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><h2>Download &#038; Demo</h2>
<p><strong>Demo:</strong> <a href="http://blog.idealmind.com.br/exemplos/fixpng/" target="_blank">http://blog.idealmind.com.br/exemplos/fixpng/</a><br />
<strong>Download</strong>: <a href="http://blog.idealmind.com.br/exemplos/fixpng/fixpng.rar" target="_blank">http://blog.idealmind.com.br/exemplos/fixpng/fixpng.rar</a></p>
<h2>ENGLISH</h2>
<p>This plugin solves the problems of transparency in PNG in Internet Explorer 6.</p>
<p>It looks for all the images and puts them in the background with an opacity filter, replacing the original image with a transparent 1px gif.</p>
<h3>Using</h3>
<pre class="brush: jscript; title: ; notranslate">

&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery.js&quot;&gt;&lt;/script&gt;
 &lt;script type=&quot;text/javascript&quot; src=&quot;js/fixpng.js&quot;&gt;&lt;/script&gt;
 &lt;script type=&quot;text/javascript&quot;&gt;
 $(document).ready(function(){
 $(&quot;body&quot;).fixPng();
 });
 &lt;/script&gt;
</pre>
<p>The code to put images not changes:</p>
<pre class="brush: xml; title: ; notranslate">

&lt;img src=&quot;img/image.png&quot; alt=&quot;png image&quot; /&gt;
</pre>
<h3>Options</h3>
<pre class="brush: jscript; title: ; notranslate">

$(&quot;body&quot;).fixPng( [ string gif_file, string attr, string noreplace ] );
</pre>
<p><strong>gif_file</strong> &#8211; If you use a file different then &#8220;img/vazio.gif&#8221;, use this option to set the correct path to a transparent gif.</p>
<p><strong>attr</strong> &#8211; If you do not want to apply the filter on a specific image, use this option to set the attribute of the image that will not have the filter. The default is the attribute &#8216;rel&#8217;.</p>
<p><strong>noreplace</strong> &#8211; The attribute value defined above. The default is &#8216;noreplace&#8217;.</p>
<p>Example</p>
<pre class="brush: jscript; title: ; notranslate">

$(&quot;body&quot;).fixPng( &quot;images/null.gif&quot;, &quot;class&quot;, &quot;nofixpng&quot; );
</pre>
<p><strong>Image that will not filter</strong></p>
<pre class="brush: xml; title: ; notranslate">

&lt;img src=&quot;img/imagem.png&quot; class=&quot;test nofixpng&quot; /&gt;
</pre>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="XWV9MWQD7PMLG">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypal.com/pt_BR/i/scr/pixel.gif" width="1" height="1"><br />
</form>
</p>
<h2>PORTUGUÊS</h2>
<p>Este plugin resolve os problemas de transparência em PNG no Internet Explorer 6.</p>
<p>Ele procura por todas as imagens e as coloca em background com um filtro de opacidade, substituindo a imagem original por um gif transparente de 1px.</p>
<h3>Como usar</h3>
<pre class="brush: jscript; title: ; notranslate">

&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery.js&quot;&gt;&lt;/script&gt;
 &lt;script type=&quot;text/javascript&quot; src=&quot;js/fixpng.js&quot;&gt;&lt;/script&gt;
 &lt;script type=&quot;text/javascript&quot;&gt;
 $(document).ready(function(){
 $(&quot;body&quot;).fixPng();
 });
 &lt;/script&gt;
</pre>
<p>O código de iserção das imagens é normal:</p>
<pre class="brush: xml; title: ; notranslate">

&lt;img src=&quot;img/imagem.png&quot; alt=&quot;png image&quot; /&gt;
</pre>
<h3>Opções</h3>
<pre class="brush: jscript; title: ; notranslate">

$(&quot;body&quot;).fixPng( [ string gif_file, string attr, string noreplace ] );
</pre>
<p><strong>gif_file</strong> &#8211; Se você for usar um gif diferente de &#8220;img/vazio.gif&#8221;, use esta opção para definir o caminho correto.</p>
<p><strong>attr</strong> &#8211; Se você não deseja aplicar o filtro em uma determinada imagem, use esta opção para definir o atributo da imagem que não terá o filtro. O padrão é o atributo &#8216;rel&#8217;.</p>
<p><strong>noreplace</strong> &#8211; O valor do atributo definido acima. O padrão é &#8216;noreplace&#8217;.</p>
<p>Exemplo</p>
<pre class="brush: jscript; title: ; notranslate">

$(&quot;body&quot;).fixPng( &quot;images/null.gif&quot;, &quot;class&quot;, &quot;nofixpng&quot; );
</pre>
<p><strong>Imagem que não terá o filtro</strong></p>
<pre class="brush: xml; title: ; notranslate">

&lt;img src=&quot;img/imagem.png&quot; class=&quot;test nofixpng&quot; /&gt;
</pre>
<p><a name="license">&nbsp;</a><br />
<h3>Licence/Licença</h3>
<p>This plugin is under <a href="http://www.gnu.org/licenses/gpl.html">GNU GENERAL PUBLIC LICENSE.</a></p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="XWV9MWQD7PMLG">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypal.com/pt_BR/i/scr/pixel.gif" width="1" height="1"><br />
</form>
</p>
<h3 class='related_post_title'>Posts Relacionados:</h3>
<ul class='related_post'>
<li><a href='http://blog.idealmind.com.br/javascript/fix-png-transparente-ie6/' title='Fix png transparente ie6'>Fix png transparente ie6</a></li>
</ul>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.idealmind.com.br/geral/fixpng-jquery-plugin-for-ie6/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Como criar um disco virtual</title>
		<link>http://blog.idealmind.com.br/geral/como-criar-um-disco-virtual/</link>
		<comments>http://blog.idealmind.com.br/geral/como-criar-um-disco-virtual/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 14:18:16 +0000</pubDate>
		<dc:creator>Wellington Ribeiro</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[como criar um disco virtual]]></category>
		<category><![CDATA[como criar um drive virtual]]></category>
		<category><![CDATA[como criar uma unidade de disco virtual]]></category>
		<category><![CDATA[disco virtual]]></category>
		<category><![CDATA[subst]]></category>
		<category><![CDATA[unidade de disco virtual]]></category>
		<category><![CDATA[virtual drive]]></category>

		<guid isPermaLink="false">http://blog.idealmind.com.br/sem-categoria/como-criar-um-disco-virtual/</guid>
		<description><![CDATA[Para criar um disco virtual a partir de um computador na rede, no windows, basta usar o comando: Iniciar -> Executar (ou na linha de comando CMD do windows) subst P: \\computador\pasta onde P: será o nome do disco virtual, e \\computador é o nome do computador na rede, e \pasta é a pasta compartilhada [...]]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p>Para criar um disco virtual a partir de um computador na rede, no windows, basta usar o comando:</p>
<p>Iniciar -> Executar (ou na linha de comando CMD do windows)<br />
subst P: \\computador\pasta</p>
<p>onde P: será o nome do disco virtual, e \\computador é o nome do computador na rede, e \pasta é a pasta compartilhada do computador.</p>
<p>A pasta obrigatoriamente deve estar compartilhada para que seja acessada remotamente.</p>
<p>How to create a virtual drive</p>
<p>To create a virtual drive from a shared computer on the network, you need to use this command:</p>
<p>Start -> Run<br />
subst P: \\computer\folder</p>
<p>where P: is the name of the virtual drive created, and \\computer\folder is the shared folder from a pc on the network.<br />
<h3 class='related_post_title'>Posts Relacionados:</h3>
<ul class='related_post'>
<li>Nenhum</li>
</ul>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.idealmind.com.br/geral/como-criar-um-disco-virtual/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple AutoComplete JQuery Plugin</title>
		<link>http://blog.idealmind.com.br/geral/simple-autocomplete-jquery-plugin/</link>
		<comments>http://blog.idealmind.com.br/geral/simple-autocomplete-jquery-plugin/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 17:38:05 +0000</pubDate>
		<dc:creator>Wellington Ribeiro</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[auto]]></category>
		<category><![CDATA[autocompletar]]></category>
		<category><![CDATA[autocomplete ajax]]></category>
		<category><![CDATA[autocomplete html]]></category>
		<category><![CDATA[autocomplete javascript]]></category>
		<category><![CDATA[autocomplete jquery plugin]]></category>
		<category><![CDATA[autocomplete php]]></category>
		<category><![CDATA[autosuggest]]></category>
		<category><![CDATA[autosuggest jquery]]></category>
		<category><![CDATA[autosuggest jquery plugin]]></category>
		<category><![CDATA[autosuggest plugin]]></category>
		<category><![CDATA[combobox autocomplete]]></category>
		<category><![CDATA[input autocomplete]]></category>
		<category><![CDATA[javascript autocomplete]]></category>
		<category><![CDATA[simple autocomplete]]></category>

		<guid isPermaLink="false">http://blog.idealmind.com.br/?p=272</guid>
		<description><![CDATA[Simple AutoCompletes allows you easily add custom autocompletes on your site - permite você inserir autocompletes facilmente em seu site.]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><h2>DOWNLOAD</h2>
<p><a href="http://blog.idealmind.com.br/exemplos/simpleautocomplete/simpleautocomplete.rar"></p>
<p>http://blog.idealmind.com.br/exemplos/simpleautocomplete/simpleautocomplete.rar</p>
<p></a></p>
<h2>DEMO</h2>
<p><a href="http://blog.idealmind.com.br/exemplos/simpleautocomplete/"></p>
<p>http://blog.idealmind.com.br/exemplos/simpleautocomplete/</p>
<p></a></p>
<h2>ENGLISH</h2>
<p><a href="http://blog.idealmind.com.br/wp-content/uploads/2010/03/screenshot.jpg"><img class="size-medium wp-image-273 alignright" style="margin: 10px;" title="screenshot" src="http://blog.idealmind.com.br/wp-content/uploads/2010/03/screenshot-260x300.jpg" alt="Simple AutoComplete JQuery Plugin screenshot" width="260" height="300" /></a></p>
<p>The Simple JQuery AutoComplete Plugin allows you to add autocomplete functionality easily in text fields on your site.</p>
<p>It also has resources to bring other data in the autocomplete list, as the id of the element, performing a callback function to store these data in other inputs.</p>
<p>You can also:<br />
* Use multiple autocomplete on the same page<br />
* Pass an extra parameter to filter the results of a sql query<br />
* Stylize each autocomplete in different ways.<br />
<a name="documentation"></a></p>
<h3>How to use it</h3>
<p>To use the Simple AutoComplete JQuery Plugin is very easy. Just use the syntax:</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;simpleautocomplete.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
	$(document).ready(function(){
		$(&quot;#input_fied_id&quot;).simpleAutoComplete(&quot;query_processor.php&quot;);
	});
&lt;/script&gt;
</pre>
<p>Enter the css that will be used to style the auto complete:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;simpleAutoComplete.css&quot; /&gt;
</pre>
<p>And the field that will run the autocomplete:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;input type=&quot;text&quot; id=&quot;input_fied_id&quot; name=&quot;estado&quot; /&gt;
</pre>
<h3>Optional Features:</h3>
<h4>Callback Function</h4>
<p>You can use a callback function that will be performed by selecting an autocomplete item, bringing extra data.</p>
<p>To do it, use the syntax:</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
	$(document).ready(function(){
		$(&quot;#input_fied_id&quot;).simpleAutoComplete(&quot;query_processor.php&quot;,null,callbackfunctionName);
	});

	// And create a callbackfunction
	function callbackfunctionName( par )
	{
		$(&quot;#id_estado&quot;).val( par[0] );
	}
&lt;/script&gt;
</pre>
<p>The variable &#8216;par&#8217; is a vector with additional data brought by the query for each item (stored in an attribute of the item).</p>
<p>The callback is useful for you to bring other data beyond what appears in the autocomplete, as the id of an autocomplete option, or any other data (see the demo that illustrates this feature) to be returned by the file that runs the query, and store it in the input &#8220;id_estado&#8221; (you can bring as many parameters as you want, and store them in different fields).</p>
<h4>Optional parameters</h4>
<p>You can use the optional parameters to add more detail and customize each autocomplete.</p>
<p><strong>identifier</strong> : to enable the file (eg php) that will process the query to identify which query is processed, and to identify an autocomplete on a page that has more than one autocomplete.</p>
<p><strong>autoCompleteClassName</strong> : if you want to use a custom css class name (default &#8216;autocomplete&#8217;). This is useful to avoid conflicts, or if you want to style each autocomplete differently.</p>
<p><strong>selectedClassName </strong>: has the same purpose autoCompleteClassName, but applies for the pre-selected autocomplete item, eg, on mouse over (default &#8216;sel&#8217;).</p>
<p><strong>attrCallBack </strong>: if you want to store the parameters that will be passed to the callback function in other list attribute (default &#8216;rel&#8217;).</p>
<p><strong>extraParamFromInput </strong>: useful if you want to pass an additional parameter to the query, in order to filter the results. This value must be one input field (this way the value can be variable).</p>
<h4>Compatibility</h4>
<p>Simple AutoComplete version 1.1.0  has been tested, exhibiting the same behavior in the following browsers: IE6, IE7, IE8, Safari, Chrome and Firefox.</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="XWV9MWQD7PMLG">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypal.com/pt_BR/i/scr/pixel.gif" width="1" height="1"><br />
</form>
</p>
<h2>PORTUGUÊS</h2>
<p>Hoje eu criei um novo sistema autocomplete, para substituir o antigo que estava tento bugs no IE. Este autocomplete é um plugin JQuery, fácil de integrar e customizar.</p>
<p><a href="http://blog.idealmind.com.br/wp-content/uploads/2010/03/screenshot.jpg"><img class="size-medium wp-image-273 alignright" style="margin: 10px;" title="screenshot" src="http://blog.idealmind.com.br/wp-content/uploads/2010/03/screenshot-260x300.jpg" alt="Simple AutoComplete JQuery Plugin screenshot" width="260" height="300" /></a></p>
<p>O Simple AutoComplete JQuery Plugin permite que você adicione a funcionalidade de autocomplete facilmente em campos de texto do seu site.</p>
<p>Ele também possui recursos para trazer outros dados na lista do autocomplete, como o id do elemento, executando uma função de callback para armazenar estes dados em outros inputs.</p>
<p>Você ainda pode:<br />
* utilizar vários autocompletes numa mesma página<br />
* passar um parâmetro extra para filtrar os resultados de uma consulta sql<br />
* estilizar cada autocomplete de maneiras diferentes.<br />
<a name="documentation"></a></p>
<h3>Como usar</h3>
<p>Para usar o Simple AutoComplete JQuery Plugin é muito fácil. Basta usar a sintaxe:</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;simpleautocomplete.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
	$(document).ready(function(){
		$(&quot;#input_fied_id&quot;).simpleAutoComplete(&quot;query_processor.php&quot;);
	});
&lt;/script&gt;
</pre>
<p>Insira o css que será usado para estilizar o auto complete:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;simpleAutoComplete.css&quot; /&gt;
</pre>
<p>E o campo que será executado o autocomplete:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;input type=&quot;text&quot; id=&quot;input_fied_id&quot; name=&quot;estado&quot; /&gt;
</pre>
<h3>Recursos opcionais:</h3>
<h4>Função de Callback</h4>
<p>Você pode utilizar uma função de callback, que será executada ao selecionar um item do autocomplete, trazendo dados extras.</p>
<p>Para isso, utilize a sintaxe:</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
	$(document).ready(function(){
		$(&quot;#input_fied_id&quot;).simpleAutoComplete(&quot;query_processor.php&quot;,null,callbackfunction);
	});

	// E crie a função de callback
	function callbackfunction( par )
	{
		$(&quot;#id_estado&quot;).val( par[0] );
	}
&lt;/script&gt;
</pre>
<p>A variável &#8216;par&#8217; é um vetor com dados adicionais trazidos pela consulta para cada item (armazenados em um atributo do item).</p>
<p>O callback é util para você trazer outros dados além do que aparecerá no autocomplete, como o id de uma opção do autocomplete, ou qualquer outro dado (veja o demo que exemplifica esta funcionalidade), que será retornado pelo arquivo que executará a consulta, e armazenar no input &#8220;id_estado&#8221; (você pode trazer quantos parâmetros quiser, e armazená-los em campos diferentes).</p>
<h4>Parâmetros opcionais</h4>
<p>Você pode utilizar os parâmetros opcionais para adicionar mais detalhes e personalizar cada autocomplete.</p>
<p>São eles:</p>
<p><strong>identifier</strong> : útil para que o arquivo (php por exemplo) que processará a consulta possa identificar qual consulta será processada, e para identificar um autocomplete numa página que tenha mais de um autocomplete.</p>
<p><strong>autoCompleteClassName</strong> : caso você queira utilizar um nome de classe css diferente da padrão (padrão &#8216;autocomplete&#8217;). Isso é útil para evitar conflitos, ou caso você queira estilizar diferentemente vários autocompletes.</p>
<p><strong>selectedClassName </strong>: tem o mesmo propósito de autoCompleteClassName, porém se aplica à opção pré-selecionada dos resultados do autocomplete (padrão &#8216;sel&#8217;).</p>
<p><strong>attrCallBack </strong>: caso você queira que os parâmetros que serão passados para a função de callback sejam armazenados em um atributo diferente do padrão, que é &#8216;rel&#8217;.</p>
<p><strong>extraParamFromInput </strong>: útil caso você queira passar um parâmetro adicional à consulta, com o intuito de filtrar os resultados. Este valor deve estar em um campo input (desta forma o valor pode ser variável).</p>
<h4>Compatibilidade</h4>
<p>O Plugin simpleAutoComplete foi testado apresentando o mesmo comportamento, nos seguintes navegadores: IE6, IE7, IE8, Safari, Chrome e Firefox.</p>
<p><a name="license"></a></p>
<h3>Licence</h3>
<p>This plugin is under <a href="http://www.gnu.org/licenses/gpl.html">GNU GENERAL PUBLIC LICENSE</a>.</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="XWV9MWQD7PMLG">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypal.com/pt_BR/i/scr/pixel.gif" width="1" height="1"><br />
</form>
</p>
<h3 class='related_post_title'>Posts Relacionados:</h3>
<ul class='related_post'>
<li><a href='http://blog.idealmind.com.br/javascript/jquery-autocomplete-em-ajax-com-php-e-mysql/' title='JQuery autocomplete em ajax com php e mysql'>JQuery autocomplete em ajax com php e mysql</a></li>
</ul>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.idealmind.com.br/geral/simple-autocomplete-jquery-plugin/feed/</wfw:commentRss>
		<slash:comments>86</slash:comments>
		</item>
	</channel>
</rss>

