Archivo para abril de 2007

Tiempo libre

Ya nos lo decía nuestro profesor Ramón T. durante el curso de Java, lo único con lo que se puede pagar a un informático (y a casi cualquier trabajador) es con lo único con lo que no negocian las empresas: Tiempo Libre.

De todas formas, creo que no es el 75% de los españoles sino el 75% de los madrileños y demás ciudades grandes. Porque en el resto de España, esa España que no debe entrar en las estadísticas, sobre todo las que calculan el sueldo medio, dudo mucho que exista un porcentaje tan alto de gente estresada. En el resto de España somos más… tranquilos.

¿PHP o Ruby?

Ruby, Ruby on Rails y PHP

Ahora mismo estoy haciendo desarrollo en PHP y, como he dicho antes, no tiene ningún framework decente que tenga el soporte MVC en condiciones. Lo primero es que si alguien ha probado alguno y le va bien que me lo diga.

Lo segundo, he estado pensando en pasarme, poco a poco porque tengo que aprender, a Ruby y a Ruby on Rails. Y me gustaría saber qué me recomendáis. Bueno, SuperDTD seguro que me recomienda el paso, de hecho es gracias a él por lo que he tenido en cuenta esta posibilidad.

¿Sugerencias? ¿Algún otro?

Interfaz PDO en PHP

A la hora de programar una aplicación, lo mejor, según nos han enseñado en la carrera, es dividir, de ahí lo de «divide y vencerás». Dividir todas las funcionalidades en paquetes, clases, o lo que sea, para luego ir utilizando cada parte de forma independiente pero comunicándose con las demás mediante su interfaz bien definida.

Esto se puede aplicar al acceso a los datos dentro de cualquier aplicación, es decir, utilizar una clase con una buena interfaz para el acceso a las bases de datos.

En un principio, como mi desarrollo actual es PHP, desarrollé una clase abstracta llamada DBManager para el acceso a las bases de datos con todas las funciones necesarias para el manejo de los mismos: query(), fetch(), exec(), etc.

De esta clase abstracta derivaba una clase por cada tipo de base de datos a la que se podía acceder: MySQLManager, PostgreSQLManager, FirebirdManager, etc. Así basta con instanciar la clase que necesites en una variable del tipo de clase abstracta y ya existe un método único para acceder a todos los tipos de bases de datos, más o menos de la misma forma como funcionan las interfaces en Java.

Pero desde PHP 5 existe un módulo similar llamado PDO, donde se puede instanciar una variable de tipo PDO con una serie de parámetros para el acceso al tipo de base de datos que se necesite. Por ejemplo, para MySQL sería así:

try {
$dbm = new PDO(“mysql:host=localhost;dbname=test”,$user,$password);
foreach($dbm->query(“select * from A;”) as $row) {
print_r($row);
}
} catch(Exception $e) {
die(“Exception: “.$e->getMessage());
}
$dbm = null;

En una instalación nueva de PHP, esto no viene activado y hay que ponerlo manualmente. En Ubuntu, que es donde trabajo ahora mismo, su instalación sería muy sencilla aunque no hay que olvidarse de ningún paquete. En principio hay que instalar PHP 5 y sus correspondientes archivos de desarrollo ya que en estos últimos se encuentra pecl, una aplicación para la instalación de extensiones para PHP.

root:~:$ apt-get install php5 php5-dev php-pear

A continuación es necesario instalar el soporte para PDO en nuestro PHP:

root:~:$ pecl install pdo

Con esto tenemos dicho soporte que, además, hay que añadir al archivo php.ini de nuestra configuración, ya sea para Apache, para CGI o para CLI de la siguiente forma:

extension=pdo.so

Además, ya que PDO sólo es la interfaz de las clases de manejo de las bases de datos, hay que instalar los controladores de cada base de datos de forma independiente. Por ejemplo, para MySQL sería de la siguiente forma:

root:~:$ pecl install pdo_mysql

Estos controladores se descargan y se compilan cuando se instalan, por lo que es necesario tener instalados en el sistema los archivos de desarrollo de cada base de datos. Para MySQL tendría que estar instalado el paquete libmysqlclientXX-dev donde XX es el número de versión.

Para PostgreSQL, la instalación del controlador sería:

root:~:$ pecl install pdo_pgsql

Teniendo que tener instalados los archivos de desarrollo de PostgreSQL que se encuentran en el paquete postgresql-dev.

Una vez hecho esto, hay que añadir al archivo php.ini las correspondientes líneas para activar las extensiones:

extension=pdo_mysql.so
extension=pdo_pgsql.so

Posteriormente reiniciamos el servidor Apache para que se carguen dichas extensiones y tener soporte:

root:~:$ /etc/init.d/apache2 restart

Para probarlo se puede hacer un script en PHP con el código anterior, meterlo en el Apache y listo. Eso sí, la base de datos y la tabla referenciada tienen que existir así como el usuario y contraseña de la base de datos. De todas formas, aunque no existan, este código también sirve para comprobar si PDO está activado en nuestro servidor y también si el controlador utilizado (mysql, pgsql, firebird, etc.) está cargado.

Con esto ya tenemos soporte para PDO en todas nuestras páginas Web realizadas en PHP. A partir de aquí sólo hay que construir los objetos de negocio y utilizar esta clase para el acceso a los datos de los mismos.

Pero aunque esto está muy bien, yo recomiendo utilizar, además, un framework de desarrollo que siga el modelo MVC. Lo complicado es elegir cual. De todas formas este es un buen primer paso ;) .

Escritura Hacker

La escritura hacker es un tipo de escritura utilizada por los hackers en Internet para que no se les entendiesen los mensajes pasados. En realidad sólo se basa en sustituir ciertas letras del alfabeto por los números cuya tipografía es parecida, por ejemplo sustituir la «o» por el «0».

Este tipo de escritura se conoce como Leet Speak (L337 5P34K) y comenzó en los años 80 del siglo pasado en los medios electrónicos como las BBS. Hoy en día sólo lo utilizan (utilizamos) los Geeks, sobre todo para escribir contraseñas seguras.

Existen varias formas de este tipo de escritura. La más sencilla es cambiar las vocales y alguna consonante por números pero otras más complicadas incluyen la utilización de varios símbolos para la composición de las letras (p.e. para N se usa |\| o para la M se usa |\/|).

Por Internet existen algunos traductores de este tipo, metes el texto y te sale todo rarito, incluso Google, en sus preferencias de idiomas, tiene la escritura hacker (además del idioma Klingon, que es la que más mola). Pero por si alguno todavía es más geek puede utilizar el comando tr de Linux:

tr [abegiostABEGIOST] [4836105748361057]

Con esto, todo lo que se escriba será tradudico al lenguaje hacker según se presione Enter. Obviamente hay más formas de hacerlo, pero esta es de las más sencillas. También se puede utilizar un echo:

root:~:$ echo Bienvenidos a mi Blog – BeOSmAn\’s Blooog | tr [abegiostABEGIOST] [4836105748361057]
813nv3n1d05 4 m1 8l06 – 8305m4n’5 8l0006

O un archivo:

root:~:$ tr [abegiostABEGIOST] [4836105748361057] < texto.txt

Esto se puede configurar como uno quiera y, para mí lo más útil es para la generación de contraseñas seguras. Luego cada uno que lo use para lo que quiera… ;)

Los Simpsons en Google Maps

Buenísimo este vídeo de un capítulo de Los Simpsons en EE.UU. donde sale Homer desnudo en Google Maps cuando Marge está buscando su nombre en Google. Buenísimo.

Marge señala a Homer desnudo visto desde Google Maps

Marge avisa a Homer de que lo está viendo todo el mundo

Homer y Marge corriendo por el jardín visto desde Google Maps

P.D.: Estoy esperando con ansia que salga la película el día 27 de Julio de 2007.

Software de gestión de proyectos

Ahora que estoy en una empresa con varios proyectos en los que estoy involucrado (ninguno como jefe, una pena, :D ), me veo en la necesidad de instalar un software de gestión de proyectos.

En principio el software que requiero lo quiero instalar en local (por lo que no me vale ni SourceForge ni BerliOS ni ninguno de esos), quiero que sea libre o gratis en su defecto, que sea vía Web y, sobre todo, quiero que sea sencillo. Además, si es posible también en español aunque esto me da casi igual.

Principalmente una aplicación de gestión de proyectos no sería estrictamente necesario sino que mi principal búsqueda radica en un Bug Tracker o Issue Tracker, es decir, un software donde se lleve constancia de todas las tareas realizadas y por realizar de un proyecto determinado. Obviamente, este software debe gestionar múltiples proyectos, múltiples usuarios y sus correspondientes tareas.

He probado varios de estos programas, entre ellos Jira, BaseCamp, Mantis, Trac, Bugzilla, Issue Tracker, SimpleTicket y alguno más y ninguno de ellos me convence. Lo que no me gusta es que son demasiado complejos, se centran mucho en la metainformación del error (quién lo ha reportado, el tipo, la prioridad, el tiempo, etc.) y muy poco en la propia descripción del error. En las pantallas de la interfaz donde se muestran los errores suele haber tanta información que cuesta encontrar el propio error.

Además, para introducir un nuevo error hay que poner mucha cantidad de información adicional que, en estos momentos, no necesito introducir. Por eso me parecen tan complejos.

Actualmente ya me estoy planteando realizar el mío propio pero antes me gustaría conocer vuestras opiniones acerca de estos y vuestras sugerencias sobre otras aplicaciones de gestión proyectos de software. Espero vuestros comentarios ;) .

Ducharse todos los días debe ser un hábito, no una obligación

Ducha

Aunque en este artículo (en inglés) se dice que no es necesario ducharse todos los días para estar sanos, yo creo que no es sólo cuestión de salud lo de la ducha diaria.

La higiene personal junto con la buena alimentación de estos tiempos es la que nos ha dado la calidad de vida actual junto con una esperanza de vida mayor de lo que nunca antes se había dado. Sin duda alguna, la ducha diaria ha tenido un papel bastante importante.

Bien es cierto que, en condiciones normales, más de una ducha diaria podría parecer excesivo ya que podríamos eliminar las bacterias que cubren nuestra piel y nos protegen de las agresiones externas.

Pero en nuestra sociedad actual la ducha, más que por salud, es por mantener nuestras relaciones sociales. Porque aunque no nos duchemos todos los días, pongamos una vez por semana, nuestra salud no se iba a resentir, pero seguro que nadie querría estar al lado del sujeto en el sexto día de abstinencia jabonil.

Los olores son muy significativos en nuestra sociedad actual, a nadie le gusta estar en un lugar que huela mal, incluso los lugares o personas malolientes se asocian a cosas perjudiciales por lo que rehuimos acercarnos demasiado.

De todo esto, el ejemplo más claro, por desgracia, lo tengo bastante cerca (mañana cuando lea esto mi novia seguro que se da cuenta del apunte). Hablando de una persona, a la que llamaremos D, hay que decir que, después de 8 meses en un piso compartido, 8 meses sí, se ha duchado 5 veces, ha lavado las sábanas de su cama 2 veces y la toalla de la ducha 1 vez. Bueno, esto último es casi normal ya que no se usa apenas. Además, cuando sale de la ducha, las pocas veces que lo ha hecho, se pone la misma ropa que lleva usando varios días seguidos. Y apostaría a que también se pone los mismos calzoncillos.

La verdad es que D tiene buena salud, sí, pero, sinceramente, no hay quien se acerque a él y mucho menos quien entre en su habitación. Y ahora podríais pensar qué han hecho sus compañeros al respecto, si se lo han dicho o no. Pues sí, se lo han dicho y ha hecho caso omiso. Será que le da alergia el agua o algo.

Y es que ducharse todos los días depende de cada uno y de sus circunstancias pero, por favor, no me lleguéis a estos extremos.

Reformando las leyes… de Dios

Como parece que la iglesia católica está perdiendo cada día más adeptos (por suerte) pues tiene que hacer lo teóricamente imposible, es decir, modificar las leyes de su dios. Y es que lo último que se les ha ocurrido ha sido eliminar el limbo, sí, ese lugar donde iban los niños cuando morían y todavía no estaban bautizados.

Y es que ahora van a ir directamente al cielo por la «gracia y misericordia de Dios». Vamos, que los que murieron antes que se jodan. Así es nuestra querida iglesia. Lo próximo será comprar una maza y un cincel para modificar las Tablas de la Ley.

Yo, que soy ateo, quizás veo las cosas desde otro punto de vista, sin ese fanatismo que comenta Sandía (donde ví el comentario de la noticia) de su madre de que si no bautiza a sus hijos van a ir al limbo ¿cielo?. Y por ese motivo creo que si la iglesia quiere incrementar sus subscripciones, lo que debería hacer es una reforma gorda como la del Concilio Vaticano II cuyo tercer punto importante fue «Adaptar la disciplina eclesiástica a las necesidades y métodos de nuestro tiempo». Y eso es lo que tienen que hacer: dejar que se casen los curas, dejar que las mujeres también puedan ser curas (¿cuál es el femenino de cura?), dejar de ser tan gilipollas con el tema de los preservativos y tantas otras cosas más que al cualquier persona con dos dedos de frente le parecen normales.

De todas formas, eso es para los que creen. A mí, por mucho que cambien me da que no me van a convencer. Ni ellos, ni los testigos de Jehová que tanto vienen por mi casa a traerme papelitos para que lea. Pero nos os preocupéis, señores testigos, que también tendréis vuestro momento de gloria en este pequeño blog.

Mozilla Thunderbird 2

Con bastante retraso respecto a la misma versión de su hermanito Firefox, por fin ha salido Mozilla Thunderbird 2. Y, como no, me ha faltado tiempo para probarla. Y aquí está:

Mi Mozilla Thunderbird 2

A primera vista lo que más ha cambiado han sido los iconos, el árbol de carpetas (cuyos elementos están más espaciados) y la plantilla que sale según lo inicias. Además, han añadido unos botones en la vista del árbol de carpetas para cambiar entre «Todas las carpetas», «Carpetas no leídas», «Carpetas favoritas» y «Carpetas recientes». Y la verdad es que sí que viene bien, al menos las carpetas no leídas.

Supongo que habrán corregido muchos errores entre versiones, porque lo que es la velocidad de carga pues como que no. Seguro que influye que tengo más de 60 blogs indexados y unas 5 cuentas de correo, pero de todas formas hasta que se hace usable desde que inicias pasan algo así como 15 o 20 segundos (una eternidad en esto de la informática).

Pero aún con éstas, ya hace tiempo que soy incondicional del mismo, porque lo que lo voy a seguir usando y, por supuesto, lo voy a recomendar a todo el mundo. Así que ya sabéis, todos hacia el software libre ;)

Salud, dinero y …

Salud y dinero… que el amor ya lo compraremos.

Julio, compañero de trabajo.

Biopetroleo

Fitoplancton

Hoy he visto en las noticias una noticia un tanto controvertida. Parece ser que una empresa española (sí, es raro, pero es 100% española), Bio Fuel Systems, ha desarrollado una forma de crear biopetroleo, es decir, a partir de ciertas algas marinas (una especie muy concreta), crear un compuesto similar al petroleo y, por supuesto, con todas sus características.

Lo bueno de la noticia es que es muy fácil cultivarlas. Basta con tener depósitos de agua llenos de estas algas, alimentarlos y a crecer y multiplicarse. Cuando alcancen una determinada concentración, creo que eran unos 250 millones por cm3, se separan las algas del agua por medio de centrifugado y listo, ya tenemos el biopetroleo. Pero lo mejor de todo es que el alimento de estas algas es el CO2, es decir, el gas que se cree que es el responsable del cambio climático.

Pero lo que me hace pensar un poco es por qué crear petroleo en lugar de crear fuentes de energía que no contaminen. Porque sí, las algas consumen CO2 para crecer, pero al quemarse lo producen como el petroleo mismo. Aunque me alegro mucho de este descubrimiento, sobre todo porque es español, déjenme ustedes que sea un poco escéptico. Yo en estos casos de energías me iría por las ramas de motores no contaminantes, pero claro, la demanda energética actual tampoco es que sea muy anodina para andar desperdiciando estos regalos de la investigación.

Pero, de todas formas, desde aquí, les doy mi enhorabuena y les animo a que sigan por el mismo camino investigador.

Actualización 2007-05-30: Algunos comentarios dicen que tengo que ser escéptico con esto y que quién anda detrás ha hecho cosas malas. Realmente no lo sé, pero ya ha aparecido en numerosos medios, entre ellos en El Mundo y la verdad es que sí que me hace pensar, pero para bien. Sólo me gustaría una cosa: ¡qué funcione!

Pizarra

Hoy nos han traido una pizarra a nuestro puesto de trabajo para que nos dejen los deberes. Y el chiste del día ha sido:

root@localhost ~ # apt-get install pizarra

¡Ups! Creo que vamos a tener que coger el taladro con la broca de widia y algún que otro taco con alcayata. Bueno, mejor que lo instalen los técnicos no vaya a ser que un informático con un taladro… que noooo, jejeje, que no sólo sabemos informática… ;) .

Haciendo de pringao por méritos propios

A veces le vas a hacer un favor a un amiguete para que el ordenador vaya un poco más rápido y vas y la jodes del todo.

Y eso es lo que me pasó el otro día con un Windows XP que había instalado yo pero me había olvidado de poner los controladores correctos del disco duro por lo que estaba configurado en modo PIO en lugar de en modo DMA y todas las lecturas eran síncronas no dejando a otros procesos tiempo de ejecución.

Como ya me había pasado en mi propia máquina, directamente instalo los controladores que encontré en uno de los CD’s que venían con el ordenador. Pero no contento, decidí instalar también, antes de reiniciar, los controladores del USB. Qué feliz. Luego a reiniciar. Pero ¡oh, sorpresa! me salió el mensajito: Error del sistema: no se encuentra el archivo isapnp.sys.

Joder que chungo. Ale, ahora toca reinstalar otra vez… puf… no. Espera. Tiene que haber solución. Cogí mi super Ubuntu, arranqué y… vaya, desde el LiveCD no se pueden escribir particiones NTFS (por cierto, a ver cuando arreglan eso). Pero bueno, me sirvió para identificar los archivos que fallaban. Estaban en el sistema de archivos pero eran erróneos (el propio Ubuntu los marcaba en rojo y con sus propiedades llenas de interrogaciones).

Pero… tengo el Hiren’s Boot CD y sí, desde ahí sí que se pueden escribir particiones NTFS. Borré los archivos, extraje del disco de Windows XP los que necesitaba, del disco de los controladores también saqué alguno, los metí con un copy del MS-DOS y… ¡listo!. Puf, qué alivio.

Problemillas, sí, pero saqué, al menos, dos conclusiones: primera, cuando instales drivers esenciales del sistema, nunca nunca nunca instales más de uno a la vez, reinicia cuantas veces sea necesario, aunque te toque esperar, que luego pasa lo que pasa.

Segunda, MS-DOS todavía sirve para arreglar los problemas que la interfaz gráfica produce y no te deja solucionar. Esto va para uno de mis compañeros del curso de Java que el primer día dijo que MS-DOS ya no se utilizaba para nada. Pobre iluso.

Caminar sobre las aguas

Caminar sobre las aguas y desarrollar software a partir de unas especificaciones es fácil… siempre que ambas estén congeladas.

Edward V. Berard, ingeniero informático.
Desde Microsiervos aunque ya lo había visto hace tiempo.

Firefox – Firefox – Firefox – …

Qué cosas puede hacer nuestro gran amigo Mozilla Firefox:

Imagen de Firefox dentro de Firefox

Basta con poner la URL chrome://browser/content/browser.xul y listo. Luego puedes hacer figuritas como el infinito (yo lo he intentado pero me ha faltado un poco, :D ).

Visto en Menéame y en Seejay Online.

Garabullos

Hay una expresión por El Bierzo que es «…no hago tal cosa hoy porque mañana es día de garabullos». No sé si la habíais oído alguna vez, pero por allí se estila mucho.

Garabullo es una palabra gallega que significa palo pequeño que se suele usar para enceder fuego. De hecho, de pequeño le oía mucho esa palabra a mi abuelo cuando íbamos a la viña a vendimiar, los garabullos eran los palitos de sarmiento (o sarmienta, que también se dice por allí).

Pero aquí, esta expresión significa que al día siguiente hay que trabajar, vamos, que hay que levantarse prontito para ir a levantar el país. Y esto viene porque aller salí a tomar algo con los compañeros del curso de Java (un saludo a todos, muchachos) pero volví prontito porque «hoy es día de garabullos» ;) .