Thursday, December 08, 2005

Semáfaros e smalltalk.

Eu sou um pedestre convicto, pelo menos até eu mudar de idéia. Atravesso o campus da USP todo dia sobre as minhas duas pernas, cruzando as largas avenidas e as famosas rotatórias. Atravesso olhando para os dois lados, pois aparentemente esse layout viário é como um convite para os motoristas descarregarem suas frustrações no acelerador acertando, se tiverem sorte, um estudante ou dois no caminho.

Depois de muita enrolação, a prefeitura do campus resolveu o assunto instalando uma meia dúzia de semáfaros para o rebanho de alunos atravessar sem ser abatido. Eu deveria estar contentíssimo com o incremento na minha probabilidade de sobreviver à USP. Mas não. Eu odiei esses semáfaros. E não é porque eu tenho algum desejo inconsciente de comprar um carro veloz e sair atropelando polianos por aí.

Eu não gostei dos semáfaros porquê eles são, bem, feios. Não porquê poluem a paisagem ou outra viadagem desse tipo. São feios porque estragam um sistema que era belo. A beleza do trânsito organizado puramente pela combinação desses dois elementos, avenidas e rotatórias, é corrompida pelos sinais como se alguém escarrasse num Mondrian.

Voltando à vaca fria, admito que ainda não consegui uma resposta satisfatória sobre "o que é ciência da computação", mas tenho a impressão que a resposta envolve esse tipo de beleza. A criação de estruturas é uma constante na prática matemática moderna, mas o apreço ao minimalismo e à composibilidade me parecem marcas características da Ciência da Computação.

Um ótimo exemplo é a linguagem Lisp, onde todas as computações são funções e todo dado é uma lista. Outro exemplo é Smalltalk, onde tudo são objetos que se comunicam pela troca de mensagens. E como ficam as linguagens usadas por seres humanos normais? Retomando a analogia, Java parece um monte de semáfaros enfiados no pobre Smalltalk. E, embora eu nunca tenha programado em C++, ele me lembra um pouco o metrô de tokyo...

Wednesday, November 30, 2005

MSDN Poetry

Código C++ ou poesia marginal? Trechos de um artigo na msdn:


IUnknown* pUnkSite
....
ATL, in fact, simply stores the IUnknown pointer to a member variable called m_spUnkSite.
....


Este post me fez sentir meio Beavis and Butthead. Ainda bem esse tipo de coisa não é frequente... Heh huh.

Tuesday, October 25, 2005

Duas coisas

  • E, como sempre, agora vem o anti-hype. O ciclo de "newthing é completamente revolucionária!" -> "newthing não tem nada realmente novo!" -> "que newthing o que? o lance agora é a newnewthing!" se repete...
  • Agora o Gmail permite que se configure o endereço "From". Nada extraordinário, mas é a feature que mais me fazia falta desde o começo.

Wednesday, October 19, 2005

Thursday, October 06, 2005

Eco

O meme "Web 2.0" continua forte:
  • Longo artigo do Tim O'Reilly explicando no que estava pensando quando inventou o nome "Web 2.0",
  • Zimbra. Servidor de email e colaboração (a.ka. 'Exchange killer') open source, escrito em Java, com uma interface AJAX cheia de truques (e meio lenta, pelo menos por aqui).
A propósito, falar em Buzzwords é outra relíquia da década passada. O buzzword oficial para buzzword agora é meme. Eu sei que o Dawkins teve essa idéia faz tempo (1976, segundo a wikipedia), mas agora o meme meme pegou, if you catch my drift.

Saturday, October 01, 2005

This blog is not dead.

Geeks com a mesma veêmencia com que costumam desprezar a idéia de religião, adoram se engalfinhar em discussões religiosas. Lembrando torcidas de futebol (outro grande grupo de imbecís), passam horas atirando falácias e sofismas uns aos outros em defesa das cores da camisa. Entre programadores, já há alguns anos, estas camisas costumam ostentar os caracteres ".net" ou uma xícara estilizada. Apesar de evitar participar destes pissing contests, eu confesso que andei mais pro lado da xícarazinha.
A maior crítica que o pessoal de Java faz é que o Outro Lado simplesmente copiou tudo que eles criaram, polvilhou um açúcar sintático e ajambrou um GUI builder para agradar os milhões de desenhadores de janelas descerebrados. E é difícil discordar desse argumento. Era; hoje a Microsoft se prepara para lançar a terceira versão do C# e VB.net, que contêm o mais próximo de uma revolução em linguagens de programação mainstream desde que Java trouxe OO as massas (sim, estou ignorando c++).
No PDC (o JavaOne deles, para meus colegas da xicarazinha), a Microsoft divulgou uma série de features adicionadas ao C# e ao VB que culminam com o Linq, "Language Integrated Query", um mecanismo sintático e semântico que permite ao desenvolvedor escrever queries na própria linguagem de programação. Vejam estes exemplos:

Cool, huh? A query language é abstraída do modelo de dados subjacente. Como este modelo de programação escala destes pequenos exemplos para aplicações inteiras eu não sei, mas será interessante descobrir. O Linq não apareceu do nada, ele é construído em cima de uma série de funcionalidades de metaprogramação que C# e VB.net ganharam (vejam post do Ted Neward sobre isso). Falar em metaprogramação me faz lembrar das tão faladas linguagens dinâmicas; e o Sam Ruby mostra como seria a versão do exemplo do Udell na linguagem homônima. Parece razoávelmente limpo e bastante similar. Se me permitirem uma pequena digressão, só observem como ele cria elementos chamando no objeto 'xml' um método com o nome do elemento a ser criado ('xml.title', por exemplo).
Esta comparação mostra o quanto a tipagem estática torna complexa a evolução de uma linguagem (Anders Heiljsberg comenta sobre isso neste podcast); uma simples aplicação de bibliotecas comuns numa linguagem sintáticamente minimalista permite expressividade semelhante a um mecanismo que exigiu anos de pesquisa e trabalho duro.
O mercado de linguagens de programação está esquentando, muitas novidades vindo à tona e ninguém sabe dizer como estaremos programando daqui a cinco ou dez anos. Eu pessoalmente espero que a resposta a esta pergunta seja múltipla e que os paradigmas mais declarativos encontrem seu espaço em meio à uma massa de programadores mais esclarecidos (essa última parte é a menos provável, creio). No mínimo, espero que as contendas dos próximos anos evolurião além do infantil "nós temos propriedades e vocês não têem" que marcou a última década.

Sunday, June 05, 2005

Filmes

Resolvi imitar meu amigo Sérgio e também fazer comentários sobre os filmes que assisti recentemente.
  • O Guia do Mochileiro das Galáxias - Adaptação do livro homônimo, primeiro volume de uma série literária do Douglas Adams. A força dos livros vem do non-sense genial do enredo, dando vida a um humor tão britânico que a comparação com Monthy Python é inevitável, e da maestria do autor ao brincar com palavras, indo muito além de meros trocadilhos. Essas características foram responsáveis por tornar a série numa espécie de ícone cultural e também por atemorizar qualquer um que pensasse em se aventurar numa adaptação cinematográfica. Os malucos que toparam a façanha chamam-se Hammer e Tong. É, Hammer e Tong, da patota do Spike Jonze e Charlie Kaufman (o Spike foi um dos que fugiram da raia e se recusou a dirigir o filme). E então, eles conseguiram traduzir todo o estilo Douglas Adams para a tela grande? Não. Na verdade, nem tentaram; e ainda bem. O filme anda com as próprias pernas e é excelente por si só. Mas qual é melhor, o filme ou o livro? Puta que pergunta idiota, acho que preciso parar com esse truque de escrever em Q&A, que já tá enchendo o saco (veja todos os posts anteriores...). Anyway, vejam o filme, é hilário e Marvin é o melhor personagem não humano que já passou pela tela grande (e muito melhor que a maioria destes, também).
  • Casa de Areia - Não é um filme ruim. Dificilmente poderia ser, dado o nível do elenco. Mas é irritantemente pretencioso. Enquanto assistia, a imagem do diretor vestindo uma boina, fumando um cachimbo, olhando pro alto e pensando "eu sou um gênio" cruzou a minha mente algumas vezes. Outra coisa que me passou pela cabeça foi a semelhança com o Paciente Inglês; os diretores de ambos filmes parecem comparilhar uma certa obsessão com areia. Muita areia. Minutos e minutos contemplando areia. Mas é serio, não é um filme ruim...
  • Brilho Eterno de uma Mente sem Lembraças - Mais uma incrível criação da mente genialmente perturbada de Charlie Kaufman. Quase tão bom quanto 'Quero ser John Malkovich'; vejam. A propósito, Charlie Kaufman é deus. Ponto.

Wednesday, May 25, 2005

??

Faz muito tempo que não faço nenhum post nesse papel higiênico digital, então resolvi escrever alguma coisa antes que se declare extrema-unção ao blog. Pensei em abordar algum tema técnico, mas agora não tenho muito a contribuir às discussões que tenho acompanhado (SOAP vs REST, dinâmico vs. estático, livre vs. proprietário, smalltalk vs. lisp, IoC vs. Service Locator, ...). Então resolvi viajar. Não me responsabilizo pelos efeitos à saude mental dos leitores que as próximas linhas possam vir a provocar.

Eu já quis acreditar em Deus. Mais recentemente, eu quis acreditar na ciência. Tentarei explicar porquê falhei nestas aspirações e hoje não acredito em nada. Eliminar a religião é simples: os conjuntos de crenças (dogmas) que compõem todas as religiões que conheço são simplesmente incoerentes. E as tais "interpretações não literais" dos escritos sagrados, ao meu ver, não passam de estudos de literatura ficcional. Podem ser bons estudos de ótima ficção, mas não têm conexão real com filosofia. Notem que eu tratei de religião, não de gnosticismos pouco dogmáticos.

A ciência é um processo de sucessivas construções e refutações de modelos preditivos. Essencialmente, se estabelece algum esquema teórico para prever resultados de experimentos, este esquema é testado observando-se instâncias "reais" de experimentos até que se afira um resultado diferente do previsto; a partir daí novos esquemas são desenvolvidos e o proceso segue indefinidamente. Problemas? Um deles é a constatação que os resultados das observações se adequam a infinitos modelos preditivos (teorias). Imagine, por ilustração, que o oxigênio que você respira, por um instante, enquanto ninguém está medindo, se transforme em um gás venenoso letal. E mais, neste mesmo instante, o seu corpo passa a ser capaz de respirar este veneno com o mesmo efeito que o oxigênio tinha antes. Loucura? Provavelmente, mas o fato é que este cenário absurdo é, a rigor, tão válido quanto o pintado pela ciência tradicional. Uma tentativa de contornar este problema é apelar para a lâmina de Occam, princípio que reza "a explicação mais simples é sempre a mais verdadeira". Ou seja, o método científico toma refúgio no abraço terno da subjetividade...

Mas existem problemas mais fundamentais. O maior, ao meu ver, é o que chamo de problema da premissa. É absurdamente simples e não tenho dúvida que já foi levantado, e provavelmente melhor nomeado, inúmeras vezes antes. Não obstante, eu não consigo enxergar uma saida para o labirinto de paradoxos trazidos por esta questão extremamente direta: se o pensamento racional é basicamente uma cadeia de deduções, de onde vem a primeira premissa? Dado que não somos infintos então certamente há uma premissa, ou um conjunto delas, que são base para todo o resto do raciocínio. Uma delas parece ser a própria noção que o raciocínio dedutivo preserva a verdade das proposições. Outra pode ser o conceito binário de verdade/falsidade. Creio que este conjunto basal é indeterminado, pois ele afeta o próprio processo de sua identificação. E mesmo sem identificá-lo eu me pergunto por que devemos acreditar nestas premissas. Afinal, por que as proposições são ou verdadeiras ou falsas? Por que a dedução é uma regra de inferência válida? E se não fosse? É concebível a existência de entidades, ETs se o leitor gosta dos exemplos extravagantes, cuja lógica fosse fundamentalmente diferente da nossa.

A objeção imediata a toda esta minha argumentação é que não podemos usar a razão para refutar a própria razão. Isto é um paradoxo. Mas a existência mesma deste paradoxo e de tantos outros que afloram ao tratar destas questões corrobora a minha tese de que não se pode, com rigor máximo, acreditar em nada.

A conclusão é o niilismo. Eu fugi deste termo por algum tempo, mas hoje não vejo opção senão aceitá-lo. Eu, sinceramente, gostaria muitíssimo de estar errado.

Sunday, March 20, 2005

Não sei se simplesmente reconheço o óbvio, mas ando pensando sobre como as linhas entre transporte, comunicação e autoria estão cada vez mais borradas. Não digo num nível fundamental, físico ou filosófico, onde estes conceitos são naturalmente próximos (a comunicação vista como transporte de informação no espaço, por exemplo). Penso em como o avanço tecnológico afeta o dia-a-dia das pessoas permitindo a intercambialidade de processos antes vistos como muito diferentes.

Email, instant messaging, ferramentas de trabalho colaborativo (a palavra groupware é tão anos 90 nesses tempos de wikis e folksonomies) conspiram para tornar o trabalho à distância tão ou mais eficiente do que a cooperação presencial. Evidência anedotal(*) revela que uma boa conversa de messenger na hora certa é muito mais eficiente do que qualquer reunião. Ou seja, viajar continua sendo ótimo, mas é cada vez menos necessário.

E a produção de conteúdo, que chamarei de "autoria" porque este texto está pobre em jargões, mudou profundamente. A democratização das tecnologias de distribuição permite que todo indivíduo tenha à sua disposição o mesmo potencial de alcance de grandes jornais e editoras e em breve rivalizará com as cadeias de televisão. Antes primado de artistas e especialistas, a autoria e disponibilização global de conteúdo estão ao alcance de qualquer um. A pergunta inevitável é quem serão os leitores, ouvintes, espectadores, apreciadores desta montanha de conteúdo criado por "qualquer um". Especialmente considerando que quando o autor é "qualquer um", a qualidade também é "qualquer". Aí que entra o conceito de comunicação. Uma boa parcela desta enorme produção será consumida apenas por amigos e conhecidos do autor. A comunicação em tempo real, presencial ou mediada, está sendo complementada pela geração de conteúdo disponível estáticamente na internet. Conversas se tornam permathreads, vivos caminhos difusos na web. Comunidades não moram no yahoogroups ou em qualquer outro site; são, como na vida off-line, redes difusas de contatos associadas a conjuntos, também difusos, de memes compartilhados.



* Evidência anedotal == eu realmente acho que isso é verdade mas não tenho argumento nem evidência objetiva nenhuma para te convencer disso. Mas dizer "evidência anedotal" é bem mais legal do que "eu acho que".

Misc Misc

  • Belo artigo do Cory Doctorow comentando a inevitabilidade da proliferação de parasitas em ecossistemas complexos (como SPAM no email). E como isso é apenas um preço a pagar pela riqueza dos sistemas.
  • O Allen Holub persiste escrevendo artigos com os quais eu discordo. E que, não obstante, são brilhantes. A despeito das conclusões exageradas, ele sempre apresenta uma boa argumentação e premissas não óbvias.

Friday, March 18, 2005

Misc Misc Misc

  • A amazon lançou a tecnologia OpenSearch na sua engine a9.com. Funciona como um agregador de mecanismos de busca, semelhante aos agregadores de RSS. Qualquer desenvolvedor pode definir um sistema de busca escrevendo um documento xml (vagamente análogo a um WSDL) e expondo os resultados no formato OpenSearch RSS. O protocolo de comunicação é simplesmente uma chamada à uma URL definida (HTTP GET), inserindo os parâmetros de busca nos lugares apropriados. Ou seja, o a9.com é um consumidor de Web-Services REST. Outra boa escolha foi basear o formato dos resultados no RSS, assim todo o corpo de software existente para lidar com blogs pode trabalhar com o OpenSearch.
  • O Google lançou um site para os seus projetos open source. No momento tem pouca coisa disponível: umas bibliotecas em Python e C++ e umas ferramentas de programação. Isso pode ser o embrião de um envolvimento maior do pessoal incrivelmente qualificado que trabalha no googleplex com software de código aberto. Mas hoje parece apenas uma resposta às críticas recentes que o Google aproveita muito software livre e não retribui nada (se ele é um serviço, não redistribui nada, e portanto é imune às partes contagiosas da GPL). Time will tell.
  • A Sun (sun research) está desenvolvendo uma linguagem focada em computação científica e de alto desempenho chamada Fortress. Leia-se Fortran do século 21 para supercomputadores. O pai da criança é o Guy Steele, um dos criadores das linguagens Java e Scheme.
  • Não costumo falar muito de eLearning, que é o foco do meu trabalho atual. Mas ler este artigo é imprescindível para quem tem algum interesse na área.

Sunday, March 06, 2005

Bits, elétrons e átomos

Se o leitor acompanha a Folha de São Paulo, sabe que é raro encontrar uma edição em que somente um colunista critica a taxa de juros. A rejeição às sucessivas altas da Selic parece ser um sentimento generalizado na sociedade - exceto entre os membros do Copom e um ou outro economista da PUC-RJ. Eu avisei no primeiro post deste blog que pretendia falar sobre um monte de assuntos sobre os quais eu na verdade não sei quase nada. Economia não é exceção. Mesmo.

Disclaimer feito, voltemos ao assunto. A taxa é alta para tentar forçar uma baixa na inflação. O Banco Central fixa um valor desejado para inflação, divulga-o, e passa o resto do ano regulando a Selic (taxa de juros básica da economia). Mas isso não funciona lá muito bem, como é denotado pela posição brasileira de líder no ranking mundial das taxas de juros. Isso se dá, entre outras razões, devido ao alto peso dos preços adminstrados nos indíces de inflação.

Preços adminstrados são aqueles que não são determinados pela dinâmica de mercado, mas direcionados pelo governo. Em geral correspondem aos chamados monopólios naturais, como os sitemas de saneamento, telecomunicações e energia. Estes serviços correspondem a uma parcela importante do mercado consumidor e influenciam a formação de preços de quase toda economia. No Brasil, o processo de privatização culminou em contratos que estabelecem reajustes regulares dos preços destes serviços; portanto não podem ser influenciados por variações nas taxas de juros. Vamos tentar analisar o quão naturais são, realmente, estes monopólios.

O fim da abundância de água potável no planeta é alardeado pelos ambientalistas. Esta realidade, aliada a dificuldades logísticas intrínsecas, torna praticamente impossível algum modelo de competição para o setor. Qualquer que seja o modelo de negócios, envolverá, necessariamente, uma participação pesada do governo.

No ramo da eletricidade, hoje, a logística também é um grande limitador. A infra-estrutura de postes e linhas de transmissão é caríssima, para não falar nas usinas de "geração" em si. Mas o caso é bastante diferente do saneamento, visto que, enquanto que o consumo de água é literalmente vital, ninguém usa realmente a eletricidade(1). Ela é, tão-somente, um meio de transmissão de energia. Nas usinas esta é transformada de algum estado original, como a energia química do petróleo, em elétrica(2). Na outra ponta, na sua casa por exemplo, a energia elétrica é transformada novamente em alguma forma útil. Seguindo com o exemplo, esta poderia ser a energia do movimento das pás do ventilador, que torna possível a vida em lugares inóspitos como São Paulo. E daí? Daí que qualquer sistema mais eficiente para transformar alguma forma "natural" de energia em outra que seja útil para os usuários pode revolucionar a indústria. É claro que isso não é fácil e, provavelmente, a eletricidade como um intermediário estará presente. Mas aqui temos um setor onde modelos competitivos são possíveis dadas as necessárias inovações tecnológicas. Infelizmente eu creio que tais inovações são do tipo que demoram para serem criadas e depois demoram ainda mais para serem adotadas. Em resumo, existe luz no fim do túnel, mas este é longo...

Chegamos enfim ao lucrativo mercado de telecom. A lucratividade advinda da condição de monopólio natural era inevitável quando este mercado se definia por "transmitir ondas sonoras entre localidades distantes usando variações de voltagem em fios condutores". Mas hoje é patente que uma definção mais correta do setor seria "transmissão de informação entre pontos distantes". O problema para as teles é que transmitir bits é fácil - muito mais fácil do que energia elétrica ou átomos de água. A informação pode viajar através de ondas de rádio, pulsos de luz, sinais de fumaça, etc, etc... A conclusão lógica é que o papel do governo neste "novo" mercado da "transmissão de informações"é desmontar as regulamentações da época do "transporte de ondas sonoras" e deixar a mão invisível dar um tapa na bunda das empresas que não se adaptarem.

Se a memória do leitor for parecida com a minha, neste momento você já deve ter esquecido do disclaimer, então vou repetir: eu não entendo nada de economia. Take everything I just wrote with a huge grain of salt.



(1) Eu sei que correntes elétricas fazem parte da maquinaria do sistema nervoso, mas não precisamos enfiar o dedo na tomada para ter um pensamento. Pelo menos na maioria das vezes.

(2) Energia de movimento (cinética) dos elétrons.

Saturday, March 05, 2005

Microsoft usado servidores sun




São USS$850.000 em servidores sun com processadores AMD Opteron rodando Windows 2003. (fonte).

Sunday, February 20, 2005

Nota

Curioso demais para deixar para depois: um cara registrou a marca Freedom of Expression®.

Saturday, February 12, 2005

Poder das pontas

Com o estouro da bolha dotcom começo desta década, uma espécie de depressão tomou a indústria. Não havia mais aquele cheiro, característico das bolhas, de dinheiro fácil no ar , aquela sensação de que a cada dia uma nova GM estava sendo inventada, a exuberância do desabrochar de uma nova economia. Tudo acabou um dia no ano 2000, com uma bela linha descendente no gráfico do NASDAQ. Mas a Internet, a locomotiva desse trem insano, não foi junto para o precipício. Graças às suas características fundamentais, ela se reinventa, longe dos bolsos grandes e visão curta das corporações antigas e dos instintos estúpidos dos jovens investidores:
  • O movimento dos bloggers deu nova vida ao intento original da Web, um meio onde todos são leitores e autores de conteúdo. De passatempo geek, passou a moda adolescente, e agora já começa a assustar a grande mídia. O episódio do Dan Rather foi emblemático. Agora os blogs trazem a reboque outras novidades interssantes como os podcasts e screencasts.
  • A democratização na produção de conteúdo acompanha uma mudança no seu consumo. É o chamado fenômeno Long Tail. Pense na distribuição da frequência nos cinemas. Alguns blockbusters concentram a maior parte do público enquanto que os demais filmes lutam por espaço em umas poucas salas alternativas. Quando o conteúdo todo passa a estar permanentemente disponível, a qualquer momento, o padrão de consumo muda. Ainda existem os campeões de bilheteria, mas as outras produções começam a ver um fluxo maior de espectadores - é o long tail. Esse fenômeno pode ser extrapolado para toda produção de conteúdo que é disponibilizada de alguma forma na internet.
  • Veja o botãozinho laranja de "xml" ao lado. Ele leva a uma versão machine-readable deste blog. Isso possibilita a criação de programas que tratam a informação contida aqui e em todo outro blog que se disponibiliza da mesma forma (a maioria). É a progressiva estruturação do conteúdo na Web. Outra tecnologia nesta direção é o padrão Friend Of A Friend (FOAF), um tipo de documento que permite a formação de redes de relacionamento de forma mais integrada à mecânica da Web do que os sites como Orkut e Friendster. Estamos a caminho da utopia semântica do Tim Berners-Lee. Não sei dizer se chegaremos lá (a maioria aposta que não), mas o caminho promete ser muito interessante.
  • Agora, uma rápida expedição à camada física(*). Temos hoje um grupo de empresas, das mais obesas e lentas, que ganham rios de dinheiro à custa de buracos. Estou falando das empresas telefônicas, cujo grande ativo é a infra-estrutura implantada: kilômetros e kilômetros de cobre e fibra enredados nas nossas cidades. O substrato físico é relativamente barato, mas o que viabiliza estes grandes elefantes do mundo telecom é o vulto do investimento necessário para enterrar ou pendurar este monte de cabo. O que deveria perturbar o sono dos executivos dirigindo estes elefantes é o espectro das ondas de rádio, um fantasma onipresente e acessível, que só foi controlado estes anos todos por limitações tecnológicas e regulatórias. Sua manifestação mais recente foi na forma das redes de telefonia celular, porém estas também dependem de uma infra-estrutura cara, o que possibilitou a manutenção do controle nas mesmas mãos. Mas, como acontece com todo filme de terror ruim, haverá uma continuação. E esta será por meio das Wireless Mesh Networks. O princípio de funcionamento pode ser entendido como uma commoditização da rede de telefonia celular. Onde havia dezenas de antenas caríssimas falando GSM ou CDMA com aparelhos, teremos milhares de hubs baratos falando IP (protocolo da internet) entre si e com os mais diversos dispositivos. As tecnlogias Wi-fi revelaram-se desajeitadas para este tipo de aplicação devido à limitações de alcance e banda. Mas a próxima geração de redes de dados sem fio, o WiMax (IEEE 802.16a), muda esta figura permitindo comunicação de dezenas de megabits a kilômetros de distância.
  • Subindo agora algumas camadas, temos a tecnologia "Peer to Peer". Ganhou status de buzzword alguns anos atrás com a explosão do Napster, subsequentemente derrubado nos tribunais pela RIAA. Não quero chutar o cachorro morto da indústria fonográfica, mas é claro que os clones do serviço continuam vivos e bem. O buzz passou, mas, como é frequente, a tecnologia sobreviveu. Um sistema P2P pode ser descrito como um em que cada máquina particpiante (nó) atua como cliente e servidor - no Napster você servia os seus arquivos livres de copyright (yeah, right) e era cliente de outros nós quando baixava os arquivos deles. A encarnação mais recente desse tipo de sistema é o Skype - um software de telefonia na internet (VoIP) que forma uma rede P2P. Notem que ítem acima somado a este, na aritmética dos negócios, igualam à morte do mercado tradicional de telefonia - outra uma vítima da simplicidade da internet.
  • Software livre. Além das camisetas de bandas obscuras de metal e profusão de barbas e cabelos comprindos (nada contra), este fenômeno carrega outras características culturais. A disposição de milhares de voluntários, na maioria sem agenda ideológica, revela um movimento curioso que não se limita ao mundo dos programadores fãs de D&D e Tolkien. A Wikipedia é uma enciclopédia online que versa com qualidade sobre os mais diversos assuntos e é mantida por voluntários. (Este vídeo mostra bem a dinâmica do site.) O SETI@Home é um software que, ao ser instalado no seu PC, lhe permite (na verdade, permite ao seu pobre processador) participar do esforço de processamento numérico dos dados de ruído de rádio recebidos por satélites ao redor do planeta, com o objetivo de encontrar indícios de vida extraterrestre. Ignorando o aspecto chapeu-de-papéu-alumínio do projeto, este é um modelo bem-sucedido para a resolução de problemas computacionalmente difíceis que depende fundamentalmente da boa vontade de voluntários anônimos. Claro que um ranking motivando uma boa dose de competição não atrapalha... Projetos similares, de computação massivamente distribuida, trabalham para calcular propriedades estruturais de proteínas, descobrir números primos, entre . Uma dica: o trabalho do Yochai Benkler nesta área é bastante interessante.
Poder das pontas é nome que os físicos dão à propensão dos materiais a acumular carga nas pontas. Estes exemplos indicam que a internet possui propriedade análoga: a inteligência tende a se mover para as pontas. Este movimento tem o saudável efeito colateral de abalar as estruturas estabelecidas, democratizando a informação e a comunicação.




(*) - Camadas Física [1] e de Enlace [2] do modelo OSI para os networking-freaks por aí.

Thursday, February 03, 2005

50 Convites do Gmail

Se alguém ainda quiser, escreva nos comentários.

Tuesday, February 01, 2005

Via Bruce Eckel. Engraçado: Things to say when you're losing a technical argument.

Cito: "Well, yes, but it really reduces to the knapsack problem in that case. Do you have some kind of heuristic, or are we dealing with an NP-complete case?"

Saturday, January 29, 2005

Random cool stuff

  • Discussão sobre o futuro do trabalho no blog do xyko.
  • Banda nova: Dresden Dolls. Ouçam "Coin-operated boy".
  • Demonstração do uso do Squeak na educação. Squeak é um dialeto de Smalltalk, criado pelo próprio Alan Kay. O legal é que ele possibilita programação interativa lidando com objetos visuais (desenhos, p. ex.) na tela. Esse tipo de programação é impraticável para desenvolvimento profissional (Charles Simonyi e os fãs de MDA discordam, naturalmente). Mas é um meio fantástico para ensinar conceitos de programação e de raciocínio matemático para crianças.
  • Post do Sérgio jogando lenha na fogueira Java vs. dotNet. Concordo que esse tipo de aspecto cultural é importante, sim. É um dos motivos de eu trabalhar principalmente com Java hoje. Mas é necessário distinguir entre a cultura de desenvolvimento sério em plataforma Microsoft e a mediocridade do mercado brasileiro de code-monkeys.
  • Screencast da evolução de uma página curiosa na Wikipedia; pelo Jon Udell.

Wednesday, January 26, 2005

Folksonomies e Ontologias

Os sites e blogs que tratam de arquitetura da informação e software social estão às voltas com a polêmica a respeito das folksonomies(*) e suas implicações sociais. O que trouxe à baila este assunto foi a popularidade de sites como do del.icio.us, para criação bookmarks públicos, e o flickr, para compartilhamento de fotos. O que eles têm em comum é o mecanismo de categorização do conteúdo: a cada ítem (links no primeiro, fotos no segundo) se associam um conjunto de tags (etiquetas) . Cada usuário tem total liberdade para entrar com as tags que ele escolher. Não existe vocabulário controlado, controle de sinônimos, nem nenhum dos mecanismos que a comunidade de biblioteconomia considera imprescindíveis. Dessa forma absolutamente simples surge, como que orgânicamente, uma estrutura rica, ainda que algo caótica, de metadados.

É interessante que não se cria apenas um espaço de nomes plano (flat namespace) . Pode-se fazer, facilmente, buscas que combinam diversas tags. Se pensarmos em cada tag como um conjunto nomeado de objetos, estas buscas seriam operações de intersecção. Quando percebi isto imediatamente pensei que o sistema poderia ser enriquecido com a possibilidade de se definir conjuntos intencionalmente, além do mecanismo extensional em uso hoje. O conceito talvez fique mais claro se pensarmos nas tags como predicados (unários). Seria possível definir tags como Programação = Java UNIÃO dotNet UNIÃO C++.

A polêmica entre os defensores das vantagens de sistemas taxonômicos mais formais (top-down) contra os adeptos das folksonomies (bottom-up) está bastante viva no blog coletivo many2many. Clay Shirky, num post recente, defende as tags em oposição à idéia de ontologia(**), oriunda da pesquisa em inteligência artificial e pedra fundamental do projeto Semantic Web. Com essa tacada ele derruba também as propostas de se tomar as folsonomies como como base para a criação de esquemas mais sofisticados.

Pois bem, a minha idéia é equivalente à instalação de um mecanismo de ontologia sobre as bases folksonômicas. O exemplo que eu citei pode ser reescrito como {Todo Java é Programação e Todo dotNet é Programação e ...}. Os argumentos do Shirky não podem ser descartados, mas creio que ele ignora a possibilidade da formação de um sistema dinâmico de evolução de ontologias. No exemplo que ele dá, um novo elemento força uma reconsideração da estrutura da ontologia. E, com uma interface com o usuário adequada, este tipo de reestruturação poderia ser tratada tranquilamente.

Inevitavelmente se perderia um pouco do apelo inerente à beleza simples dos sistemas atuais. Mas a minha experiência com o del.icio.us me leva a pensar que um nível maior de sofisticação seria utilíssimo. Me parece que uma catalogação abrangente a ponto de permitir buscas úteis exige hoje muito trabalho repetitivo; propenso a erros, portanto. A definição intencional de tags pode aliviar bastante este problema, além de permitir a implementação ad-hoc de controle de sinônimos (pense em um "se e somente se").

Não vejo outra maneira de investigar a eficácia desta abordagem senão implementar e testar; penso em fazer desta cria mutante do Prolog com o del.icio.us o meu próximo projeto pessoal. (disclaimer: tenho um longo histórico de começar e não terminar projetos pessoais...) .

(*) Folk == povo; taxonomy == taxonomia. Esse neologismo ficaria nojento traduzido em português, e como é de fato neo, não vejo nenhuma vantagem em fazê-lo.

(**) O conceito de ontologia usado é o definido aqui. Não é necessáriamente relacionado ao conceito metafísico de ontologia (que trata-se, aaaaaaacho, do estudo da natureza das coisas que são).

Friday, January 21, 2005

(XML = evil) v (¬ XML = evil)?

Eu gosto de XML e WebServices. No primeiro post deste blog demonstrei meu desprezo por modas. Quem leu qualquer publicação de TI ou assistiu a algum evento da área nos últimos três anos sabe que WebServices são uma moda. Os departamentos de marketing das grandes corporações de tecnologia trabalham incansavelmente gerandohype a respeito de SOA, WS-?, OASIS, Dublin Core, RDF, ...

E é justamente por ser uma moda que eu os aprecio. Incoerência? Talvez, mas primeiro deixe-me explicar. Em termos puramente tecnológicos os WebServices não apresentam nada de novo. Seja usando uma maneira baixo-nível, bare-metal, I'm-a-unix-hacker, all-I-need-is-a-socket-and-some-ASCII seja pelo caminho orientado-a-objeto, programando-em-C++, escrevendo-papers-sobre-sistemas-distribuídos, os problemas a que as especificações WS' se dirigem já foram resolvidos no passado. A diferença é que agora percebe-se um momento maior levando essas iniciativas à frente. Quem não gosta da palavra moda, pode adotar um buzzword e chamar de network effect; existe uma vontade de organizações e pessoas de se comunicar, e o meio pelo qual esta comunicação está ocorrendo é a pilha de WebServices.

Clay Shirky faz uma bela exposição, como de costume, do fato que nenuma tecnologia, por si só, tem o poder de fomentar colaboração. Esta só ocorre quando humanos, nas duas pontas, decidem que o trabalho de se definir bases comuns para a comunicação é recompensado de alguma forma. E eu vejo no hype desmedido sobre os WebServices uma manifestação dessa disposição. Se não der certo, pelo menos temos o conforto que exércitos de marketeiros perderão seus empregos...

Thursday, January 20, 2005

Idéia boba

Comprar livros para os professores da rede pública.

Não falei que a idéia era boba? O problema é que, até onde eu sei, isso não é feito. A qualidade da educação básica no Brasil é um problema amplamente reconhecido. Não há eleição nos últimos anos em que este não tenha sido um tema importante. E várias soluções têm sido aventadas, como obrigar que os professores tenham curso superior, aumentar o salário destes, ou oferecer, via universidades públicas, cursos de aperfeiçoamento para os professores. Eu não tenho nada contra estas iniciativas, até diria que uma ampliação do mercado de ensino à distância me beneficiaria pessoalmente.

Mas, como de costume, os caminhos mais simples tem sido ignorados. Uma seleção de boas obras, dentre a vasta literatura de divulgação científica produzida internacionalmente, talvez complementados por um ou outro livro introdutório de nível universitário, teria um efeito transformador na bagagem cultural e motivação dos mestres Brasil afora. Imagine como mudaria a compreensão de física pelas novas gerações se seus professores de ciências lessem Hawking. As aulas de biologia não seriam mais as mesmas se complementadas pelas anedotas informativas do Dawkings.

E o custo seria, creio, desprezível. O MEC já é responsável diretamente por uma enorme parcela da produção editorial nacional. Mais umas poucas dezenas de livros para cada escola não teriam grande impacto no orçamento. Só ressalvo que é preciso fugir da tentação patriotética de ignorar o mundo e limitar as compras a obras de autores brasileiros.

Uma iniciativa complementar, também de baixo custo, seria a criação de fóruns de discussão entre professores universitários e seus colegas do ensino básico. Primando pela informalidade, para evitar o fenômeno só-estou-fazendo-esse-curso-para-pegar-o-diploma, esse tipo de ação pode levar a um salto de qualidade na educação. Ou não, vai saber...

Wednesday, January 19, 2005

The XML way

Post interessante do Jon Udell cidando trabalho do Adam Bosworth a respeito de SOA.

O ponto que eu considerei mais relevante é a questão de se desenvolver esquemas altamente especializados para SOA versus uma abordagem mais estilo Lego, baseada em esquemas simples compartilhados. O maior exemplo deste segundo caminho é o sucesso do RSS.

Pensando rapidamente sobre o assunto eu percebi a importância que linguagens de transformação, como XSLT, podem ter; atuando como tradutores entre interfaces altamente especializadas e padrões mais genéricos.

De qualquer forma este é um debate que vale a pena acompanhar de perto.

Saturday, January 15, 2005

Sobre informação.

"Information wants to be free". Esta é, provavelmente, a única citação do Stallman com a qual eu concordo. Ele está falando sobre os controles sociais e monetários que impedem a livre troca e disseminação da informação. Eu, por outro lado, não vejo problema algum na existência desse tipo de controle. Pode-se argumentar, inclusive, que as regras e controles são o que definem uma sociedade. Pode-se argumentar, mas não o farei agora; prefiro neste momento me concentrar no assunto informação. Ela está sim presa, mas os grilhões não são os identificados pelo RMS e seus colegas cabeludos. A informação está presa, dentre outros lugares, no meio de documentos do Word!
Explico melhor. Eu considero que a informação se distribui num contínuo: perto de uma extremidade estão os documentos do Word, próximos da outra estão Bancos de Dados Relacionais. Aqui cabe uma breve explicação da mecânica destes. Imagine uma corretora de seguros, vamos chamá-la de 'Deixa que eu seguro inc.'. Eles precisam manter um registro dos seus Corretores credenciados; cria-se, para isso, uma tabela com colunas para o nome do corretor, data de contratação, salário, etc. Analogamente se cria uma tabela para informações pertinentes aos Clientes (as colunas poderiam ser nome, endereço, etc...). Agora as coisas ficam mais interessantes: para se armazenar informações referentes aos Contratos pode-se criar uma terceira tabela. Esta terá colunas para informações como duração do contrato, valor mensal e data de assinatura; mas também terá colunas que referenciam as tabelas Cliente e Corretor. A este conjunto de definições de tabelas denominamos esquema do Banco de Dados. Depois que o banco estiver cheio de informações podemos formular perguntas para o sistema como "Quais são os dez corretores que fecharam mais contratos no ano passado" ou "Onde moram os clientes que fecharam os 10 contratos mais valiosos" que são respondidas instantâneamente baseado nos dados disponíveis. Não é legal?
Continuando com este monótono exemplo imaginemos que a 'Deixa que eu seguro inc.' armazena todas as propostas de novos negócios na forma de documentos do Word. Se o corretor for habilidoso ele poderá criar propostas coloridas, com um layout criativo, a marca d`água da 'Deixa que eu seguro inc' no fundo (não quero nem imaginar como seria...) e um título bonito em 3d na cor laranja ocupando a primeira página. O corretor (ou seu estágiário) deve estar super contente com o resultado de seus esforços. Mas essa felicidade acaba no momento em que ele precisar, por exemplo, da média dos preços das propostas feitas na empresa. Mesmo essa informação trivial depende de trabalho braçal massante para ser extraída. Resultados mais sofisticados, então, são inviáveis sem um desperdício extraordinário de recursos.
Expero que tenha ficado clara a vantagem de se lidar com informação organizada dentro de um banco de dados em oposição a tê-la presa nas entranhas de documentos monolíticos. E isso se dá porque o BD preserva a semântica intendida pelo produtor da informação - o meio de especificação dessa semântica é o esquema.
Infelizmente é completamente inviável se esperar que usuários criem esquemas formais de bancos relacionais para cada tipo de trabalho intelectual que façam. Modelagem de BDs não é uma técnica trivial e profissionais frequentemente cometem erros no processo. Eu vejo o papel dos profissionais de TI como sendo buscar soluções intermediárias para este problema.

Friday, January 14, 2005

First post!

Há algum tempo eu estou ruminando a idéia de começar um blog. É frequente que eu tenha algo a dizer mas ninguém para ouvir. Um blog é o ambiente ideal para inflingir ao mundo os meus devaneios irresponsáveis.
Me detiveram, até este momento, uma série de fatores. O principal, provalvemente, é que tem muita gente abrindo blogs e despejando a sua cisterna pessoal na Web. E eu odeio a idéia de seguir moda. Odeio ainda mais ser um seguidor retardatário.
Acabei chegando à conclusão que a única maneira de se descobrir se as minhas objeções são legítimas é tentando. Eis que nasce o meu blog.
Pelo título pode-se perceber que não tenho um tema fixo. Minha única diretriz "editorial" é evitar que isso aqui vire um "meu querido diário". Isso quer dizer que vou procurar postar idéias sobre assuntos que me interessam, não relatar o lixo que é a minha vida.
Vago demais? Não espere muita consistência das minhas estultices, mas só dessa vez eu vou especificar um pouco mais. Assuntos que me interessam: programação, Java, orientação à objetos, liguagens não procedurais, física moderna, filosofia, epistemologia, ciências da mente, lógica, fundamentos da matemática,... Teste: o que todos estes assuntos têm em comum? Resposta: meu conhecimento sobre cada um deles não passa da superfície. Mas eu vou tentando mergulhar mais fundo, e se tudo correr bem, o leitor me acompanhará nesse mergulho.