Blog do Eduardo Costa Meu blog pessoal

22Out/080

Planta blogueira

Tenho o costume de escrever um blog desde 2006, mais ou menos. É pouco, mas já entrei na "era blog". E, agora, quando os que estão a minha volta acham estranho e dizem que não tem blog, vou falar: "Pô! Até planta tem blog hoje em dia!"

E não será mentira. A planta, chamada Midori-san, escreve um blog! Usando sensores, ela detecta o mundo externo e informa o clima, se alguém a tocou, etc. Meu japonês é igual ao de uma criança japonesa de uns 3 ou 4 anos, mas deu para ver que a planta tem até página de perfil..

E aí? Já tem seu blog? Até uma planta tem!

22Out/080

Meu próximo celular: o celular do Google

Acesso a internet, e-mail, IM, suporte a 3G, touchscreen, câmera digital, etc, etc. Parece mais um yet-another-celular (redundantemente falando), mas tem quatro coisas que eu adorei:

  1. É do Google. Competindo com os chineses pelo domínio global, o celular "deles" tem acesso rápido a toda tralha Google: busca, Orkut, GTalk, YouTube, etc. Além do logotipo deles na parte de trás do celular.
  2. Interativo. A tela touchscreen "vira" quando você abre o teclado. Assim, você tem sua tela "vertical" quando o celular está fechado e "horizontal" quando está com o teclado a mostra. Terrivelmente prático.
  3. Personalizável. Alterar o fundo de tela é o mínimo. Dá para organizar sua área de trabalho no melhor estilo Windows: somente clicando e arrastando (espero que não tenha os mesmos bugs).
  4. Acesso Wi-Fi. De que adiantaria baixar um monte de vídeos do YouTube se, depois, você precisa pagar uma furtuna de acesso a dados? Já fico imaginando-me em um Shopping, esperando o almoço que nunca sai, enquanto vejo as últimas notícias nerds ou alguma doideira no YouTube.

Sou muito chato com relação a celulares. Acho todos parecidos demais, com pouca inovação e muito disperdício de recursos. Mas esse, admito, me conquistou. Espero que seja tão bom quanto a propaganda...

15Out/080

Novas (e antigas) técnicas de programação

Um colega me enviou um link interessante sobre o BDD (Boss Driven Development). Achei muito divertido, principalmente por ser verdade em muitas empresas. Graças a Deus, onde trabalho não é assim, mas já trabalhei em lugares onde a idéia é agradar o chefe, e a empresa como um todo fica em último plano. Realmente horrível.

Usando o HT do HTML, encontrei o blog Fragmental que, entre outras coisas, falou o que penso das consultorias. Bom saber que não é opinião só minha. E, mais um link depois, achei a pérola que eu queria: um artigo que fala que nem só de VOs e BOs vivem as aplicações JavaEE.

Odeio cebolas. Tanto as leguminosas quanto as feitas em Java. As duas são amargas, cheias de camadas e fazem você chorar quando começa a mexer com elas. Para mim, não tem nada mais grotesco do que uma aplicação cebola, com mais camadas que classes.

A receita para uma aplicação cebola é simples: basta colocar um design pattern em cada recurso novo de seu sistema. "Tenho que fazer 2+2 aqui" - transforme em uma factory de operações matemáticas que recebe a operação (um command) e uma lista de operandos, todos na forma do flyweight. Afinal, daqui a uns cinco anos, alguém pode querer fazer uma subtração ou somar "1+1".

Claro que esse exemplo é extremista, mas a realidade não é muito distante. Já vi situações em que o programador previu a possibilidade de enviar um item para vários MDBs diferentes, cada um com seu filtro próprio, para dizer se deve ir ou não para aquele destino. Ótima idéia, mas a aplicação ficou dois anos em produção até surgir a possibilidade do segundo MDB e, quando surgiu, esse pattern foi a primeira coisa ejetada da aplicação, pois o filtro iria para outra aplicação.

Pergunto: adiantou levar todo esse tempo para elaborar esse arcabouço?

15Out/080

Quero ser Babaca Malkovich

Ao ler um post interessante sobre a Microsoft querendo lançar o "Windows Cloud", deparei-me com o comentário de um sujeito que se entitula "Breno Alves" chamando a Microsoft de "babaca" por querer ser a primeira a lançar tudo.

Um comentário desses nem merece resposta, mas, como estou aguardando minha próxima demanda aqui no trabalho, tenho um ou outro minuto para jogar fora respondendo. A resposta ficou tão grande que decidi colocá-la no meu blog.

Aliás, falando em trabalho, torço para que ele seja um bom trabalhador e que goste disso, pois uma atitude dessas é típica de alguém que vai passar a vida toda trabalhando para outros, sem nunca atingir um cargo de chefia.

Se é babaca querer ser o primeiro, eu quero ser o maior babaca do mundo. Aqui, mesmo, já fiz a babaquice de resolver todas as minhas demandas da quinzena além de outras que nem estavam no cronograma, mais uns problemas que ninguém sabia da existência e adiantar alguns projetos pessoas. Foi uma semana bem produtiva (quer dizer, bem "babaca").

Imagino se "babacas" como o William Henry "Bill" Gates III ou o meu guru financeiro Warren Edward Buffett teriam verdadeiros impérios se fossem esperar algum outro "babaca" concorrente sair na frente? Se bem que, se não fosse o "babaca" do Bill Gates, a humanidade não teria que lidar com comentários como esse, pois ele provavelmente nem teria acesso a um "computador pessoal".

Aliás, quem não lembra dos celulares que os "babacas" de décadas atrás lançaram primeiro? Enormes, pesados, chiavam mais que tudo e funcionavam só em lugares e poses bem específicos (além de cobrarem para RECEBER a ligação). Quer comparar eles com o iPhone, que surgiu DECADAS depois?

Até fico com a sensação que esse tipo de pessoa acha que é só fazer "plim" e aparece uma super-power tecnologia nova. Antes do google nascer, houve engines podres de pesquisa (quem lembra das primeiras versões do Yahoo?). Antes dos monitores LCD nem existiam monitores (alguém lembra que o MSX ligava na televisão?) - lembrando que hoje você paga caro por uma placa que ligue na TV. Aliás, antes do Windows (ou até do DOS) nascer, houve um negócio chamado terminal burro... Já ouviu falar? Usei todas essas "babaquices", e nunca vi problemas nelas. Na época, era a única opção - hoje é "retrô" e divertido lembrar.

Detalhes: também odeio os problemas do Windows, mas aprendi a entendê-los e a lidar com eles. Acho que só vi uma tela azul nesse ano, e foi quando meu HD pifou com o computador ligado - e o "gatinho" sobreviveu muito tempo antes de aparecer a BSOD.

Aliás, o "Breno" também falou de problemas, que, segundo ele, era do Windows: "Conflito de IP" e "Estouro de Pilha". "Conflito de IP" eu só vi quando tinha uma anta gerenciando os endereços da rede. Anta que, no mínimo, não sabia associar IP ao MAC. "Estouro de pilha" eu via no século passado, quando programava Pascal e fazia uma recursividade infinita no DOS com um stack de 16k ou menos. Aliás, esses dois problemas só ocorreram por causa de BIOS (Bicho Ignorante Operando o Sistema).

Já programei sistemas dos menores aos mais monstruosos. Todos, sem exceção, tem algum problema. Testar, achar e corrigir bugs não é fácil. Tente só CONCEBER um cenário de testes (fictício) do tipo "se o Windows for XP sem o KB123456, mas com o KB123444, com o Word 2003 visualizando um documento 97 com uma figura .PNG 320x120 vinculada, o Windows trava por que a biblioteca XPTO.DLL (que o KB123444 altera, o KB123456 desativa, o Word 2003 usa para descompactar o ZLIB do PNG do DOC versão 97 e o KERNEL32 usa para abrir uma parte do cabeçalho das pastas NTFS compactadas) recebe um buffer de exatos 123kb, que gera um erro de módulo zero, que gera um E_ACCESS que é camuflado, e bloqueia as futuras chamadas do KERNEL32".

Impossível testar um caso tão absurdamente específico. Só em produção, mesmo. E tome-lhe tela azul e usuário xingando. Eu agradeço por ser uma tela azul, e não um "seu arquivo foi perdido". Ou, como um BIOS que um dia foi concertar (aquilo não foi um conserto) meu PC e, ao ver que o supracitado não efetuava o boot, simplesmente FORMATOU o HD. Detalhe que anos depois eu tive o mesmo problema e descobri que foi só mau contato.

3Out/080

Razões para amar os xiitas

Quando postei uma ligeira crítica sobre o Zope/Plone, tinha certeza que os xiitas Zope/Plone iriam fazer a festa.

Adoro os xiitas. Parecem gaivotas, que se alvoroçam ao menor sinal de comida. Tanto gaivotas quanto xiitas são divertidos, pois basta jogar alimento para aparecer uma penca, se debatendo em uma deseperada luta de sobrevivência. O alimento dos xiitas é críticas a qualquer coisa que eles amem.

Algo me diz que tanto Tiago quanto Gustavo não leram o penúltimo parágrafo do meu post. Falei explícitamente que aquilo que mostrei "não é um bug nem uma invasão". Só é o tipo de recurso de POG que odeio.

Tiago: não falei de SQL-Injection. Injetar, segundo o Michaelis, também significa "importunar", que foi bem o que eu disse no post - é um ótimo recurso para importunar os amigos.

Gustavo: eu aproveitei bem meu curso. Sei instalar e configurar um sítio zope/plone do zero. Da mesma forma como sei executar chamadas WIN32 usando Assembly, ou fazer uma traqueostomia usando caneta BIC. Só não me peça para fazer nenhum dos três.

Agora, pergunto a qualquer xiita Zope/Plone que provavelmente odiou meu post: com tanto CMS nesse mundo, como o ExponentCMS, o Joomla, o XOOPS, mais uma dúzia em Java (tanto CMS quanto portais), vai acrescentar ALGO para QUALQUER PESSOA me chamar de idiota em meu próprio blog? Vai mudar o fato que eu ainda acho a interface de administração medonha? Vai mudar o fato que a mensagem de erro é um parâmetro GET?

Não, não vai. E digo mais: vai piorar, pois agora, além de não confiar na arquitetura (mensagem de erro em parâmetro GET - eca), e de achar a interface administrativa anti-intuitiva, agora tenho certeza que os xiitas Zope/Plone são mal-educados.

Em resumo, lembre-se que isso aqui é um BLOG PESSOAL. Não tem qualquer valor acadêmico ou mercadológico. Se querem mudar a opinião de alguém, não será na porrada. Estamos em 2008, rumo a 2009. A idade média acabou já faz algum tempo...

PS: Passar mensagem de erro em parâmetro GET é uma gambiarra bizarra, da época do ASP (pré-.NET) ou anterior, na qual os POGramadores não tinham como, ou não sabiam, guardar a mensagem em um atributo de requisição. Até guardar em sessão é melhor que mandar via GET.