Hoje o Lucas Renan entrou em contato comigo para tirar uma dúvida sobre o funcionamento do Couchrest e acabei tomando conhecimento de um trabalho que ele vem fazendo e que é muito útil para a comunidade Brasileira. O Lucas está traduzindo a documentação do CouchDB.
Hoje lendo a lista rails-br me deparei com uma colocação sobre Haml ser mais lento que HTML(entendi que a pessoa queria dizer ERB) e isso me fez relembrar que no início do Be on the net eu e o Vinícius fizemos alguns benchmarks comparando ERB e Haml.
Na época nossos benchmarks indicaram que o Haml era mais rápido que o ERB. Cabe destacar que a nossa escolha NÃO FOI por causa de performance, já que lembro bem que migramos primeiro e fizemos os testes depois. Motivado pela mensagem na lista resolvi refazer os benchmarks e mostrar os números.
Eu estava certo que o Haml se sairia melhor que o ERB mas em 5 minutos eu fiz um código para comparar os dois e descobri que o ERB se sai bem melhor.
Código utilizado
Resultado
Estava tentando me lembrar como foi feito o nosso primeiro benchmark mas não tenho a menor idéia. Não sei se fizemos algo errado ou se os valores eram diferentes naquela época.
Fiquei intrigado se com códigos mais complexos essa performance poderia ser diferente e se isso justificaria o resultado do nosso primeiro benchmark. Resolvi fazer uns testes no Be on the net e o resultado novamente foi mais favorável ao ERB.
Por se tratar de um produto comercial eu não poderia mostrar os códigos que eu utilizei. Então resolvi escrever uns exemplos mais complexos mas desisti após fazer algumas pesquisas no google e ver que outras pessoas já fizeram o mesmo teste e todos obtiveram resultados semelhantes.
O ERB é mais rápido porém esse tipo de conclusão é bastante perigosa e não devemos olhar apenas esses números para decidir sobre usar ou não o Haml. Dificilmente o gargalo da sua aplicação será apenas esse render e provavelmente você poderá resolver todos os seus problemas de performance sem a necessidade de pensar nesses números. Se você está tendo problemas com a performance da sua aplicação sugiro que assista a série Scaling Rails.
Se hoje eu tivesse que iniciar um projeto novo não pensaria duas vezes e usaria o Haml. Basicamente o Haml é menos verboso, sua sintaxe é bem amigável e ainda nos protege de cometer pequenos erros no HTML.
Abaixo você pode ver a gravação da minha palestra no evento. A minha palestra teve como objetivo mostrar um pouco sobre banco de dados não relacionais em especial sobre o CouchDB.
Na última sexta feira de manhã fui surpreendido por uma ligação do meu amigo Junior da qual só me lembro da primeira frase dele: "Marquinhos, o Vareta morreu!". Sei que conversei mais coisas com ele só que não me lembro de absolutamente nada e essas palavras ainda estão ecoando na minha cabeça.
Fiquei completamente chocado e não quis aceitar, entrei imediatamente no site da nossa comunidade e vi que todos estavam comentando sobre isso. Poucos minutos depois o Léo me ligou contando a notícia e nesse momento eu acho que a ficha caiu.
Eu estava com a minha viagem para o Ceará on Rails marcada para o final da tarde mas eu não queria mais embarcar. Eu estava realmente me sentindo muito mal e não estava no clima de viagem e consegui cancelar a minha viagem.
Durante toda a sexta feira fiquei acompanhando as notícias que nos eram passadas via Motociclistas Cariocas e tomei dimensão de como o nosso amigo era querido. Cada um que sabia da trágica noticia falava um pouquinho do nosso amigo e fui me lembrando dele e ficando cada vez pior.
O acidente
Na quinta feira de tarde o Hugo foi fechado por um caminhão que passou por cima da sua perna quebrando-a. O Hugo chegou a falar com o pai dele sobre o acidente porém acho que ele não sabia da gravidade da sua fratura. No hospital o Hugo foi colocado em coma induzido e recebeu 5 transfusões de sangue porém acabou não resistindo e veio a falecer durante a madrugada.
O motorista do caminhão fugiu sem prestar socorro e sua placa foi anotada por uma testemunha. Descobrimos que o caminhão é de uma empresa de alumínio de Belford Roxo. Perder um amigo ou um familiar já é algo que abala a gente e nos deixa muito triste. Porém quando se perde um amigo de uma forma tão estúpida e trágica parece que faz tudo ser muito pior.
Hoje foi o enterro dele e eu não fui!! Até hoje eu só fui a um enterro e não foi uma experiência muito agradável. Hoje em dia quando eu me lembro dessa pessoa tenho como lembrança principal o enterro e a tristeza de todo mundo. Por isso mesmo prefiro não ir a enterros e guardar na minha mente as imagens dos momentos alegres que eu vivi com a pessoa.
Por isso eu optei por não ir ao enterro do Hugo e vou apenas na sua missa.
Andar de moto
Tenho certeza que muitos aqui vão vir com discursos de que moto é perigoso e que se ele tivesse de carro ainda estaria vivo e tal. Sinceramente, esse não é comentário que eu gostaria de ouvir nesse momento! Nós sabemos que andar de moto é perigoso, nunca afirmamos o contrário e vivemos sim desafiando o perigo!
Quem não tem ou nunca teve moto jamais entenderá essa nossa paixão!
A moto é um veiculo como qualquer outro e o que torna ela EXTREMAMENTE perigosa é a falta de respeito que as pessoas tem pelos motociclistas. Os motoristas se esquecem que existe uma VIDA em cima da moto! Alias, elas se esquecem que existem outras vidas nos outros veículos. Aqui no Rio as pessoas não tem NENHUMA educação no TRANSITO! Não tem o menor RESPEITO pelos outros!
Claro que várias pessoas vão falar que nós motociclistas estamos errados, fazemos isso e aquilo. Nós temos nossa parcela de culpa sim, mas coloque a sua mão na consciência e pense um pouco no que você tem feito no transito! Você olha no retrovisor ao mudar de pista? Você sinaliza quando vai mudar de pista? Você corre feito um louco? Você anda colado na traseira dos outros veículos? Você ultrapassa uma moto passando grudado nela?
Por favor, não seja hipócrita dizendo que não faz nada disso!!! Todos nós fazemos, inclusive EU. Isso está certo certo?? NÃO!!!! E eu estou tentando fazer a minha parte e mudando meus hábitos!
Eu poderia ficar horas aqui falando sobre esse assunto mas melhor eu encerrar por aqui pois a revolta está grande demais e prefiro falar sobre o meu amigo.
Falando um pouco sobre o Hugo.
Basicamente o Hugo era um jovem de 27 anos que foi tragicamente arrancado do nosso convívio e que vai fazer muita falta!
Conheci o Hugo em 2005(se eu não me engano) através dos Motociclistas Cariocas e apesar de não ter tanto tempo assim ele fazia parte daquele grupo de amigos que consideramos nossa família. Durante todos esses anos fizemos diversas viagens juntos, fomos a vários churrascos e gastamos muitas horas de bate papo. Esse "muleque" vai fazer muita falta!!
Quando o Hugo entrou no grupo ele tinha uma XTZ e eu lembro de um passeio que nós fizemos para o Parque da Cidade em Niterói onde ele ficou empinando a motoca e a gente se divertindo com "aquele louco". Esse passeio ficou marcado pelo fato dele ter comentado sobre uma garota que ele estava paquerando e quando ele descreveu ela descobrimos que o pai dela estava sentado na nossa mesa! Nos divertimos muito "botando pilha" nele e nos pais da menina. Eu e ele sempre recordávamos desse passeio e ficávamos rindo dessa história!
Esse era o Hugo meio louco, um pouco irresponsável mas que nunca colocou ninguém do grupo em risco.
Em outubro de 2005 tínhamos marcado de ir ao Salão Duas rodas e no dia da viagem choveu muito e todo mundo "amarelou" e lembro que o Hugo me ligou dizendo: "Partiu?". Diante de tanta animação eu só podia responder que estava dentro e liguei para mais alguns amigos e partimos para em SP. Foi uma das melhores viagens que eu fiz na minha vida e nós éramos capazes de ficar conversando horas sobre essa viagem.
Esse era o Hugo que topava qualquer coisa, que queria era estar com os amigos se divertindo.
Outra história que eu tive com o Hugo que eu me lembro bem também foi quando marcamos uma corrida de Kart e nos envolvemos em um acidente. Logo depois desse acidente nossa amizade ficou um pouco abalada, discutimos na comunidade algumas vezes e chegou a rolar um grande bate boca por telefone. O Hugo foi extremamente imprudente e provocou um acidente que lesionou os ligamentos do meu tornozelo e eu passei mais de um mês andando de muleta e algum tempo fazendo fisioterapia.
Naquela época eu culpei ele pelo acidente só que hoje em dia eu já não o culpo mais. Ele foi imprudente mas eu também poderia ter evitado o acidente se eu não fosse tão "fominha". Tenho a minha parte de irresponsabilidade também. Pouco tempo depois as coisas já estavam normais entre a gente e parecia que nada tinha acontecido. Recentemente a gente voltou a conversar sobre esse acidente e fiquei bem feliz quando me disse que sabia que tinha feito besteira e admitiu o erro dele.
Esse era o Hugo competitivo, teimoso e um pouco cabeça dura. Mas também é o Hugo que soube admitir o seu erro. Acho que esse é o Hugo que eu mais me identifico.
Durante todos esses anos eu sempre comentava com ele que tinha vontade de fazer trilhas de moto e que estava ficando cansado de só pegar estrada. Ele sempre me dizia que era algo apaixonante e recentemente eu comprei uma moto para isso. Porém a moto não estava 100%, precisava fazer algumas coisas e ele se prontificou em ajudar. O Hugo tinha uma pequena oficina onde consertava as motos dos amigos porém como era bem longe da minha casa eu estava inclinado em não fazer o serviço com ele. Foi quando ele me ligou falando que estava vindo na minha casa buscar a moto e levou ela para oficina.
A moto passou uma semana na oficina recebendo "um carinho todo especial" e TODOS os dias ele me chamava no MSN(isso quando não ligava) para contar o que tinha feito na moto. Quando a moto ficou pronta ele veio trazer aqui em casa e acho que nunca vi o Hugo sorrindo tanto. Ele estava com um sorriso de orelha a orelha por ter preparado o motor da minha moto e estava super feliz de voltar a pilotar uma trail. Desde esse dia eu passei a encher o saco dele TODOS os dias para comprar uma trail e ele estava inclinado a comprar. Isso me deixa bem frustrado, pois não tive a oportunidade de fazer uma trilha com ele.
Esse era o Hugo prestativo que estava sempre pronto a ajudar quem precisasse, nem que para isso ele tivesse que se sacrificar. Ele era "o socorro" do grupo, estava sempre consertando as motos da galera e ajudando quem precisava.
Esse do vídeo era o Hugo bem humorado, que estava sempre tirrando sarro do amigos. Era o Hugo que alegrava os nossos passeios e que falava sem parar!
Eu seria capaz de ficar horas e horas escrevendo muitas histórias que eu vivi com o Hugo e relatando os nossos muitos passeios porém vou encerrar por aqui tomando a liberdade de reproduzir a descrição que ele mesmo criou sobre no Orkut. Acabei de ler essa descrição pela primeira vez e estou aqui com os olhos cheio de lagrimas lembrando do meu amigo.
O Hugo por ele mesmo
"quem sou eu: Eu sou o cara que vou em busca dos meus sonhos, por mais difíceis e loucos que eles sejam.
Eu sou o cara que muitas vezes é julgado pela capa, como um livro, porque para muitos o que interessa é a forma e não o conteúdo. Sei também que cometo esse mesmo erro, mas sou capaz de admitir e me redimir.
Eu sou um gigante, não pelos 1.95 metros que tenho, mas sim pelo enorme coração, pela maior vontade de ver qualquer pessoa bem. Sou gigante por não me permitir ser egoísta, por querer o melhor para qualquer pessoa, esteja ela do meu lado ou não. Dizem que sou gigante por ter um coração enorme.
Eu sou o cara apaixonado pelas motos, mas nem são tudo na minha vida como muita gente acredita. Elas são de metal, vão e vem a todo momento. Elas não tem sentimento algum, mas são meu passaporte para momentos de muita alegria. Não importa o lugar, não importa a distância e muito menos a cilindrada: elas me levam e me trazem de volta, porém são apenas motos e nada além disso
Eu sou o cara que apesar de ter 27 anos tem o coração frágil como de uma criança. Me machuco fácil, choro quando me fazem mal e não escondo isso de ninguém, mas levanto com a mesma energia e o mesmo sorriso de uma criança que quer crescer e ser feliz nesse mundo.
Eu sou o cara que detesta estudar, mas sei que essa é a saída para ser alguém no futuro. Trilho meus caminhos com toda dificuldade, mas dou o meu melhor para ser alguém.
Eu sou o cara que passa por dificuldades diversas, mas que faz de tudo para contornar isso sem atropelar o mundo. Eu sei esperar, eu sei o momento certo de fazer quase tudo, e sei os melhores meios de fazer com que tudo corra bem.
Eu sou o cara que sei perdoar o meu pior inimigo e talvez por isso muitos acham que sou bobo. Na real, prefiro fazer o melhor, não me importo com o que aconteceu, faço de coração e vou na minha estrada
Eu sou o cara que adora música, que sempre pensa em alguma música para explicar cada momento e fase que estou passando. Eu sou o cara que faz das músicas uma alegria a mais nessa vida.
Eu sou o irmão do Edmar e do Gustavo, os irmãos que ganhei nas brincadeiras de férias e sem eles muitas coisas não teriam explicação. Eu sou o irmão do Léo e mesmo depois de longos 10 anos do colégio estamos aí a toda hora. Eu sou o amigo da Rê, que tira ela da cama pra atender o telefone, que briga com ela por demorar a atender. Ela fica brava, me xinga, mas eu sei que sempre posso contar com ela. Também sou o amigo do Caetano gaúcho meio kilo pra viagem, que a cada vez que fala comigo são 10 minutos rindo e um minuto sério. Eu sou o amigo do Diego que passa tempos aqui com altos papos sobre as motos, os rolés e os amigos. Eu sou o cara que ignora tudo pra fazer a Fer estar bem. Eu sou o cara que não abre mão do sorriso e o olhar da Paola. Eu sou o cara que esquece e ignora todos os limites e dificuldades pela felicidade da Nah. Eu sou o cara que sempre esquece de ligar pra Fabi, pra Dani e de deixar mensagem pra Carol, mas que mantém as 3 sempre dentro do coração. Eu sou o Hugo que um dia ganhou de presente uma famíla de Motociclistas Cariocas e de Moto Sapiens. Eu sou o Hugo que ganhou também uma família Motonline. Eu sou o Hugo do Street Sampa, do GS500 online, do Parati Clube, de Vila Isabel. Eu sou o amigo da Lininha que me dá bronca por não arrancar os sisos de uma vez por todas. Eu sou o amigo da Lorena, que sente saudades das conversas com ela que em tão pouco tempo se mostrou uma das melhores pessoas que entrou na minha vida e que hoje ta muito feliz com o meu irmão Edmar, e eu fico feliz por ver os dois muito bem. Eu sou o amigo do Alexandre, que um dia comprou uma DT200R ano 2000 de tanto eu perturbar e falar dessa moto. Eu sou o Hugo que não fica um dia sem dizer ao menos um oi pra Silvia. Eu sou o Hugo que faz o melhor pra ser feliz com todos os amigos, estejam eles mencionados aí ou não. Eu sou o Hugo que tem os melhores amigos do mundo e que não vive sem eles.
Eu sou completamente louco, mas um louco consciente."
Passado alguns dias do Rails Summit 2009 e do after Rails Summit resolvi fazer uma pesquisa de opinião sobre as palestras com o intuito de matar a minha curiosidade sobre o que as pessoas acharam das palestras e comparar com a minha opinião.
Antes de analisar os gráficos vejamos algumas considerações importantes:
Foram 89 respostas.
Na primeira versão da pesquisa eu tinha esquecido de por uma opção, por isso descartei todas as respostas dadas antes de por esse opção.
Para a pesquisa ficar simples de ser respondida eu não permiti comentários sobre as palestras e deixei para pedir feedback aqui no blog. Então, se possível deixe seus comentários sobre as palestras que você assistiu.
A minha palestra
Foto tirada pelo Guilherme Chapiewski.
Os resultados da minha palestra me surpreenderam bastante pois eu não estava esperando receber um número tão alto de qualificações "excelente" e "good". Alias, não apenas o resultado da pesquisa, mas o feedback que eu colhi no evento, antes de depois da minha palestra.
Por se tratar de um tema muito novo(e polêmico) eu imaginava uma taxa de rejeição muito maior ao assunto e ter uma meia dúzia de gatos pingados no auditório. Porém antes mesmo da palestra começar algumas pessoas vieram conversar comigo e quando a palestra começou vi algumas pessoas bem interessadas no assunto.
O mais interessante para mim foi que após a palestra várias pessoas conversaram comigo e me contaram suas experiências usando ou brincando com o CouchDB. Fiquei impressionado com a quantidade de pessoas que já olharam para o CouchDB e o MongoDB e tem intenção de usar em projetos de vários portes.
Originalmente a minha palestra no Rails Summit seria sobre escalabilidade só que o Akita me pediu para falar sobre CouchDB e eu resolvi aceitar essa mudança.
Porém ela chegou a ser divulgada oficialmente com o tema antigo e com um pequeno erro (culpa minha) na descrição e isso foi até comentado de forma irônica no Twitter. O erro cometido foi escrever hits no lugar de pageviews.
Como esse é um erro grave e muita gente confunde esses conceitos resolvi escrever esse post para esclarecer.
Hit
Cada arquivo enviado para o browser pelo servidor é um hit.
Esses arquivos podem ser imagens, css, html etc.
Existe uma pequena confusão com relação a hits pois muitos sites utilizam alguns contadores que na verdade não mostram o número de hits no servidor e sim visitas sem levar em conta a questão de visitantes únicos. Mas isso é um assunto que foge ao escopo do que eu quero explicar nesse post, sugiro que leia esse ótimo artigo sobre isso
Pageview
Pageview é uma visita ao seu site, isto é, uma visualização do
seu website independente do número de hits necessários pelo
browser para compor essa página.
Conclusão
Hits não são uma maneira confiável para medir o tráfego do seu site, porém saber que o seu site muitos hits e poucos pageviews é muito útil pois indica que seu site está muito pesado e que você deve trabalhar para diminuir o número de requests necessário para compor uma página.
Em outubro teremos o Rails Summit 2009 que acontecerá nos dias 13 e 14 de outubro, no Centro de Convenções Anhembi, em São Paulo. A última edição reuniu mais de 550 participantes e neste ano espera um público ainda maior.
Serão dois dias inteiros de palestras informativas e você terá a oportunidade de encontrar com grandes profissionais de todo o mundo.
Assim como no ano passado o pessoal do Rio está se organizando para ficar todo mundo no mesmo hotel. Ano passado eu publiquei os dados do hotel e lá bombou.
Dessa vez vamos ficar no hotel do evento. Para quem se interessar o site é:
No pós evento voltaremos para o Rio trazendo alguns dos palestrantes gringos para passar alguns dias na cidade maravilhosa. No ano passado o pessoal da Surgeworks, Redeparede e o Chris (github) vieram e nos divertimos muito. Se alguém mais se interessar nesse tour é só entrar em contato comigo.
Publicado em 03 de Setembro de 2009
(1 comentário)
Procurando por mais alguma coisa? Veja se encontra no Histórico.
A Redeparede.com está precisando de um desenvolvedor para um projeto que usará a nossa API para fazer publicação de anúncios em massa. Mais detalhes sobre o projeto pode ser obtido aqui.
Se alguém tiver interessado por favor, entre em contato comigo pelo formulário de contato.
Outro dia eu estava conversando um velho amigo sobre o que cada anda fazendo da vida e ele me contou que está pensando em pedir demissão de uma dessas grandes empresas. Após ele falar por quase meia hora sobre vários problemas que eles tiveram no trabalho e se mostrar extremamente frustrado eu me lembrei que o Vinícius sempre falava que a maior parte das pessoas pedem demissão por insatisfação com o seu gerente imediato e definitivamente esse é o caso dele.
A parte triste dessa conversa foi constatar que tudo que ele reclamava são exatamente as mesmas coisas que já me fizeram pedir demissão e que eu vejo acontecer com uma certa freqüência. Basicamente ele tinha um excelente colega de trabalho, muito bom tecnicamente que foi promovido a gerente e desde então tudo passou a ser um inferno.
Isso acontece o tempo todo pois no Brasil esse acaba sendo o caminho natural para um desenvolvedor que almeja ganhar mais. Acredito que isso está enraizado na nossa cultura que jamais um "recurso do projeto" pode vir a ganhar igual, ou até mais, que o gerente do projeto. O grande problema disso é que freqüentemente as empresas perdem um excelente desenvolvedor para ganhar um gerente medíocre que dependendo das suas atitudes vai levar a empresa a perder ainda mais bons desenvolvedores.
Eu realmente acredito que existem pessoas com vocação para serem gerentes(lideres) enquanto outros não e as empresas deveriam aprender a valorizar as habilidade de cada um.
Nessa conversa surgiu a clássica pergunta sobre o que é ser um bom gerente e definitivamente acredito que essa pergunta não tem resposta única, o que existem
são características positivas e negativas que em conjunto podem ou não compor um perfil de um gerente admirável que consegue ter sucesso no seu trabalho.
Existem muitas características que eu poderia citar, e tenho certeza que cada pessoa que ler esse post será capaz de adicionar no mínimo mais uma, porém vou citar algumas características de um gerente que eu tive.
Eu tive um gerente chamado Gilson, que eu admiro profundamente como gerente, que indiretamente me ensinou algumas coisas pelas suas atitudes com a equipe e perante os nossos clientes. Na época que eu trabalhai com o Gilson eu fazia parte de uma equipe muito jovem(eu era muito jovem), composta de muitos estagiários em fase de formação técnica e profissional e tenho certeza que todos nós levamos muitas coisas que aprendemos com ele para o mercado.
Normalmente o cargo de gerente é um cargo bastante ingrato, pois ele está em uma posição onde ele tem que defender os interesses e o bem estar da sua equipe mas ao mesmo tempo atender aos anseios do seu cliente. O Gilson era um gerente que conseguia fazer isso muito bem, ele defendia sua equipe muito bem das interferências externas mas ao mesmo tempo sabia cobrar eficiência da equipe.
O nosso ambiente de trabalho era bastante ingrato para ele pois nós éramos uma equipe com alto nível técnico, muito cobiçada e a nossa realidade não permitia ter salários para competir com o mercado sendo que o quê segurava as pessoas lá eram as oportunidades de aprendizado e crescimento que ele nos oferecia. Ele defendia a equipe e brigava por salários maiores mas infelizmente ele não tinha super poderes.
Sinceramente não sei se esse aspecto tinha alguma influência na forma dele gerenciar a equipe, mas o fato é que em um ambiente desses se ele fosse um gerente ruim certamente a equipe debandaria rapidamente e não era isso que acontecia. Alguns acabavam saindo rápido, mas muitos ficaram anos lá com ele.
Por algumas vezes a nossa equipe foi imatura e cometeu alguns erros que deixaram o Gilson em uma situação desconfortável e a postura dele sempre foi de "blindar" a equipe, isto é, ele absorvia o impacto gigantesco do erro e quando repassava para a equipe era em uma intensidade muito menor. Eu não me lembro de ter tomado nenhum esporro do Gilson, lembro apenas de conversas que ele teve com a equipe, expondo os problemas sem querer buscar culpados.
Na minha opinião faz parte do trabalho de um bom gerente zelar pelo bem estar da equipe, nem que para isso ele precise dar a cara a tapa e tomar o esporro sozinho. Mas para isso funcionar é fundamental entender que não adianta nada tentar achar culpados depois, mas sim agir para que o erro não aconteça novamente e de alguma forma levar isso como um aprendizado para a equipe.
Todo mundo sabe na ponta da língua dizer como o gerente deve agir ou como deveria ter agido em todas as situações de problemas, mas se esquecem que ele também deve agir quando as coisas estão indo bem. Um bom gerente também deve saber elogiar e bonificar sua equipe quando ela está fazendo o seu trabalho corretamente.
Enfim, essa é a minha visão do Gilson e de características que e enxergo como fundamentais a um bom gerente. O Gilson não é uma pessoa perfeita e nem um gerente sem erros, porém analisando as características positivas e negativas na minha opinião ele pode ser considerado um bom gerente.
Definitivamente a culpa é e sempre deverá ser do gerente, cabe a ele decidir como ele vai agir com essa culpa.
São 3 horas da manhã e acabei de chegar da Festa Framps e não vou conseguir dormir tão cedo dada a minha revolta e resolvi escrever para desabafar. Se você tem mais o que fazer e não quer escutar meu desabafo sugiro que pare por aqui!
Por volta da uma da manhã quando me despedi do pessoal estava imaginando voltar para casa tranqüilo para ter uma ótima noite de sono após momentos agradáveis em companhia dos amigos mas isso foi apenas o início de uma péssima noite.
Quando cheguei no meu carro e acionei a trava no controle remoto notei que o alerta não piscou como de costume e logo imaginei que tinha esquecido o carro aberto(fiz isso inúmeras vezes) mas vi a porta toda estourada e constatei que tinha sido um furto. Logo pesei no rádio, mas ao abrir a porta vi que destruíram o painel do meu carro. Nesse momento o sangue ferveu já bati a porta do carro com um ódio indiscritível.
Fui obrigado a voltar para a Festa para me acalmar e partir para a delegacia. Sei que essa ocorrência não vai servir de nada, duvido que alguém um dia vá ser preso por roubo de rádio mas fiz meu dever de cidadão e virei estatística.
Queria agradecer ao Guilherme Chapiewski e ao Henrique que foram para delegacia comigo e me ajudaram a ficar mais calmo.
Roubaram meu rádio novinho, destruíram a porta do meu carro, quebraram todo meu painel, levaram parte dele, roubaram duas caixas de ferramentas muito boas que estavam na mala, um carregador de celular e a lanterna que eu ganhei do Grupo Santa Isabel durante o projeto Lúcidus.
Não podia levar apenas o rádio sem destruir todo meu painel? Não podia quebrar o vidro ao invés de destruir a porta? PQP! E o corno ainda deixou o controle do rádio!
Segunda feira terei uma noção real do tamanho do prejuízo, mas só o fato de ter que trocar a porta já me diz que será um gasto violento.
É muito revoltante você trabalhar feito um corno para vir um fdp desses, destruir seu carro e te deixar com um prejuízo gigantesco.
Meu desejo é que esse cara venda meu rádio, compre tudo em drogas e morra de overdose! O que me serve de consolo é que bandido morre cedo.
Alguma fotos:
Desculpem toda a revolta, mas tenho que me manifestar! Não posso ficar calado.
Passado o Oxente Rails já é hora de pensar no próximo evento.
O Rails for Kids é uma maratona de palestras on-line que será realizado no dia 12/09/2009, e contará com grandes nomes da comunidade Ruby on Rails do Brasil e de fora.
São 14 palestras on-line e ao vivo durante o dia inteiro, usando um ambiente de eventos multimídia onde os palestrantes ministrarão seus temas através de recursos de audio, vídeo, slides e chat.
Qualquer pessoa, empresa ou faculdade pode participar do evento, para isto basta fazer uma doação de um valor simbólico de R$ 30,00 para ter acesso as palestras ao vivo e suas gravações que estarão disponíveis uma semana após a realização do evento.
Todo dinheiro arrecadado será doado ao Cotolengo de Mato Grosso do Sul.
Eu fui convidado pelo meu amigo Carlos, da e-Genial, e farei uma palestra em conjunto com o Vinícius sobre CouchDB.
A Rails Summit ficou marcada como uma das melhores conferências que já foi realizada no Brasil, com uma grade de palestrantes excelente e uma organização formidável. Inspirado na Rails Summit, o pessoal de Natal organizou o Oxente Rails que nesse final de semana reuniu um time de primeira e com uma organização excepcional.
Hoje no aeroporto eu e o Akita estávamos comentando que todas as nossas expectativas foram superadas e que eventos como esse nos fazem sentir prazer em dormir pouquíssimas horas, viajar em vôos intermináveis e ficar longe na nossa família em pleno dia dos pais.
Tenho certeza que cometerei uma enorme injustiça em elogiar três pessoas da organização e não citar todas as outras mas não posso deixar de parabenizar o Elomar e o Paulo Fagiani por nos proporcionar momentos tão agradáveis e por organizar um evento que com certeza entrará para o calendário de todo Railer que se preze.
Além deles quero fazer um agradecimento especial ao Aroldo, que foi o nosso motorista durante o evento e que sem ele com certeza a gente não teria feito metade das coisas que nós fizemos.
Queria agradecer a nossa fotográfa Joice, que tirou umas mil fotos minhas! :-)
No momento estou no avião voltando para casa e tentando lembrar de todas as palestras para tecer meus comentários positivos e negativos porém está sendo um pouco complicado lembrar de tudo, quem me conhece mais de perto sabe que eu tenho uma péssima memória, porém eu vou tentar comentar o que me vem a cabeça no momento tanto sobre as palestras quanto sobre a organização.
Dia 0
Chegamos um dia antes e não vou me alongar muito nos comentários sobre esse dia, vejam essas fotos e esse vídeo que vocês vão entender. E ainda teve night!
Dia 1
Ano passado eu conheci o Elomar no Rails Summit quando ele roubou a cena na desconferência fazendo uma das melhores apresentações e tive certeza que aquele menino (acho que ele tinha 17 anos) tinha futuro. Lembro que ele veio todo tímido me pedir para tirar uma foto comigo como se eu significasse algo, como se eu fosse alguém famoso quando na verdade eu que estava orgulhoso de tirar uma foto com ele, afinal de contas, com apenas uns 15 minutos tive certeza que eu estava diante de uma pessoa que faria muito pela comunidade e com um potencial incrível.
Nesse final de semana ele me provou que eu não estava enganado, ele (sem desmerecer o Paulo e todas as outras pessoas envolvidas) organizou um evento de altíssima qualidade. Apesar de todos os elogios tenho que informar que ele também me decepcionou muito por não ter feito nenhuma palestra.
No primeiro dia eu e o Sylvestre fizemos uma palestra sobre desenvolvimento ágil que foi gentilmente cedida pelo Vinícius Teles e que provavelmente muitas pessoas já devem ter visto ele apresentar inúmeras vezes. Eu já li e escutei alguns comentário que eu copiei a palestra dele e que eu imitei ele apresentando mas eu encaro de uma outra forma e não estou nem um pouco incomodado com esses comentários.
Eu pensei em elaborar uma outra apresentação e não usar o material da Improve It porém se trata de uma material único, com diversas ilustrações e dificilmente eu conseguiria imagens para transmitir as mesmas informações e optei por pedir autorização dele para utiliza-lo. Tem alguns anos que eu trabalho com o Vinícius e estamos bastante alinhados nos nossos pensamentos e assisti essas apresentações muitas vezes (e fiz algumas com ele) sendo impossível não ser parecido, porém nunca vai ser igual e nem é meu objetivo. Não acredito que o Vinícius esteja chateado ou se incomodando com isso, porém se ele tiver com certeza irá conversar comigo. :-) Enfim, quero deixar claro que foi sim algo que muitos já viram, mas ainda assim achei válido apresentar.
Novamente a apresentação do Akita foi extremamente motivadora e creio que quem estava ali e não trabalha com Rails vai ficar com uma coceira terrível. O Carlos Brando foi extremamente feliz na escolha do tema da palestra dele e com certeza fez muita gente ver um pouco mais do poder do Ruby e entender porquê ele é o "maestro" por trás do Rails.
Outra palestra que me chamou bastante a atenção foi a do Yehuda sobre Rails 3 e isso gerou algumas conversas entre nós dois sobre o uso de CouchDB (via CouchRest) e o Rails 3 mas isso é assunto para outros posts.
Depois de um dia cheio de palestras não podia faltar um Hora Extra! Fomos para um bar chamado Saideira, bebemos muito e conversamos sobre tudo.
Dia 2
Na minha apresentação no primeiro dia eu contei uma história da fábrica de sandalhas para explicar como as pessoas podem encarar uma mesma situação como uma oportunidade ou como um risco(ou problema) e no segundo dia isso se materializou. Aconteceram problemas com alguns palestrantes e ao invés de encarar isso como um problema e prejudicar o evento o Paulo viu uma ótima oportunidade de improvisar e criar um evento ainda mais divertido.
Ele veio conversar comigo sobre a possibilidade de eu assumir esse tempo de alguma forma afim de evitar um buraco e eu tive a idéia de executar um jogo e mesmo sem ter a menor idéia do que eu planejava ele confiou plenamente. Porém seria impossível fazer esse jogo sozinho e foi nesse momento que eu chamei o Akita, o Mergulhão o Rafael para me ajudar. Eu estava extremamente preocupado de ser um fracasso, afinal de contas era muito mais gente do que eu estava acostumado mas correu tudo bem. Não vou explicar a idéia do jogo pois o Akita vai escrever um post bem pequeno sobre isso. :-)
Depois do jogo aconteceu mais um imprevisto surgindo mais tempo e novamente o Paulo chamou a gente para zonear o evento. Dessa vez um monte de gente subiu no palco para responder uma série de perguntas e eu propus ao Akita a gente ser mais informal e sentar no chão, ficando bem próximo de todos. Essa parte do evento foi sensacional, diversos pontos de vista, diversas opiniões e experiências.
Mas o que mais me chamou a atenção no último dia do evento foi a apresentação do Lark sobre o The Hashrocket Way. Ele não contou nenhuma novidade e nem nada que eu não conhecesse ou concordasse mas é sempre bom escutar mais pessoas falando a mesma coisa.
Novamente, depois de um dia cheio de palestras não podia faltar um Hora Extra! No mesmo lugar do dia anterior!
Dessa vez eu fiquei batendo papo por mais de 2 horas com o Lark sobre desenvolvimento ágil e foi super legal, pois ele é uma pessoa muito simpática e temos pensamentos muito semelhantes.
Dia 3
Hoje nós tivemos um almoço com as poucas pessoas que ainda estavam lá e foi bem divertido. Depois fui para o aeroporto com o Akita onde fiquei mostrando para ele Cadeia de Markov e suas aplicações. Acho que ele vai querer falar mais sobre isso em breve.
O pessoal
Definitivamente esse foi o diferencial do evento! A receptividade do pessoal de Natal foi fora de série.
Gostaria de destacar a presença do pessoal do Rio, Henrique, Eu, Mergulhão e o Rafael. Nós tocamos uma zona lá e fizemos de tudo para tornar o evento um big Hora Extra.
Conclusão
Preciso muito dormir, não escreverei mais nada hoje. :-)
Essa semana eu trabalhei para configurar meu mephisto para acomodar meu blog em inglês. Provavelmente não terei tempo de escrever todos os meus posts nos dois idiomas portanto não esperem que eles sejam iguais.
Vou tentar analisar cada post e fazer no idioma onde eu possa atingir um maior publico com ele e/ou onde a informação for mais relevante.
Semana passada eu e o Vinícius iniciamos o desenvolvimento de um sistema para ser usado internamente na Improve It e tivemos diversas surpresas com o uso do CouchDB. Basicamente ficamos impressionados como foi rápido evoluir do primeiro ao último protótipo sendo que estruturalmente os dados mudaram muito ao longo do tempo. Isso foi simples graças conceito de documento e por não precisar ficar manipulando esquemas.
O objetivo desse post era escrever sobre como muito mais fácil armazenar objetos no CouchDB simulando o que é feito usando o nested form do Rails. Porém no meio do caminho eu descobri que existem poucos materiais sobre CouchDB em português e resolvi escrever um pequeno post dando uma visão geral sobre o CouchDB e adiar o post original para o futuro.
Apesar de ser apenas um overview não existe muito mais coisa apara mostrar na questão de operações, é um banco muito simples e poderoso. Porém é uma quebra de paradigma e a ficha demora para cair, se é que já caiu na minha cabeça.
O CouchDB é um banco de dados orientado a documentos desenvolvido em Erlang.
Erlang é uma linguagem de programação criada pela Ericsson para aplicações distribuídas, tolerante a falhas e com alto poder de concorrência que se tornou opensource em 1998.
Todas as operações no CouchDB são feitas via RESTful Web Services. A maior parte das linguagens possuem ferramentas para lidar com Web Services que simplificam bastante o uso da API do CouchDB, embora seja extremamente simples lidar com essa API.
Existem quatro operações básicas (PUT, POST, GET, DELETE) para manipular documentos no CouchDB.
? Create: HTTP PUT /database/document_id
? Create: HTTP POST /database
? Read: HTTP GET /database/document_id
? Update: HTTP PUT /database/document_id
? Delete: HTTP DELETE /database/document_id
curl -X GET http://127.0.0.1:5984/addresses/kent-beck
{"error":"not_found","reason":"deleted"}
Analisando esses exemplos de consultas vemos que as consultas que fizemos ao CouchDB retornaram um parâmetro chamado "rev". No CouchDB os documentos são versionados, isto é, eles não são alterados diretamente, o que acontece é que criamos uma nova revisão com os dados atualizados.
No primeiro contato com esse conceito eu fiquei impressionado pois eu poderia rastrear facilmente todas as modificações em um documento porém não tinha me dado conta que esse conceito vai um pouco além dessa impressão superficial. Esse esquema de revisão substitui um dos grandes problemas dos bancos de dados relacionais, o lock.
No CouchDB não existe um lock tradicional, ele se baseia no conceito de lock otimista. Basicamente só podemos atualizar um documento se a revisão corrente no banco for igual a revisão que buscamos originalmente. Caso não seja o banco retornará um erro que deve ser tratado pelo programador.
Um dos grandes problemas dos bancos de dados relacionais é a dificuldade de "escalar" esses bancos. Essa dificuldade não quer dizer que esses bancos são piores que o CouchDB mas sim que eles possuem propósitos diferentes.
Os bancos de dados relacionais surgiram em um momento anterior a internet, onde o número de acessos ao banco era algo muito mais previsível. No mundo pós internet as coisas mudaram, um banco de dados pode receber milhares de acessos por segundo sendo necessário mais de uma instancia para servir aos usuários. É nesse momento os bancos de dados tradicionais começam a se tornar o gargalo e que o CouchDB pode ser a solução.
Como o CouchDB responde através de uma interface de Web Services é extremamente simples colocar um load balancer na frente de um cluster de bancos e distribuir a carga entre eles. Trata-se de um modelo de escalabilidade bastante conhecido e difundido.
Esse esquema resolve o problema de distribuir o acesso a todos os bancos do cluster, porém ainda existe o problema de replicar os dados entre todos os bancos. No CouchDB é extremamente simples fazer replicação de dados, basta uma única chamada HTTP para invoca-la.
curl -vX POST http://127.0.0.1:5984/_replicate -d '{"source":"addresses","target":"http://10.10.10.2:5984/addresses-replica"}'
As views são utilizadas para extrair dados dos documentos e são baseadas nos conceitos de MapReduce. A função de MAP extrai os dados dos documentos enquanto a função de REDUCE executa cálculos sobre os dados retornados pela função de MAP. Views podem ser permanentes ou temporárias.
Veja alguns exemplos de views:
Map View
Map View
MapReduce
Conclusão
Se você tem problemas com banco de dados, não gosta de banco de dados ou está cansado de perder tempo estude um pouco sobre CouchDB. Porém realmente acho que você deveria estudar E USAR um pouco antes de rebater dizendo que tudo é fácil com bancos relacionais.
OBS: Todas as imagens utilizadas nesse post foram retiradas do site do CouchDB.