Ruby on Rails

drails – Dojo + Rails

Publicado em Javascript, Plugins, Ruby on Rails em September 15th, 2009 por Vinicius Ebersol – Seja o primeiro a comentar

drails

Dica rápida para quem se interessou no post anterior sobre Dojo. Eu pesquisei e encontrei um plugin que substitui os helpers do Rails para utilizar Dojo ao invés de Prototype. É o drails.

A instalação é simples:

# drails relies on the dojo-pkg gem.  Installing this gem can sometimes take a while
gem install dojo-pkg

cd my_rails_app
script/plugin install git://github.com/foobarfighter/drails.git

Para maiores informações acesse o README do plugin no github.

Dicas para otimizar o Redmine

Publicado em Ruby on Rails em February 25th, 2009 por Vinicius Ebersol – Seja o primeiro a comentar

A cada atualização do Redmine tenho notado as mudanças e quão significante elas são. O Redmine ainda nem chegou a versão 1.0 e na minha opinião já é significativamente melhor que alguns gerenciadores de projeto. Por exemplo, compará-lo com o Jira (licensa de $4,800 anuais) é piada. Redmine é software livre e muito mais completo.

Em sua versão padrão ele é muito bom, mas imagine que existem muitos plugins para turbinar o seu Redmine. Segue abaixo uma lista de plugins extraída da wiki do Redmine:

Plugin list

  • BotsFilterPlugin previne URLs contra indexação de mecanismos de busca.
  • Bulk Time Entry adiciona múltiplas entradas de tempo de uma vez só.
  • Budget é um plugin para gerenciar o conjunto de resultados de cada projecto, automaticamente calcula alguns indicadores de desempenho.
  • Collapse transforma a barra lateral padrão do Redmine para uma barra expansível.
  • Customer gerencia informações básicas do cliente e analisa os projetos deste cliente.
  • Embedded permite enviar arquivos HTML (ex.: documentação auto-gerada, resultados de testes) em seu projeto.
  • Exception Handler habilita o Redmine a enviar e-mails quando algum erro ou excessão ocorrer.
  • ezFAQ gerenciador de FAQ para redmine.
  • ezLibrarian cria um módulo que serve para a gestão de seus livros em sua empresa.
  • Google Analytics inclui de um modo simples o Google Analytics no Redmine.
  • Google Calendar integra o Redmine com o Google Calendar.
  • Project Scores permite ao usuário atribuir uma pontuação ao projeto, incluindo muitos critéiros de análise.
  • RD formatter permite formatar texto no estilo Ruby Doc
  • Question plugin que permite comunicação entre usuários nas tarefas.
  • Simple CI
  • Stuff To Do Permite o usuário atribuir a ordem das tarefas atribuídas a ele.
  • System Notification habilitao Administrador a enviar notificações por email para usuários recem logados.
  • Timesheet plugin para análise de horas trabalhadas de cada usuário, por projeto.

Encontre mais plugins no GitHub.

Dica: Siga o tutorial de como criar um plugin para o Redmine.

Como instalar um plugin

1. Se você está usando a versão 0.7.x, você precisa instalar o Rails engines plugin (certifique-se de que esteja usando a versão 2.0.2 do Rails). A partir da versão 0.8.0 o Rails engines plugin já está incluso no Redmine, então não precisa seguir este passo.

ruby script/plugin install http://svn.rails-engines.org/engines/tags/rel_2.0.0/
mv vendor/plugins/rel_2.0.0 vendor/plugins/engines

2. Copie o diretório do plugin para #{RAILS_ROOT}/vendor/plugins

3. Se o plugin requer migração, rode o seguinte comando para atualizar a sua database (faça um backup primeiro).

rake db:migrate_plugins

4. Reinicie o Redmine (siga as instruções de acordo com o servidor que você está usando).

Reforma na Wiki do Rails

Publicado em Ruby on Rails em January 15th, 2009 por Vinicius Ebersol – Seja o primeiro a comentar

ror_wiki

Foi anunciado no blog Riding Rails que a wiki do Rails será reformada (revitalizada).

Para dar início ao projeto, a equipe do Rails está formando um grupo de pessoas dedicadas e interessadas em colaborar nessa “revitalização”. Interessados devem ingressar no grupo Ruby on Rails Wiki e ler esse tópico (acredito que seja esse) wiki software.

Atual wiki do Rails:

Mephisto finalmente “funcionando” para mim

Publicado em Mephisto, Ruby on Rails em December 29th, 2008 por Vinicius Ebersol – Seja o primeiro a comentar

Vocês devem ter notado (ou não) que eu não tenho postado muito. Um dos motivos é que eu estou trabalhando em tempo integral na Conrad Caine e em projetos particulares nas horas vagas. O outro, se deve ao fato de que o meu Mephisto não estava funcionando direito e eu não conseguia entender o motivo.

Durante a semana passada fiquei animado com a possibilidade de correções de bugs com a saída da versão 0.8.1 do Mephisto, mas as mudanças para mim foram muito poucas. À excessão de que o meu blog agora roda na versão 2.2 do Rails, nada mudou.

O principal problema era no upload de Assets, que aparentemente funcionava, mas não exibia as thumbs na listagem e não apontava a imagem para o caminho correto. Finalmente explorando a árvore de diretórios descobri o problema na semana passada. Era o suporte multi-sites do Mephisto que estava surgindo, e os assets já estão funcionando nessa lógica, pelo menos o modelo, pois as views ainda continuavam desatualizadas.

Até aí tudo bem, uma mexidinha de código poderia acabar com os meus problemas, mas como eu não pretendo ter 2 blogs, isso não era o ideal.

Hoje pela manhã li no blog do Fábio Akita a rápida e indolor solução para todos os meus problemas “blogísticos”. Se você tem este mesmo problema, siga o texto do Akita e bons posts.

De agora em diante, teremos um 2009 cheio de novidades e textos que estão maduros para compartilharmos.

Novo case brasileiro em Rails

Publicado em Ruby on Rails em December 19th, 2008 por Vinicius Ebersol – Seja o primeiro a comentar

geek_20081219

Acabo de ler no twitter do Everton Carpes a notícia de que o site da Revista Geek está no ar.

A revista da Editora Digerati desde o início do projeto resolveu mudar radicalmente, e na minha humilde opinião, para a melhor. O antigo portal continha milhares de notícias e conteúdos livres dos mais variados assuntos do universo geek e tantos usuários quanto a dimensão de seu conteúdo, o que representa um site de grande expressão. O novo site, é uma mudança de conceitos e tecnologia, adotando Ruby on Rails para o desenvolvimento da aplicação, o que não diminui a sua dimensão, pode até multiplicar-se.

Tive uma pequena oportunidade de participar no projeto e entender que por trás desse simples e funcional conceito do site da revista geek existe uma complexidade muito grande (não confundam complexidade com aplicação mal feita).

Esse é mais um projeto de grandes dimensões para provar que Rails não é somente um framework para pequenas aplicações. Grandes e complexas aplicações podem sim (e no meu conceito, DEVEM) ser desenvolvidas em Rails.

Para finalizar deixo os meus parabéns a todos os envolvidos no projeto desde o início, principalmente ao Everton por levar este projeto adiante.

Ruby on Rails com Passenger (em produção) em hospedagem nacional

Publicado em Ruby on Rails em August 5th, 2008 por Vinicius Ebersol – Seja o primeiro a comentar

A TeHospedo acaba de anunciar o lançamento do mod_rails em produção. É a primeira empresa de hospedagem brasileira a implementar o Passenger em seus servidores. Visite o Blog da TeHospedo para ler mais.

Se você tem dúvidas quanto a estabilidade do servidor, saiba que meu blog está rodando com Passenger há mais de um mês e não tive problemas na utilização. Recomendo!

Para assinar, clique aqui

Utilizando um repositório git com redMine em seu Shared Host

Publicado em Ruby on Rails em July 10th, 2008 por Vinicius Ebersol – Seja o primeiro a comentar

Se você tem um pequeno projeto e não tem interesse em pagar um VPS para manter seu repositório git rodando com o redMine, configurá-los em sua hospedagem padrão é uma ótima e barata idéia. Eu recém fiz e achei muito simples fazer.

Antes de tudo é necessário que sua hospedagem tenha:

  • acesso disponível via SSH;
  • Ruby on Rails rodando com fcgi ou mod_rails
  • SVN instalado (opcional)
  • Git
  • Gerenciamento de chaves SSH pelo CPanel

Instalando o redMine

A instalação do redMine é muito simples. Basta seguir os passos do próprio site do redMine, clicando aqui e após configurar o redmine de acordo com as suas necessidades.

h3, Criando o repositório Git em sua máquina

Se você ainda não tem um repositório local, é necessário criá-lo, vamos aproveitar e criar uma aplicação Rails para já termos o que enviar ao servidor.

 $cd /home/usuario/workspace
 $rails my_git_project
 $cd my_git_project
 $git init
 $git add *
 $git commit -m "My first commit"

Movendo o seu repositório para o seu shared host

Antes de mais nada é preciso ter em mente que só enviar o seu repositório Git por FTP pode não ter o funcionamento adequado. Para isso, prepare o seu repositório para ser movido.

 $cd ~/workspace
 $git clone - -bare my_git_project my_git_project.git
 $touch my_git_project.git/git-daemon-export-ok

Pronto, agora seu repositório está pronto para rodar em seu shared host. Agora é necessário enviá-lo para o seu host. Acesse por SSH ou FTP o seu shared host e crie um diretório (que eu vou chamar de src) na home de seu shared host, algo como /home/username/. Se você quiser enviar por SCP, faça o seguinte:

 $scp ~/workspace/src/my_git_project.git username@meudominio.com:/home/username/src

Pronto! Seu repositório Git já está no seu servidor e pronto para ser utilizado.

A partir de agora o endereço de seu repositório será algo como:

 $ssh://username@meudominio.com/~/src/my_git_project.git

Teste o seu repositório

 $git clone ssh://username@meudominio.com/~/src/my_git_project.git

Se você fizer isto, será solicitada a senha SSH do seu host. Digite a senha e terá o seu repositório em poucos segundos.

Liberando as suas chaves SSH

Assim como o Github você pode adicionar chaves SSH de sua máquina e de outros desenvolvedores que terão acesso irrestrito sem a necessidade de senha.

Atenção: Não são todos os shared hosts que têm está opção. Posso afirmar que a hospedagem que eu utilizo fornece esta opção.

MUITO IMPORTANTE: Quem tiver acesso irrestrito ao seu repositorio git também tera acesso irrestrito a todos os arquivos e bancos de dados do seu shared host.

Os passos a seguir são referência do meu CPanel.

Para inserir as chaves ssh de seu computador e de terceiros, faça o seguinte:

Para ter uma chave SSH é necessário criá-la, para isso, recomendo que leiam esta página do Github.

 $cd ~/.ssh
 $cat id_rsa.pub

Copie o resultado sem nenhum espaço em branco do início e faça o seguinte:

Procure o item SSH/Shell Access como mostra a imagem abaixo:

ssh_icon

Após clique no botão Manage SSH Keys e clique em Import Key.

Cole a sua chave SSH como mostra a imagem abaixo (Não preencha os demais campos):

import_keys

Após clicar em import, vá à listagem de chaves públicas (Public Keys) e clique em Manage Authorization e após clique no botão authorize.

Pronto! Agora você não precisa mais digitar a senha de seu shared host toda vez que quiser fazer um clone ou enviar seus commits ao repositório.

Bug no FCGI utilizando método POST com :multipart => true

Publicado em Ruby on Rails em July 5th, 2008 por Vinicius Ebersol – Seja o primeiro a comentar

Ontem ao publicar uma demo no ar, penei para descobrir porque eu não conseguia criar um novo produto durante o teste da aplicação. Utilizando o WEBRick eu conseguia criar normalmente. Seria um problema de banco de dados ou da utilização da versão de alguma gem? Além disso, todos os outros formulários de criação funcionavam.

O que será então?

Se trata de um bug no FCGI. Simplesmente quando o método multipart está definido como true, ao tentar cadastrar um dado novo no banco de dados, ele não consegue direcionar o POST para a action create do seu controller. A solução é simples e indolor. No seu form de new faça o seguinte:

<%= error_messages_for :product %>

<% form_for(:product, :url => "#{products_path}/", :html => { :multipart => true }) do %>

  <%= render :partial => 'form' %>

  <p>
    <%= submit_tag "Salvar" %>
  </p>
<% end %>

Note que no lugar de @products eu pus :product, :url => ”#{products_path}/”, isto porque o bug somente ocorre pela falta da barra após o nome do controller. Se a action do form estiver somente ”/products” ele irá entender que você quer acessar a action index e não o create. Com a barra no final da action tudo vai funcionar perfeitamente.

Qualquer dúvida, comente, talvez hajam soluções melhores.

O crédito para o descobrimento deste bug é para o Everton Carpes.

Teste gratuíto do mod_rails na TeHospedo

Publicado em Ruby on Rails em July 5th, 2008 por Vinicius Ebersol – Seja o primeiro a comentar

Ontem foi anunciado aos assinantes da TeHospedo.com.br que haverá oferecimento de hospedagem gratuita para quem quiser testar Rails utilizando o famoso mod_rails.

A hospedagem gratuita estará rodando durante os meses de julho e agosto para que a oferta do serviço seja da qualidade que a TeHospedo já oferece há tantos anos.

O que você terá para utilizar a hospedagem da TeHospedo:

  • Acesso SSH
  • Capistrano 2.4
  • Git e SVN
  • Rails 2.1
  • mod_rails
  • e muito mais…

Maiores detalhes sobre hospedagem Ruby on Rails com o mod_rails, clique aqui.

Se você não deseja utilizar os servidores da TeHospedo para testes e já quer rodar sua aplicação em produção, clique aqui e já tenha a sua conta ativada em menos de duas horas úteis.

A TeHospedo também está oferecendo hospedagem gratuíta para domínios .can.br, confira aqui.

Ajude a comunidade Rails brasileira

Publicado em Ruby on Rails em June 24th, 2008 por Vinicius Ebersol – Seja o primeiro a comentar

Já é uma realidade que a comunidade brasileira de railers está crescendo de forma logarítmica, e para que haja mais espaço para esta comunidade no mercado brasileiro, nada melhor que começar mostrando o poder que ela tem. Depois do super lançamento do ano, por que não mostrar novamente para o mundo todo que nós podemos ir muito longe.

2007-cover-shut

Colabore!

Para isso ocorrer, peço que vocês dediquem uma parte da sua semana lotada de trabalho para colaborar com o pessoal e finalizar a tradução do livro Why’s (Poignant) Guide to Ruby. Para saber mais, clique aqui.

Ps.: Em breve mais conteúdo relevante.