Rails Rumble 2010

Esse final de semana (16 e 17 de outubro) tive a honra de participar do Rails Rumble 2010 junto com @cmilfont @rodrigodealer e @razenha.

Sem sombra de dúvidas foi uma das melhores experiências profissionais em ‘eventos’ que tive. O desafio era desenvolver uma aplicação, qualquer que seja, no prazo de 48 horas usando Rails.

Foram um total de 300 equipes cadastradas, sendo cerca de 30 brasileiras, e nós éramos uma delas: http://railsrumble.com/teams/cangaceiros

Contávamos com a participação inicial do Maurício Linhares, que não pode participar. Corremos então a procura do Azenha por indicação do Milfont. O cara mora em SP, e nós cá no Ceará, o que dificultou um pouco a comunicação, já que era basicamente via Skype e Twitcam.

Enfim, nosso projeto era desenvolver um aplicativo de indexação de livros. O usuário se cadastra e envia seus livros que tem em sua biblioteca pessoal (em formato PDF). A aplicação lê o arquivo e o indexa, pronto para ser buscado tanto pelos dados de cadastro como pelo conteúdo. Uma aplicação simples, mas que exigiu boa quantidade de gems.

Eu particularmente estava muito envolvido com o design, nesse projeto, e até já havia feito uma prévia de uma estante de livros um dia antes de começar o Rumble. Trabalhamos o sábado todo com essa tela, mas o sistema foi tomando forma e eu vi que se tornaria algo completamente diferente do que eu vinha imaginando. 11h do domingo (último dia do desafio) resolvi refazer o layout do zero. Foi uma decisão que titubiei bastante para tomar, mas que precisava ser tomada, e rápido, pois um dos pontos avaliados eram justamente a aparência. Refiz, e às 14h estava um layout completamente diferente no ar.

O desafio acabou às 21h (no Ceará). O resultado foi satisfatório, apesar de ter bastante arestas a serem aparadas (um erro chatinho quando se loga pela primeira vez, e outras coisitas mais). Justificável, se analisado que começamos no projeto somente às 12h do sábado.

Enfim, para mim, a prova da produtividade do Rails, de que trabalho em equipe é fundamental, e que, querendo (e sob pressão) quase tudo é possível.

Segue alguns links memoráveis do evento:

http://akitaonrails.com/2010/10/18/rails-rumble-na-gonow-retrospectiva – Retrospectiva do Akita

http://www.youtube.com/watch?v=kp0T1YCSLfc – Entrevista do Akita com a equipe Cangaceiros

http://razenha.wordpress.com/2010/10/20/rails-rumble-codigo-diversao/ – Retrospectiva do Azenha, que tava com a gente

http://twitpic.com/2ybbw4 – Flagra da transmissão ao vivo de algumas equipes brasileiras

Indignado com a Oi (má fé)

Estou profundamente indignado com o que me aconteceu com uma contratação de serviço da Oi. Mentiras, falsa propaganda, agiram de má fé, e muitas outras coisas que me soaram como desrespeito e até crime.

Tudo começou quando, cansados do péssimo serviço da Velox (fornecida pela Oi através do plano Oi Conta total 3), resolvemos trocar por outra operadora de internet e fixo. Como não precisaríamos mais da internet nem do fixo (a portabilidade iria acontecer para a outra operadora), e eu não queria mudar de número, nem perder minha linha de celular, resolvi procurar um plano que fosse compensatório.

Soube de um plano numa das lojas da Oi onde tinha direito a 60 minutos para falar com qualquer operadora, e, logo após esses minutos, teria direito a mais 1.000 minutos para falar com Oi e fixo. Continha na promoção também um pagamento com desconto de 15 reais por mês durante os 10 primeiros meses e 30 mensagens grátis. Como eu já tinha uma linha, a vendedora me informou que a transferência só poderia ser realizado por telefone.

Aí me veio a dor de cabeça.

Na primeira ligação, a atendente foi super atenciosa, e entendeu perfeitamente o que eu queria. Perguntei repetidas vezes se eu teria direito ao bônus, e se o valor que eu pagaria teria o tal desconto prometido, ela me afirmou categoricamente que sim. Mas quando quis finalizar o serviço, ela verificou que havia uma pendência de portabilidade para a minha linha fixa, e a mudança só poderia acontecer após a finalização dessa pendência. Me afirmou, porém que minha solicitação iria ocorrer automaticamente após a finalização da pendência.

Após o prazo estipulado…

Liguei, e o atendente me informou que ainda estava pendente, porém a qualquer momento iria acontecer a tal mudança. Perguntei novamente se minha mudança do plano do celular ocorreria automaticamente, e ele me afirmou que sim, que constava minha solicitação de mudança do plano do Oi móvel.

Imediatamente após me comunicarem que havia ocorrido a portabilidade do fixo, o que ocasionaria o cancelamento do Oi Conta total, e então a mudança de plano, liguei para eles para conferir se havia mudado como solicitado. Minha surpresa foi justamente a atendente informar que meu plano tinha virado “Oi básico”

Como assim? Eu não solicitei isso, eu não queria isso, e eu deixei claro que eu queria outro plano. Me foi informado que esse era o “procedimento padrão”, assim que o Oi Conta total era cancelado, mudavam para o Oi Básico. Que diabos eu fiz pendurado 1h no telefone quando solicitei o serviço de mudança para o Oi 60 então? Me informaram que não tinha nenhuma solicitação pendente, e somente uma notificação no protocolo do primeiro atendimento fazendo menção a isso.

“Quero solicitar novamente, então”. Ok, mas não tem o desconto, pois você já é cliente Oi. COMO ASSIM? Sou cliente há mais de 5 anos e não tenho desconto para um novo serviço? Que idiotas! É assim que se fideliza um cliente? Que noção (ou falta dela!). Depois de 3 ligações para atendentes diferentes, todas me afirmaram que “não poderiam fazer isso por mim”. Mas não era um favor, era uma coisa que já tinham me vendido, já havia solicitado, e já tinha sido enganado. Como não consegui de forma alguma o desconto de 15 reais por mês, solicitei a migração assim mesmo.

Chateado, enganado, enfim achei que tinha conseguido. Mas não.

Depois de eu usar o telefone a vontade, acreditando que teria direito ao bônus, e extrapolar os 60min, meu irmão, para tirar a dúvida, ligou, e descobriu que na verdade não tinha o bônus. Isso porque não tem bônus para clientes. COMO ASSIM, MEU CHAPA?! Sabe o que eu deveria ter feito? Cancelado, feito a portabilidade para outra operadora, depois voltado para a Oi, assim teria todos os descontos. Mas eu não era o titular.

Enfim, meu irmão conseguiu depois de muita briga que eles colocassem a promoção.

Sobrou que… gastei meus 60min e excedi nos minutos. Terei que recorrer, pois a conta dará bem mais alta do que o imaginado.

Resolvendo problema de zlib na instalação do Rails com RVM

Tentando instalar o rails utilizando o comando “gem install rails –pre” recebia sempre o erro:

ERROR:  Loading command: install (LoadError)
no such file to load — zlib
ERROR:  While executing gem … (NameError)
uninitialized constant Gem::Commands::InstallCommand

Para solucioná-lo, basta seguir as seguintes etapas:

rvm package install zlib
rvm remove 1.8.7 (no caso, a versão do seu Rails)
rvm install 1.8.7 (sim, a mesma que fora removida)

Pronto, agora ele será recompilado com a zlib.

Simples!

Gimp para design gráfico: Por que não?

Utilizo bastante e sou um divulgador de software livre. Minhas poucas contribuições foram mais com traduções (sempre que encontro um sistema que não tem uma versão em português, corro para traduzir). Uma coisa, porém, me tirava a paciência: fica uma lacuna na parte de criação gráfica.

Claro que já tinha ouvido falar do Gimp. É a primeira opção que se recomenda e se pensa em qualquer lugar, mas, será que ele é bom mesmo? Dá para fazer as mesmas coisas que “um Photoshop da vida”? Tentava e tentava utilizar, mas sempre me deparava com uma ou outra coisa que me impedia de afirmar: “O Gimp presta!”

Minha visão mudou. Por quê? Porque meu “método de avaliação” mudou. Estava tentando procurar no Gimp as ferramentas e formas de trabalhar que eu estava acostumado no Photoshop. Esqueci que o que eu queria avaliar, na verdade, era se o Gimp era capaz de ser a ferramenta ideal para design gráfico. E descobri que sim.

Estaria mentindo se dissesse que é um software completo. Não é. Coisas básicas ainda faltam (algumas delas já prometidas para a próxima versão) como:

  • Agrupamento de camadas (essa já é certeza sair na próxima versão)
  • Desenho vetorial (existe uma implementação de vetor, mas praticamente só para seleções)
  • Melhoria na ferramenta de Brush.
  • Suporte a CMYK (no meu caso, desenho praticamente para a Web, então isso não é ponto falho)

Apesar dessas pequenas faltas, digo que é possível sim fazer trabalhos bons utilizando o Gimp. E digo que hoje não sinto falta do Photoshop. Não há nada no Gimp que não consiga fazer. Nada que eu precise, ao menos.

Tive que entender que para fazer um quadrado ou um círculo, tenho que selecionar uma área e pintá-la, ao invés de clicar numa ferramenta de círculo e escolher a cor interna. Perceberam que o que muda é somente a maneira de se fazer as coisas? O resultado final e o esforço para atingi-lo são os mesmos.

Meu primeiro exemplo real e prático de um trabalho feito 100% utilizando o Gimp foi o site www.gogs.com.br. Nele fiz questão de nem abrir o Photoshop. Nenhum momento sequer, e, julgo eu (falando de meu filho) que ficou bem bonitinho. :D

Para quem tem preguiça de acessar links de posts, segue abaixo um screenshot pequeno:

Screenshot do site www.gogs.com.br

Desculpem-me não ter sido muito específico, mas utilizo este artigo mais para incentivar você também a descobrir que se pode fazer com o Gimp tudo o que deseja, e com um tempo outras ferramentas não vão fazer tanta falta.

Sincronizar Windows Mobile com o Linux

Num artigo anterior eu já havia descrito os passos de como sincronizar o Nokia 2630 com o Evolution. Como eu estava usando uma versão antiga do Ubuntu (8.04, se não me engano), alguns pacotes estavam diferentes, mas uns comentários no blog explicaram as mudanças.

Recentemente adquiri o HTC Touch com Windows Mobile 6.1 e imediatamente busquei formas de sincronizar com o Linux. Como já estava “treinado” pelas minhas tentativas anteriores com o 2630, não achei grandes dificuldades com esse Smartphone, pelo contrário, percebi que é até mais fácil.

Adicionando o repositório do SynCE

  • Certifique-se que tem algum usuário criado no Evolution (programa de e-mails padrão do GNOME). Se não tiver, basta abrir o programa pela primeira vez e seguir os passos. Não precisa configurar um e-mail válido com servidor e tudo mais, será necessário apenas o usuário.
  • Digite “sudo gedit /etc/apt/sources.list” e adicione a linha: “deb http://ppa.launchpad.net/synce/ubuntu jaunty main” (se for o caso da sua distribuição ser a Ubuntu Jaunty. Caso contrário, siga a seguinte lógica: “deb http://ppa.launchpad.net/synce/ubuntu VERSÃO main“. Salve e feche o arquivo.
  • Adicione a chave pública. Copie o texto abaixo criando um arquivo e salvando com o nome “synce.key” na sua área de trabalho.
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: SKS 1.1.0

mI0ESXQ6XAEEAOtHMAT/drqMvyLjUEZBXdhrZWH1JUnjp2jr/LrZlZiQTgb+KL0bEjh5fAvB
e1B1d0ewfRcosFiCLudk303yLv7SIB93YaM8u2k9/PhDtgRmoE379AzDWPAln5snZ8EnvN5u
FzOIoqVfptdMHQfHKr8ZNUMOI6r7Zh7iCFpg2JGVABEBAAG0F0xhdW5jaHBhZCBQUEEgZm9y
IFN5bkNFiLUEEwECACAFAkl0OlwCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRCxUvBC
0kbCXXaEA/dCubeqDKc6km37meBlXOkO9+AcZRh3zJLcbrFicze+Apdijue34MJxo+nlkwCI
Ayf2mHLbhD4+cKMzUp4n2ktKDf91dikcYmQyts17vN9wSM8RRNaKnZA0gQWSaNuDOJbkegQh
7tgpfzVHEvITL6dgsZcXz6zmUdrhC6nhHF4O
=Yrhm
-----END PGP PUBLIC KEY BLOCK-----
  • Importe a chave para o Synaptic: Sistema > Administração > Gerenciador de pacotes Synaptic > Configurações > Repositórios > Autenticação > Importar arquivo chave
  • Selecione o arquivo “synce.key” na área de trabalho e clique em “OK”.
  • Abra o terminal e digite: “sudo apt-get update

Até aqui você adicionou o repositório de arquivos do SynCE no seu sistema. O SynCE é o programa que fará a sincronização dos arquivos e dados do Windows Mobile com o Linux.

Acessando os arquivos do aparelho

  • Digite “sudo apt-get install synce-hal synce-gnomevfs synce-gvfs synce-trayicon librra-tools librapi2-tools synce-sync-engine” e reinicie o Nautilus (melhor reiniciar o sistema todo).
  • Conecte o Smartphone na entrada de USB.
  • Entre no Nautilus (gerenciador de arquivos do GNOME) e digite “synce:///” na barra de “Localização”. Uma unidade chamada “Mobile Device” será mapeada e lá você terá total acesso aos arquivos contidos no aparelho.

Sincronizando agenda e contatos com o Evolution

  • Digite “sudo apt-get install multisync-tools opensync-plugin-evolution opensync-plugin-synce multisync0.90
  • Conecte o Smartphone na entrada de USB. Um ícone de um smartphone irá aparecer ao lado do reloginho.
  • Clique com o botão direito no ícone do reloginho e selecione: Pocket PC > View device status
  • Crie um novo registro de dispositivo clicando em “Create” na aba “Partner”. Digite um nome e quais campos você deseja sincronizar com o Desktop.
  • Abra o Multisync clicando em: Aplicativos > Acessórios > Multisync-gui
  • Clique em “Adicionar” e dê um nome ao dispositivo (pode ser “celular”, “mobile”, “seu nome”)
  • Clique em “Editar”. Na janela que aparecer, clique em “Add member” e selecione “Plugin to syncronize with Windows Mobile 5 and later devices
  • Adicione um novo membro clicando novamente em “Add member” e selecionando “Evolution 2.x”
  • Feche a janela “Editar” e clique em “Atualizar”.

Pronto, agora você acabou de sincronizar os dados do celular com o computador. Se houver algum conflito de dados (alteração em alguma das partes) ele irá perguntar qual versão você quer que sobrescreva a outra. Sempre que quiser sincronziar, basta abrir o Multisync e clicar em atualizar.

E no Ubuntu 9.10 Karmic Koala?

Quando escrevi esse artigo estava utilizando o Ubuntu 9.04 e ele funcionou que é uma beleza, porém ao atualizar para o 9.10 notei (assim como os muitos colegas que o comentaram) que ele não funcionava. (O repositório do ppa launchpad já foi atualizado. Basta colocar “deb http://ppa.launchpad.net/synce/ubuntu karmic main” à lista de repositórios)

Em minhas diversas tentativas só encontrei (por enquanto) uma saída. Para realizá-la, já atualizei os pacotes na lista acima, então você pode seguir os mesmos passos descritos acima para a instalação dos pacotes. A lista de procedimentos acima está compatível com versões anteriores ao Karmic Koala e a ele. Haverá apenas um pacote adicional a ser instalado, que fará o gerenciamento de arquivos do seu celular. Infelizmente não consegui abrir pelo Nautilus:

  • No terminal, digite “sudo apt-get install gpe-filemanager
  • Após instalar, abra o programa “Aplicativos > Sistema > File Manager”
  • Digite “synce://” na barra de endereços. E pronto!

Para o sincronizmo, realize todas as etapas descritas em “Sincronizando agenda e contatos com o Evolution”, exceto a última, e então:

  • No terminal, digite “msynctool –listgroups“. Note que vai aparecer o nome do grupo criado no Multisync
  • Digite então “msynctool –sync NOME_DO_GRUPO“. E pronto!
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.