Archive for the 'webdev' Category

Domínios de internet

June 13, 2006

Outro dia apareceu-me o site do projecto de Caça Submarina, www.cacasubmarina.com

Estes domínios estão à partida marcados como alvo de gozo colectivo.

Mas está na memória de alguns as últimas eleições presidenciais. Onde os candidatos mostravam também na internet as suas diferenças/igualdades.
Optaram todos pela escolha de um domínio com o seu próprio nome e sobrenome, variando apenas no domínio de topo (.com, .org, .net, .pt). Todos menos um.
Francisco Louçã. Não pela sua bandeira da diferença, mas porque um domínio com um nome dele ficaria www.franciscolouca.com, e bocas como "Ah, sua louca!!" não seriam interessantes para o desenrolar da sua campanha.

Isto acontece porque só podem ser usados no registo de um qualquer domínio os caracteres alfa-numéricos (abcdefghijklopqrstuvwxyz0123456789) e o – desde que este não esteja nem no início nem no fim. É assim porque os caracteres especiais como ç, ~, ^, ', `, e outros não existem em muitos teclados de muitos países, pelo que se algum destes caracteres fizesse parte de algum domínio estariamos a privar toda a gente destes países com esses teclados de aceder ao site. E vice-versa.
Se os chineses usassem os seus caracteres tradicionais nos domínios, estariam a privar meio mundo de aceder aos seus sites.

Esta foi a solução encontrada. Poderá não ser a ideal, mas é consensual.

Um pouco de PHP

May 25, 2006

Implementei esta experiência de encriptação há 2 anos.
Não é nada do outro mundo mas foi uma boa base para outros voos.

<? function _fwk_filter_encrypt($content) {
$table = "0123456789abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ_@";
$xor = 165;

// prepara tabela

$table = array_keys(count_chars($table, 1));
$i_min = min($table);
$i_max = max($table);
for ($c = count($table);
$c > 0;
$r = mt_rand(0, $c–))
array_splice($table, $r, $c – $r, array_reverse(array_slice($table, $r, $c – $r)));

// sequência encode

$len = strlen($content);
$word = $shift = 0;
for ($i = 0; $i < $len; $i++) {
$ch = $xor ^ ord($content[$i]);
$word |= ($ch << $shift);
$shift = ($shift + 2) % 6;
$enc .= chr($table[$word & 0x3F]);
$word >>= 6;
if (!$shift)
{
$enc .= chr($table[$word]);
$word >>= 6;
}
}
if ($shift)
$enc .= chr($table[$word]);

// sequência decode

$tbl = array_fill($i_min, $i_max – $i_min + 1, 0);
while (list($k,$v) = each($table))
$tbl[$v] = $k;
$tbl = implode(",", $tbl);

$fi = ",p=0,s=0,w=0,t=Array({$tbl})";
$f = "w|=(t[x.charCodeAt(p++)-{$i_min}])<<s;";
$f .= "if(s){r+=String.fromCharCode({$xor}^w&255);w>>=8;s-=2
}else{=6}";

// gera página

$r = "<script language=JavaScript>";
$r.= "function decrypt_p(x){";
$r.= "var l=x.length,b=1024,i,j,r{$fi};";
$r.= "for(j=Math.ceil(l/b);j>0;j–){r='';
for(i=Math.min(l,b);i>0;i–,l–){{$f}}document.write(r)}";
$r.= "}decrypt_p(\"{$enc}\")";
$r.= "</script>";
return $r;
}
ob_start("_fwk_filter_encrypt");
?>

Using numbers in PHP function names

May 18, 2006

In PHP, function names have to start with either an underscore or some alpha-numeric character. However, most developers choose just the underscore (especially in PHP5 applications) and an alphabet character.


There is a problem with using procedural code in PHP. If you have hundreds of functions then you are going to run into naming problems after a while. In PHP function names not protected by OOP classes have to have unique names. This is no problem if you are not using a hook system like that of WordPress or Drupal. These CMS are coded using the underscore character as a designation for a hook system. This “hook_action” is an example.

Well as the project grows and becomes more popular then you start running out of humanly understandble words and letters to use. That or the names become too long to be remembered during normal development. So why don’t developers use numbers in the name of their functions?