As coisas em que uma pessoa tropeça quando tenta reconstituir o passado…
Porto: Cidade Linux, Cidade Tecnológica
e cá está a prova de que estive lá…
As coisas em que uma pessoa tropeça quando tenta reconstituir o passado…
Porto: Cidade Linux, Cidade Tecnológica
e cá está a prova de que estive lá…
Um dos problemas que volta e meia aparece para morder os calcanhares de quem anda distraído (como eu), é tentar ler-se um ficheiro com um character encoding diferente daquele em que foi escrito.
Há três ferramentas sempre úteis nestes casos: iconv, vi e file.
O primeiro permite converter dois ficheiros entre quaisquer character encoding, o segundo permite visualizar (e editar) um ficheiro e especificar que encoding se quer usar, e o último analisa os primeiros bytes do ficheiro e dá-nos alguma informação sobre ele.
Então agora imaginem que têm um ficheiro em ISO-8859-1 (tanto o file como o vi o comprovam), usam o iconv para o converter para UTF-8, e obtêm o seguinte resultado:
file diz que o ficheiro é de facto UTF-8.vi e forçando UTF-8 como encoding vêm os vossos caracteres acentuados todos baralhados.E agora? De quem é a culpa?
…
Resposta: do PuTTY que estão a usar para aceder à consola em causa e que está a interpretar todos os bytes que recebe como ISO-8859-1. E esta hein?
Troquei recentemente o router lá de casa por um Asus WL-500G Premium.
Pretendia usá-lo como router/access point convencional, mas também como:
Tudo isto podia ser conseguido com o firmware original do router, excepto a parte do ipsec. Como também tinha alguma curiosidade em instalar Linux em sistemas “embedded”, resolvi experimentar.
A primeira tentativa foi com o DD-WRT, mas não gostei do sistema de ficheiros read-only, nem do feel da coisa. A segunda tentativa foi com o OpenWRT, e desta vez fiquei satisfeito. A documentação existente no wiki é francamente boa, tanto no que diz respeito aos procedimentos de instalação, como também à configuração e afinação final.
Consegui completar todos os objectivos traçados recorrendo à documentação existente no wiki, com excepção de um pequeno pormenor. Depois de estabelecida a VPN com a firewall corporativa, dá muito jeito que as queries DNS para o domínio interno da rede corporativa sejam enviadas através da VPN até aos servidores responsáveis pela zona. O DNSMasq tal como vem instalado só permite encaminhar todas as queries para um (ou mais servidores), ou resolvê-las a partir dos root servers. Parecia não haver forma de fazer um encaminhamento selectivo de queries de certos domínios para um (ou mais servidores) de DNS.
Acabei por descobrir a solução na manpage do DNSMasq. Há um switch que permite definir exactamente isso:
-S /private.domain/w.x.y.z
Acrescentando este switch à variável args do script de arranque em /etc/init.d/dnsmasq consegue-se que o router encaminhe todas as queries de DNS para a zona private.domain para o servidor de DNS com o endereço w.x.y.z.
Uma nota muito, muito breve.
Para quem anda à procura de um lsof para windows, ele existe!
E, já agora, de uma forma geral, os utilitários Sysinternals valem o seu peso em ouro…
Uma nota muito rápida sobre como conseguir que aplicações a correr em WebSphere possam usar classes do toolkit AWT sem que exista um ambiente gráfico funcional.
Para os apressados como eu a forma mais simples é definir como verdadeira a propriedade de sistema java.awt.headless, mas a teoria toda está muito bem explicada neste artigo da Sun.
Passar a propriedade no script que inicia o WebSphere, apesar de tentador, não funciona. O script de arranque do WebSphere faz apenas o bootstrapping do application server e a JVM que lança termina no final desse processo. A forma correcta está indicada nesta technote da IBM e passa por usar a consola de administração:
Servers > Application Servers > server1 > Process Definition > Java Virtual Machine > Generic VM Arguments
ou, alternativamente, editar directamente o ficheiro de configuração apropriado:
{$WAS}/config/cells/DefaultNode/nodes/DefaultNode/servers/server1/server.xml