Similar Posts
links for 2007-03-20
-
Al parecer ha sido descubierta una forma de aplazar indefinidamente la petición de activación de Windows Vista, por lo que puedes llegar a utilizar el sistema operativo tanto tiempo como quieras sin necesidad de validar. No se trata de ningún crack ni(tags: vista)
-
El problema de tener un blog bajo WordPress en un subdominio (subdominio.dominio.com) es que a la hora de migrarlo a un dominio (dominio.com) puede dar verdaderos quebraderos de cabeza. En Aeromental han creado un manual con solo 8 pasos a seguir y poder
-
Que se preparen los Oscar. Que se hagan a un lado los MTV YouTube presentará los premios a los mejores archivos creados por sus usuarios en 2006. A partir de hoy, los internautas pueden presentar sus vÃdeos en siete secciones….Las votaciones se cerrar
Prado: framework para PHP5
Prado es un framework para PHP basado en componentes y en eventos. Inicialmente inspirado en Apache Tapestry, la primera versión se realizó para PHP4, pero se reescribió completamente para PHP5.
Entre las caracterÃsticas que nos ofrece encontramos la separación entre la presentación y la lógica, su arquitectura modular configurable, componentes web, internalización y localización, manejo de errores, logs, caché, ACL, prevención de XSS y mucho más.
Prado
links for 2007-01-04
-
Hoy he encontrado por casualidad una introducción a Ruby on Rails, por parte de la Asociación Nacional de Webmasters de Perú que está bastante bien: sin entrar muy a fondo repasa los conceptos básicos, explica cómo instalar Ruby on Rails e incluso c
Intercambiando el valor de columnas en MYSQL
Interesantes métodos para intercambiar el valor de dos columnas en MySQL.
UPDATE swap_test SET x=y, y=@temp WHERE (@temp:=x) IS NOT NULL;
Este método no funciona cuando alguna de las columnas tiene valor NULL, y los paréntesis son obligatorios.
Otro método, que no tendría problemas con los NULL, sería:
UPDATE swaptest s1, swaptest s2 SET s1.x=s1.y, s1.y=s2.x WHERE s1.id=s2.id;
links for 2006-12-28
-
David Harper ha publicado un plugin que detectará automáticamente si el que lo visita lo hace a través del navegador Opera de la Wii, y corregirá los colores y las fuentes del blog, optimizándolo para la Wii y la televisión. Su instalación es muy s
-
Cuando oÃmos hablar de Sistemas Operativos en Web, suele ser en futuro. Por eso sorprende encontrar esta lista confeccionada por FranticIndustries, en la que encontramos 10 de estos sistemas que funcionan hoy
-
Scott Beale reports he just received a free computer with Windows Vista loaded on it. Now THAT is my idea of PayPerPost!
Laboratorio: Twitter trends
Mi amigo Christian me ha comentado que la entrada anterior sobre Twitter sería más interesante si mostrara los datos sobre un término.
Pues dicho y hecho, tan sólo se necesitan dos scripts, uno para recuperar los datos y otro para mostrarlos. El primero habrá que ponerlo en el cron para que recupere los datos cada cierto tiempo (en mi ejemplo busco “google” cada 2 minutos).
Hay que tener cuidado porque Twitter da un máximo de 2000 actualizaciones nuevas, por lo que tendremos que ajustar los tiempos de consulta en Twitter.
El script que lee los datos es el siguiente:
<? php
function insertar($consulta, $ult) {
global $db;
$data = json_decode(file_get_contents('http://search.twitter.com/search?q='.urlencode($consulta).'&refresh=true&since_id='.$ult));
$n = isset($data->total) && $ult != $data->max_id? $data->total:0;
$db->queryExec('INSERT INTO estadisticas (fecha, n) values ('.time().', '.$n.')');
if (!$ult) $db->queryExec("INSERT INTO opciones (clave, valor) values ('ultimo', ".$data->max_id.")");
else $db->queryExec("UPDATE opciones SET valor = ".$data->max_id." where clave='ultimo' ");
}
$consulta = $_GET['q'];
// Limpio para poder usarlo en el nombre para la BD
$_consulta = preg_replace('/[^A-Z0-9]/i', '_', $consulta);
if ($db = new SQLiteDatabase($_consulta.'.db')) {
$q = @$db->query("SELECT valor FROM opciones Where clave='ultimo'");
if (!$q) {
$db->queryExec('CREATE TABLE estadisticas (fecha real, n real, PRIMARY KEY (fecha));');
$db->queryExec('CREATE TABLE opciones (clave text, valor text, PRIMARY KEY (clave));');
$q = $db->query("SELECT valor FROM opciones Where clave='ultimo'");
}
$r = $q->fetchAll(SQLITE_ASSOC);
$ult = 0;
if (!empty($r)) $ult = $r[0]['valor'];
insertar($consulta, $ult);
}
?>
Y el script que dibuja la gráfica es:
<? php
$desde = strtotime($_GET['desde']);
$hasta = strtotime($_GET['hasta']);
$consulta = $_GET['q'];
// Limpio para poder usarlo en el nombre para la BD
$_consulta = preg_replace('/[^A-Z0-9]/i', '_', $consulta);
if ($db = new SQLiteDatabase($_consulta.'.db')) {
$q = $db->query("SELECT fecha, n FROM estadisticas Where fecha>".$desde." and fecha<".$hasta);
$r = $q->fetchAll(SQLITE_ASSOC);
foreach($r as $item) {
$x[] = $item['n'];
$l[] = $item['fecha'];
}
}
header('Location: http://chart.apis.google.com/chart?chtt=Line+Chart&chts=000000,12&chs=1000x600&chf=bg,s,ffffff|c,s,ffffff&chxt=x,y&chxl=0:|'.implode('|', $l).'|1:|'.implode('|', $x).'&cht=lc&chd=t:75.00,16.66,0.00,8.33,100.00&chdl=Label+1&chco=0000ff&chls=1,1,0');
Actualización: Google Charts no deja meter muchos valores por lo que la gráfica de arriba sólo saca las 20 últimas actualizaciones