Tudo Sobre Nada

XML Sucks!

Entretanto andei à procura de uma forma de alterar os parâmetros que são acrescentados à entrada do disco externo no ficheiro "/etc/fstab", para que os dispositivos formatados em "vfat" fiquem com "noexec,shortname=winnt". Não me apetece ver listagens do "ls" com todos os ficheiros verdes e ter de andar a fazer chmod sempre que retiro de lá alguma coisa, nem ter todos os ficheiros com menos de 8 caracteres em minúsculas (se eu crio uma pasta "Docs", é "Docs" que quero que fique!).

A única forma de fazer isto consiste em editar uns ficheiros de configuração XML da HAL, que estão na directoria "/usr/share/hal/fdi". Mais propriamente, acrescentar um ficheiro extra à directoria "95userpolicy".

Já vos disse o quanto detesto ficheiros de configuração em XML...?

Quem acha que ter ficheiros de configuração, destinados a edição por humanos, com 95% de markup e apenas 5% de conteúdo é algo inteligente, devia levar com um barrote em cima...

Bleeding Edge... Bleeding!

Há uns dias comprei um disco externo da LaCie - para guardar os backups - e quando cheguei a casa fui logo ver como o meu Fedora se dava com ele. Liguei-o e apareceu uma entrada no "/etc/fstab" e um mount point na "/media". Até aqui sem surpresas...

Fiz um mount, umas quantas operações e depois umount. Desliguei o disco e as entradas desapareceram. Logo a seguir um reboot para ir ao Windows fazer umas coisas e puff... kernel panic!

Boa... e ainda por cima perfeitamente reproduzível.... O que vale é que um dos tipos da Red Hat já tinha uma build mais recente do kernel, onde esse problema já tinha sido corrigido.

Tudo bem - pensei eu - mas passados uns minutos descubro que um "df -h" mostra sempre o disco completamente vazio (com apenas 64Kb ocupados), quando já lá estão uns quantos gigabytes...

Resta-me esperar que tratem também deste problema que, apesar de pouco significativo, me faz pensar duas vezes antes de arriscar ficar com o filesystem espatifado (se ele não consegue ver quantos blocos estão ocupados na realidade, sei lá que outros problemas por lá andarão...).

"Desktop Linux"... bah!

A Montanha Pariu um Rato

A respeito da recente polémica acerca do BitKeeper, o Groklaw tem isto para nos dizer...

So Tridge's massive "reverse engineering" project came down to a single line of shell script:

$ echo clone | nc thunk.org 5000 > e2fsprogs.dat


Não acredito que tenha sido apenas isto, mas que tem piada... isso tem.

JDiskReport

Se não conhecem o JDiskReport, digo-vos que é uma daquelas ferramentas indispensáveis para quem gosta de ter um filesystem arrumado, ou simplesmente quer saber para onde foram todos aqueles gigas de espaço em disco que antigamente pareciam dar para este e para o próximo século.



É em Java e, como todo o bom programa Java, é multiplataforma. Corre em Windows, Linux, MacOS X e provavelmente numa data de outras plataformas onde exista uma VM decente.

Faz gráficos de variados tipos: por directorias, por tamanho de ficheiros, etc.

Com esta ferramenta demorei hoje menos de um minuto para concluir que o OpenOffice ocupa quase metade do espaço total da minha instalação de Fedora.

E Se Fossem Cavar Batatas?!

De vez em quando fico a pensar se não existirá pessoal na Microsoft cujo único fito na vida é dar cabo do juízo a quem tem de administrar servidores Windows...

Porque raio não consigo impedir que um determinado utilizador faça login num cliente Windows com as regras «deny log on locally» em qualquer uma das policies do domínio?

As ferramentas indicam que esta regra está a ser aplicada ao(s) utilizador(es) em causa, mas na prática nada acontece.... god damn it!!

Actualização: Problema resolvido! O serviço Remote Registry estava desactivado. O mais curioso disto é que ele tinha a mania de se desactivar sozinho (não me perguntem porquê), o que parece ter deixado de acontecer com o update para o Windows 2003 Service Pack 1.

Good Riddance!

Durante o último ano e meio aturei o Windows Services for Unix até ao limite da minha paciência mas agora acabou-se! Acabaram-se os serviços que "apodrecem" e os hacks sobre hacks para os obrigar a funcionar.

Tudo isto começou com o Server for NFS, que um dia deixou de aceitar mudanças nas permissões a partir dos clientes Linux, depois o servidor de NIS entrou numa espécie de corrida com o User Name Mapping, o que obrigou a criar uma série de dependências artificiais nos serviços para os convencer a arrancar, e finalmente o mesmo Server for NIS deixou de propagar alterações para o servidor secundário Linux que entretanto tinha sido colocado em funcionamento.

Com a saída recente do Service Pack 1 para o Windows 2003 descobriu-se que este iria quebrar o SFU e que, para o evitar, era preciso ligar para a Microsoft para pedir (implorar) um hotfix - ou então reinstalar e reconfigurar o SFU usando a versão - completa - mais recente (ah... ah... ah...).

Isto foi a gota de água... Agora os clientes Linux autenticam-se directamente no Active Directory (por LDAP) e as homes são servidas de forma completa e transparente pelo servidor Linux usando Samba 3 com autenticação por Kerberos.

No final das contas este setup até é bastante mais fácil de configurar do que eu pensava. A única coisa de que me arrependo é de não o ter feito há mais tempo.

Sendo assim, as únicas coisas que sobram do SFU são os atributos extra que acrescentou ao schema do AD, e talvez o mecanismo que faz com que a alteração da password do Windows altere também imediatamente a password de Unix (que é guardada num atributo diferente).

Se ao menos o Samba já conseguisse funcionar como Active Directory, com Group Policies e tudo...

PS: o ponto negativo disto é que já não posso estar constantemente a usar o SFU para dizer mal da Microsoft...

Acabou-se!

Depois de largas horas de jogo, finalmente cheguei ao fim do Half-Life 2 e devo dizer que realmente... "the best game ever made".

Sendo eu um tipo que raramente pega em jogos - exceptuando as maratonas nas lan-parties com os amigos - ter passado, no total, mais de 40 horas a percorrer os meandros da City 17 é nada mais do que um recorde absoluto...

Venha o "Aftermath"... :)

Patentes - Defined

Há uns dias, num comentário a uma notícia no LinuxToday, alguém dizia algo que eu achei um dos melhores argumentos contra as patentes de software que já alguma vez li.

Era qualquer coisa deste género:

O sistema de patentes é um compromisso entre o secretismo e o avanço da tecnologia. Em troca da publicação dos detalhes de um invento, uma empresa ou particular ganha o direito a manter um monopólio temporário.


Além de definir a intenção do sistema de patentes, isto define claramente a distinção entre uma patente normal e uma patente de software: numa patente de software nada é revelado, é a ideia que é patenteada.

À luz do exposto acima, a empresa não dá nada em troca do monopólio temporário, recebendo mais do que numa patente clássica já que estas se referem a implementações e a implementação do software - o código - já se encontra suficientemente protegida sob a lei dos direitos de autor.

BitKeeper

Recentemente foi anunciado o fim da versão gratuita do BitKeeper, obrigando o Linus a partir para a escolha de um novo SCM para onde migrar o código do Linux.

Esta história conta-se muito rapidamente, resumindo-se ao seguinte:

  • O Andrew Tridgell da ODSL (mais conhecido pelo seu trabalho no Samba) andava a fazer reverse-engineering do protocolo do BitKeeper nas horas vagas, com o objectivo de criar ferramentas livres para aceder a repositórios BK;
  • A OSDL recusou-se a obrigar o Andrew Tridgell a parar essa actividade;
  • A BitMover acabou com a versão gratuita do BitKeeper.

Regularmente apareciam threads na LKML a criticar o uso do BitKeeper como base do desenvolvimento do Linux. Algumas destas threads vinham dos Stallmanistas que achavam pecaminoso usar software proprietário para desenvolver software livre, mas a maioria delas vinham de pessoas com visões um pouco menos religiosas do assunto, que previam que isto viria a acontecer mais tarde ou mais cedo, deixando toda a gente a ver navios.

O tempo acabou por lhes dar razão.

Agora começam a aparecer por aí os artigos a explorar o assunto, com comentários de todas as partes envolvidas.

Um desses artigos está no Newsforge e depois de o ler fiquei com uma estranha sensação... A mensagem que transparece é uma espécie de criminalização do reverse-engineering, transformando o Andrew Tridgell no vilão que estava a tentar roubar o comer da boca do Larry McVoy e da sua família.

Isto é uma afronta!

O reverse-engineering, para fins de interoperabilidade, é perfeitamente ético e até explicitamente autorizado em muitos países (inclusivé em toda a UE), e nem sequer podiam alegar que o homem estava a violar a licença (que incluí uma cláusula de terminação em caso de reverse-engineering) porque ele nem sequer usa o BK.

Para mais, devemos todos parar para contar o número de projectos opensource que dependem do reverse-engineering de protocolos e cuja existência só trouxe benefícios aos utilizadores... O caso mais flagrante disto é o próprio Samba mas também software como o OpenOffice (leitura e escrita dos formatos do MS Office) ou mesmo a enorme quantidade de drivers para o mais diverso hardware fabricado por empresas que se recusam a publicar especificações.

Portanto, vamos parar para pensar e ver esta situação como ela realmente é: a BitMover precisava do Linux para demonstrar aos seus potenciais clientes a capacidade do seu software num ambiente real, exigente e mediático, e agora que isto já não tem tanta importância e só dá despesa, já não interessa e acaba-se o almoço grátis.

Até aqui tudo bem, eles estão no seu direito, mas a comunidade também tem o direito de tentar interoperar com software proprietário.

Seria violar tudo o que se tem feito até agora, se se começar a condenar este acto de reverse-engineering em particular só porque causou transtorno aos developers do Linux.

Debian

Aqui há umas semanas disse que achava o Debian um bocado arcaico e confuso, mas após este período de habituação às suas particularidades devo confessar que até me agrada.

No desktop continua a não me convencer minimamente - é demasiado ao nível da ferrugem - mas no servidor é certamente uma opção interessante e a ter em conta.

Agora, se eles não deixassem as versões stable ganharem barbas até aos tornozelos é que era de valor...

Jamie Zawinski

Talvez alguns de vocês não saibam quem é o Jamie Zawinski, ao passo que outros saberão imediatamente tratar-se de um dos mais conhecidos programadores do Netscape e do Lucid Emacs (agora XEmacs), ou simplesmente o autor do Xscreensaver e mais uma série de outras coisas.

Sugiro-lhes então uma visita ao site dele (que tem a mais bizarra página inicial que já vi) e em especial a leitura de algumas das rants que por lá estão, das quais eu destaco:


Se calhar, normalmente gosto de ler as rants do Jamie Zawinski porque acabam por caracterizar, de uma forma cómica e agressiva, as frustrações sentidas por muita gente.

Fear the GPLv3?

Muito se tem falado recentemente acerca do trabalho que está em curso para reformular a GPL, conduzindo à sua terceira versão.

A actual versão (2) fará 14 anos em Junho e algumas pessoas consideram que está a precisar de uma profunda revisão para poder endereçar novas ameaças, tais como as patentes de software.

Na minha humilde opinião, a actual GPL ainda está perfeitamente actual e serve honrosamente os objectivos a que se propôe - evitar a apropriação indevida de código alheio e fomentar o retorno à comunidade - e quaisquer modificações só vão contribuir para o aumento da confusão e FUD que sempre girou em torno desta licença.

O problema é que, do ponto de vista da FSF e dos Stallmanistas, a GPL não é apenas uma licença com objectivos claros e pragmáticos mas também uma forte arma na sua política de "software livre ou morte". Isto pode levar a uma GPLv3 que, de alguma forma, seja desagradável para todos aqueles que, como eu, têm uma visão muito menos religiosa do papel que desempenha e deverá desempenhar o software livre no "ecosistema" do software em geral.

Tudo isto para chegar a uma passagem das recomendações para a utilização da GPL, que diz o seguinte:

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.


Só hoje é que realmente parei para pensar neste assunto e fico sem saber como é que não me dei conta disto antes... É certo que até hoje a FSF não nos deu razões de desconfiança, mas talvez seja importante decidir se será sensato dar a terceiros o poder de mudar os termos de licenciamento do código que desenvolvemos.

É claro que esta passagem deixa nas mãos dos destinatários da licença (utilizadores ou programadores) a decisão da versão da GPL que querem respeitar, mas não deveriam ser os autores originais a decidir que termos querem que sejam respeitados?

Permitir que o código que aceitamos distribuir segundo os termos da GPLv2 passe a ser distribuido sob os termos (sejam eles quais forem) de uma GPLv3 não será prescindir da mesma liberdade que visávamos atingir inicialmente?

Agora compreendo o porquê do Linus ter escolhido para o Linux explicitamente a GPLv2, como aqui se pode constatar.

Vi a luz...

PS: lembrei-me de escrever isto quando vi este artigo no slashdot. Curiosamente o primeiro comentário a esse artigo refere exactamente a mesma preocupação de que eu falei. Parece que não é só a mim que este detalhe faz levantar as sobrancelhas.

IE sux

Como nunca uso o Internet Explorer, ainda não tinha reparado que a barra lateral aqui do blog aparece um bocado desformatada no IE.

Reparei hoje, quando fui ver como ficavam as alterações que tinha feito ao template, e estive um bocado a tentar perceber qual seria o problema, sem sucesso nenhum...

Já agora, mudei o estilo dos links para terem apenas um tracejado por baixo quando se passa com o rato por cima, tracejado que defini na CSS como "border-bottom: thin dashed". Curiosamente a definição de "thin" do IE é um traço grosso... Não sei se os tipos fazem de propósito ou são simplesmente estúpidos.

Surdez selectiva

Hoje parece que toda a gente decidiu dissertar acerca deste artigo no Shade of Windows, e eu vou fazer o mesmo...

A todos aqueles sem inclinação técnica - ou vontade - de colaborar nos projectos opensource de que fazem uso chamamos vulgarmente "utilizadores". Pode parecer que estou a constatar o óbvio mas é importante recordar que os developers também são utilizadores, apesar de terem muitas vezes um padrão de utilização diferente (mas nem sempre).

Quando uma determinada funcionalidade não interessa a nenhum dos developers actuais, não é sensato pensar que se pode exigir o seu desenvolvimento sem quaisquer contrapartidas, afinal de contas a maioria dos developers que colaboram voluntariamente com projectos opensource fá-lo para resolver algum problema que os afecta particularmente - scratch an itch - ou por puro gozo e não têm obrigações para com quem quer que seja.

É mais ou menos nesta altura que se ouvem gritos saídos das cavernas mais profundas, clamando que o modelo opensource está furado e é tão mau quanto o modelo proprietário, em que apenas os grandes clientes têm poder de influência.

Mas...

A própria natureza do modelo opensource permite aos utilizadores descontentes meterem as mãos na massa e trabalharem na implementação das funcionalidades que desejam ou, alternativamente, pagar a algum developer que o faça por eles.

Como é óbvio, nos projectos mais orientados ao desktop, a maioria dos utilizadores não terão a capacidade técnica para participar, nem os recursos financeiros para pagar a quem o faça. E mesmo que tenham, não terão normalmente a motivação para seguir qualquer destas vias, nem têm de ter.

Sendo assim, parece que estamos num beco sem saída mas não estamos.

A verdade é que nenhum projecto opensource alguma vez sairá da cepa torta se se basear apenas em contribuições voluntárias... Terá de haver sempre uma parte da força de trabalho a tratar das partes mais "desagradáveis", e isso implica remunerações (sejam elas financeiras ou outras).

Se olharmos de perto para os projectos mais proeminentes vamos concluir que isto está a acontecer em todos eles, e é fácil entender como e porquê...

Se uma determinada funcionalidade for importante haverá certamente alguém que esteja interessado em financiar a sua implementação, normalmente para conseguir algum tipo de vantagem que não seria possível sem a existência dessa funcionalidade.

Temos um claro exemplo disto na arquitectura de acessibilidade do GTK/GNOME. A Sun precisava desta funcionalidade se queria colocar o Java Desktop System em desktops governamentais (os verdadeiros "utilizadores"), e pagou a sua implementação.

Como a Sun, existem as mais variadas empresas a financiar a implementação das mais variadas funcionalidades, em projectos desde o desktop ao servidor, passando pelos sistemas embebidos.

Quem apregoa o fracasso do modelo opensource por não ouvir a voz dos utilizadores, não compreende que a verdadeira natureza deste modelo não é o voluntarismo, é a comunidade, e cada elemento desta comunidade move-se segundo os mais variados interesses, desde a satisfação própria à satisfação de outros para colher proveitos (sejam eles quais forem). É o mercado em que cada projecto se insere que definirá que pedidos serão ouvidos e que pedidos serão ignorados.

Conclusões

O problema actual de falta de usabilidade e falta de atenção aos pedidos dos utilizadores que ocorre no GNOME, e noutros projectos orientados ao desktop, não vem de nenhuma falha do modelo opensource, mas sim da constituição da sua base de utilizadores.

É preciso encarar com frontalidade o facto de que a maioria dos utilizadores destes projectos são pessoas com inclinação técnica e não utilizadores comuns, e como tal a bússola de quem os desenvolve aponta sempre no sentido de satisfazer as necessidades dos "técnicos" e não dos utilizadores.

É por esta razão que eu tenho vindo a dizer que o Linux ainda não está preparado para o desktop, e não vai estar a médio-prazo. Hoje satisfazem-se as necessidades dos "técnicos" e começam a satisfazer-se as necessidades dos utilizadores empresariais, cujas máquinas são geridas por técnicos, e no futuro começar-se-ão a satisfazer as necessidades dos utilizadores comuns.

Anda muita gente a tentar dar passos maiores do que a perna, e ao mesmo tempo a dar argumentos de fracasso aos detractores do Linux e do modelo de desenvolvimento opensource.

Post Scriptum...

Quero deixar bem claro que existe uma grande diferença entre as funcionalidades e a sua forma. Como alguns dos artigos que já escrevi demonstram claramente, não digo que alguns projectos (como o Gaim) não tenham um grave caso de autismo, recusando-se a fazer alterações simples a coisas que estão obviamente mal feitas, mas no caso geral a surdez é algo conjuntural e não endémico.