There is an easier way to find out who called. Fonecta.


Uma imagem

Clique para ampliar
A árvore genealógica da Lotus, by Joe Saward

DreamPlug: PC do tamanho de um carregador


Ainda neste mês, a GlobalScale inicia as vendas de um computador do tamanho de um carregador de bateria e que roda Linux. O equipamento, chamado DreamPlug, apresenta apenas 10 centímetros de comprimento e tem algumas restrições, como não contar com uma placa de vídeo e não rodar com um monitor externo.

O DreamPlug tem processador de 1.2 GHz Marvell Sheeva, 1 GB de RAM e um diversas portas, incluindo duas Ethernet, duas USB e uma eSATA 2.0. Também tem Wi-Fi e Bluetooth, além de saídas analógicas e digitais de áudio, caso o usuário queira usá-lo como um servidor de música.

O equipamento é mais indicado para uso como servidor web ou de aplicação. No site da fabricante, o DreamPlug é oferecido a US$ 149 dólares para os Estados Unidos.

A imprensa especializada testou o Gol GT 1.8.

"Finalmente, o Brasil possui carros iguais aos europeus." (Quatro Rodas) "A melhor coisa até hoje em nossa terra: Gol GT 1.8." (Motor 3) Isso diz tudo.

James May drives Ariel Atom V8


is_utf8 - Como verificar se um string está codificado em UTF-8

Quando você usa uma mescla de arquivos PHP com envios de formulários usando jQuery.ajax(), é quase impossível precisar quando o envio dos dados é feito pelo usuário através do submit normal da tag FORM ou se vem através do JavaScript.

Como o jQuery converte os dados do formulário para o formato UTF-8 antes de enviá-los, é necessário usar a função utf8_decode para utilizar os dados do formulário enviados.

Como, às vezes, pode haver arrays extensos, com muitos itens e índices, há duas funções interessantes para resolver esse problema, e são a solução para muitas dores de cabeça.
function is_utf8 ($str) {
    $len = strlen($str);

    for ($i=0; $i<$len; $i++){
        $c = ord($str[$i]);

        if ($c > 128) {
             if ($c > 247) return false;
            elseif ($c > 239) $bytes = 4;
            elseif ($c > 223) $bytes = 3;
            elseif ($c > 191) $bytes = 2;
            else return false;

            if (($i + $bytes) > $len) return false;

            while ($bytes > 1) {
                $i++;
                $b = ord($str[$i]);
                if ($b < 128 || $b > 191) return false;
                $bytes--;
            }
        }
    }

    return true;
}

function array_utf8_decode ($a) {
    foreach ($a as $k => $v) {
        $a[$k] = is_array($v) ? array_utf8_decode($v) : (is_string($v) && is_utf8($v) ? utf8_decode($v) : $v);
    }

    return $a;
}

$_POST = array_utf8_decode($_POST);
$_GET = array_utf8_decode($_GET);