Mel na chupeta: dados de estados x cidades do Brasil

Muitos sistemas necessitam de informações sobre estados e cidades, mas ao buscar estas informações, se percebe muitos dados incorretos e uma falta de padronização dos nomes.

Mas o site do IBGE (Instituto Brasileiro de Geografia e Estatística) possui uma grande gama de dados disponibilizados publicamente, inclusive a lista de cidades por estado, mas não encontrei nenhuma forma de conseguir baixar os dados já facilmente para meu uso, tendo que baixar o documento com a lista de cidades para cada estado e tratar estes dados.

Portanto, para facilitar minha vida, exportei para um formato CSV e subi para a minha base.

Disponibilizo aqui os dados para download.

Continuar lendo

Técnica mock em testes unitários

Uma das áreas mais subestimadas do desenvolvimento de software é, sem dúvida, a área de testes. Desde os primórdios do desenvolvimento de sistemas até os dias de hoje, testes são considerados dispendiosos e algo a ser feito depois (o que frequentemente é postergado até o ponto em que acabam não sendo feitos).

Desenvolvedores tendem a não usar testes, por acharem que muito tempo é gasto e que o custo benefício não compensa. Mas, conforme cada vez mais evoluem as técnicas e teorias por trás do desenvolvimento de software, mais e mais estudos confirmam que sim, vale a pena perder o tempo dispensado aos testes e vão além, sugerem que o desenvolvimento deve ser invertido, primeiro criar os testes e depois implementar o necessário para fazer o teste passar (esse método de desenvolvimento é conhecido como TDD = Test Driven Design).

Realmente o TDD é algo interessante e dá pano pra manga pra muito texto, que vou deixar para o futuro.

O que realmente queria falar neste post, é sobre a técnica de criar objetos “falsos” (objetos Mock) com comportamento igual aos objetos reais do seu sistema e que sejam dependências para seus testes, além de mostrar sua utilidade e aplicabilidade em testes funcionais, introduzindo um framework que auxilia na criação destes objetos Mock.

Continuar lendo

Tradução – Ajax: uma nova técnica para aplicações web

Há alguns anos (meados de 2005) fiz a tradução e inseri no meu antigo site um célebre artigo do início da badalação do Ajax.

Este artigo foi escrito em 18 de fevereiro de 2005 por Jesse James Garret, a quem se credita o batismo do nome “Ajax”, o artigo foi postado originalmente como Ajax: A New Approach to Web Applications.

Por considerá-lo ainda pertinente atualmente, seja como entendimento dos mecanismos básicos de Ajax, ou como curiosidade histórica, resolvi postar esta tradução.

Continuar lendo

A técnica de Pomodoro no desenvolvimento de software

Técnica de PomodoroQuem nunca chegou no fim do dia e percebeu que o dia não rendeu nada em trabalho útil? Onde foram parar as 8 horas (ou mais) de trabalho?

Geralmente as pessoas tendem a esquecer os minutos gastos no twitter, o tempo lendo notícias no uol, os e-mails respondidos, telefonemas atendidos, perguntas de colegas respondidas, ajudas a secretária para scanear um documento, etc, etc.

Pode não parecer, mas estas “pequenas” interrupções consomem muito tempo que não é gasto efetivamente no trabalho.

E se o trabalho não é feito, surgem os atrasos no projeto (que podem acabar sendo percebidos só no final do prazo em projetos mal administrados), necessidades de horas extras e junto vem o stress e a famigerada “ansiedade do tempo  abstrato”.

O livro “The Pomodro Technique” (veja link para download grátis abaixo no post), define dois tipos de percepção de tempo:

1– “Becoming”: A idéia abstrata de tempo, que nasce do hábito de medir tempo (horas, minutos, etc) e a idéia de estar ficando tarde, a sensação do projeto atrasando, o tempo escoando continuamente sem ter terminado aquela parte do sistema. Esta é a percepção ruim (guarde na memória esta).

2– “Sucessão de Eventos”: uma idéia mais concreta do tempo, a idéia de que uma tarefa sucede a outra: “primeiro eu vou escovar os dentes, depois vou tomar banho, após vou dormir”. Crianças desenvolvem primeiro esta idéia de tempo, antes de desenvolver a idéia abstrata.

A técnica de Pomodoro visa diminuir essa ansiedade de tempo abstrato e aumentar foco, concentração e, consequentemente, a produtividade nas tarefas a serem feitas.

Continuar lendo