E ai pessoal?
Depois de muito tempo sem postar nada, resolvi compartilhar o que venho estudando sobre MongoDB. São meus primeiros passos e por enquanto não há nada muito profundo, mas como existem poucas referencias em nosso idioma, acho que vale a pena escrever o que venho aprendendo.
Nesse post vamos montar uma estrutura de Replica Set do MongoDB com três servidores da forma mais simples possível. Vou usar Amazon EC2 para montar essa estrutura, mas você pode usar máquinas virtuais locais de forma fácil, por exemplo com VirtualBox ou Vagrant.
quarta-feira, 19 de fevereiro de 2014
quarta-feira, 23 de outubro de 2013
O Mítico Homem-Mês - O Poço de Alcatrão - Cap. 1
Oi pessoal, tudo bem?
Depois de muito tempo sem postar nada em meu blog e de mudar aqui para o Blogger, estou voltando a escrever basicamente devido a um livro, O Mítico Homem-Mês.
Este livro foi escrito por Frederick Brooks Jr originalmente em 1975 (sim, estamos falando de um clássico!) mas vem recebendo atualizações devido a importância da obra. Este foi um dos primeiros, se não o primeiro, grande livro a tratar da industria de software onde Brooks fala sobre os desafios que encontrou durante o projeto do OS/360 da IBM.
Estou lendo uma edição de 1995 que, apesar dos quase 20 anos, traz reflexões e propostas muito atuais, que lembram em muito as metodologias de desenvolvimento ágil! Eu comprei esta edição por 1/3 do preço praticado nas livrarias em um site chamado Estante Virtual, recomendo!
Minha ideia aqui não é fazer um resumo do livro, mas sim registrar os pontos mais importantes e compartilhar minhas reflexões sobre os temas do livro. Por isso, deixo aberto o campo de comentários para que possamos conversar sobre o assunto!
Depois de muito tempo sem postar nada em meu blog e de mudar aqui para o Blogger, estou voltando a escrever basicamente devido a um livro, O Mítico Homem-Mês.
Este livro foi escrito por Frederick Brooks Jr originalmente em 1975 (sim, estamos falando de um clássico!) mas vem recebendo atualizações devido a importância da obra. Este foi um dos primeiros, se não o primeiro, grande livro a tratar da industria de software onde Brooks fala sobre os desafios que encontrou durante o projeto do OS/360 da IBM.
Estou lendo uma edição de 1995 que, apesar dos quase 20 anos, traz reflexões e propostas muito atuais, que lembram em muito as metodologias de desenvolvimento ágil! Eu comprei esta edição por 1/3 do preço praticado nas livrarias em um site chamado Estante Virtual, recomendo!
Minha ideia aqui não é fazer um resumo do livro, mas sim registrar os pontos mais importantes e compartilhar minhas reflexões sobre os temas do livro. Por isso, deixo aberto o campo de comentários para que possamos conversar sobre o assunto!
terça-feira, 22 de janeiro de 2013
Alterar campo do formulário em um Inline FormSet
Oi pessoal, tudo bem? Depois de algum tempo sem novidades, aqui esta o primeiro post do ano!
Este post esta mais para uma dica (ou um registro pessoal) de como resolver um problema aparentemente simples mas que me custou algumas horas de pesquisa. O problema esta relacionado a alterações que fazemos em campos, ou seus atributos, de formulários do Django. Por exemplo, se precisamos incluir opções ao choices de um ChoiceField ou CharField de forma dinâmica podemos sobrescrever o método inicializador do Form, mais ou menos assim:
Este post esta mais para uma dica (ou um registro pessoal) de como resolver um problema aparentemente simples mas que me custou algumas horas de pesquisa. O problema esta relacionado a alterações que fazemos em campos, ou seus atributos, de formulários do Django. Por exemplo, se precisamos incluir opções ao choices de um ChoiceField ou CharField de forma dinâmica podemos sobrescrever o método inicializador do Form, mais ou menos assim:
sábado, 27 de outubro de 2012
InterCon 2012 - Social Mining para métricas. Extraindo dados direto dafonte
Oi pessoal, tudo bem? O blog andou um pouco parado nos últimos tempos, mas hoje eu tenho um ótimo motivo para quebrar essa monotonia por aqui, do InterCon 2012! Esta foi a nona edição de um evento que já é bem conhecido pelos profissionais de métricas, publicitários e até desenvolvedores. Eu confesso que não conhecia o evento - essa foi minha primeira participação - mas fiquei muito impressionado com a organização, infra, nível das palestras e todas aquelas coisas que costumam ser criticadas em grandes eventos. Aproveito para deixar meus parabéns ao iMasters e os organizadores!
Alem de ser minha primeira participação, ainda fui convidado a palestrar com meu amigo e colega de trabalho Vitor Franchito sobre Social Mining para métricas por um dos organizadores e também amigo de trabalho, o Leo Naressi. Nosso objetivo era mostrar, de forma prática, como extrair dados das redes sociais e como analisar estes dados para melhor aproveita-los para uma marca, e, claro, minha parte era a extração dos dados =D. Para isso desenvolvi alguns pequenos exemplos que gostaria de compartilhar com vocês!
Alem de ser minha primeira participação, ainda fui convidado a palestrar com meu amigo e colega de trabalho Vitor Franchito sobre Social Mining para métricas por um dos organizadores e também amigo de trabalho, o Leo Naressi. Nosso objetivo era mostrar, de forma prática, como extrair dados das redes sociais e como analisar estes dados para melhor aproveita-los para uma marca, e, claro, minha parte era a extração dos dados =D. Para isso desenvolvi alguns pequenos exemplos que gostaria de compartilhar com vocês!
sábado, 9 de junho de 2012
Decorator de decorators
E ai pessoal, tudo bem?
Bom, o post de hoje vai ser bem curto, pretendo apenas aproveitar uma oportunidade e abordar um assunto.
A alguns dias, um amigo do trabalho me perguntou se seria possível criar um decorator de decorators. O objetivo era simples, evitar a repetição de chamadas a decorators muito usados e essa a sintaxe feia abaixo:
Bom, o post de hoje vai ser bem curto, pretendo apenas aproveitar uma oportunidade e abordar um assunto.
A alguns dias, um amigo do trabalho me perguntou se seria possível criar um decorator de decorators. O objetivo era simples, evitar a repetição de chamadas a decorators muito usados e essa a sintaxe feia abaixo:
@decorator_a
@decorator_b
@decorator_c
def teste(bla):
print bla
quarta-feira, 16 de maio de 2012
Usando decorators para timing
E ai pessoal, tudo bem?
O último post foi bem extenso porque eu precisava dar um overview sobre o assunto, mas este será mais objetivo. Depois de escrever sobre profiling tive oportunidade de aplicar o que venho estudando em um projeto e ver, na prática, o quanto este conhecimento é importante. Também recebi boas criticas sobre a publicação anterior, sinal que o assunto é do interesse de mais gente! Por tanto, vamos a uma dica que tem me ajudado bastante.
Das ferramentas citadas no post anterior tenho usado muito o Django Debug Toolbar e o modulo timeit do Python, mas nenhum dos dois supriu minha necessidade de saber, de forma simples e rápida, quanto tempo um determinado método ou uma view do Django demora para ser executada. No inicio eu fiz a subtração do tempo, como o módulo time, no próprio método mas logo percebi que precisava de um decorator. Depois de pesquisar um pouco, cheguei a minha versão do mesmo que compartilho com vocês:
sexta-feira, 4 de maio de 2012
Performance de web apps Python com Django
E ai pessoal! Tem-se falado muito sobre a performance de aplicações Python e também sobre web apps Python feitas em Django, reflexo da crescente adoção destas tecnologias em projetos cada vez maiores. Meu caso não é diferente, trabalho com Python e Django e, devido as necessidades dos projetos, tenho estudado sobre esse assunto que acho muito interessante. O problema é que cada texto que encontrei tratava de apenas uma abordagem deste tema, seja o deployment, as tecnologias usadas, a arquitetura ou o profiling do código em si. Por isso resolvi escrever este post, uma tentativa de compilar todos estes pontos e criar um material que ajude, de forma geral, a conseguir um melhor desempenho de nossas aplicações.
Vou adotar como estratégia uma abordagem "de fora para dentro", na intenção de começar com fatores externos ao código que podem interferir na performance da aplicação, seguindo com os temas relacionados ao código e como podemos "medir" os mesmos.
Vou adotar como estratégia uma abordagem "de fora para dentro", na intenção de começar com fatores externos ao código que podem interferir na performance da aplicação, seguindo com os temas relacionados ao código e como podemos "medir" os mesmos.
Assinar:
Postagens (Atom)