Hoje quero mostrar algo muito simples, mas é pra encorajar as pessoas que ainda não usaram o MongoDB como banco de dados de seus projetos.
É importante você conhecer pelo menos um pouco do mongodb, saber como instalar, iniciar, parar, reiniciar, fazer uma query e inserir e editar documentos.
Depois que já tiver este background então vale a pena dar uma olhada na página do Mongoid, que é uma...
Não faz muito tempo que escutei falar de pjax uma técnica que une ajax + pushState e que o Chris Wanstrath do github difundiu criando o jquery-pjax, recentemente o Ryan Bates do railscts.com publicou um epsódio mostrando como você pode utiliza-la com o rails.
Você já deve ter visto a arvore de códigos (source tree) que o github utiliza, quando você clica em um arquivo ou diretório ele atualiza...
Desde que a Phusion lançou o passenger eu sempre o utilizei em conjunto com o apache que já era familizarizado.
Quando trabalhei na Digital Pages me deparei com o pessoal utilizando o passenger com nginx, pra falar a verdade eu só tinha escutado falar deste servidor web e nem dei muita bola, além de que a aplicação caia de tempos em tempos e o log ficava poluído com algumas mensagens que o...
Dando continuidade aos últimos artigos resolvi escrever sobre a Guard, uma gem que complementa de forma incrível o uso do spork e automatiza seus testes.
A Guard tem uma função parecida com a Watcher, que praticamente fica monitorando alterações em seus arquivos e pode executar deterinadas ações quando isso ocorre, porém ele é bem estruturado e aceita outras gems complementares pra facilitar...
Embalado um pouco com o último post que era pra melhorar a performance do seus test vou falar um pouquinho de outra gem que também melhora a performance, mas agora em modo de desenvolvimento.
A Gem ActiveReload do Robert Pankowecki faz uma boa diferença em projetos grande com muitos arquivos, pois quando você sobe um servidor em modo de desenvolvimento ele carrega todos os arquivos como se...
A um certo tempo ouvi falar da gem Spork criada pelo Tim Happer que trabalha como um servidor drb, funciona mais ou menos como um servidor web em modo development onde todo rails e as configurações como rotas, spec_helper, factories e outras são carregadas e persistem em memória, então quando você rodar seus testes usando o servidor drb não será necessário carregar todo o framework e sim apenas...
O Slim é uma gem desenvolvida por Andrew Stone pra criação de templates com foco na simplicidade como o HAML, mas que tem um foco mais voltado pra velocidade. A sintaxe dos dois são bem parecidas como maior diferença que no Slim você não precisa escrever o % na frente das tags, outra diferença que encontrei foi que ao meu ver o Slim está com uma organização um pouco melhor no código.
Recentemente o @leobessa fez um post no twitter com um link desta wiki que mostra como você consegue melhorar a velocidade dos seus testes que usam o Devise, no caso dele a melhora foi de 54.43 para 9.51 segundos.
A gem settingslogic é uma forma simples de consumir arquivos de configuração em uma applicação rails. Já faz alguns anos que utilizo nos meu projetos e recomendo pra quem ainda não a usa.
Esses dias trabalhei em um projeto e vi o pessoal usando uma constante CONFIG que carrega um arquivo config.yml dentro do environment.rb ou em um initializer qualquer. Basicamente o settingslogic tem a mesma...
O Xavier Shay públicou a alguns dias um artigo mostrando um patch que ele fez alterando mais de 3000 linhas de código e 20 dependências do ruby 1.9.2 e conseguiu fazer o load do rails ficar aproximadamente 60% mais rápido. O que todos achavam estranho é o patch não ser aceito pelo core team, mas a de se entender que alterar tanta coisa como o que o Xavier fez é algo extremamente...
Quando você esta usando o ActiveRecord você acaba aproveitando os campos mágicos createdat e updatedat do Rails, mas uma coisa que poucos sabem é como ele lida com estes.
Quando você inicia a aplicação o Rails seta o time zone de acordo com a sua configuração, seja ela no application.rb no rails 3.x ou enveronment.rb no rails 2.x, porém este time zone não é utilizado no ActiveRecord por uma...
O formtastic é uma gem mantida pelo Justin French que pode ser considerado com um conjuto de helper que utilizam semântica HTML e facilita a criação de formulários em projetos Rails.
A instalação é bem simples, basta adicionar a linha abaixo no arquivo environment.rb.
Pra quem não conhece o resource_controller é uma gem que facilita a criação de CRUD em seus controllers criando até os 7 métodos básicos pra você dinamicamente (index, show, new, create, edit, update e destroy), se assemelha um pouco ao que o ActiveRecord faz com o model.
Você pode saber mais através da documentação ou no ótimo material disponibilizado pelo autor no github além de encontrar...
Em meus últimos projetos utilizei o plugin live-validations que me facilitou trabalhar com as validações no lado do cliente. A lógica do plugin é passar a validação de seus models para js evitando assim posts desnecessários. Este funciona com jQuery ou Prototype No meu caso utilizei a jQuery e vou mostrar abaixo como é simples fazer isso.
A um certo tempo eu venho falando do Jammit uma gem que me chamou a atenção e mudou minha forma de trabalhar com a parte de interface de meus projetos.
Praticamente a mesma coisa que o asset_packager que muitos estão acostumados a utilizar, porém ha algumas diferenças que me fizeram mudar como por exemplo você ter a opção de escolher qual compressor usar o YUI Compressor ou o Google Clouser...
O final do ano passado foi bem corrido pra mim, tive muitos posts pra escrever, porém sem tempo acabei deixando tudo acumular. Agora que estou um pouco mais folgado quero voltar a escrever e colocar o conteúdo em dia.
Em Dezembro de 2009 fiz um site pra uma detetive particular e foi uma experiência bem legal. O Murilo Ferreira fez o layout e me entregou os .png do fireworks.
Ontem eu alterei um projeto meu que estava usando o form_for do rails para usar o semantic_form_for do formtastic. Vou contar aqui como foi a minha experiência para que possa incentivar e ajudar outras pessoas também.
Se você quiser tem tudo sobre esta gem no do github (inglês) que você pode encontrar aqui
Eu utilizo a DreamHost para hospedar o meu blog, pra mim é uma boa empresa de hospedagem, visto que até hoje tive poucos problemas lá, e gostaria de compartilhar com vocês como resolvi um deles.
Você tem uma lista de gems disponível, porém algo que é muito comum é você precisar instalar algumas gems que não tem no servidor. Então você pode instalar estas gems ou dar um freeze delas no seu...
Outra dica que também vi com o Shadow11 é como fazer o deploy com repositórios locais. Veja o exemplo abaixo:
O repositório do meu blog está no servidor da DreamHost e o acesso é feito via ssh, com isso na hora de fazer o deploy sempre dava erro por que o caminho do repositório no servidor tinha que ser diferente. Então com esta dica você pode setar um repositório para ser utilizado no...
Depois que publiquei o artigo Diminua o tempo de deploy do capistrano encontrando um problema que como não era criado um novo diretório (release) para o deploy ás páginas de cache não eram apagadas. Foi então que o ["]Shadow11](http://blog.shadowmaru.org/) adicionou uma linha nesta receita que poderia resolver nosso problema. Se trata de um shell script que vasculha todos os diretórios...
Recentemente Chris Wanstrath publicou no Blog do Github um artigo muito legal falando como ele consegui mudar o deploy do github de 15 minutos pra 14 segundos
Empolgado com a façanha dele eu dei uma estudada no que o ele estava fazendo e procurei aplicar na minha receita também. A minha alteração diferente da dele foi bem mais simples e em un único arquivo, porém com um resultado satisfatório.
Estou com alguns projetos que utilizam paperclip para fazer o upload e gerar um thumnail de um arquivo. Mas o grande problema que os clientes sempre acabam reclamando é quando eles fazem o upload de uma foto na vertical o crop automático acaba cortando o rosto das pessoas.
Então o @sadow11 dando uma analisada no paperclip acabou alterando o plugin para que quando for fazer o crop usar sempre a...
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...