<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2enclosuresfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>WillianFernandes.com.br</title>
	
	<link>http://willianfernandes.com.br</link>
	<description>Blog pessoal onde compartilho minhas experiências com desenvolvimento web</description>
	<pubDate>Wed, 24 Jun 2009 18:02:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<itunes:explicit>no</itunes:explicit><itunes:subtitle>Blog pessoal onde compartilho minhas experiências com desenvolvimento web</itunes:subtitle><geo:lat>-46.65206</geo:lat><geo:long>-23.56859</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/willian" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Novos rumos, ou não…</title>
		<link>http://feedproxy.google.com/~r/willian/~3/neO-wppe4Mc/</link>
		<comments>http://willianfernandes.com.br/novos-rumos-ou-nao/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 18:02:45 +0000</pubDate>
		<dc:creator>Willian Fernandes</dc:creator>
		
		<category><![CDATA[carreira]]></category>

		<category><![CDATA[webco]]></category>

		<guid isPermaLink="false">http://willianfernandes.com.br/?p=87</guid>
		<description><![CDATA[2008 foi um ano fenomenal!
Pude participar de um puta time enquanto fiz parte da WebCo, um lugar onde adorei trabalhar. Nesse pouco mais de um ano que estive com eles aprendi muito e me diverti mais ainda. Obrigado galera, vocês são fodas!!!
Assim como o Lucas Húngaro, as mudanças que ocorrem com a WebCo me fizeram [...]]]></description>
			<content:encoded><![CDATA[<p>2008 foi um ano fenomenal!</p>
<p>Pude participar de um puta time enquanto fiz parte da WebCo, um lugar onde adorei trabalhar. Nesse pouco mais de um ano que estive com eles aprendi muito e me diverti mais ainda. <strong>Obrigado galera, vocês são fodas!!!</strong></p>
<p><a href="http://www.makemesimple.com/blog/2009/06/23/sobre-mudancas/">Assim como o Lucas Húngaro</a>, as mudanças que ocorrem com a WebCo me fizeram repensar meu papel na empresa e resolvi mudar de rumo, respirar novos desafios.</p>
<p>Voltei para a <a href="http://visie.com.br">Visie</a>, um lugar bem legal, com gente bacana e com vontade de trabalhar. Mas desta vez estou como Gerente de Desenvolvedores, ajudando o pessoal a implantar coisas bem bacanas, como: <a href="http://sledge.boo-box.com/list/page/U2NydW0rYWdpbGUreHBfIyNfYm94XyMjX3RhZ2dpbmctdG9vbF8jI184Njc=-60" class="bbli">Scrum<img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /></a>, migrar de <a href="http://sledge.boo-box.com/list/page/U3VidmVyc2lvbl8jI19ib3hfIyNfdGFnZ2luZy10b29sXyMjXzg2Nw==-56" class="bbli">Subversion<img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /></a> para Git, <a href="http://sledge.boo-box.com/list/page/WFArYWdpbGVfIyNfYm94XyMjX3RhZ2dpbmctdG9vbF8jI184Njc=-52" class="bbli">Pair Programming<img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /></a>, <a href="http://sledge.boo-box.com/list/page/UnVieStvbitSYWlsc18jI19ib3hfIyNfdGFnZ2luZy10b29sXyMjXzg2Nw==-60" class="bbli">Ruby on Rails<img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /></a>, Integração Contínua, <a href="http://sledge.boo-box.com/list/page/VGVzdGUrZGUrU29mdHdhcmVfIyNfYm94XyMjX3RhZ2dpbmctdG9vbF8jI184Njc=-64" class="bbli">Testes<img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /></a>.</p>
<p>Está sendo uma experiência legal, muito diferente do que eu estava acostumado até então.</p>
<p>Valeu pessoal da WebCo, vivi bons momentos com vocês, momentos que jamais esquecerei&#8230;<br />
(sim, como o Lucas se declarou, fiquei com invejinha e me declarei também) <img src='http://willianfernandes.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/willian?a=neO-wppe4Mc:EoaUiH70i9w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/willian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=neO-wppe4Mc:EoaUiH70i9w:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/willian?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=neO-wppe4Mc:EoaUiH70i9w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/willian?i=neO-wppe4Mc:EoaUiH70i9w:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=neO-wppe4Mc:EoaUiH70i9w:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/willian?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://willianfernandes.com.br/novos-rumos-ou-nao/feed/</wfw:commentRss>
		<feedburner:origLink>http://willianfernandes.com.br/novos-rumos-ou-nao/</feedburner:origLink></item>
		<item>
		<title>Novo Servidor</title>
		<link>http://feedproxy.google.com/~r/willian/~3/fYi9b1I_kD4/</link>
		<comments>http://willianfernandes.com.br/novo-servidor/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 16:22:18 +0000</pubDate>
		<dc:creator>Willian Fernandes</dc:creator>
		
		<category><![CDATA[blog]]></category>

		<category><![CDATA[locaweb]]></category>

		<guid isPermaLink="false">http://willianfernandes.com.br/novo-servidor/</guid>
		<description><![CDATA[O blog esteve fora do ar por alguns minutos devido à mudança de servidor que fiz.
Estou usando o serviço de Cloud da Locaweb e por enquanto estou gostando.
Agora tudo deve voltar ao normal!  
]]></description>
			<content:encoded><![CDATA[<p>O blog esteve fora do ar por alguns minutos devido à mudança de servidor que fiz.</p>
<p>Estou usando o serviço de Cloud da Locaweb e por enquanto estou gostando.</p>
<p>Agora tudo deve voltar ao normal! <img src='http://willianfernandes.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/willian?a=fYi9b1I_kD4:PQaQg5UULtA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/willian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=fYi9b1I_kD4:PQaQg5UULtA:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/willian?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=fYi9b1I_kD4:PQaQg5UULtA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/willian?i=fYi9b1I_kD4:PQaQg5UULtA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=fYi9b1I_kD4:PQaQg5UULtA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/willian?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://willianfernandes.com.br/novo-servidor/feed/</wfw:commentRss>
		<feedburner:origLink>http://willianfernandes.com.br/novo-servidor/</feedburner:origLink></item>
		<item>
		<title>Morte ao IE6</title>
		<link>http://feedproxy.google.com/~r/willian/~3/Xtoo5fDgreM/</link>
		<comments>http://willianfernandes.com.br/morte-ao-ie6/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 12:55:15 +0000</pubDate>
		<dc:creator>Willian Fernandes</dc:creator>
		
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://willianfernandes.com.br/?p=80</guid>
		<description><![CDATA[Recebi o convite do DGmike e resolvi participar desta campanha.
O objetivo da campanha é tirar o Internet Explorer 6 do mercado de navegadores.
Acabei de inserir o script do iMaster neste blog e convido os desenvolvedores abaixo para participarem também:

Guilherme Rambo
Diego Eis
Manoel Netto
Tino Gomes
Luiz Rocha

]]></description>
			<content:encoded><![CDATA[<p>Recebi o <a href="http://dgmike.com.br/2009/02/ie6-time-to-die/">convite do DGmike</a> e resolvi participar desta campanha.</p>
<p>O objetivo da campanha é tirar o Internet Explorer 6 do mercado de navegadores.</p>
<p>Acabei de inserir o <a href="http://imasters.uol.com.br/crossbrowser/pt-br/">script do iMaster</a> neste blog e convido os desenvolvedores abaixo para participarem também:</p>
<ul>
<li><a href="http://www.screencaster.com.br/">Guilherme Rambo</a></li>
<li><a href="http://www.tableless.com.br/">Diego Eis</a></li>
<li><a href="http://tecnocracia.com.br/">Manoel Netto</a></li>
<li><a href="http://blog.tinogomes.com/">Tino Gomes</a></li>
<li><a href="http://lsdr.net/blog/">Luiz Rocha</a></li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/willian?a=Xtoo5fDgreM:UfV0mISn0Pg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/willian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=Xtoo5fDgreM:UfV0mISn0Pg:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/willian?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=Xtoo5fDgreM:UfV0mISn0Pg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/willian?i=Xtoo5fDgreM:UfV0mISn0Pg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=Xtoo5fDgreM:UfV0mISn0Pg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/willian?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://willianfernandes.com.br/morte-ao-ie6/feed/</wfw:commentRss>
		<feedburner:origLink>http://willianfernandes.com.br/morte-ao-ie6/</feedburner:origLink></item>
		<item>
		<title>Ensinando uma Criança a Poupar Dinheiro</title>
		<link>http://feedproxy.google.com/~r/willian/~3/Ykhu3_iqWTM/</link>
		<comments>http://willianfernandes.com.br/ensinando-uma-crianca-a-poupar-dinheiro/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 01:13:26 +0000</pubDate>
		<dc:creator>Willian Fernandes</dc:creator>
		
		<category><![CDATA[investimento]]></category>

		<category><![CDATA[willian]]></category>

		<category><![CDATA[investimento rendimento jovem]]></category>

		<guid isPermaLink="false">http://willianfernandes.com.br/?p=78</guid>
		<description><![CDATA[Sábado estava lendo alguns posts no Dinheirama e tive uma idéia. Na verdade não sei se a idéia é 100% minha ou se ouvi/li em algum lugar.
Tenho um irmão de 13 anos e sugeri a simples idéia para minha mãe:

Meu irmão guardará dinheiro em um cofre todo mês;
Meus pais definirão um valor de juros que [...]]]></description>
			<content:encoded><![CDATA[<p>Sábado estava lendo alguns posts no <a href="http://dinheirama.com/">Dinheirama</a> e tive uma idéia. Na verdade não sei se a idéia é 100% minha ou se ouvi/li em algum lugar.</p>
<p>Tenho um irmão de 13 anos e sugeri a simples idéia para minha mãe:</p>
<ol>
<li>Meu irmão guardará dinheiro em um cofre todo mês;</li>
<li>Meus pais definirão um valor de juros que será rendido nesse &#8220;poupança&#8221; todo mês, por exemplo, 10%;</li>
<li>Todo final do mês meus pais contarão o dinheiro e somarão à ele o valor dos juros (VALOR * 0,1%).</li>
</ol>
<p>Essa é uma maneira interessante de ensinar meu irmão que poupar dinheiro trará bons frutos no futuro.</p>
<p>A brincadeira pode ficar um pouco mais interessante se no começo for definido um &#8220;prazo limite&#8221; para ele &#8220;sacar&#8221; o dinheiro investido. Assim meus pais poderão cobrar juros caso ele resolva sacar antes do tempo, por exemplo:</p>
<ul>
<li>10% de juros se for sacado 6 meses antes do prazo final;</li>
<li>5% de juros se for sacado de 3 meses antes do prazo final.</li>
</ul>
<p>Com isso simularemos o Imposto de Renda.</p>
<p>Essa é apenas uma idéia, vai de você aprimorá-la e deixá-la mais interessante e divertida.</p>
<p>Já fez algo do tipo? Comente dizendo como foi!<br />
Se tiver novas idéias, comente também!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/willian?a=Ykhu3_iqWTM:kO3G_gjiHi0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/willian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=Ykhu3_iqWTM:kO3G_gjiHi0:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/willian?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=Ykhu3_iqWTM:kO3G_gjiHi0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/willian?i=Ykhu3_iqWTM:kO3G_gjiHi0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=Ykhu3_iqWTM:kO3G_gjiHi0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/willian?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://willianfernandes.com.br/ensinando-uma-crianca-a-poupar-dinheiro/feed/</wfw:commentRss>
		<feedburner:origLink>http://willianfernandes.com.br/ensinando-uma-crianca-a-poupar-dinheiro/</feedburner:origLink></item>
		<item>
		<title>Novo BlogBlogs!</title>
		<link>http://feedproxy.google.com/~r/willian/~3/jWRHNyeyO4w/</link>
		<comments>http://willianfernandes.com.br/novo-blogblogs/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 16:40:57 +0000</pubDate>
		<dc:creator>Willian Fernandes</dc:creator>
		
		<category><![CDATA[internet]]></category>

		<category><![CDATA[webco blogblogs]]></category>

		<guid isPermaLink="false">http://willianfernandes.com.br/?p=76</guid>
		<description><![CDATA[Acaba de estrear a nova cara do BlogBlogs!
Um projeto que tenho muito orgulho de participar. Foi difícil, muita coisa para fazer, mas o esforço valeu a pena!
Nós da WebCo trabalhamos meses para melhorar o site e agora é a vez dos usuários nos ajudarem, pois o trabalho continua.
Mais alguns dias de trabalho serão necessários para [...]]]></description>
			<content:encoded><![CDATA[<p>Acaba de estrear a nova cara do <a href="http://blogblogs.com.br">BlogBlogs</a>!</p>
<p>Um projeto que tenho muito orgulho de participar. Foi difícil, muita coisa para fazer, mas o esforço valeu a pena!</p>
<p>Nós da <a href="http://www.webcointernet.com/">WebCo</a> trabalhamos meses para melhorar o site e agora é a vez dos usuários nos ajudarem, pois o trabalho continua.</p>
<p>Mais alguns dias de trabalho serão necessários para colocar tudo em ordem e implementar novidades. E contamos com a ajuda dos usuários para seguirmos o caminho certo.</p>
<p>Quer ajudar? Entre no novo <a href="http://blogblogs.com.br">BlogBlogs</a> e dê sua sugestão. Ou comente aqui!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/willian?a=jWRHNyeyO4w:1ehujrVCUJs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/willian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=jWRHNyeyO4w:1ehujrVCUJs:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/willian?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=jWRHNyeyO4w:1ehujrVCUJs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/willian?i=jWRHNyeyO4w:1ehujrVCUJs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=jWRHNyeyO4w:1ehujrVCUJs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/willian?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://willianfernandes.com.br/novo-blogblogs/feed/</wfw:commentRss>
		<feedburner:origLink>http://willianfernandes.com.br/novo-blogblogs/</feedburner:origLink></item>
		<item>
		<title>Validação de Formulários com jQuery</title>
		<link>http://feedproxy.google.com/~r/willian/~3/CcrFmKAhpm4/</link>
		<comments>http://willianfernandes.com.br/validacao-de-formularios-com-jquery/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 11:51:33 +0000</pubDate>
		<dc:creator>Willian Fernandes</dc:creator>
		
		<category><![CDATA[client-side]]></category>

		<category><![CDATA[desenvolvimento]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[jquery]]></category>

		<category><![CDATA[formulários]]></category>

		<category><![CDATA[validação]]></category>

		<guid isPermaLink="false">http://willianfernandes.com.br/?p=48</guid>
		<description><![CDATA[Não é difícil fazer validações de formulários no lado do cliente usando JavaScript. E com jQuery a brincadeira fica ainda mais fácil.
A primeira coisa a fazer é baixar o jQuery: http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js
Renomei o arquivo para jquery.js.
Depois precisaremos baixar o plugin de validação, feito em jQuery: http://jquery.bassistance.de/validate/jquery.validate.zip
Descompacte o zip. Utilizaremos apenas o arquivo jquery.validate.js.
Agora vamos ao código!
O [...]]]></description>
			<content:encoded><![CDATA[<p>Não é difícil fazer validações de formulários no lado do cliente usando JavaScript. E com <a href="http://jquery.com/" rel="external">jQuery</a> a brincadeira fica ainda mais fácil.</p>
<p>A primeira coisa a fazer é baixar o <a href="http://jquery.com/" rel="external">jQuery</a>: <a href="http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js" rel="external">http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js</a><br />
Renomei o arquivo para <strong>jquery.js</strong>.</p>
<p>Depois precisaremos baixar o <a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/" rel="external">plugin de validação</a>, feito em jQuery: <a href="http://jquery.bassistance.de/validate/jquery.validate.zip" rel="external">http://jquery.bassistance.de/validate/jquery.validate.zip</a><br />
Descompacte o zip. Utilizaremos apenas o arquivo <strong>jquery.validate.js</strong>.</p>
<p>Agora vamos ao código!</p>
<h3>O Formulário</h3>
<pre class="html4strict"><code><span class="sc2"><span class="kw2">&lt;form</span> <span class="kw3">id</span>=<span class="st0">&quot;form-signup&quot;</span> <span class="kw3">action</span>=<span class="st0">&quot;#&quot;</span> <span class="kw3">method</span>=<span class="st0">&quot;post&quot;</span> <span class="kw3">accept-charset</span>=<span class="st0">&quot;utf-8&quot;</span><span class="kw2">&gt;</span></span>
    <span class="sc2"><span class="kw2">&lt;fieldset&gt;</span></span>
        <span class="sc2"><span class="kw2">&lt;legend&gt;</span></span>Formulário de Cadastro<span class="sc2"><span class="kw2">&lt;/legend&gt;</span></span>
        <span class="sc2"><span class="kw2">&lt;label&gt;</span></span>
            Nome:
            <span class="sc2"><span class="kw2">&lt;input</span> <span class="kw3">type</span>=<span class="st0">&quot;text&quot;</span> <span class="kw3">name</span>=<span class="st0">&quot;nome&quot;</span> /<span class="kw2">&gt;</span></span>
        <span class="sc2"><span class="kw2">&lt;/label&gt;</span></span>
        <span class="sc2"><span class="kw2">&lt;label&gt;</span></span>
            E-mail:
            <span class="sc2"><span class="kw2">&lt;input</span> <span class="kw3">type</span>=<span class="st0">&quot;text&quot;</span> <span class="kw3">name</span>=<span class="st0">&quot;email&quot;</span> /<span class="kw2">&gt;</span></span>
        <span class="sc2"><span class="kw2">&lt;/label&gt;</span></span>
        <span class="sc2"><span class="kw2">&lt;label&gt;</span></span>
            Sexo:
            <span class="sc2"><span class="kw2">&lt;select</span> <span class="kw3">name</span>=<span class="st0">&quot;sexo&quot;</span><span class="kw2">&gt;</span></span>
                <span class="sc2"><span class="kw2">&lt;option</span> <span class="kw3">value</span>=<span class="st0">&quot;&quot;</span><span class="kw2">&gt;</span></span>Selecione<span class="sc2"><span class="kw2">&lt;/option&gt;</span></span>
                <span class="sc2"><span class="kw2">&lt;option</span> <span class="kw3">value</span>=<span class="st0">&quot;F&quot;</span><span class="kw2">&gt;</span></span>Feminino<span class="sc2"><span class="kw2">&lt;/option&gt;</span></span>
                <span class="sc2"><span class="kw2">&lt;option</span> <span class="kw3">value</span>=<span class="st0">&quot;M&quot;</span><span class="kw2">&gt;</span></span>Masculino<span class="sc2"><span class="kw2">&lt;/option&gt;</span></span>
            <span class="sc2"><span class="kw2">&lt;/select&gt;</span></span>
        <span class="sc2"><span class="kw2">&lt;/label&gt;</span></span>
        <span class="sc2"><span class="kw2">&lt;input</span> <span class="kw3">type</span>=<span class="st0">&quot;submit&quot;</span> <span class="kw3">value</span>=<span class="st0">&quot;Cadastrar&quot;</span> /<span class="kw2">&gt;</span></span>
    <span class="sc2"><span class="kw2">&lt;/fieldset&gt;</span></span>
<span class="sc2"><span class="kw2">&lt;/form&gt;</span></span></code></pre>
<h3>A Validação JavaScript</h3>
<pre class="javascript"><code><span class="co1">// Inicia o validador ao carregar a página</span>
$<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
    <span class="co1">// valida o formulário</span>
    $<span class="br0">&#40;</span><span class="st0">'#form-signup'</span><span class="br0">&#41;</span>.<span class="me1">validate</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
        <span class="co1">// define regras para os campos</span>
        rules: <span class="br0">&#123;</span>
            nome: <span class="br0">&#123;</span>
                required: <span class="kw2">true</span>,
                minlength: <span class="nu0">2</span>
            <span class="br0">&#125;</span>,
            email: <span class="br0">&#123;</span>
                required: <span class="kw2">true</span>,
                email: <span class="kw2">true</span>
            <span class="br0">&#125;</span>,
            sexo: <span class="br0">&#123;</span>
                required: <span class="kw2">true</span>
            <span class="br0">&#125;</span>
        <span class="br0">&#125;</span>,
        <span class="co1">// define messages para cada campo</span>
        messages: <span class="br0">&#123;</span>
            nome: <span class="st0">&quot;Preencha o seu nome&quot;</span>,
            email: <span class="st0">&quot;Preencha seu e-mail de contato&quot;</span>,
            sexo: <span class="st0">&quot;Informe seu sexo&quot;</span>
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span><span class="br0">&#41;</span>;
<span class="br0">&#125;</span><span class="br0">&#41;</span>;</code></pre>
<p><a href="http://willianfernandes.com.br/demos/validacao_jquery/form.html">Veja o exemplo!</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/willian?a=CcrFmKAhpm4:UpnzRbmCotI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/willian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=CcrFmKAhpm4:UpnzRbmCotI:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/willian?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=CcrFmKAhpm4:UpnzRbmCotI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/willian?i=CcrFmKAhpm4:UpnzRbmCotI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=CcrFmKAhpm4:UpnzRbmCotI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/willian?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://willianfernandes.com.br/validacao-de-formularios-com-jquery/feed/</wfw:commentRss>
		<enclosure url="http://jquery.bassistance.de/validate/jquery.validate.zip" length="280522" type="application/zip" /><media:content url="http://jquery.bassistance.de/validate/jquery.validate.zip" fileSize="280522" type="application/zip" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>Não é difícil fazer validações de formulários no lado do cliente usando JavaScript. E com jQuery a brincadeira fica ainda mais fácil. A primeira coisa a fazer é baixar o jQuery: http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js Renomei o arquivo pa</itunes:subtitle><itunes:summary>Não é difícil fazer validações de formulários no lado do cliente usando JavaScript. E com jQuery a brincadeira fica ainda mais fácil. A primeira coisa a fazer é baixar o jQuery: http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js Renomei o arquivo para jquery.js. Depois precisaremos baixar o plugin de validação, feito em jQuery: http://jquery.bassistance.de/validate/jquery.validate.zip Descompacte o zip. Utilizaremos apenas o arquivo jquery.validate.js. Agora vamos ao código! O [...]</itunes:summary><itunes:keywords>client-side, desenvolvimento, javascript, jquery, formulários, validação</itunes:keywords><feedburner:origLink>http://willianfernandes.com.br/validacao-de-formularios-com-jquery/</feedburner:origLink></item>
		<item>
		<title>Telefonica Volta a Exigir Assinatura de Provedor para Speedy</title>
		<link>http://feedproxy.google.com/~r/willian/~3/HhwOuv83tWI/</link>
		<comments>http://willianfernandes.com.br/telefonica-volta-a-exigir-assinatura-de-provedor-para-speedy/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 12:16:45 +0000</pubDate>
		<dc:creator>Willian Fernandes</dc:creator>
		
		<category><![CDATA[acesso]]></category>

		<category><![CDATA[internet]]></category>

		<category><![CDATA[speedy]]></category>

		<category><![CDATA[telefonica]]></category>

		<category><![CDATA[anatel]]></category>

		<guid isPermaLink="false">http://willianfernandes.com.br/?p=44</guid>
		<description><![CDATA[Faz um pouco mais de um ano, no dia 01/10/2007, que escrevi um post divulgando a notícia de que usuários do speedy não precisariam mais de provedores para utilizar o serviço de acesso à internet da Telefonica (Speedy).
Foi o juiz Marcelo Freiberger Zandavali que proibiu a Telefonica de exigir que usuários do Speedy contratassem provedores [...]]]></description>
			<content:encoded><![CDATA[<p>Faz um pouco mais de um ano, no dia 01/10/2007, que escrevi um <a href="http://willianfernandes.com.br/telefonica-deixa-de-exigir-assinatura-de-provedor-para-speedy/">post divulgando a notícia de que usuários do speedy não precisariam mais de provedores para utilizar o serviço de acesso à internet da Telefonica (Speedy)</a>.</p>
<p>Foi o juiz Marcelo Freiberger Zandavali que proibiu a Telefonica de exigir que usuários do Speedy contratassem provedores para utilizar o serviço. Ele considerou esse ato um caso de venda casada, que é proibido pelo Código de Defesa do Consumidor.</p>
<p>Mas, como vivemos no &#8220;País das Palhaçadas&#8221;, parece que a Anatel resolveu recorrer da decisão judicial desautorizando-a.</p>
<p><strong>Resumindo:</strong> <a href="http://gotchait.blogspot.com/2008/10/usurios-speedy-tm-at-o-dia-2110-para.html">quem é cliente Speedy está recebendo notificações da Telefonica exigindo que contratem um provedor até o dia 21/10/2008</a>.</p>
<p>Se você mora em uma cidade que tem alternativas ao Speedy (como NET Virtua, por exemplo) dê um pé na bunda da Telefonica e sinta-se livre de um provedor. <strong>#ficadica</strong></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/willian?a=HhwOuv83tWI:eLZVBoQhsBc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/willian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=HhwOuv83tWI:eLZVBoQhsBc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/willian?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=HhwOuv83tWI:eLZVBoQhsBc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/willian?i=HhwOuv83tWI:eLZVBoQhsBc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=HhwOuv83tWI:eLZVBoQhsBc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/willian?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://willianfernandes.com.br/telefonica-volta-a-exigir-assinatura-de-provedor-para-speedy/feed/</wfw:commentRss>
		<feedburner:origLink>http://willianfernandes.com.br/telefonica-volta-a-exigir-assinatura-de-provedor-para-speedy/</feedburner:origLink></item>
		<item>
		<title>Novo layout</title>
		<link>http://feedproxy.google.com/~r/willian/~3/vnK3o_bcepU/</link>
		<comments>http://willianfernandes.com.br/novo-layout/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 12:14:01 +0000</pubDate>
		<dc:creator>Willian Fernandes</dc:creator>
		
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://willianfernandes.com.br/?p=40</guid>
		<description><![CDATA[Ontem lancei o novo layout do blog, mas somente hoje publiquei este post porque ainda faltavam alguns detalhes para corrigir.
Finalmente fiz meu próprio tema para o Wordpress. Não sou designer, então me dê uma chance!  
O que tem de novo?

Nova sidebar, com a listagem dos últimos posts, Blogroll e uma área onde você pode [...]]]></description>
			<content:encoded><![CDATA[<p>Ontem lancei o novo layout do blog, mas somente hoje publiquei este post porque ainda faltavam alguns detalhes para corrigir.</p>
<p>Finalmente fiz meu próprio tema para o Wordpress. Não sou designer, então me dê uma chance! <img src='http://willianfernandes.com.br/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<h3>O que tem de novo?</h3>
<ul>
<li>Nova sidebar, com a listagem dos últimos posts, Blogroll e uma área onde você pode me achar na web;</li>
<li>Lista com todas as categorias e a quantidade de posts em cada uma delas;</li>
<li>Formulário de contato.</li>
</ul>
<h3>O que falta fazer?</h3>
<ul>
<li>Reorganizar todo o conteúdo (posts, categorias e tags dos posts);</li>
<li>Adicionar TagCloud na sidebar;</li>
<li>Atualizar os posts que contém exemplos códigos para não usar mais o plugin WP-Syntax (por vários motivos);</li>
<li>Terminar a série sobre desenvolvimento em Python para começar outra mais aprofundada. <img src='http://willianfernandes.com.br/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </li>
</ul>
<p>Caso alguma coisa dê pau, por favor, me avisem!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/willian?a=vnK3o_bcepU:Kzad-9Yzrr0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/willian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=vnK3o_bcepU:Kzad-9Yzrr0:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/willian?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=vnK3o_bcepU:Kzad-9Yzrr0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/willian?i=vnK3o_bcepU:Kzad-9Yzrr0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=vnK3o_bcepU:Kzad-9Yzrr0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/willian?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://willianfernandes.com.br/novo-layout/feed/</wfw:commentRss>
		<feedburner:origLink>http://willianfernandes.com.br/novo-layout/</feedburner:origLink></item>
		<item>
		<title>Brasigo, agora a festa vai começar!</title>
		<link>http://feedproxy.google.com/~r/willian/~3/gedHVc7uNek/</link>
		<comments>http://willianfernandes.com.br/brasigo-agora-a-festa-vai-comecar/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 19:20:14 +0000</pubDate>
		<dc:creator>Willian Fernandes</dc:creator>
		
		<category><![CDATA[desenvolvimento]]></category>

		<category><![CDATA[internet]]></category>

		<category><![CDATA[brasigo]]></category>

		<guid isPermaLink="false">http://willianfernandes.com.br/?p=38</guid>
		<description><![CDATA[Depois de muita correria, trabalho e diversão acabamos de colocar o Brasigo no ar. Esse foi um dos motivos que me fizeram, mais um vez, parar de postar aqui no blog.
Está sendo muito divertido e emocionante participar do nascimento desse projeto, minha primeira participação em um projeto Rails.
Agora vamos manter o sistema funcionando, criar novos [...]]]></description>
			<content:encoded><![CDATA[<p>Depois de muita correria, trabalho e diversão acabamos de colocar o <a href="http://brasigo.com.br">Brasigo</a> no ar. Esse foi um dos motivos que me fizeram, mais um vez, parar de postar aqui no blog.</p>
<p>Está sendo muito divertido e emocionante participar do nascimento desse projeto, minha primeira participação em um projeto <a href="http://rubyonrails.org">Rails</a>.</p>
<p>Agora vamos manter o sistema funcionando, criar novos releases e, com o tempo, os posts aqui no blog e a minha leitura no Google Reader (sim, está beeeem acumulada) voltarão ao normal.</p>
<p>Espero o feedback de vocês!<br />
 <img src='http://willianfernandes.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/willian?a=gedHVc7uNek:FURtCXAuYs8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/willian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=gedHVc7uNek:FURtCXAuYs8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/willian?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=gedHVc7uNek:FURtCXAuYs8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/willian?i=gedHVc7uNek:FURtCXAuYs8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=gedHVc7uNek:FURtCXAuYs8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/willian?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://willianfernandes.com.br/brasigo-agora-a-festa-vai-comecar/feed/</wfw:commentRss>
		<feedburner:origLink>http://willianfernandes.com.br/brasigo-agora-a-festa-vai-comecar/</feedburner:origLink></item>
		<item>
		<title>Desenvolvimento Web com Python, SQLObject e PSE - Parte 4</title>
		<link>http://feedproxy.google.com/~r/willian/~3/j9hj1_fRjEE/</link>
		<comments>http://willianfernandes.com.br/desenvolvimento-web-com-python-sqlobject-e-pse-parte-4/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 20:01:54 +0000</pubDate>
		<dc:creator>Willian Fernandes</dc:creator>
		
		<category><![CDATA[desenvolvimento]]></category>

		<category><![CDATA[internet]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://willianfernandes.com.br/desenvolvimento-web-com-python-sqlobject-e-pse-parte-4/</guid>
		<description><![CDATA[Depois de mais uma longa pausa na série de desenvolvimento web com python cá estou, de volta com os posts.
Mas desta vez a pausa foi por um motivo nobre. Recentemente adquiri um MacBook e logo resolvi configurar o Apache2 + mod_python + PSE + SQLObject + MySQL-python (MySQLdb). Precisava desta configuração para dar continuidade à [...]]]></description>
			<content:encoded><![CDATA[<p>Depois de mais uma longa pausa na série de desenvolvimento web com <a href="http://boo-box.com/link/aff:buscapeid/uid:4781/tags:python+livro" class="bbli">python<img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /></a> cá estou, de volta com os posts.</p>
<p>Mas desta vez a pausa foi por um motivo nobre. Recentemente adquiri um <a href="http://boo-box.com/link/aff:buscapeid/uid:4781/tags:Apple+Mac" class="bbli">MacBook<img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /></a> e logo resolvi configurar o <a href="http://boo-box.com/link/aff:buscapeid/uid:4781/tags:servidor+Apache+livro" class="bbli">Apache2<img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /></a> + <a href="http://www.modpython.org/">mod_python</a> + <a href="http://nick.borko.org/pse/">PSE</a> + <a href="http://www.sqlobject.org/">SQLObject</a> + <a href="http://mysql-python.sourceforge.net/">MySQL-python (MySQLdb)</a>. Precisava desta configuração para dar continuidade à série.</p>
<p>Então resolvi dedicar a 4ª parte da série exclusivamente para mostrar como configurar o ambiente no <a href="http://boo-box.com/link/aff:buscapeid/uid:4781/tags:Mac+OS+X+Leopard" class="bbli">Mac OS X Leopard<img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /></a>.</p>
<p>Antes de efetuar os passos abaixo você precisará do Xcode instalado. Basta executar o 2º Disco do MAC OS X e executar o pacote de instalação do Xcode.</p>
<h4>Apache</h4>
<p>O Apache já vem instalado no MAC OS X, por isso precisaremos apenas habilitá-lo:<br />
Vá em <strong>Preferências do Sistema</strong>, na opção <strong>Compartilhamento</strong> ative o serviço <strong>Compartilhamento Web</strong>.<br />
Agora basta acessar <a href="http://localhost">http://localhost</a> para ver o apache funcionando. Dentro do seu diretório <strong>home</strong> existe um diretório chamado <strong>Sites</strong>, basta colocar os arquivos lá e acessar pelo endereço <a href="http://localhost/~SEU_LOGIN">http://localhost/~SEU_LOGIN</a>.</p>
<h4>Mod_Python</h4>
<p>Agora chegou a hora de compilar o mod_python e configurá-lo no Apache.<br />
Primeiramente faça o <a href="http://www.apache.org/dist/httpd/modpython/mod_python-3.3.1.tgz">download do mod_python 3.3.1</a> (última versão disponível até a data deste post).</p>
<p>No terminal execute:</p>
<pre class="bash"><code>$ gunzip mod_python<span class="nu0">-3.3</span><span class="nu0">.1</span>.tgz
$ tar xvf mod_python<span class="nu0">-3.3</span><span class="nu0">.1</span>.tar
$ <span class="kw3">cd</span> mod_python<span class="nu0">-3.3</span><span class="nu0">.1</span>
$ ./configure --with-<span class="re2">apxs=</span>/usr/sbin/apxs</code></pre>
<p>Após executar os comandos acima o arquivo <strong>src/Makefile</strong> foi criado. Abra-o em seu editor de texto preferido e altere a linha 27:</p>
<pre class="bash"><code><span class="re2">LIBS=</span>-lm  -framework  Python    -ldl
<span class="re2">LDFLAGS=</span> -Wl,-framework,Python  -u _PyMac_Error -framework Python   -Wl,-F.
<span class="re2">OPT=</span></code></pre>
<p>por:</p>
<pre class="bash"><code><span class="re2">LIBS=</span>-lm  -framework  Python    -ldl
<span class="re2">LDFLAGS=</span> -Wl,-framework,Python  -u _PyMac_Error -framework Python   -Wl,-F. -arch x86_64
<span class="re2">OPT=</span></code></pre>
<p>Altere também a linha 49:</p>
<pre class="bash"><code>mod_python.so: $<span class="br0">&#40;</span>SRCS<span class="br0">&#41;</span>
    @<span class="kw3">echo</span>
    @<span class="kw3">echo</span> <span class="st0">'Compiling for DSO.'</span>
    @<span class="kw3">echo</span>
    $<span class="br0">&#40;</span>APXS<span class="br0">&#41;</span> $<span class="br0">&#40;</span>INCLUDES<span class="br0">&#41;</span> -c $<span class="br0">&#40;</span>SRCS<span class="br0">&#41;</span> $<span class="br0">&#40;</span>LDFLAGS<span class="br0">&#41;</span> $<span class="br0">&#40;</span>LIBS<span class="br0">&#41;</span>
    @rm -f mod_python.so
    @ln -s .libs/mod_python.so mod_python.so</code></pre>
<p>por:</p>
<pre class="bash"><code>mod_python.so: $<span class="br0">&#40;</span>SRCS<span class="br0">&#41;</span>
    @<span class="kw3">echo</span>
    @<span class="kw3">echo</span> <span class="st0">'Compiling for DSO.'</span>
    @<span class="kw3">echo</span>
    $<span class="br0">&#40;</span>APXS<span class="br0">&#41;</span> $<span class="br0">&#40;</span>INCLUDES<span class="br0">&#41;</span> -c -Wc,<span class="st0">&quot;-arch x86_64&quot;</span> $<span class="br0">&#40;</span>SRCS<span class="br0">&#41;</span> $<span class="br0">&#40;</span>LDFLAGS<span class="br0">&#41;</span> $<span class="br0">&#40;</span>LIBS<span class="br0">&#41;</span>
    @rm -f mod_python.so
    @ln -s .libs/mod_python.so mod_python.so</code></pre>
<p>Cuidado para não quebrar a indentação. O arquivo todo está indentado por TAB se você utilizar espaço dará erro na hora de rodar o <strong>make</strong>.<br />
Salve o arquivo e execute os comandos abaixo no terminal:</p>
<pre class="bash"><code>$ make
$ sudo make install</code></pre>
<p>Precisamos efetuar uma alteração no mod_python para que ele funcione corretamente no Apache. Para isso abra o arquivo $ <strong>/Library/Python/2.5/site-packages/mod_python/importer.py</strong> como root e troque a linha 304 por esta:</p>
<pre class="python"><code>        <span class="kw1">return</span> <span class="kw2">__import__</span><span class="br0">&#40;</span>module_name, <span class="br0">&#123;</span><span class="br0">&#125;</span>, <span class="br0">&#123;</span><span class="br0">&#125;</span><span class="br0">&#41;</span></code></pre>
<p>Agora precisamos habilitar o mod_python no apache, para isso abra o arquivo <strong>/etc/apache2/httpd.conf</strong> (você precisará abrir o arquivo como root) e adicione a linha abaixo após a linha 116 (pelo menos foi a linha do meu arquivo):</p>
<pre class="bash"><code>LoadModule python_module libexec/apache2/mod_python.so</code></pre>
<p>Pronto, agora é só reiniciar o Apache e o mod_python já estará configurado.</p>
<h4>PSE</h4>
<p><a href="http://nick.borko.org/pse/PSE-3.0.6.tar.gz">Baixe o PSE</a> e execute os comandos abaixo no terminal:</p>
<pre class="bash"><code>$ tar xvf PSE<span class="nu0">-3.0</span><span class="nu0">.6</span>.tar
$ <span class="kw3">cd</span> PSE<span class="nu0">-3.0</span><span class="nu0">.6</span>
$ sudo python setup.py install</code></pre>
<p>Agora vamos configurar o Apache para aceitar os arquivos escritos usando o PSE. Abra o arquivo <strong>/etc/apache2/httpd.conf</strong> e adicione as linhas abaixo no final do arquivo:</p>
<pre class="bash"><code>PythonHandler pse_handler
AddHandler python-program .pt</code></pre>
<p>Reinicie mais uma vez o Apache e crie dois arquivos de testes para ver se tudo está funcionando corretamente:<br />
<strong>teste.py</strong></p>
<pre class="python"><code>msg = <span class="st0">&quot;Hello World!&quot;</span></code></pre>
<p><strong>teste.pt</strong></p>
<pre class="php"><code><span class="kw2">&lt;?</span>= <span class="re0">msg</span> <span class="kw2">?&gt;</span></code></pre>
<p>Basta executar no navegador: <a href="http://localhost/teste.pt">http://localhost/teste.pt</a> ou <a href="http://localhost/~SEU_LOGIN/teste.pt">http://localhost/~SEU_LOGIN/teste.pt</a>.</p>
<h4>SQLObject</h4>
<p>Instalar o SQLObject é simples, basta executar no terminal:</p>
<pre class="bash"><code>$ sudo easy_install -U sqlobject</code></pre>
<h4>MySQLdb</h4>
<p>Instalar o MySQL-python exige uma pequena configuração. Primeiro <a href="http://osdn.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.2.tar.gz">baixe o arquivo</a> e execute no terminal:</p>
<pre class="bash"><code>$ tar xzvf MySQL-python<span class="nu0">-1.2</span><span class="nu0">.2</span>.tar.gz
$ <span class="kw3">cd</span> MySQL-python<span class="nu0">-1.2</span><span class="nu0">.2</span></code></pre>
<p>Abra o arquivo <strong>setup_posix.py</strong> e na linha 26 altere:</p>
<pre class="python"><code>mysql_config.<span class="me1">path</span> = <span class="st0">&quot;mysql_config&quot;</span></code></pre>
<p>por:</p>
<pre class="python"><code>mysql_config.<span class="me1">path</span> = <span class="st0">&quot;/usr/local/mysql/bin/mysql_config&quot;</span></code></pre>
<p>Agora abra o arquivo <strong>_mysql.c</strong> e remova as linhas 34, 37, 38 e 39:</p>
<pre class="c"><code><span class="co2">#else</span>
<span class="co2">#include &quot;my_config.h&quot;</span>
<span class="co2">#endif</span>
<span class="co2">#ifndef uint</span>
<span class="co2">#define uint unsigned int</span>
<span class="co2">#endif</span></code></pre>
<p>Também será preciso alterar as linhas 480 e 481:</p>
<pre class="c"><code>    uint port = MYSQL_PORT;
    uint client_flag = <span class="nu0">0</span>;</code></pre>
<p>por:</p>
<pre class="c"><code>    <span class="kw4">unsigned</span> port = MYSQL_PORT;
    <span class="kw4">unsigned</span> client_flag = <span class="nu0">0</span>;</code></pre>
<p>No terminal execute:</p>
<pre class="bash"><code>$ sudo ln -s /usr/<span class="kw3">local</span>/mysql/lib /usr/<span class="kw3">local</span>/mysql/lib/mysql
$ sudo python setup.py build
$ sudo python setup.py install</code></pre>
<p>Quando fizer o comando de <strong>sudo python setup.py build</strong> você poderá receber algumas mensagens de warning, ignore-as.</p>
<p>Para testar o SQLObject execute o script python abaixo:</p>
<pre class="python"><code><span class="kw1">from</span> sqlobject <span class="kw1">import</span> *
sqlhub.<span class="me1">processConnection</span> = connectionForURI<span class="br0">&#40;</span><span class="st0">'mysql://root:SUA_SENHA@localhost/test'</span><span class="br0">&#41;</span>
<span class="kw1">class</span> Usuario<span class="br0">&#40;</span>SQLObject<span class="br0">&#41;</span>:
    nome = StringCol<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp;
Usuario.<span class="me1">createTable</span><span class="br0">&#40;</span><span class="br0">&#41;</span></code></pre>
<p>Após executar o script acima a tabela usuario deverá existir no banco de dados test.</p>
<p>Se você tiver problemas para executar o SQLObject com MySQL verifique se a <a href="http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.51b-osx10.5-x86.dmg/from/http://mysql.cce.usp.br/">versão do MySQL instalada é a de 32bits</a>.</p>
<p>Pronto, o ambiente está completamente configurado no MAC OS X.</p>
<p>Agora voltaremos com nossa programação normal!<br />
 <img src='http://willianfernandes.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/willian?a=j9hj1_fRjEE:QwnFU_GvNrQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/willian?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=j9hj1_fRjEE:QwnFU_GvNrQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/willian?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=j9hj1_fRjEE:QwnFU_GvNrQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/willian?i=j9hj1_fRjEE:QwnFU_GvNrQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/willian?a=j9hj1_fRjEE:QwnFU_GvNrQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/willian?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://willianfernandes.com.br/desenvolvimento-web-com-python-sqlobject-e-pse-parte-4/feed/</wfw:commentRss>
		<enclosure url="http://www.apache.org/dist/httpd/modpython/mod_python-3.3.1.tgz" length="447954" type="application/x-tar" /><media:content url="http://www.apache.org/dist/httpd/modpython/mod_python-3.3.1.tgz" fileSize="447954" type="application/x-tar" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>Depois de mais uma longa pausa na série de desenvolvimento web com python cá estou, de volta com os posts. Mas desta vez a pausa foi por um motivo nobre. Recentemente adquiri um MacBook e logo resolvi configurar o Apache2 + mod_python + PSE + SQLObject + </itunes:subtitle><itunes:summary>Depois de mais uma longa pausa na série de desenvolvimento web com python cá estou, de volta com os posts. Mas desta vez a pausa foi por um motivo nobre. Recentemente adquiri um MacBook e logo resolvi configurar o Apache2 + mod_python + PSE + SQLObject + MySQL-python (MySQLdb). Precisava desta configuração para dar continuidade à [...]</itunes:summary><itunes:keywords>desenvolvimento, internet, python, web</itunes:keywords><feedburner:origLink>http://willianfernandes.com.br/desenvolvimento-web-com-python-sqlobject-e-pse-parte-4/</feedburner:origLink></item>
	<media:rating>nonadult</media:rating></channel>
</rss>
