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

<channel>
	<title>Diego Plentz &#187; rails</title>
	<atom:link href="http://plentz.org/category/rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://plentz.org</link>
	<description>plentiful thoughts from my empty head</description>
	<lastBuildDate>Sat, 03 Jul 2010 06:17:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Updating Gems</title>
		<link>http://plentz.org/2008/10/16/updating-gems/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=updating-gems</link>
		<comments>http://plentz.org/2008/10/16/updating-gems/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 03:47:29 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[gem]]></category>
		<category><![CDATA[gems]]></category>
		<category><![CDATA[macosx]]></category>

		<guid isPermaLink="false">http://plentz.org/?p=213</guid>
		<description><![CDATA[Hoje resolvi fazer uma atualização do Rails e cia aqui e dei de cara com um problema chato de resolver. Além de instalar as versões novas dos gems, queria me livrar as antigas. Mas sempre que tentava fazer o gem cleanup, recebia o seguinte erro: ~ plentz$ sudo gem cleanup Cleaning up installed gems... Attempting [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/richlegg/84028300/" title="How many steps can I go? by LeggNet"><img src="http://farm1.static.flickr.com/38/84028300_3f2ea22ed6_m.jpg" alt="How many steps can I go? by LeggNet" class="pc_img" height="160" width="240" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;"/></a></p>
<p>Hoje resolvi fazer uma atualização do <a href="http://www.rubyonrails.org/">Rails</a> e cia aqui e dei de cara com um problema chato de resolver. Além de instalar as versões novas dos <a href="http://www.rubygems.org/">gems</a>, queria me livrar as antigas. Mas sempre que tentava fazer o <em>gem cleanup</em>, recebia o seguinte erro:<br />
<code><br />
~ plentz$ sudo gem cleanup<br />
Cleaning up installed gems...<br />
Attempting to uninstall mongrel-1.0.1<br />
ERROR:  While executing gem ... (Gem::InstallError)<br />
    Unknown gem mongrel = 1.0.1<br />
</code><br />
Depois de fazer um <em>find</em> (<em>find . -iname mongrel*</em> mesmo) no / inteiro, descobri um diretório com vários gems antigos. Ele fica em:</p>
<p><code>/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8</code></p>
<p>Entrei nele e fiz literalmente um limpa. Apaguei todos arquivos dentro das pastas specifications, doc, cache e gems. Então se quizer deixar sua instalação 100% fresh, rode os comandos abaixo, e caso encontre algum problema, siga a dica acima:<br />
<code><br />
sudo gem update --system<br />
sudo gem update<br />
sudo gem cleanup<br />
</code><br />
Depois confira que você ficou só com as últimas versões rodando: <em>gem list</em>.</p>
<div class="acc_license"><a href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="by-nc-nd" /></a></div><!--<rdf:RDF xmlns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Work rdf:about=""><license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/" /></Work><License rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/"><requires rdf:resource="http://creativecommons.org/ns#Attribution" /><permits rdf:resource="http://creativecommons.org/ns#Reproduction" /><permits rdf:resource="http://creativecommons.org/ns#Distribution" /><prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse" /><requires rdf:resource="http://creativecommons.org/ns#Notice" /></License></rdf:RDF>--><img src="http://plentz.org/wordpress/?ak_action=api_record_view&id=213&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2008/10/16/updating-gems/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Tutorial Rails em pt-br</title>
		<link>http://plentz.org/2006/04/23/tutorial-rails-em-pt-br/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=tutorial-rails-em-pt-br</link>
		<comments>http://plentz.org/2006/04/23/tutorial-rails-em-pt-br/#comments</comments>
		<pubDate>Sun, 23 Apr 2006 06:36:44 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://plentz.org/2006/04/23/tutorial-rails-em-pt-br/</guid>
		<description><![CDATA[Depois de lançar o tutorial de Ruby em português, o livro, agora o Taq liberou um tutorial de Ruby on Rails, em português também. Agora não tem mais desculpa pra não dar uma olhadinha, né?]]></description>
			<content:encoded><![CDATA[<p>Depois de lançar o <a href="http://www.eustaquiorangel.com/files#ruby">tutorial de Ruby em português</a>, o <a href="http://www.submarino.com.br/books_productdetails.asp?Query=ProductPage&#038;ProdTypeId=1&#038;ProdId=1470481&#038;franq=170759">livro</a>, agora o <a href="http://www.eustaquiorangel.com">Taq</a> liberou um <a href="http://www.eustaquiorangel.com/files#rails">tutorial de Ruby on Rails</a>, em português também. Agora não tem mais desculpa pra não dar uma olhadinha, né?</p>
<div class="acc_license"><a href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="by-nc-nd" /></a></div><!--<rdf:RDF xmlns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Work rdf:about=""><license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/" /></Work><License rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/"><requires rdf:resource="http://creativecommons.org/ns#Attribution" /><permits rdf:resource="http://creativecommons.org/ns#Reproduction" /><permits rdf:resource="http://creativecommons.org/ns#Distribution" /><prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse" /><requires rdf:resource="http://creativecommons.org/ns#Notice" /></License></rdf:RDF>--><img src="http://plentz.org/wordpress/?ak_action=api_record_view&id=139&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2006/04/23/tutorial-rails-em-pt-br/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Enquanto isso, no mainstream&#8230;</title>
		<link>http://plentz.org/2006/04/11/enquanto-isso-no-mainstream/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=enquanto-isso-no-mainstream</link>
		<comments>http://plentz.org/2006/04/11/enquanto-isso-no-mainstream/#comments</comments>
		<pubDate>Tue, 11 Apr 2006 04:01:17 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
				<category><![CDATA[quotes]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://plentz.org/2006/04/11/enquanto-isso-no-mainstream/</guid>
		<description><![CDATA[F. Meyer ! says: defina o mainstream que ruby não vai entrar diego says: essas empresas recheadas de programadores que estão lá somente porque informática pagava mais que educação física. Tá, parei.]]></description>
			<content:encoded><![CDATA[<blockquote><p><a href="http://fmeyer.org/">F. Meyer</a> ! says:<br />
defina o mainstream que ruby não vai entrar<br />
diego says:<br />
essas empresas recheadas de programadores que estão lá somente porque informática pagava mais que educação física.</p></blockquote>
<p>Tá, parei.</p>
<div class="acc_license"><a href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="by-nc-nd" /></a></div><!--<rdf:RDF xmlns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Work rdf:about=""><license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/" /></Work><License rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/"><requires rdf:resource="http://creativecommons.org/ns#Attribution" /><permits rdf:resource="http://creativecommons.org/ns#Reproduction" /><permits rdf:resource="http://creativecommons.org/ns#Distribution" /><prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse" /><requires rdf:resource="http://creativecommons.org/ns#Notice" /></License></rdf:RDF>--><img src="http://plentz.org/wordpress/?ak_action=api_record_view&id=135&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2006/04/11/enquanto-isso-no-mainstream/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Para o alto e avante</title>
		<link>http://plentz.org/2006/03/29/para-o-alto-e-avante/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=para-o-alto-e-avante</link>
		<comments>http://plentz.org/2006/03/29/para-o-alto-e-avante/#comments</comments>
		<pubDate>Wed, 29 Mar 2006 04:20:06 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://plentz.org/2006/03/29/para-o-alto-e-avante/</guid>
		<description><![CDATA[Duas ótimas notícias para quem simpatiza com Ruby. A primeira é o lançamento do livro do Taq. Perfeito para quem está querendo começar, mas não tem uma boa base de inglês. Ponto para a comunidade brasileira. A outra é o lançamento do Rails 1.1. Algumas features que chamam atenção (além é claro, dos 500+ bugfixes [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/rostev/303842665/" title="Para o alto e avante!!!"><img src="http://farm1.static.flickr.com/115/303842665_aa70a10ff5_m.jpg" alt="Para o alto e avante!!!" height="180" width="240"   style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;" /></a></p>
<p>Duas ótimas notícias para quem simpatiza com <a href="http://ruby-lang.org/">Ruby</a>. A primeira é o <a href="http://beam.to/taq/blog.php?id=255">lançamento do livro do Taq</a>. Perfeito para quem está querendo começar, mas não tem uma boa base de inglês. Ponto para a comunidade brasileira.</p>
<p>A outra é o <a href="http://weblog.rubyonrails.org/articles/2006/03/28/rails-1-1-rjs-active-record-respond_to-integration-tests-and-500-other-things">lançamento do Rails 1.1</a>. Algumas features que chamam atenção (além é claro, dos 500+ bugfixes e tweaks):</p>
<ul>
<li>
<p>RJS &#8211; JavaScript escrito em Ruby: que tal um bocado de Ajax/Javascript só com Ruby?</p>
<pre># Chamada para efeitos do script.aculo.us
page[:cart].visual_effect(@cart.size == 1 ? :appear : :highlight)

# Atualiza um pedaço de html
page[:cart].replace_html :partial => "cart"
</pre>
</li>
<li>
<p>Active Record &#8211; Cascading eager loading: busca em cascata.</p>
<pre># Single database query:
companies = Company.find(:all, :include => {
  :groups => { :members=> { :favorites } } })

companies[0].groups[0].members[0].favorites[0].name
</pre>
</li>
<li>
<p>Active Record &#8211; Polymorphic associations and join models: possibilidade de relacionamentos many-to-many mais complexos.</p>
<pre>class Author &lt; ActiveRecord::Base
  has_many :authorships
  has_many :books, :through =&gt; :authorships
end

class Book &lt; ActiveRecord::Base
  has_many :authorships
  has_many :authors, :through =&gt; :authorships
end

class Authorship &lt; ActiveRecord::Base
  belongs_to :author
  belongs_to :book
end
</pre>
</li>
</ul>
<p>Confira mais novidades no blog do <a href="http://scottraymond.net/articles/2006/02/28/rails-1.1">Scott Raymond</a>.</p>
<div class="acc_license"><a href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="by-nc-nd" /></a></div><!--<rdf:RDF xmlns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Work rdf:about=""><license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/" /></Work><License rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/"><requires rdf:resource="http://creativecommons.org/ns#Attribution" /><permits rdf:resource="http://creativecommons.org/ns#Reproduction" /><permits rdf:resource="http://creativecommons.org/ns#Distribution" /><prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse" /><requires rdf:resource="http://creativecommons.org/ns#Notice" /></License></rdf:RDF>--><img src="http://plentz.org/wordpress/?ak_action=api_record_view&id=132&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2006/03/29/para-o-alto-e-avante/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RadRails screencast</title>
		<link>http://plentz.org/2006/03/06/radrails-screencast/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=radrails-screencast</link>
		<comments>http://plentz.org/2006/03/06/radrails-screencast/#comments</comments>
		<pubDate>Mon, 06 Mar 2006 23:57:23 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://plentz.org/2006/03/06/radrails-screencast/</guid>
		<description><![CDATA[Acho que todos mundo concorda que boas IDE&#8217;s ajudam muito uma linguagem a se popularizar (ex Java com Eclipse, IDEA, Netbeans[esse último de gosto duvidoso ]). O pessoal do RadRails liberou um screencast mostrando algumas features da IDE. Da pra notar que estão trabalhando legal e a evolução desde a primeira versão é enorme. RadRails [...]]]></description>
			<content:encoded><![CDATA[<p>Acho que todos mundo concorda que boas IDE&#8217;s ajudam muito uma linguagem a se popularizar (ex Java com <a href="http://www.eclipse.org/">Eclipse</a>, <a href="http://www.jetbrains.com/idea/index.html">IDEA</a>, <a href="http://www.netbeans.org/">Netbeans</a>[esse último de gosto duvidoso <img src='http://plentz.org/wordpress/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  ]). O pessoal do <a href="http://www.radrails.org/">RadRails</a> liberou um screencast mostrando algumas features da IDE. Da pra notar que estão trabalhando legal e a evolução desde a primeira versão é enorme. </p>
<p><a href="http://download.radrails.org.nyud.net:8090/video/RadRailsScreencast.mov">RadRails Screencast</a> <i>28.5mb</i></p>
<div class="acc_license"><a href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="by-nc-nd" /></a></div><!--<rdf:RDF xmlns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Work rdf:about=""><license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/" /></Work><License rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/"><requires rdf:resource="http://creativecommons.org/ns#Attribution" /><permits rdf:resource="http://creativecommons.org/ns#Reproduction" /><permits rdf:resource="http://creativecommons.org/ns#Distribution" /><prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse" /><requires rdf:resource="http://creativecommons.org/ns#Notice" /></License></rdf:RDF>--><img src="http://plentz.org/wordpress/?ak_action=api_record_view&id=130&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2006/03/06/radrails-screencast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://download.radrails.org.nyud.net:8090/video/RadRailsScreencast.mov" length="29837880" type="video/quicktime" />
		</item>
		<item>
		<title>Gems via proxy</title>
		<link>http://plentz.org/2006/01/07/gems-via-proxy/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=gems-via-proxy</link>
		<comments>http://plentz.org/2006/01/07/gems-via-proxy/#comments</comments>
		<pubDate>Sun, 08 Jan 2006 02:25:15 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://plentz.org/2006/01/07/gems-proxy/</guid>
		<description><![CDATA[Essa semana queria instalar o Rails no computador lá da empresa pra fazer uns testezinhos e me deparei com um problema. O Gems não conseguia baixar o Rails porque lá a internet é acessada através de um proxy (como na maioria das empresas). Para resolver o problema dei uma pesquisadinha e a resposta é pra [...]]]></description>
			<content:encoded><![CDATA[<p>Essa semana queria instalar o Rails no computador lá da empresa pra fazer uns testezinhos e me deparei com um problema. O Gems não conseguia baixar o Rails porque lá a internet é acessada através de um proxy (como na maioria das empresas). Para resolver o problema dei uma pesquisadinha e a resposta é pra lá de simples, basta criar uma varíavel de ambiente chamada HTTP_PROXY com o endereço do proxy e pronto. Só não esqueça de abrir um prompt novo para que ele esteja atualizado com a variável nova que você criou.</p>
<p>ps: também funciona  adicionando o parâmetro -http-proxy URL:</p>
<pre>gem install rails -http-proxy endereco_proxy --include-dependencies</pre>
<div class="acc_license"><a href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="by-nc-nd" /></a></div><!--<rdf:RDF xmlns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Work rdf:about=""><license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/" /></Work><License rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/"><requires rdf:resource="http://creativecommons.org/ns#Attribution" /><permits rdf:resource="http://creativecommons.org/ns#Reproduction" /><permits rdf:resource="http://creativecommons.org/ns#Distribution" /><prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse" /><requires rdf:resource="http://creativecommons.org/ns#Notice" /></License></rdf:RDF>--><img src="http://plentz.org/wordpress/?ak_action=api_record_view&id=126&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2006/01/07/gems-via-proxy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Rails 1.0</title>
		<link>http://plentz.org/2005/12/13/rails-10/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rails-10</link>
		<comments>http://plentz.org/2005/12/13/rails-10/#comments</comments>
		<pubDate>Wed, 14 Dec 2005 03:13:50 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://plentz.org/2005/12/13/rails-10/</guid>
		<description><![CDATA[Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\diego>gem install rails --include-dependencies C:\Documents and Settings\diego>"c:\dev\ruby\bin\ruby.exe" "c:\dev\ruby\bin\gem" install rails --include-dependencies Attempting local installation of 'rails' Local gem file not found: rails*.gem Attempting remote installation of 'rails' Successfully installed rails-1.0.0 Successfully installed rake-0.6.2 Successfully installed activesupport-1.2.5 Successfully installed activerecord-1.13.2 Successfully installed actionpack-1.11.2 Successfully [...]]]></description>
			<content:encoded><![CDATA[<pre>Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\diego>gem install rails --include-dependencies

C:\Documents and Settings\diego>"c:\dev\ruby\bin\ruby.exe" "c:\dev\ruby\bin\gem"
 install rails --include-dependencies
Attempting local installation of 'rails'
Local gem file not found: rails*.gem
Attempting remote installation of 'rails'
Successfully installed rails-1.0.0
Successfully installed rake-0.6.2
Successfully installed activesupport-1.2.5
Successfully installed activerecord-1.13.2
Successfully installed actionpack-1.11.2
Successfully installed actionmailer-1.1.5
Successfully installed actionwebservice-1.0.0
Installing RDoc documentation for rake-0.6.2...
Installing RDoc documentation for activesupport-1.2.5...
Installing RDoc documentation for activerecord-1.13.2...
Installing RDoc documentation for actionpack-1.11.2...
Installing RDoc documentation for actionmailer-1.1.5...
Installing RDoc documentation for actionwebservice-1.0.0...

C:\Documents and Settings\diego></pre>
<p><a href="http://www.rubyonrails.com/">Enjoy</a> <img src='http://plentz.org/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<div class="acc_license"><a href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="by-nc-nd" /></a></div><!--<rdf:RDF xmlns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Work rdf:about=""><license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/" /></Work><License rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/"><requires rdf:resource="http://creativecommons.org/ns#Attribution" /><permits rdf:resource="http://creativecommons.org/ns#Reproduction" /><permits rdf:resource="http://creativecommons.org/ns#Distribution" /><prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse" /><requires rdf:resource="http://creativecommons.org/ns#Notice" /></License></rdf:RDF>--><img src="http://plentz.org/wordpress/?ak_action=api_record_view&id=125&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2005/12/13/rails-10/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Webserver em 15 minutos</title>
		<link>http://plentz.org/2005/11/10/webserver-em-15-minutos/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=webserver-em-15-minutos</link>
		<comments>http://plentz.org/2005/11/10/webserver-em-15-minutos/#comments</comments>
		<pubDate>Thu, 10 Nov 2005 04:28:57 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[util]]></category>

		<guid isPermaLink="false">http://plentz.org/?p=117</guid>
		<description><![CDATA[A idéia desse how-to é facilitar a vida de quem quer criar um ambiente de desenvolvimento bem estruturado e sem ter que perder dias pra fazer isso. Você não precisa necessariamente instalar tudo que é descrito abaixo, mas note que alguns são pré-requisitos para outros itens. Com certeza esta não é a única forma de [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/persona/37201953/" title="Cisco"><img src="http://farm1.static.flickr.com/24/37201953_0ab41125fd_m.jpg" alt="Cisco" height="160" width="240" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;" /></a></p>
<p>A idéia desse how-to é facilitar a vida de quem quer criar um ambiente de desenvolvimento bem estruturado e sem ter que perder dias pra fazer isso. Você não precisa necessariamente instalar tudo que é descrito abaixo, mas note que alguns são pré-requisitos para outros itens.</p>
<p>Com certeza esta não é a única forma de integrar essa parafernalha toda, mas foi a melhor forma que eu achei (e consegui fazer funcionar). Se alguém tiver alguma sugestão/comentário, <a href="mailto: diego@this_site">drop me a line.</a></p>
<p>Muitos ao ler vão se perguntar, &#8220;mas por que ele usou o Apache ao invés de colocar somente o Tomcat?&#8221;, já que o Tomcat acompanha um webserver build-in. Bom, levando em conta que é infinitamente mais simples integrar isso tudo com o Apache ao invés do Tomcat(e existir muito mais documentação para isso), existem alguns outros motivos para isso, como (dependendo do caso) melhor performance, a utilização dos modules, como o mod_rewrite, mod_proxy, etc.</p>
<p>Uma observação importante antes de começar, não faça como eu quando estava começando a fazer meus testes, <strong>não</strong> coloque ponto-e-vírgula depois das variáveis de sistema *_home.</p>
<p>No início de cada &#8220;sessão&#8221; eu fiz uma listagem das variáveis de sistema que devem ser criadas para o funcionamento correto de cada instalação. <strong>Antes</strong> de iniciar cada instalação, crie <em>todas</em> as variáveis indicadas. Para criar elas (supondo que você está no Windows XP), clique com o botão direito em &#8220;Meu Computador&#8221; -> Propriedades -> Avançado -> Variáveis de sistema -> Clique em &#8220;Nova&#8221; -> Coloque o nome e valor que estão indicados e clique em Ok. No Windows XP elas são válidas a partir do momento que você criou, mas se você está com um prompt de comando aberto será necessário reiniciá-lo.</p>
<p>Cuidado: muitas aplicações precisam estar na variável PATH do Windows para funcionar corretamente, então quando você ver PATH, é para <em>adicionar</em> o caminho à sua PATH e não substituir o conteúdo da variável.</p>
<h3><a href="http://httpd.apache.org/" name="apache">Apache HTTP Server</a></h3>
<p>Arquivos:</p>
<ul>
<li><a href="http://linorg.usp.br/apache/httpd/binaries/win32/apache_2.2.13-win32-x86-no_ssl.msi">apache_2.2.13-win32-x86-no_ssl.msi</a></li>
</ul>
<p>- Antes de fazer qualquer outra coisa, verifique se você já não possui algum processo rodando na porta 80. Para isso, entre no console (run&#8230; &#8220;cmd&#8221;) e digite:</p>
<p><code>netstat -aon | find /i "listening" |find /i ":80"</code></p>
<p>Se encontrar algo, sua porta 80 está sendo usada. Pegue o ID encontrado, entre no task manager (ctrl+alt+del) -> processes -> view -> marque o check que diz PID e localize na lista o ID encontrado.</p>
<p>Dica: se você utiliza <a href="http://skype.com">Skype</a>, você precisa desabilitar <a href="http://www.google.com.br/search?q=skype+port+80">o uso da porta 80 por ele</a>, para poder utilizar corretamente o Apache. Para resolver isso, entre no Skype em Tools -> Options&#8230; -> Connection -> Desmarque a caixa &#8220;Use port 80 and 443 as alternatives for incomming connections&#8221;.</p>
<p>- Crie a pasta c:\dev\workspace\</p>
<p>- Entre no instalador: Next -> Marque &#8220;Accept&#8230;&#8221; -> Next -> Next -> Preencha com seus dados(não precisam ser dados reais) -> Next -> Marque &#8220;Custom&#8230;&#8221; -> Next -> Clique em &#8220;Change&#8230;&#8221; e digite &#8220;c:\dev&#8221;(ele coloca automaticamente dentro da pasta c:\dev\apache2\) -> Ok -> Next -> Install(espere instalar) -> Finish.</p>
<p>- Abra o arquivo c:\dev\apache2\conf\httpd.conf (recomendo criar um atalho pra ele enquanto você está configurando seu ambiente, você vai usá-lo bastante. E claro, a partir de agora, sempre que eu falar em http.conf você já sabe do que eu estou falando) e altere a linha que diz DocumentRoot para:</p>
<p><code># faz com que o apache tome como diretório raiz c:\dev\workspace<br />
DocumentRoot "c:/dev/workspace"</code></p>
<p>e altere a linha que diz</p>
<p><code>&lt;Directory "c:/dev/Apache2/htdocs"&gt;</code></p>
<p>para</p>
<p><code>&lt;Directory "c:/dev/workspace"&gt;</code></p>
<p>- Restarte o Apache clicando no ícone que foi criado no seu system tray e em seguida restart.</p>
<p>- Para testar, abra o seu <a href="http://getfirefox.com">browser favorito</a> e entre em <a href="http://localhost">http://localhost</a>. Você deve ver uma listagem do diretório c:\dev\workspace.</p>
<h3><a href="http://java.sun.com/" name="java">Java</a> + <a href="http://tomcat.apache.org/" name="tomcat">Tomcat</a></h3>
<p>Variáveis de sistema:</p>
<p><code>JAVA_HOME c:\dev\java\jdk<br />
CATALINA_HOME c:\dev\tomcat<br />
CLASSPATH .;%JAVA_HOME%;<br />
PATH %JAVA_HOME%\bin;</code></p>
<p>Arquivos:</p>
<ul>
<li><a href="http://java.sun.com/javase/downloads/index.jsp#jdk">jdk-6u16-windows-i586.exe</a></li>
<li><a href="http://ftp.unicamp.br/pub/apache/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.exe">apache-tomcat-6.0.20.exe</a></li>
<li><a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.28/mod_jk-1.2.28-httpd-2.2.3.so">mod_jk-1.2.28-httpd-2.2.3.so</a></li>
</ul>
<p>- Entre no instalador do Java: Marque &#8220;Accept&#8230;&#8221; -> Next -> Clique em &#8220;Change&#8230;&#8221; e digite &#8220;c:\dev\java\jdk&#8221; -> Ok -> Next -> Aguarde ele instalar o JDK -> Clique em &#8220;Change&#8230;&#8221; (agora é a pasta de instalação da JRE) e digite &#8220;c:\dev\java\jre&#8221; -> Ok -> Next -> Next -> Finish.</p>
<p>- Agora entre no instalador do Tomcat: Next -> I Agree -> Selecione a instalação &#8220;Full&#8221; -> Next -> Digite o seguinte endereço &#8220;c:\dev\tomcat&#8221; -> Next -> Next -> Install -> Aguarde a instalação -> Desmarque a opção &#8220;Show readme&#8221; -> Finish.</p>
<p>- Coloque o arquivo mod_jk-1.2.28-httpd-2.2.3.so dentro de c:\apache2\modules\ e mude o nome do arquivo para mod_jk.so.<a href="#p1" name="a1">[1]</a></p>
<p>- Para manter mais organizado vamos colocar as configurações do tomcat em um arquivo à parte. Adicione a linha à seguir no final do http.conf:</p>
<p><code>Include conf/tomcat.conf</code></p>
<p>- Agora crie um o tomcat.conf em C:\dev\apache2\conf com o seguinte conteúdo <a href="#p2" name="a2">[2]</a></p>
<p><code># carrega o connector<br />
LoadModule jk_module modules/mod_jk.so<br />
# faz com que o Apache também reconheça arquivos index.jsp como arquivo default para diretórios<br />
DirectoryIndex index.jsp<br />
# seta configurações de log<br />
JkLogFile c:/dev/apache2/logs/mod_jk.log<br />
JkLogLevel info<br />
# aqui você monta os contextos do Tomcat, você deve fazer isso para as aplicações que você criar.<br />
# Formato: JkMount URL_PREFIX WORKER_NAME<br />
# Onde:<br />
# URL_PREFIX é o caminho que vai ser acessado via browser. Ex: teste para http://localhost/<strong>teste</strong><br />
# WORKER_NAME no nosso exemplo sempre será ajp13<br />
JkMount /jsp-examples/* ajp13<br />
JkMount /servlets-examples/* ajp13<br />
JkMount /tomcat-docs/* ajp13</code></p>
<p>- Mova as três pastas C:\dev\tomcat\webapps\jsp-examples, C:\dev\tomcat\webapps\servlets-examples, c:\dev\tomcat\webapps\tomcat-docs para dentro de c:\dev\workspace</p>
<p>- Edite o arquivo c:\tomcat\conf\server.xml e procure por uma linha que diz</p>
<p><code>      &lt;Host name="localhost" appBase="webapps"<br />
       unpackWARs="true" autoDeploy="true"<br />
       xmlValidation="false" xmlNamespaceAware="false"&gt;</code></p>
<p>e altere para (copie junto a tag DefaultContext)</p>
<p><code>&lt;Host name="localhost" appBase="c:/dev/workspace"<br />
       unpackWARs="true" autoDeploy="true"<br />
       xmlValidation="false" xmlNamespaceAware="false"&gt;<br />
	  &lt;DefaultContext reloadable="true" /&gt;</code></p>
<p>- Feito isso, reinicie o Apache e depois o Tomcat.</p>
<p>- Para testar, entre em http://localhost/jsp-examples/ e http://localhost/servlets-examples/ e você deve ver os exemplos que acompanham o Tomcat (execute alguns exemplos para ter certeza que está tudo ok).</p>
<h3>Links relacionados:</h3>
<ul>
<li><a href="http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html">Tomcat Clustering/Session Replication HOW-TO</a></li>
</ul>
<h3><a href="http://www.php.net/" name="php">PHP</a></h3>
<p>Variáveis de sistema:<br />
<code>PHP_HOME c:\dev\php</code></p>
<p>Arquivos:</p>
<ul>
<li><a href="http://windows.php.net/downloads/releases/php-5.3.0-Win32-VC9-x86.zip">php-5.3.0-Win32-VC9-x86.zip</a></li>
</ul>
<p>- Descompacte o conteúdo do arquivo em c:\dev\php</p>
<p>- Entre em c:\dev\php\ e renomeie o arquivo &#8220;php.ini-recommended&#8221; para &#8220;php.ini&#8221;(mas se você quer algo mais próximo do que irá encontrar em um ambiente de produção, recomendo usar o &#8220;php.ini-dist&#8221; no lugar do &#8220;php.ini-recommended&#8221;).</p>
<p>- Abra o arquivo e procure pelas seguintes linhas alterando seu valor:</p>
<p><code>include_path = ".;c:\dev\php\includes"<br />
doc_root = "c:\dev\workspace"<br />
extension_dir = "c:\dev\php\ext"<br />
display_errors = On</code></p>
<p>- Para manter mais organizado vamos colocar as configurações do PHP em um arquivo à parte. Adicione a linha à seguir no final do http.conf:</p>
<p><code>Include conf/php.conf</code></p>
<p>- Agora crie o php.conf em C:\dev\apache2\conf com o seguinte conteúdo:</p>
<p><code># carrega o módulo do php<br />
LoadModule php5_module "c:/dev/php/php5apache2.dll"<br />
# adiciona o content type para os arquivos php<br />
AddType application/x-httpd-php .php<br />
# seta o home do php<br />
PHPIniDir "c:/dev/php"<br />
# faz com que o Apache também reconheça arquivos index.php como arquivo default para diretórios<br />
DirectoryIndex index.php</code></p>
<p>- Reinicie o Apache</p>
<p>- Para testar, entre em c:\dev\workspace e crie um arquivo phpinfo.php com o  conteúdo abaixo e acesse <a href="http://localhost/phpinfo.php">http://localhost/phpinfo.php</a></p>
<p><code>&lt;? php phpinfo () ;?&gt;</code></p>
<p>OBS: Se você deseja utilizar MySQL com o PHP, você deve utilizar a lib php_mysqli.dll <a href="#p3" name="a3">[3]</a>. Seguem as alterações que você deve fazer no seu php.ini:</p>
<p><code>extension=php_mysqli.dll<br />
mysqli.default_host = localhost<br />
mysqli.default_user = root</code></p>
<h3>Links relacionados:</h3>
<ul>
<li><a href="http://www.zend.com/php5/articles/php5-mysqli.php">Using ext/mysqli: Part I &#8211; Overview and Prepared Statements</a></li>
<li><a href="http://www.zend.com/php5/articles/php5-mysqli2.php">Using ext/mysqli: Part II &#8211; Extending mysqli</a></li>
</ul>
<h3><a href="http://www.mysql.com/" name="mysql">MySQL</a></h3>
<p>Variáveis de sistema:</p>
<p><code>MYSQL_HOME c:\dev\mysql<br />
PATH %MYSQL_HOME%\bin;</code></p>
<p>Arquivos:</p>
<ul>
<li><a href="http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-essential-5.1.38-win32.msi/from/http://mysql.cce.usp.br/">mysql-essential-5.1.38-win32.msi</a></li>
<li><a href="http://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-gui-tools-5.0-r17-win32.msi/from/http://linorg.usp.br/mysql">mysql-gui-tools-5.0-r17-win32.msi</a></li>
</ul>
<p>- Entre no instalador: Next -> Marque &#8220;Custom&#8221; -> Next -> Clique em &#8220;Change&#8230;&#8221; e digite &#8220;c:\dev\mysql&#8221; -> Ok -> Next -> Install(espere instalar) -> Marque &#8220;Skip Sign-Up&#8221; -> Next -> Finish.</p>
<p>- O Instance Configuration Wizard será executado, continue a configuração: Next -> Next -> Next -> Next -> Next -> Next -> Next -> Selecione &#8220;Best Support For Multilingualism&#8221; -> Next -> Next -> Desmarque &#8220;Modify Settings&#8221; -> Next -> Execute -> Finish.</p>
<p>- Próximo passo é instalar o MySQL GUI Tools: Next -> Marque &#8220;I accept&#8230;&#8221; -> Next -> Clique em &#8220;Change&#8230;&#8221; e digite &#8220;c:\dev\mysql\tools&#8221; -> Ok -> Next -> Next -> Install -> Finish.</p>
<h3>Links relacionados:</h3>
<ul>
<li><a href="http://www.informit.com/articles/printerfriendly.asp?p=410743&#038;rl=1">An Overview of MySQL Query Browser&#8217;s Features and Capabilities</a></li>
</ul>
<p><a href="#a1" name="p1">[1]</a> O connector <a href="http://jakarta.apache.org/tomcat/connectors-doc/news/20041100.html#20041115.1">mod_jk2 foi descontinuado</a> por desinteresse dos desenvolvedores e também pelos usuários, já que era mais difícil de configurar. Mas se você quer mesmo, ou precisa, utilizar o mod_jk2, <a href="http://www.perfectreign.com/modules/articles/article.php?id=1">este tutorial</a> pode ajudar muito.</p>
<p><a href="#a2" name="p2">[2]</a> <a href="http://www.inf.ufsc.br/~leandro/apache-tomcat.html">Alguns tutoriais</a> fazem uso de um arquivo workers.properties para setar algumas configuraçãoes do connector, mas como o objetivo deste tutorial é apenas montar um ambiente rápido e prático para desenvolvimento, não utilizaremos esta abordagem.</p>
<p><a href="#a3" name="p3">[3]</a> Existe também o <a href="http://www.php.net/manual/en/ref.mysql.php">php_mysql.dll</a>, mas como o <a href="http://www.php.net/manual/en/ref.mysqli.php">php_mysqli.dll</a> (o &#8220;i&#8221; é de improved) é mais recente e melhor, utilize ele. Alguns tutoriais consideram a utilização dos dois, mas particularmente não vejo nenhum problema em usar somente o php_mysqli. Uma vantagem (se é que pode ser chamada de vantagem) é que com php_mysqli.dll você não precisa setar a porta default (3306).<br />
Mas cuidado, se você já possui uma aplicação e quer continuar o seu desenvolvimento, é recomendado dar uma boa verificada no código, já que existem incompatibilidades entre as libs.</p>
<blockquote><p>Be careful when porting from ext/mysql to ext/mysqli. The following functions return NULL when no more data is available in the result set (ext/mysql&#8217;s functions return FALSE): mysqli_fetch_row(); mysqli_fetch_array(); mysqli_fetch_assoc();</p></blockquote>
<div class="acc_license"><a href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="by-nc-nd" /></a></div><!--<rdf:RDF xmlns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Work rdf:about=""><license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/" /></Work><License rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/"><requires rdf:resource="http://creativecommons.org/ns#Attribution" /><permits rdf:resource="http://creativecommons.org/ns#Reproduction" /><permits rdf:resource="http://creativecommons.org/ns#Distribution" /><prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse" /><requires rdf:resource="http://creativecommons.org/ns#Notice" /></License></rdf:RDF>--><img src="http://plentz.org/wordpress/?ak_action=api_record_view&id=117&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2005/11/10/webserver-em-15-minutos/feed/</wfw:commentRss>
		<slash:comments>47</slash:comments>
		</item>
		<item>
		<title>Eclipsed</title>
		<link>http://plentz.org/2005/02/27/eclipsed/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=eclipsed</link>
		<comments>http://plentz.org/2005/02/27/eclipsed/#comments</comments>
		<pubDate>Sun, 30 Oct 2005 00:11:53 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://plentz.org/wordpress/?p=106</guid>
		<description><![CDATA[Logo que comecei a programar, conheci o Dreamweaver. Achei ótimo clicar e arrastar componentes pra cá e pra lá, colocar formatação, tudo muito prático. Felizmente, as pessoas evoluem. Aos poucos começei a entender melhor o que acontecia por baixo dos panos, e entender também o significado daquela monstruiosidade de tags que eram criadas. Conforme fui [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/mark_k_nj/523623785/" title="Total Eclipse Of The Contrast"><img src="http://farm1.static.flickr.com/245/523623785_48da573b9b_m.jpg" alt="Total Eclipse Of The Contrast" height="167" width="240" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;"/></a></p>
<p>Logo que comecei a programar, conheci o <a href="http://www.macromedia.com/software/dreamweaver/">Dreamweaver</a>. Achei ótimo clicar e arrastar componentes pra cá e pra lá, colocar formatação, tudo muito prático. Felizmente, as pessoas evoluem. Aos poucos começei a entender melhor o que acontecia por baixo dos panos, e entender também o significado daquela monstruiosidade de tags que eram criadas. Conforme fui evoluindo, mais cresceu meu desafeto com ele, devido ao código porcalhão que ele gera. A facilidade de ver as alterações <em>on-the-fly</em> continuava lá, mas já começava a fazer tudo no braço.</p>
<p>A partir dai, cada vez mais busquei editores que facilitassem minha vida, não visualmente, mas que permitissem gerar um código elegante com maior velocidade e facilidade.</p>
<p>Experimentei de tudo, <a href="http://www.scintilla.org/">Scite</a> (recomendação do <a href="http://www.jonasgalvez.com/">Jonas</a>), <a href="http://www.crimsoneditor.com/">Crimson Editor</a>, <a href="http://www.ultraedit.com/">UltraEdit</a>, <a href="http://www.adobe.com/products/dreamweaver/">Dreamweaver</a>, entre muitos outros, mas sempre sentia falta de algo, fosse um <em>code completion</em> decente ou um syntax highlighter pra alguma linguagem. E ficar trocando de editor pra cada tipo de arquivo que for editar, além de ser improdutivo (você acaba não sabendo usar nenhum bem), obriga você a ter mais que um editor no computador &#8211; e pior, ficar alternando entre eles.</p>
<p>Felizmente, chegou ao meu conhecimento um editor que estava ganhando espaço &#8211; e fazendo bastante sucesso: o <a href="http://www.eclipse.org">Eclipse</a>. No começo, não me chamou a atenção, parecia ser mais um editor com uma interface legal e com um code complete aguçado. Pesquisando um pouco mais sobre ele, descobri que sabendo usá-lo corretamente &#8211; e por completo, pode fazer chover. Tirando proveito da plataforma super extensível dele, com alguns plugins ele pode ser tornar um ambiente de trabalho muito produtivo.</p>
<p>Antes de partir para os plugins, vou dar algumas dicas referentes ao funcionamento e utilização dele como um todo. Para começar, entre no site do <a href="http://www.eclipse.org">Eclipse</a>, e <a href="http://download.eclipse.org/eclipse/downloads/">faça o download dele</a>, selecionando conforme o seu sistema operacional. Feito isto, recomendo que descompacte ele em alguma pasta de fácil acesso (algo como c:\dev\eclipse\). Abra ele e use por um tempo, crie um projeto, alguns arquivos, altere as opções, salve, edite, bagunce mesmo &#8211; mas lembre-se, sempre tenha uma cópia do arquivo de instalação dele para um eventual “acidente&#8221;.</p>
<h3>Atalhos do editor</h3>
<p>* alguns funcionam somente no editor Java</p>
<ul>
<li>&lt;Ctrl&gt; + &lt;Space&gt; &#8211; Abre o code completion. Lembre-se, anote, marque na sua testa, control-espaço é seu amigo;</li>
<li>&lt;Ctrl&gt; + &lt;Shift&gt; + &lt;r&gt; &#8211; Open Resource. Abre uma janela para abrir qualquer arquivo (xml, properties, jsp, etc);</li>
<li>&lt;Ctrl&gt; + &lt;Shift&gt; + &lt;t&gt; &#8211; Open Type. Abre uma janela para pesquisa das classes disponíveis;</li>
<li>&lt;Ctrl&gt; + &lt;/&gt; &#8211; (des)Comenta bloco de código;</li>
<li>&lt;Alt&gt; + (&lt;up&gt; ou &lt;down&gt;) &#8211; Move bloco de código;</li>
<li>&lt;Shift&gt; + &lt;Enter&gt; &#8211; Insere linhas em branco abaixo da atual;</li>
<li>&lt;Ctrl&gt; + &lt;Shift&gt; + &lt;Enter&gt; &#8211; Insere linhas em branco acima da atual.</li>
<li>&lt;Ctrl&gt; + &lt;d&gt; &#8211; Remove linha atual;</li>
<li>&lt;Ctrl&gt; + &lt;1&gt; &#8211; Exibe possíveis soluções para um problema que ele encontrou no seu código;</li>
<li>&lt;Ctrl&gt; + &lt;Shift&gt; + &lt;o&gt; &#8211; Ajusta seus imports(no caso do Java ao menos);</li>
<li>&lt;Ctrl&gt; + &lt;Shift&gt; + &lt;f&gt; &#8211; Formata o código conforme configuração de padrão definida;</li>
<li>&lt;Ctrl&gt; + &lt;m&gt; &#8211; Altera entre maximizada/default para uma view, muito útil quando se está trabalhando com arquivo com muito código;</li>
<li>&lt;Ctrl&gt; + &lt;h&gt; &#8211; Busca por referências do elemento(método,atributo&#8230;) que o cursor está posicionado sobre, em todo projeto;</li>
<li>&lt;Ctrl&gt; + &lt;i&gt; &#8211; Corrige identação de um pedaço de código;</li>
<li>&lt;Ctrl&gt; + &lt;3&gt; &#8211; Quick Access&#8230; quase um <a href="http://www.blacktree.com/projects/quicksilver.html">Quicksilver</a> para o Eclipse;</li>
<li>&lt;Ctrl&gt; + &lt;3&gt; &#8211; Quick Outline&#8230; exibe a lista de métodos/atributos da classe. Se pressionado 2 vezes, exibe também das classes mães;</li>
</ul>
<h3>Eclipse Plugins</h3>
<p>Bom, depois de toda essa ladainha, vamos ao que interessa, os plugins. O Eclipse conta com uma estrutura muito boa no quesito extensibilidade &#8211; mesmo sua API sendo criticada por alguns. Pode-se adicionar features para praticamente qualquer propósito nele. A instalação de plugins é muito fácil e pode ser feita de duas maneiras:</p>
<ul>
<li>Via update site – abra o Eclipse, vá em “Help&#8221;, “Software Updates&#8230;&#8221;, “Find and Instal…&#8221; Na tela que abre, selecione a segunda opção e de next. Clique agora em “New Remote Site&#8230;&#8221;. No campo “Name&#8221; coloque o nome do plugin que será instalado, e no campo URL coloque o endereço do update site(quando existir um). Clique agora no íncone de “+&#8221; ao lado do nome do plugin e selecione o “pacote&#8221; que você deseja instalar. Clique em “Next&#8221;. Selecione a versão do plugin, dê “Next&#8221;, aceite os termos do plugin e vá em “Finish&#8221;. Ele vai baixar automaticamente os arquivos necessários e provavelmente vai pedir para você restartar o Eclipse.</li>
<li>Via download – entre no site do desenvolvedor do plugin, baixe o arquivo contendo o plugin e descompacte ele. Normalmente, os pluguins vem com uma ou duas pastas dentro: &#8220;plugins&#8221; e &#8220;features&#8221;. Coloque os arquivos nas suas devidas pastas e entre novamente no Eclipse.</li>
</ul>
<p>Procurei deixar os plugins com funcionalidades semelhantes próximos para facilitar a localização. O nome do plugin é também um link para o site do desenvolvedor/projeto, ficando ao seu lado o link para download ou update site, seguido de uma pequena descrição.</p>
<p><strong><a href="http://eclipse.org/webtools/">Eclipse Web Tools Plataform (WTP)</a></strong> &#8211; <a href="http://download.eclipse.org/webtools/downloads/">Download</a><br />
Provavelmente quem já usa o Eclipse à mais tempo deve conhecer o <a href="http://www.objectlearn.com/">Lomboz</a>. O WebTools na verdade é uma &#8220;continuação&#8221; do projeto <a href="http://www.objectlearn.com/">Lomboz</a>, mas agora como sub-projeto da Eclipse Foundation. Vem com editores para JSP, HTML, Javascript, CSS, SQL, XML, DTD, XSD e WSDL.</p>
<p><strong><a href="http://run-jetty-run.googlecode.com/">Run Jetty Run</a></strong> &#8211; <a href="http://run-jetty-run.googlecode.com/svn/trunk/updatesite">Update site</a><br />
Uma forma decente e simples de usar o <a href="http://www.eclipse.org/jetty/">Jetty</a> para desenvolvimento, já que o connector atual disponível pro WTP é uma piada de mal gosto.</p>
<p><strong><a href="http://www.aptana.com/">Aptana</a></strong> &#8211; <a href="http://update.aptana.com/update/">Update site</a><br />
Excelente plugin para coding e debug <a href="http://www.aptana.com/rails">Ruby + Rails (antigo RadRails)</a>, <a href="http://www.aptana.com/python">Python+Jython(antigo PyDev)</a>, <a href="http://www.aptana.com/jaxer">JavaScript/Ajax (Jaxer)</a>, <a href="http://www.aptana.com/php">PHP</a>, xHTML/RHTML e CSS, além de <a href="http://www.aptana.com/air">Adobe Air</a> e <a href="http://www.aptana.com/iphone">iPhone</a>. Seu <a href="http://www.aptana.tv/">site conta com diversos <em>screencasts</em></a> demonstrando a <a href="http://www.aptana.com/docs/">utilização do plugin</a>.</p>
<p><strong><a href="http://tools.hibernate.org">Hibernate Tools</a></strong> &#8211; <a href="http://download.jboss.org/jbosside/updates/development">Update site</a><br />
Auxilia o desenvolvedor que utiliza Hibernate na sua aplicação, facilitando <a href="http://www.hibernate.org/hib_docs/tools/viewlets/hbmxml_editing.htm">a edição dos hbm.xmls</a> (com syntax highlighting, <em>code-completion</em>), <a href="http://www.hibernate.org/hib_docs/tools/viewlets/entity_model_zoom_and_print.htm">permite navegação e impressão do <em>entity model</em></a>, <a href="http://www.hibernate.org/hib_docs/tools/viewlets/custom_reverse_engineering.htm">engenharia reversa e geração de código</a>,  <a href="http://www.hibernate.org/hib_docs/tools/viewlets/java_hql_editing_and_validation.htm"><em>code completion</em> para HQL/JPA-QL queries diretamente no editor Java</a>, editor para testes para <a href="http://www.hibernate.org/hib_docs/tools/viewlets/edit_and_run_criteria.htm"><em>Criteria queries</em></a> e <a href="http://www.hibernate.org/hib_docs/tools/viewlets/edit_and_run_hql.htm">HQL/JPA-QL queries</a>. A criação do <a href="http://www.hibernate.org/hib_docs/tools/viewlets/create_console_configuration_jpa.htm"><em>console configuration</em></a> para você poder utilizar o plugin também é mostrada no site.</p>
<p><strong><a href="http://springide.org/">Spring IDE</a></strong> &#8211; <a href="http://springide.org/updatesite">Update site</a><br />
Interface gráfica para trabalhar com arquivos de configuração do <a href="http://www.springframework.com/">Spring Framework</a>. Conta com diversas <a href="http://springide.org/project/wiki/SpringideFeatures">features</a> como <a href="http://springide.org/project/wiki/BeansXmlEditor">editor para os arquivos de configuração dos beans</a>, <a href="http://springide.org/project/wiki/BeansConfigValidator">validação dos arquivos de configuração</a>, etc.</p>
<p><strong><a href="http://www.eclipse.org/pdt/">Eclipse PDT</a></strong> &#8211; <a href="http://download.eclipse.org/tools/pdt/updates/2.0/releases/">Update site</a><br />
Plugin oficial da Eclipse Foundation para quem desenvolve PHP. <a href="http://www.zend.com/en/community/pdt">Inicialmente criado</a> pela Zend (empresa de dois grandes contribuidores do PHP).</p>
<p><strong><a href="http://www.phpeclipse.de/">PHPEclipse</a></strong> &#8211; <a href="http://update.phpeclipse.net/update/stable/1.2.x">Update site</a><br />
Pra quem desenvolve PHP, este plugin é uma legítima <a href="http://phpeclipse.de/tiki-browse_gallery.php?galleryId=1">mão na roda</a>. O code assist dele é ótimo, tendo praticamente todas (se não todas) as funções nativas. Possui integração com <a href="http://www.mysql.com/">MySQL</a> e com o <a href="http://httpd.apache.org/">Apache</a>. No seu site explica como instalar o <a href="http://dd.cron.ru/dbg/downloads.php">debbuger</a> e o pacotão <a href="http://www.apachefriends.org/en/xampp.html">WAMPP</a>. No <a href="http://www.plog4u.org/index.php/Using_PHPEclipse">Wiki do site Plog4u</a> existe um ótimo tutorial para este plugin.</p>
<p><strong><a href="http://groovy.codehaus.org/Eclipse+Plugin">Groovy Eclipse Plugin</a></strong> &#8211; <a href="http://dist.codehaus.org/groovy/distributions/update/">Update site</a><br />
Plugin para suporte à Groovy desenvolvido pelo pessoal da <a href="http://codehaus.org/">Codehaus</a>.</p>
<p><strong><a href="http://www.epic-ide.org/">EPIC &#8211; Eclipse Perl Integration</a></strong> &#8211; <a href="http://e-p-i-c.sf.net/updates">Update site</a><br />
Plugin bem completo para <a href="http://www.perl.com/">Perl</a>, vem com o mesmo tester de regular expressions do <a href="http://rubyeclipse.sourceforge.net/">Ruby Development Tools</a>(o código foi cedido por eles). Pra quem ainda usa Perl <a href="http://e-p-i-c.sourceforge.net/main.html#Features">é uma boa pedida</a>.</p>
<p><strong><a href="http://www.cfeclipse.org/">CFEclipse</a></strong> &#8211; <a href="http://www.cfeclipse.org/update">Update site</a><br />
Possui <a href="http://cfeclipse.tigris.org/images/winbeta.jpg">syntax<br />
 highlighting</a>, code insight, content outline e auxilia a encontrar problemas no código. Substitui perfeitamente qualquer editor proprietário da <a href="htttp://www.macromedia.com/">Macromedia</a> como o HomeSite, Dreamweaver e o próprio ColdFusion. Talvez o pessoal do <a href="http://www.cfgigolo.com/">CFGigolô</a> conheça.</p>
<p><strong><a href="http://www.eclipse.org/cdt/">C/C++ Development Tools</a></strong> &#8211; <a href="http://download.eclipse.org/tools/cdt/releases/eclipse3.1">Update site</a><br />
Adiciona funcionalidades para desenvolvimento em C/C++ ao Eclipse.</p>
<p><strong><a href="http://www.eclipse.org/subversive/">Subversive</a></strong> &#8211; <a href="http://download.eclipse.org/technology/subversive/0.7/update-site/">Update site</a> / <a href="http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/">Connectors update site</a><br />
Oferece suporte ao <a href="http://subversion.tigris.org/">Subversion</a> de forma similar ao suporte à CVS que já vem integrado com o Eclipse. Conta com diversas <a href="http://www.polarion.org/index.php?page=features&#038;project=subversive">features</a> legais, além de ter uma <a href="http://www.polarion.org/index.php?page=screenshots&#038;project=subversive">interface</a> simples de usar.</p>
<p><strong><a href="http://eclipseme.org/">EclipseME</a></strong> &#8211; <a href="http://eclipseme.org/updates/">Update site</a><br />
Plugin para auxiliar no desenvolvimento de MIDlets <a href="http://java.sun.com/javame/">J2ME</a>, permitindo que o desenvolvedor se preocupe mais com o desenvolvimento da aplicação do que com requisitos específicos da plataforma J2ME.</p>
<p><strong><a href="http://quantum.sourceforge.net/">QuantumDB</a></strong> &#8211; <a href="http://quantum.sourceforge.net/update-site/">Update site</a><br />
Quantum é um plugin para acesso à banco de dados, através de um driver JDBC padrão. Sua interface mostra tabelas, views e sequences em <a href="http://quantum.sourceforge.net/perspective.html">formato de árvore</a> (como a maioria) e possui também um SQL editor com <a href="http://quantum.sourceforge.net/editor.html">syntax highlighting</a>.</p>
<p><strong><a href="http://www.azzurri.jp/en/clay">Clay Database Modeling</a></strong> &#8211; <a href="http://www.azzurri.jp/en/clay/download.html">Download</a><br />
O Clay é um plugin que ajuda no design de um banco de dados. Ele possui <a href="http://www.azzurri.jp/en/software/clay/screenshots.jsp">algumas features bem interessantes</a>, como: <a href="http://www.azzurri.jp/en/software/clay/images/clay_eclipse_1.png">interface super intuitiva</a>, <a href="http://www.azzurri.jp/en/software/clay/images/wiz_reverse_connection_list.png">engenharia</a> <a href="http://www.azzurri.jp/en/software/clay/images/wiz_reverse_tables.png">reversa</a> e <a href="http://www.azzurri.jp/en/software/clay/images/dialog_edit_fk_cols.png">editores gráficos</a>.</p>
<p><strong><a href="http://andrei.gmxhome.de/anyedit/">AnyEdit tools</a></strong> &#8211; <a href="http://andrei.gmxhome.de/eclipse/">Update site</a><br />
Adicionar algumas funções para facilitar o desenvolvimento, como conversão caracteres para entidades HTML, maiúscula/minúscula, espaços/tabulações, <a href="http://plentz.org/2005/09/17/remove-trailing-spaces/">remover espaços no final das linhas</a>.</p>
<p><strong><a href="http://www.eclipse.org/tptp/">TPTP Testing Tools</a></strong> &#8211; <a href="http://eclipse.org/tptp/updates/site.xml">Update site</a><br />
Como o nome sugere, o TPTP é um pacote de ferramentas voltadas para ciclos de testes, que se extende de testes manuais à testes para aplicações web. Possui integração com o JUnit.</p>
<p><strong><a href="http://pmd.sourceforge.net/">PMD</a></strong> &#8211; <a href="http://pmd.sourceforge.net/eclipse/">Update site</a><br />
Acredito que o PMD seja o plugin de verificação/análise de bugs e estilo de código <a href="http://www-128.ibm.com/developerworks/java/library/j-pmd/">mais usado na atualidade</a>. Possui uma série de verificações legais como busca por blocos vazios de try/catch/finally/switch, variáveis não usadas, entre outras. Dica de amigo: mantenha ele longe do seu analista se você não conhece o código à fundo.</p>
<p><strong><a href="http://eclipse-cs.sourceforge.net">Eclipse-CS</a></strong> &#8211; <a href="http://eclipse-cs.sourceforge.net/update">Update site</a><br />
O plugin integra o já famoso code analyzer <a href="http://checkstyle.sourceforge.net/">Checkstyle</a>, ferramenta para ajudar você a garantir que seu código Java adere à alguns padrões de codificação. O Checkstyle faz isso inspencionando seus códigos fontes e apontando os itens que foram selecionados no conjunto de regras disponíveis. Além disso, você pode usar o Checkstyle diretamente da linha de comando, ou como parte do seu nt build.</p>
<p><strong><a href="http://findbugs.sourceforge.net">Find Bugs</a></strong> &#8211; <a href="http://findbugs.cs.umd.edu/eclipse">Update site</a><br />
Ferramenta que ajuda à detectar bugs em potencial para códigos Java.</p>
<h3>Outras distribuições do Eclipse</h3>
<ul>
<li><a href="http://www.aptana.com/studio">Aptana Studio</a></li>
<li><a href="http://www.jboss.org/tools/">JBoss Tools</a></li>
<li><a href="http://www.myeclipseide.com/">MyEclipse</a></li>
<li><a href="http://www.ibm.com/software/rational/eclipse/">IBM Rational software</a></li>
<li><a href="http://www.bea.com/framework.jsp?CNT=index.htm&#038;FP=/content/products/workshop/">BEA Workshop Studio</a></li>
<li><a href="http://www.easyeclipse.org/">EasyEclipse</a></li>
<li><a href="http://www.exadel.com/">Exadel Studio</a></li>
<li><a href="http://www.yoxos.com/">Yoxos</a></li>
<li><a href="http://www.eclipsedownload.com/">Omondo UML</a></li>
</ul>
<h3>Dicas</h3>
<ul>
<li>Se você instalar dois ou mais plugins que possuam editor’s para o mesmo tipo de arquivo (ex: DBEdit e DBExplorer, para *.sql), você pode facilmente editar o default entrando em “Window” &gt;&gt; “Preferences” &gt;&gt; “Workbench” &gt;&gt; “File Associatons”. Selecione o tipo de arquivo que você deseja alterar o padrão e logo abaixo irá aparecer os editor’s disponíveis. Marque o desejado e clique em “Dafault”.</li>
<li>Uma coisa que quem está começando não sabe, é que o Eclipse não usa o CLASSPATH do sistema. Então para adicionar libs / classes / projetos, você precisa fazer isso diretamente na IDE. Clique com o botão direito do mouse no nome projeto, entre em Properties -&gt; Java Build Path -&gt; Libraries. Feito isso, entre em “Add class folder” para adicionar um diretório com .class, e “add jars / add external jars” para adicionar jars.</li>
<li>Quando você instalar um plugin, pode ser que o Eclipse não reconheca automaticamente, então você deve usar o parâmetro <em>-clean</em> (&#8220;C:\eclipse\eclipse.exe -clean&#8221; por exemplo). Utilizando este parâmetro, você estará forçando o Eclipse a reconstruir o repositório no qual ele armazena todos os plugin.xml&#8217;s (ele faz isso como uma forma de tornar o load inicial mais rápido).</li>
<li>Além do <em>-clean</em>, o Eclipse oferece uma <a href="http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html">série de outros parâmetros</a> que podem ser utilizados na sua inicialização, que podem inclusive aumentar sua performance.</li>
</ul>
<h3>Links relacionados</h3>
<ul>
<li><a href="http://www.ubuntugeek.com/how-to-install-and-setup-eclipse-with-suns-java.html">How to Install and setup Eclipse with Sun’s Java &#8211; Ubuntu</a></li>
<li><a href="http://www-106.ibm.com/developerworks/library/os-ecref/">Refactoring for everyone</a></li>
<li><a href="http://www-106.ibm.com/developerworks/library/os-ecov/">Getting started with the Eclipse Platform</a></li>
<li><a href="http://www-106.ibm.com/developerworks/library/os-ecvisual/">Build GUIs with the Eclipse Visual Editor project</a></li>
<li><a href="http://www.devx.com/opensource/Article/21562/0">Extending Eclipse with Helpful Views</a></li>
<li><a href="http://www.eclipsecon.org/tutorials.php">EclipseCON Tutorials</a></li>
<li><a href="https://eclipse-tutorial.dev.java.net/visual-tutorials/part1.html">Java Code Templates</a></li>
<li><a href="http://www-106.ibm.com/developerworks/opensource/library/os-ecspy1/">Tune Eclipse’s startup performance, Part 1</a> &amp; <a href="http://www-106.ibm.com/developerworks/opensource/library/os-ecspy2/">Part 2</a></li>
<li><a href="http://www-128.ibm.com/developerworks/library/os-eclplgndep/">Finding unresolved Plug-in dependencies in Eclipse</a></li>
</ul>
<div class="acc_license"><a href="http://creativecommons.org/licenses/by-nc-nd/3.0/"><img src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" alt="by-nc-nd" /></a></div><!--<rdf:RDF xmlns="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Work rdf:about=""><license rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/" /></Work><License rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/"><requires rdf:resource="http://creativecommons.org/ns#Attribution" /><permits rdf:resource="http://creativecommons.org/ns#Reproduction" /><permits rdf:resource="http://creativecommons.org/ns#Distribution" /><prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse" /><requires rdf:resource="http://creativecommons.org/ns#Notice" /></License></rdf:RDF>--><img src="http://plentz.org/wordpress/?ak_action=api_record_view&id=106&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2005/02/27/eclipsed/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>
