Tudo Sobre Nada

É horrível!!

A minha fé na qualidade geral do código open-source foi recentemente abalada depois de olhar para o código do phpBB.

Assim à primeira vista tudo parece feito segundo as regras... Afinal de contas este até é um projecto popular e na versão 3 até se preocuparam em separar a lógica da apresentação por meio de templates. No entanto, é mesmo na lógica que residem os verdadeiros problemas...

Lá por o PHP ser uma linguagem dita "de scripting", pouco exigente no que respeita à estrutura, isto não significa que se devam ter ficheiros com mais de 1000 linhas de código completamente sequencial, sem quaisquer funções ou outro tipo de encapsulamento.

Peguem em qualquer ficheiro .php e chorem... são if's atrás de if's onde se testam sempre as mesmas condições combinadas das mais variadas formas, com declarações de dicionários um pouco por toda a parte e queries SQL à mistura. Onde aparecem constantemente n variáveis a representar a mesma informação, usadas todas ao mesmo tempo sem qualquer critério aparente...

Eu atrevo-me a dizer que um milhão de macacos a escreverem num milhão de teclados conseguiriam produzir código melhor em muito pouco tempo...

Phear...!

Seeing through walls

Back in 1985, Wim Van Eck proved it was possible to tune into the radio emissions produced by electromagentic coils in a CRT display and then reconstruct the image. [...] CRTs are now well on the way to being history. But Kuhn has shown that eavesdropping is possible on flat panel displays too.

Fonte: New Scientist

As estrelas do crítico

Ainda sobre o assunto dos standards (X)HTML, eu frequentemente interrogo-me se não seria interessante os browsers virem de origem com um pequeno indicador da qualidade da página actualmente carregada...

Poderia ser um ícone discreto na barra de estado ou, no mínimo, um campo extra na janela Page Info (no caso do Firefox).

Não teria de ser nada baseado na validação do código, poderia ser um esquema tão simples quanto somar pontos por cada rotina de error handling que o browser seja forçado a invocar, bem como problemas com o doctype e/ou charset.

Here be dragons...

O que os standards têm de bom é haver tantos... E o mundo do HTML não é excepção. Mas, neste caso em particular, a confusão é maior do que o normal. De um lado temos o W3C a seguir o caminho do XHTML, por outro temos o WHATWG a seguir o caminho do HTML5.

Há uns dias, após ver algures uma referência à escolha do HTML4.01 por parte da Yahoo!, dei por acaso com um post, no blog do WebKit, que tenta esclarecer algumas dúvidas acerca das diferenças e semelhanças entre o HTML e o XHTML. A parte mais interessante acaba por ser este pequeno excerto...
In fact, the vast majority of supposedly XHTML documents on the internet are served as text/html. Which means they are not XHTML at all, but actually invalid HTML that’s getting by on the error handling of HTML parsers. All those "Valid XHTML 1.0!" links on the web are really saying "Invalid HTML 4.01!".
Já agora, a Apple, Opera e Mozilla Foundation propuseram esta semana ao W3C a adopção das especificações HTML5.

Dr. Sicrano

Quantos senhores "doutores" por aí têm realmente um doutoramento? Vá lá, quero ver braços no ar...

Ninguém?...

Como é que vamos explicar isto à Fernanda Freitas?

Jack Bauer
Não sei quem foi que teve a ideia para a campanha que a RTP2 lançou há umas semanas, mas está simplesmente genial. Especialmente os cartazes que se podem encontrar na 2ª circular, onde uma foto do Jack Bauer de telemóvel em punho aparece acompanhada da frase...
Mãe, grava-me os patinhos!

Debian 4.0 (Etch)

Finalmente, está cá fora o Debian 4.0 (Etch).

Há já vários meses que tenho máquinas com esta versão do Debian em produção, e posso dizer que tomara muitas distribuições ditas enterprise terem versões finais com metade da qualidade das versões testing da Debian.

E para quem acha que o Debian já está obsoleto no dia em que é lançado, destaca-se o kernel 2.6.18, Apache 2.2.3, PHP 5.2.0, MySQL 5.0.32 e, já agora, o GCC 4.1.1.

E desta vez há suporte oficial para AMD64...

Um Firmware com Tomates

O Problema...

Ter uma máquina dedicada à tarefa de servidor/router caseiro é muito bom e tal, mas quando a dita máquina é um Pentium 133 que demora mais de 5 minutos a arrancar, começa-se a pensar se realmente o ruído que produz e a electricidade que consome valerão a pena face aos benefícios...

Linksys WRT54G

Ora, há quase dois anos que eu tenho um Linksys WRT54G (v2.2) aqui em casa a funcionar apenas como ponto de acesso...

O firmware original é para esquecer, não é grande coisa em termos de leases DHCP estáticas e funcionalidade de DNS. Também cheguei a experimentar o firmware da Sveasoft, mas desisti passadas poucas horas. Um servidor de DNS que depende das leases DHCP para funcionar é simplesmente estúpido... Reiniciava o router e este não resolvia nomes até os clientes renovarem as leases...

É claro, também podia ir pelo caminho do OpenWRT, mas estes aparelhos não são máquinas Linux a sério e não adianta fingir que são. Se é para ser appliance, então é mesmo para ser appliance e é bom que tenha uma interface web decente e não me obrigue a andar a configurar tudo à mão. Sendo assim, ficava o DD-WRT, mas sinceramente, não sei porquê mas não me inspira grande confiança...

A Solução...

Andava eu mais uma vez a examinar o mercado para saber se as coisas tinham mudado alguma coisa quando me deparo com um firmware alternativo do qual nunca tinha ouvido falar, o Tomato.

Tomato

E não é que aquilo até tem bom aspecto? É relativamente minimalista mas tem tudo aquilo que me interessa, e até tem umas coisas engraçadas como gráficos do tráfego em tempo real (SVG) e indicadores da potência do sinal para cada cliente sem fios activo. Tudo isto numa interface web toda AJAX e o camandro...

Oops...

Está a trabalhar há pouco mais de uma semana, e deverá continuar. No entanto, passado pouco tempo dei com um problema altamente bizarro relacionado com o DHCP... Reparei que o Linux tinha dificuldade em obter endereço. Aliás... simplesmente não funcionava!

Uma pesquisa no Google só retorna um post do autor do dnsmasq a dizer que o problema está no cliente de DHCP (a desculpa do costume). Pois bem, toca de substituir o cliente do ISC (dhclient) por outro (udhcpc)... sem sucesso. Saem os pacotes DHCPDISCOVER, o router diz que está a enviar DHCPOFFERs, mas o wireshark nada vê...

No meio de tudo isto os clientes Windows funcionam sem problemas...*

Twilight Zone...

Depois de umas horas de volta disto, eis que reparo num pormenor... Logo após ligar o router, os clientes Linux funcionam perfeitamente, mas assim que o router acerta a data (por NTP), deixam de funcionar novamente. Para quem não sabe, estes aparelhos não memorizam o relógio interno, arrancam sempre com a data em 1 de Janeiro de 1970, 00:00.

Mais umas voltas e confirma-se o problema: se especificar um servidor NTP inexistente, não tenho quaisquer problemas com os clientes Linux!

Porque é que isto acontece... não faço a menor ideia... O que é certo é que me fartei de moer a cabeça com este problema até me cansar e fazer reset das definições. Agora já está todo reconfigurado e não vejo qualquer problema há uns dias... Boa...

* Isto não é bem verdade, os clientes Windows também só conseguiam obter endereço depois de martelar no router umas quantas vezes, mas o que interessa é que funcionava, mais 10 segundos menos 10 segundos.