<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>horas vagas. Ou não. by T!</title>
	<atom:link href="http://timoteobrasil.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://timoteobrasil.wordpress.com</link>
	<description>blog de timóteo brasil, criado no lab de informática da UFPE. e não editado lá, pq não tem internet.</description>
	<lastBuildDate>Thu, 18 Jun 2009 14:12:25 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='timoteobrasil.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/d8252624498487be3b82acdca83500b4?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>horas vagas. Ou não. by T!</title>
		<link>http://timoteobrasil.wordpress.com</link>
	</image>
			<item>
		<title>[off] Blog do Clube da Vida</title>
		<link>http://timoteobrasil.wordpress.com/2009/01/01/off-blog-do-clube-da-vida/</link>
		<comments>http://timoteobrasil.wordpress.com/2009/01/01/off-blog-do-clube-da-vida/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 17:10:42 +0000</pubDate>
		<dc:creator>Timóteo</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://timoteobrasil.wordpress.com/?p=58</guid>
		<description><![CDATA[Hoje, o Clube da Vida de Garanhuns criou seu blog para saudar os projteos reservados para 2009.
O clube da vida é formado por um grupo de pessoas de visão (foi meu pai quem teve a iniciatva), que se reúnem semanalmente, buscando qualidade de vida para Espírito, Alma e Corpo.
O blog está disponível no site http://clubedavidagaranhuns.blogspot.com
Feliz [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=58&subd=timoteobrasil&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hoje, o Clube da Vida de Garanhuns criou seu <a href="http://clubedavidagaranhuns.blogspot.com" target="_blank">blog</a> para saudar os projteos reservados para 2009.</p>
<p>O clube da vida é formado por um grupo de pessoas de visão (foi meu pai quem teve a iniciatva), que se reúnem semanalmente, buscando qualidade de vida para Espírito, Alma e Corpo.</p>
<p>O blog está disponível no site <a href="http://clubedavidagaranhuns.blogspot.com" target="_blank">http://clubedavidagaranhuns.blogspot.com</a></p>
<p>Feliz 2009 a todos!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timoteobrasil.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timoteobrasil.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timoteobrasil.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timoteobrasil.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timoteobrasil.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timoteobrasil.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timoteobrasil.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timoteobrasil.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timoteobrasil.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timoteobrasil.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=58&subd=timoteobrasil&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://timoteobrasil.wordpress.com/2009/01/01/off-blog-do-clube-da-vida/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ba80a198a3a8feae472fe04d99f10eaf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Timóteo</media:title>
		</media:content>
	</item>
		<item>
		<title>[tópico idiota] Adeus, trema!!!</title>
		<link>http://timoteobrasil.wordpress.com/2008/09/29/topico-idiota-adeus-trema/</link>
		<comments>http://timoteobrasil.wordpress.com/2008/09/29/topico-idiota-adeus-trema/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 00:09:50 +0000</pubDate>
		<dc:creator>Timóteo</dc:creator>
				<category><![CDATA[Sem categoria]]></category>
		<category><![CDATA[idiota]]></category>
		<category><![CDATA[ortografia]]></category>
		<category><![CDATA[trema]]></category>

		<guid isPermaLink="false">http://timoteobrasil.wordpress.com/?p=47</guid>
		<description><![CDATA[Graças a Deus, o presidente assinou hoje o novo tratado de ortografia da língua portuguesa.
A partir de 1º de janeiro de 2009, entram em vigor as novas regras, sem abandonar as antigas, por enquanto&#8230;
Entre essas regras, está o fim do trema, aqueles dois pontos em cima do &#8220;u&#8221;, pra dizer que ele tem som de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=47&subd=timoteobrasil&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Graças a Deus, o presidente assinou hoje o novo tratado de ortografia da língua portuguesa.</p>
<p>A partir de 1º de janeiro de 2009, entram em vigor as novas regras, sem abandonar as antigas, por enquanto&#8230;</p>
<p>Entre essas regras, está o fim do trema, aqueles dois pontos em cima do &#8220;u&#8221;, pra dizer que ele tem som de &#8220;u&#8221;. Que coisa, não?</p>
<p>Referência:</p>
<p><a class="alignleft" href="http://g1.globo.com/Noticias/Vestibular/0,,MUL777973-5604,00-LULA+ASSINA+DECRETO+DA+REFORMA+ORTOGRAFICA.html" target="_blank">G1</a><br />
<br />
<em>Agora, de volta à monografia&#8230;</em></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timoteobrasil.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timoteobrasil.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timoteobrasil.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timoteobrasil.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timoteobrasil.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timoteobrasil.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timoteobrasil.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timoteobrasil.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timoteobrasil.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timoteobrasil.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=47&subd=timoteobrasil&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://timoteobrasil.wordpress.com/2008/09/29/topico-idiota-adeus-trema/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ba80a198a3a8feae472fe04d99f10eaf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Timóteo</media:title>
		</media:content>
	</item>
		<item>
		<title>recorde mundial</title>
		<link>http://timoteobrasil.wordpress.com/2008/06/07/recorde-mundial/</link>
		<comments>http://timoteobrasil.wordpress.com/2008/06/07/recorde-mundial/#comments</comments>
		<pubDate>Sun, 08 Jun 2008 01:12:54 +0000</pubDate>
		<dc:creator>Timóteo</dc:creator>
				<category><![CDATA[Software livre]]></category>
		<category><![CDATA[Download Day]]></category>
		<category><![CDATA[Firefox]]></category>

		<guid isPermaLink="false">http://timoteobrasil.wordpress.com/?p=45</guid>
		<description><![CDATA[
a galera do Firefox quer estabelecer o recorde mundial de downloads de software num espaço de 24 horas. eles estão lançando o download day, que vai acontecer quando lançarem a versão definitiva do Firefox 3. você pode clicar no botão aí em cima pra dar uma olhada no site da proposta. e abaixo, o texto [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=45&subd=timoteobrasil&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://www.spreadfirefox.com/node&amp;id=0&amp;t=294"><img src="http://www.spreadfirefox.com/files/images/affiliates_banners/468x60_dday_pt-br.png" border="0" alt="Download Day - Portuguese" /></a></p>
<p>a galera do Firefox quer estabelecer o recorde mundial de downloads de software num espaço de 24 horas. eles estão lançando o download day, que vai acontecer quando lançarem a versão definitiva do Firefox 3. você pode clicar no botão aí em cima pra dar uma olhada no site da proposta. e abaixo, o texto da equipe do Firefox:</p>
<div class="inner-wrapper">
<blockquote><p>Parece um bom negócio, não acha? Tudo o que você precisa fazer é baixar o Firefox 3 durante o Download Day &#8211; é fácil assim. Não estamos pedindo que você engula uma espada ou equilibre 30 colheres no rosto ao mesmo tempo &#8211; apesar de que isso seria incrível.</p>
<p>A propósito, a data oficial para o lançamento do Firefox 3 será postada aqui em breve, então dê uma passadinha por aqui depois para verificar! Junte-se a nossa comunidade e a este esforço comprometendo-se a baixar o Firefox.</p></blockquote>
</div>
<p>PS: trabalhos, trabalhos, trabalhos&#8230; essa semana eu vou ter quatro sextas-feiras 13&#8230; <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_mad.gif' alt=':x' class='wp-smiley' /> </p>
<p>PPS (Post-Post Scriptum): nas férias, vou tentar ajeitas esses trabalhos (os mais legais, pelo menos) pra postar aqui.</p>
<p>PPPS (Post-Post-Post Scriptum): São Paulo na velocidade 5 em cima do galo&#8230;&#8230;. agora engatou!!!!<br />
P&#8230;S: chega de PS&#8230;.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/timoteobrasil.wordpress.com/45/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/timoteobrasil.wordpress.com/45/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timoteobrasil.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timoteobrasil.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timoteobrasil.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timoteobrasil.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timoteobrasil.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timoteobrasil.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timoteobrasil.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timoteobrasil.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timoteobrasil.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timoteobrasil.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=45&subd=timoteobrasil&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://timoteobrasil.wordpress.com/2008/06/07/recorde-mundial/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ba80a198a3a8feae472fe04d99f10eaf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Timóteo</media:title>
		</media:content>

		<media:content url="http://www.spreadfirefox.com/files/images/affiliates_banners/468x60_dday_pt-br.png" medium="image">
			<media:title type="html">Download Day - Portuguese</media:title>
		</media:content>
	</item>
		<item>
		<title>pra nao dizer q nao postei nada&#8230;</title>
		<link>http://timoteobrasil.wordpress.com/2008/05/24/pra-nao-dizer-q-nao-postei-nada/</link>
		<comments>http://timoteobrasil.wordpress.com/2008/05/24/pra-nao-dizer-q-nao-postei-nada/#comments</comments>
		<pubDate>Sat, 24 May 2008 18:31:13 +0000</pubDate>
		<dc:creator>Timóteo</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Desenvolvimento ágil]]></category>
		<category><![CDATA[livros]]></category>
		<category><![CDATA[Ruby  on Rails]]></category>

		<guid isPermaLink="false">http://timoteobrasil.wordpress.com/?p=43</guid>
		<description><![CDATA[vai uma dica de alguns livros, relacionada com o que estou tentando escrever pra cadeira de metodologia científica:
From Java to Ruby: Things Every Manager Should Know (Bruce Tate)
Rails for java Developers (Stuart Halloway e Justin Gehtland)
Ruby on Rails for PHP and Java Developers (Deepak Vohra)
outros títulos relacionados:
Ruby on Rails for Dummies
Agile Web Development for Rails [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=43&subd=timoteobrasil&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>vai uma dica de alguns livros, relacionada com o que estou <span style="text-decoration:line-through;">tentando</span> escrever pra cadeira de metodologia científica:</p>
<p>From Java to Ruby: Things Every Manager Should Know (Bruce Tate)<br />
Rails for java Developers (Stuart Halloway e Justin Gehtland)<br />
Ruby on Rails for PHP and Java Developers (Deepak Vohra)</p>
<p>outros títulos relacionados:</p>
<p>Ruby on Rails for Dummies<br />
Agile Web Development for Rails (Dave Thomas e David Heinemeier Hansson)<br />
Practical ReST on Rails 2 Projects (Ben Scofield)<br />
The Rails Way (Obie Fernandez)</p>
<p>deu pra perceber que são em inglês, né? não vou colocar propaganda, porque ninguém tá me pagando <span style="text-decoration:line-through;">e todo mundo sabe que tem na amazon (ou no emule)</span>.</p>
<p>OBS: as horas vagas estão ficando cada vez mais escassas <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  (tem um campo de distorção temporal em algum lugar perto de mim). por isso, a mudança de título, em um momento em que eu deveria estar escrevendo um artigo.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/timoteobrasil.wordpress.com/43/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/timoteobrasil.wordpress.com/43/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timoteobrasil.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timoteobrasil.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timoteobrasil.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timoteobrasil.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timoteobrasil.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timoteobrasil.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timoteobrasil.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timoteobrasil.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timoteobrasil.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timoteobrasil.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=43&subd=timoteobrasil&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://timoteobrasil.wordpress.com/2008/05/24/pra-nao-dizer-q-nao-postei-nada/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ba80a198a3a8feae472fe04d99f10eaf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Timóteo</media:title>
		</media:content>
	</item>
		<item>
		<title>notas de estudo de Ruby</title>
		<link>http://timoteobrasil.wordpress.com/2008/04/09/notas-de-estudo-de-ruby/</link>
		<comments>http://timoteobrasil.wordpress.com/2008/04/09/notas-de-estudo-de-ruby/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 06:08:53 +0000</pubDate>
		<dc:creator>Timóteo</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[guia de estudos]]></category>
		<category><![CDATA[ruby learning]]></category>

		<guid isPermaLink="false">http://timoteobrasil.wordpress.com/?p=32</guid>
		<description><![CDATA[
a partir de hoje, temos uma nova seção: as notas de estudo de Ruby em português. são as notas de Satish Talim, traduzidas (por mim) para nosso idioma, o que torna mais fácil a vida de quem não entende inglês. Comecei hoje, então, ainda não temos muita coisa, mas, à medida que eu for traduzindo, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=32&subd=timoteobrasil&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><iframe src='http://digg.com/api/diggthis.php?u=http%3A%2F%2Fdigg.com%2Fprogramming%2Fnotas_de_estudo_de_Ruby' height='82' width='55' frameborder='0' scrolling='no' style='float: right; margin-left: 10px; margin-bottom: 5px; padding: 4px 0 2px 4px; background: #fff;'></iframe></p>
<p>a partir de hoje, temos uma nova seção: as <a href="http://timoteobrasil.wordpress.com/notas-de-estudo-ruby-em-portugues/" target="_self">notas de estudo de Ruby</a> em português. são as <a href="http://rubylearning.com/satishtalim/tutorial.html" target="_blank">notas</a> de <a href="http://satishtalim.com" target="_blank">Satish Talim</a>, traduzidas (por mim) para nosso idioma, o que torna mais fácil a vida de quem não entende inglês. Comecei hoje, então, ainda não temos muita coisa, mas, à medida que eu for traduzindo, a seção será atualizada. fiquem de olho (<span style="text-decoration:line-through;">essa doeu</span>), estou a todo vapor (<span style="text-decoration:line-through;">ai!</span>) traduzindo o tutorial, que tem mais de 120 páginas e é um ótimo guia de estudos para quem quer entrar no mundo de Ruby.</p>
<p>OBS: colaboradores, fiquem à vontade&#8230;</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/timoteobrasil.wordpress.com/32/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/timoteobrasil.wordpress.com/32/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timoteobrasil.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timoteobrasil.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timoteobrasil.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timoteobrasil.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timoteobrasil.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timoteobrasil.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timoteobrasil.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timoteobrasil.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timoteobrasil.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timoteobrasil.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=32&subd=timoteobrasil&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://timoteobrasil.wordpress.com/2008/04/09/notas-de-estudo-de-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ba80a198a3a8feae472fe04d99f10eaf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Timóteo</media:title>
		</media:content>
	</item>
		<item>
		<title>curso de ruby online</title>
		<link>http://timoteobrasil.wordpress.com/2008/04/08/curso-de-ruby-online/</link>
		<comments>http://timoteobrasil.wordpress.com/2008/04/08/curso-de-ruby-online/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 21:21:29 +0000</pubDate>
		<dc:creator>Timóteo</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[curso online]]></category>
		<category><![CDATA[ruby learning]]></category>

		<guid isPermaLink="false">http://timoteobrasil.wordpress.com/?p=28</guid>
		<description><![CDATA[
o programador indiano Satish Talim está oferecendo um curso de Ruby online (já vai na 5ª turma) DE GRAÇA!!! o curso é ministrado via moodle (um sistema usado para cursos à distância &#8211; depois escrevo sobre ele).
a duração é de 12 semanas e vai iniciar em 3 de maio. as inscrições ainda estão abertas (até [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=28&subd=timoteobrasil&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><iframe src='http://digg.com/api/diggthis.php?u=http%3A%2F%2Fdigg.com%2Fprogramming%2Fcurso_de_ruby_online' height='82' width='55' frameborder='0' scrolling='no' style='float: right; margin-left: 10px; margin-bottom: 5px; padding: 4px 0 2px 4px; background: #fff;'></iframe></p>
<p>o programador indiano <a href="http://www.satishtalim.com/" target="_blank">Satish Talim</a> está oferecendo um curso de Ruby online (já vai na 5ª turma) DE GRAÇA!!! o curso é ministrado via moodle (um sistema usado para cursos à distância &#8211; depois escrevo sobre ele).</p>
<p>a duração é de 12 semanas e vai iniciar em 3 de maio. as inscrições ainda estão abertas (até 6 de maio) e qualquer um pode se inscrever. basta ir ao <a href="http://rubylearning.org" target="_blank">rubylearning.org</a>, fazer o cadastro e enviar um e-mail para o Satish Talim, contendo seu nome e sobrenome cadastrados no site (o assunto deve ter o nome do curso incluso). cerca de um dia depois (ou menos), ele vai enviar uma chave para participar do curso. ao final, o participante recebe um certificado de participação.</p>
<p>antes de iniciar o curso, é recomendável que a gente leia (sim, eu me inscrevi) as notas de estudo disponíveis em <a href="http://rubylearning.com/satishtalim/tutorial.html" target="_blank">rubylearning.com</a>.</p>
<p>como nem tudo é perfeito, tem um pequeno problema, tanto no curso quanto no tutorial: são em inglês!!! o pessoal que souber inglês tem aí uma ótima fonte de aprendizado&#8230; pra quem não sabe, tem uma versão em espanhol <a href="http://ruby.reboot.com.mx/" target="_blank">aqui</a>, traduzido por dois programadores mexicanos.</p>
<p>[EDIT] Já ia esquecendo&#8230; pra quem quer conhecer o projeto moodle e como funciona, <a href="http://moodle.org/" target="_blank">essa</a> é a página oficial do projeto&#8230;</p>
<p>PS: [off] que tal o tema novo do blog???</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/timoteobrasil.wordpress.com/28/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/timoteobrasil.wordpress.com/28/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timoteobrasil.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timoteobrasil.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timoteobrasil.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timoteobrasil.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timoteobrasil.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timoteobrasil.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timoteobrasil.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timoteobrasil.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timoteobrasil.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timoteobrasil.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=28&subd=timoteobrasil&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://timoteobrasil.wordpress.com/2008/04/08/curso-de-ruby-online/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ba80a198a3a8feae472fe04d99f10eaf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Timóteo</media:title>
		</media:content>
	</item>
		<item>
		<title>processamento digital de imagens&#8230;</title>
		<link>http://timoteobrasil.wordpress.com/2008/03/28/processamento-digital-de-imagens/</link>
		<comments>http://timoteobrasil.wordpress.com/2008/03/28/processamento-digital-de-imagens/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 05:08:05 +0000</pubDate>
		<dc:creator>Timóteo</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Equalização de Histograma]]></category>
		<category><![CDATA[Histograma]]></category>
		<category><![CDATA[PDI]]></category>
		<category><![CDATA[Processamento Digital de Imagens]]></category>

		<guid isPermaLink="false">http://timoteobrasil.wordpress.com/?p=23</guid>
		<description><![CDATA[
Devido ao início das aulas e de conseguir WoWar via Wine, fiz uma pequena pausa nos estudos de Ruby on Rails. Logo será retomado&#8230;
Enquanto isso, a gente tem trabalho de faculdade pra fazer, né??? O primeiro foi exatamente nessa cadeira: PDI. O assunto: equalização de histograma (legal, né?). Vamos ao trabalho:
Criar um programa em C/C++ [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=23&subd=timoteobrasil&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><iframe src='http://digg.com/api/diggthis.php?u=http%3A%2F%2Fdigg.com%2Fprogramming%2Fprocessamento_digital_de_imagens' height='82' width='55' frameborder='0' scrolling='no' style='float: right; margin-left: 10px; margin-bottom: 5px; padding: 4px 0 2px 4px; background: #fff;'></iframe><br />
Devido ao início das aulas <span style="text-decoration:line-through;">e de conseguir WoWar via Wine</span>, fiz uma pequena pausa nos estudos de Ruby on Rails. Logo será retomado&#8230;</p>
<p>Enquanto isso, a gente tem trabalho de faculdade pra fazer, né??? O primeiro foi exatamente nessa cadeira: PDI. O assunto: equalização de histograma (legal, né?). Vamos ao trabalho:</p>
<p><em>Criar um programa em C/C++ que irá receber 2 parâmetros: o nome do arquivo de entrada e do arquivo de saída, respectivamente. O programa deverá ler o arquivo de entrada (arquivo de imagem no formato PGM ), realizar a equalização do histograma dos pixels e gravar a imagem equalizada no arquivo de saída.</em></p>
<p>Vamos ao programa:</p>
<p><span id="more-23"></span></p>
<p>um cabeçalho básico</p>
<pre>#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
include &lt;string.h&gt;</pre>
<p>mais a biblioteca para alocação dinâmica de memória</p>
<pre>#include &lt;malloc.h&gt;</pre>
<p>um vetorzão pra armazenar os pixels da imagem PGM, mais os protótipos das funções que utilizo no programa: uma pra processar PGM Ascii e outra pra processar PGM binário)</p>
<pre>int **vValoresObtidos;
int arredonda(float valor);
int processaAscii(int cinzas, int largura, int altura, FILE *entrada, FILE *saida);
int processaBinario(int cinzas, int largura, int altura, FILE *entrada, FILE *saida);</pre>
<p>A função main, que recebe os nomes dos arquivos pela linha de comando, escreve o cabeçalho do novo arquivo (Esse cabeçalho é em ascii, mesmo nos arquivos PGM binários). Os comentários no código explicam bem o que eu quiz fazer:</p>
<pre> int main(int argc, char** argv) {

    <span style="color:#c0c0c0;">//declaração das variáveis</span>
    FILE *entrada, *saida; <span style="color:#c0c0c0;">//arquivos de entrada e saída</span>
    int tonsDeCinza=0, largura=0, altura=0; <span style="color:#c0c0c0;">//os nomes são auto-explicativos

    //variáveis auxiliares</span>
    char param[5]; <span style="color:#c0c0c0;">//pra ler do arquivo</span>
    int p2p5=0;<span style="color:#c0c0c0;"> //pra verificar se o arquivo é ascii ou binário</span>

<span style="color:#c0c0c0;">    //se o número de parâmetros passados não for exatamente igual a 3, sai do programa</span>
    if(argc != 3) return (EXIT_FAILURE)

<span style="color:#c0c0c0;">    //verificação de que os nomes dos arquivos estão corretos</span>
    printf("Arquivo de entrada é %s\n", argv[1]);
    printf("Arquivo de saída será %s\n", argv[2]);

<span style="color:#c0c0c0;">    //verifica se os arquivos podem ser acessados:</span><span style="color:#c0c0c0;">

    //arquivo de entrada, somente leitura</span>
    if(!(entrada=fopen(argv[1], "r"))) {
        printf("arquivo %s não existe!!!\n", argv[1]);
        return(EXIT_FAILURE);
    }

<span><span style="color:#c0c0c0;">    //arquivo de saída, leitura-escrita</span></span>
    if(!(saida=fopen(argv[2], "w+"))){
        printf("Erro ao acessar o arquivo %s", argv[2]);
        return(EXIT_FAILURE);
    }

<span style="color:#c0c0c0;">/* Uma observação sobre a passagem de argumentos de linha de comando em C:
 * C armazena em argc o número de parâmetros passados na linha de comando,
 * incluindo a chamada do próprio programa, por isso, se chamarmos o nosso programa
 * da forma correta, argc terá o valor 3 e argv, que armazena os parâmetros passados,
 * terá os valores: argv[0]: nome do programa, argv[1]: arquivo de entrada, argv[2]: arquivo de saída
 */</span>

<span style="color:#c0c0c0;">// criando o cabeçalho do novo arquivo:

// a condição de parada deste loop é chegar ao final do arquivo,
// isso é só uma garantia pra que um arquivo vazio ou mal formado não seja lido</span>

    while(!feof(entrada)){
        fgets(param, 5, entrada); <span style="color:#c0c0c0;">//lê até cinco caracteres do arquivo</span>
        if(param[0]=='#') {
            <span style="color:#c0c0c0;">//ignora os comentários</span>
            while(getc(entrada)!='\n');
            continue;
        }

        if(param[0]=='P'){
            <span style="color:#c0c0c0;">//verifica se o arquivo é ascii ou binário...
            //P2 diz que os dados estão em formato ascii, P5 diz que é binário</span>
            p2p5=param[1]=='2'?2:5;
        }

        if(contaParam==1){
            <span style="color:#c0c0c0;">//pega o primeiro parâmetro válido e atribui à largura</span>
            largura=atoi(param);
        }else if (contaParam==2){
            <span style="color:#c0c0c0;">//pega o segundo parâmetro válido e atribui à altura</span>
            altura=atoi(param);
        }else if(contaParam==3){
            <span style="color:#c0c0c0;">//pega o terceiro parâmetro válido e atribui aos tons de cinza</span>
            tonsDeCinza=atoi(param);
        }

<span style="color:#c0c0c0;">        //escreve os parâmetros no arquivo de saída

        //os arquivos PGM, mesmo que sejam no formato binário, têm seu cabeçalho em ASCII</span>
        fprintf(saida, "%s", param);
        contaParam++;

        <span style="color:#c0c0c0;">//depois de pegar os quatro primeiros parâmetros sai do laço</span>
        if(contaParam &gt;3)break;
    }

<span style="color:#c0c0c0;">    //chama a função correta de interpretação</span>

    if(p2p5==2){
<span style="color:#c0c0c0;">        //como eu escrevi anteriormente, P2 é ASCII...</span>
        processaAscii(tonsDeCinza, largura, altura, entrada, saida);
    }else if (p2p5==5){
<span style="color:#c0c0c0;">        //e P5 é binário</span>
        processaBinario(tonsDeCinza, largura, altura, entrada, saida);
    }else{
<span style="color:#c0c0c0;">        //mensagem de erro. Enquanto estou escrevendo este post,
        //percebi que essa mensagem nunca será exibida,
        //por causa do operador ternário que eu utilizei na atribuição de p2p5</span>
        printf("Erro de formato!!! O arquivo está mal definido!!!\n");
        return(EXIT_FAILURE);
    }

<span style="color:#c0c0c0;">    //fecha os arquivos antes de sair</span>
    fclose(entrada);
    fclose(saida);
    return (EXIT_SUCCESS);
}<span style="color:#c0c0c0;">//fim do main</span></pre>
<p>Agora, a função que faz o arredondamento de um número float. Ela retorna o valor inteiro mais próximo, somando 0.5 e cortando os decimais.</p>
<pre>int arredonda(float valor){
    return (valor+0.5);
}</pre>
<p>As funções processaAscii e processaBinário são praticamente iguais, a única diferença é na leitura e escrita no arquivo Vou utilizar a processaAscii como exemplo e citar o que é diferente na processaBinário.</p>
<pre>int processaAscii(int cinzas, int largura, int altura, FILE *entrada, FILE *saida){
    <span style="color:#c0c0c0;">
    //alocação de memória para os ponteiros de cada linha do arquivo</span>
    vValoresObtidos=malloc(sizeof(int*)*largura);
    if(!vValoresObtidos) {printf("erro no malloc1"); exit(EXIT_FAILURE);}

    <span style="color:#c0c0c0;">//declaração dos vetores
    <span style="color:#000000;">int vCinzas[cinzas+1];</span></span>
    float vProbabilidades[cinzas+1];
    float vAcumulado[cinzas+1];
    int vNormal[cinzas+1];

<span style="color:#c0c0c0;">    //variáveis auxiliares</span>
    int i, j;
    char parm[5]; <span style="color:#00ff00;">//variável para ler caracteres do arquivo ascii. Não existe no processaBinário

<span style="color:#c0c0c0;">    </span><span style="color:#000000;"><span style="color:#c0c0c0;">//alocação dos vetores de valores obtidos</span>
    for(i=0;i&lt;largura;i++){
        vValoresObtidos[i]=malloc(sizeof(int)*altura);
        if(!vValoresObtidos){
            printf("erro no malloc2");
            exit(EXIT_FAILURE);
        }
    }

    <span style="color:#c0c0c0;">//inicialização dos vetores</span>
    for(i=0;i&lt;=cinzas;i++){
        vCinzas[i]=0;
        vProbabilidades[i]=0;
        vAcumulado[i]=0;
        vNormal[i]=0;
    }

<span style="color:#c0c0c0;">    //lê os valores do arquivo e armazena na matriz que alocamos dinamicamente</span>
    for(i=0;i&lt;largura;i++){
        for(j=0;j&lt;altura;j++){
            int valor;
            fgets(parm, 5, entrada);<span style="color:#00ff00;">//não existe no processaBinario</span>
            valor=atoi(parm);<span style="color:#00ff00;">//fica assim: valor=fgetc(entrada);</span>
            vValoresObtidos[i][j]=valor;
            vCinzas[valor]++;
        }
    }</span></span>

    <span style="color:#c0c0c0;">//agora os cálculos
    //cálculo das probabilidades e do acumulado</span>
    vProbabilidades[0]=(float)(vCinzas[0])/(largura*altura);
    vAcumulado[0]=vProbabilidades[0];
    for(i=1;i&lt;=cinzas;i++){
        vProbabilidades[i]=(float)(vCinzas[i])/(largura*altura);
        vAcumulado[i]=vAcumulado[i-1]+vProbabilidades[i];
    }

    <span style="color:#c0c0c0;">//normalização</span>
    for(i=0;i&lt;=cinzas;i++){
        vNormal[i]=arredonda(vAcumulado[i]*cinzas);
    }

    <span style="color:#c0c0c0;">//escrever novos valores</span>
    for(i=0;i&lt;largura;i++){
        for(j=0;j&lt;altura;j++){
            char valor[5];
            sprintf(valor, "%d\n", vNormal[vValoresObtidos[i][j]]);
            fprintf(saida, valor);
            <span style="color:#00ff00;">/* no código que processa binários, todo este corpo dos dois laços for
             * é substituído por
             * fputc(vNormal[vValoresObtidos[i][j]],saida);
             */</span>
        }
    }

<span style="color:#c0c0c0;">    //libera a memória e tremina a função</span>
    for(i=0;i&lt;largura;i++){
        free(vValoresObtidos[i]);
    }
    free(vValoresObtidos);
    return EXIT_SUCCESS;
}<span style="color:#c0c0c0;"> //fim da função processaAscii</span></pre>
<p>Agora, é só compilar e rodar:</p>
<pre>$ gcc equaliza.c -o equaliza $ ./equaliza &lt;img_original&gt; &lt;nova_img&gt;</pre>
<p>Os resultados, utilizando a famosa imagem da lena (tive que converter pra png por causa do wordpress). A de cima é a original. Nas de baixo, a primeira fopi a equalizada pelo código e a segunda foi equalizada pelo GIMP:</p>
<div style="text-align:center;"><img src="http://timoteobrasil.files.wordpress.com/2008/03/lena.png?w=275&#038;h=275" alt="Lena Original" width="275" height="275" /></div>
<div id="arquivos">
<p><img src="http://timoteobrasil.files.wordpress.com/2008/03/lenaeq.png?w=200&#038;h=200" alt="Lena Equalizada por este Código" width="200" height="200" /> <img src="http://timoteobrasil.files.wordpress.com/2008/03/lena-gimp.png?w=200&#038;h=200" alt="Lena Equalizada pelo GIMP" width="200" height="200" /></div>
<p>Bom, o código não está perfeito. Estou trabalhando nele, portando pra Java e fazendo outro código para detecção de bordas aplicando o operador de Sobel. Valeu!!!</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/timoteobrasil.wordpress.com/23/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/timoteobrasil.wordpress.com/23/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timoteobrasil.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timoteobrasil.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timoteobrasil.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timoteobrasil.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timoteobrasil.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timoteobrasil.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timoteobrasil.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timoteobrasil.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timoteobrasil.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timoteobrasil.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=23&subd=timoteobrasil&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://timoteobrasil.wordpress.com/2008/03/28/processamento-digital-de-imagens/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ba80a198a3a8feae472fe04d99f10eaf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Timóteo</media:title>
		</media:content>

		<media:content url="http://timoteobrasil.files.wordpress.com/2008/03/lena.png" medium="image">
			<media:title type="html">Lena Original</media:title>
		</media:content>

		<media:content url="http://timoteobrasil.files.wordpress.com/2008/03/lenaeq.png" medium="image">
			<media:title type="html">Lena Equalizada por este Código</media:title>
		</media:content>

		<media:content url="http://timoteobrasil.files.wordpress.com/2008/03/lena-gimp.png" medium="image">
			<media:title type="html">Lena Equalizada pelo GIMP</media:title>
		</media:content>
	</item>
		<item>
		<title>ajude a fazer o Ubuntu</title>
		<link>http://timoteobrasil.wordpress.com/2008/02/29/ajude-a-fazer-o-ubuntu/</link>
		<comments>http://timoteobrasil.wordpress.com/2008/02/29/ajude-a-fazer-o-ubuntu/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 23:13:25 +0000</pubDate>
		<dc:creator>Timóteo</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://timoteobrasil.wordpress.com/?p=22</guid>
		<description><![CDATA[
Estava passeando pelo Slashdot, quando vi uma idéia muito legal: O pessoal do Ubuntu tem um sistema de Brainstorming, ou seja, as pessoas dão as idéias e a própria comunidade avalia se a idéia é boa ou não. Daí, você já pode ter até uma idéia de como vai ser a próxima versão da nossa [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=22&subd=timoteobrasil&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><iframe src='http://digg.com/api/diggthis.php?u=http%3A%2F%2Fdigg.com%2Flinux_unix%2Fajude_a_fazer_o_Ubuntu' height='82' width='55' frameborder='0' scrolling='no' style='float: right; margin-left: 10px; margin-bottom: 5px; padding: 4px 0 2px 4px; background: #fff;'></iframe></p>
<p>Estava passeando pelo <a href="http://www.slashdot.com" target="_blank">Slashdot</a>, quando vi uma idéia muito legal: O pessoal do <a href="http://www.ubuntu.com" target="_blank">Ubuntu</a> tem um sistema de Brainstorming, ou seja, as pessoas dão as idéias e a própria comunidade avalia se a idéia é boa ou não. Daí, você já pode ter até uma idéia de como vai ser a próxima versão da nossa distribuição liveCD favorita. Qualquer um pode sugerir alguma idéia, é só criar uma conta no site.</p>
<p>Referências:</p>
<p><a href="http://linux.slashdot.org/article.pl?sid=08/02/28/2029218" target="_blank">artigo no Slashdot</a><br />
<a href="http://brainstorm.ubuntu.com/" target="_blank">Ubuntu brainstorm</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/timoteobrasil.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/timoteobrasil.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timoteobrasil.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timoteobrasil.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timoteobrasil.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timoteobrasil.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timoteobrasil.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timoteobrasil.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timoteobrasil.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timoteobrasil.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timoteobrasil.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timoteobrasil.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=22&subd=timoteobrasil&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://timoteobrasil.wordpress.com/2008/02/29/ajude-a-fazer-o-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ba80a198a3a8feae472fe04d99f10eaf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Timóteo</media:title>
		</media:content>
	</item>
		<item>
		<title>êêÊêêÊêÊÊê!!!!!!! Dell+Ubuntu no Brasil!!!!!!!</title>
		<link>http://timoteobrasil.wordpress.com/2008/02/25/eeeeeeeeee-dellubuntu-no-brasil/</link>
		<comments>http://timoteobrasil.wordpress.com/2008/02/25/eeeeeeeeee-dellubuntu-no-brasil/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 23:49:58 +0000</pubDate>
		<dc:creator>Timóteo</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://timoteobrasil.wordpress.com/?p=21</guid>
		<description><![CDATA[
A notícia é de sábado, mas eu achei bem legal. Vi no softwarelivre.org que a Dell vai trazer notebooks (Da linha Vostro) com Ubuntu pré-instalado para o Brasil. O site não oferece mais detalhes, mas EU QUERO!!!!!!
Referência: http://www.softwarelivre.org/news/10861
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=21&subd=timoteobrasil&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><iframe src='http://digg.com/api/diggthis.php?u=http%3A%2F%2Fdigg.com%2Flinux_unix%2FDell_Ubuntu_no_Brasil' height='82' width='55' frameborder='0' scrolling='no' style='float: right; margin-left: 10px; margin-bottom: 5px; padding: 4px 0 2px 4px; background: #fff;'></iframe></p>
<p>A notícia é de sábado, mas eu achei bem legal. Vi no <a href="http://www.softwarelivre.org" target="_blank">softwarelivre.org</a> que a Dell vai trazer notebooks (Da linha Vostro) com Ubuntu pré-instalado para o Brasil. O site não oferece mais detalhes, mas EU QUERO!!!!!!</p>
<p>Referência: <a href="http://www.softwarelivre.org/news/10861" target="_blank">http://www.softwarelivre.org/news/10861</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/timoteobrasil.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/timoteobrasil.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timoteobrasil.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timoteobrasil.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timoteobrasil.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timoteobrasil.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timoteobrasil.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timoteobrasil.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timoteobrasil.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timoteobrasil.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timoteobrasil.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timoteobrasil.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=21&subd=timoteobrasil&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://timoteobrasil.wordpress.com/2008/02/25/eeeeeeeeee-dellubuntu-no-brasil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ba80a198a3a8feae472fe04d99f10eaf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Timóteo</media:title>
		</media:content>
	</item>
		<item>
		<title>ruby on rails 2.0 iniciando um projeto</title>
		<link>http://timoteobrasil.wordpress.com/2008/02/19/ruby-on-rails-20-iniciando-um-projeto/</link>
		<comments>http://timoteobrasil.wordpress.com/2008/02/19/ruby-on-rails-20-iniciando-um-projeto/#comments</comments>
		<pubDate>Tue, 19 Feb 2008 21:57:56 +0000</pubDate>
		<dc:creator>Timóteo</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Software livre]]></category>
		<category><![CDATA[rails 2.0]]></category>
		<category><![CDATA[Ruby  on Rails]]></category>

		<guid isPermaLink="false">http://timoteobrasil.wordpress.com/?p=20</guid>
		<description><![CDATA[Voltando a falar do Rails&#8230;..
Vou iniciar de novo um projeto de controle de fluxo de alunos no laboratório, usando como base os tutoriais presentes no Terminally Incoherent e no Akita on Rails. Então, vamos lá:
Depois de instalar o ruby, as gemas e o rails (veja aqui como fazer isso), vamos criar o projeto (Nota: é [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=20&subd=timoteobrasil&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Voltando a falar do Rails&#8230;..</p>
<p>Vou iniciar <strike>de novo</strike> um projeto de controle de fluxo de alunos no laboratório, usando como base os tutoriais presentes no <a href="http://www.terminally-incoherent.com/blog/2008/01/17/starting-a-rails-20-project/" target="_blank">Terminally Incoherent</a> e no <a href="http://www.akitaonrails.com/2008/2/1/rolling-with-rails-2-0-o-primeiro-tutorial-completo-parte-1" target="_blank">Akita on Rails</a>. Então, vamos lá:</p>
<p>Depois de instalar o ruby, as gemas e o rails (veja <a href="http://timoteobrasil.wordpress.com/2008/01/08/ruby-on-rails-i-o-inicio/" target="_blank">aqui</a> como fazer isso), vamos criar o projeto (Nota: é ainda mais fácil do que com o rails 1.2).</p>
<h3>criando o projeto e o banco de dados</h3>
<p>1. Não mudou nada em relação a criar o projeto. É só digitar (lembrando que o nome do projeto é relatorio):</p>
<pre>rails relatorio</pre>
<p>[editado]<br />
para definir o mysql como banco de dados do projeto, pode-se colocar a opção</p>
<pre>-d mysql</pre>
<p>logo após o nome do projeto. No nosso caso, ficaria assim</p>
<pre>rails relatorio -d mysql</pre>
<p>[/editado]</p>
<p>2. Agora, sim, mudanças&#8230; Editar o arquivo config/database.yml, dentro da pasta do projeto (O Rails mudou o SGBD padrão para o SQLite3, então, vamos ter que modificar realmente o arquivo de definição de banco de dados para usá-lo com MySQL, <strike>que agora é da Sun</strike>). O meu arquivo ficou assim:</p>
<pre>defaults: &amp;defaults

  adapter: mysql

  encoding: utf8

  username: root

  password:

  socket: /var/run/mysqld/mysqld.sockdevelopment:

  database: sits_development

  &lt;&lt;: *defaults

test:

  database: sits_test

  &lt;&lt;: *defaults

production:

  database: sits_production

  &lt;&lt;: *defaults</pre>
<p>Uma coisa que eu achei legal foi a parada do &#8220;defaults&#8221;. Dá pra definir os parâmetros que são iguais para os três bancos e utilizá-los nas outras definições do arquivo, só chamando um &#8220;atalho&#8221; para a definição dos defaults.</p>
<p>Depois de editado o arquivo de configuração, vamos criar os bancos de dados. Prepare-se, esta é uma etapa muito complicada, que envolve códigos SQL extremamente complexos. Muito cuidado, digite no terminal, dentro da pasta do projeto:</p>
<pre>rake db:create:all</pre>
<p>Ué, cadê o SQL extremamente complicado? Foi pro espaço (O final do parágrafo anterior foi só pra assustar&#8230; :p). Se você estiver duvidando, abra o mysql da forma que desejar e veja que os bancos de dados foram realmente criados.</p>
<h3>criando o scaffold e as tabelas</h3>
<p>Vamos agora, criar as tabelas para o banco de dados. Aqui, vou criar a tabela de alunos, já que é a mais simples do nosso projeto. Esqueça o SQL, os campos serão criados dentro do script de scaffold, da seguinte forma:</p>
<pre>script/generate scaffold Aluno cpf:string nome:string curso:string</pre>
<p>Agora, geramos o banco de dados utilizando o comando</p>
<pre>rake db:migrate</pre>
<p>Se você quiser olhar no mysql, verá que a tabela alunos foi realmente criada. Tudo isso sem uma única linha sequer de SQL. Legal, né?</p>
<h3>Criando uma rota para a página principal</h3>
<p>Para criar uma rota, é só editar o arquivo config/routes.rb. Por enquanto, vamos definir a página de cadastro de alunos (que já foi criada automaticamente pelo scaffold) como sendo a principal. Precisamos apenas incluir a linha</p>
<pre>  map.root :controller =&gt; 'alunos'</pre>
<p>logo abaixo de</p>
<pre>ActionController::Routing::Routes.draw do |map|</pre>
<p>Agora, depois de salvar o arquivo, deletamos a página public/index.html (Essa página é aquela que diz &#8220;Welcome Aboard&#8221;).</p>
<p>Pra ver o resultado, iniciamos o server com o comando</p>
<p>script/server</p>
<p>e verificar a aplicação no endereço localhost:3000 dentro do navegador.</p>
<p><iframe src='http://digg.com/api/diggthis.php?u=http%3A%2F%2Fdigg.com%2Fprogramming%2Fruby_on_rails_2_0_iniciando_um_projeto' height='82' width='55' frameborder='0' scrolling='no' style='float: right; margin-left: 10px; margin-bottom: 5px; padding: 4px 0 2px 4px; background: #fff;'></iframe></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/timoteobrasil.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/timoteobrasil.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timoteobrasil.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timoteobrasil.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timoteobrasil.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timoteobrasil.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timoteobrasil.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timoteobrasil.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timoteobrasil.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timoteobrasil.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timoteobrasil.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timoteobrasil.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=timoteobrasil.wordpress.com&blog=2341962&post=20&subd=timoteobrasil&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://timoteobrasil.wordpress.com/2008/02/19/ruby-on-rails-20-iniciando-um-projeto/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ba80a198a3a8feae472fe04d99f10eaf?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Timóteo</media:title>
		</media:content>
	</item>
	</channel>
</rss>