sábado, 29 de diciembre de 2007

Bilbao - Space invaders


Si estás en Bilbao puede ser una actividad curiosa buscar marcianos del clásico juego 'space invaders' por sus calles. Aquí un ejemplo en la calle de Ronda del Casco viejo.

¿Quiénes nos roban?

He estado en Barcelona y Bilbao en fechas recientes, dos ciudades con fama de tener un alto nivel de vida y por lo tanto unos precios más caros de lo normal. Sin embargo me he llevado la desagradable sorpresa de ver los precios hasta un 20% más baratos que en supermercados de Gran Canaria.
Lo más sangrante del asunto es que suceden dos cosas por las cuales no debería pasar esto la primera las ayudas de la Unión Europea a los alimentos básicos y por otra parte el diferencial fiscal.
Las ayudas del REA se aplican a los alimentos para compensar los gastos de transporte, no hace falta ser un lumbreras para ver que estas ayudas no se están aplicando y que están engrosando la cuenta de resultados de las empresas importadoras sin repercutir beneficios para el consumidor.
La diferencia fiscal es otra cosa que no vemos tampoco, es fácil de ver en empresas con implantación nacional, los precios aplicados en España y Canarias son exactamente iguales. Si tenemos en cuenta que en un sitio de aplica un 12% de impuestos y en otra un 4.5% otra vez un montón de dinero que se llevan sin repercutir en los consumidores y que de nuevo forma parte de la cuenta de resultado de estas empresas sin escrúpulos.
Y que no me digan que es el transporte, ese cuento no me lo trago. Ya sabemos lo que hacen las compañias aéras cada vez que se suben las subvenciones al transporte, subirnos los billetes a los canarios en la misma proporción.

domingo, 23 de diciembre de 2007

Como evitar errores inesperados en PHP.

Muchas veces nos encontramos con errores de dificil solución en tiempo de ejecución. En este estado de desarrollo los errores salen a relucir mostrando cosas que no esperamos. Casi siempre debido a inicializaciones indebidas.
Un modo de evitar estos problemas y mejorar la calidad de nuestros programas es introducir las siguientes líneas de código:

ini_set('display_errors',true);
Que obliga a mostrar los errores por pantalla.

error_reporting(E_ALL);
La aplicación debe mostrar todos los errores para una mejor depuración.

Con estas dos simples líneas hacemos que se muestren todas y cada una de las incidencias por pantalla. Deberemos por lo tanto, entre otras cosas, inicializar las variables cosa que pocos programadores en PHP tienen costumbre.

jueves, 20 de diciembre de 2007

El eeepc de Asus


Este año el producto más novedoso en el mercado informático ha sido el eeepc de Asus, se trata de un pequeño ordenador con una pantalla de 7' y prestaciones modestas. Se ha convertido en muy poco tiempo en el dispositivo ultraligero más popular debido a su pequeño tamaño y a que se ha convertido en el juguete preferido de los manitas. Asus ha tenido visión y los ha sacado con un sistema operativo linux y una serie de enlaces en su web que invitan a manipular la máquina, tanto en su software con en su hardware.

Más enlaces:
http://eeepc.asus.com/global/
http://forum.eeeuser.com/

Una central nuclear de andar por casa.


Toshiba va a sacar al mercado una minicentral nuclear para pequeños núcleos poblacionales. Esta central se alimenta de un isótopo radioactivo llamado Litio-6 que capacita a la central con autonomía durante 40 años. Son 40 años sin mantenimiento y con riesgos mínimos de accidente. La cantidad de energía producida es de 200kW y todo ello ocupando un espacio de 12m2.
Creo que es una solución ideal para pueblos como Tejeda o La Aldea que están bastante alejados del resto de la isla y les proporcionaría una autonomía energética muy deseable. Las únicas preguntas que quedan son sobre el coste. ¿Cuanto será el coste de la central? ¿Cual será el precio de la pila de energía?
En Europa se tendrá que esperar hasta el año 2009 para poder comprarlo, hasta esa fecha solo cabe esperar el impacto que tendrá en el mercado japones. Un país que tiene muchas cosas en común con nosotros, es una isla dependiente energéticamente del exterior y con una densidad de población muy alta.

Para ver más:
http://www.nextenergynews.com/news1/next-energy-news-toshiba-micro-nuclear-12.17b.html

lunes, 17 de diciembre de 2007

Curso de rede


Es un pequeño error, pero es que el material impreso es así, una vez publicado no hay manera de corregirlo.
Así que este 'curso de rede' quedará para siempre inscrito en la historia de esta revista o al menos clavado en la moral del editor y del director hasta el fin de los tiempos.
Hace ya mucho tiempo que la profesión de corrector ha muerto víctima de la fe ciega en los correctores automáticos. Pero los correctores automáticos son sólo robots carentes de la suficiente inteligencia como para resolver todos los casos de una manera correcta.
Reivindico la figura del corrector, esas personas que poblaban los periódicos hasta no hace mucho tiempo y que colaboraban a que estos fuesen un medio donde se hacía buena literatura a diario. Hoy no es raro ver con cierta tristeza periódicos llenos de erratas que son todo un signo de baja calidad.
Una sociedad de la información como es esta ha hecho muy mal en desplazar estos profesionales, necesitamos como el respirar profesionales de las letras tanto en el medios escritos como en la web.

lunes, 10 de diciembre de 2007

Nombre de las fotos.

Los diseñadores gráficos y los maquetadores deberían acostumbrarse a nombrar los archivos de una manera adecuada. En mi experiencia profesional me he encontrado en un sinfín de veces imágenes nombradas como foto_1.jpg , foto_2.jpg ..... en una ristra enorme de imágenes con nombres sin ningún significado concreto.
Sin duda, tanto los diseñadores como los maquetadores tienen herramientas y entornos muy visuales de los que carecemos los que implementamos las funcionalidades del site. Mientras un diseñador ve una enorme imagen con un nombre pequeñito e insignificante abajo el desarrollador ve un nombre sin significado aparente de una imagen que no puede ver.
Así que , si eres diseñador o maquetador piensa la próxima vez en tus compañeros, y si tienes que nombrar una foto de un niño feliz ponle de nombre niño_feliz.jpg y no foto_23.jpg . Que si después hay que poner un nombre feo ya nos encargamos nosotros que para eso no somo diseñadores.

domingo, 2 de diciembre de 2007

Un buen regalo navideño.


He encontrado el regalo que seguro se hará inolvidable en la vida de la afortunada persona que lo reciba. Se trata de un meteorito de nikel y hierro de unos 30Kg de peso.
Es un regalo estupendo que apenas ocupará un trozo de su salón, su única pega, su precio 12.000$.

Más información en:
http://www.thespaceshop.com/geme.html

jueves, 29 de noviembre de 2007

Herramienta para webs orientada móviles

Esta es una estupenda herramienta para comprobar la compatibilidad de nuestra web con los navegadores de los teléfonos móviles. Incluso si la web no está orientada a móviles es muy útil ya que realiza un chequeo completo del site.
Se puede ver en: http://ready.mobi/

Una apuesta por la ciencia básica.

La ciencia básica no está orientada a fines prácticos, su único objetivo es el conocimiento por el conocimiento. A partir de este conocimiento se pueden generar investigaciones orientadas a la práctica o directamente productos con una funcionalidad clara.
Por no estar orientado a un fin práctico es difícil de evaluar y cada vez recibe menos apoyos financieros, debido a que cada vez más la economía está motivada a obtener beneficios en plazos cada vez más cortos. Y si algo tiene la ciencia de base es que el éxito no está asegurado.
Sin embargo esta postura debería replantearse ya que el 25% de la economía mundial se basa en descubrimientos de Albert Einstein. Un científico que nunca tuvo en mente obtener ninguna solución práctica de sus investigaciones.

miércoles, 28 de noviembre de 2007

Una ciudad llena de banderas

Hoy ha amanecido una ciudad distinta a la de todos los días. Hoy se ha presentado inundada de banderas canarias sobre todas las farolas. Nadie ha sabido decir como han podido hacerlo, ya que en una sola noche han cambiado la fisonomía de la ciudad.
Se agradece un acto cultural de este tipo de vez en cuando y es que todavía este país tiene esperanza.

viernes, 23 de noviembre de 2007

Exoesqueleto

Este vídeo es de un sistema exoesqueleto que incrementa las capacidades físicas de una persona. Es parte de un desarrollo militar pero sus aplicaciones civiles parecen amplias, desde la ayuda a personas con problemas físicos a herramienta para trabajo.

jueves, 22 de noviembre de 2007

Coste de la fase de mantenimiento.

"El mantenimiento que normalmente incluye tanto la corrección de errores como las actualizaciones es de una importancia económica crucial puesto que puede tomar hasta el 75% del total del coste del ciclo de vida del software."

Esta frase está extraída de un informe sobre ingeniería del software, mi experiencia me muestra que esta sentencia es cierta, aunque se puede decir que este 75% puede quedarse corto.
Hay labores durante la fase de mantenimiento que se descuidan como es la documentación de estos, fundamentalmente por la presión del cliente para que las incidencias sean resueltas en el plazo de tiempo más corto posible. En el caso de que estas labores no sean cubiertas de manera adecuada se corre el peligro que el proceso de degradación del software se acelere y el software quede degenerado en poco tiempo obligando al equipo de mantenimiento a realizar procesos de refactorización demasiado temprano.

viernes, 16 de noviembre de 2007

iPod touch

Hace unos días un compañero trajo su recién comprado iPod touch, una máquina inmaculada y casi sin estrenar. Me la mostró y me dejó un poco decepcionado, una interfaz increíble que se le da por supuesto a cualquier producto de apple, una navegación por internet basado safari y wireless y unas pocas aplicaciones. Algunas como la agenda estaba hasta capada sin ofrecer todas las posibilidades que se muestran en el iphone. Sin embargo daba la impresión de ser una gran máquina con un software un poco corto, casi como tener un portátil de última generación con un windows 3.11 .
Al poco tiempo la hackeó y la cosa cambió, pasó de ser un mp3 sofisticado a ser un miniordenador fantástico, todo una máquina con todas las posibilidades de un unix ( macosX ). El número de aplicaciones que se pueden instalar son amplias, desde juegos a aplicaciones para el control de la red, terminarles, servidores. Todo una computadora en la palma de tu mano.
En tiempos en los que las PDA mueren poco a poco este aparato hackeado marca el camino de la supervivencia de estas, esto es, interfaces trabajadas y propias de la potencia de estas máquinas. Las PDA que se ven hoy en día divergen de este camino , las pocas basadas en palmOS muestran un software un poco corto para tanta máquina y las basadas en WindowsCE una interfaz que resulta amigable por conocida pero no por trabajada.
El único complemento que le falta al iPod touch es un teléfono bluetooth pequeño que podamos llevar en la oreja y que podamos marcar desde el ipod.
Creo que nunca unos hackers han hecho tanto por una máquina como en esta ocasión, convirtiendo un mp3 de lujo en un ejemplo para la informática del futuro.
Lo único que se puede echar de menos es algún método de escritura a mano alzada, aunque la verdad en la palm no funciona tan bien como parece.

Herramienta. Selector de colores accesibles.

Esta herramienta permite simular el aspecto que tendrá una selección de colores determinados para personas con dificultades visuales.
Es accesible en:

http://gmazzocato.altervista.org/colorwheel/wheel.php

jueves, 15 de noviembre de 2007

Imágenes en alta resolución de la Luna.

La misión japonesa Selene ha enviado las primeras imágenes de alta resolución de la luna. Son increibles.

En este podemos ver la superficie de la luna.








En este podemos ver un atardecer de la tierra ocultándose detrás de horizonte lunar.




Sobre el uso de páginas de presentación en los sites.

“Cuando llegan clientes pensando en páginas ’splash’ en Flash, les recomendamos que vayan al supermercado más cercano y lleven un mimo consigo. Instalen al mimo en el frontis del supermercado, y, cada vez que un cliente vaya a entrar, hagan que les brinde una presentación de uno o dos minutos, dándoles la bienvenida al establecimiento e intentándoles comunicar que el pan está en el pasillo seis y la leche está en oferta por el día de hoy”.

Jared Spool.
User Interface Engineering at Macromedia.

martes, 13 de noviembre de 2007

Odio las ferias.

Tengo un cliente que va ferias y cada vez que hay una hay que echarse a temblar. La razón cierres prematuros o lo que es lo mismo un montón de parches, ñapas y código que jamñasserá corregido.
Al final el producto final es una gran bola de mierda... pero funciona... por el momento.

domingo, 11 de noviembre de 2007

Chocolate del loro

Tenía un profesor de la asignatura de programación que cada vez que intentábamos mejorar un algoritmo de ordenamiento de vectores decía que la propuesta no valía porque era 'chocolate del loro'. Esto es, la solución propuesta mejoraba tan poco el problema que no valía la pena el esfuerzo de corregirlo.
Con el tiempo te das cuenta que siempre es mejor plantearse si la solución a un problema no va a estar dentro de la clasificación 'chocolate del loro', en este caso vamos a aplicar un esfuerzo a la solución de un problema mediante una solución que no va a mejorar prácticamente nada, y por lo tanto tendrás el mismo problema una vez se aplique la solución.

miércoles, 7 de noviembre de 2007

HIJAX Un Ajax más inteligente

En la mayoría de las ocasiones las aplicaciones basadas en AJAX no son accesibles. Una aplicación basada en AJAX usa de manera exclusiva javascript para todo tipo de funcionalidad tanto las banales como las que resultan indispensables para sacar algún provecho de la aplicación.
Para hacer aplicaciones atractivas, funcionales y a la vez accesibles tenemos la técnica del HIJAX. Esta consiste en desarrollar la aplicación en dos fases:
1 fase. Desarrollo de la aplicación totalmente basada en el servidor. Toda la funcionalidad debe estar soportada por el servidor y no dejar nada al cliente. Por lo tanto, programar sin ninguna linea de javascript.
2 fase. Desarrollo de las funcionalidades en javascript haciendo que este capture los eventos y trabaje con ellos. En este momento implementamos la aplicación con la filosofía AJAX tradicional.

Esta técnica saca el máximo partido a técnicas de 'tolerancia a fallos (Fault-tolerance or graceful degradation)' y de 'Mejora progresiva (Progressive enhancement)'.

Las técnicas de tolerancia a fallos tienen como resultado que nuestra aplicación sea capaz de salir airoso de situaciones potencialmente peligrosas para el buen funcionamiento de este. Y las técnicas de mejora progresiva hacen que a pesar de que una característica de la página no pueda ejecutarse la funcionalidad se pueda mantener. Por ejemplo, si no puede cargarse las hojas de estilo la página todavía puede ser visualizada.

HIJAX es una técnica indispensable para una site de calidad.

Más sobre el tema:
http://www.seraccesible.net/article/hijax-ajax-accesible
http://en.wikipedia.org/wiki/Graceful_degradation
http://en.wikipedia.org/wiki/Progressive_enhancement

martes, 6 de noviembre de 2007

Leyes que dan la espalda a internet.

Harto de que me mande spam de 'alargue su pene' con imágenes explícitas incluidas pensé: 'mando un email a la Guardia Civil denunciándolo y si quieren y/o pueden ya harán algo', pero no ha podido ser. Para presentar denuncias por delitos telemáticos tienes que presentarte en el cuartelillo de la Guardia Civil y no me pilla de camino.
No deja de ser una lastimosa contrariedad tener que trasladarme para presentar una denuncia para esto. Además, ¿quá hago? ¿imprimo el email para que lo vean? ¿tan complicado es poner un formulario de denuncias anónimas?
Al final la culpa no es de estos profesionales sino de los legisladores que están más preocupados en poner banderas en los ayuntamientos que en hacer bien su trabajo. Y es que hoy por hoy el spam está poniendo en jaque internet, hace de este un medio incómodo y poco fiable. Donde hay público sensible que está expuesto a información no deseada y no está protegido por el sistema.


Más información:
https://www.gdt.guardiacivil.es/denuncias.php

__destruct , fopen() , problema y solución.

Ayer estuve jugueteando un poco con el método predefinido __destruct (PHP5) y descubrí algo interesante. Eso si, la explicación estaba en la ayuda oficial de PHP en esas notas que casi siempre se olvidan.
El código era el siguiente:


function __destruct()
{
//Serializamo el vector.
$Serializacion = serialize( $this->Vector );

//Grabamos la serialización en un fichero
$Fichero = fopen('Datos.txt', 'a');
fwrite($Fichero, $Serializacion);
fclose($Fichero);
}


El fichero en concreto estaba grabado en el directorio /var/www/Ajax/ y tenía todos los permisos correctos para que la operación fuese llevada a cabo con éxito pero cada vez que se ejecuta el script se interrumpía por un error en la instrucción fopen debido a que no encontraba el fichero en la ruta especificada.
La causa es la implementación del método __destruct que no garantiza el funcionamiento de ninguna ruta relativa que se especifique por lo tanto las rutas deben ser absolutas.
De esta manera el código queda como:

function __destruct()
{
//Serializamo el vector.
$Serializacion = serialize( $this->Vector );

//Grabamos la serialización en un fichero
$Fichero = fopen('/var/www/Ajax/Datos.txt', 'a');
fwrite($Fichero, $Serializacion);
fclose($Fichero);
}

domingo, 4 de noviembre de 2007

¿Por qué se equipara el precio $ = € ?

En muchas ocasiones ves comentarios de usuarios indignadísimos que se quejan de que un producto en los EEUU que vale 1000$ en Europa de venda por 1000€. Es un ejemplo más de la frustración que genera el concepto de justicia para algunos, para ellos es totalmente injusto que si se vende en un sitio por un precio se venda en otro por un precio más caro aún. El concepto justicia en el mercado no existe. El único que existe (o se quiere entender) es el de mercado propiamente dicho, vamos que si vendo a 1000€ y los europeos compran lo vendo a ese precio, si lo pudiera vender más caro sin perder cuota de mercado también lo haría.
Lo verdaderamente preocupante no es el precio al que nos venden la tecnología, lo que nos tendría que hacer pensar y bien es por qué tenemos que comprar casi toda la tecnología de la información al extranjero, haciendo memoria el único hardware que se hace son los microcontroladores de ATMEL y el software de SAP. El resto es todo tecnología de importación. Esto no es una situación que pueda sostener un país (U.E.) que pretende ser algo en la escena internacional. Ahora mismo tecnológicamente salvo los clásicos EEUU y Japón, en materia de tecnologías de la información nos superan China, muchos países de suroeste asiático e incluso si me apuras La India.
Por otro lado y mientras la situación de subdesarrollo tecnológico en Europa perdure no está mal que se equipare el $ y el €, es la única manera de que la economía europea no caiga en un nivel de importaciones desbocado.

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.

domingo, 30 de septiembre de 2007

Carl Sagan

Carl Sagan fue un científico implicado en hacer salir a la ciencia de su torre de marfil, para ello publicó numerosos libros y fue autor de la mejor serie documental de todos los tiempos 'Cosmos'. No sin ello dejar de lado su carrera científica y estar implicado en las misiones Voyager y Viking además de alertar sobre el cambio climático y promover el proyecto SETI.
Para mi ha sido uno de los científicos más influyentes, fundamentalmente a través de su serie. A través de ella se da a conocer una corriente de pensamiento donde el hombre queda definitivamente apartado del centro del espacio y el tiempo. Además de dotar con las armas necesarias para defenderse de las ideas sin fundamento palpable.

He aquí una de sus frases.
"No puedes convencer a un creyente de nada porque sus creencias no están basadas en la evidencia, están basadas en una enraizada necesidad de creer"
Carl Sagan.

Más información:
http://www.carlsagan.com/
http://www.planetary.org/home/
http://es.wikipedia.org/wiki/Carl_Sagan

viernes, 28 de septiembre de 2007

Contra el monopolio

Te imaginas que fueses a comprar una casa y tuvieses que comprar los muebles que están dentro (los cuales no has elegido). O bien que quieras comprar una botella de refresco y tuvieses que comprar obligatoriamente una botella de ron. Pues eso pasa con los ordenadores, hoy por hoy existen muchas máquinas y todas vienen con el windows vista, incluso en máquinas que claramente son muy poca cosas para el monstruo.
La Unión Europea debería ponerse seria con el tema y fomentar la competencia, no tiene sentido proteger el negocio de una compañía extranjera permitiendo técnicas comerciales no demasiado éticas.
No es tan difícil solo tiene que exigir que el software y el hardware se venda de manera separada. Con la exclusión de los drivers y en este caso el código deber estar a disposición del que quiera.
Otra posibilidad es que el sistema operativo tenga un botón de autoeliminación, vas a la tienda lo pulsas delante del dependiente y este te devuelve el dinero.
El pirateo no debe ser excusa, más aún no se puede poder criminalizar a toda la población y permitir tácticas comerciales que si son criminales. Además la actual situación de monopolio se basa fundamentalmente en una cuidadosa política en pro del software ilegal.

jueves, 27 de septiembre de 2007

Cosas raras en PHP

PHP es un lenguaje que si tiene algo que pueda definirlo se llama inconsistencia. Es un lenguaje puramente inconsistente y lleno de cosas un tanto extrañas.
Podemos hablar de que cada base de datos se maneja de forma diferente, las funciones para mysql son totalmente diferentes que las de oracle por ejemplo.
Cada conjunto de funciones tiene un aspecto diferente lo que lo hace algo caótico. Eso entre otras cosas.
Como ejemplo una muestra de las particularidades de PHP. Podemos parar un parámetro por referencia(E/S) aunque el autor de la función haya especificado que se tiene que pasar por valor (E). Lo cual me deja totalmente perplejo.
Para verlo podemos escribir este sencillo programa:

/**
* La funcion testA pone iguala la variable $A a 5 pero no devuelve nada
*
* @param $A Variable de entrada
*/
function testA($A)
{
$A = 5;
}

//Declaramos el valor de $A
$A = 0;

//Somos decentes y pasamos la variable por valor
testA($A);
echo $A."\n";

//Somos gamberros y la pasamos por referencia
testA(&$A);
echo $A."\n";


Y los valores de salida son:
0
5

Como podemos ver a pesar de que en la función se especifica que el parámetro es por valor hemos forzado que sea pasado por referencia. Un poco fuerte la cosa.

Software con efecto efermedad latente.

Un cliente llama y quiere una nueva caracterísitica para su software para antes de ayer. Al cliente se la ha ocurrido que estaría bien lanzar un producto determinado de forma puntual para un determinado día cercano en el tiempo.
Es una situación habitual en entornos webs, este es un medio dinámico, situaciones como estas se dan con mucha frecuencia y la forma normal de abordarlas es programando a toda prisa con técnicas de 'cut & paste'. Vamos de cortar y pegar , que consiste en tomar trozos de código que se aproximan a lo que queremos juntarlas, modificarlas hasta que parece que todo funciona y cruzar los dedos para que todo funcione ya que hay tanta prisa y cosas que hacer que la fase de comprobación del software se queda en los libros de teoría.
El efecto inmediato con un poco de suerte (que no se de la serie de eventos que hagan que el software explote) es que tenemos un cliente satisfecho con su software errático corriendo en el servidor.
Sin embargo como las peores enfermedades sus efectos quedan latentes hasta que algo hace que estalle la enfermedad y nos de el telele.
Las posibles medidas para superar este problema son pocas y dolorosas. Una de ellas es recomendar al cliente que no se haga, pero esta nunca funciona. Otra es sacar el producto a toda prisa e intentar arreglarlo después, pero esto es difícil de hacer y de cobrar.
Lo único que cabe esperar es que al final la experiencia termine por hacer que tanto el desarrollador como para el cliente puedan llegar a un punto donde la improvisación quede a un lado para hacer las cosas con un poco de cabeza.

domingo, 23 de septiembre de 2007

Parábola económica

Este texto perteneciente a un pasaje de biblia me ha sorprendido por su plena vigencia.
Lejos de su contenido teológico su lectura produce una profunda reflexión sobre el valor del trabajo, el poder de la propiedad y conceptos como la justicia son expuestos en este texto. Yo la verdad todavía no se que pensar.

"En aquel tiempo, dijo Jesús a sus discípulos esta parábola: El Reino de los Cielos se parece a un propietario que al amanecer salió a contratar jornaleros para su viña. Después de ajustarse con ellos en un denario por jornada, los mandó a la viña. Salió otra vez a media mañana, vio a otros que estaban en la plaza sin trabajo y les dijo: Id también vosotros a mi viña y os pagaré lo debido. Ellos fueron. Salió al caer la tarde y encontró a otros, parados, y les dijo: ¿Cómo es que estáis aquí el día entero sin trabajar? Le respondieron: Nadie nos ha contratado. Él les dijo: Id también vosotros a mi viña. Cuando oscureció, el dueño dijo al capataz: Llama a los jornaleros y págales el jornal, empezando por los últimos y acabando por los primeros. Vinieron los del atardecer y recibieron un denario cada uno. Cuando llegaron los primeros, pensaban que recibirían más, pero ellos también recibieron un denario cada uno. Entonces se pusieron a protestar contra el amo: Estos últimos han trabajado sólo una hora y los has tratado igual que a nosotros, que hemos aguantado el peso del día y el bochorno. Él replicó a uno de ellos: Amigo, no te hago ninguna injusticia. ¿No nos ajustamos en un denario? Toma lo tuyo y vete. Quiero darle a este último igual que a ti. ¿Es que no tengo libertad para hacer lo que quiera en mis asuntos? ¿O vas a tener tú envidia porque yo soy bueno? Así, los últimos serán los primeros y los primeros los últimos."

Mateo 20, 1-16

Mentira.

"El castigo del embustero es no ser creído aún cuando diga la verdad."

Aristóteles.

RAD6000 el computador espacial de la NASA.

El RAD6000 es la placa base standard que ha incorporado la NASA en sus últimas misiones espaciales. Esta placa base lleva incorporado un procesador basado en el PowerPC (con características antiradiación) y está desarrollado por la empresa BAE Systems anteriormente perteneciente a IBM.
En una configuración básica de estos computadores se tiene un procesador de 33MHz con un rendimiento de 35MIPS, además tiene una memoria de 128MB con detección y corrección de errores. Cada ingenio espacial lleva uno solo de estos ordenadores de 300.000$ lo que nos hace tener una idea de la confianza que tienen los ingenieros en la fiabilidad de estas placas.

Actualmente todas las naves espaciales de la NASA operativas en Marte (además de otros 77 satélites) incorporan esta tecnología, cosa que hace que uno de los creadores de la arquitectura PowerPC, IBM proclame orgullosa que el 100% del parque tecnológico de marte esté basada en su arquitectura, suponemos que hablamos de la que pulula sobre su superfice.

Si nos centramos en el caso de los rovers marcianos los sistemas tienen un procesador de 20MHz con 128MB de dram , una eeprom de 3MB y una memorias flash auxiliar de 256MB. Llevan incorporado el sistema operativo VxWorks del que ya se habló en un artículo anterior.
La memoria está un poco limitada y esta es una de las quejas fundamentales de muchos de los científicos participantes en el proyecto.

Más información:
http://www.space.com/businesstechnology/technology/mer_computer_040128.html
http://www.marssociety.org.es/paginas/noticias/mer_05_02_2004.htm
http://www.sondasespaciales.com/index.php?option=com_content&task=view&id=711&Itemid=42
http://www.baesystems.com/BAEProd/groups/public/documents/bae_publication/bae_pdf_eis_sfrwre.pdf
http://en.wikipedia.org/wiki/RAD6000
http://en.wikipedia.org/wiki/Mars_Exploration_Rover#Power_and_electronic_systems

jueves, 20 de septiembre de 2007

Utilizar fuente de alimentación ATX de forma independiente.

Para poner en marcha una fuente de alimentación ATX sin necesidad de tener un ordenador para encenderlo solo necesitamos unas pocas operaciones.
Lo primero enchufarlo a la red.
Por último puentear el cable verde con un cable negro (masa) ambos cables se encuentran en el conector que se enchufa a la placa base.

miércoles, 19 de septiembre de 2007

El nuevo procesador de la ESA. El LEON2-FT.

La ESA y la empresa ATMEL están desarrollando un nuevo procesador para los sistemas de la agencia espacial. Es el llamado LEON2-FT ( AT697E para ATMEL ).
Este procesador ( de 32 bits) es el sucesor del LEON también llamado AT697 por ATMEL. Actualmente ATMEL comercializa esta versión en el mercado.
La arquitectura de este procesador es la SPARC V8 y alcanza una velocidad de reloj máxima de 100Mhz según las especificaciones de ATMEL y un rendimiento de 85MIPS. El resultado final es un procesador con una de las mejores relaciones de rendimiento por watio consumido que es una de las características más buscadas en entornos con baja disponibilidad energética.
Como no, el procesador es compatible con todo el software desarrollado por la ESA.
Las primeras muestras fueron sacadas en el año 2005 y es a finales del 2008 cuando entre en operaciones reales.
ATMEL es el principal fabricante de microcontroladores de Europa , de ellos es la familia AVR muy popular en entorno de desarrollo de hardware.

Otras características:
  • Interfaz paralela I/O de 32 bits
  • 33MHz Interfaz PCI 2.2
  • Tolerancia a fallos
  • Rango de temperaturas -55°C to 125°C
  • Frecuencia de reloj de 0MHz a 100MHz
  • Consumo 1W a 100MHz
  • Rendimiento:
    • 86MIPS (Dhrystone 2.1)
    • 23MFLOPS (Whetstone)
  • Tolerante a radiación
  • Peso 9g
Pero si alguien quiere comenzar a juguetear con el LEON3 puede hacerlo, solo tiene que ir a la página http://www.gaisler.com/cms/index.php?option=com_frontpage&Itemid=1 y descargar tanto el procesador como simuladores y código fuente. Si, puedes hacerte tu propio procesador espacial dado que la serie LEON está desarrollada con VHDL.

Más información:
http://www.esa.int/techresources/ESTEC-Article-art_print_friendly_1176186230669.html
http://www.atmel.com/dyn/products/product_card.asp?family_id=641&family_name=Space+Rad+Hard+ICs&part_id=3178

domingo, 16 de septiembre de 2007

Productividad en el desarrollo del software.

El primer paso para mejorar la productividad en el desarrollo del software es conocer perfectamente el objetivo de este.

sábado, 15 de septiembre de 2007

Nuevas habilidades del webmaster

Las viejas habilidades de los webmasters están en tela de juicio, hace unos años era fácil mantener sites de calidad siguiendo unos pocos protocolos, configuraciones y lenguajes. Hoy en día el número de tecnologías y normativas ha aumentado vertiginosamente.
Actualmente tenemos normativas sobre accesibilidad ( A, AA y AAA ) , maquetaciones más exigentes basadas en capas y estilos, AJAX, etc.
Si a esto sumamos el incremento de complejidad de los servidores y los lenguajes de programación el resultado final es que una persona ya no es capaz de asumir este gran nivel de conocimientos.
Por otra parte el nivel de exigencia de los sites a aumentado de manera considerable ya que el nivel de conocimiento de los clientes sobre internet ha aumentado y piden más calidad por menor precio.
La figura del webmaster necesita un reciclaje. Y este debe estar orientado hacia la gestión de proyectos web.
Este gestor es necesario para coordinar todos los equipos necesarios para la realización de un buen producto, equipos de diseño, imagen, maquetación, desarrollo de software, operadores, marketing, alojamiento, redactores, especialistas en usabilidad, etc.
O dicho de otra manera, cada site necesita un ingeniero para su concepción , desarrollo y explotación. Y es que la web ya no es lo que era.

viernes, 14 de septiembre de 2007

PHP desde línea de comandos

Una de las características de PHP es que puede ser ejecutado desde la línea de comandos, para ello debemos ejecutar la siguiente instrucción:

php fichero.php


La salida será por la consola en modo texto por lo cual cualquier recurso que implique la utilización de Apache(u otro) no estará disponible.
Una de las ventajas fundamentales del PHP desde la línea de comandos es que nos libramos de las limitaciones de Apache en cuanto a tiempo de ejecución, nuestro script puede estar trabajando el tiempo que necesite.

Hay que tener unos cuantos puntos a tener en cuenta cuando creemos estos ficheros:
  • Ojo con las rutas, ya no estamos soportados por Apache.
  • Los saltos de línea de hacen mediante la cadena "\n".
  • No tenemos limitaciones en cuanto al tiempo de ejecución, cuidado con los bucles infinitos.

Por lo tanto, si te manejas bien con PHP este es un buen recurso para hacer esos pequeños scripts de sistema que necesitas e incluso para programar tareas con el cron.

Ejecutar un script al cargar una imagen

Llevaba tiempo queriéndolo hacer y como en el trabajo no surgía la oportunidad lo he hecho en un ratillo en casa. Este es el código para hacer que una página web ejecute un script cuando una imagen es cargada.


<?php
//Obtenemos las direccion IP del cliente
$IP = $_SERVER['REMOTE_ADDR'];

//Obtenemos el valor del parámetro
$ValorA = $_GET['a'];

//Lo grabamos en un fichero
$Fichero = fopen ( "Salida.txt" , "a" );
fwrite ( $Fichero, $IP." ".$ValorA."\n" );
fclose($Fichero);

//Volcamos la imagen
header('Content-Type: image/jpeg');
readfile('Bosque.jpg');
?>


Creo que con los comentarios del código está lo suficientemente descrito.

Para llamarlo solo tenemos que incluir el siguiente código HTML:
<img src="contador.php?a=10">

Las Islas Salvajes

Hay unas pequeñas islas sobre Canarias llamadas 'Las islas salvajes' son de muy pequeña extensión menos de 3 km2 y están a 165 kilómetros.
Las islas son portuguesas aunque hay cierta pretensiones españolas por su soberanía, de hecho se supone que se consideran parte de Canarias.
Resulta curioso que unas islas consideradas Canarias por el gobierno español no se conozcan apenas en nuestro territorio. Lo que demuestra la incoherencia de la idea.
Pero lo más importante de todo es que es un territorio virgen con gran valor ecológico y ocupado por apenas unos pocos guardas forestales portugueses.



Ver mapa más grande


Más información

jueves, 13 de septiembre de 2007

Precisión

"La característica de una mente instruida es descansar satisfecha con el grado de precisión que la naturaleza del asunto admite, y no buscar la exactitud cuando sólo es posible una aproximación de la verdad"
Artistóteles

Error vs warning

Cada vez que programamos algo los errores y los warning saltan por doquier. Nos apresuramos a corregir los errores y nos quedamos aliviados cuando estos están solventados, pero parece que no nos pasa lo mismo con los warning.
Y esto es paradójico porque los warning no son advertencias , son amenazas. Son amenazas porque son errores latentes a la espera que se sumen el cúmulo de circunstancias suficiente para que una desgracia de produzca.
Hay que ponerse serios con el asunto, un código no estará correctamente terminado hasta que se solucionen todos los errores y los warning. Incluso si se trata de PHP.
Arena de otro costal son los errores de ejecución, esos amargos momentos donde la salida del programa no es lo que queremos pero para eso la única solución es coger aire y volver a revisarlo todo.

martes, 11 de septiembre de 2007

Sentencia.

"Si pagas cacahuetes, obtienes monos." Hannibal en El equipo A.

Información y conocimiento.

Información y conocimiento son dos palabras que suelen confundirse, parecen que son lo mismo pero son tan parecidas entre si como una silla y un árbol.
Podríamos decir que la información es la materia prima del conocimiento, a partir de la información recopilada, estructurada y procesada elaboramos el conocimiento. El conocimiento es por tanto el producto de un trabajo sobre la información.
A su vez el conocimiento no puede ser transferido, no podemos traspasar nuestro conocimiento a otra persona o máquina. Lo único que podemos hacer es generar información basada en nuestro conocimiento (páginas web, libros, informes ) o bien crear una serie de normas o instrucciones para llevar a cabo un fin determinado ( programas, normas, instrucciones, negocio ) .
El conocimiento por lo tanto tiene las siguientes características:
  • Es individual y privado.
  • Tiene estructura.
  • Crece lentamente y con esfuerzo.
  • Es una herramienta de producción.

En contraposición la información es:
  • Es externo
  • No tiene forma
  • Se puede acumular con rapidez
  • Puede ser automatizado
  • Por si solo no produce nada

En base a esto podemos extraer que la web tiene una gran cantidad de información y que también aporta herramientas para ayudar a convertir esa información en conocimiento. Es un punto que debemos tener en cuenta para el desarrollo de nuestros sites, además de proporcionar información debemos desarrollar las herramientas que faciliten su conversión en conocimiento.

lunes, 10 de septiembre de 2007

Los rovers marcianos actualizan su software

La NASA ha incorporado a los Mars Exploration Rovers Spirit y Opportunity de nuevo software. Estos programas son básicamente nuevas habilidades de reconocimiento de formas, tanto de fenómenos meteorológicos como de superficie y funciones avanzadas de recorrido de caminos.
Por ejemplo, ahora es capaz de reconocer rocas incluso cuando la sonda está en movimiento, filtrará las fotografías de torbellinos , nubes etc. reconociendo las que son más interesantes para transmitirlas a la tierra además se ha mejorado su IA para trazar trayectorias y encontrar de este modo el mejor camino para llegar a su objetivo.
Quizás ahora que las sondas están cerca de su fin los ingenieros de la NASA han decidido incorporar este nuevo software que les da la oportunidad de sacar más jugo a estas exitosas máquinas y probar este software en situaciones reales. Creo que las actualizaciones tienen muchos riesgos , sobre todo la de recorridos y más ahora que una de las sondas (la Opportunity) va a introducirse dentro de un cráter en lo que parece su misión final.


Más información:
http://www.astroenlazador.com/article.php3?id_article=545

miércoles, 5 de septiembre de 2007

La televisión visceral.

La televisión pública lleva ya un buen tiempo siendo demasiado visceral. Sobre todo las dos grandes cadenas generalistas antena 3 y telecinco. Unos pocos ejemplos:

  • Programas del corazón a punta pala.
  • Un programa totalmente ofensivo como 'el tomate' emitido en horario infantil.
  • Series repetidas hasta la saciedad. ¿Cuántas veces se han repetido los capítulos de los Simpsons ?
  • Programas presuntamente informativos creados para revolver basura, algo así como prensa rosa arqueológica o revisionista.
  • Los espacios informativos diarios no se quedan atrás, información partidista y sensacionalista , ataques constantes y reiterados a cualquier cosas que se mueva por internet. En caso de desastres, vídeo de persona desgraciada llorando o gritando de dolor durante interminables segundos sin sombra de información en estos caso y por último si hay imágenes impactantes por supuesto se repiten hasta que se desgaste la cinta.

Mención aparte es la publicidad, que o bien te hacen chantaje emocional o bien parece que te estén vendiendo drogas. Las propagandas de yogures son un buen ejemplo , si tomas tal o cual producto lácteo te pondrá a tono para rendir todo el día a tope y para colmo ayudará a tus defensas. Eso sin contar con la publicidad que no dice absolutamente nada, su único objetivo es marcar a fuego en tu mente cierta marca. Aunque sin duda la peor es la que se mete dentro de la misma serie, en algunas no hay una mesa suficientemente grande para meter todas las cosas disponibles para desayunar, aunque el personaje apenas toma un café antes de salir pitando al trabajo.

Cómo ampliar el tiempo de sesión en PHP

Cuando estamos elaborando un administrador nos podemos encontrar con el problema de que los tiempos de sesión configurados en el sistema son tan pequeños que en un momento dado no podemos continuar trabajando porque el tiempo de sesión han terminado. Por ejemplo, estamos editando una ficha con demasiado contenido o alguien interrumpe nuestro trabajo con una llamada telefónica y cuando damos al submit el tiempo de sesión ha expirado y nos quedamos con un montón de trabajo sin grabar.
Para solucionar este problema debemos modificar los tiempos de sesión con el comando session_set_cookie_params .

Hay que ponerlo en cada script, ya que sus efectos se limita a él.

Un ejemplo:
session_set_cookie_params (60*60*24);

En este ejemplo hemos aplicado el tiempo se sesión a 24 horas , un tiempo más que extenso para poder trabajar con tranquilidad.

En el caso de tener que modificar el tiempo de sesión de una sesión ya abierta deberemos cerrar esta y volver a abrirla para aplicar el nuevo tiempo de sesión.

lunes, 3 de septiembre de 2007

Hacer un site no es hacer I+D+i

Las empresas han visto que lo que se impone hoy en día es el I+D+i , así que deciden apuntarse al carro y una de las posibilidades es desarrollar un site en internet.

De mi experiencia saco las siguientes consecuencias:

Sobre la investigación las empresas se quedan en ver lo que hace la competencia, muy pocas de ellas no sacan otra cosas en claro. Muy pocas hacen planes efectivos de investigación sobre su site, por ejemplo, apenas investigan el comportamiento de sus clientes.

El desarrollo se hace, pero la mayoría de las veces se encargan a empresas exteriores a la organización. Con lo que el how-to nunca se adquiere, peor aún, muchas veces el desarrollo se importa de regiones o países que no son donde radica la empresa. Importar y/o comprar no es desarrollar.

Innovación, lamentablemente y aunque parezca increíble lo menos que se hace en un desarrollo web es innovar. Muchas veces las cosas se hacen porque se ve que la competencia lo ha implementado en su site, si no lo ven en ningún sitio , simplemente no se hace. Además hay siempre cierto temor a que la competencia copia alguna de las 'innovaciones', este temor de por si es señal de un proyecto orientado al fracaso. Ya que el temor a que se copien implica que las ganas de innovar son mínimas.

No se puede ser líder copiando a la competencia , no se puede ser líder si no adquirimos how-to en el desarrollo y no se puede ser líder si no estamos implicados con la innovación.

domingo, 2 de septiembre de 2007

Virtualizacion de un servidor de servlets II

Como siguiente paso a realizar nos queda comprobar que los elementos de compilación y ejecución de servlets funciona. Para ello vamos a desarrollar un programa de ejemplo , el típico 'Hola mundo' de toda la vida.

El código de este programa es el siguiente:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HolaMundo extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("");
out.println("");
out.println("Prueba");
out.println("");
out.println(" Hola mundo! ");
out.println("");
}
}


Como se puede ver es un programa muy sencillo.

Lo primero será configurar correctamente el el fichero /etc/profile entre otras cosas para poder trabajar más comodamente, para ello añadimos al PATH la ruta de la máquina java que en nuestro caso es /opt/SDK/jdk/bin .

Compilamos el programa utilizando la clase classpath adecuada, en este caso es el fichero /opt/SDK/lib/j2ee.jar
javac HolaMundo.java -classpath /opt/SDK/lib/j2ee.jar

Debemos crear la estructura de directorio adecuada para poder instalar el programa,la estructura es la siguiente (suponiendo que estamos en el directorio de trabajo ):
./WEB-INF
./WEB-INF/src/ En este directorio se pone el código fuente del programa, en este caso HolaMundo.java
./WEB-INF/lib/ Aquí ponemos los paquetes necesarios extras, en nuestro caso se queda vacio
./WEB-INF/classes/ El fichero HolaMundo.class va a quedarse aquí.
./WEB-INF/web.xml Este es el fichero de configuración
./META-INF

El fichero web.xml va a contener la siguiente información:

<web-app>
<servlet>
<servlet-name>prueba</servlet-name>
<servlet-class>HolaMundo</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>prueba</servlet-name>
<url-pattern>hola</url-pattern>
</servlet-mapping>
</web-app>



Después creamos un paquete war con todo esto, para hacer eso ejecutamos la siguiente instrucción desde el directorio de trabajo.
jar cvf fichero.war .

Una vez realizado esto abrimos el navegador y ponemos la siguiente dirección:
http://localhost:4848
Entramos con nuestro usuario y password , elegimos la opción de aplicaciones web y hacermos un deploy de nuestro fichero war.

Para ejecutar nuestra aplicación debemos escribir en nuestro navegador favorito:
http://localhost:8080/HolaMundo/hola

sábado, 1 de septiembre de 2007

Las catedrales ya no son lo que eran.

Repasando las fotos que tenía en mi ordenador he visto esta, se trata de una de las roseta de la catedral de Salamanca. En ella podemos ver detalles policromados en sus relieves, son muestras conservadas de la pintura original, se supone que el resto de la catedral también estaba pintado de la misma manera.
Ver este tipo de cosas te hace pensar en como podían ser estos edificios justo cuando fueron terminados. Me imagino unos interiores pintados con los mismo colores que la roseta, dorados, azules, rojos, colores vivos , colores que transmiten vida.
Tendríamos que hacer un ejercicio de imaginación para poder sentir lo que sentía la mayoría de la población, gente que vivía en condiciones más que indeseables, en casas pobres e insalubres. Llegaría caminando desde sus casas y verían edificios de varias plantas de altura y de unas dimensiones increíbles para la época. Se metería en un edificio donde caben cientos de personas, no me extraña que muchos tendrían experiencias místicas, impresionados por el ambiente. Esto también ayudaría a la jerarquía de la iglesia a controlar a todo el pueblo. No hace falta sino pensar en las edificaciones de las grandes empresas, uno de sus propósitos es 'acojonar' a cualquiera que entra debido a las dimensiones y disposición del edificio.
Hoy estas mismas catedrales se encuentran con sus paredes desnudas, tristes y plomizas. Se saben como eran pero no hay el coraje de restaurarlas con los colores originales, en parte por que no se saben del todo como era su decoración original y en parte por la oposición de los pocos feligreses que las usan hoy en día.
Espero que todas estas obras se puedan mantener durante mucho más tiempo para disfrute de generaciones posteriores y que se realicen todas las acciones necesarias para el correcto aprovechamiento de este patrimonio que es de todos , tanto creyentes como no creyentes.

miércoles, 29 de agosto de 2007

Relación de agregación vs Composición II

Vamos a ver en esta ocasión las relaciones de agregación y composición tal y como se codifican. Lo vamos a hacer en php aunque la calidad de este lenguaje es inversamente proporcional a su popularidad.

Veamos el código:

class A
{
function Ver()
{
echo "Hola"."\n";
}
}

class B
{
private $InstanciaA;
function Ver()
{
$InstanciaA = new A;
$InstanciaA->Ver();
}
}

class C
{
function Ver($InstanciaA)
{
$InstanciaA->Ver();
}
}

$InstanciaA = new A();
$InstanciaB = new B();
$InstanciaC = new C();

$InstanciaB->Ver();
$InstanciaC->Ver($InstanciaA);
$InstanciaA->Ver();


Tenemos tres clases A, B y C , como ven no me he matado eligiendo los nombres. Las relaciones que se dan entre ellos son las siguientes:
Entre A y B hay una relación de composición. El tiempo de vida de la instancia $InstanciaA está limitado por el tiempo de vida de la instancia que lo contiene.
Entre A y C hay una relación de agregación. El tiempo de vida de la instancia $InstanciaA no está limitado por el tiempo de vida dela instancia que hace uso de él.

Si ejecutásemos el script mediante "php test.php" el resultado sería el siguiente:
Hola
Hola
Hola

Tan cordial salida es debida a que la $InstanciaB hace uso de la $InstanciaA para ejecutar la salida por pantalla, una vez termina el tiempo de vida de $InstanciaB ambas desaparecen.
El segudo 'Hola' viene dado por la $InstanciaC que usa la $InstanciaA para la producir la salida , el último saludo proviene de $InstanciaA que ha sobrevivido a $InstanciaC.

martes, 28 de agosto de 2007

Romanescu la verdura fractal

La primera vez que vi esta increíble verdura fue en Getxo en una frutería de barrio y me quedé totalmente fascinado.
El romanescu es un cruce entre brécol y coliflor, tiene una clara forma fractal muy fácil de identificar. Podemos ver como se compone de una serie de 'conos' y estos a su vez de otros más pequeños inscritos en él.
¿Pero qué es la geometría fractal? Un objeto de forma fratal tiene una estructura que se repite en diferentes escalas. Esta geometría podría animarnos incluso a interpretar este objeto mediante un modelo recursivo. Esto es, un modelo cuya función es llamada una y otra vez por si misma hasta un límite predefinido.
Otra curiosa propiedad es que si calculásemos su volumen obtendríamos un valor finito sin embargo su superficie tiende a infinito.

Para saber más:
http://es.wikipedia.org/wiki/Fractal
http://es.wikipedia.org/wiki/Recursividad

domingo, 26 de agosto de 2007

Vida en el espacio

Este vídeo es espectacular, se trata de escenas de la vida cotidiana de dos astronautas en la ISS. Muy entretenido y recomendable.

Virtualización de un servidor servlet

Recientemente he instalado tanto el entorno de desarrollo de java como el servidor de aplicaciones en mi virtualización con debian, estos son los pasos:

  • Copiar el fichero al directorio /opt
  • Dar permisos de ejecucion chmod 700
  • Ejecutar el fichero ./
  • Me falló un paquete así que lo instalo apt-get install libstdc++5
  • Vuelvo a ejecutar fichero ./
A partir de aquí se reflejan las contestaciones que se dan a las diferentes cuestiones que se plantean en el proceso de instalación:
  • Decimos 'yes' a las condiciones de instalación.
  • Dejamos el directorio de instalacion por defecto '/opt/SDK'
  • Ponemos la cuenta de administrador dejamos por ejemplo usuario=admin y password = adminadmin con usuario y contraseña
  • Ponemos el fichero .asadminpass con fichero de password
  • Puerto de administracion el 4848
  • Puerto HTTP el 8080
  • Puerto HTTPS el 8181
  • Es una instalacion nueva y no queremos actualizar ninguna version previa
  • Ponemos que queremos configurar el Project Open ESB Startet Kit
  • Ponemos que queremos configurar Sun Java System Access Manager 7.1
  • Ponemos que queremos configurar Portlet Container 1.0
  • Nos pregunta si queremos comenzar la instalacion y le indicamos 'Install Now' , comienza la instalación
  • Finaliza la instalación y se nos comunica que:
  • file:///opt/SDK/docs/about.html
  • Que se puede arrancar la aplicacion en /opt/SDK/bin/asadmin start-domain domain1
  • Y que la consola de administración está es http://localhost:4848
  • Apretamos 'enter' y terminamos con la instalción del programa.

sábado, 25 de agosto de 2007

Tamaño relativo de los planetas

Este vídeo es impresionante, es una comparación de diversos astros según su tamaño. Se te pone la piel de gallina ver que tu enorme planeta es apena una piedrita en medio del espacio.

jueves, 23 de agosto de 2007

Los HOYGAN

Se llama HOYGAN a las personas que participan activamente en internet pero debido a múltiples razones tienen una gran cantidad de faltas de ortografía. También tienen algunos problemas con el estilo a la hora de escribir, por ejemplo lo redactan todo en mayúsculas o bien parece que están mandando un SMS.
Pero bueno, al menos participan. Y no son simplemente unos meros espectadores.
Al otro lado tenemos los elitistas, gente que es intratable y se cree demasiado bueno para tener en consideración a personas con un 'nivel' inferior al suyo , lo malo es que estos se encuentran en cualquier sitio.

Más información:
http://www.hoygan.info/

Estos son dos que se han encontrado en la vida real:
http://historiasydemasparanoias.blogspot.com/2007/08/la-nota.html
http://historiasydemasparanoias.blogspot.com/2007/08/un-anuncio.html

Sólo manejamos cuatro objetos al mismo tiempo

Unas investigaciones han demostrado que el hombre medio es sólo capaz de manejar cuatro objetos al mismo tiempo.
Una razón más para justificar la realización de la representación gráfica de sistemas complejos. A partir de este estudio podemos decir que un sistema complejo es todo aquel que se compone de más de cuatro objetos.
Hay gente que tiene mayor capacidad de manejo de conjuntos de objetos pero no se pueden planificar trabajos basados en esta habilidad.

Más en:
http://www.amazings.com/ciencia/noticias/230807d.html

Ley de protección de datos y proveedores de servicios

Hay muchas organizaciones que tiene sites que está alojadas físicamente en servidores situados en los EEUU. Quizás lo hagan ignorándolo o no , pero está incumpliendo la ley de protección de datos.
No se pueden alojar datos de caracter personal en ordenadores situados fuera de las frontera de la Unión Europea salvo un una serie de países que deben cumplir una serie de condiciones de seguridad. De esta lista está excluido la gran mayoría de los servidores de los EEUU, salvo en un puñado de máquinas el resto no asegura cumplir con las leyes europeas.
Así que ya sabe, si tiene su web ( con datos personales ) fuera del territorio de la Unión Europea tiene altas posibilidades de estar incumpliendo la ley, peor aún que las facturas le lleguen de una empresa europea no implica que esta tenga servidores en territorio europeo y por lo tanto que cumpla con la ley.
A todo esto. ¿Estarán las empresas de telefonía y marketing cumpliendo con la ley? ¿O con sus actividades de deslocalización además de jugar con las leyes laborales de los países de sus clientes también estarán jugando con sus leyes sobre protección de datos?

domingo, 19 de agosto de 2007

Robot tipo beam

En robótica hay unos tipos de robots que me llaman mucho la atención, son los beam . Son robots que explotan la electrónica analógica al máximo , en estos no encontramos microcontroladores sino que toda la lógica está cableada mediante circuitos analógicos.
Estos tienen la ventaja de que son muy sencillos en su diseño y tienen una gran robustez. Hay muchos ejemplos de estos tipos de robots en internet ya que la complejidad y coste de los elementos a usar está a la alcance de todos.

Vemos un vídeo de un tipo de un tipo de robot beam especial , es el beam solar. Este tipo solo tiene la energía solar como fuente de alimentación.





Para ver más:
http://en.wikipedia.org/wiki/BEAM_robotics

Obtener el idioma por defecto de un cliente web en PHP

Para obtener los idiomas por defecto que quiere usar un usuario web debemos obtener la lista de idiomas deseados por este.
En php tenemos una variable de entorno que podemos utilizar, es:
HTTP_ACCEPT_LANGUAGE
para obtener la lista de idiomas debemos ejecutar la sentencia
getenv("HTTP_ACCEPT_LANGUAGE");
Por ejemplo, para mi configuración se devuelve
es-es,es;q=0.8,en-us;q=0.6,en;q=0.4,eu;q=0.2
Tenemos un vector con una dupla de datos , cada dupla está separado por una coma ',' y los elementos de cada dupla están separados por punto y coma ';'.
El primer elemento de la dupla es el nombre del idioma y el segundo indica el interés del usuario por este, el valor que indica q (q=0.6) varía entre 1 y 0 , siendo 1 el elemento de más peso. Hay una dupla que no tiene segundo elemento y es el primero , en este caso asumimos que es el elemento más importante (q=1).

A la hora de elegir el idioma con el que mostrar la aplicación deberíamos tener varias cosas en consideración.
  • La primera la lista de idiomas disponibles en la aplicación.
  • La segunda la lista de idiomas que tiene el usuario elegidos en su navegador.
  • Por último debemos elegir el idiomas mejor posicionado en la lista de idiomas del navegador que tengamos en nuestro sistema.

Por regla general y después de realizar muchas pruebas se puede generalizar que el orden en el que obtenemos el vector de idiomas es el orden deseado por el usuario así que nos podemos ahorrar el trabajo de ordenar la lista de idiomas por el segundo elemento de la dupla.

sábado, 18 de agosto de 2007

Buenos programadores

Hay todo un debate sobre lo que debe ser un buen programador. Para mi un buen programador es comparable con un buen albañil. En el fondo no son dos profesiones tan diferentes. Para unos la materia prima es el ladrillo y para el otro el código. Y ambos participan activamente en la consecución de un proyecto de construcción.

Estas son algunas características que deben tener los buenos programadores:
  • Debe compartir su conocimiento y hacerlo accesible. Muchas veces nos encontramos con 'profesionales' que ocultan sus conocimientos y hacen que su producto sea difícil de seguir. Un producto de este tipo no es bueno y produce gastos añadidos en el mantenimiento con lo cual reduce la rentabilidad del producto final.
  • Hace el producto que se le requiere. Un buen programador debe tener iniciativa , pero esto no puede llevarlo a hacer lo que mejor le parece y esto quizás no es lo que se le pide.
  • Apoya a sus compañeros y colabora en el diseño del producto. Un buen profesional debe apoyar a sus compañeros en las tareas que les resulte complicadas y debe colaborar con los analistas con aportaciones y opiniones sobre el producto que estos producen.
Estos son algunos de los puntos que creo que debe suplir un buen programador, es labor del responsable del proyecto asignar las tareas apropiadas a cada uno de los programadores de manera que el proyecto pueda llevarse a buen fin con la máxima rentabilidad posible.

Plug-in para corrección ortográfica en mozilla.

Este viernes me llamó un cliente para consultarme que podríamos hacer en su nueva aplicación web por que sus operadores estaban cometiendo demasiadas faltas de ortografía a la hora de introducir los textos en el administrador.
No es difícil de imaginar mi cara de sorpresa cuando el cliente sugiere que pongamos un corrector de faltas de ortografía en los formularios.
Al final, la única solución que se me ocurrió sobre la marcha es sugerir que los operadores trabajasen con mozilla y su corrector ortográfico, porque no me quiero ni imaginar la cantidad de datos que tendría que transferir para poder implementar el corrector en un formulario.
El corrector lo podemos encontrar en https://addons.mozilla.org/es-ES/firefox/browse/type:3 y funciona bastante bien.
Y es que hay veces que los clientes piden cosas que pasan con creces lo presupuestado y hay soluciones más baratas en el mercado. En ocasiones tienes suerte y detectas este problemas, otras veces te puede llevar a la ruina.

jueves, 16 de agosto de 2007

Averiguar la procedencia de una IP

Cada vez más las empresas necesitan localizar sus mercados, en la era de la globalización cada vez en más importante saber de dónde vienen tus clientes.
Si necesitamos localizar la procedencia de una entrada IP necesitamos tener una base de datos o un servicio que relacione direcciones IP con localizaciones físicas.
Un ejemplo lo encontramos en este fichero que podemos encontrar en la dirección http://ip-to-country.webhosting.info/node/view/6 en el se relacionan las direcciones IP con los países de origen. Si necesitamos una información más concreta debemos hacer uso de empresas que nos provean de este servicio. Algunas de ellas hacen uso del servicio whois y otras de sus propias bases de datos.
Este es un pequeño listado de empresas:
http://www.maxmind.com/app/locate_ip
http://www.ip2location.com/developers.aspx
http://ripe.net/perl/whois?form_type=simple&full_query_string=&searchtext=
http://nosetup.org/php_on_line/ip_info
http://www.flavionet.com/ippoint.htm
http://www.geobytes.com/IpLocator.htm

Algunas de estas empresas hacen uso del whois y otras tienen sus propias bases de datos. Eso si estos métodos no son fiables al 100% de los casos. Ya que para empezar no sabemos si la dirección IP que llega a nuestro servidor es la de nuestro cliente.

Esta tecnología todavía está en pañales y tiene una funcionalidad bastante limitada. Ya que la asignación de IP no tiene ningún limite geográfico dentro de zonas muy extensas. Por ejemplo, conexiones realizadas desde Canarias son identificadas como provenientes de Madrid o Barcelona.

miércoles, 15 de agosto de 2007

El universo mecánico y Cosmos

Esta es una de las series que más me impactó en mi vida, aquí les dejo el primer capítulo. Una serie basada en la física y las matemáticas.



Cosmos en la serie de divulgación científica por definición. Esta serie va más allá de una explicación de la física, es casi un recorrido de la historia filosófica centrada en el hombre y como la ciencia ha ido poniendo las cosas en su sitio. En este video se describe un calendario creado por Carl Sagan y que da una perspectiva sobre la existencia del hombre que impacta al que lo ve.



Esta serie es la culpable de gran parte de la persona que soy hoy en día.

Los vividores del negocio de internet

Desde que comencé mi vida laboral me he encontrado con un personaje de forma recurrente, el vividor.
El primero con la que me tropecé fue terracanarias un portal que quería ponerse a rebufo de terra en sus mejores tiempos. ¿Y qué mejor que tener casi su mismo nombre?.
Por supuesto, inversión la mínima, mi menguante sueldo y la colaboración de dos amateurs que sólo sabian hacer páginas con el word. El contenido vampirizado de internet, coger fotos y textos con derechos por que al fin y al cabo para esta gente todo lo que está en internet es gratis. El final del proyecto acabó con el florecimiento de la telefonía móvil, este era un producto ya realizado, con la promoción trabajada y con montones de comerciales dispuestos a trabajar sin sueldo por sumar comisiones.
El segundo, tenía un empresa ya con años de vigencia, parecía muy seria. Conocí al dueño en un curso de emarketing. La verdad es que el curso fue muy bien, aprendí muchas cosas y al terminar el contrato temporal que tenía en ese momento me sumé a su empresa. Todo iba muy bien, tenían algunos buenos proyectos, pero la cosa se torció cuando se comenzó el proyecto para un portal de una empresa de protección de datos. Se me impidió prácticamente hablar con el cliente y casi no tenían requisitos de usuario. Así que ya imaginan donde terminó la aventura, con la empresa en ruinas y sueldos sin pagar. Esta empresa se llamaba albanova. Tiempo después de refundó y fue protagonista de una de los pufos más importante del país en cuanto a franquicias. Con su habilidad de comercial logró convencer a decenas de emprendedores para que gastaran su dinero en el producto. Al final el único que cobró fue el dueño , muchos de los empleados de aquella época todavía luchan por sus sueldos y que yo sepa los franquiciados todavía estarán pagando las deudas de entonces.
Al final todos tienen algo en común, son empresas de I+D+I y que no lo son, vamos una empresa que no tiene ni investigación, ni desarrollo de productos, ni innovación.

lunes, 13 de agosto de 2007

Cargar imágenes de Internet con Java

Este se trata de un pequeño programa de pruebas. Con él quería descargar un gráfico desde una URL hasta mi equipo y mostrarlo en la pantalla.
Fundamentalmente maneja dos flujos uno para la descarga por internet y otro para mostrar la imagen.
Aquí queda para quien quieran echarle un ojillo.

http://www.box.net/shared/kv0s0ny8so

miércoles, 8 de agosto de 2007

VxWorks. El sistema operativo interestelar.

VxWorks es un sistema operativo de tiempo real basado en linux.

Entre sus características incluye kernel multitarea, multitarea preferente , respuesta rápida a interrupciones , comunicaciones entre procesos y herramientas de sincronización entre procesos.

Como demostración de su fiabilidad tenemos una lista de los aparatos que lo implementan con probado éxito:
  • Las sondas Spirit y Opportunity
  • La Deep Impact
  • Boing 787
  • Helicóptero Apache

Computadora del modulo lunar

En la fascinante carrera espacial por llegar a la luna una de las cosas que más llaman la atención es la complejidad y dimensión de los vehículos espaciales.
Muchas veces te planteas cómo fueron capaces de llegar a la luna con la tecnología de aquella época y te das cuenta que la envergadura del proyecto produjo un gran salto tecnológico.
Uno de los campos mejor parados fue el de la electrónica y la computación. Esta misión produjo la invención del circuito integrado. El mundo que hoy conocemos no sería posible sin la invención de esta tecnología.
El computador del Apollo es quizás el ejemplo más significativo.

Esta máquina que ayudó a los tripulantes en las tareas de navegación y en el pilotaje automático de la nave tenía unas características bastantes modestas para cualquier máquina de hoy en día.
Tenía una memoria ROM (cableada) de 74 kilobytes y un espacio de memoria RAM de 4Kb. El tamaño de palabra era de 15bits.
La computadora pesó unos 30kg , su coste fue de 150000 dólares USA de la época y contenia 5000 primitivos circuitos integrados.

Utilizó un sistema operativo de tiempo real que discriminaba entre tareas dándole mayor prioridad a las tareas más importantes y relegando las menos importantes a porciones del tiempo de proceso inferiores.

Lo que podemos ver en la imagen es la unidad de interfaz del computador que englobaba la pantalla y el teclado.

Más información en:
http://www.abc.net.au/science/moon/computer.htm