Principal Contas Pessoais Escrita Rural
Arquivos UIBXKP
GPLDevKit
Diário
book
Diário do Programador
A luta de um programador para escrever seu código.
English
This page in english
4 de março de 2007 - Buzzwords

Ajax Não há uma boa tradução para buzzord na língua portuguesa. A tradução literal seria "palavra buzina".  Para uma explicação mais completa recomendo a wikipedia.
Explicando melhor em português, buzzword é uma palavra de marketing que serve para definir algum conceito vago. Alguns exemplos são holístico, próxima geração, paradigma, sinergia. São muito usadas por marketeiros. Também são usadas para a definição de missão de uma empresa.
A informática é riquíssima em buzzwords. O marketing de produtos de software as inventam com frequencia. As mais recentes são AJAX e Web 2.0.
Embora a mídia descreva estas palavras como as ferramentas do futuro, elas simplesmente significam avanços na interatividade das aplicações Web, usando ferramentas já existentes há muitos anos.
AJAX e Web 2.0 não vão salvar o mundo, mas permitem aplicações online leves e eficazes, como o Google docs and spreadsheets e Dotk.


29 de janeiro de 2007 - O tempo corre a nossa frente

Coelho branco Poderíamos dizer também que o tempo nos atropela. O mundo evolui muito mais rápido do que podemos perceber.
Vejo alguns usuários resistindo ao uso do OpenOffice. Que ridículo! Querem usar os velhos Sistemas enquanto os novos já estão aqui! É claro que somente poucos podem enxergar o futuro. Alguns homens podem ver longe, e outros não enxergam em baixo de seu nariz.
Quem usa OpenOffice hoje já está obsoleto. Tecnologias mais modernas já estão entre nós. O KOffice e Offices online (Google Spreadsheets, Ajax Writer e outros) já entraram na disputa.
Somente os dinossauros ainda usam os obsoletos sistemas comerciais. Um dia os dinossauros dominaram a Terra. No outro dia eles foram extintos.
Huahuahua!


10 de setembro de 2006 - Tempo é dinheiro

Relógios Moles Qualquer atualização de Sistema que poupe tempo para o usuário é sempre bem-vinda. Afinal a principal finalidade dos Sistemas é que eles trabalhem por nós, e realizem o máximo de tarefas que lhes possamos delegar.
Nos Sistemas mais modernos, basta digitar os dados de entrada, e o Sistema nos retorna os resultados. Nossa parte se resume a isto.
Mas o próprio Sistema não pode colher os dados de entrada? Em muitos casos sim. Uma grande invenção (não descobri quem inventou, se alguém descobrir me avise!) é o autocompletar.
Geralmente muitos dados são repetitivos, e baseado em uma pequena parte, o Sistema pode "adivinhar" o resto, poupando tempo ao digitador.
A partir da versão 2.13, o autocompletar do Sistema Contas Pessoais foi expandido para abranger quase todos os campos, poupando muito tempo aos usuários. Como tempo é dinheiro, este tipo de funcionalidade é muito útil.

05 de julho de 2006 - O mesmo conflito de sempre: dinheiro x ideal ...

Dinheiro Recentemente, conversando numa roda de amigos programadores, um de nossos amigos estava muito preocupado com a renda dos trabalhadores de informática, e dizia que para ganhar dinheiro com informática era preciso programar em qualquer linguagem, que deveríamos simplesmente cumprir as ordens, e que programador não ganhava dinheiro, quem ganhava dinheiro era os empresários que intermediavam os contratos.
Na verdade, eu não programo por dinheiro. Eu tenho um emprego para gerar renda para sustentar a família, não porquê eu pretenda ganhar muito dinheiro com isso. Desde criança, eu acordava de manhã e ia programar, e ninguém nunca precisou me pagar para que eu programasse. Eu programo porquê eu quero e pronto.
Há muitos anos gerencio equipes de programadores, e sempre me preocupei em tornar meus programadores os mais fortes. Logo eu descobri que poderia lhes passar conhecimento, mas que o fator determinante era difícil ou impossível de ser controlado. Os programadores mais poderosos programam por iniciativa própria, apenas porquê gostam de programar. Empenho, dedicação ou títulos são inúteis. O verdadeiro programador pode fazer qualquer sistema e não pode ser detido ou controlado.
Eu poderia citar inúmeros, mas vou citar apenas alguns exemplos. A começar pelo nosso anti-herói, Bill Gates. Na juventude, Bill era um poderoso programador, e o Basic do Altair foi uma de suas obras mais impressionantes. Centenas de horas de programação obssessiva, programando no papel sobre um hardware que ele nem possuía. Segundo conta a lenda, quando o programa foi finalmente digitado, ele não tinha nenhum bug. Bill e Paul Allen eram mestres em Assembly e em debugagem. Infelizmente, mais tarde, Bill deixou de programar para se concentrar na área administrativa, então passou a ganhar muito dinheiro, e os programas nunca mais foram os mesmos...
E que tal Will Wright, fundador da Maxis? Outro obcecado. Seu Simcity 1 pode ser considerado uma obra de arte da informática. Até hoje seus jogos de simulação dominam o mercado de jogos não-violentos.
E vamos terminar com Linus Torvalds, é claro. Na época que compunha as primeiras versões beta do Linux, Linus acordava, programava, comia, programava, e dormia. Hoje, apesar da esposa e filhos para lhe tomar o tempo, ele passa a maior parte do tempo programando. Este é um cara que não tem o menor tesão por dinheiro. E, sozinho, e sem dinheiro, vem derrotando a Microsoft. Apenas com a força de seu código.
Se o seu foco for o dinheiro, não poderá ser um verdadeiro programador. Se você programa apenas porquê gosta de programar, então você você pode fazer os melhores Sistemas do mundo. O dinheiro é apenas um efeito colateral.

19 de junho de 2006 - A dura vida no terceiro mundo

Bandeira O terceiro mundo é diferente do primeiro mundo por uma série de motivos. Hoje a Internet democratizou a informação (embora haja diferenças de largura de banda). Porém a diferença na renda é muito grande. Hoje no Brasil, profissionais de todas as profissões, incluindo engenheiros, analistas, médicos, recebem salários de fome, e os empresários lutam constantemente contra a falência.
Alguém do primeiro mundo poderia perguntar "como isso é possível?". Vou resumir a resposta: desgoverno. Não é culpa só do atual presidente, mas de todos os anteriores também. Hoje, particularmente, a carga tributária e os juros são os mais altos do mundo.
O impacto disso para os desenvolvedores de software livre é evidente. Enquanto os finlandeses estão se matando de tédio e tem todo o tempo para programar, sem preocupações com dinheiro, os brasileiros tem que "disputar abóboras com os porcos" e "vender o almoço pra comprar a janta".
Mas não desanimaremos! Nada nem ninguém nos impedirá de escrever nosso código!

18 de março de 2006 - Evolução natural dos Sistemas

Evolução Os primeiros Sistemas para microcomputadores não se utilizavam ainda do conceito de evolução e de controle de versão. A maioria dos Sistemas dos anos 80 teve apenas uma primeira versão, e em poucos casos houveram atualizações.
Naquela era pré-Internet, havia pouca concorrência, e portanto pouco estímulo para a evolução dos Sistemas. Isto fazia com que um Sistema dominasse um nicho de mercado durante muitos anos.
Com a Internet, o conceito muda. Cada nicho tem uma série de Sistemas competindo, e eles precisam evoluir constantemente para sobreviver no mercado.
Hoje o conceito de evolução é muito diferente entre os Sistemas de Fonte Aberto e o software comercial. O software comercial é atualizado em ciclos longos (um a três anos, em média). Geralmente o departamento de marketing determina as novas funcionalidades (absurdo?!), geralmente inúteis, e cria um plano de marketing para vendê-las.
Nos Sistemas de Fonte Aberto, as funcionalidades são solicitadas pelos usuários, e atendidas pelos desenvolvedores. Os ciclos de atualização são bem mais curtos, atingindo um mês ou até menos. Este mecanismo tão mais simples vem permitindo que os Sistemas de Fonte Aberto superem as funcionalidades dos comerciais.

11 de fevereiro de 2006 - Registro de exceções

Tela azul
Desde a versão de lançamento, o Contas Pessoais possui um mecanismo de registro de exceções. Todas as exceções não tratadas pelo Sistema são registradas.
Apesar de eu já ter feito dezenas de Sistemas, fiquei impressionado com a variedade de exceções possíveis. Eu estava acostumado a uma pequena rede de 70 usuários, onde a variedade de exceções é bem menor.
As modernas linguagens orientadas a objeto geram objetos complexos e com uma infinidade de exceções possíveis. A experiência permitirá ao programador tratar as exceções mais comuns, porém o mecanismo de registro de exceção permitirá tratar os tipos mais incomuns e aumentar a estabilidade do Sistema.

9 de Janeiro de 2006 - Backup

Backup Finalmente adicionei a funcionalidade de backup ao Controle de Contas. Isto deveria ser obrigatório para todos os Sistemas de Bancos de Dados. Talvez esta funcionalidade já devesse vir pronta nas ferramentas de desenvolvimento.
É bom ser prevenido para tudo na vida. Imagine se o seu computador pifar agora. Quais arquivos você vai sentir falta? Faça cópia de todos eles agora. Não esqueça da caixa de e-mails e dos favoritos.

29 de Dezembro de 2005 - Fome de memória

A cada dia que passa os Sistemas modernos consomem cada vez mais memória. Os mais antigos vão lembrar dos computadores pessoais que tinham 1 Kb de RAM... Hoje o computador básico tem 512 Mb.
Mas todo este consumo é realmente necessário? Estes computadores consomem mil vezes mais memória que os computadores de quinze anos atrás. Eles fazem mil vezes mais? Alguém se lembra do Windows 95 que rodava com 8 Mb? O Windows XP faz muito mais coisa que o Windows 95? Ou que o próprio Windows 3.1?
Na verdade, as modernas ferramentas de desenvolvimento orientadas a objeto são grandes vilãs no consumo de memória. Hoje os objetos possuem dezenas de propriedades, das quais 10% apenas são utilizadas com frequência. Os outros 90% servem, basicamente, para consumir memória. Como os objetos tem outros objetos como propriedades, o efeito consumidor de memória é multiplicado várias vezes.
Será possível fazer de outra forma?

14 de Novembro de 2005 - A dor da mudança

Mudar sempre dói. Às vezes mudamos por nossa vontade, e então gostamos. Quando somos forçados a mudar, sofremos.
Este conceito vale para migrações de Sistemas de qualquer espécie. Mesmo migrar para uma versão atualizada de um Sistema que já utilizamos pode ser bastante doloroso.
No mundo corporativo de hoje, o termo "resistência a mudança" está sendo muito utilizado. Este termo é aplicado a resistência natural que qualquer pessoa tem de modificar sua rotina de trabalho de acordo com as mudanças da empresa.
O mundo moderno está mudando cada vez mais rápido. A única constante é a mudança. Procurei esta frase no Google e achei 198 ocorrências. Felizmente todos estão percebendo isto. Os modernos autores de gerenciamento nos orientam a utilizar as mudanças a nosso favor. Podemos citar o Dr. Spencer Johnson, de "Quem mexeu no meu queijo" e Kent Beck, de "Programação Extrema : Abrace a mudança".
Como programadores, é nossa responsabilidade fazer a mudança da forma mais suave possível. Precisamos nos comunicar efetivamente com os usuários, relatando em detalhes as mudanças, e fazendo treinamentos quando necessário. Para que a implantação de um novo Sistema seja bem-sucedida, precisamos trabalhar em conjunto com os usuários.

5 de Novembro de 2005 - Primeiras palavras

Com certeza, minhas primeiras palavras teriam que ser sobre o conceito de diário de rede, ou BLOG.No Brasil, todos utilizam o termo BLOG. Qual é o problema com nós, brasileiros, que temos mania de utilizar os termos em inglês? Por quê não podemos utilizar os termos em Português?
Os diários de rede servem como uma nova forma de comunicação, em que uma pessoa pode publicar um conteúdo imediatamente acessível a todo o planeta. Sua utilidade é indiscutível: neste momento posso ler os diários dos maiores programadores do mundo, conhecendo seus pensamentos em tempo real.