ArthurGeek.net

Rails, Mac... e Rock'n Roll!

Pôr do sol em São Paulo

RubyGems 1.1 no Mac OS X 10.5.2 Leopard

31 de MarAo de 2008 às 17:37 · 2 comentários

No sábado, saiu a nova versão do RubyGems, o gerenciador de pacotes do mundo Ruby.

Para atualizar, é só rodar o comando:

sudo gem update --system

Pronto! Só que, aqui no Mac OS X, ele instala a nova versão, mas o comando gem ainda aponta para a versão antiga:

$ gem -v
1.1.0
$

Talvez seja porquê o RubyGems agora é incluído por padrão no Leopard. Porém, eu queria desfrutar da velocidade para instalar novas gems que a versão 1.1 possui. Aqui vai uma solução:

$ sudo gem install rubygems-update
$ sudo update_rubygems

Funciona! Para aqueles que não necessitam da versão 1.1 com urgência, recomendo esperar um update da Apple (que pode demorar).

2 comentários Tags:

RejectConf'07

19 de Novembro de 2007 às 18:54 · 1 comentário

Neste final de semana aconteceu o RejectConf’07. Muitas palestras e cases de sucesso. Mas com certeza o melhor foi finalmente poder conhecer a galera da comunidade Ruby/Rails pessoalmente. Akita, Carlos Brando, Eduardo Fiorezi, o pessoal do Pagestackr, entre outros feras. Agora precisamos marcar um “Nerds On Beer” com essa galera para trocarmos mais idéias.

E que venha a RailsConf Brasil! ;)

1 comentário Tags:

Mostrando a Colocação do Brasil no Pan 2007, usando Ruby!

17 de Julho de 2007 às 11:57 · 4 comentários

Como estou no trabalho, e por aqui não tem uma TV por perto, estava acessando demais o quadro de medalhas do Terra. Então, pensei: porque não fazer um programinha Ruby que me retornasse a colocação e as medalhas do Brasil?

Então, mãos à obra!

Continue lendo...

4 comentários Tags:

Traduzindo Datas no Rails

23 de Junho de 2007 às 12:50 · 0 comentários

Em alguns projetos, é necessário utilizar os nomes de meses, ou dias da semana em português. Eu sempre usei o método de sobrescrever as constantes que o Ruby usa, colocando o seguinte código no config/environment.rb:

silence_warnings do
  Date::MONTHNAMES = [nil] + %w(Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro)
  Date::DAYNAMES = %w(Domingo Segunda-Feira Terça-Feira Quarta-Feira Quinta-Feira Sexta-Feira Sábado)
  Date::ABBR_MONTHNAMES = [nil] + %w(Jan Fev Mar Abr Mai Jun Jul Aug Set Out Nov Dez)
  Date::ABBR_DAYNAMES = %w(Dom Seg Ter Qua Qui Sex Sab)

  Time::MONTHNAMES = Date::MONTHNAMES
  Time::DAYNAMES = Date::DAYNAMES
  Time::ABBR_MONTHNAMES = Date::ABBR_MONTHNAMES
  Time::ABBR_DAYNAMES = Date::ABBR_DAYNAMES
end

Acontece, que quando usamos a função strftime, estes nomes não são traduzidos. Eles funcionam apenas nos helpers date_select, entro outros. Em um projeto meu, eu precisava usar estes nomes traduzidos, justamente com a função strftime, então, cheguei à este código:

class Time
  alias :strftime_nolocale :strftime

  def strftime(format)
    format = format.dup
    format.gsub!(/%a/, Date::ABBR_DAYNAMES[self.wday])
    format.gsub!(/%A/, Date::DAYNAMES[self.wday])
    format.gsub!(/%b/, Date::ABBR_MONTHNAMES[self.mon])
    format.gsub!(/%B/, Date::MONTHNAMES[self.mon])
    self.strftime_nolocale(format)
  end
end

E funcionou!

Fica aqui a dica então, para quem estiver com este mesmo problema.

Nenhum comentário Tags:

Códigos mais claros usando Ruby!

22 de Maio de 2007 às 14:34 · 5 comentários

Acabei de ler este artigo no blog Softies on Rails, e resolvi traduzí-lo. Sabe quando você conhece determinada função, e mesmo sabendo que ela é útil, nunca usa? É preciso ler um artigo pra "cair em si", não é?. Então, este artigo é um deles. Pelo menos foi pra mim.

Continue lendo...

5 comentários Tags:

Feed 89 FM

13 de Maio de 2007 às 18:32 · 0 comentários

Depois que eu comecei a usar FeedReaders online (primeiro usei o Bloglines agora migrei para o Google Reader) nunca mais visitei qualquer site para ir atrás de notícias, quer dizer, visitava apenas um: o site da 89 FM.

Sempre pensei em criar um feed para a seção Notas Musicais do site. Só que nunca fui atrás, por pura falta de tempo em procurar por bibliotecas que fizessem o Parsing em HTML, tanto em Python ou PHP.

Depois de conhecer Ruby, pensei em perder um tempinho, procurando alguma biblioteca que fizesse o Parsing HTML, e depois, construir o feed RSS. Fazer o Feed seria a parte mais fácil, graças à biblioteca Builder usada para gerar arquivos XML.

O parsing ficaria à cargo da excelente Hpricot. Porém, encontrei uma outra biblioteca, chamada Feedalizer que usa a Hpricot para criar feeds RSS. Menos trabalho que isso, impossível!

Então, aqui vai o código usada para gerar o feed da página:

#!/usr/bin/env ruby

require "rubygems"
require "feedalizer"
require "time"

rss = File.new("arthurgeek.net/89.xml","w")

feedalize("http://www.89fm.com.br/notas/") do
  feed.title = "89 FM Notas"
  feed.about = "..."
  feed.description = "Notícias do mundo musical da 89FM"

  scrape_items("a.formtextobranco") do |rss_item, html_element|
    rss_item.link  = "http://www.89fm.com.br" + html_element.attributes["href"]
    rss_item.date  = Time.parse(html_element.to_s)
    rss_item.title = html_element.inner_html

    rss_item.description = html_element.inner_html
  end

  output! rss
end

rss.close

O arquivo do feed está disponível aqui e já estou usando-o há mais de 2 meses, e acredito, que não tem mais bugs, e pode agora, ser usado por qualquer um.

Ah, como eu gosto desta linguagem...

Nenhum comentário Tags:

Deploy Rails com: Apache + mod_proxy_balancer + mongrel

13 de Maio de 2007 às 16:21 · 12 comentários

[Update: Hoje em dia, o método preferido para deploy Rails + Apache é usando o Phusion Passenger, também conhecido como mod_rails. Para aprender como fazer um deploy com o mod_rails, leia este excelente artigo do Nando Vieira. :)]

Como eu havia dito, não achei artigos em português explicando como fazer o deploy de aplicações Rails usando mod_proxy_balancer e mongrel_cluster, por isso resolvi escrever um.

Os comandos a seguir foram testados em um Ubuntu 7.04 Server Edition, mas devem servir para qualquer distro Debian-based.

Será necessário ter instalado os seguintes programas:

  • Apache 2.2.x
  • mod_proxy_balancer
  • mongrel
  • mongrel_cluster
  • Ruby
  • Rails
Continue lendo...

12 comentários Tags: