Minha palestra no RejectConf’07 - agora com slides! 6

Publicado por Carlos Brando em 19 de Julho de 2008

Em novembro do ano passado (2007) tivemos o RejectConf’07 em São Paulo, onde eu tive o privilégio de fechar o evento com uma palestra motivacional. Depois deste evento, tivemos muitos outros em vários estados do Brasil e online.

Nem faz tanto tempo assim, mas muita coisa aconteceu desde então. A comunidade brasileira de Ruby on Rails cresceu muito e muita gente conseguiu abandonar seus antigos empregos e começar a trabalhar exclusivamente com Ruby, alguns para empresas nacionais como no caso do Brasigo (que esta semana seu produto), outros para empresas de fora do Brasil.

Agora mais uma vez a comunidade de desenvolvedores Ruby e Rails volta seus olhos para São Paulo com o anúncio do Rails Summit Latin America, um evento que promete alavancar o crescimento da nossa linguagem e framework preferidos por aqui.

Infelizmente desta vez não vou palestrar, mas teremos pessoas mundialmente conhecidas como Dr. Nic, Obie Fernandez e até mesmo o criador do Rails, David Hansson em palestras com direito a tradução simultânea e tudo mais.

Para quem participou do primeiro RejectConf em uma sala de aula na USP, vai ser muito legal reencontrar toda aquela galera novamente num evento desta proporção.

Eu encontrei um serviço bem legal na internet que permite juntar vídeo com slides e resolvi dar um tapa no vídeo da palestra que fiz no RejectConf. Para os saudosos, ou para quem não pôde participar, o vídeo está aí embaixo:

Edge Rails: Introduzindo Memoizable para cache de atributos 1

Publicado por Carlos Brando em 18 de Julho de 2008

Performance é coisa séria, e um dos métodos mais usados para aumentar a velocidade de execução em códigos é o uso de cache. Quem nunca fez algo assim?

class Person < ActiveRecord::Base
  def age
    @age ||= um_calculo_muito_complexo
  end
end

Na próxima versão do Rails teremos uma forma mais elegante de fazer isto usando o método memoize (é memoize mesmo e não memorize). Vamos alterar o exemplo acima para funcionar com esta nova funcionalidade:

class Person < ActiveRecord::Base
  def age
    um_calculo_muito_complexo
  end
  memoize :age
end

O método age será executado apenas uma vez e o seu retorno será armazenado e retornado em futuras chamadas ao método.

Só existe uma diferença entre os dois códigos acima. No primeiro, como o método é executado todas as vezes, se o valor armazenado na variável @age for nil ou false o cálculo (muito complexo) será executado novamente até termos a idade da pessoa.

No segundo exemplo, o método age só será executado uma vez e o valor retornado será sempre devolvido nas próximas chamadas, mesmo que seja nil ou false.

Edge Rails: polymorphic_url agora é capaz de lidar com recursos singleton

Publicado por Carlos Brando em 17 de Julho de 2008

Agora que todos já sabem o que é uma rota singular, posso comentar uma novidade no Edge Rails.

Atualmente o helper polymorphic_url não está tratando singleton resources corretamente.

Um novo patch foi incluído no Rails para permitir que especifiquemos um singular resource usando símbolos, assim como fazemos com namespaces. Exemplo:

# este código
polymorphic_url([:admin, @user, :blog, @post])

# é a mesma coisa que
admin_user_blog_post_url(@user, @post)

O que é uma Rota Singular? 2

Publicado por Carlos Brando em 17 de Julho de 2008

Foto de GeorgieR

Além do map.resources, há também uma forma singular (ou “singleton“) de rotear recursos: map.resource. Esta forma é usada para representar um recurso que só aparece uma vez no contexto.

Faz muito sentido usar uma rota singular quando temos um recurso que será único dentro da aplicação ou da sessão do usuário corrente.

Por exemplo, em um projeto de uma agenda cada usuário registrado tem seu próprio catálogo de endereços, então poderíamos cria nossa rota assim:

map.resource :address_book

Com isto podemos usar todo o conjunto de recursos disponibilizados pelo Rails, tais como:

GET/PUT address_book_url
GET edit_address_book_url
PUT update_address_book_url



Note que tudo está no singular. Estamos assumindo que no contexto atual não precisamos especificar qual catálogo de endereços desejamos, ao invés disso podemos simplesmente dizer “o catálogo de endereços”, já que o usuário atual só tem um.

O relacionamento entre a tabela de catálogos e o usuário corrente não é automático, você deve autenticar o usuário e retornar o catálogo dele. Não existe mágica ou poderes psíquicos aqui, é apenas uma outra técnica de roteamento a nossa disposição, se precisarmos.

Rails Podcast Brasil - Episódio 24 6

Publicado por Carlos Brando em 16 de Julho de 2008

Com vocês mais um Rails Podcast Brasil!

Este episódio é curto, tem pouco mais de 30 minutos, afinal a vida está meio corrida ultimamente. Projetos… projetos…

Neste episódio comentamos sobre os 15 milhões que a Engine Yard recebeu e como eles pretendem gastar esta grana, mostramos um meio alternativo de usar o logo do Rails (?), explicamos o que é o DataFabric e fechamos com uma propaganda gratuita do Rails Summit Latin America (Locaweb, depois eu passo o número da minha conta).

Para baixar este novo episódio, clique aqui.

Neste episódio