Entries from July 2008 ↓
July 29th, 2008 — ruby
Open a terminal, type “ruby -v” and see if your output is something like this:
$ ruby -v
ruby 1.8.6 (2008-06-20 patchlevel 230)
If it is, pay attention to this post:
I was a happy programmer until I faced the first Segmentation fault of my life. Doing a simple request of my rails app’s home. Since I installed tons of plugins, Ruby, Rails and gems versions, and haven’t turned my machine off in weeks, I thought it was my machine so I rebooted it. Same problem.
After a little bit of despair, I searched on google for Segfaults on Rails 2.1 with Ruby 1.8.6 and Mongrel 1.1.5. I was lead to these pages:
http://rails.lighthouseapp.com/projects/8994/tickets/513-segmentation-fault-ruby-1-8-6-i686-linux-patchlevel-230
http://redmine.ruby-lang.org/issues/show/211
To solve this issue:
svn co http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8_6
Compile and install it. Problem solved.
P.S.: I think this is serious to alarm because I upgraded my Ruby version to 1.8.6 p230 to solve the “famous” recent vulnerability found in Ruby. In fact, until the time of writting this post, p230 is the 1.8.6 version the site http://www.ruby-lang.org/ asks you to download, compile and install.
July 25th, 2008 — rails
No meu projeto atual eu preciso de alguma coisa que me permita rodar processos em background, liberando a aplicação para o usuário. Entre as soluções atuais, a mais atraente é um plugin chamado Background-fu.
Ok, plugin instalado, exemplos rodados e tudo perfeito. Mas na hora de codificar o meu processo, ele não funcionava. Mexi em tudo, testei para não ver se era erro do código mesmo, mas nada.
Primeiro erro: Silenciei a exception gerada. Depois de consertar isso, o log me mostrou a exception linda, do jeito que eu queria.
Segundo erro: Passei um model como parâmetro, direto do controller pro agendador dos jobs. Mesmo sendo tudo código ruby, ele serializa e deserializa depois, o que fez o objeto ficar estranho e parar de responder aos métodos.
Solução: Salve o model na base, passe só o id para o agendador do Background-fu e, uma vez dentro do job, dê um find do model e chame os métodos que você quiser.
July 21st, 2008 — Twitter
Post rápido:
Quando estava na Railsconf, acabei comprando um BlackBerry Pearl pré-pago, e o Kenji me disse: Legal, agora vc pode usar aquele número que os americanos usam para postar no Twitter.
A questão é que eu posto esporadicamente via sms desde quando criei minha conta no Twitter! Se você for cliente da TIM, basta cadastrar o seu número de celular na sua conta do Twitter, e mandar um sms para +447624801423 com o tweet, e pronto!
P.S.: Já vi clientes da Vivo e da Claro tentando usar, mas sem sucesso. Se alguém nessas condições conseguir, sinta-se à vontade para comentar.
July 6th, 2008 — Descaso, Incompetência, design
Quem me conhece sabe que eu gosto da comida do Habib’s. Quem o freqüenta, sabe que nada além da comida presta. Eu sabia, mas ao fazer um pedido pelo site deles hoje, achei um novo parâmetro para lixo.
Em primeiro lugar, eu sou de um tempo onde as coisas eram entregues à domicílio. Esse negócio de globalização só tá servindo pro pessoal aprender o inglês antes do português. E ainda por cima mal.
Entrei no site e até aí tudo bem. Design feio, mas até aí tudo bem. Como não faço a menor idéia da senha, resolvi clicar em “esqueci a minha senha”.

Cabeças cortadas? Serviço do Jason? Não, serviço dos designers altamente qualificados da Voxline Contact Center!
O e-mail foi enviado, eu entro na minha conta, e vejo: No lugar de resetar a senha, eles me mandaram a minha senha antiga. A SENHA ANTIGA. Sabem o que isso significa? Que se alguém invadir o sistema deles (o que deve ser ridiculamente fácil) eles podem pegar a senha de todo mundo! Só pra constar: Sites que não usam criptografia de mão-única pra guardar dados sensíveis não são confiáveis.
Ok, senha digitada, sou obrigado a passar por duas telas e escolher um item radio button. Nos dois casos, eu só tinha um item disponível, e ainda tinha que escolhê-lo.
Ok, quando entro no site para fazer o pedido, ele me mostra imagens não carregadas, e buracos no design, como o que aparece em baixo do menu de itens azuis, mesmo o browser indicando “Done” no status de carregamento da página.

Na tela de pedidos, você tem uma tabela html, da mais simples e porca, mostrando o nome dos produtos, o preço e um link para adicionar ao carrinho. E fotos dos produtos, nada! Eu tenho que adivinhar como é o pastel, a fogazza, e tudo mais, tenho que já ter comido para saber como são! A não ser que eu me contente com as esfihas, ou o kibe, que é o que aparece na única imagem na tela.

Vou montando o meu pedido, e me perco no meio do caminho, não lembrando se tinha colocado as esfihas de queijo, ou frango. Vou ver no carrinho, pra poder colocar as outas, mas não posso, porque o carrinho só mostra o valor total!

Preciso clicar, ver o que tem, e voltar pra tela original! E além do mais ele adicionou 3 Kibe frito! Colocar um if pluralizando as coisas é tão difícil assim? E isso é bug! Não é feature nova, pra ser cobrada pelos olhos da cara!
Vou fazer o checkout, e me deparo com outro caso de descaso:

Além do botões estarem desalinhados, eu digito o valor “16,76″ e ele computa 16 reais. Mas porquê você digitou vírgula, e não ponto, como o site pede? Simples, porque eu sou brasileiro, e no Brasil o separador da parte inteira da decimal em valores monetários é a vírgula. Incapacidade pura e total, tratar isso no javascript é coisa de criança.
E, na última tela, onde mostra o número do pedido, recebo mais uma aberração de layout na cara! Funciona no IE 6 para Windows XP, né? Pronto! Isso representa 90% dos usuários não é mesmo?
Ok, o pedido está feito, mas da próxima vez vou pedir pelo telefone. Ter que usar um sistema tosco, mal-feito e lixo desse é revoltante.
Pronto, falei.
July 3rd, 2008 — poor-analogies, quotes
“Watching nonprogrammers trying to run software companies is like watching someone who doesn’t know how to surf trying to surf. Even if he has great advisers standing on the shore telling him what to do, he still falls off the board again and again.”
-Joel Spolsky (link)
Em português:
“Ver não-programadores tentar comandar empresas de software é como ver alguém que não sabe surfar tentando. Mesmo que ele tenha grandes conselheiros de pé na praia dizendo a ele o que fazer, ele ainda assim vai cair da prancha de novo e de novo.”