Tudo Sobre Nada

FUD

O Linux está continuamente sob um fogo cerrado de FUD, e declarações destas (neste caso, da Microsoft) são vulgares, limitando-se a repetir os mesmos argumentos falaciosos que já foram usados uma e outra vez. No entanto, o Linux continua a avançar, para infelicidade dos seus detractores.

Este tipo de argumentos destina-se apenas a causar alvoroço, e os decisores mais informados vão reconhecer o seu carácter inflamatório, ignorando-os na altura de tomar decisões. Os menos informados poderão ser influênciados temporariamente, mas a curiosidade de saber o que é o Linux tem para provocar este tipo de declarações rapidamente os vai colocar no primeiro grupo. Se isto não fosse verdade, o Linux não estaria onde está.

Who is accountable for the security of the Linux kernel? Does Red Hat, for example, take responsibility? It cannot, as it does not produce the Linux kernel. It produces one distribution of Linux.

O historial do Linux na área da segurança fala por si, tanto na quantidade e gravidade das falhas como na velocidade de resposta, o que demostra o potencial de uma responsabilidade distribuída. Para além disso, toda a gente está consciente das cláusulas de isenção de responsabilidade constantes das EULAs da Microsoft.

The way that 2004 started off there were a lot of myths in the marketplace around the cost and capability of Linux. But now a lot of the ideology has been replaced with commercial reality.

O Linux continuou a crescer em 2004, implantando-se cada vez mais em grandes empresas, bancos e bolsas. Aparentemente a realidade comercial pende a favor do Linux.

We are increasingly seeing that the biggest challenges in the marketplace are less for Microsoft and more in the Unix space. Customers are moving away from Risc to Intel as the price performance ratio is compelling

O mercado Unix está em declínio, é verdade, mas não a reputação do sistema em si. Unix continua a ser sinónimo de performance e estabilidade, mas também de custos elevados.
Isto só vai aumentar o grau de perigosidade do Linux para a Microsoft, à medida que as pessoas vão tomando consciência de que o Linux é tão ou mais capaz quanto os Unixes tradicionais, mas a custos mais reduzidos.

A lot of customers have got trials and pilots of Linux, but are holding back Linux deployment into the mainstream because the operating system does not have the solution stack that they were expecting

A Microsoft está realmente convencida disto, mas o avanço do Linux não se processa desta forma mais clássica, mas sim pela porta do cavalo. A pouco e pouco os servidores Linux vão aparecendo aqui e ali, abaixo dos radares, surpreendendo as administrações quando chega a altura de tomar decisões. O melhor argumento a favor do Linux aparece quando os decisores descobrem que já dependem dele, com bons resultados.

Linux is not ready for mission-critical computing. There are fundamental things missing. For example, there is no single development environment for Linux as there is for Microsoft, neither is there a single sign-on system.

Nem se esperaria que a Microsoft declarasse o contrário, mas é evidente que eles avaliam a concorrência por aquilo que acham importante, e não por aquilo que os seus clientes acham importante. Quando se referem a single sign-on, só podem estar a referir-se ao .NET Passport (um fracasso monumental), pois existem alternativas ao Active Directory para Linux, tanto opensource como proprietárias.

There are bits of the Linux software stack that are missing. These are factors that are holding back Linux.

Enquanto eles continuam a enterrar a cabeça na areia, a comunidade e as empresas envolvidas no Linux vão continuando a avançar paulatinamente, como até aqui.
A realidade demonstra que o Linux no servidor está bem de saúde, e continua a ganhar velocidade.

Eu não estou preocupado, vocês estão?

NetBSD

Nenhuma ronda pelos *BSD estaria completa sem passar pelo NetBSD, o mais portável de todos eles, com a versão 2.0 disponível para 55 arquitecturas distintas.

Quando parti para o instalar, não estava à espera de grandes maravilhas, sempre tive a sensação de que o NetBSD era o mais "nicho" de todos eles, muito mais orientado à portabilidade, e consequente aplicação em sistemas embebidos, do que em implantar-se no servidor.

Até aqui, a única aplicação realmente séria do NetBSD que tinha visto, haviam sido alguns modelos de impressoras/fotocopiadoras da Ricoh. Pelo menos a Afício 700, 1060 e 3800C correm NetBSD (a julgar pelo nmap). De resto... não me ocorre agora mais nada (talvez algum site ou outro).

Fiquei surpreendido pela facilidade da instalação, que é algo entre as curses do FreeBSD e o puro modo texto do OpenBSD. O interessante nela é a explicação do "comos" e dos "porquês" que acompanha cada um dos passos, como um wizard.



Mas após completada a instalação, descobri que não tinha praticamente nada configurado: o teclado mantinha-se com o layout americano (esta já é clássica, mas o instalador realmente não toca nesta área) e não tinha rede... Bom, a placa era detectada correctamente, mas ninguém se lembrou de meter o instalador a perguntar se queria DHCP ou configurá-la manualmente, bizarro para algo que se chama NetBSD.

Depois há a mania comum a todos os unix que já usei, excepto o Linux, de trazer o vi como o único editor de texto. Eu simplesmente abomino o vi, mas sei usá-lo minimamente, só que estou habituado a usar a tecla "insert" para entrar em insert mode e depois ter as teclas "delete" e "backspace" a funcionar. Nada disto funcionava, portanto foi necessário algum google para descobrir como apagar caracteres no vi ("x" em command mode) e como entrar em insert mode sem usar a tecla "insert" ("i").
Além disso foi também necessário descobrir como activar o DHCP, que implicava acrescentar "dhclient=YES" no "/etc/rc.conf".

O X também não ficou configurado à primeira, como aconteceu no FreeBSD e no OpenBSD. Arrancava mas ficava sem rato nem teclado, o que me obrigava a fazer reset à máquina virtual (que bom)... Depois lá descobri que tinha de definir o rato como "wsmouse".

Quanto ao resto é demasiado parecido com os outros *BSD para justificar que me repita.

Podia dizer que é um bocado barebones demais, mas eu gosto de um bom desafio (quando implica aprender, e não consertar falhas idiotas) e portanto, masoquista ou não, até gostei...

Não me estou a ver a meter NetBSD num servidor, mas num sistema embebido... talvez.

CUPS-manias

Há pouco estava a tentar imprimir esta página e o CUPS do meu servidor só sabia despejar este erro:

print_job: No file!?!

Do lado da minha máquina, o CUPS parava imediatamente a impressora. Lá tinha eu de fazer um "lprm -" para remover todos os jobs da fila e fazer "start printer" na interface web. Tentei isto um monte de vezes.

Depois decidi tentar imprimir uma página de teste a partir da ferramenta de configuração de impressoras do Fedora, imprimiu.

Tentei de novo imprimir o postscript com a página (tinha feito um "print to file" no Firefox) e continuava a não dar. Tentei outras páginas e não dava... Tentei com o Mozilla e não dava... Já estava a ficar azul...! Tudo isto com alguns "cups restart" à mistura e "LogLevel debug".

Logo a seguir consegui imprimir um PDF com o xpdf. Voltei então a tentar imprimir o postscript original e funcionou...

Se há coisas que eu detesto são problemas sem explicação. Já sei que um dia destes, quando precisar mesmo de imprimir, vai acontecer outra vez... E ainda critico o Windows... Se um utilizador comum se deparasse com este problema, sabe Deus os nomes que não chamava ao Linux, eu sei que chamei alguns...

Já agora, quando é que vamos ver o Mozilla/Firefox a imprimir decentemente em Linux? Começo a ficar farto dos caracteres encavalitados, que são demasiado frequentes.

FreeBSD

Pouco depois de experimentar o OpenBSD, instalei o FreeBSD.

Ando há uns dias para escrever qualquer coisa sobre esta experiência mas não sabia bem o quê, especialmente porque o que escrevo aqui são as minhas impressões/opiniões e não me apetece começar a fazer reviews exaustivas.

Não houve nada que realmente me impressionasse, e também não estava à espera que tal acontecesse, unix é unix. É claro que se o começasse a usar regularmente, se calhar descobria alguma coisa... Por outro lado também não houve nada que realmente me irritasse, o que é positivo pois quanto mais me irritar, mais escrevo. Eu gosto de escrever rants. :)

No fundo a impressão com que fiquei foi a clássica "é um sistema limpo, parece-me bom".

Mas... mesmo assim tenho alguns reparos a fazer:

A instalação é mais sofisticada do que no OpenBSD, mas também é desnecessariamente confusa, obrigando a andar para trás e para a frente nos menus a definir opções. Acho que prefiro a forma do primeiro que, apesar de mais austera, é mais directa.



Ao contrário do OpenBSD, acabei com um sistema instalado sem o teclado em português e uma fonte na consola sem acentos nem "ç" (bom, a fonte é pouco importante). Ora, posso ter-me esquecido de alguma coisa durante a instalação, mas isso só reforça o que eu disse atrás.

Mais uma vez, o sistema de ports não me deixou impressionado. O facto de ir puxar as sources aos sites originais do software faz com que algum não possa ser instalado por já não existir na localização indicada (eu sei que podia ter instalado um pacote binário com o "pkg_add"). Deparei-me com isto uma data de vezes ao tentar instalar um window manager um pouco melhor que aquela coisa pavorosa chamada TWM.

E isto tem imensa piada... O OpenBSD quer ser todo minimalista porque facilita a segurança e tal, de tal forma que metem a csh como shell, mas o window manager da instalação base é o FVWM, enquanto que no FreeBSD é o TWM... Quem é que foi minimalista neste caso?

Para que não fiquem dúvidas (ver este comentário), o meu voto é positivo.

Visual Queries e Amigos

A curiosidade é um factor crítico de sucesso para qualquer tipo na área da informática. Quanto mais curioso for, melhor.

Esta importância da curiosidade não é exclusiva da informática, e mesmo para quem se move nesta área também não se refere apenas à curiosidade pelas coisas "informáticas", a cultura geral é muito importante, mas se nem por estas coisas são curiosos, estão muito mal (e acho que não preciso de dizer que há por aí muito boa gente que parece viver debaixo de uma pedra).

Bom, é claro que é mais ou menos aqui que eu digo que sou um tipo bastante curioso... :) Mas nem era aqui que queria chegar, vamos lá então...

OK

De vez em quando passam-me pela cabeça uns «What if...?» e apetece-me fazer umas prospecções no Google[1] à procura de soluções para um problema (imaginário). Acho que isto até tem alguma utilidade, porque sempre aprendo alguma coisa que, se calhar, posso vir a necessitar mais tarde. E é sempre bom quando já temos algumas luzes que tiveram tempo de ser digeridas.

Hoje ocorreu-me ir à procura de ferramentas visuais para administrar RDBMS open source. Assim já tenho resposta para dar na próxima vez que alguém me disser «ah, mas o ORACLE/DB2/SQLServer é mais xpto porque dá para fazer X visualmente». E sabe Deus quantos projectos indefesos levaram com um ORACLE em cima sem necessidade...



O objectivo não é ser exaustivo, mas apenas ficar um uma noção do que existe por aí, portanto fiquei-me pelo MySQL e pelo PostgreSQL, e não experimentei nada, apenas vi screenshots e li listas de features.

Só refiro as que achei realmente interessantes, e também acho que é seguro omitir o phpMyAdmin e o phpPgAdmin, que não são propriamente desconhecidos e são um dado adquirido.

MySQL

Aqui já conhecia o DBDesigner, que me parece ser engraçado e com uma lista de features interessante, com queries visuais e tal, mas descobri também o MySQL Administrator e o MySQL Query Browser[2], que me parecem ter piada.
Também é interessante ver que têm versões para Windows e Linux, e são open source (mais o primeiro do que os seguintes).

PostgreSQL

O PostgreSQL é menos popular do que o MySQL (injustamente, na minha opinião) e já estava à espera de encontrar menos coisas. Mesmo assim encontrei umas ferramentas da Red Hat que fazem parte do seu pacote Red Hat Database: o Administrator, Visual Explain e Control Center (beta).

Outra interface que achei curiosa foi este plugin para o Eclipse, o QuantumDB. Não é nada do outro mundo mas achei engraçado.

Existem mais um monte de programas nesta lista, alguns deles com algum potencial e outros algo deprimentes. Inclui alguns programas comerciais conhecidos ou de marcas reputadas, mas este Case Studio eu não conhecia e pareceu-me interessante (suporta PostgreSQL e MySQL, pelo menos).

Conclusão

Parece que nenhum dos dois RDBMS está muito mal nesta área, isto apesar das ferramentas "linha de comando" revelarem alguma popularidade.

E já agora, se alguém quiser indicar outras ferramentas deste género, esteja à vontade. Especialmente se abarcarem outros RDBMS open source como o Firebird, MaxDB (ex-SAP-DB), etc.

[1] É sempre bom dar o link, não vão algumas dessas pessoas que vivem debaixo de pedras ler este post.
[2] Realmente, não sei como ainda não os conhecia...

Maclândia

Hoje estive umas horas de volta de um Powerbook G4. Não é a primeira vez que mexo num MacOS X, mas desta vez fi-lo durante mais tempo e deu para "brincar" um bocado.

Realmente aquilo é um ambiente muito bem conseguido, usável e elegante.



O ambiente gráfico do MacOS X tem quantidades industriais de eye-candy, mas é rápido. Além disso, o eye-candy não é intrusivo e está nos locais certos, ao contrário do Windows (ou do KDE), onde as mariquices se tornam insuportáveis ao fim de uns minutos de utilização.

A dock, no entanto, é um bocado irritante. Mas nada que uma redução do efeito magnification (os ícones "incham" quando o rato passa por cima deles) não resolva.

Mas talvez toda esta elegância e usabilidade seja demais para o meu gosto, acredito que ao fim de alguns dias começaria a sentir falta da linha de comandos e de ter um ambiente mais "técnico". Mas ei... aquilo tem um unix por baixo, o céu é o limite... :)

Como desktop, está definitivamente milhas à frente do Windows ou do Linux. Seria bom se realmente conseguisse fazer mossa no monopólio da Microsoft, mas para isso teria de estar disponível para x86. Mas tal não vai acontecer, pois a Apple depende da aura de elite que rodeia os seus produtos, e o x86 não é uma plataforma controlada, o MacOS X ver-se-ia à rasca com a diversidade de hardware dos "PC".

Seja como for, está excelente.

Info Pages Considered Harmful

Temos muito a agradecer ao projecto GNU, mas as info pages não cabem nesse saco.

Gostava de saber exactamente qual é o problema que aquela malta encontra nas man pages. Deve ser algo mesmo grave, que justifique passar de um formato praticamente universal e simples, para um formato supostamente organizado, mas que se revela irritante.

Eu acho bastante mais simples fazer um simples search numa man page, do que navegar por info pages complicadas. Há mesmo situações em que o hipertexto só atrapalha...

Junte-se a isto a porcaria que é o "info" (porque o pinfo nem sempre está disponível), e temos uma fórmula para o fracasso.

Felizmente a luz parece estar a chegar aos cantos escuros da Terra de Stallman: a julgar pela man page do gcc, esta tendência começa a inverter-se.

O Rápido é Lento

No outro dia saiu um artigo no Gildot a indicar uma forma de acelerar a navegação com o Firefox. Basicamente consistindo em definir as seguintes variáveis (no about:config):

network.http.pipelining = true
network.http.proxy.pipelining = true
network.http.pipelining.maxrequests = 8

Eu já conhecia isto e nunca me tinha dado ao trabalho de experimentar, mas nessa altura apeteceu-me.

Hoje deparei-me com o primeiro caso em que isto torna o acesso a um site mais lento. Ora, experimentem aceder a este endereço com e sem estas opções definidas.

Experimentei em Windows e Linux, e a minha conclusão é que o site da ZDNet UK não se dá bem com pipelining. Em Linux a página fica inclusivamente mutilada, quando eventualmente o Firefox a consegue carregar completamente.

E do lado de lá nem sequer está algo bizarro, apenas um Apache.

SQL Injection

Estive mesmo agora a ler o texto «SQL Injection Attacks by Example» e recomendo-o a todos aqueles que lidam (ou pensam vir a lidar) com SQL do ponto de vista de aplicações cliente.

A validação correcta do input é algo que parece passar ao lado de muito boa gente. Watch out!

Previsões do Zandinga

Leiam este belo artigo: «New DRM Scheme To Make Current DVD Players Obsolete»

Sempre que vejo coisas destas, dá-me vontade de rir. Será que os tipos acreditam mesmo que é possível tornar os leitores de DVD actuais obsoletos? Só se forem parvos...

A história...

Desde que o Compact Disc foi lançado que se augurava a morte das cassetes, mas tal só aconteceu passados largos anos (mais de uma década), quando os gravadores de CD se tornaram vulgares. Nessa altura o CD passou a ser o formato de facto para audio.
O CD já se havia tornado popular antes disso, mas foi apenas nessa altura que se vulgarizou e se tornou num formato disseminado o suficiente para que tenha de ser suportado pelos fabricantes durante largos anos ainda.

A chegada do DVD não veio alterar grandemente este cenário, pois é overkill e mais caro em alguns casos, como suporte para áudio ou dados. Atenção que não estou a falar de pilhas de DivX ou MP3 piratas...

Mas é no vídeo que o DVD tem vindo a ganhar peso, e com a chegada dos gravadores - tanto para computadores como "de sala" - passa a ser o formato de facto para vídeo. Hoje em dia o VHS é pouco interessante e já ninguém (ou quase) compra aparelhos deste tipo. O VHS está a morrer.

A Caixa de Pandora foi aberta, muita gente tem leitores de DVD em casa, e muitos têm gravadores. Os DVD de filmes estão a baixar de preço - os tempos em que se mantinham nos 30€ por muito tempo estão a acabar - e os DVD+/-R não custam quase nada.
A qualidade dos filmes em DVD é ainda superior ao que as pessoas conseguem distinguir, o que lhe augura ainda uma vida longa.

O que é que isto tem a ver com o DRM?

Tem tudo a ver. Se as pessoas não migram para um novo formato com facilidade, também não será por causa de esquemas parvos de DRM impostos pelas megacorporações de Hollywood que o vão fazer. Qualquer coisa que não possa ser lida nos aparelhos que as pessoas têm hoje em casa vai fracassar com grande aparato. E mesmo que os leitores actuais possam ser "reparados" com actualizações de firmware, vai fracassar na mesma: o consumidor comum não vai fazer essas actualizações! E muito menos irão gastar dinheiro a comprar novos aparelhos sem que isso lhes traga vantagens claras.

HD-DVD

Vou agora arriscar uma previsão que alguns podem considerar ridícula, mas na qual eu acredito piamente: o HD-DVD/Blu-ray vai fracassar.

Porquê? Simples: não trazem nenhuma vantagem para o consumidor comum. E é nesta parte que as críticas vão inevitavelmente aparecer, porque ambos os formatos supostamente trarão consigo uma superior qualidade de imagem...

Mas o DVD também tem uma qualidade muito superior ao VHS, e a maioria das pessoas não dá pela diferença, ou não a considera relevante.

Eu quase não consigo distinguir um DivX de um DVD quando os vejo no meu leitor de sala... E os XviD dos últimos episódios do Enterprise então... são praticamente iguais[1]. Pena que façam uso de algumas características pouco adequadas a leitores de sala, o que provoca paragens e perda de frames, but that's not my point.

O que quero dizer é que estes formatos estarão para o DVD como o Laserdisc está para o VHS, uma tecnologia interessante mas transitória e pouco relevante. E então com os esquemas de DRM que se prevêem, até poderão vir a ser menos relevantes do que o Laserdisc foi.

Só quando os ecrãs LCD/OLED de grandes dimensões e alta resolução forem comuns é que o DVD começará a ser substituido. Ainda vão passar muitos anos até que tal aconteça.

E olhem que eu costumo acertar nestas coisas... ;) Pode parecer falta de modéstia, mas acho que ainda não me enganei nestas previsões de fracasso. Pelo menos acertei no MiniDisc (interessante, mas caro), WAP (curiosidade irrelevante) e na TV Interactiva (completamente inútil).

Vamos ver se acerto naquelas que ainda estão pendentes: videochamada nos telemóveis e HD-DVD/Blu-ray...

[1] Se estivermos muito próximos do ecrã, dá para notar alguns artefactos, mas a mais de 50cm torna-se completamente indistinguível de um DVD.

OpenBSD

Já há muitos anos que uso Linux mas, no entanto, nunca tinha realmente experimentado nenhum dos *BSD.

Já tenho lido coisas sobre eles, e estou mais ou menos consciente das diferenças de feel em relação ao Linux, especialmente porque algumas dessas diferenças são de alguma forma as mesmas que existem noutras variantes de Unix com as quais já tive alguns contactos, como o IRIX ou o Tru64.

Já por várias vezes fiz o download de ISOs do FreeBSD e do OpenBSD, mas acabei sempre por não ter tempo para as experimentar. Mas desta vez decidi aprender alguma coisa e comecei por instalar o OpenBSD 3.6 dentro do VMware.

A instalação - uma série de questões em modo texto - é um bocado chocante para quem está habituado aos instaladores gráficos user-friendly da maioria das distribuições de Linux, mas não é nada que me aterrorize. No final das contas é até bastante fácil e directa, desde que se saiba o que se está a fazer, o que deverá ser o caso com quase todas as pessoas que o tentarão instalar.

Tem, no entanto, um pormenor bastante estúpido e que poderia ser corrigido sem violar o espírito do instalador: para seleccionar os pacotes a instalar é preciso escrever o nome deles por extenso. Será que não podiam fazer daquilo uma lista numerada?...

Na utilização pareceu-me bastante limpo, sem coisas desnecessárias por ali a flutuar, o que é natural, dada a orientação ao servidor.

Mas, para um utilizador de Linux, tem detalhes irritantes: shell sem command-completion ou histórico (csh), "ls" sem cores, entre outras características que se encontram apenas nas versões "GNU" destes utilitários, e que se tornaram indispensáveis para manter a sanidade na CLI.
Bem sei que estas coisas podem ser instaladas, but that's not the point, o que interessa é que o default é muito primário, e sem necessidade disso[1].

O sistema de ports também não me impressionou por aí além, mas devo estar mal habituado com o yum e o rpm.

No final o voto é positivo.

[1] Além de eu não ver razões para não usarem as GNU tools (até porque usam o gcc), no mínimo colocavam a ksh como shell por omissão, já que vem instalada. Ou então instalavam a tcsh.