Postgresql x Mysql: a diferença que faz uma estratégia correta

abril 30, 2008

Atenção, este blog foi migrado para: http://brunopereira.org

Ontem fui no Tech Talk de MySql aqui na Globo.com, que me trouxe algumas idéias interessantes e também fomentou algumas discussões. Não vou falar muito sobre o tech talk especificamente, mas sobre uma discussão paralela.

Algumas pessoas sabem da minha preferência pelo Postgres sobre o MySql. Durante a apresentação ontem o Rafael me perguntou porque tanta gente utiliza o MySql e nem tanta gente usa o Postgres. Ele me perguntou isso porque usa o Postgres em alguns projetos e não viu vantagens em utilizar o MySql em vez do Postgres.

Bom, a resposta pra isso na minha opinião vem da diferença de estratégia. Banco por banco, sou mais o Postgres, embora eu considere que em boa parte dos casos, qualquer banco atende aos requisitos. Mas porque então o MySql ganhou bem mais adoção do que o Postgres?

Na minha opinião, o fator principal que levou a isso é que o MySql já há muito tempo oferece instalador nativo para o Windows. O MySql foi lançado em 1996 e começou com suporte apenas a Linux, mas desde 1998 permite instalação nativa no Windows. O Postgres começou como um projeto acadêmico em 1986, mas em 1996 se tornou um projeto open source com participação da comunidade de software livre. Podemos ver que nesta vertente atual de desenvolvimento, ambos estão disponíveis desde 1996. Enquanto o MySql suporta nativamente o Windows desde 1998, no Postgres isso só foi ocorrer em Janeiro de 2005, com o lançamento da versão 8.0. Anteriormente o Postgres só podia ser instalado no Windows com uso do Cygwin, que está longe de ser algo prático.

Considerando os recursos que ambos os bancos ofereceram ao longo de sua história, não restam dúvidas de que o Postgres é historicamente superior tecnicamente, e na minha opinião continua sendo. Entretanto, com a enorme quantidade de desenvolvedores que só utilizavam Windows (what a shame!), o fato de poder rodar o banco de dados na mesma máquina de desenvolvimento tornou o MySql muito mais conveniente para quem precisava de um banco de dados gratuito para suas aplicações.

Quando o Postgres lançou a versão 8.0 em Janeiro de 2005, muitos desenvolvedores já utilizavam o MySql há anos, e com isso sua adoção já estava bem grande. Neste ponto podemos ver claramente a diferença que fez uma estratégia correta. O fato de ser limitado tecnicamente em comparação com o Postgres não impactou o sucesso do MySql, porque durante muitos anos ele foi simplesmente muito mais conveniente para o desenvolvedor.

Atualmente, só vejo chances do Postgres aumentar seu sucesso se for comprado por alguma grande empresa e colocado em uma pilha de produtos interessante. Eu gosto muito do banco, e nos meus projetos pessoais ele é minha opção default. Entretanto, temo que ele nunca saia da sua abrangência atual, pelos erros na estratégia. É uma pena, devido à qualidade do projeto. Mas é muito difícil qualquer mérito técnico sobreviver a uma estratégia perdedora.


Apenas uma vez

abril 28, 2008

Atenção, este blog foi migrado para: http://brunopereira.org

Às vezes vamos no cinema já sabendo bastante sobre um filme. Nessas vezes, provavelmente já nutrimos uma certa expectativa sobre o conteúdo do mesmo, e já temos uma idéia do que esperar.

Outras vezes vamos ver filmes sem muito compromisso. Ontem (sábado) fui ver um filme romeno, chamado “Irina Palm“, que até foi legal. Mas o melhor foi ter visto o cartaz de “Apenas uma vez” (“Once“, no título original), que fui ver hoje. Eu tinha visto apenas o cartaz, mas ele me despertou a curiosidade e então fui vê-lo hoje. Sem nenhuma expectativa prévia, e sem ter muita idéia do que iria ver.

Bom, o filme é excepcional. Excepcional e diferente. Altamente musical e cativante. Cativante de tal forma que eu já estou viciado nas músicas e não tiro o filme da cabeça. Além da satisfação pelo filme, agora tenho várias novas músicas legais pra escutar.

O filme é irlandês e nele um músico irlandês (Glen Hansard) conhece uma jovem tcheca (Marketa Irglova) e então eles começam a se conhecer e tocar música juntos. Não vou falar mais do que isso para não estragar a supresa de quem quiser assistir ao filme.

O tal músico é extremamente talentoso, e as músicas são muito legais. Depois de chegar em casa eu fui pesquisar sobre o filme e descobri que o músico e a jovem tcheca são músicos na vida real, e tocam juntos em turnê e tudo. Eles na verdade não são atores, são músicos mesmo. Todas as músicas do filme são compostas pelo Glen Hansard, e a interpretação delas no filme contagia bastante.

Eles ganharam o Oscar de Melhor Canção original este ano, e devo dizer que fiquei satisfeito em saber, pois foi muito merecido. Para quem quiser dar uma olhada, estou colocando abaixo um vídeo do filme. Altamente recomendado!!

E esta música abaixo é muito legal também 🙂


Kubuntu 8.04: primeiras impressões

abril 27, 2008

Atenção, este blog foi migrado para: http://brunopereira.org

Neste fim de semana eu atualizei o Linux do meu desktop em casa, instalando o Kubuntu 8.04 (Hardy Heron). Inicialmente eu instalei a versão com o KDE 4, pois já é a versão 4.0.3, e imaginei que já poderia usar tranqüilamente.

De mais chato, encontrei apenas um problema para instalar extensões do Firefox. Nenhuma extensão estava sendo instalada com sucesso, devido a um problema com o Extension Manager do Firefox. Pelo que pude ver, o problema é específico do pacote do Firefox que veio com o Kubuntu, pois ele estava configurado para utilizar um diretório de extensões incorreto. Eu consegui resolver o problema baixando o Firefox do site oficial e instalando-o por fora do gerenciador de pacotes.

O que me incomodou mais não foi nem isso, foram questões referentes ao KDE 4 em si. Pelo que pude ler depois, o pessoal do KDE não está recomendando ainda esta versão 4.0.x para os usuários em massa. Eles estão recomendando esperar pela versão 4.1.

O motivo por trás disso eu pude constatar. Diversas funcionalidades básicas de configuração que existem no KDE 3 simplesmente não foram implementadas no KDE 4 ainda. Por exemplo, eu não conseguia diminuir a fonte do relógio, e quando eu reduzi a altura da barra de tarefas do KDE, o relógio simplesmente ficou cortado no meio. Eu também não consegui criar atalhos na barra de “Quick Launch”, o que me incomodou bastante.

Um último detalhe que eu me lembro é que tanto o Dolphin como o Konqueror estavam com problemas para guardar as preferências de gerenciamento de arquivos. Eu gosto de deixar o modo de visualização de arquivos e pastas como “Lista Detalhada” e sempre ordeno a lista por tipo de arquivo. Por algum motivo que eu não cheguei a descobrir, eles não estavam salvando corretamente esta minha escolha e sempre que eu abria uma nova pasta, a exibição voltava para o formato “Ícones”, com alguma ordenação qualquer.

Depois de pouco mais de uma hora me irritando com estas limitações do KDE 4, resolvi instalar a versão do Kubuntu com o KDE 3 (3.5.9 especificamente). Esta versão já é bem melhor, totalmente estável e personalizável. Não tive absolutamente problema algum e tudo funcionou corretamente e de forma fácil, como já me acostumei em relação ao Kubuntu.

Eu recentemente usei em casa o Mepis e o PcLinuxOS, mas a verdade é que a melhor distribuição com KDE é o Kubuntu. No meu notebook eu ainda estou com o Mepis, e gosto bastante da distro. Não pretendo trocar não. Entretanto, a distribuição que mais recomendo é mesmo o Kubuntu e esta versão 8.04 está rodando redondinha aqui em casa.

Quanto ao KDE 4, embora ele seja bastante promissor, ele ainda não está adequado para a maioria dos usuários. Eu gosto bem mais do KDE do que do Gnome, e estou certo de que em breve o KDE 4 será a melhor opção disponível. Nos próximos meses, entretanto, recomendo a confiabilidade do KDE 3.5.x.


Apresentação sobre web services REST

abril 24, 2008

Atenção, este blog foi migrado para: http://brunopereira.org

Hoje de manhã fiz uma apresentação sobre web services REST aqui na Globo.com. Espero que o pessoal tenha gostado. Provavelmente eu farei mais apresentações sobre o assunto este ano.

Estou disponibilizando aqui os slides da apresentação, e depois vou colocar os fontes do projeto de exemplo em algum lugar, pois o WordPress não me permite fazer upload de zips.

Update: o Antônio Carlos tirou umas fotos da apresentação, estou colocando a seguir:

Tech Talk de Web services REST

Tech Talk de Web services REST

Tech Talk de Web services REST


Grails – ótima ferramenta para alguns projetos

abril 19, 2008

Atenção, este blog foi migrado para: http://brunopereira.org

Toda semana eu e o Silvano discutimos vários aspectos das nossas aplicações. Como melhorar algumas delas, novos componentes que podem trazer ganhos interessantes, mudanças de arquitetura, etc. Os principais objetivos são: trazer mais qualidade para os projetos e produtividade para a equipe.

Alguns meses atrás estávamos falando com freqüência sobre frameworks web. A maioria das aplicações na Globo ainda usa Struts 1.x. O Struts 1 foi por muitos anos o framework web padrão Java. Ele trouxe muitos ganhos interessantes, comparando com o desenvolvimento usando apenas Servlets + JSP.

Um ponto “fraco” do Struts 1 é que ele não tem nenhum suporte a componentes visuais. Toda a parte visual das aplicações fica por conta dos desenvolvedores, assim como os recursos “Web 2.0”. O problema é que desenvolver esta parte visual de forma customizada em todos os projetos é muito trabalhosa, não é produtiva. Com isso surgiram inúmeros frameworks mais modernos, com suporte visual muito mais rico, trazendo boa produtividade neste aspecto.

O fato é que com esta enorme gama de opções, não temos mais um framework que se destaque de forma absoluta sobre os outros. Temos várias opções para cada projeto. Entretanto, não dá para querer abraçar o mundo, então é comum que busquemos 1 ou 2 opções que nos atendam em quase todos os casos.

Na nossa equipe nós já temos uma aplicação com JSF, que na verdade foi concebida ano passado, antes da minha mudança de equipe. Eu estou usando o Wicket em um projeto pessoal e ainda estou aprendendo o framework, ainda não o domino a ponto de usá-lo de forma produtiva. Com alguma freqüência nós discutimos sobre estes 2 frameworks, e eu ainda tenho a opinião que descrevi anteriormente.

Neste escopo das discussões sobre JSF vs Wicket, também falamos algumas vezes sobre Rails e Grails. Algumas semanas atrás eu e o Silvano começamos a estudar Grails, e fizemos pequenas aplicações de exemplo. Eu já li inteiro este livro de Grails disponível no InfoQ. Ele estava aqui na minha lista de “Livros que quero ler quando tiver tempo”, mas já o movi para a lista de livros que li 🙂

Eu estou gostando bastante do Grails, pois ele é extremamente produtivo para aplicações nas quais eu acho que ele faz sentido. Você consegue em 2 dias desenvolver aplicações que provavelmente você demoraria 1 semana ou mais com frameworks Java tradicionais. Eu ainda não o utilizei o suficiente para saber os limites de uso do mesmo. Provavelmente para projetos com requisitos mais críticos de carga e customização das interfaces, ele já não será uma opção tão boa assim. Entretanto, em aplicações internas, com carga limitada e sem grandes necessidades de customização visual, ele é perfeito.

O próximo passo para mim é tentar utilizá-lo em casos mais complexos. Estou pensando seriamente em utilizá-lo no @dvogado.com, um software para advogados que eu desenvolvo no meu tempo vago, mas que está congelado há alguns meses por falta de tempo. Quando eu conseguir um pouco mais de tempo vou tentar implementá-lo com o Grails, e acho que consigo fazer isso bem rapidamente. O Grails atenderia bem à minha proposta de distribuir um pacote completo com tudo que o usuário precisa, tornando o deployment o mais simples possível. Com o Grails eu utilizaria o Jetty + HSQL que ele traz por padrão, e precisaria adicionar apenas o JDK no pacote.

Uma discussão muito interessante também é a de Grails vs Ruby on Rails, mas isso fica para um outro post em breve 🙂


Blogueiros “comuns” conseguem ganhar dinheiro com o Google Ads?

abril 14, 2008

Atenção, este blog foi migrado para: http://brunopereira.org

Isto é algo que eu gostaria de saber. Recentemente eu estava conversando com o Bruno Tonetto sobre o WordPress, e aí ele me perguntou se o WordPress permite usar o Google Ads.

Atualmente o WordPress hospedado no wordpress.com não permite este recurso, mas eles dizem que futuramente isto pode ser liberado. Como eu não sou nenhum superstar e meu blog não é nenhum fenômeno de audiência, eu nunca tinha ligado muito pro Google Ads no que diz respeito ao meu blog.

Entretanto, o Bruno me passou um link bem interessante que me despertou a curiosidade sobre o assunto. Neste link o dono do site comenta que colocou o Google Ads em Fevereiro de 2005, quando seu site tinha 86000 acessos. Neste mês ele ganhou US$ 53, o que não é lá grande coisa. Já em Janeiro de 2006 os acessos do site tinham subido para 715000, e a receita dele com o Adsense subiria para US$ 4700, o que já é bem interessante.

Considerando que estes números são do começo de 2006 e este mercado evolui bem rapidamente, eu gostaria de ter uma idéia de quão interessante é o Google Ads para blogueiros “comuns”. Blogs de pessoas que não sejam superstars, e portanto tenham uma quantidade de acessos bem mais humilde que este site do link.

Eu recentemente tenho pensado em utilizar o wordpress em uma hospedagem própria, para poder mexer um pouco na estrutura do blog e poder colocar mais conteúdos também. Eu uso uma hospedagem bem interessante para projetos freelance, e ela me dá vários serviços como hospedagem php (pro WordPress e phpPgAdmin), servidores Tomcat ou JBoss, SVN/CVS, Postgresql/MySql e mais uma porção de coisas.

Utilizando o wordpress em uma hospedagem separada eu teria uma liberdade maior para mexer no que quisesse, e também poderia usar o Google Ads, se fosse o caso.

Depois de ver que com 715000 acessos em 2006 um cara ganhava US$ 4700 por mês, eu não consigo entender como o Matt Raible não usa o Google Ads no site dele, que tem cerca de 2 milhões e meio de acessos mensais.

O meu blog é bem mais humilde. Este mês ele deve fechar com pouco mais de 4000 acessos. Eu o criei em novembro do ano passado, e ele vem crescendo progressivamente, num ritmo constante, mas não muito rápido. Eu tenho a curiosidade de saber se daria para ganhar alguns trocados tendo uns 10000 acessos mensais. Acho que este é um valor normal para um blog pessoal. Claro que alguns blogs têm muito mais acessos do que isso, mas já é bem mais difícil.

Se alguém utilizar o Google Ads e souber responder a esta pergunta, por favor responda por aqui ou diretamente por e-mail, se preferir. Eu não criei meu blog pensando nisso, e definitivamente este não é um dos fatores mais importantes pra mim. Mas é legal ter uma idéia do nível que estamos em termos de propaganda na internet, e claro que se for interessante para mim eu farei uso deste recurso 🙂


Java Magazine 56

abril 7, 2008

Atenção, este blog foi migrado para: http://brunopereira.org

Java Magazine 56 Nos próximos dias chega às bancas a edição 56 da Java Magazine. Nesta edição saem 2 artigos meus sobre Web Services REST. Como vocês podem ver pela imagem, desta vez os editores me deram a honra de ser a capa da edição 🙂

Outra honra que tive no artigo maior foi a de contar com a excelente colaboração do Alexandre Bairos. Durante nossos trabalhos em cima deste artigo pudemos discutir com todos os detalhes as várias nuances dos serviços REST, com os quais já estamos trabalhando há alguns meses e estudamos já há um bom tempo.

O artigo maior é uma continuação dos artigos das edições 54 e 55. A proposta dele é pegar o exemplo dos serviços de leilão da edição 55 e implementar uma solução utilizando serviços REST.

A abordagem deste artigo foi implementar os serviços REST de forma que ficassem nítidos os principais aspectos do desenvolvimento desta linha de serviços. Tomamos a decisão de não incluir componentes sofisticados que pudessem tirar o foco do cerne do problema. Com isto, não incluímos componentes como o Jersey e o Apache Abdera, que por sua vez devem ter artigos na revista este ano.

O artigo pequeno é no formato “Quick Update” da revista. Nele eu falo sobre os principais projetos relacionados aos serviços REST e os principais acontecimentos nestes projetos. Esta linha de web services vem evoluindo bastante, e por trás disso estão muitos projetos interessantes.

Na minha humilde opinião o artigo maior desta edição é certamente o melhor dos artigos que já escrevi para a revista e acredito que ele pode contribuir como um bom ponto de partida no assunto. Este assunto é talvez o que mais me interessa atualmente, então caso vocês tenham opiniões, comentários ou críticas a fazer, estou aqui para trocar idéias 🙂