Marcio Trindade

Dezembro de 2008

Gist to Mephisto

Como último projeto opensource do ano resolvi publicar um teste que estive fazendo com Mephisto. Tentei criar um plugin (filtered_column_gist_macro) a fim de facilitar a vida de quem usa Gist e Mephisto.

O Resultado não foi exatamente como o esperado, por que utilizei o filtro do Mephisto, que quando salva um artigo aplica este filtro e salva o HTML final na tabela, deste modo você acaba perdendo o principal poder do Gist de atualizar códigos sem precisar mexer no seu post. Para solucionar este problema pretendo no ano que vem escrever outro plugin que vai ser uma extension para liquid e ai sim na hora de mostrar o post eu vou fazer a requisição ao gist.


Show in colums

Este é o primeiro plugin para Ruby on Rails que fiz! É simplesmente um helper que facilita o trabalho de mostrar resultados em colunas dentro de uma tabela onde você passa um array, o número de colunas por linha e um bloco com a “td” que você pretende utilizar.

O plugin está no github e fiquem à vontade pra colaborar.


Paperclip com Rounded Corners

Sexta passada solicitei ao Dookie que tentasse criar um sistema para arredondar as imagens que o cliente mandar direto no servidor, sem precisar de gambiarras em javascript para fazer este trabalho.

O cara focou na tarefa e com a ajuda do Shadow11 consegui um ótimo resultado, vocês podem ver um exemplo no post dele Vale lembrar que a imagem gerada é um PNG32 com fundo transparente, deste modo não há problemas se a imagem vai ficar sobre um fundo com degrade. Único problema fica com IE6 que não suporta PNG32 transparente, mas que resolvemos isso com o plugin jQuery ifixPNG


Counter cache com acts_as_tree

Estava fazendo uns testes esses dias com uma aplicação Rails que utiliza acts_as_tree. Estava utilizando o methodo size para saber se o objeto tinha filhos, foi então que me veio a idéia de implementar um counter_cache e assim dar uma boa limpada nas consultas executadas.

Pesquisei na documentação como fazer isso e bastava colocar o campo com o nome de children_count, porém quando adicionei o :counter_cache => true no act_as_tree o autotest já me acusou 2 erros de SQL. Com uma pesquisada no Google consegui encontrar a solução, basta usar o nome do campo como parâmetro para o counter_cache.



Finalmente Gitorious

Finalmente conseguimos migrar os nossos projetos (apenas os novos) para dentro do Gitorious A novela foi longa mas teve um final feliz, muito feliz diga-se de passagem.

Bom o título acima já diz tudo!

A algum tempo atrás nós estávamos trabalhando com SVN e achamos isso muito bom. Felizmente começamos a utilizar o GIT, tudo bem que ainda estávamos criando os repositórios na mão com o famoso git --bare init (ainda bem que não vamos mais precisar fazer isso). Quando tomei conhecimento do Gitorious procurei seguir o tutorial do Akita para colocar em produção em nosso servidor. Infelizmente isso não foi tão fácil e o pior não deu muito certo por que a porta do servidor não era a padrão. Depois de muita batalha acabamos deixando isso de lado por um tempo. Ontem dia 02 de Dezembro procurei reaver este projeto junto com o Dookie. conseguimos a liberação da porta e configurar quase tudo, faltava apenas uma coisa, conseguir liberar as ssh keys que estavam sendo gravadas, mas não autorizavam.

Acabei dormindo com dor de cabeça de tanta confusão com essa história, mas hoje pela manhã consegui junto com o Cesar debugar praticamente quase tudo o que o Gitorious faz quando você tenta fazer um push e encontramos o problema que nós mesmo havíamos criado (era apenas configuração).

Bom o que tenho a deixar aqui pra vocês é que o projeto pode até ser um pouco complexo na hora de configurar e deixar tudo funcionando, mas vale e muito a pena! Hoje vou dormir mais tranqüilo e muito mais feliz!

Abraços e todos e utilizem sempre GIT com Gitorious