Archivo de la categoría Informática

Usar o no usar mysql_num_rows



PHP incluye la función para MySQL mysql_num_rows, que en base a un recurso procedente de una consulta MySQL, retorna un numérico que representa el total de registros que se han devuelto.

El sentido común indica que utilizar la consulta SQL usando COUNT(*) será probablemente algo más eficiente, basicamente por aquello de que todo lo relacionado con el manejo de los datos, lo gestiona mejor el propio SGBD.

Lo que yo no sabía, era que la diferencia fuera tan grande… Así, para una tabla con aproximadamente 50.000 artículos, el código con mysql_num_rows siguiente, ha requerido 0,175506 segundos, o un poco más de 5 consultas por segundo:

//Contar usando num_rows
$fInicio=microtime(true);
$sSQL="SELECT * FROM articulo ";
$rstListado=mysql_query($sSQL);
$iRows=mysql_num_rows($rstListado);
mysql_free_result($rstListado);
$fFinal=microtime(true);
echo "Contar num_rows: " .


Continuar leyendo...

Windows 2008 x86 y x64 gratis



La iniciativa DreamSpark de Microsoft, permite que estudiantes obtengan productos de la compañía de forma totalmente gratuita. Se imponen las restricciones lógicas que prohiben el uso de el software así obtenido con fines comerciales, o su reventa, aunque por lo demás, son ediciones completas y plenamente funcionales.

Dentro del programa, se ofrecen aplicativos de todo tipo, algunos ya gratuitos por otros medios como las ediciones Express de Visual C# 2008, Visual C++ 2008, SQL Server 2008, o Virtual PC 2007. Otros son versiones anteriores a las actuales, como Visual Studio 2005 Professional, o Windows Server 2003 Standard.…

Continuar leyendo...

Lote óptimo



Gracias al proyecto de digitalización de la Revista ZX, y a raiz de un encuento casual con el listado de programas publicados, me encuentro con que dentro del número 15 de febrero de 1986, en la página 54, aparece lo siguiente:

(adsbygoogle = window.adsbygoogle || []).push({});

Lo curioso del caso, es que aunque recuerdo perfectamente haber mandado con cierta periodicidad programas a revistas, aproximadamente de los 10 a los 18 años, empezando con ZX, o Microhobby, y acabando con PC-Actual, mi memoria sólo es consciente de un par de contribuciones que finalmente fueran publicadas. En este caso, en PC-Actual.…

Continuar leyendo...

The Ur-Quan Masters



Supongo que todos recordaréis la adictiva saga Star Control de Accolade, que a principios de los 90 se ofreció para la mayoría de sistemas tanto de 8, como de 16 bits, y que continuaría unos años más con Star Control 2 y Star Control 3.

Me gustaba de él, que en su primera versión, era capaz de funcionar en hardware muy limitado, obteniendo el máximo de sus posibilidades en un 286 con 640 Kb. de memoria ejecutando la versión VGA para DOS, y que cabía perfectamente en un disquete, lo que permitía pasar un rato de entretenimiento, en casi cualquier ordenador. Las siguientes versiones, explotaban ya los 32 bits, aunque en el caso de los PC, todavía bajo el socorrido DOS.…

Continuar leyendo...

La sabiduría de Bender



La sabiduría de Bender, llega hoy en día incluso hasta el ámbito de la programación. Y si no, juzgad vosotros mismos.

var googletag=googletag || {}; googletag.cmd=googletag.cmd || []; googletag.cmd.push(function() { googletag.defineSlot("/360613911/GenericosDFP2018", [728, 90], "div-gpt-ad-1523882324353-5").addService(googletag.pubads()); googletag.pubads().set("page_url", "http://www.javiergutierrezchamorro.com/category/informatica/page/60"); googletag.pubads().enableSingleRequest(); googletag.enableServices(); });googletag.cmd.push(function() { googletag.display("div-gpt-ad-1523882324353-5"); });



Continuar leyendo...

Vectores, matrices, registros y otras hierbas



Últimamente, se está propagando el término vector, para definir lo que antes conocíamos como un array, y que en sus comienzos eran denominados arreglos. Tanto es así que hasta para la Wikipedia es uno de los términos preferidos, y la STL de C++ los denomina a su vez de éste modo.

En mi opinión, vector es a veces confuso, pues puede prestarse a equívoco con los vectores matemáticos usados en 3D para realizar representaciones gráficas. Es cierto que un vector matemático es implementable con arrays, pero pienso que para definir el término general de programación, lo adecuado debería ser arreglo o array.…

Continuar leyendo...

Suficiente para un juego de Spectrum



Tener una partición en discos RAID con 260 Gb, puede parecer suficiente para almacenar información. Pero se va llenando, y llenando, y al final, no da para mucho… Poco más que un juego de Spectrum 48K.



Continuar leyendo...

Tira del día de Garfield en castellano



Hace algo más de tres años, que publiqué en Tira del día de Garfield, un sencillo script para tener acceso diario la última tira de Garfield publicada.

Hoy os lo traigo actualizado y mejorado, obteniendo el contenido de la página en castellano.

El código está basado en la anterior versión, con un par de añadidos, y no es precisamente un buen ejemplo para nada:

<script language="Javascript" type="text/javascript">
var sUrl='';
var dteToday=new Date();

if (dteToday.getFullYear()<100)
{
sUrl+='http://www.garfield-es.com/tiras/tiras/' + (dteToday.getFullYear() + 2000) + '/';
}
else
{
sUrl+='http://www.garfield-es.com/tiras/tiras/' + dteToday.getFullYear() + '/';
}
if ((dteToday.getMonth() + 1)<10)
{
sUrl+='0' + (dteToday.getMonth() + 1 + '/');
}
else
{
sUrl+=(dteToday.getMonth() + 1) + '/';
}
if (dteToday.getYear()<2000)
{
if (dteToday.getYear()<10)
{
sUrl+='ga0' + dteToday.getYear();
}
else
{
sUrl+='ga' + dteToday.getYear();
}
}
else
{
if (dteToday.getYear()<2010)
{
sUrl+='ga0' + (dteToday.getYear() – 2000);
}
else
{
sUrl+='ga' + (dteToday.getYear() – 2000);
}
}
if ((dteToday.getMonth() + 1)<10)
{
sUrl+='0' + (dteToday.getMonth() + 1);
}
else
{
sUrl+=(dteToday.getMonth() + 1);
}
if (dteToday.getDate()<10)
{
sUrl+='0' + dteToday.getDate();
}
else
{
sUrl+=dteToday.getDate();
}
sUrl+='.gif';
document.write('<img src="' + sUrl + '" title="La tira de Garfield de hoy" border=0>');
</script>

var sUrl=''; var dteToday=new Date();

if (dteToday.getFullYear()…

Continuar leyendo...

Actualizaciones de programillas



Llevaba algunos días sin publicar, y eso se debe a que el poco tiempo libre que tenía, lo he invertido en actualizar algunos de mis programillas.

Primero tenemos el Javascript Benchmark, del cual ya pudísteis leer aquí, y que consiste en una herramienta online para evaluar el rendimiento en la ejecución de código Javascript de nuestros navegadores, acumulando todos los resultados, para finalmente mostrarlos agregadamente por navegador y plataforma.

En segundo lugar está el RealSpeed que también os anuncié aquí, y que recibió posteriormente una revisión menor.

Luego tenemos a Lamark, donde básicamente cogí el antiguo código de 2006 del programa, y lo recompilé con C++ Builder 2009, se cambió la compresión para evitar falsos positivos de antivirus y se generó una ayuda en formato CHM, que es desde hace algún tiempo el nuevo standard, y en principio el único sistema disponible en Vista.…

Continuar leyendo...

Adobe dice: Offending operator



A raiz del comentario de Jaume Ferro, y aprovechando la captura que me envió Raúl, hoy os presento uno de los mensajes más enigmáticos con los que me he encontrado.

Está capturado de Illustrator CS3, en un MacOS X, e indica claramente Can't open the illustration. The illustration ended unexpectedly, que nos aclara poco. dice que no pudo abrir la ilustración, y bueno, hasta donde yo se, se abren puertas o archivos, aunque no ilustraciones, luego concluye con que finalizó inesperadamente. De nuevo, se refiere a un fichero, no a la ilustración.

Pero para mejorar la usabilidad, nos da algunas pistas sobre la causa del problema: Offending operator, o sea, un operador ofendedor.…

Continuar leyendo...