<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.3" --><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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Jeveaux's Weblog</title>
	<link>http://www.jeveaux.com/blog</link>
	<description>Tudo certo e nada resolvido</description>
	<pubDate>Mon, 17 Nov 2008 23:49:17 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3</generator>
	<language>en</language>
			<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-nc-sa/2.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/jeveaux" type="application/rss+xml" /><feedburner:emailServiceId>934385</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.rojo.com/add-subscription?resource=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://blog.rojo.com/RojoWideRed.gif">Subscribe with Rojo</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/jeveaux" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://my.feedlounge.com/external/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://static.feedlounge.com/buttons/subscribe_0.gif">Subscribe with FeedLounge</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fjeveaux" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><item>
		<title>Aprendendo Erlang</title>
		<link>http://feeds.feedburner.com/~r/jeveaux/~3/456543985/</link>
		<comments>http://www.jeveaux.com/blog/2008/aprendendo-erlang/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 23:49:17 +0000</pubDate>
		<dc:creator>jeveaux</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Erlang]]></category>

		<guid isPermaLink="false">http://www.jeveaux.com/blog/2008/aprendendo-erlang/</guid>
		<description><![CDATA[Recentemente, revisando a coleção de livros notei que precisava melhorar os sabores da biblioteca. Pela primeira vez me assustei com a quantidade de livros de Java e os pouquinhos de Python, Ruby e Rails e alguns pobre coitados perdidos de várias outras linguagens tais como Pascal, PHP, C/C++, C# (sim, eu tenho), Assembly, além de [...]]]></description>
			<content:encoded><![CDATA[<p>Recentemente, revisando a coleção de livros notei que precisava melhorar os sabores da biblioteca. Pela primeira vez me assustei com a quantidade de livros de Java e os pouquinhos de Python, Ruby e Rails e alguns pobre coitados perdidos de várias outras linguagens tais como Pascal, PHP, C/C++, C# (sim, eu tenho), Assembly, além de alguns mais que prefiro nem comentar.</p>
<p>Elenquei então várias linguagens que já conhecia por alto ou que alguém comentou comigo, ou que li em blogs, etc, etc. Pensei em <a href="http://www.perl.org/" target="_blank">Perl</a>, <a href="http://clojure.org/" target="_blank">Clojure</a>, <a href="http://www.haskell.org/" target="_blank">Haskell</a>, <a href="http://pt.wikipedia.org/wiki/AWK" target="_blank">Awk</a> e <a href="http://www.erlang.org/">Erlang</a>. Fiquei muito tendencioso ao Perl e Erlang, não me perguntem o porque, mas foram as que me interessei logo de cara quando comecei a escolher coisas novas para aprender. Acabei escolhendo <a href="http://www.erlang.org/">Erlang</a> pela característica de programação paralela que é um assunto que tenho estudado também e já encomendei o meu <a href="http://www.pragprog.com/titles/jaerlang/programming-erlang" target="_blank">livro</a>, do Joe Armstrong.</p>
<p>É claro que ainda vou demorar a fazer <a href="http://vp.blog.br/" target="_blank">BDD com Erlang no Giraffas</a>, mas um dia chego lá. Espero muito em breve conseguir postar algo sobre meu aprendizado.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeveaux?a=RQOcN"><img src="http://feeds.feedburner.com/~f/jeveaux?i=RQOcN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=24OUN"><img src="http://feeds.feedburner.com/~f/jeveaux?i=24OUN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=nZQLn"><img src="http://feeds.feedburner.com/~f/jeveaux?i=nZQLn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=BvMpn"><img src="http://feeds.feedburner.com/~f/jeveaux?i=BvMpn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=SWUTn"><img src="http://feeds.feedburner.com/~f/jeveaux?i=SWUTn" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jeveaux/~4/456543985" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeveaux.com/blog/2008/aprendendo-erlang/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.jeveaux.com/blog/2008/aprendendo-erlang/</feedburner:origLink></item>
		<item>
		<title>Xvfb: Como usar o Selenium sem ter um X Server</title>
		<link>http://feeds.feedburner.com/~r/jeveaux/~3/449550904/</link>
		<comments>http://www.jeveaux.com/blog/2008/xvfb-como-usar-o-selenium-sem-ter-um-x-server/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 13:49:17 +0000</pubDate>
		<dc:creator>jeveaux</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Testes]]></category>

		<category><![CDATA[Selenium]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<category><![CDATA[X11]]></category>

		<guid isPermaLink="false">http://www.jeveaux.com/blog/2008/xvfb-como-usar-o-selenium-sem-ter-um-x-server/</guid>
		<description><![CDATA[Escrever testes com Selenium geralmente é uma tarefa que, ou é amada ou é odiada com todas as forças do indivíduo que a executa. Isso acontece principalmente devido às inúmeras formas e ferramentas disponíveis para escrever os seus testes de aceitação. Por exemplo, em Rails quem usa o Cucumber com certeza deve gostar muito de [...]]]></description>
			<content:encoded><![CDATA[<p>Escrever testes com <a href="http://selenium.openqa.org/" target="_blank">Selenium</a> geralmente é uma tarefa que, ou é amada ou é odiada com todas as forças do indivíduo que a executa. Isso acontece principalmente devido às inúmeras formas e ferramentas disponíveis para escrever os seus testes de aceitação. Por exemplo, em Rails quem usa o <a href="http://github.com/aslakhellesoy/cucumber" target="_blank">Cucumber</a> com certeza deve gostar muito de escrever tais testes, já quem usa o Selenium IDE não deve ficar muito feliz depois de algumas semanas repetindo várias e várias coisas.</p>
<p>Executar os testes é outra tarefa muito legal e motivante, ver as coisas acontecendo de forma automática é lindo, mas com o tempo isso começa a ficar muito chato, cansativo e a levar tempo de mais, tempo que você não pode esperar toda vez que quiser fazer um <em>commit</em> ou um <em>push</em> ou até mesmo uma integração para <em>build</em>. Com isso vem a idéia de um servidor de <a href="http://blog.caelum.com.br/2008/11/04/integracao-continua/" target="_blank">integração contínua</a> onde todos os testes serão executados automaticamente do jeito que você desejar: a cada <em>commit/push</em>, tantas vezes por dia, etc.</p>
<p>Novamente tudo fica muito bom quando o servidor de integração contínua está executando tudo e dando conta do recado, mas e se o servidor disponibilizado não tiver um ambiente gráfico? Ou melhor, e se você questionar a razão de ter um ambiente gráfico num servidor como esse? Bom, há de pensar que sem interface gráfica não é possível executar o browser (exceto o <em>lynx</em>, eu sei), então o que fazer? Para resolver este problema existe o <a href="http://www.xfree86.org/4.0.1/Xvfb.1.html" target="_blank">Xvfb</a>, um projeto que serve exatamente para máquinas sem display.</p>
<p>O Xvfb cria um <em>buffer</em> virtual em memória e executa o X Server a partir daí, redirecionando o que deveria ser a saída VGA para a memória, e com isso você consegue um X Server virtual rodando sem display, apenas em memória. Com isso já é possível rodar o browser (e qualquer outra coisa que precisa de um X Server), logo, é possível executar todos os seus testes do Selenium. Um detalhe interessante é a possibilidade de ter<em> qualquer</em> resolução disponível agora, mesmo aquelas que um monitor não poderia te proporcionar.</p>
<p>Vamos agora a instalação e execução do Xvfb:</p>
<h4>Instalando o Xvfb</h4>
<div class="igBar"><span id="lcode-5"><a href="#" onclick="javascript:showPlainTxt('code-5'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-5">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@valakas ~ $ sudo apt-get install xvfb </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h4>Executando o Xvfb</h4>
<div class="igBar"><span id="lcode-6"><a href="#" onclick="javascript:showPlainTxt('code-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-6">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@valakas ~ $ Xvfb :<span style="color:#800000;color:#800000;">1</span> -screen <span style="color:#800000;color:#800000;">0</span> 1600x1200x32 </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Com o comando acima vamos iniciar um novo servidor X (<em>:1</em>), screen 0 (<em>-screen 0</em>), resolução de tela de 1600x1200 e 32bits de cores. Agora para abrir o firefox neste servidor:</p>
<div class="igBar"><span id="lcode-7"><a href="#" onclick="javascript:showPlainTxt('code-7'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-7">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@valakas ~ $ DISPLAY=:<span style="color:#800000;color:#800000;">1</span> firefox </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>E se você quiser acessar <em>visualmente</em> a saída criada pelo Xvfb pode usar algum cliente VNC como o x11vnc e conectar-se no display criado:</p>
<div class="igBar"><span id="lcode-8"><a href="#" onclick="javascript:showPlainTxt('code-8'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-8">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@valakas ~ $ sudo apt-get install x11vnc</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@valakas ~ $ x11vnc -display :<span style="color:#800000;color:#800000;">1</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>E pronto! Obviamente o Xvfb não deve ser usado exclusivamente para o Firefox/Selenium, este post foi apenas uma abordagem dentre as milhares de soluções que podem se beneficiar de um X Server virtual.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeveaux?a=G77EN"><img src="http://feeds.feedburner.com/~f/jeveaux?i=G77EN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=kZoaN"><img src="http://feeds.feedburner.com/~f/jeveaux?i=kZoaN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=ulc4n"><img src="http://feeds.feedburner.com/~f/jeveaux?i=ulc4n" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=ZkBYn"><img src="http://feeds.feedburner.com/~f/jeveaux?i=ZkBYn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=GAvfn"><img src="http://feeds.feedburner.com/~f/jeveaux?i=GAvfn" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jeveaux/~4/449550904" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeveaux.com/blog/2008/xvfb-como-usar-o-selenium-sem-ter-um-x-server/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.jeveaux.com/blog/2008/xvfb-como-usar-o-selenium-sem-ter-um-x-server/</feedburner:origLink></item>
		<item>
		<title>De volta a terras Capixabas</title>
		<link>http://feeds.feedburner.com/~r/jeveaux/~3/448728246/</link>
		<comments>http://www.jeveaux.com/blog/2008/de-volta-a-terras-capixabas/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 19:23:59 +0000</pubDate>
		<dc:creator>jeveaux</dc:creator>
		
		<category><![CDATA[Pessoal]]></category>

		<category><![CDATA[globo.com]]></category>

		<category><![CDATA[Off-Topic]]></category>

		<guid isPermaLink="false">http://www.jeveaux.com/blog/2008/de-volta-a-terras-capixabas/</guid>
		<description><![CDATA[Estou de volta a Vitória, capital capixaba. Já fazem alguns dias que voltei do Rio para o Espírito Santo, mas como as coisas ficaram muito um pouco corridas e tumultuadas com a mudança, não tive tempo para escrever nada. Basicamente todos os motivos que me trouxeram de volta à minha terrinha são pessoais de mais [...]]]></description>
			<content:encoded><![CDATA[<p>Estou de volta a Vitória, capital capixaba. Já fazem alguns dias que voltei do Rio para o Espírito Santo, mas como as coisas ficaram <em><strike>muito</strike></em> um pouco corridas e tumultuadas com a <em>mudança</em>, não tive tempo para escrever nada. Basicamente todos os motivos que me trouxeram de volta à minha terrinha são pessoais de mais e eu prefiro não expor aqui no blog, pelo menos por agora.</p>
<p>Como muita gente me perguntou e ainda tem perguntado por que saí da <a href="http://www.globo.com" target="_blank">globo.com</a>, vou responder aqui pois pelo menos poderei enviar o <em>link</em> como resposta às próximas pessoas que perguntarem, afinal explicar isso toda hora é muito chato. A primeira pergunta que fazem é se houve algum problema com alguém ou alguma coisa em específico, não, não houve nada disso, como inclusive, <a href="http://www.jeveaux.com/blog/2008/cariocando/" target="_blank">eu já disse aqui no blog</a>, tudo estava muito bem lá, a equipe, os projetos, enfim. Então a próxima pergunta é se fui demitido, não, também não fui demitido, eu pedi a <em>dispensa</em>. Exceto um pouco de sensação de insegurança e do sotaque carregado não houve nada de desconfortante, apenas, é claro, uma série de acontecimentos particulares tanto lá no Rio quanto aqui em Vitória.</p>
<p>Espero muito em breve poder contar a todos, afinal apesar de estar triste por ter saído do meu emprego dos sonhos eu também estou muito feliz (não estou maluco), mas por enquanto acho melhor não expor nada (não rolou contar <em>- essa só o pessoal da webmedia vai entender</em>).</p>
<p>E no geral é isso, fui muito bem recebido de volta aqui em Vitória, os velhos amigos e bares =). E pra <a href="http://gc.blog.br/2008/10/15/wanted/" target="_blank">quem for pra webmedia</a>, muito sucesso e boa sorte, a equipe é realmente excepcional! Sentirei muita falta.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeveaux?a=O8xqN"><img src="http://feeds.feedburner.com/~f/jeveaux?i=O8xqN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=IAtEN"><img src="http://feeds.feedburner.com/~f/jeveaux?i=IAtEN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=DtRpn"><img src="http://feeds.feedburner.com/~f/jeveaux?i=DtRpn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=y3cen"><img src="http://feeds.feedburner.com/~f/jeveaux?i=y3cen" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=xfnPn"><img src="http://feeds.feedburner.com/~f/jeveaux?i=xfnPn" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jeveaux/~4/448728246" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeveaux.com/blog/2008/de-volta-a-terras-capixabas/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.jeveaux.com/blog/2008/de-volta-a-terras-capixabas/</feedburner:origLink></item>
		<item>
		<title>Palestra no CEJUG - Café com Tapioca</title>
		<link>http://feeds.feedburner.com/~r/jeveaux/~3/444241942/</link>
		<comments>http://www.jeveaux.com/blog/2008/palestra-no-cejug-cafe-com-tapioca/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 10:42:48 +0000</pubDate>
		<dc:creator>jeveaux</dc:creator>
		
		<category><![CDATA[Eventos]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Palestras]]></category>

		<category><![CDATA[Testes]]></category>

		<category><![CDATA[BDD]]></category>

		<category><![CDATA[CEJug]]></category>

		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://www.jeveaux.com/blog/2008/palestra-no-cejug-cafe-com-tapioca/</guid>
		<description><![CDATA[Este mês vou tomar café com tapioca lá em Fortaleza, capital do Ceará junto com o pessoal do CEJUG. Dando seqüência ao grandioso trabalho de eventos mensais que o CEJUG vem realizando, participarei do próximo Café com Tapioca no dia 21/11/2008 com a apresentação sobre testes.
Fiquei muito contente com o convite do meu grande amigo, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://cejug.dev.java.net/images/ceara.jpg" width="188" align="right" height="92" />Este mês vou tomar café com <a href="http://pt.wikipedia.org/wiki/Tapioca" target="_blank">tapioca</a> lá em Fortaleza, capital do Ceará junto com o pessoal do <a href="http://www.cejug.org" target="_blank">CEJUG</a>. Dando seqüência ao grandioso trabalho de eventos mensais que o <a href="http://www.cejug.org" target="_blank">CEJUG</a> vem realizando, participarei do próximo <a href="http://www.cejug.org/pages/viewpage.action?pageId=2818055" target="_blank">Café com Tapioca</a> no dia 21/11/2008 com a apresentação sobre testes.</p>
<p>Fiquei muito contente com o convite do meu grande amigo, <a href="http://www.rafaelcarneiro.org/blog/" target="_blank">Rafael Carneiro</a>, <em>JUG Leader</em> do <a href="http://www.cejug.org" target="_blank">CEJUG</a> e um dos administradores do <a href="http://www.portaljava.com" target="_blank">PortalJava,</a> partirei para o nordeste com muita empolgação, afinal além de não conhecer a região vou conhecer várias figurinhas do dia-a-dia de blogs, twitter, IMs e tudo mais, a expectativa é grande.</p>
<p>A apresentação de Testes desta vez terá uma abordagem com maior foco em <a href="http://en.wikipedia.org/wiki/Test-driven_development" target="_blank">TDD</a> e <a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development" target="_blank">BDD</a>. Ainda estou tentando sintetizar o conteúdo da melhor forma possível, torço para que o pessoal do Ceará goste.</p>
<p>Maiores informações <a href="http://www.cejug.org/pages/viewpage.action?pageId=34668552" target="_blank">aqui no site do CEJUG</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeveaux?a=apEEN"><img src="http://feeds.feedburner.com/~f/jeveaux?i=apEEN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=sG13N"><img src="http://feeds.feedburner.com/~f/jeveaux?i=sG13N" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=MW6Yn"><img src="http://feeds.feedburner.com/~f/jeveaux?i=MW6Yn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=ECf1n"><img src="http://feeds.feedburner.com/~f/jeveaux?i=ECf1n" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=LtcQn"><img src="http://feeds.feedburner.com/~f/jeveaux?i=LtcQn" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jeveaux/~4/444241942" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeveaux.com/blog/2008/palestra-no-cejug-cafe-com-tapioca/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.jeveaux.com/blog/2008/palestra-no-cejug-cafe-com-tapioca/</feedburner:origLink></item>
		<item>
		<title>Erros comuns ao iniciar com Python</title>
		<link>http://feeds.feedburner.com/~r/jeveaux/~3/422656746/</link>
		<comments>http://www.jeveaux.com/blog/2008/erros-comuns-ao-iniciar-com-python/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 13:29:51 +0000</pubDate>
		<dc:creator>jeveaux</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.jeveaux.com/blog/2008/erros-comuns-ao-iniciar-com-python/</guid>
		<description><![CDATA[Eu já andei escrevendo algumas coisas sobre python aqui no blog, já faz um tempinho, tudo bem, mas ainda são uma boa fonte de consulta para quem não sabe nada a respeito e quer começar a aprender. Depois que parei de escrever sobre python no blog parei também de estudá-lo, infelizmente. Há alguns dias encontrei [...]]]></description>
			<content:encoded><![CDATA[<p>Eu <a href="http://www.jeveaux.com/blog/category/python/" target="_blank">já andei escrevendo algumas coisas sobre python aqui no blog</a>, já faz um tempinho, tudo bem, mas ainda são uma boa fonte de consulta para quem não sabe nada a respeito e quer começar a aprender. Depois que parei de escrever sobre python no blog parei também de estudá-lo, infelizmente. Há alguns dias encontrei meu livro <a href="http://oreilly.com/catalog/9780596513986/index.html" target="_blank"><em>Learning Python</em></a> e resolvi ler mais uma vez pra refrescar a memória, já que <a href="http://video.globo.com" target="_blank">aqui no trabalho</a> tem <a href="http://www.brunocarvalho.com/" target="_blank">alguns fanáticos</a> por Ruby (<em>não que eu não goste de Ruby, eu gosto também</em>) que detestam python.</p>
<p>Logo nos primeiros quinze capítulos do livro encontrei e relembrei da famosa instrução <em>pass</em> do python, não sei como pude me esquecer de uma instrução tão importante. Basicamente, para quem não conhece, o <em>pass</em> no python está para as instruções assim como o <em>None</em> está para as atribuições, ou seja, ela simplesmente não faz nada, é uma função <em>null/None/nil</em>, como preferir e existe apenas para fins de utilização onde a sintaxe obrigue a existir uma instrução, como num <em>while</em> infinito, por exemplo.</p>
<p>Voltando aos pontos comuns de erros:</p>
<ul>
<li><strong>Dois pontos</strong><br />
Em instruções compostas (<em>if, while, for</em>, etc) não use mais os parênteses (<em>brackets</em>), em python você deve usar dois pontos - :</li>
<li><strong>Endentação e espaços em branco</strong><br />
Siga um modelo de tabulação consistente e único no seu script. Se você começou usando dois espaços, ou tabulação de 4 espaços ou seja o que for, mantenha-a. O interpretador, geralmente, não saberá o que fazer se você misturar vários de tipos de tabulação e espaçamento.</li>
<li><strong>Comece sempre na coluna 1</strong><br />
Certifique-se sempre de começar a primeira linha do seu código na primeira coluna disponível, principalmente se estiver usando o prompt interativo. É muito comum que um espaço ali tire o seu sono.</li>
<li><strong>Atribuições com tipos mutáveis e imutáveis</strong><br />
Estude e tenha certeza de que realmente aprendeu o comportamento dos tipos de dados em python - <em>listas, dicionário</em>s<em>, strings e números</em>. Não pense que se você sabe a linguagem XPTO que os concentois serão os mesmos, principalmente, não pense que isso será uma perda de tempo. É muito comum, por exemplo, fazer uma atribuição como: <em>lista = lista.append(alguma_coisa)</em>. Com esta atribuição a única operação será atribuir <em>None</em> a <em>lista</em> e com isso perder completamente a referência para a sua lista de verdade.</li>
</ul>
<p>Esses são os erros que sempre me incomodam e são os que eu sempre acabo fazendo, certamente que existem outros detalhes pontuais que muita gente deve passar ou ter passado. De qualquer forma, em tempos de desenvolvedores poliglotas, estes tipos de detalhes aparecerão e se tornarão cada vez mais importantes.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeveaux?a=hSh4M"><img src="http://feeds.feedburner.com/~f/jeveaux?i=hSh4M" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=LjHmM"><img src="http://feeds.feedburner.com/~f/jeveaux?i=LjHmM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=7FoIm"><img src="http://feeds.feedburner.com/~f/jeveaux?i=7FoIm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=Eqbjm"><img src="http://feeds.feedburner.com/~f/jeveaux?i=Eqbjm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=DF5sm"><img src="http://feeds.feedburner.com/~f/jeveaux?i=DF5sm" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jeveaux/~4/422656746" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeveaux.com/blog/2008/erros-comuns-ao-iniciar-com-python/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.jeveaux.com/blog/2008/erros-comuns-ao-iniciar-com-python/</feedburner:origLink></item>
		<item>
		<title>Intel 4965AGN e Ubuntu Intrepid == Kernel Panic</title>
		<link>http://feeds.feedburner.com/~r/jeveaux/~3/419898696/</link>
		<comments>http://www.jeveaux.com/blog/2008/intel-4965agn-e-ubuntu-intrepid-kernel-panic/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 21:37:37 +0000</pubDate>
		<dc:creator>jeveaux</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Intel]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://www.jeveaux.com/blog/2008/intel-4965agn-e-ubuntu-intrepid-kernel-panic/</guid>
		<description><![CDATA[Este final de semana fiz a atualização do meu Ubuntu para o Intrepid beta, tudo correu bem na atualização, reiniciei já com o kernel 2.6.27-7 e tudo continuou como antes, até que de repente tudo travou, congelou completamente. Foi bem estranho pois a luz de força (power) se apagou e as luzes do caps lock [...]]]></description>
			<content:encoded><![CDATA[<p>Este final de semana fiz a atualização do meu <a href="http://www.ubuntu.com/" target="_blank">Ubuntu</a> para o <a href="http://www.ubuntu.com/testing/intrepid/beta" target="_blank">Intrepid</a> beta, tudo correu bem na atualização, reiniciei já com o kernel 2.6.27-7 e tudo continuou como antes, até que de repente tudo travou, congelou completamente. Foi bem estranho pois a luz de força (<em>power</em>) se apagou e as luzes do<em> caps lock</em> e <em>scroll lock</em> ficaram piscando.</p>
<p><em>Bad smell</em>, pensei comigo. Reiniciei e continuei a fazer o que estava fazendo. Mais uma vez travou da mesma forma, <em>caps</em> e <em>scroll</em> <em>lock</em> piscando e luz do <em>power</em> apagada. Fiz isso mais umas quatro ou cinco vezes pra tentar identificar o que estava fazendo o sistema travar completamente mas não consegui identificar nenhum padrão que pudesse ser a causa do problema.</p>
<p>Comecei então com a saga de analisar logs e pesquisar sobre o problema na <strike>internet</strike> google, até que descobri que a poderia ser algo com a mudança do driver do wireless, que até o <em>Hardy</em> era o <em>iwlwifi</em> e no <em>Intrepid</em> é o <em>iwlagn</em>. Encontrei <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/276990" target="_blank">algumas referências</a> de <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/278008" target="_blank">pessoas com o mesmo problema</a> no <em>Bug Tracker</em> do Ubuntu, e nos relatos achei uma semelhança com o meu problema: o sistema só congelava quando eu estava usando rede <em>N</em> e fazendo alguma coisa que aumentasse o tráfego na rede.</p>
<p>Basicamente a solução é: baixe a última versão do driver, compile e instale. Aparentemente o driver que está saindo com o <em>Intrepid</em> não está legal. Certamente isso será corrigido até o final do mês, no lançamento oficial do Intrepid, até porque esta é uma versão beta, então alguns <em>bugs</em> são esperados, é mais do que normal. Mas para quem não consegue esperar, segue:</p>
<h4>Atualizando o iwlagn no Ubuntu Intrepid</h4>
<p><strong>1)</strong> Faça o download do último driver em: <a href="http://www.orbit-lab.org/kernel/compat-wireless-2.6/2008/10/" target="_blank">http://www.orbit-lab.org/kernel/compat-wireless-2.6/2008/10/</a></p>
<p><strong>2)</strong> Instalando</p>
<pre>
<div class="igBar"><span id="lcode-10"><a href="#" onclick="javascript:showPlainTxt('code-10'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-10">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@keltir ~ $ sudo apt-get install -y build-essential</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@keltir ~ $ tar jxvf compat-wireless-<span style="color:#800000;color:#800000;">2008</span>-<span style="color:#800000;color:#800000;">10</span>-<span style="color:#800000;color:#800000;">10</span>.<span style="">tar</span>.<span style="">bz2</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@keltir ~ $ cd compat-wireless-<span style="color:#800000;color:#800000;">2008</span>-<span style="color:#800000;color:#800000;">10</span>-<span style="color:#800000;color:#800000;">10</span>/</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@keltir ~/compat-wireless-<span style="color:#800000;color:#800000;">2008</span>-<span style="color:#800000;color:#800000;">10</span>-<span style="color:#800000;color:#800000;">10</span> $ make</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@keltir ~/compat-wireless-<span style="color:#800000;color:#800000;">2008</span>-<span style="color:#800000;color:#800000;">10</span>-<span style="color:#800000;color:#800000;">10</span> $ sudo make install </div>
</li>
</ol>
</div>
</div>
</div>

</pre>
<p><strong>3)</strong> Reinicie e pronto =) (eu tentei recarregar o módulo sem reiniciar mais não deu certo, então reinicia que é mais garantido)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeveaux?a=eU4VM"><img src="http://feeds.feedburner.com/~f/jeveaux?i=eU4VM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=XE6HM"><img src="http://feeds.feedburner.com/~f/jeveaux?i=XE6HM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=NSKim"><img src="http://feeds.feedburner.com/~f/jeveaux?i=NSKim" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=PeXXm"><img src="http://feeds.feedburner.com/~f/jeveaux?i=PeXXm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=0jjum"><img src="http://feeds.feedburner.com/~f/jeveaux?i=0jjum" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jeveaux/~4/419898696" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeveaux.com/blog/2008/intel-4965agn-e-ubuntu-intrepid-kernel-panic/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.jeveaux.com/blog/2008/intel-4965agn-e-ubuntu-intrepid-kernel-panic/</feedburner:origLink></item>
		<item>
		<title>Starling: Trabalhando com Filas em Ruby</title>
		<link>http://feeds.feedburner.com/~r/jeveaux/~3/417199744/</link>
		<comments>http://www.jeveaux.com/blog/2008/starling-trabalhando-com-filas-em-ruby/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 21:52:33 +0000</pubDate>
		<dc:creator>jeveaux</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[MemCache]]></category>

		<category><![CDATA[Rails]]></category>

		<category><![CDATA[Starling]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.jeveaux.com/blog/2008/starling-trabalhando-com-filas-em-ruby/</guid>
		<description><![CDATA[Quem nunca ouviu a grande falácia de que Rails não escala? Isso foi moda durante algumas semanas enquanto o Twitter passava por problemas de escalabilidade, não necessariamente por culpa do Rails ou de Ruby, mas quem quer por lenha na fogueira não está muito preocupado com isso e quer mesmo é semear a discórdia. Muita [...]]]></description>
			<content:encoded><![CDATA[<p>Quem nunca ouviu a grande falácia de que Rails não escala? Isso foi moda durante algumas semanas enquanto o Twitter passava por problemas de escalabilidade, não necessariamente por culpa do Rails ou de Ruby, mas quem quer por lenha na fogueira não está muito preocupado com isso e quer mesmo é semear a discórdia. Muita água já passou por baixo da ponte, o Twitter agora está estável e as coisasfluem bem.</p>
<p>No começo deste ano <a href="http://dev.twitter.com/2008/01/announcing-starling.html" target="_blank">o pessoal do Twitter anunciou e tornou open source</a> o projeto <a href="http://rubyforge.org/projects/starling/" target="_blank">Starling</a>, criado por <a href="http://twitter.com/blaine" target="_blank">Blaine Cook</a>. O <a href="http://rubyforge.org/projects/starling/" target="_blank">Starling</a> é o <em>core</em> do Twitter, ele é o servidor de filas responsável por <em>manter em pé</em> o Twitter. E agora como um projeto open source está disponível como <em>gem</em> e pode ser usado por qualquer outro projeto.</p>
<p>Indo direto ao ponto, o <a href="http://rubyforge.org/projects/starling/" target="_blank">Starling</a> é, basicamente, um servidor de filas implementado sob o protocolo do <a href="http://www.danga.com/memcached/" target="_blank">MemCache</a>. O <a href="http://www.danga.com/memcached/" target="_blank">MemCache</a> é um servidor de cache distribuído de altíssima performance e é largamente usado, principalmente em <em>clusters </em>de aplicações web.</p>
<p>Para usar o Starling é muito simples. Os primeiros passos são</p>
<h4>Instalação</h4>
<p><strong>1)</strong> Instalar o servidor <a href="http://www.danga.com/memcached/" target="_blank">MemCache</a></p>
<div class="igBar"><span id="lcode-17"><a href="#" onclick="javascript:showPlainTxt('code-17'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-17">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@kamael ~ $ sudo apt-get -y install memcached </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>2)</strong> Instalar a <a href="http://www.deveiate.org/projects/RMemCache/" target="_blank"><em>gem</em> do MemCache</a> e</p>
<div class="igBar"><span id="lcode-18"><a href="#" onclick="javascript:showPlainTxt('code-18'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-18">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@kamael ~ $ sudo gem install memcache-client </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>3)</strong> Instalar a <em>gem</em> do <a href="http://rubyforge.org/projects/starling/" target="_blank">Starling</a>.</p>
<div class="igBar"><span id="lcode-19"><a href="#" onclick="javascript:showPlainTxt('code-19'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-19">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@kamael ~ $ sudo gem install starling </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>E pronto, isso é tudo para começarmos a usar o <a href="http://rubyforge.org/projects/starling/" target="_blank">Starling</a>. Se você achou a instalação simples se prepare, pois a utilização é ainda mais simples.</p>
<h4>Usando o Starling</h4>
<p>Se você já usou o <a href="http://www.danga.com/memcached/" target="_blank">MemCache</a> vai sentir-se familiarizado com o <a href="http://rubyforge.org/projects/starling/" target="_blank">Starling</a>. A diferença é apenas na implementação do protocolo, ou seja, a utilização <em>em código</em> será igual a do MemCache, só que ao fazer <em>set</em> e <em>get</em> as coisas acontecerão de uma forma um pouco diferente. Por enquanto a diferença maior que percebi foi em relação do método <em>get</em>, que quando usado no MemCache apenas retorna um valor do cache e o mantém lá, já no caso do <a href="http://rubyforge.org/projects/starling/" target="_blank">Starling</a> o <em>get</em> retorna o valor e o remove da memória. Analisando com calma isso faz sentido, afinal não estamos mais falando de cache e sim de filas, mesmo que a implementação da fila seja feita usando cache.</p>
<p>Mas antes de irmos para os exemplos de código, precisamos fazer com o que o servidor de filas - duh, <a href="http://rubyforge.org/projects/starling/" target="_blank">Starling</a> - esteja disponível e rodando. Vamos iniciar o <a href="http://rubyforge.org/projects/starling/" target="_blank">Starling</a> na porta 22122 (-p) e como um <em>daemon</em> (-d):</p>
<div class="igBar"><span id="lcode-20"><a href="#" onclick="javascript:showPlainTxt('code-20'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-20">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@kamael ~ $ sudo starling -p <span style="color:#800000;color:#800000;">22122</span> -d </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Isso já basta para iniciar o servidor do <a href="http://rubyforge.org/projects/starling/" target="_blank">Starling</a> e deixá-lo disponível para uso. Agora então vamos alimentar a fila, crie o arquivo: <em>alimentar_fila.rb</em>.</p>
<div class="igBar"><span id="lcode-21"><a href="#" onclick="javascript:showPlainTxt('code-21'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-21">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">#alimentar_fila.<span style="">rb</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">require <span style="color:#CC0000;">'rubygems'</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">require <span style="color:#CC0000;">'memcache'</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">starling = MemCache.<span style="">new</span> <span style="color:#CC0000;">'localhost:22122'</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">starling.<span style="">set</span> <span style="color:#CC0000;">'fila'</span>, <span style="color:#CC0000;">'qualquer objeto'</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Ao executar este arquivo (ruby alimenta_fila.rb) não teremos nenhum resultado visual, mas acredite, a fila chamada de<em>'fila'</em> no exemplo está recebendo objetos. Agora o trabalho será para - como dizem - <em>consumir</em> a fila. Vamos ao <em>consumir_fila.rb</em>.</p>
<pre>
<div class="igBar"><span id="lcode-22"><a href="#" onclick="javascript:showPlainTxt('code-22'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-22">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">#consumir_fila.<span style="">rb</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">require <span style="color:#CC0000;">'rubygems'</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">require <span style="color:#CC0000;">'memcache'</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">starling = MemCache.<span style="">new</span> <span style="color:#CC0000;">'localhost:22122'</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">loop <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; objeto_fila = starling.<span style="">get</span> <span style="color:#CC0000;">'fila'</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">  if !objeto_fila.<span style="">nil</span>?</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"> &nbsp; &nbsp;puts <span style="color:#CC0000;">'recuperado da fila:'</span> + objeto_fila</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">  end</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>

</pre>
<p>E agora sim estamos prontos para colocar e remover objetos em uma fila. O exemplo para consumir os objetos ficará em <em>loop</em>, então você pode executá-lo numa janela do <em>bash</em> e em outra janela ir executando o exemplo para alimentar a fila com objetos e acompanhar o comportamento dos procedimentos de alimentar e consumir a fila. A recuperação da fila será imediata, instantânea, afinal, assim como o MemCache, o <a href="http://rubyforge.org/projects/starling/" target="_blank">Starling</a> está preparado para receber milhares de operações por segundo.</p>
<p>E é isso, o seu servidor de filas já está rodando e sendo alimentado/consumido. Agora é aplicar para o que você está precisando <img src='http://www.jeveaux.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h4>Problemas</h4>
<p>Há um probleminha chato com a gravação de log em disco que o Starling faz das filas. Todo o <em>set</em> feito gera o objeto na memória e também em disco - geralmente em <em>/var/spool/starling/</em>. O problema é que o <em>get</em> somente remove o objeto da memória e não do disco. Aparentemente isso foi feito pra ser assim mesmo e <a href="http://www.williambharding.com/blog/rails/starling-update-from-the-horses-mouth/" target="_blank">segundo o próprio Blaine Cook este arquivo de <em>log</em> não ficará sendo incrementado para sempre</a>, pois, depois de um <em>certo</em> tamanho (o engraçado é que ele não fala esse <em>certo</em> tamanho) ele será rotacionado, mas por enquanto ainda não descobri este <em>certo</em> tamanho e o arquivo tem crescido infinitamente.</p>
<p>E apenas uma observação quanto ao <em>consumir_fila.rb</em>: Não deixe-o executando por muito tempo e nem muito menos esqueça de finalizá-lo pois como ele fica em <em>loop</em> infinito poderá ocupar o seu processador a toa.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeveaux?a=KQVnM"><img src="http://feeds.feedburner.com/~f/jeveaux?i=KQVnM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=tTi8M"><img src="http://feeds.feedburner.com/~f/jeveaux?i=tTi8M" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=vhV8m"><img src="http://feeds.feedburner.com/~f/jeveaux?i=vhV8m" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=s1KFm"><img src="http://feeds.feedburner.com/~f/jeveaux?i=s1KFm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=uG9Ym"><img src="http://feeds.feedburner.com/~f/jeveaux?i=uG9Ym" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jeveaux/~4/417199744" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeveaux.com/blog/2008/starling-trabalhando-com-filas-em-ruby/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.jeveaux.com/blog/2008/starling-trabalhando-com-filas-em-ruby/</feedburner:origLink></item>
		<item>
		<title>Configurando Sony Ericsson MD300 no Ubuntu</title>
		<link>http://feeds.feedburner.com/~r/jeveaux/~3/416189611/</link>
		<comments>http://www.jeveaux.com/blog/2008/configurando-sony-ericsson-md300-no-ubuntu/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 22:22:44 +0000</pubDate>
		<dc:creator>jeveaux</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[3G]]></category>

		<category><![CDATA[Claro]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.jeveaux.com/blog/2008/configurando-sony-ericsson-md300-no-ubuntu/</guid>
		<description><![CDATA[Algum tempo antes de me mudar pro Rio eu fiz um plano de internet 3G da Claro e acabei comprando o modem da Sony Ericsson modelo MD300, na loja mesmo testei no notebook deles e tudo funcionou como eu esperava, velocidade nota 10 e conexão estável, até hoje não tive problemas, a não ser é [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jeveaux.com/blog/wp-content/uploads/2008/10/sony-ericsson-md300.jpg"><img src="http://www.jeveaux.com/blog/wp-content/uploads/2008/10/sony-ericsson-md300.jpg" width="175" align="right" height="117" /></a>Algum tempo antes de me mudar pro Rio eu fiz um plano de internet 3G da Claro e acabei comprando o modem da Sony Ericsson modelo MD300, na loja mesmo testei no notebook deles e tudo funcionou como eu esperava, velocidade nota 10 e conexão estável, até hoje não tive problemas, a não ser é claro a compatibilidade do modem com o Ubuntu.</p>
<p>Sempre vi muita gente usando 3G no Mac e em Linux com o modem da Huawei - aquele <em>branquinho</em> clássico - e logo pensei: "Vou comprar um desses". Mas não tinha este modelo disponível no dia em que comprei. Então os problemas começaram, o MD300, ao ser plugado no usb com o Ubuntu é montado como pen drive e não como modem, afinal de contas ele também é um pen drive. Mas este não é um si o problema, se vai montar como pen drive tanto faz, isso não tem problema, desde que também seja montado como dispositivo de modem, mas isso não acontece.</p>
<p>Pesquisei de todas as formas possíveis por algumas semanas e não encontrei nada que realmente fosse funcional. Tentei ndiswrapper, tentei iniciar uma VM com windows pra conectar o modem e fazer um proxy pro linux, tentei configurar o wvdial, tentei promessa, simpatia e <em>raza braba</em> mas nada fazia o bendito modem funcionar.</p>
<p>Até que achei há alguns dias no<a href="http://blog.mdpetry.net/2008/09/claro-3g-no-ubuntu-com-sony-md300.html" target="_blank"> blog do Petry uma solução que ele usou e funcionou</a>. Fiz a mesma coisa e não funcionou de cara pra mim, tive que fazer algumas coisas diferentes, então por isso vou descrever os passos da solução do Petry com o que eu tive que fazer a mais.</p>
<p>O primeiro e mais importante passo é dizer ao udev como montar o dispositivo corretamente, para isso crie uma regra conforme abaixo. Lembre-se que o nome do arquivo criado deve ser exatamente igual ao exemplo, inclusive o seu conteúdo, nada diferente.</p>
<div class="igBar"><span id="lcode-30"><a href="#" onclick="javascript:showPlainTxt('code-30'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-30">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@keltir ~ $ sudo vi /etc/udev/rules.<span style="">d</span>/<span style="color:#800000;color:#800000;">50</span>-md300modem.<span style="">rules</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Copie o conteúdo abaixo neste arquivo (tome cuidado com as aspas simples e duplas ao copiar e colar, sugiro conferir pra ver se elas foram transportadas corretamente depois de colar, comigo geralmente elas ficam como ´ ao invés de ')</p>
<div class="igBar"><span id="lcode-31"><a href="#" onclick="javascript:showPlainTxt('code-31'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-31">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">ACTION!=<span style="color:#CC0000;">"add"</span>, GOTO=<span style="color:#CC0000;">"3G_End"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">BUS==<span style="color:#CC0000;">"usb"</span>, SYSFS<span style="color:#006600; font-weight:bold;">&#123;</span>idProduct<span style="color:#006600; font-weight:bold;">&#125;</span>==<span style="color:#CC0000;">"d0cf"</span>, SYSFS<span style="color:#006600; font-weight:bold;">&#123;</span>idVendor<span style="color:#006600; font-weight:bold;">&#125;</span>==<span style="color:#CC0000;">"0fce"</span>, PROGRAM=<span style="color:#CC0000;">"/bin/sh -c 'echo 3&amp;gt; /sys/%p/device/bConfigurationValue'"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">LABEL=<span style="color:#CC0000;">"3G_End"</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Feito isso vamos reiniciar o udev</p>
<div class="igBar"><span id="lcode-32"><a href="#" onclick="javascript:showPlainTxt('code-32'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-32">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@keltir ~ $ sudo /etc/init.<span style="">d</span>/udev restart </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>E na seqüência vamos instalar o gnome-ppp e wvdial</p>
<div class="igBar"><span id="lcode-33"><a href="#" onclick="javascript:showPlainTxt('code-33'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-33">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@keltir ~ $ sudo apt-get -y install gnome-ppp wvdial </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>E agora vamos editar o .wvdial.conf do home do usuário (mais uma vez cuidado com as aspas, mesmo problema da regra do udev que citei acima)</p>
<div class="igBar"><span id="lcode-34"><a href="#" onclick="javascript:showPlainTxt('code-34'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-34">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@keltir ~ $ vi .<span style="">wvdial</span>.<span style="">conf</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>E então vamos colar este conteúdo no arquivo:</p>
<div class="igBar"><span id="lcode-35"><a href="#" onclick="javascript:showPlainTxt('code-35'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-35">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#91;</span>Dialer Defaults<span style="color:#006600; font-weight:bold;">&#93;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Modem = /dev/ttyACM0</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">ISDN = off</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Modem Type = USB Modem</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Baud = <span style="color:#800000;color:#800000;">460800</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Init = ATZ</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Init2 = AT+CFUN=<span style="color:#800000;color:#800000;">1</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Init3 = ATQ0 V1 E1 S0=<span style="color:#800000;color:#800000;">0</span> &amp;amp;C1 &amp;amp;D2 +FCLASS=<span style="color:#800000;color:#800000;">0</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Init4 = AT+CGDCONT=<span style="color:#800000;color:#800000;">1</span>,<span style="color:#CC0000;">"IP"</span>,<span style="color:#CC0000;">"bandalarga.claro.com.br"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Init5 =</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Init6 =</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Init7 =</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Init8 =</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Init9 =</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Phone = *<span style="color:#800000;color:#800000;">99</span>***<span style="color:#800000;color:#800000;">1</span>#</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Phone1 =</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Phone2 =</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Phone3 =</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Phone4 =</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Dial Prefix =</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Dial Attempts = <span style="color:#800000;color:#800000;">1</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Dial Command = ATM1L3DT</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Ask Password = off</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Password = claro</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Username = claro</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Auto Reconnect = off</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Abort on Busy = off</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Carrier Check = on</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Check Def Route = on</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Abort on No Dialtone = on</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Stupid Mode = off</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Idle Seconds = <span style="color:#800000;color:#800000;">0</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Auto DNS = on</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">;Minimize = off</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">;Dock = off</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">;Do NOT edit this file by hand! </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Agora basta plugar o modem, iniciar o gnome-ppp e conectar-se. Você pode fazer isso diretamente pelo console com o comando gnome-ppp ou através do menu <em>Applications &gt; Internet &gt; gnome ppp</em>.</p>
<p>Basicamente até aqui é o mesmo passo a passo descrito no blog do Petry, porém comigo, ao terminar estes passos a conexão simplesmente não era mantida. Mandava conectar, discava, conectava e caía. Para resolver este problema fiz os próximos passos. Não sou exatamente um <em>expert</em> em linux, então não sei explicar exatamente o porquê destes passos, mas foram eles que fizeram o meu gnome-ppp funcionar corretamente.</p>
<p>Aparentemente alguma coisa sobrenatural estava fazendo meu gnome-ppp carregar o arquivo /etc/wvdial.conf ao invés do ~/.wvdial.conf, então precisei colar o conteúdo do ~/.wvdial.conf no /etc/wvdial.conf também.</p>
<p>Depois disso me conectei diretamente com o wvdial.</p>
<div class="igBar"><span id="lcode-36"><a href="#" onclick="javascript:showPlainTxt('code-36'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-36">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">jeveaux@keltir ~ $ wvdial </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Aí sim a conexão foi realizada com sucesso e não caiu. Depois disso fechei o wvdial e voltei a usar o gnome-ppp, que não caiu nenhuma vez depois disso.</p>
<p>Agora é esperar o <a href="http://www.ubuntu.com/testing/intrepid/beta" target="_blank">Ubuntu 8.10</a>, pois segundo as informações no site o network-manager virá com suporte integrado a conexão 3G (GSM e CDMA). Tomara que não precise mais dessa lenga lenga.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeveaux?a=wdG6M"><img src="http://feeds.feedburner.com/~f/jeveaux?i=wdG6M" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=HBIwM"><img src="http://feeds.feedburner.com/~f/jeveaux?i=HBIwM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=Caqfm"><img src="http://feeds.feedburner.com/~f/jeveaux?i=Caqfm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=gZFym"><img src="http://feeds.feedburner.com/~f/jeveaux?i=gZFym" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=dz3Rm"><img src="http://feeds.feedburner.com/~f/jeveaux?i=dz3Rm" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jeveaux/~4/416189611" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeveaux.com/blog/2008/configurando-sony-ericsson-md300-no-ubuntu/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.jeveaux.com/blog/2008/configurando-sony-ericsson-md300-no-ubuntu/</feedburner:origLink></item>
		<item>
		<title>Customizando o gedit para Rails</title>
		<link>http://feeds.feedburner.com/~r/jeveaux/~3/413788191/</link>
		<comments>http://www.jeveaux.com/blog/2008/customizando-o-gedit-para-rails-2/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 13:04:47 +0000</pubDate>
		<dc:creator>jeveaux</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[gedit]]></category>

		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://www.jeveaux.com/blog/2008/customizando-o-gedit-para-rails-2/</guid>
		<description><![CDATA[Não há dúvidas que o TextMate é um excelente editor para se trabalhar com Rails, mas como nem todos possuem um Mac para ter o prazer de utilizar este editor, o jeito é se contentar com alternativas menos hype sexy.
Para quem usa Gnome, porém, é muito mais fácil encontrar uma ótima alternativa. O gedit é [...]]]></description>
			<content:encoded><![CDATA[<p>Não há dúvidas que o <a href="http://macromates.com/" target="_blank">TextMate</a> é um excelente editor para se trabalhar com Rails, mas como nem todos possuem um Mac para ter o prazer de utilizar este editor, o jeito é se contentar com alternativas menos <strike>hype</strike> <em>sexy</em>.</p>
<p>Para quem usa Gnome, porém, é muito mais fácil encontrar uma ótima alternativa. O gedit é um editor de texto que vem, geralmente, por default em qualquer distribuição Linux com Gnome. Não vou falar muito do gedit como editor pois este não é o foco do post, a idéia é mostrar apenas o projeto <a href="http://github.com/mig/gedit-rails/tree/master" target="_blank">gedit-rails</a>, que é o projeto que contém uma série de utilitários para deixar o gedit ‘turbinado’ para se trabalhar com Rails.</p>
<p>Para instalar o <a href="http://github.com/mig/gedit-rails/tree/master" target="_blank">gedit-rails</a> é super simples, basta fazer o download do projeto (<a href="http://github.com/mig/gedit-rails/zipball/master" target="_blank">zip</a>, <a href="http://github.com/mig/gedit-rails/tarball/master" target="_blank">tar.gz</a> ou via clone do <a href="javascript:void(0);" target="_blank">repositório do github</a>) e fazer a instalação executando o script <em>install.sh</em>. A instalação é simples e não há nenhum estágio além da execução da execução propriamente dita do script e depois disso o trabalho será apenas de configuração.</p>
<p>A instalação adicionará no gedit o tema de fontes e cores: <em>Darkmate</em>, os plugins: <em>Class Browser</em>, <em>HTML Tidy</em>, <em>Rails Hot Keys</em>, <em>Rails Hot Commands</em> e <em>Snap Open</em> e o mais importante, os snippets. A configuração pode ser feita basicamente em duas etapas:</p>
<p align="left"><strong>- </strong><strong>Tema de fontes e cores</strong>: Edit &gt; Preferences &gt; Fonts &amp; Colors&gt; <em>Darkmate</em>. E o resultado será:</p>
<p style="text-align: center"><a href="http://www.jeveaux.com/blog/wp-content/uploads/2008/10/gedit-rails-01.png" target="_blank"><img src="http://www.jeveaux.com/blog/wp-content/uploads/2008/10/gedit-rails-01.png" width="287" height="169" /></a></p>
<p align="left"><strong>- Plugins</strong>: Edit &gt; Preferences &gt; Plugins. Lembre-se, os plugins que foram instalados e que podem ser ativados são: <em>Class Browser</em>, <em>HTML Tidy</em>, <em>Rails Hot Keys</em>, <em>Rails Hot Commands</em> e <em>Snap Open</em>. Os snippets já estarão funcionando sem nenhuma modificação. Basicamente alguns dos recursos adicionados serão:</p>
<p align="left"><a href="http://www.jeveaux.com/blog/wp-content/uploads/2008/10/gedit-rails-02.png" target="_blank"><img src="http://www.jeveaux.com/blog/wp-content/uploads/2008/10/gedit-rails-02.png" width="174" height="106" /></a>  <a href="http://www.jeveaux.com/blog/wp-content/uploads/2008/10/gedit-rails-03.png" target="_blank"><img src="http://www.jeveaux.com/blog/wp-content/uploads/2008/10/gedit-rails-03.png" width="117" height="40" /></a>  <a href="http://www.jeveaux.com/blog/wp-content/uploads/2008/10/gedit-rails-04.png" target="_blank"><img src="http://www.jeveaux.com/blog/wp-content/uploads/2008/10/gedit-rails-04.png" width="155" height="106" /></a></p>
<p align="left">Recomendo também a leitura dos <a href="http://www.urubatan.info/tag/gedit/" target="_blank">posts sobre gedit-rails do Urubatan</a>, um dos autores do projeto.</p>
<p align="left">Para quem curte o VI também existe uma ótima opção, o <a href="http://www.vimrails.org/" target="_blank">vim-rails</a>. Qualquer dia escrevo sobre este addon.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeveaux?a=CsxUM"><img src="http://feeds.feedburner.com/~f/jeveaux?i=CsxUM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=nfxBM"><img src="http://feeds.feedburner.com/~f/jeveaux?i=nfxBM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=5R85m"><img src="http://feeds.feedburner.com/~f/jeveaux?i=5R85m" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=xt9jm"><img src="http://feeds.feedburner.com/~f/jeveaux?i=xt9jm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=Lt3Gm"><img src="http://feeds.feedburner.com/~f/jeveaux?i=Lt3Gm" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jeveaux/~4/413788191" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeveaux.com/blog/2008/customizando-o-gedit-para-rails-2/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.jeveaux.com/blog/2008/customizando-o-gedit-para-rails-2/</feedburner:origLink></item>
		<item>
		<title>Cariocando</title>
		<link>http://feeds.feedburner.com/~r/jeveaux/~3/406426997/</link>
		<comments>http://www.jeveaux.com/blog/2008/cariocando/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 16:45:31 +0000</pubDate>
		<dc:creator>jeveaux</dc:creator>
		
		<category><![CDATA[Agile]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Pessoal]]></category>

		<category><![CDATA[globo.com]]></category>

		<category><![CDATA[SCRUM]]></category>

		<guid isPermaLink="false">http://www.jeveaux.com/blog/2008/cariocando/</guid>
		<description><![CDATA[Já estou aqui no Rio há pouco mais um mês e parece que cheguei aqui ontem, por vários motivos. O primeiro e mais claro é que toda vez que eu escuto alguém falando "mexmo", "feix" e "doix" dá até agonia, acho que vai ser difícil acostumar com esse sotaque marrento e sinceramente espero não aprende-lo. [...]]]></description>
			<content:encoded><![CDATA[<p>Já <a href="http://www.jeveaux.com/blog/2008/emprego-novo-casa-nova/" target="_blank">estou aqui no Rio</a> há pouco mais um mês e parece que cheguei aqui ontem, por vários motivos. O primeiro e mais claro é que toda vez que eu escuto alguém falando <em>"mexmo"</em>, <em>"feix"</em> e <em>"doix"</em> dá até agonia, acho que vai ser difícil acostumar com esse sotaque <em>marrento</em> e sinceramente espero não aprende-lo. Outra coisa que sempre acontece quando estou conversando com alguém de Vitória eu ainda escrevo como se eu estivesse lá, sempre esqueço que estou aqui no Rio.</p>
<p>Por outro lado existem algumas coisas que me fazem lembrar imediatamente que estou no Rio, por exemplo a <em>insegurança</em> - estou achando a Barra bem tranquila, mas já vi um assalto - e o trânsito horrível, os motoristas dirigindo feito loucos e por aí vai, felizmente enquanto precisar apenas atravessar uma rua para chegar ao trabalho não irei me preocupar com isso.</p>
<p>Já o trabalho e tudo o mais aqui na <a href="http://video.globo.com" target="_blank">globo.com</a> tem sido muito próximo do que o que eu já imaginava, exceto alguns pontos que vão além das minhas expectativas, e isso é bom, muito bom. O ambiente de trabalho é muito descontraído, espaçoso, limpo, claro e repleto de pessoas <a href="http://www.apaebrasil.org.br/" target="_blank">excepcionais</a>. Com base nas minhas últimas experiências, principalmente o tempo trabalhando em <em>home office</em>, é como se tudo ali fosse pensado e feito para melhorar a interação das equipes e criar um bom ambiente de trabalho. E é claro as experiências com tecnologias diferentes de Java, como por exemplo projetos PHP, iPhone e Rails.</p>
<p>Além disso tudo, trabalhar numa empresa onde todas as equipes <em>são ágeis</em> está sendo uma experiência realmente incrível e muito diferente, estou gostando muito. Todas as práticas de SCRUM e XP são seguidas (não à risca, algumas coisas são adaptadas) e o mais legal é poder praticar TDD sem ser questionado por tempo gasto com testes, com "testes a toa" (sim, já ouvi isso antes) e todas mazelas que costumamos ouvir de <em>gerentes tradicionais</em>, quando na verdade o único questionamento que poderei ouvir é por que não fiz o teste antes.</p>
<p>Bom, por enquanto é isso que posso dizer. Ainda não passeei muito por aqui, mas já conheci alguns lugares clássicos como o <a href="http://www.flickr.com/photos/jeveaux/tags/jardimbotanico/">Jardim Botânico</a>, o <a href="http://www.flickr.com/photos/jeveaux/tags/corcovado/" target="_blank">Corcovado</a> num dia de chuva, a <a href="http://www.flickr.com/photos/jeveaux/tags/rocinha/" target="_blank">Rocinha</a> (só passei em frente) e mais <a href="http://www.flickr.com/photos/jeveaux" target="_blank">alguns outros lugares</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/jeveaux?a=IYibL"><img src="http://feeds.feedburner.com/~f/jeveaux?i=IYibL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=zmsfL"><img src="http://feeds.feedburner.com/~f/jeveaux?i=zmsfL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=baoul"><img src="http://feeds.feedburner.com/~f/jeveaux?i=baoul" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=AOO8l"><img src="http://feeds.feedburner.com/~f/jeveaux?i=AOO8l" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeveaux?a=LihKl"><img src="http://feeds.feedburner.com/~f/jeveaux?i=LihKl" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/jeveaux/~4/406426997" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jeveaux.com/blog/2008/cariocando/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.jeveaux.com/blog/2008/cariocando/</feedburner:origLink></item>
	</channel>
</rss>
