Posts with the tag: rubyonrails

Internacionalização em labels

Read in 1 minute ·

Desenvolvendo uma aplicação onde apliquei os recurso de internacionalização do Rails, percebi que o framework não traduz os valores dos labels para a tradução do atributo. Para corrigir isso, existem duas formas: um plugin chamado i18n_label ou uma gambiarra um recurso técnico avançado adaptado a condições tecnológicas precárias em um determinado momento: module ActionView module Helpers class InstanceTag def to_label_tag_with_i18n(text = nil, options = {}) text ||= object.class.human_attribute_name(method_name) if object.class.respond_to?(:human_attribute_name) to_label_tag_without_i18n(text, options) end alias_method_chain :to_label_tag, :i18n end end end Cole o código acima em um arquivo da pasta lib, por exemplo e o inclua com require no environment.

Rails e cia no Snow Leopard

Read in 2 minutes ·

Fiz uma instalação nova do Snow Leopard no meu MacBook e ao migrar os dados do Time Machine, do Leopard, algumas coisas pararam de funcionar. Resolvi então escrever para complementar meu post anterior sobre o assunto.

Xcode

ANTES DE MAIS NADA, instalei o Xcode. Ele está junto no DVD do Snow Leopard, na pasta de Instalações Opcionais.

Rails

O Snow Leopard já vem com duas versões do Rails já instaladas: 2.2.2 e 1.13.6. Caso queira atualizar seu ambiente:

O que é Ruby on Rails?

Read in 7 minutes ·

A essa altura do campeonato todo mundo já deve saber o que vem a ser o framework Ruby on Rails. Minha monografia e meu trabalho de conclusão de curso da Faculdade foram sobre o autosimulado. Na monografia fiz uma introdução sobre as características do framework, reproduzido abaixo:

Ruby on Rails

O framework Ruby on Rails foi extraído de um sistema para gerenciamento de projetos chamado Basecamp. A primeira versão do framework foi oficialmente lançada em 25 de Julho de 2004 e seu desenvolvimento conta com colaboradores em todo o mundo liderados pelo programador dinamarquês David Heinemeier Hansson.

MVC

Um padrão de projeto descreve e provê uma solução para um problema freqüente, sendo genérico e reusável. São criados a partir de problemas de problemas comuns enfrentados no desenvolvimento de projetos de software.
A criação de componentes reutilizáveis é uma das técnicas mais exploradas em Engenharia de Software. O uso de componentes diminui o tempo de desenvolvimento e a taxa de erros de codificação. Um padrão pode ser entendido como a abstração de detalhes sobre a implementação de um software.

MVC

O que é Ruby?

Read in 4 minutes ·

A essa altura do campeonato todo mundo já deve saber o que vem a ser a linguagem Ruby. Minha monografia e meu trabalho de conclusão de curso da Faculdade foram sobre o autosimulado. Na monografia fiz uma introdução sobre as características da linguagem Ruby, reproduzido abaixo:

Ruby

A linguagem Ruby foi criada em 1993 pelo japonês Yukihiro “Matz” Matsumoto, com sua primeira versão pública lançada em 1995. Para Matz, o primeiro desejo é de Ruby tornar os programadores felizes, reduzindo o trabalho manual que precisasse ser feito. Segundo ele, o desenvolvimento de sistemas deveria enfatizar as necessidades do homem e não da máquina:

Muitas pessoas, especialmente engenheiros de computação, focam nas máquinas. Eles pensam, “Fazendo isso, a máquina será mais rápida. Fazendo isso, a máquina será mais eficiente. Fazendo isso, a máquina irá fazer determinada coisa melhor”. Eles estão focando nas máquinas. Mas de fato nós precisamos focar nos humanos, em como os humanos lidam com programação ou operação das aplicações das máquinas. Nós somos os mestres. Elas são as escravas. (VENNERS, 2003).

Ruby é uma linguagem orientada a objetos, ou seja, qualquer variável é um objeto, mesmo classes e tipos que em muitas linguagens são designadas como primitivos. Por exemplo:

putz "meu exemplo".upcase # imprimirá MEU EXEMPLO

O ecossistema Rails

Read in 2 minutes ·

Escrevo esse artigo dentro do meu voo de São Paulo para Belo Horizonte. Passei 4 dias em São Paulo, participei do Rails Summit, bloguei ao vivo um resumo das palestras e vou expor meus comentários sobre o ecossistema Rails – ou se preferir, o gueto Rails. Trilhos da oportunidade Conheci durante o evento vários pessoas que só conhecia pelo Twitter. Muitas dessas pessoas possuem aplicativos web, outras desenvolvem no tempo livre por prazer (como eu), outras trabalham offshore.

Rails Summit: resumo do segundo dia

Read in 3 minutes ·

Richard Kilmer: MacRuby

A primeira palestra do segundo dia trouxe o americano Richard Kilmer que falou sobre MacRuby, a união entre Ruby e Objective-C. Notas dos slides:

  • Problems with RubyCocoa: It’s a bridge; 2 runtimes, 2 GC, different syntax
  • MacRuby 0.4: Objective-C 2 + Ruby 1.9
  • Every Ruby class is an Objective-C class
  • Every Ruby object is an Objective-C object
  • Every Ruby method is an Objective-C method
  • MacRuby é um pouco mais rápido do que Objective-C
  • MacRuby utiliza recursos de processamento paralelo do OS X
  • HotCocoa is an idiomatic Ruby API that simplifies the configuration and wiring together of Objetive-C/Cocoa classes – resumindo: simplifica a sintaxe e deixa algo mais ‘Ruby Way’

Nando Vieira: Ruby 1.9

O Nando falou do que há de novo no Ruby 1.9, tema inclusive de um PDF de sua série HOWTO. Sua apresentação, bem bonita, trouxe inúmeras notas sobre as mudanças da linguagem. Alguns pontos:

Rails Summit: resumo do primeiro dia

Read in 5 minutes ·

Esse é um rascunho do que foi abordado no primeiro dia do Rails Summit.

Chad Fowler: Insurgência Ruby on Rails

  • Stop doing things you know are wrong!
  • A primeira Rubyconf aconteceu em 2001 com 34 pessoas.
  • Nenhum dos participantes ganhava $ com Ruby.
  • 5 dos 34 participantes escreveram o Agile Manifesto.
  • “The survival rate for startups is way less than 50%. So if you’re running a startup, you had betted be doing something old. If not, you’re in Trouble”
  • Implante uma nova tecnologia gradativamente.
  • Don’t do (.Net | Java | C++ | C | Perl l PHP) in Ruby: a razão de trocar de tecnologia é fazer as coisas diferentes!
  • Linguagens de computador são como namoradas: a nova é melhor porque você é melhor.

Gregg Pollack: Na Vanguarda da Performance em Rails

Gregg Pollack, o cara dos screencasts do RailsEnvy, falou sobre performance. Primeiramente ele trouxe em 60 segundos algumas coisinhas para otimizar apps.

  • Usar Yslow
  • Cache: Page Caching, Action Caching, Fragment Caching, Object Caching
  • Avoid Cache expiration
  • Use memcached
  • Use background process
  • Client-side caching: etags & last-modified
  • Don’t pre-optimize: 99% of the time you’ll need 0%
  • Don’t abuse your database

Paperclip validando imagens no IE

Read in 1 minute ·

No autosimulado, tive um problema onde o IE (sempre ele) não validava o mime-type de uma imagem. Mesmo tentando enviar uma imagem JPG – imagem permitida – o IEca não aceitava o arquivo. A solução: validates_attachment_content_type :image, :content_type => [ 'image/jpeg', 'image/pjpeg', # for progressive jpeg (IE mine-type for regular jpeg) 'image/png', 'image/x-png', # IE mine-type for PNG 'image/gif' ] O (pseudo)browser da turma do tio Ballmer e cia não compreende o mime-type image/jpeg e sim o image/pjpeg.

Descubra de onde vem seus usuários com SQL

Read in 1 minute ·

Tenho no autosimulado algumas queries para acompanhar a evolução dos usuários do site. Periodicamente, vejo o número de usuários criados dia-a-dia no site e o número de testes realizados por esses usuários. Relacionado as essas queries, vi uma interessante consulta para agrupar o número de usuários por domínio de email, através da função substring. Confira: SELECT COUNT(*) AS Total, SUBSTRING_INDEX(email, '@', -1) AS Domain FROM users GROUP BY SUBSTRING_INDEX(email, '@', -1) ORDER BY COUNT(*) DESC LIMIT 10; O resultado, quando aplicado ao banco de dados do autosimulado:

Curiosidade Ruby do dia #2

Read in 1 minute ·

Em outra curiosidade Ruby do dia, eu falei do elsif. Hoje eu lembro do método succ, da classe String. Veja os exemplo: >> "abb".succ => "abc" >> "1".succ => "2" >> "1999zzz".succ => "2000aaa" >> Não é simplesmente incrível? P.S.: o método chama-se succ e não suck. Trocadilhos desse tipo serão desconsiderados.