rubista.info


[code] while self.caffeinated?

Varios dominios e uma unica aplicacao rails (com sessoes funcionando)

Text

Ontem a tarde resolvi largar os bugfixes e implementar uma nova funcao em uma aplicacao de um cliente. Os requisitos da historia diziam que a aplicacao (atualmente em producao) deveria suportar o uso de varios dominios transparentemente. Depois de uma modificacao rapida no vhost do apache para adicionar um dominio adicional como alias, percebi que tudo parecia funcionar corretamente - paginas perfeitamente renderizadas, rotas funcionando. O problema comecou quando eu tentei logar com um usuario - logo apos o redirect inicial, eu era redirecionado novamente para a pagina de login.

Acabei passando umas duas debugando a aplicacao ate’ achar a causa. Problemas como esse normalmente sao problemas de sessao, e como no dominio original tudo funcionava perfeitamente, resolvi pesquisar sobre o suporte a sessoes em multiplos dominios. Obviamente, mais gente ja’ teve o problema.

Vou documentar aqui exemplos da solucao para diversas versoes do rails (1.x, 2.0.x, 2.1 e 2.3) garantindo que o codigo esteja acessivel caso o post original saia do ar. Aplicar o monkey patch e’ simples: Basta adicionar o snippet relacionado a versao do rails que voce usa diretamente no environment.rb e reiniciar o processo.

Rails 1.x

Rails 2.0.x

Rails 2.1.x (e 2.2.x)

Rails 2.3 



March 20, 2009, 6:10pm

self.restart!

Text

Depois de algum tempo sem blogar (e com o blog congelado na camara criogenica do DNS em loop infinito), o rubista volta a ativa.  Para ofuscar o evento, o rails 2.3 e’ lancado no mesmo dia.



March 17, 2009, 3:11pm

Hoptoad, o exception_notifier 2.0

Text

Uma das felizes descobertas da semana passada foi o hoptoad, novo aplicativo da thoughtbot que promete tomar o lugar do famoso plugin ExceptionNotifier (e suas variantes). Alem de apresentar uma inteface ‘clean’, o sistema suporta multiplos projetos e gerenciamento de tarefas baseado nos erros recebidos.

Resolvi pegar uma das aplicacoes que usamos como suporte no HotChalk para testar o servico, mas dei com a porta na cara ja’ na instalacao do plugin:

Lembrei entao que a aplicacao era baseada no rails 2.0.2, e o suporte ao git so’ foi adicionado ao trunk depois disso. A solucao que encontrei foi instalar o plugin manualmente, usando o git:

Depois foi so’ continuar seguindo as instrucoes normalmente. Tirando isso tudo funcionou direitinho aqui, se nenhuma outra dor de cabeca. Atualizarei o post com as minhas impressoes depois de algum tempo de uso.



March 16, 2009, 10:56pm

Micro review do Rails Summit

Text

Um tanto quanto atrasado, mas aqui vao as minhas consideracoes sobre o rails summit:

As palestras foram muito boas - pouco tecnicas, na sua maioria, mas bastante inspiradoras, principalmente a do Chad Fowler e a do Dr Nic. Foi divertido conhecer o pessoal da lista rails-br, almocar no bandeijao da locaweb e encontrar amigos distantes como o Chad DePue.

Agora vou voltar para minha caverna e continuar programando. Até mais.



October 23, 2008, 12:00am

Camisetas Rubistas

Text

Apenas uma nota rapida sobre alguns sites que vendem camisetas com estampas relacionadas ao mundo ruby.. nem so’ de thinkgeek vive o desenvolvedor fashion:

Na rubyrags tem ate’ a famosa camiseta do Github. Fica a dica para aqueles que queiram desfilar no rails summit com uma camiseta nova. :)



October 08, 2008, 12:00am

Hal.dll corrompido no Bootcamp?

Text

Uma dica para os usuarios apple, que como eu, deram de cara com o famoso erro do arquivo hall.dll corrompido apos instalar o Windows XP via BootCamp:

Esse problema provavelmente aconteceu porque voce resolveu brincar com as particoes durante o setup do windows. a biblioteca hal.dll e’ responsavel pela camada de compatibilidade entre o Windows e o hardware, e e’ um dos primeiros a ‘gritar’ quando algo esta errado com o seu HD.

Para resolver o problema, boot novamente no OSX - segure a tecla OPTION durante o boot para escolher a particao correta - e reparticione o HD usando o Bootcamp Assistant.



August 24, 2008, 12:00am

Sake task para testar sintaxe de projeto rails

Text

Fiz essa sake task ontem e acho que alguem mais pode achar utili, entao resolvi compartilhar. A task checa a sintaxe dos rb, erbs e yamls existentes dentro de um projeto rails:

A task e’ na verdade a adaptacao de um task rake que eu tinha guardada aqui, mas e’ chato ficar adicionando ela a cada projeto, dai o ‘port’ para o sake. Para quem nao conhece o sake, vale a pena conferir.



August 08, 2008, 12:00am

Moourl Ruby API

Text

Ontem a noite o jao me avisou que ele tinha feito uma biblioteca ruby para facilitar o uso do moourl. A libzinha esta’ disponivel no github, e depende apenas do mechanize e do hpricot. Otimo trabalho!

Update: parece que eu era o unico que nao sabia que o Robby Russell tinha implementado o moourl na biblioteca shorturl. Obrigado Robby!

Update: looks like I was the only one not aware of shorturl’s moourl integration, done by the amazing rubist Robby Russel. Thanks Robby!



June 26, 2008, 12:00am

Weird Worlds: Return to Infinite Space

Text

A algumas semanas venho me divertindo com o jogo Weird Worlds: Return to Infinite Space, desenvolvido pela Digital Eel. Para alguem como eu, que adorava jogos como Master of Orion a15 anos atras, o WW e’ quase um prato cheio - talvez um snack, vista a curta duracao das partidas.

Em um universo tipico de series de ficcao cientifica antigas, o jogador e’ colocado no papel de um explorador espacial, tendo como missao viajar entre diversos planetas em busca de contatos com alienigenas (que muitas vezes levam a batalhas), fama e fortuna.

O universo e’ gerado randomicamente no inicio de cada partida, e a jogabilidade e’ simples e intuitiva. Para aqueles jogadores que nao tem mais horas e horas disponiveis para jogar, uma partidinha rapida de Weird Worlds acalma os nervos e relaxa a mente - muitos o comparam como o famoso paciencia. Weird Worlds esta’ disponivel para PC e MAC.



June 11, 2008, 12:00am

Instapaper: uma solucao para o consumo de conteudo em dispositivos moveis

Text

Cada vez mais conteudo interessante e’ produzido e disponibilizado na internet, seja em blogs, forums ou listas de discussoes. Leitores de feeds despejam diariamente centenas de novos items na nossa ja’ imensa pilha de ‘artigos para ler.

Infelizmente, nosso tempo disponivel para consumo nao cresce da mesma forma, obrigando que sejamos bastante seletivos com aquilo que vamos ler, e mesmo assim, ainda estamos acorrentados ao computador na hora do consumo. O ideal seria conseguir acessar o conteudo na fila do banco, na sala de espera do dentista. Imprimir as noticias, alem de ser pouco ecologico, seria trabalhoso e inviavel. A solucao obvia? O celular, que ja’ nos acompanha para todos os lados.

Essa escolha nos remete a outros problemas, como as divergencias na formatacao do conteudo disponivel e o fato do conteudo nao estar centralizado em um indice central, de facil acesso. Algumas ferramentas resolvem um problema ou outro, mas ate’ agora nenhuma parecia realmente focada em ambas a necessidades.

O instapaper, ferramenta criada pelo pessoal do ja’ conhecido tumblr, pode ser considerado um gerenciador de favoritos com um proposito definido - facilitar o acesso e a leitura em dispositiveis moveis. Apos a criacao de uma conta no servico, um bookmarklet deve ser adicionado ao seu navegador. A partir dai, um clique no bookmarklet arquiva paginas para leitura posterior em seu indice pessoal.

O layout do instapaper e’ simples e de facil visualizacao em dispositivos moveis. Alem de agregar os artigos em um unico indice, o servico ainda faz a traducao das paginas para um formato mais acessivel a telas pequenas, removendo imagens e animacoes.

Ainda em fase beta, novas funcionalidades sao planejadas para os proximos meses. O uso do instapaper e’ gratuito e segundo um dos desenvolvedores, o servico nao tera’ anuncios.



May 24, 2008, 12:00am