Tudo Sobre Nada

Tux

Ler este artigo fez-me pensar no quão genial foi a escolha do pinguim como mascote do Linux.

O Tux é realmente das marcas mais interessantes que conheço, apenas porque a partir de um simples pinguim se podem criar os mais variados gráficos, sejam eles infantis ou sóbrios, usem eles fotografias de pinguins "a sério" - qualquer que seja a espécie - ou pinguins estilizados. Basta o contexto roçar minimamente a informática para a associação ao Linux ser evidente.

O que torna isto curioso e distinto de outras marcas (mais) reconhecidas é o facto de não ter sido pensado e repensado para ter o maior impacto "visual e comercial", foi quase acidental.

VNC + XDMCP

De vez em quando descobrem-se aquelas pérolas que por um lado nos fazem pensar "Uau! Não sabia que dava para fazer isto...!", mas também "Humpff! Estava mesmo à vista na manpage...".

Até aqui os alphas de que falava no outro dia eram acedidos por SCP para transferência de ficheiros, por SSH para lançar simulações e também por VNC para trabalhar neles directamente, mas com a instalação do Debian (Sarge) achei que talvez fosse boa ideia simplificar um bocado as coisas.

O acesso SSH não tem grande alternativa, e como serve perfeitamente o seu objectivo - e não é preciso mais do que ter o PuTTY - não valia a pena mexer nele.

Já transferir ficheiros por SCP não é propriamente o mais elegante que se consegue arranjar, especialmente porque não se integra com a gestão normal de ficheiros no Windows. Para tratar disto bastou configurar o samba para exportar as "homes", assim tudo se resume a aceder a um "share" com autenticação.

Quanto ao VNC, dependia de cada utilizador ter a correr o seu próprio "vncserver", o que é bastante chato[1]. Passar para XDMCP obviamente não era opção[2], portanto havia que encontrar algo mais simples.

Então lembrei-me que teria piada se o VNC se conseguisse ligar a uma sessão XDMCP... Uma pesquisa simples no google retornou um post numa mailing-list onde alguém dizia que um destes setups não estava a funcionar bem. Isto só queria dizer que era suposto funcionar...

Recorri então à manpage do Xvnc, onde até há exemplos... talk about stupid...

O processo é simples, basta permitir o acesso por XDMCP no gdmsetup (para quem estiver a usar o GDM), e depois configurar o inetd para arrancar um "Xvnc" que se liga ao X local de cada vez que alguém se tenta ligar por VNC. O VNC não pedirá autenticação pois irá aparecer o ecrã de login do GDM.

Isto faz-se acrescentando a seguinte linha ao "/etc/inetd.conf":

5900 stream tcp nowait nobody /usr/bin/Xvnc Xvnc
-inetd -query localhost -once securitytypes=none

Se a distribuição usar o xinetd, então é só criar um ficheiro "/etc/xinetd.d/vncserver" com o seguinte conteúdo:

service vncserver
{
socket_type = stream
type = UNLISTED
port = 5900
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -once
securitytypes=none
log_on_success += HOST DURATION
log_on_failure += HOST
disable = no
}

E maravilha... um terminal server por VNC instantâneo.

Depois de ter isto a funcionar ainda dei com um problema chato: a cada nmap que se fazia à máquina, aparecia mais um processo "Xvnc" que nunca morria e consumia todo o CPU... Isto resolveu-se facilmente mudando para o TightVNC.

Curiosamente o RealVNC incluido no Fedora Core 3 não tem este problema, e também é a versão 4.0.

Para terminar importa deixar claro o catch disto: as sessões VNC são criadas a pedido e ao fechar uma delas a sessão de X que lhe está associada também é fechada. Isto implica que não dá para suspender uma sessão agora e mais tarde voltar a ligar a ela para continuar a trabalhar.
Na verdade isto até dá para fazer, mas é mais complexo e implica voltar a criar uma "senha VNC" por utilizador[3].

[1] Tem de ser arrancado manualmente e mantém montes de processos a correr (KDE).
[2] Não é muito simpático obrigar os utilizadores a instalar o Cygwin ou o Hummingbird...
[3] Talvez a versão enterprise do RealVNC torne isto mais simples.

Bigware

De uma forma discreta, a Adobe lançou a versão 7 do Acrobat Reader para Linux.

Com esta nova versão, o horrível interface em motif passa finalmente à história juntamente com a lendária lentidão. Ganha-se também um plugin para o browser que parece funcionar convenientemente.

Apesar de eu utilizar normalmente o xpdf, sou capaz de ver a importância disto: apenas o leitor da Adobe consegue lidar com PDFs que incluem formulários ou PDFs com efeitos (comuns em apresentações), não esquecendo os PDFs que, por uma razão ou outra, só nele abrem sem problemas.

Mas aquilo é um download de 40Mb que depois de instalado passa a 96Mb... Por um reader...!!

Já agora, porque é que as versões para Windows ocupam sempre metade do espaço das versões para Linux? Acontece isto com o Acrobat Reader, mas também com o Firefox e o Thunderbird. Será que as versões para Linux não fazem mais do reinventar a roda, sem utilizar bibliotecas de terceiros, muitas das quais incluídas nas distribuições ou nos seus repositórios?

Eye-candy e tecnologia

Pelos meus artigos anteriores, onde critico o desktop Linux, já devem ter reparado que eu prefiro claramente robustez e qualidade a funcionalidades duvidosas e eye-candy. No entanto, quando o eye-candy é usado como forma de demonstrar as capacidades da tecnologia de base, o caso muda um pouco de figura.

Portanto, só posso dizer que fiquei realmente impressionado com os vídeos e screenshots que o Seth Nickell (do GNOME) colocou no seu blog, demonstrando as capacidades das novas extensões de composite do X, do Cairo e do GTK+, com aceleração OpenGL.

São relativamente pequenos e vale bem a pena vê-los. Talvez depois disto se calem aqueles que dizem que o X está velho e obsoleto.

Debian/Alpha

No DQ-FCT/UNL existem dois alphas pertencentes a um dos grupos de investigação, uma AlphaStation XP1000[1] e um AlphaServer ES40[2], que são usados para puro number-crunching.

No final de 2003 migrámos ambas as máquinas de Tru64 para Linux, um port não-oficial do SuSE 8.1, o que acabou por representar um aumento de performance nada desprezável (se bem que eu não ponho as minhas mãos no fogo por aquelas instalações de Tru64).

Desde então têm funcionado perfeitamente, mas o SuSE 8.1 já não era novo naquela altura e dava jeito passar para algo mais actual.



A XP1000 está sem uso há alguns meses, o que me deu a oportunidade de a actualizar esta semana.

Comecei por experimentar o AlphaCore 0.9, um port não-oficial do Fedora Core 2 para alpha, com a intenção de actualizar logo a seguir para a versão 1.0a (baseada no FC3), que só está disponível como update através do YUM, mas não correu lá muito bem...

A instalação correu sem incidentes, o que foi uma supresa agradável considerando que o SuSE 8.1 obrigava a criar as partições com o fdisk numa consola "por trás" da instalação (porque só cria partições tipo-DOS e são necessárias partições tipo-BSD) e a configurar manualmente o aboot (o equivalente ao GRUB) após o sistema estar completamente instalado.

Já o resultado final não foi nada animador. Tudo era lento, extremamente lento...

O GDM demorar montes de tempo a arrancar, ou o GNOME arrastar-se, não diz nada sobre a capacidade de mastigar simulações, mas também não deixa grandes esperanças...

Perguntei na mailing-list da Red Hat se isto era de esperar, e alguns possuidores de hardware semelhante afirmaram que a versão 1.0a apresentava melhorias significativas de performance. Mas não existem mirrors e eu não conseguia puxar os RPMs (para criar um repositório local) a mais de 2Kb/s.

Virei-me então para o port do Debian para alpha, a distribuição que me parece ser a melhor suportada nesta arquitectura e puxei a ISO do CD de instalação por rede do Sarge (testing), já que a versão stable já tem barbas. Como existem mirrors portugueses rápidos, não deveriam ocorrer problemas.

Realmente a instalação correu sobre rodas, com apenas um incidente: apesar de ter escolhido 1024x768 para o X, este acabou por ficar a 800x600. A parte chata é que o "dpkg-reconfigure xserver-xfree86" morria antes de gerar um ficheiro de configuração (sem nenhum erro...) e o "xf86config" só gerava configurações que não funcionavam (a primeira vez que vejo isto ocorrer, até porque esta máquina tem uma TNT2 M64 vulgaríssima em x86). Por esta altura o X já não arrancava sequer a 800x600, e eu já estava farto de lutar contra estas ferramentas... Um "/etc/X11/XF86Config" copiado de outra máquina - e alterado à mão, claro - resolveu de vez a questão.

Ainda não consegui perceber porque é que tanta gente acha o Debian a oitava maravilha do mundo... Em alguns aspectos é um bocado arcaico e confuso, se bem que se pode alegar que eu estou apenas a ser tendencioso, uma vez que o Debian não é bem o meu estilo. Eu prefiro um Red Hat ou SuSE, onde se pode usar sempre a linha de comandos e configurar as coisas editando ficheiros de texto, mas onde também existem ferramentas de configuração gráficas para dar o pontapé de saída.

Mas parece estar tudo a funcionar bem, portanto as críticas acabam por aqui.

Só é pena não poder passar para o kernel 2.6.10 (está a usar o 2.4.27), pois este dá um kernel panic ao arranque. O módulo para o controlador SCSI ("qlogicisp") está quebrado no 2.6 e o resultado é um "Aiee!"[3].



Mas antes de tomar a decisão de passar o ES40 também para Debian, a primeira coisa a fazer é certificar-me que o Compaq Fortran (as simulações são todas feitas em fortran) realmente está a funcionar como deve ser, o que só poderá ser feito por quem realmente as vai usar (e as desenvolveu), apesar dos meus testes com código avulso terem tido sucesso até agora.

O caso do Compaq C e Compaq C++ já é mais problemático...

Todos estes compiladores foram desenvolvidos para o Red Hat 6.0 (a julgar por alguns ".so", que incluem "_rh60" no nome), e as binutils evoluiram bastante desde então, o que causa uma variedade de problemas (para além dos problemas causados pela conversão de RPMs para DEBs, que deixou coisas pelo caminho...).

O Compaq C++ não gera objectos que o "ld" consiga linkar e não traz o seu próprio "ld", portanto é uma carta fora do baralho.

Já o Compaq C "apenas" parece incapaz de lidar com os headers da glibc que não fazem parte do ANSI C ("sys/types.h" fá-lo engasgar-se, mas já o "stdio.h" ou "string.h" funcionam bem). Isto não é assim tão grave porque, se vier a ser necessário optimizar algum código C, sempre se podem compilar os ".c" mais críticos (que normalmente não usam nada de especial) com o Compaq C e o resto com o GCC, já que os formatos dos objectos são compatíveis.
Se for código puramente ANSI não deverá haver qualquer problema.

Hoje andei a brincar um pouco com a XP1000, fazendo uns benchmarks com o nbench e comparando-a com o ES40 e um Athlon 2600+ (SuSE 9.2). Um dia destes talvez faça uns gráficos... :)

Por agora, e como isto já vai bastante longo, deixo-vos com umas fotos do AlphaServer ES40 que deverão agradar a qualquer geek que se preze:

  • frontal (exterior) - a caixa é uma espécie de "rack" com capacidade para dois ES40 - este só tem um;
  • frontal (interior) - 3 discos SCSI3 hot-swap, dois de 18Gb (um "fora-de-serviço") e um de 36Gb. (As manchas amarelas são mesmo pó.);
  • topo (interior) - cada placa tem um CPU que controla 1Gb da RAM total do sistema, AFAIK o ES40 é uma arquitectura NUMA. (O interior não tem pó, curiosamente);
  • lateral (interior) - sim, aquela placa com os "cubos" coloridos é uma placa de som. É uma "Creative AudioPCI 128" que usámos para experimentar.

[1] Alpha EV67 a 667MHz com 4Mb de cache, 256Mb de RAM.
[2] 4 Alphas EV67 a 667MHz com 8Mb de cache, 4Gb de RAM.
[3] Mas afinal parece que este módulo vai ser removido em breve, e o mesmo hardware é também suportado pelo módulo "qla1280". Mas não vou experimentar já, porque fazer isto remotamente é pedir para ser mordido pela Lei de Murphy...


ViaMichelin

Hoje estive a explorar um pouco melhor o ViaMichelin e devo dizer que aquilo é realmente impressionante.

Os resultados das pesquisas são bastante informativos, indicando as distâncias a percorrer em cada via, os locais onde se deve virar (com mapas detalhados), as zonas onde se deve parar para pagar portagem, e ainda detalhes curiosos como os locais onde existem sensores de velocidade (basta traçar uma rota que passe por França).

Além disto ainda mostra os custos previstos em portagens e combustível.

Na verdade já tinha recorrido ao ViaMichelin algumas vezes, mas nunca tinha reparado em alguns dos pormenores que fazem a diferença entre «útil» e «ena!», como os mapas detalhados dos cruzamentos e mudanças de via (cujos links passam despercebidos inicialmente).

Isto pode não ser nada que não se pudesse já fazer com o Route 66 ou com o Autoroute, mas é gratuito e está acessível onde quer que exista um browser.

Ah, e funciona perfeitamente com o Firefox. :)

Bounties

Parece que nestes dias toda a gente acordou de manhã e, subitamente, o GNOME era um monstro lento e comilão de memória[1]. Grande novidade...

Para dizer a verdade, eu nunca achei o GNOME particularmente lento em máquinas mais modestas, pelo menos não era mais lento do que o Windows XP. Mas supostamente deveria ser bastante mais rápido, já que não tem tanta tralha e é mais modular.

Mas, no meu Athlon 2400+, o Windows XP porta-se melhor do que o GNOME, o que revela um problema endémico de performance que tem de ser resolvido. Por mais potente que seja a máquina, nunca fica mais rápido.

Talvez a seguir a isto comecem a tratar das regressões constantes e dos problemas erráticos...

Referências:

[1] É bom dizer que penso exactamente o mesmo do KDE.