<?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>ADSystems - Agile Development Blog &#187; Rails</title>
	<atom:link href="http://blog.adsystems.com.br/category/rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.adsystems.com.br</link>
	<description>agilidade, scrum, tecnologia, costumes, humor, vídeos, cinema, música...</description>
	<lastBuildDate>Thu, 15 Dec 2011 12:15:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Apostila de Ruby on Rails liberada pela Caelum para download</title>
		<link>http://blog.adsystems.com.br/2009/12/02/apostila-de-ruby-on-rails-liberada-pela-caelum-para-download/</link>
		<comments>http://blog.adsystems.com.br/2009/12/02/apostila-de-ruby-on-rails-liberada-pela-caelum-para-download/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 19:46:00 +0000</pubDate>
		<dc:creator>André Dourado</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[TI]]></category>

		<guid isPermaLink="false">http://blog.adsystems.com.br/?p=1798</guid>
		<description><![CDATA[A Caelum há mais de dois anos criou um curso de Rails, depois de passado algum tempo desde sua terceira reformulação, está disponibilizando o material utilizado, para toda a comunidade, seguindo a tradição da Caelum em compartilhar conhecimento. A apostila cobre itens de Ruby desde o básico da linguagem até meta programação, conhecimentos necessários para [...]]]></description>
			<content:encoded><![CDATA[<p>A Caelum há mais de dois anos criou um curso de Rails, depois de passado algum tempo desde sua terceira reformulação, está disponibilizando o material utilizado, para toda a comunidade, seguindo a tradição da Caelum em compartilhar conhecimento. </p>
<p>A apostila cobre itens de Ruby desde o básico da linguagem até meta programação, conhecimentos necessários para utilizar o Rails, onde estudamos partes importantes como Active Record, rotas, Ajax, paginação e integração com Java.</p>
<p>São quase 150 páginas para o auxiliar no aprendizado do Rails. Você pode fazer o download pelo link: <a target="_blank" href="http://www.caelum.com.br/curso/rr-71-ruby-on-rails/">http://www.caelum.com.br/curso/rr-71-ruby-on-rails/</a></p>
<p>Fonte: <a target="_blank" href="http://blog.caelum.com.br/2009/12/02/apostila-de-ruby-on-rails-rr-71-liberada-para-download/">Caelum</a></p>
 <img src="http://www.adsystems.com.br/blog2/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1798" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.adsystems.com.br/2009/12/02/apostila-de-ruby-on-rails-liberada-pela-caelum-para-download/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Os problemas do pensamento do Visual Studio (e outras IDEs)</title>
		<link>http://blog.adsystems.com.br/2009/09/18/os-problemas-do-pensamento-do-visual-studio-e-outras-ides/</link>
		<comments>http://blog.adsystems.com.br/2009/09/18/os-problemas-do-pensamento-do-visual-studio-e-outras-ides/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 10:33:47 +0000</pubDate>
		<dc:creator>André Dourado</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[TI]]></category>

		<guid isPermaLink="false">http://blog.adsystems.com.br/?p=1614</guid>
		<description><![CDATA[Post do Fábio Akita, onde ele traduz a palestra entitulada &#8220;O Visual Studio estraga nossas mentes?&#8220;, apresentada no NYC .NET Developer’s Group, em 20 de Outubro de 2005 por Charles Petzold. Concordo em grande parte com o que foi colocado: De tempos em tempos alguém me pergunta algo do tipo “Que IDE você usa para [...]]]></description>
			<content:encoded><![CDATA[<p>Post do Fábio Akita, onde ele traduz a palestra entitulada &#8220;<a target="_blank" href="http://www.charlespetzold.com/etc/DoesVisualStudioRotTheMind.html">O Visual Studio estraga nossas mentes?</a>&#8220;, apresentada no NYC .NET Developer’s Group, em 20 de Outubro de 2005 por <a target="_blank" href="http://rubyurl.com/L1vF">Charles Petzold</a>. Concordo em grande parte com o que foi colocado:</p>
<blockquote><p>De tempos em tempos alguém me pergunta algo do tipo “Que IDE você usa para programar em Ruby?” E todos ficam surpresos ou frustrados quando eu digo “Nenhum, apenas um editor de textos competente.” Parece que a maioria dos programadores de Visual Basic, Delphi, Java, C#, VB.NET, simplesmente não conseguem sair do dogma dos IDEs com IntelliSense.</p>
<p>Eu, felizmente, comecei a programar dBase numa era onde o máximo em editor de textos era o Wordstar. No DOS eu usei EDLIN e depois o Edit que vinha nos DOS acho que 5.0. Quando fui programador Clipper no começo da década de 90, meu editor favorito era o Norton Editor. Somado a ferramentas como Sidekick, eu tinha a estação de desenvolvimento mais poderosa que se poderia querer: um editor de textos e só.</p>
<p>Quando o Java surgiu, um IDE com capacidades de auto-complete eram obrigatórias. Em .NET a mesma coisa, e pelas mesmas razões. Aqui eu traduzo a palestra entitulada O Visual Studio estraga nossas mentes?, apresentada no NYC .NET Developer’s Group, em 20 de Outubro de 2005 por Charles Petzold. Ele faz uma longa análise dos fundamentos de porque um programador viciado nos dogmas impostos pelo Visual Studio está se tornando um programador ruim.</p>
<p>Atualmente, eu programo apenas Ruby (e outras coisas como Javascript de vez em quando) apenas no Textmate, um competente editor de textos, reminiscente de inspirações em Emacs e Vim, outros dois excelentes editores. E não sinto falta de Eclipses, Netbeans ou qualquer coisa desse tipo e, obviamente, nenhuma falta do Visual Studio. Ah sim, precisar de auto-complete só mostra uma coisa: que as APIs estão sendo muito porcamente desenhadas ultimamente, tornando-as ridiculamente longas!</p>
<p>Recomendo ler o artigo inteiro, pois só traduzi as partes relevantes ao meu ponto. Vamos à tradução:</p>
<p>PS: Vale a pena descrever o paradoxo: não dá para efetivamente ser produtivo em .NET sem Visual Studio, em Java sem Eclipse/Netbeans/etc ou ObjC sem XCode. Isso é um fato. Na prática mesmo, a solução não é fazer C# em Notepad. Esse é o ponto a se pensar <img src='http://www.adsystems.com.br/blog2/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p></blockquote>
<p>O post completo pode ser encontrado no link: <a target="_blank" href="http://akitaonrails.com/2009/09/17/tradu--o-os-problemas-do-pensamento-do-visual-studio-e-outras-ides">http://akitaonrails.com/2009/09/17/tradu&#8211;o-os-problemas-do-pensamento-do-visual-studio-e-outras-ides</a></p>
 <img src="http://www.adsystems.com.br/blog2/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1614" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.adsystems.com.br/2009/09/18/os-problemas-do-pensamento-do-visual-studio-e-outras-ides/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Discussão interessante sobre ASP.Net MVC e C# ou Ruby e Rails?</title>
		<link>http://blog.adsystems.com.br/2009/07/23/discussao-interessante-sobre-asp-net-mvc-e-c-ou-ruby-e-rails/</link>
		<comments>http://blog.adsystems.com.br/2009/07/23/discussao-interessante-sobre-asp-net-mvc-e-c-ou-ruby-e-rails/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 10:35:36 +0000</pubDate>
		<dc:creator>André Dourado</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[TI]]></category>

		<guid isPermaLink="false">http://blog.adsystems.com.br/?p=1426</guid>
		<description><![CDATA[Uma discussão interessante no grupo de discussão DotNetArchitects, sobre vantagens e desvantagens do uso de ASP.Net MVC e C# ou Ruby e Rails, no link: http://groups.google.com/group/dotnetarchitects/browse_thread/thread/39ce51f8fd30a955?hl=pt&#038;pli=1 Fonte: Twitter Giovanni Bassi]]></description>
			<content:encoded><![CDATA[<p>Uma discussão interessante no grupo de discussão DotNetArchitects, sobre vantagens e desvantagens do uso de ASP.Net MVC e C# ou Ruby e Rails, no link: <a target="_blank" href="http://groups.google.com/group/dotnetarchitects/browse_thread/thread/39ce51f8fd30a955?hl=pt&#038;pli=1">http://groups.google.com/group/dotnetarchitects/browse_thread/thread/39ce51f8fd30a955?hl=pt&#038;pli=1</a></p>
<p>Fonte: <a target="_blank" href="http://twitter.com/giovannibassi/status/2792543898">Twitter Giovanni Bassi</a></p>
 <img src="http://www.adsystems.com.br/blog2/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1426" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.adsystems.com.br/2009/07/23/discussao-interessante-sobre-asp-net-mvc-e-c-ou-ruby-e-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial Redmine – Gráficos no Redmine usando a API do Google Charts</title>
		<link>http://blog.adsystems.com.br/2009/07/06/tutorial-redmine-%e2%80%93-graficos-no-redmine-usando-a-api-do-google-charts/</link>
		<comments>http://blog.adsystems.com.br/2009/07/06/tutorial-redmine-%e2%80%93-graficos-no-redmine-usando-a-api-do-google-charts/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 20:13:26 +0000</pubDate>
		<dc:creator>André Dourado</dc:creator>
				<category><![CDATA[Projetos]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Redmine]]></category>
		<category><![CDATA[TI]]></category>

		<guid isPermaLink="false">http://blog.adsystems.com.br/?p=1325</guid>
		<description><![CDATA[Por André Dourado Não sou um especialista nem em Redmine, nem em Rails, portanto essa pode não ser a melhor solução no tocante às ferramentas, mas acabou sendo uma forma simples de implementar gráficos de controle de nosso backlog no Redmine. Descrição da Solução Precisávamos de uma tabela para armazenar uma fotografia do backlog de [...]]]></description>
			<content:encoded><![CDATA[<p>Por André Dourado</p>
<p>Não sou um especialista nem em Redmine, nem em Rails, portanto essa pode não ser a melhor solução no tocante às ferramentas, mas acabou sendo uma forma simples de implementar gráficos de controle de nosso backlog no Redmine.</p>
<h2>Descrição da Solução</h2>
<p>Precisávamos de uma tabela para armazenar uma fotografia do backlog de nosso setor de desenvolvimento. Nessa tabela inserimos, através de uma tarefa agendada, diariamente às 2 da manhã: quantos tickets entraram e saíram no dia anterior e o total de tickets no backlog.</p>
<p>A partir dessa tabela geramos dois gráficos: um gráfico de linhas, com a quantidade diária de tickets abertos, outro de barras verticais, com a quantidade de tickets que entram e que saem.</p>
<h2>Google Charts API</h2>
<p>Google Charts API é uma ferramenta muito útil e interessante para quem desenvolve aplicações web e quer gerar gráficos de uma forma dinâmica. Esta API caracteriza-se pela facilidade de utilização e implementação, não sendo necessária a instalação de qualquer software ou frameworks. Para a sua utilização, basta a URL da API no qual serão referenciados os dados e características necessários para gerar o gráfico pretendido.</p>
<p>Os parâmetros são separados por &#8220;&amp;&#8221;. Podem ser especificados quantos parâmetros se desejarem e pretenderem. Não pretendo aqui tentar esgotar as diversas opções de gráficos possíveis. A documentação completa da API pode ser encontrada em: <a target="_blank" href="http://code.google.com/intl/pt-BR/apis/chart/">http://code.google.com/intl/pt-BR/apis/chart/</a></p>
<p>Detalharei aqui apenas os que utilizamos em nossos gráficos, de forma que tenham um ponto de partida para que possam adaptá-los a suas necessidades.</p>
<p><strong>Construção do Gráfico</strong><br />
<strong>“chs”</strong> Tamanho do gráfico gerado. Use <strong>chs=largura,altura</strong>. Ex: <strong>chs=430&#215;225&amp;</strong></p>
<p><strong>“cht”</strong> Especifica o tipo do gráfico. Linhas do tipo lc, onde são desenhadas diversas linhas para diversos conjuntos de dados, ou do tipo lxy, onde um par de conjuntos de dados é necessário para cada linha. Ex: <strong>cht=lc&amp;</strong></p>
<p><strong>“chxt”</strong> Especifica os diversos eixos que serão usados no gráfico. O índice do primeiro eixo é 0, o índice do segundo eixo é 1 e assim por diante. Você pode especificar diversos eixos incluindo x, t, y ou r diversas vezes. Ex: <strong>chxt=x,y&amp;</strong> onde x corresponde ao eixo 0 e y ao eixo 1.</p>
<p><strong>“chxr”</strong> Define a escala de um eixo. O primeiro parâmetro é o número do eixo relacionado ao especificado em “chxt”. Os seguintes definem o início e o fim da faixa do eixo. Ex: <strong>chxr=1,0,150&amp;</strong></p>
<p><strong>“chd=t”</strong> Codificação dos dados em forma de texto com dimensionamento de dados. Usa uma string de qualquer número positivo ou negativo em conjunto com um parâmetro de dimensionamento (chds). Ex: <strong>chd=t:108,111,111,111,120&amp;</strong></p>
<p><strong>“chds”</strong> Maneira alternativa de definir a linha zero, combinado à codificação de texto. Um conjunto de dados que varia de -60 a 120, pode definir uma escala de -80 a 140 para deixar algum espaço acima e abaixo das barras. Ex: <strong>chds=0,150&amp;</strong></p>
<p><strong>“chxl”</strong> Todos os rótulos de eixo são separados por uma barra vertical “|”.Os rótulos de eixo devem ser especificados em seqüência (0, seguido de 1, seguido de 2 e assim por diante). Ex: <strong>chxl=0:|25|26|27|28|29&amp;</strong></p>
<p><strong>Formatação do Gráfico</strong><br />
<strong>“chls”</strong> Especifica os estilos de linha. Espessura da linha, comprimento da linha contínua, comprimento do segmento em branco. Ex: <strong>chls=2,1,0&amp;</strong> linha de espessura média (2), linha não tracejada (1,0).</p>
<p><strong>“chco”</strong> Especifica as cores das linhas, barras etc. Todos os valores de cores são números hexadecimais no formato RRGGBB. Ex: <strong>chco=DE091A,EBB671&amp;</strong> mostra dois conjuntos de linhas/barras.</p>
<p><strong>“chf”</strong> Especifica o preenchimento sólido com <strong>&#8220;bg ou c ou a,s,cor|&#8221;</strong>,  onde “bg” para preenchimento de plano de fundo, “c” para preenchimento da área do gráfico ou “a” para aplicar transparência ao gráfico inteiro.  é um número hexadecimal em formato RRGGBB. Ex: <strong>chf=c,lg,45,ffffff,0,b1cbfa,0.75|bg,s,fcfcfc&amp;</strong></p>
<p><strong>“chm”</strong> Para colocar valores e marcadores sobre os pontos dos gráficos. São muitos os detalhes relativos a esse parâmetro. Sugiro consultar diretamente a documentação na Google: <a href="http://code.google.com/intl/pt-BR/apis/chart/#shape_markers2" target="_blank">http://code.google.com/intl/pt-BR/apis/chart/#shape_markers2</a></p>
<p><strong>“chma”</strong> Define as margens do gráfico. Use <strong>chma=esquerda,direita,topo,baixo</strong>. Ex: <strong>chma=30,20,20,30&amp;</strong></p>
<p>Por exemplo o gráfico de linha que utilizaremos no tutorial, seria gerado a partir da seguinte url:</p>
<pre>http://chart.apis.google.com/chart?
chd=t:108,111,111,111,120&amp;
chxl=0:|25|26|27|28|29&amp;
chm=o,FF0000,0,0,6,0|o,FF0000,0,1,6,0|o,FF0000,0,2,6,0|o,FF0000,0,3,6,0|o,FF0000,0,4,6,0|
t108,FF0000,0,0,10,0|t111,FF0000,0,1,10,0|t111,FF0000,0,2,10,0|t111,FF0000,0,3,10,0|t120,FF0000,0,4,10,0&amp;
cht=lc&amp;
chxt=x,y&amp;
chs=430x225&amp;
chds=0,150&amp;
chxr=1,0,150&amp;
chco=FF0000&amp;
chls=2,1,0&amp;
chf=c,lg,45,ffffff,0,b1cbfa,0.75|bg,s,fcfcfc&amp;
chma=30,20,20,30&amp;
chdl=Tickets+Abertos&amp;
chdlp=b</pre>
<h2>Criação do Modelo</h2>
<p><strong>1.</strong>Execute o comando de criação do modelo &#8220;backlogs&#8221;:</p>
<pre>ruby script/generate model backlogs project_id:integer
back_date:date back_abertas:integer back_fechadas:integer back_total:integer</pre>
<p><strong>2.</strong>Execute a migração:</p>
<pre>rake db:migrate</pre>
<h2>Instalação do Google Charts API</h2>
<p><strong>1.</strong>Instale a gem do Google Charts API. Mude para o diretório raiz do redmine e digite o seguinte comando:</p>
<pre>gem install googlecharts</pre>
<p><strong>2.</strong>Adicione a nova gem no ambiente de sua aplicação. Edite o arquivo redmine/config/environment.rb e acrescente a linha: config.gem &#8220;googlecharts&#8221;, :lib =&gt; &#8220;gchart&#8221;</p>
<pre>Rails::Initializer.run do |config|
  config.gem "googlecharts", :lib =&gt; "gchart"
end</pre>
<p><strong>3.</strong>Edite o arquivo redmine/app/controllers/application.rb e acrescente a linha: require &#8220;gchart&#8221;</p>
<pre>require "gchart"
class ApplicationController &lt; ActionController::Base
...</pre>
<h2>Implementação dos gráficos no Redmine</h2>
<p>1.Edite o arquivo “redmine/app/controllers/projects_controller.rb” e insira as seguintes linhas:</p>
<pre>
  def graficos_backlog
    dados = ""
    legenda = ""
    pontos = ""
    pontos_barras = ""
    dados_abertas = ""
    dados_fechadas = ""
    max_total = 0
    max_abertas = 0
    max_fechadas = 0

    nponto = 8

    Backlogs.find(:all, :conditions => {:project_id, @project.id}, <img src='http://www.adsystems.com.br/blog2/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> rder => "id desc", :limit => 9).each do |s|
      dados = "," + s.back_total.to_s() + dados
      dados_abertas = "," + s.back_abertas.to_s() + dados_abertas
      dados_fechadas = "," + s.back_fechadas.to_s() + dados_fechadas
      legenda = "|" + s.back_date.strftime("%d/%m") + legenda
      pontos = "|o,FF0000,0," + nponto.to_s() + ",6,0|t" + s.back_total.to_s() + ",FF0000,0," + nponto.to_s() + ",10,0" + pontos
      pontos_barras = "|t" + s.back_abertas.to_s() + ",FF0000,0," + nponto.to_s() + ",10,0|t" + s.back_fechadas.to_s() + ",FF0000,1," + nponto.to_s() + ",10,0" + pontos_barras

      nponto = nponto - 1

      if max_total < s.back_total
         max_total = s.back_total
      end

      if max_abertas < s.back_abertas
         max_abertas = s.back_abertas
      end

      if max_fechadas < s.back_fechadas
         max_fechadas = s.back_fechadas
      end
    end

    if dados.length > 0
      dados = "chd=t:" + dados[1, dados.length] + "&#038;"
      dados_abertas = "chd=t:" + dados_abertas[1, dados_abertas.length] + "|" + dados_fechadas[1, dados_fechadas.length] + "&#038;"
      legenda = "chxl=0:|" + legenda[1, legenda.length] + "&#038;"
      pontos = "chm=" + pontos[1, pontos.length ] + "&#038;"
      pontos_barras = "chm=" + pontos_barras[1, pontos_barras.length] + "&#038;"

      # define pontos maximos dos graficos
      if max_total > 10
         multi = 1.1
      else
         multi = 2
      end

      max_graf_linha = "chds=0," + (max_total * multi).to_i().to_s() + "&#038;chxr=1,0," + (max_total *multi).to_i().to_s() + "&#038;"

      if max_abertas > max_fechadas
         max_barra = max_abertas
      else
         max_barra = max_fechadas
      end

      if max_barra >= 10
         multi = 1.1
      else
         multi = 2
      end

      max_graf_barra = "chxr=1,0," + (max_barra * multi).to_i().to_s() + "&#038;chds=0," + (max_barra * multi).to_i().to_s() + "&#038;"

      # define parametros de saida
      custom_linha = dados + legenda + pontos + max_graf_linha + "cht=lc&#038;chxt=x,y&#038;chs=430x225&#038;chco=FF0000&#038;chls=2,1,0&#038;chf=c,lg,45,ffffff,0,b1cbfa,0.75|bg,s,fcfcfc&#038;chma=30,20,20,30&#038;chdl=Tickets+Abertos&#038;chdlp=b"
      custom_barra = dados_abertas + pontos_barras + legenda + max_graf_barra + "cht=bvg&#038;chs=430x225&#038;chco=DE091A,EBB671&#038;chbh=15,0,12&#038;chxt=x,y&#038;chs=430x225&#038;chdlp=b&#038;chdl=Abertos|Fechados&#038;chf=c,lg,45,ffffff,0,b1cbfa,0.75|bg,s,fcfcfc&#038;chma=30,20,20,30"
    else
      custom_linha = ""
      custom_barra = ""
    end

    {:custom_linha => custom_linha, :custom_barra => custom_barra}
  end
</pre>
<p>2.Ainda no arquivo “redmine/app/controllers/projects_controller.rb”, na definição da ação &#8220;Show&#8221; insira a seguinte linha:</p>
<pre>    @graficos_backlog = graficos_backlog</pre>
<p>3.No arquivo “redmine/app/views/projects/show.rhtml”, insira as seguintes linhas:</p>
<pre>
    <%= Gchart.line :size => '430x225',
                    :custom => @graficos_backlog[:custom_linha],
                    :format => 'image_tag' %>
</pre>
<p>3.Ainda no arquivo “redmine/app/views/projects/show.rhtml”, insira as seguintes linhas:</p>
<pre>
    <%= Gchart.bar :size => '430x225',
                   :custom => @graficos_backlog[:custom_barra],
                   :stacked => false,
                   :bar_width_and_spacing => '15,0,5',
                   :format => 'image_tag' %>
</pre>
<p>4.Inclua no arquivo &#8220;redmine/config/routes.rb&#8221; a linha:</p>
<pre>map.resources :graficos_backlog</pre>
<p>5.Reinicie o serviço do redmine para que as alterações tenham efeito.</p>
<p>O resultado final deve ser semelhante a tela abaixo:</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/redmine_custom1.jpg" alt="" /></center><br />
</br><br />
Todos os arquivos mencionados nesse tutorial, podem ser baixados <a href="http://www.adsystems.com.br/arquivos/blog/tutorial_redmine_gcharts.zip">aqui</a>, para que possam ter certeza onde inseri as linhas que mencionei.<br />
</br><br />
Referências:<br />
&nbsp;&nbsp;&nbsp;&nbsp;<a target="_blank" href="http://code.google.com/intl/pt-BR/apis/chart/">API do Google Chart &#8211; Guia do desenvolvedor</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a target="_blank" href="http://chrisolsen.org/blog/2008/01/26/google-charts-with-rails.html">Google Charts With Rails</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a target="_blank" href="http://googlecharts.rubyforge.org/">Sexy Charts using Google API &#038; Ruby</a></p>
<p></br></br></p>
 <img src="http://www.adsystems.com.br/blog2/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1325" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.adsystems.com.br/2009/07/06/tutorial-redmine-%e2%80%93-graficos-no-redmine-usando-a-api-do-google-charts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lançamentos Brasileiros sobre Ruby e Rails</title>
		<link>http://blog.adsystems.com.br/2009/04/11/lancamentos-brasileiros-sobre-ruby-e-rails/</link>
		<comments>http://blog.adsystems.com.br/2009/04/11/lancamentos-brasileiros-sobre-ruby-e-rails/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 19:48:01 +0000</pubDate>
		<dc:creator>André Dourado</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://blog.adsystems.com.br/?p=813</guid>
		<description><![CDATA[A comunidade brasileira está andando rápido, recentemente tiveram vários lançamentos muito legais para todos os rubistas. Primeiro, o Rodrigo Urubatan lançou mais um livro em português de Ruby on Rails, o Desenvolvimento Fácil e Rápido de Aplicações Web. O Carlos Brando e mais um pessoal criaram a versão brasileira do conhecido site Ruby Inside, que [...]]]></description>
			<content:encoded><![CDATA[<p>A comunidade brasileira está andando rápido, recentemente tiveram vários lançamentos muito legais para todos os rubistas.</p>
<p>Primeiro, o Rodrigo Urubatan lançou mais um livro em português de Ruby on Rails, o <a href="http://www.urubatan.com.br/mais-um-livro-sobre-ruby-on-rails-publicado/" target="_blank">Desenvolvimento Fácil e Rápido de Aplicações Web</a>.</p>
<p><img src="http://www.adsystems.com.br/imagens/blog/logo-br_original.gif" alt="" align="right" style="margin: 0px 0px 5px 15px;" />O Carlos Brando e mais um pessoal criaram a versão brasileira do conhecido site <a href="http://www.rubyinside.com.br/" target="_blank">Ruby Inside</a>, que sempre trás as melhores notícias do mundo Ruby e Rails. A melhor forma de se manter atualizado. Esse site nasceu na Inglaterra, pelo Peter Cooper, e se tornou um grupo de sites de notícias especializado em Ruby, Rails, JRuby e mais.</p>
<p>Depois de quase 1 ano em tradução e revisão, o livro <a href="http://why.nomedojogo.com/" target="_blank">O Guia (Comovente) do Why</a>, um dos melhores livros para iniciantes em Ruby também foi lançado. Você pode ler online todo o conteúdo em português e começar a aprender não só a linguagem mas também o “estilo” do _Why, um dos programadores mais irreverentes da comunidade.</p>
<p><img src="http://www.adsystems.com.br/imagens/blog/rails_guides_logo_original.gif" alt="" align="left" style="margin: 5px 15px 1px 0px;" />Finalmente, saiu uma versão “beta” da tradução do <a href="http://guias.rubyonrails.pro.br/" target="_blank">Rails Guides</a>. Se não me engano começou com o Cassio Marques e logo envolveu mais tradutores da comunidade. Para quem não conhece, o Rails Guides nasceu de um esforço paralelo do Pratik Naik, um dos Rails Core, como resposta à antiga reclamação de “Rails é mal documentado”. Pois bem, este guia definitivamente derruba isso pois ele cobre todos os aspectos do Ruby on Rails, em detalhes, de maneira simples de seguir. Qualquer um que estiver aprendendo Rails irá se beneficiar. Mas ainda não acabou, se você quiser participar, entre em contato com eles.</p>
<p>Se você está iniciando, estes são excelentes materiais. E não deixe de participar do grupo <a href="http://groups.google.com/group/rails-br" target="_blank">Rails-br</a>, ou, se é de São Paulo, participe do <a href="http://groups.google.com/group/ruby-sp" target="_blank">Guru-SP</a>. Além dos fórums do <a href="http://forum.rubyonbr.org/" target="_blank">RubyOnBR.org</a>.</p>
<p>Fonte: <a href="http://akitaonrails.com/2009/04/11/lan-amentos-brasileiros" target="_blank">%w(Akita On Rails) * 2.0</a></p>
 <img src="http://www.adsystems.com.br/blog2/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=813" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.adsystems.com.br/2009/04/11/lancamentos-brasileiros-sobre-ruby-e-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vídeos da MountainWest RubyConf 2009</title>
		<link>http://blog.adsystems.com.br/2009/04/09/videos-da-mountainwest-rubyconf-2009/</link>
		<comments>http://blog.adsystems.com.br/2009/04/09/videos-da-mountainwest-rubyconf-2009/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 09:42:52 +0000</pubDate>
		<dc:creator>André Dourado</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[TI]]></category>

		<guid isPermaLink="false">http://blog.adsystems.com.br/?p=739</guid>
		<description><![CDATA[A MountainWest RubyConf ocorreu de 13 a 14 de março em Salt Lake City. Todas as apresentações estao disponíveis no Confreaks. Clique aqui: http://mwrc2009.confreaks.com/ Fonte: InfoQ]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://mtnwestrubyconf.org/2009/" target="_blank">MountainWest RubyConf</a> ocorreu de 13 a 14 de março em Salt Lake City. Todas as apresentações estao disponíveis no Confreaks.</p>
<p>Clique aqui: <a href="http://mwrc2009.confreaks.com/" target="_blank">http://mwrc2009.confreaks.com/</a></p>
<p>Fonte: <a href="http://www.infoq.com/br/news/2009/04/mwrc09" target="_blank">InfoQ</a></p>
 <img src="http://www.adsystems.com.br/blog2/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=739" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.adsystems.com.br/2009/04/09/videos-da-mountainwest-rubyconf-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails + Agile na DDWorks</title>
		<link>http://blog.adsystems.com.br/2009/03/03/rails-agile-na-ddworks/</link>
		<comments>http://blog.adsystems.com.br/2009/03/03/rails-agile-na-ddworks/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 01:42:21 +0000</pubDate>
		<dc:creator>André Dourado</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[TI]]></category>

		<guid isPermaLink="false">http://blog.adsystems.com.br/?p=553</guid>
		<description><![CDATA[Por Rodrigo Yoshima em Março 3, 2009 Antes de mais nada deixa eu avisar: eu estou vivo! Tirei um tempo de férias de escrever (aqui e na MundoJava), mas agora estou de volta! E para aquecer, vou relatar um projetinho divertido que participei. Uma das maiores convicções que tenho sobre desenvolvimento de software é que [...]]]></description>
			<content:encoded><![CDATA[<p><em>Por Rodrigo Yoshima<br />
em Março 3, 2009</em></p>
<p>Antes de mais nada deixa eu avisar: <strong>eu estou vivo</strong>! Tirei um tempo de férias de escrever (aqui e na MundoJava), mas agora estou de volta! E para aquecer, vou relatar um projetinho divertido que participei.</p>
<p>Uma das maiores convicções que tenho sobre desenvolvimento de software é que não existem fórmulas mágicas, nem processos mágicos e nem certificações mágicas&#8230;  O máximo de &#8220;mágico&#8221; que pode existir em desenvolvimento de software são alguns profissionais mágicos (infelizmente alguns são adeptos de magia negra). Além disso, <a href="http://blog.aspercom.com.br/2008/05/27/nao-jogue-dinheiro-fora-com-melhoria-de-processos/" target="_blank">&#8220;Processo Padrão&#8221; é uma coisa que não existe</a>.</p>
<p>O projeto da <a href="http://www.ddworks.com.br" target="_blank">DDWorks</a> começou de maneira interessante. Numa dessas quintas-feiras de verão, um dos sócios me ligou e disse: &#8220;- Quero colocar um e-commerce no ar na semana que vêm&#8221;. (nem sei se ainda se usa a palavra e-commerce, mas ele disse assim!)</p>
<p>As condições são:</p>
<p>1. Nós não temos tempo de negociar, não temos tempo de firmar contrato, não temos tempo nem de &#8220;planejar&#8221; o projeto</p>
<p>2. Tem que estar no ar e vendendo até sexta-feira da semana que vem</p>
<p>3. Tem que ter integração com e-payment ainda a ser definido (no fim optamos pelo <a href="https://pagseguro.uol.com.br/" target="_blank">PagSeguro</a>)</p>
<p>4. O desenvolvedor tem que estar aqui presente. Vamos dar todos os subsídios e decisões em tempo hábil</p>
<p>5. Já falei que tem que estar no ar na semana que vem?</p>
<p>Qualquer pessoa poderia falar que isso é impossível, porém, o cliente estava disposto a fazer o que fosse necessário para atingir esse objetivo, <strong>e nenhum outro fornecedor</strong> deu atenção a esse projeto. Eles acharam isso &#8220;impossível&#8221;. Eu até imagino aqueles vendedores acompanhados de gerentes de projeto (ambos de gravata) dizendo &#8220;- Vamos com calma!&#8221;, &#8220;- Precisamos planejar direitinho.&#8221;, &#8220;- Vamos detalhar mais&#8230;&#8221;. O mercado está cansado dessas ladainhas! Como seria um desafio interessante topei na hora. Traçamos alguns objetivos juntos e marcamos uma reunião de planejamento na segunda-feira às 9:00.</p>
<p>Planejamento Inicial de projeto é uma das coisas que mais gosto de fazer. Como o dead-line já estava definido (sexta-feira!!!) essa reunião seria importante para definirmos SOMENTE o que era necessário para VENDER. Toda e qualquer firula a mais deveria ser posta de lado. Este planejamento inicial não tomou mais de 30 minutos, pois o cronometro de 40 horas já estava ticando. O objetivo do projeto era &#8220;vender pela Internet&#8221;. Planejamentos exigem modelagem, então nós modelamos&#8230;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/yoshima1.jpg" /></center><br/></p>
<p>Para iniciar qualquer trabalho nós fizemos um Mapa de Navegação seguindo algo parecido com um diagrama de atividades, mas sem formalidade alguma. Nós precisamos desse modelo para saber o mínimo necessário para &#8220;vender&#8221;. Além disso nós também usamos esse modelo para saber quais telas eram mais complexas para iniciar o projeto por elas, diminuindo o risco. <strong>Sim, esse rascunho era nosso &#8220;Product Backlog&#8221; para os CSMs de plantão.</strong></p>
<p><strong>Como seriam só 5 dias as iterações eram diárias.</strong> Para o projeto, o fim da quarta-feira (a terceira iteração) era o momento crítico. Apesar de ter outras pessoas gerando conteúdo, imagens e modelos, somente eu estava programando no Rails.</p>
<p>Uma das perguntas que faço para meus alunos no <a href="http://www.aspercom.com.br/ead/course/view.php?id=15" target="_blank">Workshop Scrum</a> é: <strong>Com relação a pessoas, o que você precisa para desenvolver software?</strong> Pare de ler este artigo e tente responder isso mentalmente. Se você perguntar para um gerente de fábrica de software ele vai responder algo como &#8220;1 analista de negócio, 2 analistas de sistemas, 4 programadores e 1 tester&#8221;. Acredite, eu já ouvi isso de um deles. Espero que você não tenha respondido isso mentalmente. Mas a resposta correta é que para desenvolver software você precisa de dois tipos de pessoas:</p>
<p>a. Alguém que sabe do negócio<br />
b. Alguém que sabe desenvolver software</p>
<p>No caso da DDWorks, com iterações diárias, praticamente nós fizemos um desenvolvimento conjunto entre os caras de negócio e o programador (eu). Um &#8220;pair programming&#8221; do Developer com o Product Owner.  A adoção do Rais foi definitiva para que cada pedaço de funcionalidade incrementado em 3 minutos fosse rapidamente testado junto ao cliente. Feedback rápido foi determinante para o sucesso. <strong>Eu acredito que o futuro do desenvolvimento de software é algo parecido com isso: programadores armados até os dentes com arquiteturas ágeis e clientes participando ativamente do projeto ao ponto de participar de &#8220;pair programming&#8221;.<br /></strong></p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/yoshima2.jpg" /></center><br/></p>
<p>Durante essa semana nós fizemos muita inspeção e adaptação. Muitas coisas nós mudamos durante o desenvolvimento. O próprio cliente teve que fazer concessões sobre alguns detalhes (eles são uma agência de design, assim, teve alguns desgastes sobre o tempo investido na &#8220;beleza&#8221; do site). Não achem que foi &#8220;fácil&#8221;, quer dizer, programar foi fácil, mas fazer cada detalhe solicitado caber no prazo e no orçamento sem comprometer o objetivo é que foi dureza. Na quarta-feira fizemos o primeiro deployment na <a href="http://www.locaweb.com.br" target="_blank">Locaweb</a>&#8230;. na sexta-feira o site estava no ar!!!! Acessem aí:</p>
<p><a href="http://www.docstyles.com.br" target="_blank">http://www.docstyles.com.br</a></p>
<p>(veja a página &#8220;aprenda mais&#8221; para saber o que a DDWorks faz)</p>
<p>Uma coisa que achei bastante interessante nesse projeto: nós não usamos Stories, não usamos reuniões, não usamos ScrumMaster, não usamos Kanban, não usamos &#8220;Test First&#8221;. Não teve qualquer <a href="http://blog.aspercom.com.br/2008/08/20/besteirol-agile/" target="_blank">besteirol Agile</a>. Você considera esse projeto ágil?</p>
<p>Guarde esse princípio: <strong>Para coisas simples as soluções são simples.</strong></p>
<p>Gostaria agradecer ao pessoal do <a href="http://rubyforge.org/projects/brazilian-rails/" target="_blank">Brazilian Rails</a>. A contribuição de vocês ajudou muito e poupou um bocado de tempo.
</p>
<p>Fonte: <a href="http://blog.aspercom.com.br/2009/03/03/rails_agile_ddworks/" target="_blank">Débito Técnico</a></p>
 <img src="http://www.adsystems.com.br/blog2/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=553" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.adsystems.com.br/2009/03/03/rails-agile-na-ddworks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Escalabilidade com Rails</title>
		<link>http://blog.adsystems.com.br/2009/02/27/escalabilidade-com-rails/</link>
		<comments>http://blog.adsystems.com.br/2009/02/27/escalabilidade-com-rails/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 10:14:51 +0000</pubDate>
		<dc:creator>André Dourado</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[TI]]></category>

		<guid isPermaLink="false">http://blog.adsystems.com.br/?p=529</guid>
		<description><![CDATA[O Antonio Cangiano tem razão quando diz que tem muita pouca menção à incrível série de screencasts gratuitos da New Relic. Ela oferece um serviço pago muito legal que monitora sua aplicação Rails de produção em detalhes. Para isso você se registra no site, instala um plugin na sua aplicação e ela passa a enviar [...]]]></description>
			<content:encoded><![CDATA[<p>O Antonio Cangiano <a href="http://antoniocangiano.com/2009/02/26/scaling-rails-screencasts/" target="_blank">tem razão</a> quando diz que tem muita pouca menção à incrível série de screencasts gratuitos da <a href="http://www.newrelic.com/" target="_blank">New Relic</a>. Ela oferece um serviço pago muito legal que monitora sua aplicação Rails de produção em detalhes. Para isso você se registra no site, instala um plugin na sua aplicação e ela passa a enviar dados de volta à New Relic, que então compila esses dados e lhe dá um Raio-X do comportamento da sua aplicação. Eu uso a versão gratuita no meu blog, que me dá informações básicas mas já valiosas.</p>
<p>A New Relic começou uma iniciativa chamada <a href="http://railslab.newrelic.com/" target="_blank">RailsLab</a> com o objetivo de agregar informações sobre escalabilidade e performance de Ruby on Rails. E a primeira série é a <a href="http://railslab.newrelic.com/scaling-rails" target="_blank">Scaling Rails</a>, produzida em conjunto com o Gregg Pollack, da RailsEnvy.</p>
<p>Já existem 12 episódios disponíveis (usem o link de <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=303252563" target="_blank">iTunes</a> para quem quer assinar). São screencasts explicando o básico de responsibidade de páginas, muitas técnicas de caching do básico ao avançado, sobre o próprio plugin <span class="caps">RPM</span> da New Relic, Memcached e mais. Qualquer um que queira colocar um website em Rails no ar deve assistir. E mesmo quem não é de Rails pode tirar proveito pois essas técnicas não são específicas de Rails. Memcached é usado por sistemas em <span class="caps">PHP</span>, Java, Python. A implementação muda mas a técnica é a mesma. Portanto, vamos aprender!</p>
<p>Fonte: <a href="http://www.akitaonrails.com/2009/2/27/escalabilidade-com-rails" target="_blank">%w(Akita On Rails) * 2.0</a></p>
 <img src="http://www.adsystems.com.br/blog2/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=529" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.adsystems.com.br/2009/02/27/escalabilidade-com-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial de Instalação do Redmine em Ambiente Windows+Apache+Mongrel+MySQL</title>
		<link>http://blog.adsystems.com.br/2009/02/16/redmine-em-ambiente-windowsapachemongrelmysql/</link>
		<comments>http://blog.adsystems.com.br/2009/02/16/redmine-em-ambiente-windowsapachemongrelmysql/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 11:36:07 +0000</pubDate>
		<dc:creator>André Dourado</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Redmine]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[TI]]></category>

		<guid isPermaLink="false">http://blog.adsystems.com.br/2009/02/16/redmine-em-ambiente-windowsapachemongrelmysql/</guid>
		<description><![CDATA[Por: André Dourado Configuração de um servidor de produção para o Redmine, em ambiente Windows, servidor http Apache+Mongrel, acessando base de dados armazenada no MySQL. Este post tem a finalidade de descrever esse processo, passo a passo. Requisitos Windows XP SP2: este tutorial foi feito utilizando um XP SP2 previamente instalado. Provavelmente funcionará sem problemas [...]]]></description>
			<content:encoded><![CDATA[<p><em>Por: André Dourado</em></p>
<p>Configuração de um servidor de produção para o Redmine, em ambiente Windows, servidor http Apache+Mongrel, acessando base de dados armazenada no MySQL. Este post tem a finalidade de descrever esse processo, passo a passo.</p>
<h2>Requisitos</h2>
<p></br></p>
<p><strong>Windows XP SP2:</strong> este tutorial foi feito utilizando um XP SP2 previamente instalado. Provavelmente funcionará sem problemas em outras versões de Windows.</p>
<p><strong>Apache Webserver 2.x:</strong> neste tutorial foi utilizada a versão &#8220;Win32 Binary without crypto (no mod_ssl) (MSI Installer)&#8221; que pode ser obtida no endereço: <a href="http://ftp.unicamp.br/pub/apache/httpd/binaries/win32/apache_2.2.11-win32-x86-no_ssl.msi" target="_blank">http://ftp.unicamp.br/pub/apache/httpd/binaries/win32/apache_2.2.11-win32-x86-no_ssl.msi</a></p>
<p><strong>One-Click Ruby Installer:</strong> neste tutorial foi utilizada a versão &#8220;One-Click Ruby Installer 1.8.6-25&#8243; que pode ser obtida no endereço: <a href="http://rubyforge.org/frs/download.php/18566/ruby186-25.exe" target="_blank">http://rubyforge.org/frs/download.php/18566/ruby186-25.exe</a></p>
<p><strong>MySQL:</strong> neste tutorial foi utilizada a versão &#8220;mysql-essential-5.5.0-m2-win32&#8243; que pode ser obtida no endereço: <a href="http://ftp.astral.ro/mirrors/mysql.com/Downloads/MySQL-5.5/mysql-essential-5.5.0-m2-win32.msi" target="_blank">http://ftp.astral.ro/mirrors/mysql.com/Downloads/MySQL-5.5/mysql-essential-5.5.0-m2-win32.msi</a></p>
<p><strong>Redmine:</strong> neste tutorial foi utilizada a versão &#8220;redmine-0.8.1&#8243; que pode ser obtida no endereço: <a href="http://rubyforge.org/frs/download.php/51748/redmine-0.8.1.zip" target="_blank">http://rubyforge.org/frs/download.php/51748/redmine-0.8.1.zip</a></p>
<h2>Instalação do Apache Web Server</h2>
<p></br></p>
<p><strong>1</strong>.Execute o instalador do Apache Webserver, clicando sobre o arquivo &#8220;apache_2.2.11-win32-x86-no_ssl.msi&#8221; a partir do Windows Explorer. Clique então sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache1.jpg" alt="" /></center></p>
<p><strong>2</strong>.Selecione a opção &#8220;I accept the terms&#8230;&#8221; e clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache2.jpg" alt="" /></center></p>
<p><strong>3</strong>.Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache3.jpg" alt="" /></center></p>
<p><strong>4</strong>.Informe os endereços solicitados e clique no botão “Next”. </p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache4.jpg" alt="" /></center></p>
<p><strong>5</strong>.Selecione a opção &#8220;Typical&#8221; e clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache5.jpg" alt="" /></center></p>
<p><strong>6</strong>.Clique sobre o botão &#8220;Change&#8230;&#8221; para alterar o caminho onde o servidor será instalado.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache6.jpg" alt="" /></center></p>
<p><strong>7</strong>.Informe o caminho desejado. Neste tutorial utilizamos o caminho &#8220;c:\apache&#8221;. Clique sobre o botão &#8220;Ok&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache7.jpg" alt="" /></center></p>
<p><strong>8</strong>.Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache8.jpg" alt="" /></center></p>
<p><strong>9</strong>.Clique sobre o botão &#8220;Install&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache9.jpg" alt="" /></center></p>
<p><strong>10</strong>.Clique sobre o botão &#8220;Finish&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache10.jpg" alt="" /></center></p>
<p><strong>11</strong>.Teste se o servidor foi instalado corretamente, digitando &#8220;http://localhost&#8221; no campo url do browser. Se tudo estiver ok, a tela apresentada será semelhante a tela abaixo:</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache11.jpg" alt="" /></center></p>
<p></br></p>
<h2>Instalação do Ruby</h2>
<p></br></p>
<p><strong>1</strong>.Execute o instalador do Ruby, clicando sobre o arquivo &#8220;ruby186-25.exe&#8221; a partir do Windows Explorer. Clique então sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby1.jpg" alt="" /></center></p>
<p><strong>2</strong>.Clique sobre o botão &#8220;I Agree&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby2.jpg" alt="" /></center></p>
<p><strong>3</strong>.Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby3.jpg" alt="" /></center></p>
<p><strong>4</strong>.Informe o caminho desejado. Neste tutorial utilizamos o caminho &#8220;c:\ruby&#8221;. Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby4.jpg" alt="" /></center></p>
<p><strong>5</strong>.Clique sobre o botão &#8220;Install&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby5.jpg" alt="" /></center></p>
<p><strong>6</strong>.Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby6.jpg" alt="" /></center></p>
<p><strong>7</strong>.Clique sobre o botão &#8220;Finish&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby7.jpg" alt="" /></center></p>
<p></br></p>
<h2>Instalação dos pacotes Rails, Mongrel, Win32 Services</h2>
<p></br></p>
<p><strong>1</strong>.Os próximos passos serão executados em linha de comando do Windows, para isso clique no botão iniciar do Windows. Clique em “Executar” e na linha de comando digite “cmd” e pressione a tecla “Enter”. Todas as operações levam alguns minutos e é necessário que você esteja conectado à internet.</p>
<p><strong>2</strong>.Mude para o diretório “c:\ruby\bin” e digite o comando de atualização do gerenciador de pacotes do Ruby RubyGems:</p>
<p><em><strong>&nbsp;&nbsp;&nbsp;&nbsp;gem update &#045;&#045;system</strong></em></p>
<p><strong>3</strong>.Digite o comando de atualização e instalação do Rails: </p>
<blockquote><p><strong>Obs:</strong> Em uma instalação no Windows Vista tive o seguinte erro:</p>
<p><code>C:\ruby\bin>gem install rails<br />
ERROR:  While executing gem ... (Errno::ENOENT)<br />
    No such file or directory - C:\Users\André Dourado</code></p>
<p>Provavelmente pelo espaço no caminho do diretório. Setei a variável &#8220;userprofile&#8221; para o diretório do ruby e o problema foi solucionado.</p>
<p><code>C:\ruby\bin>set userprofile=c:\ruby</code>
</p></blockquote>
<p><em><strong>&nbsp;&nbsp;&nbsp;&nbsp;gem install rails</strong></em></p>
<p><strong>4</strong>.Digite o comando de atualização e instalação do Mongrel: </p>
<p><em><strong>&nbsp;&nbsp;&nbsp;&nbsp;gem install mongrel</strong></em></p>
<p><strong>5</strong>.Digite o comando de atualização e instalação do suporte aos serviços Win32: </p>
<p><em><strong>&nbsp;&nbsp;&nbsp;&nbsp;gem install win32-service</strong></em></p>
<p><strong>6</strong>.Digite o comando de atualização e instalação do mongrel como serviço Win32:</p>
<p><em><strong>&nbsp;&nbsp;&nbsp;&nbsp;gem install mongrel_service</strong></em></p>
<p></br></p>
<h2>Instalação do MySQL</h2>
<p></br></p>
<p><strong>1</strong>.Execute o instalador do MySQL, clicando sobre o arquivo &#8220;mysql-essential-5.1.31-win32.msi&#8221; a partir do Windows Explorer. Clique então sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/my1.jpg" alt="" /></center></p>
<p></br></p>
<p><strong>2</strong>.Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/my3.jpg" alt="" /></center></p>
<p></br></p>
<p><strong>3</strong>.Clique sobre o botão &#8220;Change&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/my4.jpg" alt="" /></center></p>
<p></br></p>
<p><strong>4</strong>.Entre com o caminho da instalação, no caso &#8220;c:\mysql&#8221;. Clique sobre o botão &#8220;Ok&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/my5.jpg" alt="" /></center></p>
<p></br></p>
<p><strong>5</strong>.Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/my6.jpg" alt="" /></center></p>
<p></br></p>
<p><strong>6</strong>.Clique sobre o botão &#8220;Install&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/my7.jpg" alt="" /></center></p>
<p></br></p>
<p><strong>7</strong>.Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/my8.jpg" alt="" /></center></p>
<p></br></p>
<p><strong>8</strong>.Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/my18.jpg" alt="" /></center></p>
<p></br></p>
<p><strong>9</strong>.Clique sobre o botão &#8220;Finish&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/my9.jpg" alt="" /></center></p>
<p></br></p>
<p><strong>10</strong>.Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/my10.jpg" alt="" /></center></p>
<p></br></p>
<p><strong>11</strong>.Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/my11.jpg" alt="" /></center></p>
<p></br></p>
<p><strong>12</strong>.Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/my12.jpg" alt="" /></center></p>
<p></br></p>
<p><strong>13</strong>.Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/my16.jpg" alt="" /></center></p>
<p></br></p>
<p><strong>14</strong>.Clique sobre o botão &#8220;Execute&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/my17.jpg" alt="" /></center></p>
<p></br></p>
<p><strong>15</strong>.Clique sobre o botão &#8220;Finish&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/my20.jpg" alt="" /></center></p>
<h2>Instalação do Redmine</h2>
<p></br></p>
<p><strong>1</strong>.Clique com o botão da direita sobre o arquivo zip do Redmine e selecione a opção “Extrair tudo&#8230;”. Ao abrir o “Assistente para extração” clique no botão “Avançar”. Na próxima tela, no campo de diretório de destino, digite “c:\apache\htdocs”.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/redmine_tela4_v2.jpg" alt="" /></center></p>
<p><strong>2</strong>.Para facilitar a navegação pelos diretórios do aplicativo, renomeie o diretório criado pelo Redmine de “redmine-0.8.1” para apenas “redmine”;</p>
<p><strong>3</strong>.Copie o arquivo “config\database.yml.example” para “config\database.yml”. Neste tutorial utilizamos o banco de dados MySql, com o usuário “root” sem senha e será executado em nossa máquina local. Para este setup a seção “production:” do arquivo “database.yml”, deve ficar:</p>
<p><em>&nbsp;&nbsp; production:<br />
&nbsp;&nbsp;&nbsp;&nbsp;adapter: mysql<br />
&nbsp;&nbsp;&nbsp;&nbsp;database: redmine<br />
&nbsp;&nbsp;&nbsp;&nbsp;host: localhost<br />
&nbsp;&nbsp;&nbsp;&nbsp;username: root<br />
&nbsp;&nbsp;&nbsp;&nbsp;password: &lt;senha_mysql&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;encoding: utf8</em></p>
<p><strong>4</strong>.Os próximos passos serão executados em linha de comando do Windows, para isso clique no botão iniciar do Windows. Clique em “Executar” e na linha de comando digite “cmd” e pressione a tecla “Enter”.</p>
<p><strong>5</strong>.Mude para o diretório “c:\mysql\bin” e digite o comando de execução do mysql para o usuário “root” no banco de dados mysql.</p>
<p><strong><em>&nbsp;&nbsp;&nbsp;&nbsp;mysql -u root mysql</em></strong></p>
<p><strong>6</strong>.Crie a estrutura do banco de dados “redmine” com o comando:</p>
<p><strong><em>&nbsp;&nbsp;&nbsp;&nbsp;create database redmine character set utf8;</em></strong></p>
<p><strong>7</strong>.Saia do MySql digitando o comando “quit” e pressionando a tecla “Enter”.</p>
<p><strong>8</strong>.Mude para o diretório do redmine “c:\apache\htdocs\redmine”. Crie a estrutura do banco de dados “redmine”, digitando o comando:</p>
<p><strong><em>&nbsp;&nbsp;&nbsp;&nbsp;\ruby\bin\rake db:migrate RAILS_ENV=production</em></strong></p>
<p><strong>9</strong>.Insira os dados padrão de configuração no banco de dados, digitando o comando:</p>
<p><strong><em>&nbsp;&nbsp;&nbsp;&nbsp;\ruby\bin\rake redmine:load_default_data RAILS_ENV=production</em></strong></p>
<p>Ao ser solicitado para informar a língua desejada, digite “pt-br” e pressione a tecla “Enter”.</p>
<p><strong>10</strong>.Instale o serviço que irá executar o servidor Mongrel para o Redmine na porta 4000, digitando o comando:</p>
<p><strong><em>&nbsp;&nbsp;&nbsp;&nbsp;\ruby\bin\mongrel_rails service::install -N Redmine -c c:\apache\htdocs\redmine -p 4000 -e production</em></strong></p>
<p><strong>11</strong>.Inicie o serviço, digitando o comando:</p>
<p><strong><em>&nbsp;&nbsp;&nbsp;&nbsp;net start Redmine</em></strong></p>
<p><strong>12</strong>.Através do browser teste se o Redmine está no ar. Acesse o endereço &#8220;http:\\localhost:4000\login&#8221;</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/redmine1.jpg" alt="" /></center></p>
<p></br></p>
<h2>Configuração do Apache</h2>
<p></br></p>
<p><strong>1</strong>.Crie o arquivo de configuração de proxy para a aplicação &#8220;c:\apache\conf\http-proxy-redmine.conf&#8221;, com o seguinte conteúdo:</p>
<p><em>LoadModule proxy_module modules/mod_proxy.so<br />
LoadModule proxy_http_module modules/mod_proxy_http.so<br />
ProxyRequests Off</p>
<p>&lt;Proxy *&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Order deny,allow<br />
&nbsp;&nbsp;&nbsp;&nbsp;Allow from all<br />
&lt;/Proxy&gt;</p>
<p>Alias /redmine &#8220;C:/apache/htdocs/redmine/public&#8221;<br />
&lt;Directory &#8220;C:/apache/htdocs/redmine/public&#8221;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Options Indexes FollowSymLinks<br />
&nbsp;&nbsp;&nbsp;&nbsp;AllowOverride none<br />
&nbsp;&nbsp;&nbsp;&nbsp;Order allow,deny<br />
&nbsp;&nbsp;&nbsp;&nbsp;Allow from all<br />
&lt;/Directory&gt;</p>
<p>ProxyPass /redmine/images !<br />
ProxyPass /redmine/stylesheets !<br />
ProxyPass /redmine/javascripts !</p>
<p>ProxyPass /redmine/ http://127.0.0.1:4000/<br />
ProxyPass /redmine http://127.0.0.1:4000/<br />
ProxyPassReverse /redmine http://127.0.0.1:4000/</em></p>
<p><strong>2</strong>.Edite o arquivo de configuração do Apache &#8220;c:\apache\conf\httpd.conf&#8221;. Acrescente na última linha do arquivo a seguinte linha:</p>
<p>Include conf/http-proxy-redmine.conf</p>
<p><strong>3</strong>.Reinicie o serviço do Apache pelo gerenciador de serviços do Windows.</p>
<h2>Configuração do Proxy Reverso</h2>
<p></br></p>
<p>O Rails cria internamente endereços de URL para links de folha de estilo, que faz com que a aplicação não execute da forma correta, através do proxy do Apache. Utilizaremos um plugin do Rails, que altera o modo como as URLs são criadas.</p>
<p><strong>1</strong>.Mude para o diretório do redmine “c:\apache\htdocs\redmine”. Instale o plugin, digitando o comando abaixo. Responda para a url base &#8220;c:\apache\htdocs\redmine&#8221; e para a versão do Rails, escolha a opção &#8220;3&#8243;:</p>
<p><strong><em>&nbsp;&nbsp;&nbsp;&nbsp;\ruby\bin\ruby script/plugin install http://svn.napcsweb.com/public/reverse_proxy_fix</em></strong></p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/reverse_proxy1.jpg" alt="" /></center></p>
<p></br></p>
<p><strong>2</strong>.Reinicie o serviço do Redmine pelo gerenciador de serviços do Windows.</p>
<p></br></p>
<h2>Teste do Redmine pelo Proxy</h2>
<p></br></p>
<p><strong>1</strong>.Através do browser teste se o Redmine está no ar, sendo acessado pelo proxy configurado no Apache. Acesse o endereço &#8220;http:\\localhost\redmine\login&#8221;</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/redmine2.jpg" alt="" /></center></p>
<p></br></p>
<p>Post Relacionados:<br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://blog.adsystems.com.br/2009/07/06/tutorial-redmine-%e2%80%93-graficos-no-redmine-usando-a-api-do-google-charts/">Tutorial Redmine – Gráficos no Redmine usando a API do Google Charts</a><br />
</br></p>
<p>Referências:<br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.google.com.br/url?sa=t&#038;source=web&#038;ct=res&#038;cd=1&#038;url=http%3A%2F%2Fwww.napcsweb.com%2Fhowto%2Frails%2Fdeployment%2FRailsWithApacheAndMongrel.pdf&#038;ei=8k-ZSf3YLJjAtgew8vGwCw&#038;usg=AFQjCNF9WkU_Ml8yc5wZMBXXhFROpKUV6Q&#038;sig2=XCUhoHAMZGDpb8TvneDliw" target="_blank">Serving Multiple Rails Applications on Windows with Apache and Mongrel</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://mongrel.rubyforge.org/wiki/Win32" target="_blank">Mongrel Win32 HOWTO</a></p>
 <img src="http://www.adsystems.com.br/blog2/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=381" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.adsystems.com.br/2009/02/16/redmine-em-ambiente-windowsapachemongrelmysql/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>WARR (Windows Apache Ruby Rails) &#8211; Tutorial de instalação</title>
		<link>http://blog.adsystems.com.br/2008/12/16/warr-windows-apache-ruby-rails-tutorial-de-instalacao/</link>
		<comments>http://blog.adsystems.com.br/2008/12/16/warr-windows-apache-ruby-rails-tutorial-de-instalacao/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 17:35:24 +0000</pubDate>
		<dc:creator>André Dourado</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[TI]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Desenvolvimento]]></category>

		<guid isPermaLink="false">http://blog.adsystems.com.br/2008/12/16/warr-windows-apache-ruby-rails-tutorial-de-instalacao/</guid>
		<description><![CDATA[Por: André Dourado Nota do autor: Antes de seguirem esse tutorial, recomendo que dêem uma olhada no tutorial &#8220;Tutorial de Instalação do Redmine em Ambiente Windows+Apache+Mongrel+MySQL&#8220;. A parte de instalação WARR está mais completa e atual. Basta não instalar os pacotes do Redmine. Configurar o Ruby no Windows é bastante simples, porém adicionar Rails e [...]]]></description>
			<content:encoded><![CDATA[<p><em>Por: André Dourado</em></p>
<blockquote><p><em><strong>Nota do autor:</strong> Antes de seguirem esse tutorial, recomendo que dêem uma olhada no tutorial &#8220;<a href="http://blog.adsystems.com.br/2009/02/16/redmine-em-ambiente-windowsapachemongrelmysql/">Tutorial de Instalação do Redmine em Ambiente Windows+Apache+Mongrel+MySQL</a>&#8220;. A parte de instalação WARR está mais completa e atual. Basta não instalar os pacotes do Redmine.</em></p></blockquote>
<p>Configurar o Ruby no Windows é bastante simples, porém adicionar Rails e fazer com que tudo funcione sob o Apache 2.x não é tão fácil, ou pelo menos não encontramos tão facilmente, documentação que descreva o processo como um todo. Este post tem a finalidade de descrever esse processo, passo a passo.</p>
<h2>Requisitos</h2>
<p></br></p>
<p><strong>Windows XP SP2:</strong> este tutorial foi feito utilizando um XP SP2 previamente instalado. Provavelmente funcionará sem problemas em outras versões de Windows.</p>
<p><strong>Apache Webserver 2.x:</strong> neste tutorial foi utilizada a versão &#8220;Win32 Binary without crypto (no mod_ssl) (MSI Installer)&#8221; que pode ser obtida no endereço: <a href="http://ftp.unicamp.br/pub/apache/httpd/binaries/win32/apache_2.2.11-win32-x86-no_ssl.msi" target="_blank">http://ftp.unicamp.br/pub/apache/httpd/binaries/win32/apache_2.2.11-win32-x86-no_ssl.msi</a></p>
<p><strong>One-Click Ruby Installer:</strong> neste tutorial foi utilizada a versão &#8220;One-Click Ruby Installer 1.8.6-25&#8243; que pode ser obtida no endereço: <a href="http://rubyforge.org/frs/download.php/18566/ruby186-25.exe" target="_blank">http://rubyforge.org/frs/download.php/18566/ruby186-25.exe</a></p>
<p><strong>FastCGI:</strong> neste tutorial foi utilizada a versão &#8220;FastCGI 2.4.2&#8243; que pode ser obtida no endereço: <a href="http://www.fastcgi.com/dist/mod_fastcgi-2.4.6-AP22.dll" target="_blank">http://www.fastcgi.com/dist/mod_fastcgi-2.4.6-AP22.dll</a></p>
<p><strong>Ruby for Apache:</strong> neste tutorial foi utilizada a versão &#8220;Ruby for Apache 1.3.1&#8243; que pode ser obtida no endereço: <a href="http://rubyforge.org/frs/download.php/5256/RubyForApache-1.3.1.exe" target="_blank">http://rubyforge.org/frs/download.php/5256/RubyForApache-1.3.1.exe</a></p>
<h2>Instalação do Apache Web Server</h2>
<p></br></p>
<p><strong>1</strong>.Execute o instalador do Apache Webserver, clicando sobre o arquivo &#8220;apache_2.2.11-win32-x86-no_ssl.msi&#8221; a partir do Windows Explorer. Clique então sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache1.jpg" alt="" /></center></p>
<p><strong>2</strong>.Selecione a opção &#8220;I accept the terms&#8230;&#8221; e clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache2.jpg" alt="" /></center></p>
<p><strong>3</strong>.Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache3.jpg" alt="" /></center></p>
<p><strong>4</strong>.Informe os endereços solicitados e clique no botão “Next”. </p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache4.jpg" alt="" /></center></p>
<p><strong>5</strong>.Selecione a opção &#8220;Typical&#8221; e clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache5.jpg" alt="" /></center></p>
<p><strong>6</strong>.Clique sobre o botão &#8220;Change&#8230;&#8221; para alterar o caminho onde o servidor será instalado.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache6.jpg" alt="" /></center></p>
<p><strong>7</strong>.Informe o caminho desejado. Neste tutorial utilizamos o caminho &#8220;c:\apache&#8221;. Clique sobre o botão &#8220;Ok&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache7.jpg" alt="" /></center></p>
<p><strong>8</strong>.Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache8.jpg" alt="" /></center></p>
<p><strong>9</strong>.Clique sobre o botão &#8220;Install&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache9.jpg" alt="" /></center></p>
<p><strong>10</strong>.Clique sobre o botão &#8220;Finish&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache10.jpg" alt="" /></center></p>
<p><strong>11</strong>.Teste se o servidor foi instalado corretamente, digitando &#8220;http://localhost&#8221; no campo url do browser. Se tudo estiver ok, a tela apresentada será semelhante a tela abaixo:</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/apache11.jpg" alt="" /></center></p>
<p></br></p>
<h2>Instalação do Ruby</h2>
<p></br></p>
<p><strong>1</strong>.Execute o instalador do Ruby, clicando sobre o arquivo &#8220;ruby186-25.exe&#8221; a partir do Windows Explorer. Clique então sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby1.jpg" alt="" /></center></p>
<p><strong>2</strong>.Clique sobre o botão &#8220;I Agree&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby2.jpg" alt="" /></center></p>
<p><strong>3</strong>.Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby3.jpg" alt="" /></center></p>
<p><strong>4</strong>.Informe o caminho desejado. Neste tutorial utilizamos o caminho &#8220;c:\ruby&#8221;. Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby4.jpg" alt="" /></center></p>
<p><strong>5</strong>.Clique sobre o botão &#8220;Install&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby5.jpg" alt="" /></center></p>
<p><strong>6</strong>.Clique sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby6.jpg" alt="" /></center></p>
<p><strong>7</strong>.Clique sobre o botão &#8220;Finish&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby7.jpg" alt="" /></center></p>
<p></br></p>
<h2>Instalação do Rails</h2>
<p></br></p>
<p><strong>1</strong>.Os próximos passos serão executados em linha de comando do Windows, para isso clique no botão iniciar do Windows. Clique em “Executar” e na linha de comando digite “cmd” e pressione a tecla “Enter”.</p>
<p><strong>2</strong>.Mude para o diretório “c:\ruby\bin” e digite o comando de atualização do gerenciador de pacotes do Ruby RubyGems: &#8220;<em><strong>gem update &#045;&#045;system</strong></em>&#8220;. Essa operação leva alguns minutos e é necessário que você esteja conectado à internet.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/rails2.jpg" alt="" /></center></p>
<p><strong>3</strong>.Digite o comando de atualização e instalação do Rails: &#8220;<em><strong>gem install rails</strong></em>&#8220;. Essa operação leva alguns minutos e é necessário que você esteja conectado à internet. Se for solicitado sobre o que fazer em relação a dependências, pressione a tecla &#8220;Y&#8221; e em seguida a tecla &#8220;Enter&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/rails3.jpg" alt="" /></center></p>
<p></br></p>
<h2>Instalação do RubyForApache</h2>
<p></br></p>
<p><strong>1</strong>.Renomeie o arquivo &#8220;mod_fastcgi-2.4.6-AP22.dll&#8221; para &#8220;mod_fastcgi.dll&#8221; e o copie para o diretório de módulos do Apache. Nesse tutorial o arquivo deve ser copiado para &#8220;c:\apache\modules&#8221;.</p>
<p><strong>2</strong>.Renomeie o arquivo &#8220;c:\windows\system32\msvcp71.dll&#8221; para &#8220;c:\windows\system32\msvcp71.old&#8221;.</p>
<p><strong>3</strong>.Execute o instalador do RubyForApache, clicando sobre o arquivo &#8220;RubyForApache-1.3.1.exe&#8221; a partir do Windows Explorer. Clique então sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby4apache1.jpg" alt="" /></center></p>
<p><strong>4</strong>.Informe o diretório onde está instalado o Apache. Nesse tutorial o Apache está instalado no diretório &#8220;c:\apache&#8221;. Clique então sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby4apache2.jpg" alt="" /></center></p>
<p><strong>5</strong>.Informe o diretório onde está instalado o Ruby. Nesse tutorial o Apache está instalado no diretório &#8220;c:\ruby&#8221;. Clique então sobre o botão &#8220;Next&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby4apache3.jpg" alt="" /></center></p>
<p><strong>6</strong>.Selecione apenas a opção &#8220;mod_fastcgi&#8221;. Clique então sobre o botão &#8220;Install&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby4apache4.jpg" alt="" /></center></p>
<p><strong>7</strong>.Clique sobre o botão &#8220;Close&#8221;.</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/ruby4apache5.jpg" alt="" /></center></p>
<p></br></p>
<h2>Configuração do Apache</h2>
<p></br></p>
<p><strong>1</strong>.Edite o arquivo de configuração do Apache &#8220;c:\apache\conf\httpd.conf&#8221;. Faça as seguintes alterações:</p>
<ul>
<li>Retire o comentário da linha &#8220;LoadModule rewrite_module modules/mod_rewrite.so&#8221;</li>
<li>Adicione a linha &#8220;LoadModule fastcgi_module modules/mod_fastcgi.dll&#8221; ao final da seção onde se encontram as demais linhas &#8220;LoadModule&#8221;</li>
</ul>
<h2>Crie uma aplicação de teste</h2>
<p></br></p>
<p><strong>1</strong>.Clique no botão iniciar do Windows. Clique em “Executar” e na linha de comando digite “cmd” e pressione a tecla “Enter”. Crie uma aplicação de teste no diretório de páginas do Apache, digitando o comando &#8220;rails c:\apache\htdocs\teste&#8221;</p>
<p><strong>2</strong>.Crie ou edite o arquivo &#8220;c:\apache\htdocs\teste\public\.htaccess&#8221; com o seguinte conteúdo:</p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;RewriteEngine On<br />
&nbsp;&nbsp;&nbsp;&nbsp;RewriteBase /teste<br />
&nbsp;&nbsp;&nbsp;&nbsp;RewriteRule ^$ index.html [QSA]<br />
&nbsp;&nbsp;&nbsp;&nbsp;RewriteRule ^([^.]+)$ $1.html [QSA]<br />
&nbsp;&nbsp;&nbsp;&nbsp;RewriteCond %{REQUEST_FILENAME} !-f<br />
&nbsp;&nbsp;&nbsp;&nbsp;RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]</em></p>
<p><strong>3</strong>.Edite o arquivo de configuração do Apache &#8220;c:\apache\conf\httpd.conf&#8221;. Ao final do arquivo acrescente as linhas de configuração da aplicação de teste:</p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;Alias /teste &#8220;c:/apache/htdocs/teste/public&#8221;<br />
&nbsp;&nbsp;&nbsp;&nbsp;FastCgiServer c:/apache/htdocs/teste/public/dispatch.fcgi -idle-timeout 120  -initial-env RAILS_ENV=production -processes 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;Directory c:/apache/htdocs/teste/public><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Options ExecCGI FollowSymlinks<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AllowOverride All<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Directory></em></p>
<p><strong>4</strong>.Reinicie o Apache. Teste a aplicação pelo browser, colocando no endereço da url &#8220;http://localhost/teste&#8221;. Deverá ser carregada página semelhante a seguinte:</p>
<p><center><img src="http://www.adsystems.com.br/imagens/blog/teste.jpg" alt="" /></center></p>
<p>Referências:<br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://rawlinson.us/blog/warr-installation/" target="_blank">rawlinson.us &#8211; WARR Installation</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://wiki.rubyonrails.org/rails/pages/Fast+CGI+and+Apache2+for+Windows+XP" target="_blank">Fast CGI and Apache2 for Windows XP</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://wiki.rubyonrails.org/rails/pages/HowtoDeployMoreThanOneRailsAppOnOneMachine" target="_blank">HowtoDeployMoreThanOneRailsAppOnOneMachine</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://wiki.rubyonrails.org/rails/pages/HowtoInstallOnWindows" target="_blank">HowtoInstallOnWindows</a></p>
 <img src="http://www.adsystems.com.br/blog2/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=265" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blog.adsystems.com.br/2008/12/16/warr-windows-apache-ruby-rails-tutorial-de-instalacao/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
	</channel>
</rss>

