miércoles, 31 de octubre de 2007

Lanzando un coche al espacio exterior.

Este es uno de los vídeos más divertidos y sorprendentes que me he encontrado en mucho tiempo. ¡¡Qué locos están estos Británicos!!

lunes, 29 de octubre de 2007

Memorias infinitas - organización limitada

Día tras día vemos anuncios de nuevas tecnologías que llevan los límites del almacenamiento cada vez más lejos. Hoy en día 4Gigas ya no son nada y los tamaños de varios Terabytes son frecuentes.
Está cerca el fin del problema de almacenar datos , pero ya hoy nos encontramos con otro y es cómo organizar la información de nuestros propios archivos.
Hoy por hoy seguimos utilizando el mismo sistema que se implantaron en los primeros sistemas Unix , las carpetas. Este medio ha sido útil durante mucho tiempo pero está teniendo ya sus días contados como único sistema de organización. Sin embargo no se ven demasiadas innovaciones en este aspecto a pesar de las nuevas versiones de Windows y MacOs.
Posibles implementaciones para solucionar este problema serían por ejemplo el desarollo de tags de forma nativa. De manera que pudiésemos listar archivos mediante sus etiquetas.
Otra forma es la posibilidad de relacionar diferentes archivos, por ejemplo relacionar una imagen de los últimos carnavales con un sonido de pito o con un vídeo de la gala de la reina. Ahora mismo tendríamos que hacerlo mediante una carpeta y metiendo todos los archivos dentro. Este método debería permitir relacionar los archivos estén donde estén , tanto si están en tu máquina , en la red local o en internet.

miércoles, 24 de octubre de 2007

Problemas con las imágenes en IE cuando están acentuadas.

Hace unos días tuve un problema en una de mis aplicaciones debido a que un usuario había metido una foto con una tilde. En mozilla la foto se veía pero IE no encontraba la foto y por lo tanto no la mostraba.
Por ejemplo , una imagen con el nombre 'El chapulín colorado.jpg' no podría ser mostrada en IE.
Para evitarlo, cuando cargamos la imagen y la mostramos en la página debemos hacerlo mediante el comando urlencode ( Nombre del fichero ); este comando codifica la cadena de manera que sólo se utilizarán caracteres complatibles con la normal RFC1738.
En resumen, cualquier URL (Uniform Resource Locator) que creemos dinámicamente debe ser codificada mediante urlencode en el caso de utilizar PHP.

Más información:
http://es.wikipedia.org/wiki/Localizador_Uniforme_de_Recursos
http://www.faqs.org/rfcs/rfc1738.html
http://es.php.net/urlencode

lunes, 22 de octubre de 2007

accesibilidad y comercio electrónico

En una reciente veredicto judicial en el estado de la Florida en los EEUU la web http://www.target.com/ fue condenada por no cumplir los criterios de accesibilidad. En este estado existe la ley de Discapacidad de California la cual obliga a todas las webs comerciales a que cualquier usuario con discapacidad tenga pleno acceso y funcionalidad a todo el site.

De todas maneras es un gran error hacer un sitio comercial no accesible, pensando tan solo en los intereses particulares de la empresa, ¿no vale el poco dinero invertido de más la alta fidelización que vamos a alcanzar en el nicho de mercado de los discapacitados? ¡Qué mejor cliente que el que tiene problemas para salir de casa e ir a nuestro comercio!

Más información:
http://www.seraccesible.net/article/un-tribunal-federal-de-eeuu-decreta-que-la-web-de-unos-grandes-almacenes-debe-de-ser-accesible-a-usuarios-ciegos

Síntomas del mal

Sobre el cambio climático:

"Yo sé poco de este asunto, pero mi primo supongo que sabrá. Y entonces dijo: He traído aquí a diez de los más importantes científicos del mundo y ninguno me ha garantizado el tiempo que hará mañana en Sevilla. ¿Cómo alguien puede decir lo que va a pasar en el mundo dentro de 300 años?"
Mariano Rajoy.

Con políticos como este tan ignorantes ¿Cómo se puede pretender avanzar en i+d+i en este país si no saben ni elegir sus consejeros científicos?
En esta frase además se resumen mucho de los males de esta sociedad, amiguismo, falta de miras, desconfianza en la labor científica y orgullo por ignorante.

domingo, 21 de octubre de 2007

Web y accesibilidad.

"El poder de la Web está en su universalidad. El acceso de todo el mundo con independencia de su discapacidad es un aspecto esencial"

Tim Berners-Lee, director del W3C

Proyecto Canary-Stars

Hay un proyecto de parque temático para el sur de Gran Canaria basado en la historia y la vida en el espacio llamado Canary-Stars. Este proyecto debería estar ultimado para finales del 2008.
Gran Canaria ha estado vinculada a la historia del espacio desde sus inicios, unas de las estaciones de antenas espaciales utilizadas por la NASA está en el sur de la isla y se puede ver vagamente desde la autopista cuando vas desde Maspalomas hacía Mogán desde la autopista. Además uno de los satélites que tiene españa en el espacio fue lanzado desde un avión en el espacio aéreo de Canarias. También debemos recordar el fracasado proyecto de la estación espacial del El Hierro. Hay que recordar también las instaciones de IAC en Tenerife y La Palma.
Es una buena noticia ya que el mundo de la divulgación científica y por lo tanto la ciencia en si ha estado siendo acosada constantemente en esta isla desde hace ya años por un sector político más preocupado por la especulación, la política camorrista y los símbolos insularistas que por el bien común en esta isla y de Canarias. Esperemos que nuestro museo de la ciencia nunca se convierta en su casino y que proyectos como estos salga adelante.

Más noticias:
http://www.laprovincia.es/secciones/noticia.jsp?pRef=1581_5_110158__SOCIEDAD-Y-FUTURO-Astronauta
http://www.iac.es/
http://es.wikipedia.org/wiki/Estaci%C3%B3n_Espacial_de_Maspalomas
http://danielmarin.blogspot.com/
http://www.marssociety.org.es/index.asp
http://www.museoelder.org/

Semántica del tag

Reflexionando sobre los tags tan vigentes hoy en día en toda aplicación web2.0 llegas a la conclusión de que carecen totalmente de una semántica formal. Cada usuario los usa según le parece y la semántica de cada tag queda difusa en la nube de etiquetas que se dan de alta en el sistema.
Por ejemplo, Los tags 'patrón' y 'pattern' tienen la misma semántica pero los sistemas web2.0 no son capaces de detectarlos. Lo deseable que es si pusieses una búsqueda de tags aparecieran todos los enlaces disponibles en los idiomas que desees. Además, ayudaría a los sistemas automáticos a recopilar la información deseada.

Soluciones:
Wikipedia podría aportar la semántica suficiente para dotar se sentido a todo este mundo de tags. Sin embargo no he visto ningún mecanismo adecuado en él que permita hacerlo aunque para cada entrada tiene enlaces a diferentes idiomas.

Las nubes de tags para cada enlace podrían definir la relación existente entre las diferentes etiquetas. Eso quizás se pueda extraer desde la misma aplicación web2.0.

jueves, 18 de octubre de 2007

Alargar tiempo de ejecución en PHP

Hay ocasiones, sobre todo en aplicaciones de mantenimiento, que las tareas encomendadas a un script superan con creces el máximo permito por la configuración del servidor de PHP. Esto está configurado en la variable max_execution_time definido en php.ini , generalmente a 30 segundos.
En el caso de que el sistema no este configurado en modo seguro ( safe_mode ) podemos modificar este tiempo en plena ejecución mediante el comando set_time_limit.

Este comando se define como:
void set_time_limit ( int segundos )

Una vez que se ejecuta añade al tiempo máximo de ejecución la cantidad de tiempo ( en segundos ) definido en el parámetro 'segundos' . En el caso de poner el tiempo igual a 0 el script correrá por un tiempo infinito.



Más información:
http://es.php.net/set_time_limit

URL muy larga.

El que puso esta dirección no sabía eso de que hay que poner direcciones fáciles de recordar.

http://3.141592653589793238462643383279502884197169399375105820974944592.com/index1.html

Por lo demás, es una página que recoge el primer millón de decimales de Pi.

martes, 16 de octubre de 2007

Tratamiento de errores en JavaScript

En muchas ocasiones nuestros programas en javascript fallan y generan indeseables mensajes de error, además es idóneo tener un mecanismo para poder manejar estos eventos. Para ello tenemos dos herramientas por un lado el evento onerror por otro lado la instrucción try...catch.

Estas estructuras son válidas desde las siguientes versiones de navegadores: IE5+, Mozilla 1.0, y Netscape 6. Así que su ámbito es lo suficientemente amplio como para poder implementarlo sin miedo.

La instrucción try...catch tiene la siguiente forma:

try
{
//Código que se ejecuta y que es posible que falle.
}
catch(err)
{
//Código para poder controlar el error.
}


El parámetro err de catch contiene una descripción del error. De manera que si imprimimos err.description tendremos una descripción.
Si necesitamos manejar varios posibles errores podemos hacer uso de la instrucción throw(exception). El código resultante tendría la siguiente forma:


try
{
if(x>10)
throw "Err1"
else
throw "Err2"
}
catch(err)
{
if (err == "Err1")
alert("Error 1");
if (err == "Err2")
alert("Error 2");
}


Para el manejo de onerror nada mejor que un ejemplo:

window.onerror= manejador;
function manejador(msj,url,linea)
{
var texto="Se ha producido el siguiente error:\n";
texto+= msj + "\n";
texto+="(URL: " + url + ". Línea " + linea + ")";
alert(texto);
return true;
}

Como vemos para el evento onerror del objeto window se le asigna una función que recibe tres parámetros, 'msj' mensaje del error, 'url' donde se produce el error y 'linea' que es la línea en la que se produce. Es el tipo de información 'amable' que nos proporciona cualquier navegador.

Más información en:
http://www.w3schools.com/js/js_try_catch.asp

Definiciones de Calidad ISO 8402

Calidad.
"Conjunto de propiedades y de características de un producto o servicio, que le confieren su aptitud para satisfacer unas necesidades explícitas e implícitas."

Control de calidad.
"Conjunto de técnicas y actividades de carácter operativo, utilizadas para verificar los requerimientos relativos a la calidad del producto o servicio."

Garantía de calidad.
"Conjunto de acciones planificadas y sistemáticas necesarias para proporcionar la confianza adecuada de que un producto o servicio satisfará los requerimientos dados sobre calidad."


La norma ISO 8402, 1994 define el vocabulario referido a la calidad.

lunes, 15 de octubre de 2007

Ficheros CSV

Los ficheros CSV (comma-separated values) son ficheros planos que almacenan información tabulada. Son muy útiles para el intercambio de información con independencia.
En estos ficheros los datos se separan por coma, y en los programas donde las cifras decimales se separan con coma los campos deben ser separados con punto y coma.
Cada fila se representa con un salto de línea.
Por defecto los campos de textos deben estar entre comillas dobles puesto que podrían contener saltos de línea, comillas simples o coma. En el caso de que el texto contenga doble comillas estas deben estar con su carácter de escape correspondiente.
También hay que evitar los espacios entre columnas.

Un ejemplo:










ProductoPrecio
Plátanos "sueltos"
1.20
Mangos6.10

El fichero CVS correspondiente sería:
"Producto","Precio"
"Plátanos \"sueltos\"",1.20
"Mangos",6.10

Más información:
http://es.wikipedia.org/wiki/CSV
http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm

2 = 1

Esta demostración matemática tiene trampa, una tan obvia que es difícil de ver, a ver su la encuentras.

a = b
a² = ab
a² - b² = ab - b²
(a - b)(a + b) = b(a - b)
a + b = b
b + b = b
2b = b
2 = 1

miércoles, 10 de octubre de 2007

Medición y ciencia

"Una ciencia tiene la misma madurez que sus herramientas de medición."
Luis Pasteur

Qué bueno es ponerse malo.

Ponerse malo es un fastidio pero hay ocasiones (sobre todo si es un simple resfriado) que es genial, aquí unas pocas razones.
  • Te saca de tu rutina diaria. Las vacaciones también lo hacen pero es diferente, las vacaciones suelen estar planificadas (te autoimpones una rutina para el futuro) y parece que a la fuerza tienes que hacer algo.
  • El estar todo el rato sin poder hacer algo te da la oportunidad de realizar una tarea casi olvidada, meditar. Por ejemplo, averiguar cuales son los proyectos vitales en tu vida y que no lo son o recordar cuales son las personas que en verdad te importan.
  • Mirar a la pared y no hacer nada. Eso está bien, no hay nada malo en no hacer nada, el simple acto de ver pasar el tiempo es en si una gran actividad. Ya que te ayuda a darte cuenta que el tiempo no pasa tan rápido como crees.

viernes, 5 de octubre de 2007

Serialización como método de cacheo

La serialización consiste en convertir en una cadena un objeto en concreto, es así como congelar un objeto en un momento de su vida. Este objeto se puede recuperar desde la cadena serializada en cualquier momento recuperando su estado.
Generalmente siempre que utilizamos un objeto lo declaramos, lo usamos y lo destruimos, casi nunca nos preocupamos en quedarnos con algún estado de su vida. En todo caso, solemos grabar propiedades de este en bases de datos o ficheros para poder construir otro objeto en otro momento. Con la serialización logramos obtener el estado de un objeto para manipularlo con posterioridad. Por ejemplo, en un administrador podríamos grabar el estado actual para poder recuperarlo más tarde y permitir que el usuario siguiese el trabajo en el punto donde lo dejó.
Otro caso interesante sería aquel en el que un objeto casi siempre tiene los mismos valores y estos resultan caros de obtener. Este costo puede ser debido a acceso a bases de datos o cálculos intermedios. Esto es más sangrante en lenguajes como PHP donde se pierden todos los objetos una vez que terminamos el script.
La serialización es una buena solución, podemos construir el objeto una vez, lo usamos y antes de destruirlo lo serializamos. Más tarde en vez de tener que volver a tener que hacer accesos a recursos costosos lo único que tenemos que hacer es recuperar la el objeto serializado.
Como el objeto no se actualiza de manera frecuente sólo tendremos que repetir el proceso de serialización en los casos en los que variemos los datos de estos.
Por ejemplo, si tenemos un sistema de traducción en una página la forma habitual de trabajar es primero construyendo un vector o un objeto que almacene todas las traducciones para esta página. Estos datos los sacaremos de una base de datos e utilizaremos el objeto como caché. Una vez que terminemos el script, eliminamos el objeto.
Esto se repetirá una y otra vez cada vez que ejecutemos el script con sus constantes accesos a la base de datos. Una solución basada en la serialización sería la siguiente: cuando se ejecuta el script creamos el objeto basado en un serialización previa, en el caso de que la página fuese modificada tendríamos que acceder a la base de datos , modificar el objeto y por último antes de eliminar el objeto seriarlo y grabarlo de nuevo.
De esta manera ahorraremos una gran cantidad de accesos al motor de base de datos y ahorraremos una gran cantidad de recursos.

Escribiéndolo en un algoritmo informal:
si tenemos fichero serializado
  creamos buffer en base al fichero
sino
  creamos buffer vacio
finsi

para todas las claves del documento
  buscamos en el buffer
  si esta en el buffer
    recuperamos palabras del buffer
  sino
    hacemos peticion a base de datos
  finsi
finpara

si buscamos algo en base de datos
  serializamos el buffer
  grabamos fichero con la cadena serializada
finsi

jueves, 4 de octubre de 2007

Premios Lunar XPrice.

La carrera espacial no murió con las misiones Apolo. Hoy la industria privada ha sido motivada con los premios Lunar XPrice y la conquista de los recursos económicos del espacio.
Google impulsó hace pocas fechas una competición que consiste en poner un robot en la luna la recorra en al menos 500m y envíe datos a la tierra. ¿El premio? 30 millones de dólares además de toda la experiencia que la misión proporcionará a todas las empresas que emprendan este gran proyecto.

Quizás una de las empresas interesadas en el premio es ARCA una empresa Rumana que quiere llegar al espacio con la ayuda de un globo. Ya han realizado dos pruebas con éxito, habrá que ver si lo consiguen.

Seguramente si la misión fuera quedarse con parcelas para construir urbanizaciones ya sabríamos que país llegaba primero.

Más información:
http://www.googlelunarxprize.org/lunar/
http://www.arcaspace.ro/en/home.htm

50 aniversario del Sputnik.

Hoy hace 50 años desde que el hombre puso su primera máquina en el espacio exterior, el Sputnik. Una máquina más parecida a una emisora de radio que otra cosa y que desató la más apasionante de las competiciones de la historia: la conquista de la luna.
Si quieres oír el sonido de la máquina hazlo en el siguiente enlace: http://history.nasa.gov/sputnik/sputnik.wav

Más información:
http://history.nasa.gov/sputnik/index.html
http://notesp.blogspot.com/2007/10/hace-50-aos-1-sputnik.html

martes, 2 de octubre de 2007

Resultados estadísticos de visitas a sites en internet.

Después de analizar las estadísticas de varios sites que se encuentran actualmente activos en internet he podido sacar los siguientes datos estadísticos. Se refieren al software que utilizan los internautas.

Sistemas operativos:





S.O.Proporción
Windows97%
Mac2%
Linux0.5%


Como podemos ver el sistema operativo basado en UNIX más difundido entre los internautas en MacOSX. La hegemonía absoluta de los sistemas windows no tiene discusión. ¿Para cuando un MacOSX para PC?

Sistemas operativos windows:






S.O.Proporción
XP87%
20005%
Vista4%
982%


Increíble, el windows Vista apenas supera al vetusto windows98, mientras el parque de sistemas con windowsXP es multitud. He de confesar que muchas veces me he visto tentado de borrar el Vista y volver a poner el XP. Y no lo he hecho porque es bonito y siempre resulta agradable tener en casa algo diferente a lo que tengo en el trabajo.

Navegadores web:






NavegadorProporción
IE83%
Firefox15%
Safari1.2%
Opera0.41%

Otra vez hegemonía de un producto microsoft y una raquítica penetración en el mercado de Opera. Curiosamente parece que la mitad de los usuarios de mac no utilizan Safari (no me extraña, este producto tiene mucho que mejorar en mi opinión).

Navegadores IE web:





NavegadorProporción
IE 666%
IE 733%
IE 51%


Se ve que a la gran mayoría de los internautas no les gusta mucho probar cosas nuevas. Ya que a pesar del tiempo que ha pasado desde la salida de IE7 todavía no ha podido con el IE6. si tenemos en cuenta que prácticamente sólo la gente que se compra ordenadores nuevos con el Vista impuesto tiene IE7 instalado por defecto, vemos que muchos internautas a pesar de cambiar de navegador no han dado oportunidad a otro producto que no sea de microsoft.

Y por último las resoluciones de pantalla:
Navegadores web:






ResoluciónProporción
1024x76854%
1280x102420.5%
800x60010.6%
1280x80011.2%


Cabe destacar que los anchos de 1280 tienen una cuota de casi el 32%. Mientras los 800x600 resisten con su 11%. Creo que la tendencia en el caso de que triunfe la informática móvil es que los 800x600 suban su cuota, pero eso lo dirá el tiempo.