<?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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Diego Alvarez Nogueira</title>
	<atom:link href="http://diegonogueira.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://diegonogueira.wordpress.com</link>
	<description>WebDicas de ruby on rails, linux, e etc [...]</description>
	<lastBuildDate>Tue, 08 Dec 2009 01:02:49 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='diegonogueira.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/d79e155059d6c2b9aa2fdd339a31792b?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Diego Alvarez Nogueira</title>
		<link>http://diegonogueira.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://diegonogueira.wordpress.com/osd.xml" title="Diego Alvarez Nogueira" />
		<item>
		<title>Ruby on rails na prática!</title>
		<link>http://diegonogueira.wordpress.com/2009/12/07/ruby-on-rails-na-pratica/</link>
		<comments>http://diegonogueira.wordpress.com/2009/12/07/ruby-on-rails-na-pratica/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 01:02:49 +0000</pubDate>
		<dc:creator>diegonogueira</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[TiDigital]]></category>
		<category><![CDATA[revista]]></category>

		<guid isPermaLink="false">http://diegonogueira.wordpress.com/?p=310</guid>
		<description><![CDATA[Boa noite pessoal!Escrevi uma matéria bem legal na revista TIdigital na edição dezembro/2009 sobre ruby on rails (Ruby on rails na prática). Caso queiram conferir já esta nas bancas.
Abraços a todos!
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=310&subd=diegonogueira&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://diegonogueira.files.wordpress.com/2009/12/capa_10_menor.jpg" target="_blank"><img src="http://diegonogueira.files.wordpress.com/2009/12/capa_10_menor.jpg?w=100&#038;h=135" alt="" title="capa_10_menor" width="100" height="135" class="alignleft size-full wp-image-312" /></a>Boa noite pessoal!<br />Escrevi uma matéria bem legal na revista <a href="http://www.revistatidigital.com.br/index.php/2009/12" target="_blank">TIdigital</a> na edição dezembro/2009 sobre ruby on rails (Ruby on rails na prática). Caso queiram conferir já esta nas bancas.</p>
<p>Abraços a todos!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegonogueira.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegonogueira.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegonogueira.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegonogueira.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegonogueira.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegonogueira.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegonogueira.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegonogueira.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegonogueira.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegonogueira.wordpress.com/310/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=310&subd=diegonogueira&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://diegonogueira.wordpress.com/2009/12/07/ruby-on-rails-na-pratica/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f2c667749b093110cea8dd62b89beb5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegonogueira</media:title>
		</media:content>

		<media:content url="http://diegonogueira.files.wordpress.com/2009/12/capa_10_menor.jpg" medium="image">
			<media:title type="html">capa_10_menor</media:title>
		</media:content>
	</item>
		<item>
		<title>Conectando ruby + postgres usando DBI:Pg</title>
		<link>http://diegonogueira.wordpress.com/2009/11/23/conectando-ruby-postgres-usando-dbi/</link>
		<comments>http://diegonogueira.wordpress.com/2009/11/23/conectando-ruby-postgres-usando-dbi/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 23:55:25 +0000</pubDate>
		<dc:creator>diegonogueira</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[dbd]]></category>
		<category><![CDATA[dbi]]></category>
		<category><![CDATA[erro]]></category>
		<category><![CDATA[pg]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://diegonogueira.wordpress.com/?p=304</guid>
		<description><![CDATA[Olá pessoal!!
Recentemente tive vários problemas ao tentar conectar o ruby com o banco postgres via dbi com a porta diferente da padrão 5432. Era erro atrás de erro, só conseguia conectar com a porta padrão 5432, mas queria utilizar outra, por exemplo, 5433. Até que consegui assim:

require 'dbi'
con=[&#34;DBI:Pg:dbname=nome_do_banco;host=localhost;port=porta&#34;, &#34;nome_do_usuario&#34;, &#34;senha&#34;]
DBI.connect(*con)

É isso ai!
Abraços!
    [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=304&subd=diegonogueira&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Olá pessoal!!</p>
<p>Recentemente tive vários problemas ao tentar conectar o ruby com o banco postgres via dbi com a porta diferente da padrão 5432. Era erro atrás de erro, só conseguia conectar com a porta padrão 5432, mas queria utilizar outra, por exemplo, 5433. Até que consegui assim:</p>
<pre class="brush: ruby;">
require 'dbi'
con=[&quot;DBI:Pg:dbname=nome_do_banco;host=localhost;port=porta&quot;, &quot;nome_do_usuario&quot;, &quot;senha&quot;]
DBI.connect(*con)
</pre>
<p>É isso ai!<br />
Abraços!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegonogueira.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegonogueira.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegonogueira.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegonogueira.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegonogueira.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegonogueira.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegonogueira.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegonogueira.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegonogueira.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegonogueira.wordpress.com/304/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=304&subd=diegonogueira&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://diegonogueira.wordpress.com/2009/11/23/conectando-ruby-postgres-usando-dbi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f2c667749b093110cea8dd62b89beb5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegonogueira</media:title>
		</media:content>
	</item>
		<item>
		<title>Testando accepts_nested_attributes_for com rspec</title>
		<link>http://diegonogueira.wordpress.com/2009/09/13/testando-accepts_nested_attributes_for-com-rspec/</link>
		<comments>http://diegonogueira.wordpress.com/2009/09/13/testando-accepts_nested_attributes_for-com-rspec/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 22:53:29 +0000</pubDate>
		<dc:creator>diegonogueira</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[rspec]]></category>
		<category><![CDATA[accepts_nested_attributes_for]]></category>
		<category><![CDATA[nested_attributes]]></category>
		<category><![CDATA[spec]]></category>

		<guid isPermaLink="false">http://diegonogueira.wordpress.com/?p=297</guid>
		<description><![CDATA[Fala galera!
Vai uma dica para quem precisa testar com rspec um controle que esta utilizando nested attributes.
Digamos que temos um model assim e que criou toda estrutura utilizando o script/generate rspec_scaffold product:

class Product &#60; ActiveRecord::Base

  #validates
  validates_presence_of :name
  validates_presence_of :line_id

  #associations
  has_many :photos, :as =&#62; :photograph, :dependent =&#62; :delete_all

  [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=297&subd=diegonogueira&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Fala galera!</p>
<p>Vai uma dica para quem precisa testar com rspec um controle que esta utilizando nested attributes.<br />
Digamos que temos um model assim e que criou toda estrutura utilizando o script/generate rspec_scaffold product:</p>
<pre class="brush: ruby;">
class Product &lt; ActiveRecord::Base

  #validates
  validates_presence_of :name
  validates_presence_of :line_id

  #associations
  has_many :photos, :as =&gt; :photograph, :dependent =&gt; :delete_all

  #nested attributes
  accepts_nested_attributes_for :photos, :allow_destroy =&gt; true,
                                :reject_if =&gt; proc { |s| s['image'].blank?}
end
</pre>
<p>Provavelmente na hora que rodar um rake spec, você terá um erro em:</p>
<pre class="brush: ruby;">
  describe &quot;GET new&quot; do
    it &quot;assigns a new product as @product&quot; do
      Product.stub!(:new).and_return(mock_product)
      get :new
      assigns[:product].should equal(mock_product)
    end
  end
</pre>
<p>Então vamos alterar para que este teste passe:</p>
<pre class="brush: ruby;">
  describe &quot;GET new&quot; do
    it &quot;assigns a new product as @product&quot; do
      product_model = mock_model(Product, :photos =&gt; mock_model(Photo))
      Product.stub!(:new).and_return product_model
      product_model.photos.should_receive(:build)
      get :new
      assigns[:product].should equal(product_model)
    end
  end
</pre>
<p>Pronto, agora seu teste ira passar!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegonogueira.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegonogueira.wordpress.com/297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegonogueira.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegonogueira.wordpress.com/297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegonogueira.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegonogueira.wordpress.com/297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegonogueira.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegonogueira.wordpress.com/297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegonogueira.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegonogueira.wordpress.com/297/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=297&subd=diegonogueira&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://diegonogueira.wordpress.com/2009/09/13/testando-accepts_nested_attributes_for-com-rspec/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f2c667749b093110cea8dd62b89beb5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegonogueira</media:title>
		</media:content>
	</item>
		<item>
		<title>Vídeo sobre XP(Extreme Programming)</title>
		<link>http://diegonogueira.wordpress.com/2009/07/25/video-sobre-xpextreme-programming/</link>
		<comments>http://diegonogueira.wordpress.com/2009/07/25/video-sobre-xpextreme-programming/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 21:14:42 +0000</pubDate>
		<dc:creator>diegonogueira</dc:creator>
				<category><![CDATA[Desenvolvimento Ágil]]></category>
		<category><![CDATA[XP]]></category>
		<category><![CDATA[extreme programming]]></category>

		<guid isPermaLink="false">http://diegonogueira.wordpress.com/?p=260</guid>
		<description><![CDATA[Fala galera! Achei um vídeo muito legal sobre Desenvolvimento ágil.
http://improveit.com.br/xp
Espero que gostem!
abraços
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=260&subd=diegonogueira&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Fala galera! Achei um vídeo muito legal sobre Desenvolvimento ágil.</p>
<p><a href="http://improveit.com.br/xp" target="_blank">http://improveit.com.br/xp</a></p>
<p>Espero que gostem!</p>
<p>abraços</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegonogueira.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegonogueira.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegonogueira.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegonogueira.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegonogueira.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegonogueira.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegonogueira.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegonogueira.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegonogueira.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegonogueira.wordpress.com/260/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=260&subd=diegonogueira&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://diegonogueira.wordpress.com/2009/07/25/video-sobre-xpextreme-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f2c667749b093110cea8dd62b89beb5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegonogueira</media:title>
		</media:content>
	</item>
		<item>
		<title>Materiais sobre cucumber</title>
		<link>http://diegonogueira.wordpress.com/2009/07/25/materiais-sobre-cucumber/</link>
		<comments>http://diegonogueira.wordpress.com/2009/07/25/materiais-sobre-cucumber/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 15:35:42 +0000</pubDate>
		<dc:creator>diegonogueira</dc:creator>
				<category><![CDATA[Cucumber]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[apostilas tutoriais videos aula cucumber]]></category>
		<category><![CDATA[aprendendo cucumber]]></category>

		<guid isPermaLink="false">http://diegonogueira.wordpress.com/?p=252</guid>
		<description><![CDATA[Fala galera!
Separei vários materiais legais de Cucumber na Internet, e gostaria de compartilhar com vocês:
Artigos
http://jefferson.eti.br/?p=96
http://cassiomarques.wordpress.com/2008/11/16/testes-funcionais-no-rails-usando-o-cucumber/
ScreenCasts
http://railscasts.com/episodes/155-beginning-with-cucumber
http://railscasts.com/episodes/159-more-on-cucumber
Documentação
http://rdoc.info/projects/aslakhellesoy/cucumber
Apostilas
austin-on-rails_cukes
Se eu achar mais algum material, coloco aqui para vocês.
Fiquem a vontade para me enviar materiais também, ok?
Abraços
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=252&subd=diegonogueira&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Fala galera!</p>
<p>Separei vários materiais legais de Cucumber na Internet, e gostaria de compartilhar com vocês:</p>
<p><strong>Artigos</strong></p>
<p><a href="http://jefferson.eti.br/?p=96" target="_blank">http://jefferson.eti.br/?p=96</a></p>
<p><a href="http://cassiomarques.wordpress.com/2008/11/16/testes-funcionais-no-rails-usando-o-cucumber/" target="_blank">http://cassiomarques.wordpress.com/2008/11/16/testes-funcionais-no-rails-usando-o-cucumber/</a></p>
<p><strong>ScreenCasts</strong></p>
<p><a href="http://railscasts.com/episodes/155-beginning-with-cucumber" target="_blank">http://railscasts.com/episodes/155-beginning-with-cucumber</a></p>
<p><a href="http://railscasts.com/episodes/159-more-on-cucumber" target="_blank">http://railscasts.com/episodes/159-more-on-cucumber</a></p>
<p><strong>Documentação</strong></p>
<p><a href="http://rdoc.info/projects/aslakhellesoy/cucumber" target="_blank">http://rdoc.info/projects/aslakhellesoy/cucumber</a></p>
<p><strong>Apostilas</strong></p>
<p><a href="http://diegonogueira.files.wordpress.com/2009/07/austin-on-rails_cukes.pdf">austin-on-rails_cukes</a></p>
<p>Se eu achar mais algum material, coloco aqui para vocês.</p>
<p>Fiquem a vontade para me enviar materiais também, ok?</p>
<p>Abraços</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegonogueira.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegonogueira.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegonogueira.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegonogueira.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegonogueira.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegonogueira.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegonogueira.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegonogueira.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegonogueira.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegonogueira.wordpress.com/252/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=252&subd=diegonogueira&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://diegonogueira.wordpress.com/2009/07/25/materiais-sobre-cucumber/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f2c667749b093110cea8dd62b89beb5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegonogueira</media:title>
		</media:content>
	</item>
		<item>
		<title>Materiais sobre git</title>
		<link>http://diegonogueira.wordpress.com/2009/07/15/materiais-sobre-git/</link>
		<comments>http://diegonogueira.wordpress.com/2009/07/15/materiais-sobre-git/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 00:26:11 +0000</pubDate>
		<dc:creator>diegonogueira</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[controle versões]]></category>

		<guid isPermaLink="false">http://diegonogueira.wordpress.com/?p=244</guid>
		<description><![CDATA[Fala ai Galera! Tudo na paz?
Separei vários links, para quem quer aprender ou até mesmo se aprofundar em git. Fiquem a vontade para enviar mais links!
Apostilas
segue o link original ou se preferirem clique aqui para baixar.
Versão PDF: http://www.slideshare.net/slide_user/magia-git
Versão ODT: http://www.slideshare.net/slide_user/magia-git-verso-odt
Git_-_Controle_de_Versoes_do_jeito_certo
Vídeos
Git controle de vero do jeito certo
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=244&subd=diegonogueira&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Fala ai Galera! Tudo na paz?</p>
<p>Separei vários links, para quem quer aprender ou até mesmo se aprofundar em git. Fiquem a vontade para enviar mais links!</p>
<p><strong>Apostilas</strong></p>
<p>segue o link original ou se preferirem <a title="Clique aqui" href="http://diegonogueira.files.wordpress.com/2009/07/magiagit-090715081901-phpapp01.pdf">clique aqui</a> para baixar.<br />
Versão PDF: http://www.slideshare.net/slide_user/magia-git<br />
Versão ODT: http://www.slideshare.net/slide_user/magia-git-verso-odt</p>
<p><a href="http://diegonogueira.files.wordpress.com/2009/07/git_-_controle_de_versoes_do_jeito_certo.pdf">Git_-_Controle_de_Versoes_do_jeito_certo</a></p>
<p><strong>Vídeos</strong></p>
<p><a href="http://www.tomsas.com.br/cafecomtom/07_GITControleDeVersaoDoJeitoCertoComArthurZapparoli.mov.zip" target="_blank">Git controle de vero do jeito certo</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegonogueira.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegonogueira.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegonogueira.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegonogueira.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegonogueira.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegonogueira.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegonogueira.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegonogueira.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegonogueira.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegonogueira.wordpress.com/244/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=244&subd=diegonogueira&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://diegonogueira.wordpress.com/2009/07/15/materiais-sobre-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f2c667749b093110cea8dd62b89beb5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegonogueira</media:title>
		</media:content>
	</item>
		<item>
		<title>Forçando download de arquivos protegidos no ruby on rails</title>
		<link>http://diegonogueira.wordpress.com/2009/05/20/forcando-download-de-arquivos-protegidos-no-ruby-on-rails/</link>
		<comments>http://diegonogueira.wordpress.com/2009/05/20/forcando-download-de-arquivos-protegidos-no-ruby-on-rails/#comments</comments>
		<pubDate>Wed, 20 May 2009 20:41:29 +0000</pubDate>
		<dc:creator>diegonogueira</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[forçar download]]></category>
		<category><![CDATA[pasta public]]></category>

		<guid isPermaLink="false">http://diegonogueira.wordpress.com/?p=233</guid>
		<description><![CDATA[Fala galera!!!
Me encontrei na seguinte situação esses dias:
Desenvolvi um sistema onde teria envio de arquivos para um clientes específico, sendo que para fazer o download do arquivo era necessário o login no sistema,
dai tive um problema, por o arquivo estar na pasta public, qualquer um que soubesse link conseguiria baixar o arquivo digitando diretamente o [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=233&subd=diegonogueira&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Fala galera!!!</p>
<p>Me encontrei na seguinte situação esses dias:</p>
<p>Desenvolvi um sistema onde teria envio de arquivos para um clientes específico, sendo que para fazer o download do arquivo era necessário o login no sistema,<br />
dai tive um problema, por o arquivo estar na pasta public, qualquer um que soubesse link conseguiria baixar o arquivo digitando diretamente o link no endereço.</p>
<p>para resolver basta colocar o arquivo em outra pasta. Por exemplo:<br />
RAILS_ROOT/files.</p>
<p>dai basta usar no controller</p>
<pre class="brush: ruby;">
send_file &quot;#{RAILS_ROOT}/files/teste.doc&quot;, :disposition =&gt; 'attachment'
</pre>
<p>e é só!!</p>
<p>Abraços.</p>
<p>por:Jhonathas</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegonogueira.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegonogueira.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegonogueira.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegonogueira.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegonogueira.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegonogueira.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegonogueira.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegonogueira.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegonogueira.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegonogueira.wordpress.com/233/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=233&subd=diegonogueira&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://diegonogueira.wordpress.com/2009/05/20/forcando-download-de-arquivos-protegidos-no-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f2c667749b093110cea8dd62b89beb5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegonogueira</media:title>
		</media:content>
	</item>
		<item>
		<title>Usando o Authlogic</title>
		<link>http://diegonogueira.wordpress.com/2009/05/14/usando-o-authlogic/</link>
		<comments>http://diegonogueira.wordpress.com/2009/05/14/usando-o-authlogic/#comments</comments>
		<pubDate>Fri, 15 May 2009 01:34:13 +0000</pubDate>
		<dc:creator>diegonogueira</dc:creator>
				<category><![CDATA[Authlogic]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[ativação de usário]]></category>
		<category><![CDATA[autenticação]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[esqueci senha]]></category>
		<category><![CDATA[recuperar senha]]></category>
		<category><![CDATA[tutorial authlogic]]></category>

		<guid isPermaLink="false">http://diegonogueira.wordpress.com/2009/05/14/usando-o-authlogic/</guid>
		<description><![CDATA[Olá Galera! Decidi criar esse passo a passo, juntando desde o básico ao necessário do componente authlogic.
 Vou estar abordando os seguintes tópicos:

Instalação
Criação de usuários
Criação de sessões de usuários
Login
Ativação de usuário
Recuperar senha
Tradução para portugûes

Então vamos lá? Espero que gostem!!
Para quem quiser irei disponibilizar o projeto em http://github.com/diegonogueira/Usando-Authlogic/tree/master
Criando um projeto rails
Vamos criar um projeto chamado usando_authlogic:
rails [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=220&subd=diegonogueira&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Olá Galera! Decidi criar esse passo a passo, juntando desde o básico ao necessário do componente authlogic.<br />
 Vou estar abordando os seguintes tópicos:</p>
<ol>
<li>Instalação</li>
<li>Criação de usuários</li>
<li>Criação de sessões de usuários</li>
<li>Login</li>
<li>Ativação de usuário</li>
<li>Recuperar senha</li>
<li>Tradução para portugûes</li>
</ol>
<p>Então vamos lá? Espero que gostem!!<br />
Para quem quiser irei disponibilizar o projeto em <a href="http://github.com/diegonogueira/Usando-Authlogic/tree/master">http://github.com/diegonogueira/Usando-Authlogic/tree/master</a></p>
<h2>Criando um projeto rails</h2>
<p>Vamos criar um projeto chamado usando_authlogic:</p>
<blockquote><p>rails usando_authlogic</p></blockquote>
<h2>Instalação</h2>
<p>Para instalar como gem:</p>
<blockquote><p>sudo gem install authlogic</p></blockquote>
<p>Para instalar como plugin:</p>
<blockquote><p><span style="color:#000000;"> script/plugin install git://github.com/binarylogic/authlogic.git</span></p></blockquote>
<p>Antes de configurarmos o environment.rb, exclua o arquivo index.html localizado em <strong>usando_authlogic/public</strong></p>
<p>Abra seu arquivo <strong>usando_authlogic/config/environment.rb</strong>, e adicione a gem ao seu projeto:</span></p>
<pre class="brush: ruby;">

...
Rails::Initializer.run do |config|
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.

# Add additional load paths for your own custom dirs
# config.load_paths += %W( #{RAILS_ROOT}/extras )

# Specify gems that this application depends on and have them installed with rake gems:install
# config.gem &quot;bj&quot;
# config.gem &quot;hpricot&quot;, :version =&gt; '0.6', :source =&gt; &quot;http://code.whytheluckystiff.net&quot;
# config.gem &quot;sqlite3-ruby&quot;, :lib =&gt; &quot;sqlite3&quot;
# config.gem &quot;aws-s3&quot;, :lib =&gt;&quot;aws/s3&quot;
config.gem &quot;authlogic&quot;

# Only load the plugins named here, in the order given (default is alphabetical).
# :all can be used as a placeholder for all plugins not explicitly named
# config.plugins = [ :exception_notification, :ssl_requirement, :all ]

# Skip frameworks you're not going to use. To use Rails without a database,
# you must remove the Active Record framework.
# config.frameworks -= [ :active_record, :active_resource, :action_mailer ]

# Activate observers that should always be running
# config.active_record.observers = :cacher, :garbage_collector, :forum_observer

# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
# Run &quot;rake -D time&quot; for a list of tasks for finding time zone names.
config.time_zone = 'Brasilia'

# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}')]
config.i18n.default_locale = &quot;pt-BR&quot;
end
...
</pre>
<h2><span style="color:#000000;">Criando o modelo de Usuários</span></h2>
<p>No console, digite:</p>
<blockquote><p>script/generate scaffold User login:string email:string password:string password_confirmation:string</p></blockquote>
<p>*OBS:Lembrando que criei o password e password_confirmation somente para gerar na view, dado que o mesmo não será um campo da nossa tabela users.</p>
<p><span style="color:#000000;">Gerado nosso scaffold, vamos abrir o migration gerado para user e alterar o conteúdo para:</span></p>
<pre class="brush: ruby;">
class CreateUsers &lt; ActiveRecord::Migration
  def self.up
    create_table :users do |t|
      t.string :login, :null=&gt;false
      t.string :email, :null=&gt;false
      t.string :crypted_password, :null=&gt;false
      t.string :password_salt, :null=&gt;false
      t.string :persistence_token, :null=&gt;false
      t.string :perishable_token, :null=&gt;false
      t.boolean :status, :default =&gt; false
      t.timestamps

		# # Campos adicionais
		# t.integer   :login_count,         :null =&gt; false, :default =&gt; 0 # optional, see Authlogic::Session::MagicColumns
		# t.integer   :failed_login_count,  :null =&gt; false, :default =&gt; 0 # optional, see Authlogic::Session::MagicColumns
		# t.datetime  :last_request_at                                    # optional, see Authlogic::Session::MagicColumns
		# t.datetime  :current_login_at                                   # optional, see Authlogic::Session::MagicColumns
		# t.datetime  :last_login_at                                      # optional, see Authlogic::Session::MagicColumns
		# t.string    :current_login_ip                                   # optional, see Authlogic::Session::MagicColumns
		# t.string    :last_login_ip
    end
  end

  def self.down
    drop_table :users
  end
end
</pre>
<p>*OBS.: Reparem que o código comentado é opcional.</p>
<p>Vamos definir os principais métodos do authlogic, para isso abra <strong>usando_authlogic/controller/application_controller.rb</strong> e altere para:</p>
<pre class="brush: ruby;">
class ApplicationController &lt; ActionController::Base

	helper :all
	helper_method :current_user_session, :current_user #esses metodos estarão acessíveis no helper também
	filter_parameter_logging :password, :password_confirmation #filtramos os campos de senha, para que o mesmo não aparece legivelmente nos logs.

	#Não use esse método como privado, para que possa interagir com outros plugins(Ex.: o plugin rails_authorization)
	def current_user #retorna o usuário atual
		return @current_user if defined?(@current_user)
		@current_user = current_user_session &amp;&amp; current_user_session.record
	end

	private

	def current_user_session #retorna a sessão do usuário atual
		return @current_user_session if defined?(@current_user_session)
		@current_user_session = UserSession.find
	end

	def require_user #informa o que precisa estar logado
		unless current_user
			store_location
			redirect_to new_user_session_url
			return false
		end
	end

	def require_no_user #informa o que não precisa estar logado
		if current_user
			store_location
			redirect_to account_url
			return false
		end
	end

	def store_location #retorna a ultima url que não pode ser acessada, pois o usuário não estava logado
		session[:return_to] = request.request_uri
	end

	def redirect_back_or_default(default) #retorna para a ultima url que não pode ser acessada ou a definida como default
		redirect_to(session[:return_to] || default)
		session[:return_to] = nil
	end

end
</pre>
<p>Feito isto, abre o arquivo<strong> usando_authlogic/controllers/users_controller.rb</strong>, e deixe-o assim:</p>
<pre class="brush: ruby;">
class UsersController &lt; ApplicationController
	before_filter :require_no_user, :only =&gt; [:new, :create]
	before_filter :require_user, :only =&gt; [:show, :edit, :update] 

  # GET /users/1
  # GET /users/1.xml
  def show
    @user = User.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml =&gt; @user }
    end
  end

  # GET /users/new
  # GET /users/new.xml
  def new
    @user = User.new

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml =&gt; @user }
    end
  end

  # GET /users/1/edit
  def edit
    @user = User.find(params[:id])
  end

  # POST /users
  # POST /users.xml
  def create
    @user = User.new(params[:user])

    respond_to do |format|
      if @user.save
        send_email_active_user
        flash[:notice] = 'Usuário criado com sucesso. Você receberá um email para ativação do mesmo.'
        format.html { redirect_to logout_path }
        format.xml  { render :xml =&gt; @user, :status =&gt; :created, :location =&gt; @user }
      else
        format.html { render :action =&gt; &quot;new&quot; }
        format.xml  { render :xml =&gt; @user.errors, :status =&gt; :unprocessable_entity }
      end
    end
  end

  # PUT /users/1
  # PUT /users/1.xml
  def update
    @user = User.find(params[:id])

    respond_to do |format|
      if @user.update_attributes(params[:user])
        flash[:notice] = 'User was successfully updated.'
        format.html { redirect_to(@user) }
        format.xml  { head :ok }
      else
        format.html { render :action =&gt; &quot;edit&quot; }
        format.xml  { render :xml =&gt; @user.errors, :status =&gt; :unprocessable_entity }
      end
    end
  end

  private

	#Envia email (usuário ativar usuário)
	def send_email_active_user
		corpo = &lt;&lt;-CODE
		&lt;b&gt;Seu cadastro precisa ser confirmado&lt;br&gt;&lt;/b&gt;
		&lt;b&gt;Data do cadastro: &lt;/b&gt;#{@user.created_at}&lt;br&gt;
		&lt;b&gt;Login: &lt;/b&gt;#{@user.login}&lt;br&gt;
		&lt;b&gt;E-mail: &lt;/b&gt;#{@user.email}&lt;br&gt;
		&lt;b&gt;Para ativar &lt;/b&gt;&lt;a href='#{edit_active_user_url(@user.perishable_token)}'&gt;clique aqui.&lt;/a&gt;
		CODE

		Email.deliver_padrao(:corpo =&gt; corpo, :assunto =&gt; &quot;Cadastro Aceito&quot;, :para =&gt; @user.email)

	end   

end
</pre>
<p>Se repararem no inicio do arquivo, já estamos usando dois métodos do authlogic, o<strong> require_user</strong> e<strong> require_no_user</strong>, que tem por sua finalidade ser chamado antes de carregar a página com o método <strong>before_filter</strong>, e nele estamos dizendo que:<br />
-Para acessar as actions new e create não é necessário estar logado.<br />
-Para acessar as actions show, edit e update é necessário estar logado.</p>
<p>E será assim que iremos definir quais páginas precisam ou não precisam estar logado, bem simples né?</p>
<p>Como não teremos a action index, então remova a view <strong>index.html.erb</strong>, localizada em <strong>usando_authlogic/app/views/users/</strong></p>
<p>Crie um arquivo chamado <strong>_form.html.erb</strong> em <strong>usando_authlogic/app/views/users/</strong>, com o seguinte conteúdo.</p>
<pre class="brush: ruby;">
&lt;h1&gt;Usuário&lt;/h1&gt;

&lt;% form_for(@user) do |f| %&gt;
  &lt;%= f.error_messages %&gt;

  &lt;p&gt;
    Login&lt;br /&gt;
    &lt;%= f.text_field :login %&gt;
  &lt;/p&gt;
  &lt;p&gt;
    E-mail&lt;br /&gt;
    &lt;%= f.text_field :email %&gt;
  &lt;/p&gt;
  &lt;p&gt;
    Senha&lt;br /&gt;
    &lt;%= f.password_field :password %&gt;
  &lt;/p&gt;
  &lt;p&gt;
    Confirmar senha&lt;br /&gt;
    &lt;%= f.password_field :password_confirmation %&gt;
  &lt;/p&gt;
  &lt;p&gt;
    &lt;%= f.submit 'Registrar' %&gt;
  &lt;/p&gt;
&lt;% end %&gt;

&lt;%= link_to 'Voltar', users_path %&gt;
</pre>
<p>Abra também as views <strong>new.html.erb</strong> e <strong>edit.html.erb</strong> e deixa as duas com o seguinte conteúdo apenas, que será responsável por renderizar a partial que acabamos de criar.</p>
<pre class="brush: ruby;">
&lt;%= render :partial=&gt;&quot;form&quot; %&gt;
</pre>
<p>Altere também a view <strong>show.html.erb</strong> para:</p>
<pre class="brush: ruby;">

&lt;strong&gt;Login:&lt;/strong&gt;
&lt;%=h @user.login %&gt;

&lt;strong&gt;Email:&lt;/strong&gt;
&lt;%=h @user.email %&gt;

&lt;%= link_to 'Edit', edit_user_path(@user) %&gt; |
&lt;%= link_to 'Back', users_path %&gt;
</pre>
<p>Vamos abrir também o model do usuário, localizado em <strong>usando_authlogic/app/models/user.rb/</strong>, e vamos dizer que este modelo será responsável pela autenticação do sistema:</p>
<pre class="brush: ruby;">
class User &lt; ActiveRecord::Base
	acts_as_authentic	

	def deliver_password_reset_instructions!
		reset_perishable_token!
	end	

end
</pre>
<p>Por fim, vamos criar mais uma rota para users, abra <strong>usando_authlogic/config/routes.rb</strong>, e adicione:</p>
<pre class="brush: ruby;">
...
 map.resource :account, :controller =&gt; &quot;users&quot;
...
</pre>
<h2>Criando a sessão do usuário</h2>
<p>Abra o console, e digite:</p>
<blockquote><p>script/generate session user_session</p></blockquote>
<p>Logo em seguida, digite também:</p>
<blockquote><p>script/generate controller user_sessions</p></blockquote>
<p>Feito isto, abra o controller user_sessions, e altere para:</p>
<pre class="brush: ruby;">
class UserSessionsController &lt; ApplicationController

 def new
   @user_session = UserSession.new
 end

 def create
   @user_session = UserSession.new(params[:user_session])
   if @user_session.save
   	if current_user.status #verifica se o usuário esta ativo
			redirect_back_or_default login_path
		else
			flash[:notice] = &quot;Seu usuário ainda não está ativo.&quot;
			destroy
		end
   else
     render :action =&gt; :new
   end
 end

 def destroy
   current_user_session.destroy
   redirect_back_or_default login_path
 end

end
</pre>
<p>Crie também uma view chamada new.html.erb em <strong>usando_authlogic/app/views/user_sessions/</strong>, e coloque o conteúdo a seguir:</p>
<pre class="brush: ruby;">
&lt;% form_for @user_session, :url =&gt; user_sessions_path do |f| %&gt;

	&lt;h1&gt;Login&lt;/h1&gt;

	&lt;p&gt;
		Login&lt;br&gt;
		&lt;%= f.text_field :login %&gt;
	&lt;/p&gt;
	&lt;p&gt;
		Senha&lt;br&gt;
		&lt;%= f.password_field :password %&gt;&lt;br /&gt;
	&lt;/p&gt;
	&lt;p&gt;
	   &lt;%= f.submit &quot;Entrar&quot; %&gt; |
	   &lt;%= link_to &quot;esqueci a senha&quot;, new_password_reset_path %&gt;
	&lt;/p&gt;

&lt;% end %&gt;
</pre>
<p>Vamos definir as rotas para user_sessions, então abra seu arquivo <strong>usando_authlogic/config/routers.rb</strong>, e adicione as seguintes linhas:</p>
<pre class="brush: ruby;">
...
 map.login &quot;login&quot;, :controller =&gt; &quot;user_sessions&quot;, :action =&gt; &quot;new&quot;
 map.logout &quot;logout&quot;, :controller =&gt; &quot;user_sessions&quot;, :action =&gt; &quot;destroy&quot;
 map.root :controller=&gt;&quot;user_sessions&quot;,:action=&gt;&quot;new&quot;
 map.resources :user_sessions
...
</pre>
<h2>Ativar de Usuário</h2>
<p>Vá para o console, e gere o seguinte controller:</p>
<blockquote><p>script/generate controller active_users</p></blockquote>
<p>Agora abra o controler active_users_controller.rb, e altere para:</p>
<pre class="brush: ruby;">
class ActiveUsersController &lt; ApplicationController

	def edit
		@user = User.find_using_perishable_token(params[:id])
		if @user
			if @user.update_attributes(:status =&gt; true)
				send_email_actived_user
				flash[:notice] = &quot;Usuário ativado com sucesso!&quot;
				redirect_to edit_user_path(@user)
			end
		else
			flash[:notice] = &quot;Token inválido&quot;
			render :action =&gt; :edit
		end 

	end 

	private

	#Envia email (usuário ativado)
	def send_email_actived_user
		corpo = &lt;&lt;-CODE
		&lt;b&gt;Seu cadastro foi aceito!&lt;br&gt;&lt;/b&gt;
		&lt;b&gt;Data do cadastro: &lt;/b&gt;#{@user.created_at}&lt;br&gt;
		&lt;b&gt;Login: &lt;/b&gt;#{@user.login}&lt;br&gt;
		&lt;b&gt;E-mail: &lt;/b&gt;#{@user.email}&lt;br&gt;
		CODE

		Email.deliver_padrao(:corpo =&gt; corpo, :assunto =&gt; &quot;Cadastro Aceito&quot;, :para =&gt; @user.email)

	end 	

end
</pre>
<p>Crie também uma view edit.html.erb para nosso controler em : <strong>usando_authlogic/app/views/active_users/</strong>, e insira o seguinte conteúdo:</p>
<pre class="brush: ruby;">
&lt;h1&gt;Ativar Usuário&lt;/h1&gt;
</pre>
<p>Temos que criar as rotas também para active_user, então abra <strong>usando_authlogic/config/routes.rb</strong>, e adicione a linha:</p>
<pre class="brush: ruby;">
...
 map.resources :active_users
...
</pre>
<h2>Esqueci a senha</h2>
<p>Vamos gerar um controler para o esqueci a senha, então digite no console:</p>
<blockquote><p>script/generate controller password_resets</p></blockquote>
<p>Vamos então editar o controller password_resets_controller.rb, adicionando o seguinte conteúdo:</p>
<pre class="brush: ruby;">
class PasswordResetsController &lt; ApplicationController

	before_filter :load_user_using_perishable_token, :only =&gt; [:edit, :update]

	def new
	end  

	def create
		@user = User.find_by_email(params[:email])
		if @user &amp;&amp; @user.deliver_password_reset_instructions!
			send_email_password_reset
			flash[:notice] = &quot;Foi enviado por e-mail a instrução de como alterar a sua senha.&quot;
			redirect_to login_path
		else
			flash[:notice] = &quot;Nenhum usuário com o e-mail informado!&quot;
			render :action =&gt; :new
		end
	end 

	def edit
	render
	end  

	def update
		@user.password = params[:user][:password]
		@user.password_confirmation = params[:user][:password_confirmation]
		if @user.save
			flash[:notice] = &quot;Senha alterada com sucesso!&quot;
			redirect_to edit_user_path(@user)
		else
			render :action =&gt; :edit
		end
	end  

	private
	def load_user_using_perishable_token
		@user = User.find_using_perishable_token(params[:id])

		if !@user
			flash[:notice] = &quot;Link inválido!&quot;
			redirect_to :controller =&gt; &quot;users&quot;, :action =&gt; &quot;new&quot;
		end
	end  

	#Envia email (instruções para recuperar a senha)
	def send_email_password_reset
		corpo = &lt;&lt;-CODE
		&lt;b&gt;Instruções para trocar a senha a senha&lt;br&gt;&lt;/b&gt;
		&lt;b&gt;Login: &lt;/b&gt;#{@user.login}&lt;br&gt;
		&lt;b&gt;E-mail: &lt;/b&gt;#{@user.email}&lt;br&gt;
		&lt;b&gt;Para trocar a senha &lt;b&gt;Link: &lt;/b&gt;&lt;a href='#{edit_password_reset_url(@user.perishable_token)}'&gt;clique aqui.&lt;/a&gt;
		CODE

		Email.deliver_padrao(:corpo =&gt; corpo, :assunto =&gt; &quot;Instruções para trocar a senha&quot;, :para =&gt; @user.email)

	end 		

end
</pre>
<p>Agora vamos cria a view new.html.erb em <strong>usando_authlogic/app/views/password_resets</strong>:</p>
<pre class="brush: ruby;">
&lt;h1&gt;Esqueci a senha&lt;/h1&gt; 

Digite o e-mail para o qual será enviado um novo link de acesso.

&lt;% form_tag password_resets_path do %&gt;
	&lt;p&gt;
		Email&lt;br&gt;
		&lt;%= text_field_tag &quot;email&quot; %&gt;
	&lt;/p&gt;
	&lt;p&gt;
		&lt;%= submit_tag &quot;Enviar&quot;, :id=&gt;&quot;botao&quot; %&gt; |
		&lt;%= link_to &quot;Voltar&quot;, login_path %&gt;
	&lt;/p&gt;
&lt;% end %&gt;
</pre>
<p>Crie também uma view edit.html.erb em <strong>usando_authlogic/app/views/password_resets</strong>:</p>
<pre class="brush: ruby;">

&lt;h1&gt;Alteração da senha&lt;/h1&gt; 

&lt;% form_for @user, :url =&gt; password_reset_path, :method =&gt; :put do |f| %&gt;
	&lt;p&gt;
		Senha&lt;br&gt;
		&lt;%= f.password_field :password %&gt;
	&lt;/p&gt;
	&lt;p&gt;
		Confirmação de senha&lt;br&gt;
		&lt;%= f.password_field :password_confirmation %&gt;
	&lt;/p&gt;
	&lt;p&gt;
		&lt;%= f.submit &quot;Alterar senha&quot;, :id =&gt; &quot;botao&quot; %&gt;
	&lt;/p&gt;
&lt;% end %&gt;
</pre>
<p>Abra também <strong>usando_authlogic/config/routes.rb</strong>, a crie mais um rota:</p>
<pre class="brush: ruby;">
...
 map.resources :password_resets
...
</pre>
<h2>Enviando email</h2>
<p>Vamos configurar agora o envio de e-mail para que nosso sistema possa enviar um e-mail para ativação e recuperação da senha.</p>
<p>Primeiro adicione as seguintes linhas no seu arquivo <strong>usando_authlogic/config/environment.rb</strong>. Deve ser inserido no final do arquivo logo após o end.</p>
<pre class="brush: ruby;">
...
end

require 'tls_smtp'

#Configuração para envio de e-mail
ActionMailer::Base.default_content_type = &quot;text/html&quot;
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.smtp_settings = {
   :address =&gt; &quot;smtp.seudominio.com&quot;,
   :port =&gt; 587,
   :domain =&gt; &quot;www.seudominio.com.br&quot;,
   :user_name =&gt; &quot;seuemail@seudominio.com.br&quot;,
   :password =&gt; &quot;suasenha&quot;,
   :authentication  =&gt; :login
}

...
</pre>
<p>Repare a linha require &#8216;tls_smtp&#8217;, precisamos criar este arquivo em <strong>usando_authlogic/lib/tls_smtp.rb</strong>:</p>
<pre class="brush: ruby;">
require &quot;openssl&quot;
require &quot;net/smtp&quot;

Net::SMTP.class_eval do
  private
  def do_start(helodomain, user, secret, authtype)
    raise IOError, 'SMTP session already started' if @started

    ########## PROBLEWA DO ERRO (wrong number of arguments (3 for 2))
    no_args = method(:check_auth_args).arity
		if no_args == 2
			check_auth_args user, secret if user or secret
		else
			check_auth_args user, secret, authtype if user or secret
		end
		#check_auth_args user, secret, authtype if user or secret
    ########## PROBLEWA DO ERRO (wrong number of arguments (3 for 2))		

    sock = timeout(@open_timeout) { TCPSocket.open(@address, @port) }
    @socket = Net::InternetMessageIO.new(sock)
    @socket.read_timeout = 60 #@read_timeout

    check_response(critical { recv_response() })
    do_helo(helodomain)

    if starttls
      raise 'openssl library not installed' unless defined?(OpenSSL)
      ssl = OpenSSL::SSL::SSLSocket.new(sock)
      ssl.sync_close = true
      ssl.connect
      @socket = Net::InternetMessageIO.new(ssl)
      @socket.read_timeout = 60 #@read_timeout
      do_helo(helodomain)
    end

    authenticate user, secret, authtype if user
    @started = true
  ensure
    unless @started
      # authentication failed, cancel connection.
      @socket.close if not @started and @socket and not @socket.closed?
      @socket = nil
    end
  end

  def do_helo(helodomain)
    begin
      if @esmtp
        ehlo helodomain
      else
        helo helodomain
      end
    rescue Net::ProtocolError
      if @esmtp
        @esmtp = false
        @error_occured = false
        retry
      end
      raise
    end
  end

  def starttls
    getok('STARTTLS') rescue return false
    return true
  end

  def quit
    begin
      getok('QUIT')
    rescue EOFError
    end
  end
end
</pre>
<p>Agora abra seu console, e execute:</p>
<blockquote><p>script/generate mailer email</p></blockquote>
<p>Feito isto, abra o modelo do email, localizado em <strong>usando_authlogic/app/models/email.rb</strong>:</p>
<pre class="brush: ruby;">

class Email &lt; ActionMailer::Base

 #Email padrao
 def padrao(options = {})

	 email = &quot;seuemail@seudominio.com.br&quot;	

	 recipients options[:para] || &quot;&quot;
	 from options[:from] || email
	 subject options[:assunto]  || &quot;&quot;
	 reply_to options[:responder] || email
	 body :corpo =&gt; options[:corpo] || email
 end  

end
</pre>
<p>E por fim, crie uma template para o email em <strong>usando_authlogic/app/views/email/padrao.html.erb</strong>:</p>
<pre class="brush: ruby;">
&lt;%= @corpo %&gt;
</pre>
<h2>Tradução</h2>
<p>Vamo lá, primeiro temos que abrir o arquivo <strong>usando_authlogic/config/environment.rb</strong> e adicionar a seguinte linha:</p>
<pre class="brush: ruby;">
...
  config.time_zone = 'Brasilia'
  config.i18n.default_locale = &quot;pt-BR&quot;
...
</pre>
<p>Agora crie um arquivo chamado pt-BR.yml em <strong>usando_authlogic/config/locales/</strong>:</p>
<pre class="brush: ruby;">

pt-BR:
  pagination:
    next: &quot;Próximo &gt;&gt;&quot;
    prev: &quot;&lt;&lt; Anterior&quot;
  authlogic:
    error_messages:
      login_blank: &quot;não pode ficar em branco&quot;
      login_not_found: &quot;não é valido&quot;
      login_invalid: &quot;não é valido&quot; #should use osadfsdfnly letters, numbers, spaces, and .-_@ please.
      consecutive_failed_logins_limit_exceeded: &quot;limite de tentativas de login excedido&quot;
      email_invalid: &quot;não é valido&quot; #should look like an email address.
      password_blank: &quot;não pode ficar em branco&quot;
      password_invalid: &quot;não é valida&quot;
      not_active: &quot;sua conta não está ativa&quot;
      not_confirmed: &quot;sua conta não foi confirmada&quot;
      not_approved: &quot;sua conta não foi aprovada&quot;
      no_authentication_details: &quot;Você não forneceu nenhum detalhe para autenticação&quot;
    models:
      user_session: UserSession (or whatever name you are using)
    attributes:
      user_session: (or whatever name you are using)
      login: Login
      email: E-mail
      password: Senha
      remember_me: Lembrar-me
  activerecord:
     attributes:
       _all:
         created_at: &quot;Data de criação&quot;
         updated_at: &quot;Data de atualização&quot;
       history:
         title: &quot;Título&quot;
         content: &quot;Conteúdo&quot;
     errors:
       template:
         header:
           one: &quot;model não pôde ser salvo: 1 erro&quot;
           other: &quot;model não pôde ser salvo: {{count}} erros.&quot;
         body: &quot;Por favor, cheque os seguintes campos:&quot;
       messages:
         inclusion: &quot;não está incluso na lista&quot;
         exclusion: &quot;não está disponível&quot;
         invalid: &quot;não é válido&quot;
         confirmation: &quot;não bate com a confirmação&quot;
         accepted: &quot;precisa ser aceito&quot;
         empty: &quot;não pode ser vazio&quot;
         blank: &quot;não pode ser vazio&quot;
         too_long: &quot;é muito longo (não mais do que {{count}} caracteres)&quot;
         too_short: &quot;é muito curto (não menos do que {{count}} caracteres)&quot;
         wrong_length: &quot;não é do tamanho correto (precisa ter {{count}} caracteres)&quot;
         taken: &quot;não está disponível&quot;
         not_a_number: &quot;não é um número&quot;
         greater_than: &quot;precisa ser maior do que {{count}}&quot;
         greater_than_or_equal_to: &quot;precisa ser maior ou igual a {{count}}&quot;
         equal_to: &quot;precisa ser igual a {{count}}&quot;
         less_than: &quot;precisa ser menor do que {{count}}&quot;
         less_than_or_equal_to: &quot;precisa ser menor ou igual a {{count}}&quot;
         odd: &quot;precisa ser ímpar&quot;
         even: &quot;precisa ser par&quot;
</pre>
<h2>Acabamentos</h2>
<p>Vamos definir um template para o sistema, remova todos os arquivos em <strong>usando_authlogic/app/views/layouts/</strong>, e crie um arquivo chamado application.html.erb, como seguinte conteúdo:</p>
<pre class="brush: ruby;">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
       &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;

&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;
&lt;head&gt;
  &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html;charset=UTF-8&quot; /&gt;
  &lt;title&gt;Users: &lt;%= controller.action_name %&gt;&lt;/title&gt;
  &lt;%= stylesheet_link_tag 'scaffold' %&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;p style=&quot;color: green&quot;&gt;&lt;%= flash[:notice] %&gt;&lt;/p&gt;

&lt;% if current_user %&gt;
	Logado como &lt;%= current_user.login %&gt; | &lt;%= link_to &quot;Sair&quot;, logout_path %&gt;
&lt;% else %&gt;
	Você não está logado | &lt;%= link_to &quot;Login&quot;, login_path %&gt;
&lt;% end %&gt;

&lt;%= yield %&gt;

&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>OK. Agora abre o console e execute o seguinte comando:</p>
<blockquote><p>rake db:migrate</p></blockquote>
<p>É isso ai galera! Espero que tenha ajudado de alguma forma. Comentários, criticas ou sugestões sempre serão bem-vindas!!</p>
<p>Lembrando que para quem quiser irei disponibilizar o projeto em <a href="http://github.com/diegonogueira/Usando-Authlogic/tree/master">http://github.com/diegonogueira/Usando-Authlogic/tree/master</a></p>
<p>Abraços a todos.</p>
<p>Fiquem com Deus.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegonogueira.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegonogueira.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegonogueira.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegonogueira.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegonogueira.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegonogueira.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegonogueira.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegonogueira.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegonogueira.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegonogueira.wordpress.com/220/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=220&subd=diegonogueira&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://diegonogueira.wordpress.com/2009/05/14/usando-o-authlogic/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f2c667749b093110cea8dd62b89beb5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegonogueira</media:title>
		</media:content>
	</item>
		<item>
		<title>Usando logmein no firefox ( Linux )</title>
		<link>http://diegonogueira.wordpress.com/2009/05/04/usando-logmein-no-firefox-linux/</link>
		<comments>http://diegonogueira.wordpress.com/2009/05/04/usando-logmein-no-firefox-linux/#comments</comments>
		<pubDate>Mon, 04 May 2009 13:46:35 +0000</pubDate>
		<dc:creator>diegonogueira</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://diegonogueira.wordpress.com/?p=215</guid>
		<description><![CDATA[Olá.
Para utilizar o logmein no firefox(linux) sem que fique dando post-back(atualizando) da tela toda hora quando há um ação.
basta instalar o java.
então abra o console e digitesudo 
apt-get install sun-java6-jre sun-java6-plugin
agora reinicie o firefox e pronto!
Abraços
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=215&subd=diegonogueira&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Olá.</p>
<p>Para utilizar o logmein no firefox(linux) sem que fique dando post-back(atualizando) da tela toda hora quando há um ação.</p>
<p>basta instalar o java.</p>
<p>então abra o console e digite<code>sudo </code></p>
<p><code>apt-get install sun-java6-jre sun-java6-plugin</code></p>
<p>agora reinicie o firefox e pronto!</p>
<p>Abraços</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegonogueira.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegonogueira.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegonogueira.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegonogueira.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegonogueira.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegonogueira.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegonogueira.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegonogueira.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegonogueira.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegonogueira.wordpress.com/215/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=215&subd=diegonogueira&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://diegonogueira.wordpress.com/2009/05/04/usando-logmein-no-firefox-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f2c667749b093110cea8dd62b89beb5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegonogueira</media:title>
		</media:content>
	</item>
		<item>
		<title>Enviando e-mail através do Google Apps</title>
		<link>http://diegonogueira.wordpress.com/2009/04/29/desbloqueando-captcha-no-google-apps/</link>
		<comments>http://diegonogueira.wordpress.com/2009/04/29/desbloqueando-captcha-no-google-apps/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 22:02:58 +0000</pubDate>
		<dc:creator>diegonogueira</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google apps]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[unlock]]></category>
		<category><![CDATA[unlockcaptcha]]></category>

		<guid isPermaLink="false">http://diegonogueira.wordpress.com/?p=208</guid>
		<description><![CDATA[Olá!
Estava com problemas no envio de email da minha aplicação
depois que mudei meu SMTP para o do Google Apps.
Descobri que para utilizar o Google Apps eu deveria fazer o desbloqueio
do Captcha através do link:
https://www.google.com/a/meudominio.com.br/UnlockCaptcha
Login feito, problema resolvido!
Para saber como enviar emails:
http://diegonogueira.wordpress.com/2009/03/11/enviando-e-mail/
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;
Por: Elisa Pingret Valente
(:
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=208&subd=diegonogueira&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Olá!</p>
<p>Estava com problemas no envio de email da minha aplicação<br />
depois que mudei meu <strong>SMTP</strong> para o do <em>Google Apps</em>.</p>
<p>Descobri que para utilizar o <em>Google Apps</em> eu deveria fazer o <strong>desbloqueio<br />
do Captcha</strong> através do link:</p>
<p>https://www.google.com/a/meudominio.com.br/UnlockCaptcha</p>
<p>Login<strong> feito</strong>, problema <strong>resolvido</strong>!</p>
<p>Para saber como enviar emails:</p>
<p>http://diegonogueira.wordpress.com/2009/03/11/enviando-e-mail/</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Por: Elisa Pingret Valente</p>
<p>(:</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/diegonogueira.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/diegonogueira.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/diegonogueira.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/diegonogueira.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/diegonogueira.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/diegonogueira.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/diegonogueira.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/diegonogueira.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/diegonogueira.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/diegonogueira.wordpress.com/208/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=diegonogueira.wordpress.com&blog=6838470&post=208&subd=diegonogueira&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://diegonogueira.wordpress.com/2009/04/29/desbloqueando-captcha-no-google-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f2c667749b093110cea8dd62b89beb5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">diegonogueira</media:title>
		</media:content>
	</item>
	</channel>
</rss>