Archive for November, 2005

A burocracia

Posted in Run to the hills! on November 30th, 2005

Ano passado, para quem não se lembra, eu “trabalhava” em um projeto de pesquisa. Então, como era de se esperar, meus rendimentos anuais ficaram abaixo do limiar de isenção de imposto de renda.

Em princípio, eu ia fazer a declaração normal de imposto, declarar o que eu tinha recebido e ia aparecer como isento, como fiz ano passado. Mas perdi a data de entrega da declaração.

Bom, daí resolvi (ou, eu tendo perdido a declaração normal, a Receita Federal resolveu por mim) fazer a declaração de isento. É claro, a menos de 9 horas do encerramento do prazo.

Já acessei o site da Receita preparado pra provação. Clico no link de “instruções”. Blá blá blá, quem precisa declarar, quem não precisa, o que acontece se você não declarar (4,50 reais de multa, que eu já estava conformado em pagar, já que certamente não iria ter, aqui no trabalho, os documentos necessários pra declaração). Ok. Link da declaração.

Carregando a página… Ih, pronto, já vi tudo, ainda por cima o site vai estar caído. Claro, no último dia! Clico de novo. Conexão recusada. Saco. Desencano e pago a multa depois? Vamos lá, última tentativa.

Carregou! Formulariozinho pedindo CPF, data de nascimento, título de eleitor. Residente no exterior? Não. Conta bancária? Sim. Automóvel? Sim. Imóvel? Sim. Dependente? Não. Email (opcional). Enviar. Bom, agora eles disponibilizam o link pro aplicativo java pra eu finalmente poder fazer a bendita declaração.

“Declaração entregue com sucesso.” Saco, lá vamos nós, essa burocr…

Hein? Só isso? Acabou? “Imprima esta tela ou anote o número da declaração”. Imprimi. Só? Mais nada? Mesmo?

Fiquei tão frustrado que ainda segui o link de “atualizar endereço”, que eu sabia já estar atualizado, só pra ter o que fazer, no tempo que tinha separado pra declaração…

Cada uma…

Posted in I don't believe in categories on November 29th, 2005

Bom, como tenho postado, ultimamente, sobre teorias, aqui vai mais uma. Esta, felizmente, não é minha. Tradução minha do início deste artigo:


A teoria panleonista propõe que uma civilização altamente avançada existiu na Terra durante a era de Leão (por volta de 10900-8700 AC), mas foi destruída por um cataclisma por volta de 10500 AC e portanto se tornou uma “civilização perdida”. Esta teoria propõe que a civilização perdida codificou a data 10500 AC em seus monumentos (por exemplo, por alinhamentos astronômicos) para comemorar (nota minha: no sentido de “lembrar”, “marcar”) a data do cataclisma.

(…)

[Alguns autores e "estudiosos" afirmam] que as Pirâmides de Giza e a Esfinge foram construídas para comemorar a data 10500 AC.

Tá. Então quer dizer que uma civilização avançadíssima foi destruída por um cataclisma. E, depois de ter sido destruída, construiu monumentos gigantescos e complexos? Um desastre capaz de aniquilar toda uma civilização avançada deixou gente e tecnologia o bastante pra construir, entre outros, as Pirâmides e a Esfinge, e depois mais nada??

Vai ver foi uma tragédia moral, seguida de suicídio coletivo

Gúgol Níus!

Posted in Run to the hills! on November 27th, 2005

Eu quase parei de usar o Google, quando soube que eles abriram um escritório no Brasil e nem me chamaram, mas, como bom cristão que não sou, acabei perdoando: o primeiro lançamento da equipe brasileira (mineira, de Belzonte, pra ser mais exato) foi a versão em Português do Google News! Com centrais de notícias para o Brasil e para Portugal!

Agora ninguém mais tem desculpa pra não ficar a par dos últimos acontecimentos!

Exceto, é claro, desgosto…

Outra teoria

Posted in I don't believe in categories on November 17th, 2005

Quem leu o post sobre minha teoria dos metabolismons deve ter pensado “Genial! Uma pessoa assim só pode ter um cérebro privilegiado!” E, com efeito, já foi dito que eu estou sempre certo (embora a modéstia me impeça de concordar).

Acontece que conclusões geniais passam inevitavelmente por um longo amadurecimento. O processo de refinamento de teorias pressupõe várias etapas, como discussão com pares, leitura, revisão, testes etc. E, em ocasiões muito particulares, verificação de consistência com a realidade. Sempre fui um grande partidário de que o mundo “real” (”how do you define real?” -> “#define real“) não deve servir de entreposto a uma boa teoria, mas correntes mais “clássicas” insistem em se apegar ao observável.

Logo que este blog surgiu, comecei a notar uma tendência de posts menores receberem mais comentários que posts maiores. Postulei, então, que a quantidade de comentários em um determinado post é inversamente proporcional ao tamanho do post. E anunciei, feliz, a “Lei do Bê do Érre”, repetindo-a sempre que reclamava de que ninguém comentava no meu blog.

Bom, hoje resolvi deixar de ser vagabundo, fiz um programelho pra listar o tamanho e o número de comentários de todos os meus posts e gerei um gráfico com esses dados:

Como podem ver, embora haja bastante “ruído” causado por posts de tamanhos diversos com poucos comentários (pelos quais só posso culpar a mim mesmo, que sempre prometo posts mais interessantas mas raramente cumpro), a tendência dos picos de número de comentários é realmente descrescente com o número de caracteres do post.

É claro que com tão poucas amostras é difícil tirar conclusões, digamos, conclusivas. Quando este blog tiver número de posts na casa dos milhares, repito o experimento. Tudo em nome da ciência!

Coisas que fazem você repensar a carreira…

Posted in Garoto de programa! on November 16th, 2005

… Ou, pelo menos, como pretendia se profissionalizar nela:

Meet the IT Gigolo O sujeito colocou um anúncio dizendo “Conserto computadores por favores sexuais”. E, segundo o visionário, tem dado resultado! E eu, aqui, trabalhando pra cacete, quando poderia estar trabalhando *por* ele!

Patologicamente eclético

Posted in Garoto de programa! on November 10th, 2005

[Comecei este post várias semanas atrás. Entre revisar, acentuar (escrevi originalmente sem acentos) e enrolar, acabou demorando mais do que eu imaginava. Resolvi, então, postar de uma vez. Quaisquer inconsistências são culpa da pressa e de medicação forte :)]

Uma das minhas primeiras linguagens de programação foi Perl. A primeira, descontando Logo (que aprendi por volta dos 10 anos, acho, e que, no final das contas, só fazia você mover uma tartaruguinha pra lá e pra cá), foi C, que aprendi com um livro emprestado de um amigo da minha mãe. Aliás, me arrependo até hoje de não ter ido atrás de aprender Basic, quando eu devia ter uns 8 ou 9 anos e meu pai sugeriu, vendo meu interesse no TK3000 que ele tinha. Não pela linguagem em si, mas eu teria começado a programar mais cedo, e provavelmente já iria direto pra Ciência da Computação. Por outro lado, por mais que tenha havido percalços, aprendi muito no meu tempo da Física. Mas isso é assunto pra outro post (que provavelmente nunca será escrito - mas isto também é assunto pra outro post!).

Mas estou divagando. Aprendi C por gosto, no comecinho do meu curso de Física, antes de ter uma matéria a respeito na faculdade (e aprendi bem o bastante para fazer o que eu achava, na época, que eram excelentes EPs, ou exercícios-programa). Eu programava pra me divertir, ficava ansioso pra ver se o programa realmente fazia o que eu achava que ele fazia, e perdia muitas noites de sono tentando encontrar e solucionar bugs (em certa época, esse número de noites passou a ser tão grande que marcou o começo do meu abandono da Física).

Flertei rapidamente com Delphi, quando comecei uma iniciação científica no final do primeiro ano de faculdade. A iniciação era na Física, mas meu projeto era relacionado a computação (um sistema de armazenamento de dados), e, na prática, eu era orientado por um mestrando da professora que era, oficialmente, minha orientadora. Ele tambem era programador e programava muito bem em Delphi. Aprendi bastante com ele, mas a verdade é que Delphi nunca me cativou. Sendo já um adepto de C (até hoje tenho saudade e vontade de usá-la em algum projeto), eu não gostava da sintaxe derivada do Pascal, e nunca gostei de ter a interface gráfica acoplada à linguagem (o que, curiosamente, é difícil de explicar pra quem nunca programou). Aprendi muito sobre conceitos de programação, nesta epoca, mas acabei não retendo praticamente nada da linguagem.

Em seguida, aprendi Perl. Junto com a iniciação científica eu havia dado um grande salto no meu aprendizado de Linux, e a distribuição que eu passei a usar (e continuo usando, até hoje) era (e continua sendo, até hoje) fortemente baseada em Perl, e a linguagem comecou a me chamar a atenção. Lá pelo meio de 1997 fui fazer um estágio no CCE da USP, programando Perl, onde tive acesso à primeira edição do “Camel Book“, livro do Larry Wall (criador da linguagem). Este livro mudou completamente minha noção de programação, e mesmo de computação. Ou melhor, o Larry Wall mudou, neste livro e pelo que li e ouvi dele desde entao. Mas o livro, em particular, já provocou uma revolução na minha cabeca. O prefácio dizia (tradução minha): “Para aqueles que meramente gostam de Perl, ela é a Linguagem Prática Para Extração e Relatórios (’Practical Extraction and Report Language’). Para aqueles que a amam, é a Listadora [sic] de Bobagens Patologicamente Eclética (’Pathologically Ecletic Rubish Lister’)”. E, algumas páginas adiante, pela primeira vez eu lia “Há Mais de Um Jeito de Fazer (’There’s More Than Onde Way To Do It’, ou TIMTOWTDI)”, o slogan do Perl. Perfeito. Uma linguagem de programação bem-humorada, que se esforça pra entender o que você quer dizer. Que se adapta, de acordo com o contexto, ao que faz mais sentido, ali. Em que se pode escrever poesia, inclusive poesia concreta. Enfim, uma linguagem que trata programação não como um ofício, ou como engenharia, mas como uma forma de expressão. Até hoje digo que, pra mim, programar é um processo criativo semelhante a escrever um texto (mas suspeito que dou menos sono aos leitores dos meus programas), e Perl incorporava exatamente isto.

Bom, daí em diante programei Perl por muito tempo. No estágio do CCE, no estágio seguinte (no provedor de acesso de um amigo meu), no meu primeiro emprego de verdade (montar a infra-estrutura do que viria a ser um provedor de acesso
de banda-larga) e em uma série de “frilas”. Nesse meio tempo, aprendi PHP, cheguei a usá-la para alguns projetos, mas nunca gostei da linguagem. A premissa de embutir programação no HTML (ou vice-versa) já me parecia ruim na época, e hoje considero quase uma heresia. Funciona pra meia dúzia de páginas, mas para mais do que isso vira um pesadelo. É claro, você sempre pode usar templates, fazer os programas separados, mas para isso você não precisa de PHP, use uma linguagem que já parte deste pressuposto. Aprendi também, na faculdade, um pouquinho de C++ (mas nunca fui mais a fundo, ainda quero aprender direito) e até Fortran, uma linguagem que, a saber, atualmente só é usada na própria Fisica (e, por conseqüência, na Engenharia). Aliás, Fortran tinha algumas características meio bizarras, para o meu entendimento àquela altura, como passar dados por referências, ou dar importância a indentação. Irônico estranhar isto, na época, e programar hoje em uma linguagem com características semelhantes (estou sendo obviamente sarcástico, Python não tem semelhança alguma com Fortran).

Em 2000 fui para a Conectiva e, apesar do que eles constantemente me prometiam, nunca pude oficialmente programar, lá, mas continuei usando Perl fortemente para projetos pessoais, e mesmo programando informalmente dentro da empresa. Na época tive meu primeiro contato com Python, mas me pareceu uma linguagem esquisita, restritiva, quando o que me atraia à programação era justamente a liberdade. Por volta dessa época tive meu contato mais sério com Java, que foi utilizada numa matéria que cursei no IME (enquanto eu ainda tentava conciliar a Conectiva, a faculdade e minha falta de organização e de maturidade). Não achei Java de todo ruim, mas parecia meio burocrática demais, meio “trambolhosa”, assim por dizer. Ao contrário do que possa parecer, já que brinco sobre isso com freqüência, não odeio Java, só não vejo muitas vantagens nela. No Senac há um viés forte de Java, então recentemente aproveitei pra conhecer melhor, mas “Quanto más conozco al Java, más quiero a mi Python”.

Saindo da Conectiva, no meio de 2002, minha vida ficou em um limbo, com problemas particulares tomando boa parte de, digamos, o ano seguinte, e isso se extendeu à programação. Não consigo pensar em nada que tenha feito, na área, durante este período (e consigo pensar em várias coisas ruins que fiz, fora da área). Mas, se eu fiz algo, muito provavelmente foi em Perl :)

E, finalmente, chegamos ao final de 2003, começo de 2004, quando, após muita insistência do Leo (e muita implicência minha em retribuição), comecei a aprender Python. Eu já havia ensaiado dar uma olhada na linguagem uma ou duas vezes, além da que citei aqui, mas nunca havia parado pra prestar atenção. Inventei um projeto (o zzbot) e fui programar. Muitas das críticas que eu tinha deixaram de ser problemas logo nos primeiros dias de programação. Algumas persistem até hoje. Mas o fato é que Python facilita muito a organização de idéias. É uma linguagem orientada ao problema, não à própria linguagem (como, por exemplo, C ou Java, em que você passa boa parte do tempo tentando descobrir “como esta linguagem faz isto?”, ao invés de “como eu resolvo o problema que tenho em mãos?”). É realmente uma linguagem de fácil leitura, e qualquer programador previamente organizado não tem maiores problemas com a indentação forçada, já que deveria ser uma atitude natural pra começo de conversa. E, na minha opinião, é sem dúvida a melhor linguagem para ensino de programação que conheço. Acabei fazendo também em Python um projeto pra faculdade que eu havia originalmente pensado fazer em Perl, sob a racionalização (correta, acho) de que o professor, não conhecendo nenhuma das duas, teria mais facilidade de entender Python. Deste projeto surgiu meu trabalho de conclusão de curso, que, portanto, também vai herdar a linguagem. Hoje em dia, sou oficialmente um programador Python profissional. Adotei a linguagem, e quando penso em um problema já comeco a pensar nela para a solução, inclusive para soluções que eu já havia parcialmente desenvolvido em Perl.

Agora, até hoje não consegui superar a sensação de que Python é uma linguagem muito “certinha”. O que é ótimo para soluções “limpas”, corporativas ou científicas. Mas não necessariamente para expressões artísticas. Bom, muita gente argumentaria que linguagens de programação *não* são para expressão artística, são para *programar*, e programas deve ser eficientes, legíveis e corretos (não necessariamente nesta ordem de importância). Não discuto, devem mesmo. Mas acho que isto eh só uma faceta de programação. É a faceta “desenvolvimento de software”. Uma coisa séria, com teorias, estudos, Ciência da Computação. Mas, além de cientista da computação (que só serei, na verdade, no ano que vem), sou também programador, hacker, fuçador. E, nesta persona, eu gosto de me expressar escrevendo programas. Gosto de ter mais de uma forma de fazer as coisas (contra o mantra de Python que diz só haver uma forma óbvia de fazer). Acho que explícito é melhor que implícito, mas acho que há beleza no implícito. Acho fantástico que haja concursos de poesia em Perl. E acho sintomático que uma comunidade tenha uma lista de discussão chamada “Fun With Perl” enquanto a outra tenha um site chamado “Python Challenge“.

Já faz algum tempo que não programo em Perl. Minha última tentativa foi um programinha que fiz às pressas, ficou feio, remendado, certamente cheio de bugs. Já me peguei dezenas de vezes pensando em reescrevê-lo em Python (ou, mais ainda, em Plone, já que o programa é para acesso via web). E leio cada vez menos a lista de discussão de Perl, enquanto participo mais e mais ativamente da lista, do canal de irc e da comunidade Python de modo geral (eu ia inclusive fazer uma palestra sobre Python e Aprendizado Computacional, no Conisli, mas precisei cancelar de última hora por imprevistos no trabalho). Mas ninguém ainda na comunidade Python conseguiu (nem vai conseguir) desbancar o Larry Wall, que consegue fazer uma palestra sobre o estado do Perl falando de agentes secretos, que sutilmente encaixou um “All Your Code Are Belong To Us” em uma palestra para um público mal selecionado, no FISL de uns anos atrás, que coloca “P+++++(–)$” em seu Geek Code, e que me ensinou que programadores devem ser preguiçosos, impacientes, orgulhosos e criativos.

Levante de um poeta

Posted in What does this button do? on November 7th, 2005

“Por pão, honra e riquezas,
Longa e árdua foi minha labuta,
Mas vocês me pisotearam demais,
Seus belos filhos da p…”

(”I’ve labored long and hard for bread,
For honor and for riches,
But on my corns too long you’ve tred,
You fine-haired sons of b…”)

– Charles Bolles, a.k.a. Charles E. Bolton, a.k.a. Black Bart.