As vezes precisamos salvar algum conteudo HTML (gerado por um editor HTML por exemplo) no banco de dados e depois recupera-lo e exibir em uma pagina web. Nos projetos Rails que tenho trabalhado ultimamente tenho essa necessidade, porem quando ia exibir esse conteudo, o mesmo era exibido como texto puro mostrando todas as tags HTML.A solucao para isso foi utilizar o helper "raw" do Rails, o qual faz com que as tags HTML sejam corretamente interpretadas. Para utilizar pasta fazer o seguinte:<%= raw @objeto.texto_html %> No ultimo post escrevi que estava trabalhando em um sistema para gerenciamento de projetos ageis mais simples, baseado em Kanban, sendo que o motivo era o fato de nao ter encontrado nenhum que fosse simples o bastante para ser utilizado com eficiencia.Bom, pouco depois daquele post, resolvi fazer outra pesquisa sobre sistemas para gerenciamento de projetos, e acabei encontrando varios sistemas que seguiam o mesmo conceito que eu queria em uma listagem nesse link. Testei alguns e acabei gostando do Kanbanery.Como nao e bom reinventar a roda, acabei por arquivar o projeto. Bola pra frente, vamos brincar com outro projeto. No projeto que estou trabalhando atualmente tenho a necessidade de criar um editor de capas para livros online. Como nao encontrei nada que me servisse ja pronto, acabei por criando um editor simples do zero.Pelas caracteristicas do editor, cheguei a conclusao de que o melhor seria cria-lo utilizando SVG, e optei pela biblioteca Raphael JS para trabalhar com SVG via JavaScript.Utilizar a biblioteca e simples, tem bastante recursos, e o que nao esta descrito na documentacao pode ser encontrado com uma pesquisa no Google e uma boa lida na especificacao do SVG.Uma coisa muito interessante no Raphael JS e a possibilidade de se utilizar plugins, e um plugin muito interessante que precisei utilizar e o raphael.serialize, que tem a funcao de exportar para json os dados SVG do trabalho feito com a biblioteca, e tambem de importar os dados em formato json novamente para a biblioteca Raphael JS. No projeto Rails que estou trabalhando estou utilizando o Devise para autenticacao, e tive a necessidade de deixar o usuario alterar seus dados sem precisar informar sua senha.Apos testar algumas opcoes do how-to do Devise, a melhor forma de fazer isso foi sobrescrever o metodo update_with_password, adicionando ao model o seguinte metodo: def update_with_password(params={}) if params[:password].blank? params.delete(:password) params.delete(:password_confirmation) if params[:password_confirmation].blank? end update_attributes(params) endFeito isso, esta pronto. Agora os usuario poderao alterar seus dados sem precisar informar a senha, e para alterar a senha basta informar a nova senha e a confirmacao da nova senha. Esse ano tem sido um pouco conturbado para mim. Tentei iniciar projetos proprios que foram por agua abaixo, tentei ressuscitar um projeto antigo, tentei uma parceria que nao deu certo, um que esta dando certo, aprendi Ruby e Rails (a meta de aprender uma linguagem por ano esta dando certo), abandonei Java por uns meses, voltei a programar em Java e finalmente encontrei um emprego em uma boa empresa (essa aqui). Nem tudo exatamente nessa mesma ordem...Depois de tudo isso cheguei a conclusao de que