Avisar de contenido inadecuado
{
}

PageRank revised

Como habreis podido observar, en el menú de la derecha, encima del calendario, os muestro el PageRank de mi weblog... ¡sin necesidad de tener la ToolBar de Google!

¿Y qué significa eso? Pues que utilizo un código PHP, junto con SSI para calcularlo y mostrároslo.

¿Quereis ver el código?

define('GMAG', 0xE6359A60);

//unsigned shift right

function zeroFill($a, $b){

$z = hexdec(80000000);

if ($z & $a){

$a = ($a>>1);

$a &= (~$z);

$a |= 0x40000000;

$a = ($a>>($b-1));

}else{

$a = ($a>>$b);

}

return $a;

}



function mix($a,$b,$c){

$a -= $b; $a -= $c; $a ^= (zeroFill($c,13));

$b -= $c; $b -= $a; $b ^= ($a<<8);

$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));

$a -= $b; $a -= $c; $a ^= (zeroFill($c,12));

$b -= $c; $b -= $a; $b ^= ($a<<16);

$c -= $a; $c -= $b; $c ^= (zeroFill($b,5));

$a -= $b; $a -= $c; $a ^= (zeroFill($c,3));

$b -= $c; $b -= $a; $b ^= ($a<<10);

$c -= $a; $c -= $b; $c ^= (zeroFill($b,15));

return array($a,$b,$c);

}



function GCH($url, $length=null, $init=GMAG){

if(is_null($length)){

$length = sizeof($url);

}

$a = $b = 0x9E3779B9;

$c = $init;

$k = 0;

$len = $length;

while($len >= 12){

$a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16)

+($url[$k+3]<<24));

$b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16)

+($url[$k+7]<<24));

$c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)

+($url[$k+11]<<24));

$mix = mix($a,$b,$c);

$a = $mix[0]; $b = $mix[1]; $c = $mix[2];

$k += 12;

$len -= 12;

}

$c += $length;

switch($len){ // all the case statements fall through

case 11: $c+=($url[$k+10]<<24);

case 10: $c+=($url[$k+9]<<16);

case 9 : $c+=($url[$k+8]<<8);

// the first byte of c is reserved for the length

case 8 : $b+=($url[$k+7]<<24);

case 7 : $b+=($url[$k+6]<<16);

case 6 : $b+=($url[$k+5]<<8);

case 5 : $b+=($url[$k+4]);

case 4 : $a+=($url[$k+3]<<24);

case 3 : $a+=($url[$k+2]<<16);

case 2 : $a+=($url[$k+1]<<8);

case 1 : $a+=($url[$k+0]);

// case 0: nothing left to add

}

$mix = mix($a,$b,$c);

// report the result

return $mix[2];

}



//converts a string into an array of integers (the numeric

//value of the char)

function strord($string){

for($i=0;$i

$result[$i] = ord($string{$i});

}

return $result;

}



function getPR($_url){

$url = 'info:'.$_url;

$ch = GCH(strord($url));

$url='info:'.urlencode($_url);

$pr = file("http://www.google.com/search?client=

navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&

features=Rank&q=$url");

$pr_str = implode("", $pr);

return substr($pr_str,strrpos($pr_str, ":")+1);

}

echo "Mi PR es: ".getPR("http://www.albertlg.com/blog/")."";

?>

Armas de 'distracción' masiva

Os propongo un ránking de ese tipo de armas, totalmente ampliable y modificable en orden:

  • Televisión

  • Prensa escrita (offline y online)

  • Armas de mujer...

  • Drogas (entre las que incluyo el alcohol, el tabaco...)

  • ...

¿Alguien se anima?
Se admiten todo tipo de matices. ;)

Olimpismo

Bandera olímpica

Las diferentes naciones del mundo no deberían medirse en las olimpiadas SÓLO por sus medallas conseguidas. Ese ránking dispone de una importancia actualmente que no va, a mi entender, con el espíritu olímpico.
Forma parte de él pero no es su totalidad.

Hay otros muchos valores importantísimos, como la deportividad, el compañerismo (en el caso de los deportes de equipo), la humildad, la superación, la competitividad, el conocimiento de las propias limitaciones, la adaptación a las circunstancias... que no disponen de tanta publicidad en los medios.

Evidentemente, eso no resta importancia a la eficacia y los resultados, que en este caso no son otra cosa que las deseadas medallas. Aunque hay triunfos que no consiguen premio. ;)

{
}

Suma y sigue... llorando

Pegatina de NO A LA GUERRA

Porque es lo único que se me ocurre ahora mismo, tras encontrarme con esta web: Iraq Body Count, a parte de publicar este post para sacudir (de nuevo) vuestras conciencias...
¿Qué justifica una guerra? ¿Quién "gana" una guerra?

Si hay palabras que una vez dichas no puedes volverlas atrás, ¡imaginaos que ocurre con la bombas!

La imagen de la guerra: "Gracias por tu democracia. Gracias por tu libertad. No tengo con qué pagarte pero seguro encontrarás con qué cobrar".

Siempre he defendido el perdón. Perdonar y no olvidar.

Lista de comprobación de estándares web

He traducido la "checklist" original de A Web Standards Checklist, en MaxDesign.

Antes de empezar, aclaremos conceptos:

  • ¿Qué son los estándares web?

    La expresión 'estándares web' puede significar cosas diferentes según para quién. Para algunos no es otra cosa que construir sitios web sin tablas, para otros se trata de hacerlo usando código válido. De cualquier manera, el concepto es mucho más amplio que esto. Los estándares web podrían ser definidos como:

      La adherencia a los estándares (HTML, XHTML, XML, CSS, XSLT, DOM, MathML, SVG, etc.) y la búsqueda de las mejores prácticas (código válido, código accesible, código semánticamente correcto, URLs amigables para el usuario, etc.).

    En otras palabras:

      Un sitio construido de acuerdo a los estándares de la web debe ser magro, limpio, basado en CSS, accesible, usable y amistoso con los motores de búsqueda.

  • Acerca de la lista

    No se trata de una lista cerrada. Probablemente hay muchos puntos que podrían ser añadidos. Simplemente es un punto de partida. Entre sus usos prácticos, incluye:

    • Demostrar la amplitud de los estándares web.
    • Como una herramienta práctica para los desarrolladores durante la fase de la producción de sitios web.
    • Como una ayuda para los desarrolladores que están interesados en la migración hacia estándares web.

    La lista se divide en 6 categorías:

    • Calidad del código
    • Grado de separación entre el contenido y su presentación
    • Accesibilidad para usuarios
    • Accesibilidad para dispositivos
    • Usabilidad básica
    • Gestión del sitio

La lista de comprobaciones:

  • Calidad del código

    1. ¿Usa el sitio un correcto Doctype?

    2. ¿Usa el sitio un juego de caractéres (charset)?

    3. ¿El sitio utiliza código (X)HTML válido?

    4. ¿El sitio utiliza código CSS válido?

    5. ¿Usa el sitio cortes (hacks) en el código CSS?

    6. ¿Usa el sitio 'clases' o 'ids' innecesarias?

    7. ¿Está el código bien estructurado?

    8. ¿Contiene el sitio algún enlace roto?

    9. ¿Cómo responde el sitio en términos de velocidad y peso de sus páginas?

    10. ¿Tiene el sitio errores de JavaScript?

  • Grado de separación entre el contenido y su presentación

    1. ¿Utiliza el sitio CSS para todos los aspectos de la presentación (tipografía, colores, márgenes, bordes, etc.)?

    2. ¿Están todas las imágenes decorativas dentro del código CSS, o aparecen en el código (X)HTML?

  • Accesibilidad para usuarios

    1. ¿Se utilizan los atributos "alt" para todas las imágenes descriptivas?

    2. ¿El sitio utiliza unidades relativas en lugar de absolutas para el tamaño del texto?

    3. ¿Se rompen algunos aspectos de la disposición si se aumenta el tamaño de fuente?

    4. ¿El sitio utiliza menús de salto visibles?

    5. ¿Usa el sitio formularios accesibles?

    6. ¿Usa el sitio tablas accesibles?

    7. ¿Hay suficientes brillos / contrastes de color?

    8. ¿Está usado el color sólo para la información crítica?

    9. ¿Existe un retraso en la respuesta de los menús desplegables 'dropdown' (para los usuarios con habilidades motoras reducidas)?

    10. ¿Son todos los enlaces descriptivos (para usuarios invidentes)?

  • Accesibilidad para dispositivos

    1. ¿Funciona el sitio aceptablemente en los navegadores modernos y los más viejos?

    2. ¿El contenido es accesible con el CSS desactivado o no soportado?

    3. ¿El contenido es accesible con las imágenes desactivadas o no soportadas?

    4. ¿El sitio funciona en navegadores de texto tales como Lynx?

    5. ¿El sitio funciona bien cuando está imprimido?

    6. ¿El sitio funciona bien en los dispositivos de mano?

    7. ¿El sitio incluye metadatos detallados?

    8. ¿El sitio funciona bien en un rango de los tamaños de la ventana del navegador?

  • Usabilidad básica

    1. ¿Existe una jerarquía visual clara?

    2. ¿Son los niveles del encabezamiento fáciles de distinguir?

    3. ¿El sitio dispone de una navegación fácil entender?

    4. ¿El sitio utiliza una navegación consistente?

    5. ¿Los enlaces están subrayados?

    6. ¿Utiliza el sitio un lenguaje consistente y apropiado?

    7. ¿Dispones de un mapa del sitio y una página de contacto? ¿Son fáciles de encontrar?

    8. Para los sitios grandes, ¿hay una herramienta de búsqueda?

    9. ¿Hay un enlace a la página principal o de entrada en cada página del sitio?

    10. ¿Los enlaces visitados se definen claramente con un color único?

  • Gestión del sitio

    1. ¿El sitio tiene una página de error 404 significativa y de ayuda que funcione a cualquier profundidad en el sitio?

    2. ¿El sitio utiliza URLs amigables?

    3. ¿Tus URLs funcionan sin "www"?

    4. ¿Dispone el sitio de un favicon?