Estive com uns problemas na empresa relacionados com o sendmail.
Quando nada fazia prever, o sendmail simplesmente crasha começando a recusar activamente todos os pedidos de envio de email.

Criei um script genérico para verificar se uma determinada porta de um servidor está a responder. Basta editar o endereço, porta e opcionalmente definir um timeout máximo para o pedido.

#!/usr/bin/php -q
<?
 
/*****************************************************
 
    Check For Open Ports - David Gouveia
 
*****************************************************/
 
$address = '127.0.0.1';
$port = 25;
$timeout = 5;  //Max time to wait before give up.
 
$checkport = fsockopen($address, $port, $errnum, $errstr, $timeout);
 
if(!$checkport){
        print "CRITICAL: Host $address at port $port not responding!\n";
        fclose($checkport);
        exit(2);
}
 
print "OK: Host $address at port $port is responding!\n";
fclose($checkport);
exit(0);
 
?>

Coloquem na pasta dos plugins e não se esqueçam de dar as permissões correctas (755).
Alternativamente podem passar o valor do IP e porta como argumentos via consola.

basta trocar isto :

    $address = ’127.0.0.1′;
    $port = 25;

por isto :

    $address = $argv[1];
    $port = $argv[2]

Para quem está a pensar em adquirir uma placa de rede gigabit da Asus para utilizar em sistemas operativos *nix que pense duas vezes em fazê-lo.

O chipset utilizado é o IP1000 que além de não ser suportado directamente pelo kernel e os drivers fornecidos no cd de instalação são tão antigos que é impossível compilar com um kernel relativamente recente (2.6.22 e superiores pelo menos).

Se mesmo assim vão comprar uma placa destas, usem a ultima versão dos drivers que está no site do fabricante do chipset, descomprimam para uma pasta  e executem os seguintes comandos :

make all

cp ipg.ko /lib/modules/`uname -r`/kernel/drivers/net

depmod

modprobe ipg

Podem sacar a ultima versão aqui.

Se usam o Fedora Core 12 e tentarem compilar algum programa que use extensões fornecidas pelo OpenSSL, poderão deparar-se com erros como estes :

/usr/src/php-4.4.9/ext/openssl/openssl.c:182: error: expected specifier-qualifier-list before ‘LHASH’
/usr/src/php-4.4.9/ext/openssl/openssl.c:343: error: expected declaration specifiers or ‘…’ before ‘LHASH’
/usr/src/php-4.4.9/ext/openssl/openssl.c: In function ‘php_openssl_config_check_syntax’:
/usr/src/php-4.4.9/ext/openssl/openssl.c:348: error: ‘config’ undeclared (first use in this function)
/usr/src/php-4.4.9/ext/openssl/openssl.c:348: error: (Each undeclared identifier is reported only once
/usr/src/php-4.4.9/ext/openssl/openssl.c:348: error: for each function it appears in.)
/usr/src/php-4.4.9/ext/openssl/openssl.c: In function ‘add_oid_section’:
/usr/src/php-4.4.9/ext/openssl/openssl.c:366: error: ‘struct php_x509_request’ has no member named ‘req_config’
/usr/src/php-4.4.9/ext/openssl/openssl.c:370: error: ‘struct php_x509_request’ has no member named ‘req_config’
/usr/src/php-4.4.9/ext/openssl/openssl.c: In function ‘php_openssl_parse_config’:
/usr/src/php-4.4.9/ext/openssl/openssl.c:416: error: ‘struct php_x509_request’ has no member named ‘config_filename’
/usr/src/php-4.4.9/ext/openssl/openssl.c:416: error: ‘struct php_x509_request’ has no member named ‘config_filename’
/usr/src/php-4.4.9/ext/openssl/openssl.c:417: error: ‘struct php_x509_request’ has no member named ‘section_name’
/usr/src/php-4.4.9/ext/openssl/openssl.c:417: error: ‘struct php_x509_request’ has no member named ‘section_name’
/usr/src/php-4.4.9/ext/openssl/openssl.c:418: error: ‘struct php_x509_request’ has no member named ‘global_config’
/usr/src/php-4.4.9/ext/openssl/openssl.c:419: error: ‘struct php_x509_request’ has no member named ‘req_config’
/usr/src/php-4.4.9/ext/openssl/openssl.c:419: error: ‘struct php_x509_request’ has no member named ‘config_filename’
/usr/src/php-4.4.9/ext/openssl/openssl.c:421: error: ‘struct php_x509_request’ has no member named ‘req_config’
/usr/src/php-4.4.9/ext/openssl/openssl.c:426: error: ‘struct php_x509_request’ has no member named ‘req_config’
/usr/src/php-4.4.9/ext/openssl/openssl.c:437: error: ‘struct php_x509_request’ has no member named ‘digest_name’

No inicio pensei que pudesse estar relacionado  com o facto de estar a tentar compilar uma versão do php bastante antiga provocando alguma incompatibilidade entre com as extensões actuais, mas na verdade existem mais pessoas com o mesmo problema utilizando software mais recente.

A forma de resolver (ainda que temporariamente) o problema foi copiar as extensões de outra máquina, no meu caso um servidor com Fedora Core 9.

Para o caso de alguém precisar, ficam aqui. Basta descomprimir para o directório /usr/include/openssl.

Se pretendias entrar nos investimentos em mercados financeiros tens aqui um excelente motivo :)

A Plus500 dá-te a oportunidade de investires na bolsa com dinheiro real de forma gratuita.  São apenas 20 euros, mas todas as fortunas têm o seu inicio em algum lado, quem sabe se não é aqui ;)

Se não percebes mesmo nada disto, não te preocupes. A Plus500 possui imensos guias de aprendizagem e dá-te 8000€ virtuais para testares em ambiente real.

Dá uma vista de olhos neste link e começa já a participar.


A yahoo está a fazer uma promoção relacionada com o registo de novos domínios, permitindo a novos clientes registar os endereços por apenas 1.99 dólares, o que dá cerca de 1.5 euros.

Se queriam um motivo para registar “aquele” domínio especial, aproveitem agora.

Clica aqui.

Na ultima sexta tive um pequeno problema com um computador cujas definições de segurança do Internet Explorer tinham sido todas modificadas.

Quase todas as soluções apontadas pela Microsoft sugeriam que se fizesse um reset. O grande problema é que este reset exigia acesso a algumas definições que também não estavam disponíveis.

Foi então que encontrei este excelente script que basicamente faz um reset à maioria das definições do IE 6.

Digo maioria pois tarefas como a abertura de links do disco por exemplo, ainda não eram permitidos e como tal após investigar mais um pouco, descobri quais eram as chaves do registo que controlavam estes parâmetros.

Fechem o IE, façam o download deste vbscript e executem-no. Problemas resolvidos :-)

O PHP4 já foi descontinuado à muito tempo mas infelizmente ainda é necessário em algumas plataformas que não são actualizadas e necessitam desta versão para não ficarem quebradas no PHP5.

A última versão do PHP4 lançada foi a 4.4.9 e é impossível instalar esta versão em conjunto com o Fedora Core 9.

Depois de satisfeitas as dependências, a configuração do php-4.4.9 continua à procura das algumas libs no sitio errado, ou seja, /usr/lib ao contrario de /usr/lib64.

Para agravar o problema, as flags –libdir ou –with-libdir não parecem surtir efeito pois apesar de se indicar o directório /lib64 a configuração continua à procura das libs na pasta /lib.

Para se corrigir isto convém pode-se optar por duas opções :

1ª Copiar todas as bibliotecas que o PHP não encontra e que se encontram em /usr/lib64 e que são necessárias em /usr/lib (podem usar o utilitário strace para saber exactamente o caminho completo necessário).
2ª Instalar a versão de 32 bits das mesmas bibliotecas e criar links simbólicos para a versão base de cada biblioteca (ex. /usr/lib/libjpeg.so.5.2 -> /usr/lib/libjpeg.so).

Só depois de insto corrigido é que será possível. Em alternativa podem optar por uma versão mais antiga que não terá este problemas (por ex, a 4.4.4).

Hoje, cada vez mais, é necessário registar uma conta num determinado portal ou fórum para que se possa aceder aos seus conteúdos.

Existem duas formas de aceder rapidamente a um fórum/portal sem termos de passar pelo penoso processo de registo de contas :

– BugMeNot.
– UserAgent Switch.

O BugMeNot é um portal que permite obter um nome de utilizador e senha de sites que pedem informações pessoais como condição de acesso. As senhas são enviadas e partilhadas pelos utilizadores do serviço.
Além de ser possível consultar o portal do BugMeNot para localizar credenciais de acesso, existe também uma extensão para o firefox que torna as coisas muito mais cómodas bastando clicar na caixa de autenticação do website desejado com o botão direito do rato e seleccionar a opção “Login with BugMeNot”.

Existe também outra forma de aceder a áreas privadas sem registar contas mas nem sempre funciona que trata-se da modificação do user agent do browser.

O user-agent é um pedaço de texto que identifica o browser ou o software que está a ser usado para aceder a uma determinada página. Quem usa o IE8, cada vez que acede a uma página envia algo como isto :

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.2; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)

Acontece que o software utilizado pelos motores de busca que fazem o crawl de páginas possuem o seu próprio user-agent e este muitas vezes é autorizado a entrar sem inserir credenciais para que possa indexar as páginas nos motores de busca. O segredo passa então por trocar o user-agent do browser por um utilizado pelos motores de busca par indexar páginas, como por exemplo :

Googlebot/2.1 (+http://www.google.com/bot.html)

Para efectuar esta troca, podem utilizar uma extensão no firefox como a User-Agent Switcher.

 

Com esta extensão, podem simular diversos browsers ou softwares diferentes.

Podem consultar aqui uma lista de identificadores bastante extensa.
Aqui podem fazer o download do BugMeNot.
Aqui podem fazer o download do User-Agent Switcher.