Heroku
Publicado por Vinicius Manhães Teles há 4 meses.
Heroku é uma das coisas mais fantásticas que eu vi aqui na Railsconf. Dê uma olhada!

Publicado por Vinicius Manhães Teles há 4 meses.
Heroku é uma das coisas mais fantásticas que eu vi aqui na Railsconf. Dê uma olhada!
Tags railsconf, railsconf2008 | 3 comentários
Publicado por Vinicius Manhães Teles há 4 meses.
Fotos dos primeiros dois dias da Railsconf 2008.
Tags raailsconf, railsconf2008 | nenhum comentário
Publicado por Vinicius Manhães Teles há 4 meses.
A Railsconf 2008 começou e estou aqui em Portland, acompanhando o primeiro tutorial, sobre Web Design for Developers. Até o momento, a conclusão que eu cheguei é que o Leandro deveria estar aqui, mas não para escutar o tutorial. Deveria estar lá na frente, fazendo a apresentação. Até agora não vi nada que tenha sido falado que ele já não esteja cansado de fazer o tempo todo. Mas, vi inúmeras coisas que não foram faladas e que ele também faz. E como fazem diferença!. O Brian parece mandar bem, mas o Leandro é o Leandro. :-)
Enquanto estiver aqui, vou tentar usar o Twitter ao máximo para comentar o que está rolando. Portanto, quem estiver a fim de acompanhar, é só ir lá no meu Twitter.
Tags railsconf, railsconf2008 | 2 comentários
Publicado por Vinicius Manhães Teles há 4 meses.
Novo site da Improve It. Confiram!
Algumas novidades:
Tags beonthenet, poetry, produto, selenium | 20 comentários
Publicado por Marcos Tapajós há 5 meses.
Em janeiro desse ano eu publiquei um post relatando um bug no plugin Selenium on Rails e até hoje o ticket estava aberto. Durante esses 5 meses eu recebi vários e-mails de pessoas que chegaram ao meu post mas não entendiam o idioma e para todas elas eu respondia como corrigir e reclamava que o projeto parecia abandonado.
Recentemente eu entrei em contato com o Danilo Sato para ver se ele descobria, lá na ThoughtWorks, quem era o dono do projeto só que não tivemos muito sucesso. Eu estava quase pensando em fazer um fork mas hoje tive uma resposta do meu ticket e acredito que o projeto voltará a ser mantido. O Eric vai aplicar o patch que eu mandei e finalmente as pessoas vão poder usar o plugin com o Rails 2.0 sem ter que marretar o código.
Antes tarde do que nunca!
Tags plugin, rails, selenium, selenium_on_rails, Selenium on Rails | 1 comentário
Publicado por Marcos Tapajós há 5 meses.
Recentemente um cliente da Improve it me perguntou se existe algum plugin para fazer controle de acesso em Ruby on Rails e como eu não conhecia nenhum iniciei uma processo de pesquisa e experimentos com alguns plugins que eu encontrei.
Antes de continuar falando em controle de acesso acho importante explicar a diferença entre Autenticação e Autorização já que normalmente eu vejo nas listas de Rails as pessoas confundirem esses conceitos.
"Autenticação (do grego : αυθεντικός = real ou genuíno, de 'authentes' = autor) é o ato de estabelecer ou confirmar algo (ou alguém) como autêntico, isto é, que reivindica a autoria ou a veracidade de alguma coisa. A autenticação também remete à confirmação da procedência de um objeto ou pessoa, neste caso, frequentemente relacionada com a verificação da sua identidade."(wikipedia)
Quando se fala em Autenticação, em Ruby on Rails, uma unanimidade é o plugin Restful Authentication. Trata-se de um excelente plugin e acredito que no que diz respeito a autenticação o problema foi bem resolvido por ele.
"Autorização, em segurança da informação, é o mecanismo responsável por garantir que apenas usuários autorizados consumam os recursos protegidos de um sistema computacional. Os recursos incluem arquivos, programas de computador, dispositivos de hardware e funcionalidades disponibilizadas por aplicações instaladas em um sistema. Podem ser considerados consumidores de recursos, as pessoas que utilizam um sistema através de uma interface, programas e outros dispositivos de um computador.
O processo de autorização decide se uma pessoa, programa ou dispositivo X tem permissão para acessar determinado dado, programa de computador ou serviço Y." (wikipedia)
Com essa diferença esclarecida vou falar um pouco sobre os plugins de autorização que eu considerei mais interessantes.
Um plugin de autorização é bem mais difícil de se implementar pois normalmente cada aplicação necessita de uma forma de controle de acesso diferente e personalizável.
Vale lembrar que nossa necessidade era de autorização baseada em controle de acesso(RBAC).
O Acl System é um plugin bem simples, com pouco código e que baseia em um relacionamento has_and_belongs_to_many entre os modelos User e Role.
User <= habtm => Role
Seu uso é bem simples e não pretendo entrar em maiores detalhes já que está tudo explicado na documentação. Vou apenas mostrar um pequeno exemplo e comentar alguns pontos interessantes.
class PostController < ApplicationController
before_filter :login_required, :except => [:list, :index]
access_control [:new, :create, :update, :edit] => '(admin | user | moderator)',
:delete => 'admin & (!moderator & !blacklist)'
A implementação do método access_control busca os papeis de um usuário através da chamada current_user.roles. Essa implementação é bem interessante pelo fato de usar o método current_user para obter o usuário autenticado, tornando esse plugin compatível com o uso do Restful Authentication.
O ponto negativo é que a implementação do método access_control não permite aumentar a granularidade dando permissões específicas a um usuário sem precisar criar um novo papel com apenas essa permissão. Isso se dá ao fato dele ser "RBAC schema level 1".
Acredito que para muitos casos essa implementação é mais do que suficiente e o plugin funciona muito bem. Só não faço mais nenhum elogio a ele pois sua base de testes é ínfima.
O Active RBAC é bem mais complexo que o Acl System e seu entendimento não é a coisa mais simples do mundo. Esse plugin é bem completo e implementa o "RBAC schema level 2".

Novamente eu não vou entrar em detalhes do seu uso pois existe uma página explicando isso. Vou apenas fazer alguns comentários.
Como eu disse anteriormente, esse plugin é bem completo só eu considero completo demais! Ele implementa uma autenticação bem parecida com a do acts_as_authenticated, que já não é mais usado.
Na minha opinião esse é um dos pontos fracos desse plugin, já que o Restful Authentication trata a autenticação de uma forma bem melhor. Isso não quer dizer que ele é incompatível com o Restful Authentication, mas que me deu um pouco mais de trabalho para usar.
A documentação dos conceitos é bem feita, porém ele peca pela falta de exemplos na hora de detalhar como se usa. Definitivamente ele seria bem mais fácil de usar se tivesse uma documentação mais detalhada.
O plugin trabalha como uma espécie de módulos e isso permite que você utilize mesmo sem seguir os nomes de tabela que ele sugere. Esse é um ponto positivo pois ele é bem flexível tanto na parte dos modelos quanto na hora de checar as permissões nos controladores.
A parte ruim desses módulos é que algumas coisas não muito intuitivas e a falta de documentação torna seu entendimento bem complexo.
Ele tem um gerador para auxiliar o seu uso mas que é MUITO mal feito! Ele copia alguns arquivos e isso pode fazer o seu projeto parar de funcionar. Sem contar o fato dele copiar algumas migrations e não coloca-las com a numeração correta.
Segundo a documentação do Active RBAC ele está sendo reinscrito porém o SVN dele está sem modificações por mais de um ano. Isso me leva a suspeitar que ele foi abandonado.
Ambos os plugins são bons, tem pontos positivos e pontos negativos mas não consigo considerar nenhum dos dois como uma solução definitiva para o problema da autorização. Infelizmente não consegui achar nenhum outro plugin melhor do que esses e resolvi partir para modificar o Active RBAC para resolver o cliente precisava usando o Restful Authentication. Gostaria de saber se alguém conhece algum outro plugin que seja bom.
Desde sexta feira ando pensando na possibilidade de fazer o meu próprio plugin para resolver esse problema só de uma certa forma seria reinventar a roda já que existem esses outros. Mas ao mesmo tempo eles não são perfeitos, então pensei em pegar o mais completo deles e fazer um fork.
Infelizmente não terei tempo para me dedicar sozinho a esse plugin já que eu estou envolvido em vários. Um dos motivos desse post é recrutar um time para desenvolver esse plugin junto comigo. Como eu sou uma pessoa muito chata eu tenho algumas exigências com relação ao plugin e não abro mão de nenhuma delas.
O plugin deve ter testes para TUDO.
Todo o código e a documentação deve ser em inglês já que será um plugin para uso global. Isso não impede uma documentação em português.
A documentação deverá ser bem detalhada e com muitos exemplos.
Vamos seguir o K.I.S.S.
Se você acredita na minha ideia, e concorda com as minhas exigências, entre em contato comigo.
Publicado por Marcos Tapajós há 5 meses.
Assim como o Vinícius, resolvi experimentar esse tal de Twitter. Criei uma conta e vou tentar acha uma utilidade para esse sistema tão popular. Até agora continuo achando inútil...
Tags tags | 2 comentários
Publicado por Marcos Tapajós há 5 meses.
Outro dia eu fiz um post anunciando que eu criei um projeto com uma coleção dos Bundles que usamos aqui na Improve It e nesse post eu citei e elogiei o Braid.
O Roberto Soares comentou no post sobre a nova versão do Piston e que ela estaria pronta, pendente apenas de liberar a gem. Eu já sabia dessa futura versão 2.0 do Piston mas não sabia em que estágio estava o desenvolvimento e resolvi ir dar uma olhada. Descobri que ele cometeu um pequeno equivoco pois não falta apenas gerar a gem. Ainda tem bastante coisa por fazer.
Resolvi ajudar no desenvolvimento pois esse é um projeto que me agrada bastante já que cada dia mais vejo projetos usando o GIT e eu também cai nesse mundo de GIT maníacos! Conversei com o Vinícius sobre o projeto e sobre a possibilidade da Improve It apoiar o projeto do Piston e ele topou.
Fiz contato com o François e ofereci nossa ajuda técnica e financeira. Ele gostou muito da oferta e aceitou de imediato. Ele ficou especialmente animado com o fato de a Improve It possuir um ótimo designer, o Leandro, que poderá fazer um site bonitinho para o projeto.
Com isso meti a mão na massa e o resultado é que algumas coisas que eu desenvolvi já estão no projeto e outras vão aparecer no próximo merge(quarta-feira).
Qualquer ajuda é bem vinda !
Tags git, piston, svn | 1 comentário
Publicado por Marcos Tapajós há 5 meses.
Já que o Vinícius citou o meu problema resolvi contar a história.
Meus problemas com o Banco Real começaram quando resolvi olhar minha fatura fechada através do Real Internet Bank e tomei um susto pois a fatura tinha o valor de R$ 4.931,25. Achei super estranho esse valor e resolvi somar todas as compras para provar que eu não estava maluco e comprovei minha teoria que havia algum problema pois eu tinha gastado R$ 1803,63.
Na mesma hora resolvi ligar para o banco para saber que estava acontecendo e tentar resolver logo de uma vez já que ainda faltavam 10 dias para o vencimento da fatura. O atendente me informou que havia algum erro no sistema e para eu acessar após as 24:00 pois seria feito o recalculo e estaria tudo funcionando. Nesse momento tive a certeza que eu estava com um MEGA PROBLEMA nas mãos e que certamente no dia seguinte estaria tudo errado. Vocês confiariam nessa informação que me foi passada ?
Pois bem, no dia seguinte eu acesso minha fatura pelo site e nada mudou. Tornei a ligar para o banco e expliquei que 0 + 1803,63 não era 4931,25 e senti que o problema era ainda mais grave já que ninguém sabia explicar o que estava acontecendo e só me informavam que esse era o valor devido. Acabei desligando e ligando novamente para ser atendido por alguém mais capacitado e após repetir a mesma explicação pela segunda vez no mesmo dia me fizeram abrir a fatura e somar com eles compra por compra. No final foi constatado que realmente tinha um erro e solicitaram o recalculo da minha fatura e que em 48 horas eu receberia um contato deles. Nesse momento faltavam 9 dias para o vencimento e fiquei bem tranquilo pois ao que tudo indicava o problema se resolveria.
Aguardei as 48 horas e tornei a ligar pois nada tinha mudado na fatura e me fizeram explicar tudo novamente, somar novamente tudo e no final aguardar 5 dias úteis pois seria resolvido. Eles simplesmente não sabiam o que estava acontecendo sempre me informavam que o problema era no sistema e que iam solicitar um recalculo novamente. Nesse momento entrei em pânico pois tive a certeza que ninguém iria resolver o meu problema já que o culpado era o Sr. Sistema !! Só me faltou pedir para deixar eu entrar no código fonte do sistema para ver o que acontecia. Garanto que com a minha total ignorância no sistema deles eu estava no mesmo nível de conhecimento das pessoas que me atenderam. Estive na minha agência e a minha gerente ficou de resolver e me ligar !
Após alguns dias recebi a fatura pelo correio e descobri o que estava acontecendo !!! No mês de Abril o maldito banco resolveu que eu era um cliente VIP e me mandaram um super Cartão Platinium, cheio de vantagens e esse super cartão era o culpado de todos os meus problemas. Com a fatura na mão constatei que praticamente todas as minhas compras estavam duplicadas e as despesas dos cartões adicionais contavam no meu nome e no nome do dependente.
Me restava saber o porque isso estava acontecendo. Então liguei novamente para o banco e após ficar alguns minutos explicando tudo novamente constatei que eles ainda não haviam "conversado" com o Sr. Sistema para saber o que estava acontecendo. Até agora eles não sabiam que as compras estavam duplicadas !! Tive que explicar que possivelmente o problema estava na hora que transferiram as compras do cartão velho para o novo cartão. Lembram quando eu falei da minha ignorância sobre o sistema deles ? Enfim, lá estava eu ensinando a eles onde procurar o problema. Após uns 40 minutos ESPERANDO eles confirmaram que realmente isso tinha acontecido e para eu aguardar que seria resolvido dentro do prazo de 5 dias informado anteriormente.
Como era previsível, chegou a véspera de pagar e o problema permanecia. Cheguei do trabalho e resolvi ligar novamente para o banco para saber o que eu deveria fazer para não atrasar o pagamento. Eles me informaram que o problema ainda não estava resolvido e para pagar o valor que eu considerava devido. Questionei que ele não iam me cobrar juros e fui informado que não. Vocês acreditaram nisso ? Eu não. Eu estava cansado, cheio de coisas para fazer e resolvi ir dormir já que no dia seguinte eu levantava cedo. Afinal de contas, meu problema estava resolvido, bastava pagar o valor devido no dia seguinte !
Amanheceu e eu não fui trabalhar pois estava passando muito mal. Resolvi pagar minha fatura de manhã e me livrar disso logo. Na hora de pagar descobri que não conseguia pagar pois o valor de R$1803,63 era inferior ao mínimo que veio na fatura errada ! Após mais uma ligação descobri que eu deveria pagar o que eu considerava devido mesmo explicando que o sistema se recusava a receber. Deadlock !
Perdi a paciência, liguei para minha gerente e nem me lembro quantas besteiras eu falei para ela já que ela nunca me ligou como havia prometido quando estive na agência. Completamente revoltado liguei para a minha advogada para iniciar um processo conta o banco e ela me instruiu a fazer o pagamento em juizo na CEF. Lá fui eu, passando mal, para uma agência da CEF para fazer o depósito. O atendimento na CEF merece um post a parte ! Tive que ensinar ao gerente o que era um depósito em juizo !
Com o deposito feito, reuni todos os documento e enviei à minha advogada que deu entrada no processo. Tive que ir a minha agência solicitar que eles assinassem um documento confirmando que estavam cientes que a fatura estava paga em juizo. Fui atendido pelo meu antigo gerente, que é um amigo, e de quem não posso reclamar de NADA. Se tem uma pessoa para elogiar nesse banco é ele ! Só que ele não pode nada contra o Sr. Sistema !
Após tudo isso veio aquele alivio que estava tudo feito e agora bastava esperar nossa "justiça" trabalhar. Mas essa história ainda teve um novo capitulo quando na ultima sexta feira descobri que o banco havia debitado na minha conta os R$ 4.931,25 pois eu não tinha pago a fatura. Com isso entrei em pânico pois com isso eles me colocaram no chegue especial, sem nenhum centavo disponível. Como eu havia me mudado no dia anterior eu tinha alguns chegues para compensar que iam voltar sem fundo ! Quase tive um ataque ! Ainda bem que meu antigo gerente estava na agência e devolveu meu dinheiro com apenas um telefonema. Obrigado Felipe !
Vale lembrar que esse negocio de descontar a fatura da sua conta quando voce não paga é ILEGAL. Isso virou uma segunda ação contra o banco ! Agora só me resta esperar o próximo erro deles !
Sinceramente, eu não entendo ! Eles sabem que estão errados e preferem que eu entre na justiça, peça uma indenização do que resolver de forma amigável um erro deles ! Se alguém entender me explica por favor !
É lamentável ver o transtorno que um SISTEMA mal feito, possivelmente sem testes, causa a uma pessoa que NUNCA atrasou um dia o pagamento e que SEMPRE pagou INTEGRALMENTE a sua fatura. Nessas horas fico com medo dessa tal de informática e entendo porque a minha avó não confia em computadores. Definitivamente os computadores vieram para solucionar os problemas que nós não tínhamos antes deles serem criados !
Tags tags | 9 comentários
Publicado por Vinicius Manhães Teles há 5 meses.
Em homenagem ao último post:
Artigos antigos: 1 2
agile brazilianrails conferência extreme programming fotos java lean plugin podcast produto rails refactoring ruby scrum teste treinamento vídeo workshop xp xprio

