Muitas vezes queremos inserir dados no log do enviroment atual do Rails direto pelo console ou por um rake task. Antes tinhamos que usar uma constante global, mas atualmente, o Rails deixou isso mais bonito e dentro do console( ou de qualquer lugar ) você pode fazer o seguinte:

1
2
3
4

Rails.logger.warn("AVISO:hello pelo console")
Rails.logger.info("INFO:hello pelo console")
Rails.logger.error("ERROR:hello pelo console")

PopWindow


Pessoalmente odeio soluções como popup’s e modal, e pensando neste problema, acabei esbarrando na necessidade de um plugin para jquery que permitisse exibir divs( ou qualquer outra tag ) próxima a um botão ou link ao ser clicado ( algo semelhante a um tooltip, mas que seja ativado e desativado por click ).

Ler o resto do post

RailsMate no github


Olá pessoal, em agosto publiquei um pequeno widget para dashboard do MAC. Este widget serve como cheatsheet do textmate para desenvolvedores Raisl.

Ainda utilizo bastante o projeto, pois acho uma forma mais rápida de ter acessos ao atalhos do que procurando no próprio bundle do Rails para o Textmate.

O problema é que não estou tendo mais tempo para atualizar o projeto e aind faltam muito atalhos e snippets que merecem ser mencionados no widget.

Por este motivo resolvi publicar o código no Github para quem tiver interesse poder ajudar. Na verdade o código sempre foi aberto, pois arquivos compilados em wdgt são apenas pacotes com o html/javascript e imagens necessárias para o widget funcionar, mas agora distribuindo desta forma acho que fica mais simples para quem nunca criou um widget poder ser interessar em ajudar.

Se você quiser ajudar no projeto basta abrir o arquivo RailsMate.wdgtproj no Dashcode ( sistema da Apple para criação de widgets para dashboard ) e ter acesso a todas as facilidades do programa, como interface visual. Você também pode editar tudo no Textmate e recompilar uma nova versão pelo Dashcode.

O link do projeto no github é: http://github.com/danielvlopes/railsmate/tree/master


Mails = Merb + Rails


Merb se juntou ao Rails !!!!

Provavelmente a notícia do ano para os desenvolvedores que utilizam os dois frameworks.

Acabou de se anunciado no blog do Rails que agora as equipes do Merb e Rails trabalharam em conjunto para tornar os dois frameworks apenas um na versão 3 do Rails. Graças a deus o projeto não vai ser chamar Mails nem Rerb, mas teremos um novo Rails 3.

Pessoalmente acredito que será ótimo, Rails é fantástico, tem idéias inovadoras e revolucionou o mundo de desenvolvimento web e essas idéias continuam pois ele é um framework de atitude… mas também não é perfeito, e neste ponto onde Merb foi desenvolvido para atender algumas coisas que o Rails não havia sido idealizado desde o início. Coisas como ser independente de framework ( em framework leia ORM, framework de tests, framework de Ajax e JS e etc), melhorias em performance e separação em módulos.

Mas mesmo com algumas dessas idéias, Merb continuava compartilhando muita coisa com o Rails. E partindo deste ponto as duas equipes decidiram se juntar e trabalhar no Rails 3 ao invés de trabalharem duplicando código e idéias em dois frameworks diferentes.

veja mais detalhes desta notícia aqui


Em Rails temos um arquivo (até o atual Rails 2.2 o arquivo é routes.rb mas no Rails 2.3 em diante poderemos ter outros) onde podemos definir as rotas de nosso aplicativo, customizando cada url de nosso aplicativo ( semelhante ao resultado obtido com o mod_rewrite que o pessoal costuma usar em sites em PHP )

*Por que uma url deve refletir seu conteúdo? *
Por vários motivos como serem lembradas mais fácil, dizer exatamente do que um link se trata ates do usuário tentar acessar, pontuar melhor em sistemas de busca e muitas outras vantagens…

E muita gente do mundo Rails já deve ter visto este post no blog de Jamis Bucks.

Basicamente, Jamis defende que não devemos aninhar rotas por mais de um nível no Rails. Em seu post, sua solução tenta sempre manter uma url mais limpa. Concordo com Jamis ( quem sou para descordar ) que devemos tentar sempre manter uma url menor.

Ler o resto do post

Olá pessoal, ultimamente tenho tentado participar em alguns projetos open-source mesmo que seja em design… e como á algumas semanas atrás postei sobre a necessidade de uma nova logo para o Cucumber, acabei tomando vergonha na cara e criando uma versão para logo .

A minha foi a primeira a entrar no wiki e depois algumas pessoas postaram outras, então a equipe do Cucumber decidiu fazer uma votação para a comunidade votar na logo mais legal.

As votações já estão abertas… se você acharem a logo uma boa candidata, eu gostaria de contar com a ajuda de todos vocês. A que considero mais relacionada com o projeto é a Logo B.

Votem pessoal: http://cukes.info/

Obrigado. ;-)


Fabio Akita, o principal envagelizador de Rails do Brasil ( e bem influente na comunidade Ruby mundial ), postou um texto sobre Rails não ser a solução para tudo. O texto é como um complemento de uma palestra do DHH. E respondendo a questão que o Akita levantou no final do post resolvi criar este texto.

No video, DHH comenta, sobre o pensamento errôneo, onde as pessoas pensam que código legado é PHP ou Java e que Ruby on Rails é sempre perfeito… pensamento mais errado impossível. Tudo que você fizer hoje será melhor do que você fez ontém. Eu mesmo estou atrasado com um projeto interno aqui da empresa pois decidi migrar meu sistema de Rails 2.1/Test::Unit/Prototype para Rails 2.2/Jquery/Rspec no meio do caminho pois aprendi novas funcionalidades de cada um desses frameworks que me fizeram acreditar que valia a pena migrar ( aguardem novidades para o início do ano :D ).

Ler o resto do post

Esta semana precisei utilizar campos de data em model onde deveria ser guardado no DB (mysql) como date mas no meu aplicativo rails deveria ser exibido no formato brasileiro.

Como estou no Rails 2.2 nada mais simples que usar o método localize para resolver isso… bastava sobrescrever os atributos do ActiveRecord e formatar o campo em seu getter e setter.

update 15-12-2009: Uma excelente forma de evitar a re-implementação dos accessors criados pelo Rails é através do plugin delocalize, que tira proveito do arquivo yaml de localização. Para saber mais sobre este plugin acesse: http://github.com/clemens/delocalize

Ler o resto do post

Sites do Ano


Um dos blogs que assino o RSS é o Abduzeedo, uma empresa do sul do Brasil. Ele fazem um trabalho muito legal, falando sobre design em geral no seu blog.

Hoje eles lançaram uma lista bem grande com o que chamaram de sites do anos… tem muita coisa legal e vale a pena conferir: http://abduzeedo.com/2008-the-best-sites-year


Minha Versão para o Cucumber


Á alguns dia atrás anunciei o concurso de logos para o cucumber, passado algum tempo resolvi desenvolver a minha versão, vejam abaixo:

Para ver os outros concorrentes acesse:
http://github.com/aslakhellesoy/cucumber/wikis/logo-contest


Manual de Segurança do Google


Ultimamente o Google tem disponibilizado materiais bem interessantes como o manual de SEO.

Agora foi a vez do google tornar pública suas pesquisas quando o assunto é segurança dos Browsers.

Ainda não posso opinar sobre o material, pois ainda não li… mas sem dúvida deve ser uma boa leitura.

Acesse o manual aqui ou então baixe o material para leitura aqui .


Em novembro o Cassio Marques iniciou o projeto de tradução dos guias oficiais do Rails para português.

Para quem não conhece, os guias são um projeto comandado pelo Pratik Naik ( responsável pela parte de documentação do Rails ) que está no github e a comunidade contribui criando guias bem detalhados sobre assuntos do Rails ( bem semelhante ao developer guide do Flex, com a diferença de ser da comunidade ).

Ler o resto do post

Cucumber precisa de uma logo


Olá pessoal, o projeto Cucumber está precisando de uma logo… para quem não conhece ele um story runner que permite que você escreva estórias para seus projetos Ruby/Rails e consiga roda-las como testes funcionais. A idéia é simular o conteúdo dos post-its que são característicos de desenvolvimento XP e conseguir rodar estas especificações de forma automotizada.

Sem dúvida um projeto bem promissor, e para participar basta acessar o link deles no github, ler as regras e enviar sua versão de logo para eles decidirem qual será a melhor.


Filtrando dados sigilosos do log


Por padrão o Rails é acompanhando por logs dependendo de qual ambiente (desenvolvimento, produção, testes) você está. E muitas vezes não queremos que dados sigilosos como senhas sejam gravados no log. Mas muita gente não sabe ( eu mesmo já deixei passar isso algumas vezes e tive que voltar concertando ) é que temos um método muito útil para este fim. Veja abaixo o uso:

  filter_parameter_logging :password

Basta colocar a chamada acima no seu ApplicationController e todos os campos password apareceram desta forma no log: [FILTERED].

Para mais acesse a documentação


Design: Javascript (JQuery): Flex/Flash Rails/Ruby:

Good Ideas


Ler o resto do post

FlashCatalyst Screencast


Pessoal da DClick liberou um screencast mostrando o FlashCatalyst, ferramenta que tem a promessa ousada de otimizar o fluxo de trabalho entre designer e programadores. A DClick também disponibilizou os links para download da versão beta do Catalyst e do Gumbo ( FlexBuilder 4 ) que foram disponbilizadas para quem estava presente no AdobeMax 2008 … o pequeno porém é que o Catalyst só tem versão beta para MAC ( hehehe, eu avisei que é melhor comprar um Mac ).

Segue o video ( produzido por Rafael Martinelli )


Flash Catalyst e Gumbo ( Flex 4 ) from DClick on Vimeo.

Will_paginate is the most used plugin for pagination on Rails. Exist some other way to translate previous and next links from will_paginate ( like this solution ) . But if you are using the I18n suport on Rails 2.2 only thing you need to do is …

Ler o resto do post

Dica - traduzindo will_paginate


Will_paginate é o plugin default que todo mundo usa para paginação no Rails. Existem algumas formas de traduzir os links previous e next ( como esta solução ) . Mas se você estiver usando o suporte a I18n no rails basta fazer o seguinte:

Adicione isto no locale ( no meu caso config/locale/pt-BR.yml )

    pagination:
      next: "próximo" 
      prev: "anterior" 
Então em seu enviroment.rb, adicione o trecho abaixo no final:
WillPaginate::ViewHelpers.pagination_options[:prev_label]=I18n.t("pagination.prev")
WillPaginate::ViewHelpers.pagination_options[:next_label]=I18n.t("pagination.next")

Desta forma, no iniciar do seu aplicativo, você está passando a string do locale corrente ( no caso o arquivo pt-BR.yml ) que conrresponde a “pagination” para os valores padrão do hash pagination_options que o will_paginate usa.


I18N no Rails 2.2 e arquivos .YML


Rails 2.2 saiu já a algumas semanas e contínuo empolgado com um novo feature, o I18N ( abreviação de Internacionalização), que na minha opinião, foi o melhor acréscimo.

Ler o resto do post