Me voy de vacaciones

viernes, 24 de agosto de 2007

Y también daré vacaciones al libro "Abismo de Hielo" [es demasiado parecido a "El Quinto Día"]. He estado buscando un libro que pueda leer en esta semana, que no aburra [seguramente leeré a la hora de la siesta] y me he encontrado con uno que parece gustar a todos los que lo leen: "Dios Vuelve en una Harley" de Joan Brady. Ya os contaré mi parecer a la vuelta.

Hasta luego.

DSD (Semana 22)

jueves, 23 de agosto de 2007

Hoy me quedé dormido, pero [excepto hoy] todos los días de esta última semana he salido a correr a las 6 de la mañana. Se que, si sigo corriendo no tardarán en llegar los resultados, pero por otro lado, estoy comiendo de manera desordenada (tarde, mucho acuarius, mucho pan) y con siestas de un par de horas, así que una cosa compensa la otra... Ayer, por ejemplo, cené a las 8:30 (bien) pero luego fuímos al cine a ver "Locos por el Surf" [entretenida pero no deberían haber insistido tanto en la idea de imitar un documental sobre surfing. nota: atención al pollo de Kentucky] y me comí un "mediano" de palomitas...

Así pues, sigo en 109.7. La semana que viene no habrá resumen porque estoy de minivacaciones [sin wifi] en la playa. Espero aprovecharlas para relajarme, leer una parte del "Abismo de Hielo" y bajar de una vez de los 109. Lo que no creo que haga es navegar ni surfear [me da mucho respeto el mar, sobre todo después de leer "El Quinto Día"].

El quinto dia

martes, 21 de agosto de 2007

Terminé este fin de semana pasado "El Quinto Día" ["De Zwerm" en el alemán original], el libro que comencé a leer en Septiembre del año pasado. Con clara tendencia ecologista y gran cantidad de contenido científico, el libro me ha gustado mucho, así que no daré detalles de su argumento. Después de leerlo, he recapacitado sobre algunas cosas.

Todos nosotros, desde el punto de vista de cualquier otro ser vivo del planeta somos una diminuta población de seres vertebrados muy dañinos [como un virus mortal]. Nos consideramos inteligentes, los elegidos para dominar el planeta, pero "evolucionamos" inexorablemente hacia nuestra propia destrucción. Y lo peor es que lo sabemos y no hacemos nada, dejando un problema cada vez mayor para las generaciones venideras: contaminación, enfermedad, consumismo, egoismo.

Dentro de la historia del planeta, nuestra existencia [desde el homo sapiens] se reduce a un corto lapso de tiempo. Hemos aparecido y podemos dejar de existir sin afectar al funcionamiento global de la Tierra [ya ocurrió con los dinosaurios]. Las bacterias y otros organismos seguirían existiendo, y a todas luces, vivirían mejor. No somos tan importantes, ni mucho menos imprescindibles.

Somos la comunidad de seres vivientes peor organizada que existe. Incapaces de avanzar en un mismo sentido, nos perdemos en la búsqueda del éxito personal en perjuicio los unos de los otros [en definitiva, en perjuicio de la comunidad]. Por poner un ejemplo, si se consigue un avance [digamos un nuevo descubrimiento científico] en lugar de hacerlo llegar de la manera más eficaz y económica a toda la humanidad, unos pocos se encargan de mantenerlo en secreto el máximo tiempo posible para sacarle provecho en su propio beneficio.

Lo que hemos llamado civilización [la tecnología] avanza sólo en un sentido: la sociedad del consumo. Mientras una hormiga no tiene más necesidad que su alimento, en los países ricos las personas necesitan un coche más rápido, una pantalla de 40", un reproductor MP3 por bluetooth, una segunda vivienda, etc... No importa que los accidentes de tráfico sean la primera causa de muerte en sociedades "civilizadas" o que los tipos de interés para las hipotecas no dejan de subir y puede que acabemos arruinados. Y el motivo no es otro que la falta de conciencia y memoria global. No vemos el peligro [no nos preocupa] hasta que no nos toca directamente. La comunidad reacciona tarde o nunca.

Si lo pensamos, otra posibilidad es que nuestra breve existencia SI tenga un sentido: acelerar una nueva glaciación y renovar las formas de vida en el planeta. En ese sentido seríamos útiles.

Se que todo esto te va a sonar derrotista y pesimista, pero también puede ayudarte a pensar en el lugar que ocupamos y en cúal debe ser el sentido de nuestra vida: ayudar a la comunidad [especialmente a los que nos rodean].

Sevilla, campeon de supercopa

lunes, 20 de agosto de 2007

R.Madrid 3 - Sevilla 5

Se van encadenando las copas una detrás de otra... 2 UEFAs, 1 Supercopa UEFA, 1 Copa del Rey y esta Supercopa de España.

Un año de blog

viernes, 17 de agosto de 2007

Hoy hace un año que escribí el primer artículo de este blog. Más de 250 artículos después echo la mirada atrás y es para echarse a llorar. ¡Qué desastre de blog! ¡Pero es mío, solo mío [mi tessoro]!. Lo he conseguido, ya soy un bloguero más. Ahora solo falta hacerlo bien....

Gracias a María por su felicitación.

DSD (Semana 21)

jueves, 16 de agosto de 2007

Parece que me han puesto pilas coincidiendo con los informes semanales. Llevo 3 días consecutivos saliendo a correr a las 6 de la mañana con TuX.

Ayer fué especialmente duro. Levantarse tan temprano siendo festivo (Día de la Asunción) es para pensarselo.... Luego, piscina con las niñas (me dieron una paliza) y terminamos yendo al cine a ver la segunda parte de Los Cuatro Fantasticos (nada fantastica por otra parte)

Instalar Wacom Graphire4 en Ubuntu 7.04

miércoles, 15 de agosto de 2007

Este año los Reyes le regalaron a María una tableta digitalizadora USB Wacom Graphire4. Venía con el Photoshop Elements [donde funcionaba perfectamente] pero no conseguimos hacerla funcionar correctamente [con soporte de presión] en el GIMP para Mac.

Después de un tiempo, María instaló Ubuntu en una partición de su iMac, pero no nos acordamos del problema de la tableta hasta ayer. Encontré un magnífico Howto fechado en 2005 que me funcionó con ligeros cambios en el Ubuntu 7.04 de mi ASUS tras varios errores (por mi parte).

Pasos:

  1. Conectar la tableta USB Wacom
  2. Instalar los paquetes wacom-tools y xserver-xorg-input-wacom (en mi caso ya estaban instalados)
  3. Editar el archivo /etc/X11/xorg.conf e incluir los dispositivos de entrada Wacom USB debajo del "Configured Mouse"
    
    Section "InputDevice"
     Driver  "wacom"
     Identifier "stylus"
     Option  "Device" "/dev/input/wacom"
     Option  "Type"  "stylus"
     Option  "USB"  "on"
     Option   "PressCurve" "50,0,100,50"
    EndSection
    
    Section "InputDevice"
     Driver  "wacom"
     Identifier "eraser"
     Option  "Device" "/dev/input/wacom"
     Option  "USB"  "on"
     Option  "Type"  "eraser"
    EndSection
    
    Section "InputDevice"
     Driver  "wacom"
     Identifier "cursor"
     Option  "Device" "/dev/input/wacom"
     Option  "USB"  "on"
     Option  "Type"  "cursor"
     Option  "Mode"  "relative"
    EndSection
    
  4. Agregar los dispositivos en la seccion "ServerLayout"
    Section "ServerLayout"
     Identifier "Default Layout"
     Screen  "Default Screen"
     InputDevice "Generic Keyboard"
     InputDevice "Configured Mouse"
     InputDevice     "stylus" "SendCoreEvents"
     InputDevice     "cursor" "SendCoreEvents"
     InputDevice     "eraser" "SendCoreEvents"
    EndSection
    
  5. Reiniciar las X con CTRL+ALT+DEL
  6. Habilitar los nuevos dispositivos de entrada en GIMP. En Archivo | Preferencias | Dispositivos de entrada | Configurar los dispositivos de entrada extendidos. Deben aparecer 3 dispositivos: "cursor", "eraser" y "stylus". Por defecto están deshabilitados y hay que seleccionar la opción "Pantalla".

Nota: Al principio parecerá que no funciona la goma de borrar del lapiz. No es cierto. GIMP asocia por defecto la misma herramienta a todos los dispositivos de entrada (en esos momentos tenemos 3: el ratón, la punta del lapiz y la goma). Si queremos que la goma funcione como tal solo tenemos que seleccionar la herramienta "Borrador" utilizando la propia goma. Desde ese momento GIMP recordará que la herramienta Borrador esta asociada a la goma del lapiz y seleccionará automáticamente dicha herramienta cada vez que la utilizemos.

Las virtudes del scripting

martes, 14 de agosto de 2007

En principio, pensaba titular este artículo "Lo que un programador de Java no sabe y uno de PHP si", pero era demasiado largo...

Antecedentes: Poco antes de empezar a programar web, lo hacía con Delphi en arquitectura cliente/servidor contra Oracle. Antes había programado en C, Pascal, Clipper y Cobol para DOS. Por entonces pensaba que programar en web era poco más o menos diseñar paginas web y programar algún script (algo sencillito para hacer un efectito). Después de siete años programando web con PHP mi opinión sobre los lenguajes de scripting ha cambiado radicalmente.

Antes de empezar, es imporante señalar la conveniencia de conocer varios lenguajes. Como ya cité anteriormente, según The Pragmatic Programmer,

Aprende al menos un nuevo lenguaje [de programación] cada año. Cada lenguaje resuelve el mismo problema de una manera distinta. Aprendiendo diferentes soluciones, consigues abrir tus ideas y te ayuda a desbloquearte.

¿Que ventajas ofrece un lenguaje de scripting como PHP sobre uno que no lo es como Java? Muchas, sobre todo en desarrollos complejos con muchas modificaciones.

  • El hecho de poseer un ciclo de desarrollo sin compilación, como todos los lenguajes interpretados, se aprovecha a la hora de desarrollar prototipos o depurar. Con sólo un editor de texto, cualquiera puede hacer un cambio sobre-la-marcha y el usuario da su visto bueno al instante. Pero aún podemos pedir más, e incluir el editor en la propia aplicación (los usuarios de Wordpress pueden dar fe de ello).
  • El código fuente siempre está disponible. Si a estas alturas alguien piensa que esto es una desventaja, debería plantearse repasar las tendencias que han dominado el mundo de la informática en los últimos 10 años
  • Los programas pueden reescribir partes de su código según determinadas condiciones. Esta posibilidad es mucho más complicada en lenguajes compilados.
  • Por regla general la mayoría de los lenguajes de scripting son más fáciles de entender (hecha la excepción de PERL) que los lenguajes compilados.
  • La flexibilidad otorgada por el tipado débil y el alto nivel de las funciones permiten a los programas desarrollados en lenguajes de script ocupar casi siempre menos lineas que los correspondientes en lenguajes compilados. Esto facilita aplicar la máxima KISS (Mantenlo Simple Estupido) al desarrollo.
  • Uso de scripting desde lenguajes compilados: En una de mis aplicaciones en Delphi, después de la cuarta o quinta modificación sobre el orden de una consulta o la inclusión de uno u otro campo en un informe, saqué todas las consultas SQL y las guardé en una carpeta. La siguiente vez que me pidieron una modificación les mandé por correo el archivo .SQL y lo instaló el cliente. Como solución mas profesional, existen extensiones que permiten utilizar lenguajes interpretados (como LISP) desde dentro de los lenguajes compilados, ganando así todas las ventajas de las que estamos hablando. Otro ejemplo de esta integración es el módulo de PHP para Apache (mas sencillo imposible).
  • Uso de lenguajes compilados desde scripting: desde PHP existe la posibilidad de desarrollar extensiones en C o C++, así como de utilizar clases de Java.
  • Rendimiento: Desde siempre se ha acusado a los lenguajes interpretados de lentos. El caso de Java (tambien COBOL) es curioso porque de alguna manera la máquina virtual "interpreta" un codigo optimizado, así que se situa a medio camino. La falta de rendimiento puede valer para el BASIC de los 80, pero desde hace tiempo los interpretes utilizan técnicas de mejora del proceso de interpretación, de manera que se genere un codigo optimizado intermedio cuando es necesario y no sea necesario interpretar el código cada vez. Si a esto le sumamos las tecnologias de caché de compilación, las diferencias se reducen considerablemente.

Para aligerar en trabajo en lenguajes compilados se hace necesario un entorno de desarrollo potente, que incluya herramientas para la depuración. En un programa web en PHP, el entorno es el servidor web.

Dos vueltas al parque

Esta mañana, a eso de las 6 sonó el despertador. Me levanté, cogí a TuX y fuimos al parque. Dí dos vueltas haciendo footing. No es demasiada distancia, pero hace muchísimo que no corro y tuve buenas sensaciones, solo noté un poco de presión en el tobillo izquierdo. TuX se portó bastante bien, apenas tuve que tirar de él.

El parque, a esa hora (de noche todavía), mantiene todas las puertas cerradas menos una (la inferior en el mapa), pero no entré, dí la vuelta por fuera.

Taller de Blancanieves en los Veranillos

Anoche, a las 9:30, fuimos a Los Veranillos del Alamillo, donde se realizaba un taller infantil titulado "Blancanieves". Las niñas fabricaron dos espejos de cartón, y los decoraron con purpurina, papel brillante y piedras. Mientras María les ayudaba un poco, yo me quedé con TuX. El pobre estuvo todo el rato nervioso porque veía a las niñas y a su "adorada" mamá a pocos metros y no podía acercarse.

Este año no habíamos ido todavía a "Los Veranillos del Alamillo", pero ya los conocemos de años anteriores. Todos los días de Julio y Agosto se realizan actividades para los peques. Cada día de la semana, una distinta. Así, los lunes hay taller infantil, los martes cuentacuentos, los miércoles teatro, danza, poesía o música, los jueves es el día de los jóvenes flamencos, los viernes cine infantil, el sábado cine para todos los públicos y el domingo un pasacalles. Las actividades siempre empiezan después de las 9, ideal para para pasar un rato fresquito.

Hielo Negro

lunes, 13 de agosto de 2007

Playita, paseos y leer es el resumen de éste fin de semana.

Cada vez que fuímos a la playa hizo más viento que la vez anterior, lo que significaba más olas y más diversión para las niñas, con sus tablas de corcho. El Sábado por la mañana tuvimos que pelearnos para encontrar sitio cerca del mar, así que el Domingo ya solo fuímos por la tarde, con mucha menos gente.

Dos largos paseos dimos María y yo, uno hacia el paseo marítimo, nada más llegar el Viernes, y otro a la carretera norte, el Domingo por la mañana, acompañados de TuX. El aire de la playa te anima a caminar, y corría una brisa agradable, así que no fueron demasiado duros.

También adelanté un buen montón de páginas de "El Quinto Día". Cada vez me gusta más, y me dará pena cuando lo termine.... son tantos meses que le he cogido cariño. No es solo un libro de ficción, incluye además una colección clara y atractiva de conocimientos ciéntificos acerca de la naturaleza marina, de la evolución, del papel de la humanidad y muchas otras cosas. Sin embargo, creo que ya he encontrado sustituto. En el paseo marítimo compré (por 5 euros) un libro que parece estar en la misma línea: "Abismo de Hielo" de Matt Dickinnson, una aventura de investigadores en la Antártida, mucho más corto. Por cierto, que originalmente se titula "Black Ice". ¿Tan poco comercial resultaba el título "Hielo Negro"?

Señora, dejeme mear

viernes, 10 de agosto de 2007

Llevo un mes y medio en este trabajo de m... y casi todos los días tengo que ir al servicio. Raro es el día que no me encuentro con la limpiadora, una señora bajita, mayor y regordeta. Y cuando no está, está el carrito o un bote de desintectante en la puerta.

¿Será una casualidad? Hoy, por ejemplo, estaba cerrado por lo mismo "estamos limpiando". El edificio tiene 3 plantas... ¿no hay otra cosa que limpiar?

Por cierto, el servicio (al menos el masculino) siempre está que da asco...

DSD (Semana 20)

miércoles, 8 de agosto de 2007

De ahora en adelante, trataré de que las entradas sobre DSD [o cómo dejar de ser gordo dejando de comer dulces] pasen a ser semanales. La razón es que no avanzo tan rápido como quisiera y escribir cada día resulta monótono y aburrido (y leerlo seguro que mucho más).

Esta mañana he vuelto a los 111,4 [me muevo en el mismo peso desde hace un par de semanas] y ese será el peso que tendré que rebajar la semana que viene. Deseadme suerte.



[meme] ¿Como te retirarias con 5 millones de euros?

martes, 7 de agosto de 2007

He visto varias webs con el mismo meme, así que no iba a ser menos...

Primero los caprichitos: una casita junto al mar en el sur de Portugal, unas vacaciones en Disneyland y una custom grande para pasear (y un Mini para alguien cercano). También me arreglaría los dientes y la vista (tengo miopía).

Sobre el resto me dejaría asesorar para pagar menos a la Hacienda Pública (HP). Supongo que para disminuir el riesgo lo repartiría entre distintos productos financieros. Haría un viaje largo al menos una vez al año, y me dedicaría a mi familia y a mis aficiones.

Por último, cada año haría una donación importante (un porcentaje del beneficio anual) a una entidad benéfica que considere de fiar...

Ratatouille

Incomprensible. Desayuné mal, almorzamos en el chino (y comí muchisimo), me eché una siesta de dos horas, no hice nada de ejercicio, cené un bocata de york y luego fuímos al cine y me zampé un "grande" de palomitas (lo que me dió mucha sed y bebí mucho acuarius). Y esta mañana peso casi medio kilo menos...

Como he dicho fuimos al cine, al cine de verano mas concretamente, a ver Ratatouille. Pasamos un frío terrible y acabamos tiritando los cuatro (¿estamos en Sevilla en Agosto?). La película es genial, de una calidad impresionante y un argumento tan sencillo y que engancha tanto que se te pasa volando.... muy recomendable.

DsD#143: 110.9

Por fin lunes

lunes, 6 de agosto de 2007

Otro fin de semana en la playa comiendo demasiado y mal, cenando tarde, durmiendo siesta, sin hacer ejercicio... Menos mal que se acabo.

DsD#142: 111.3

Me pase de rosca

viernes, 3 de agosto de 2007

Ayer hice 12.8 km en media hora de bici (nuevo record) y sudé una cantidad "peligrosa" de agua. Después de la ducha sentí como si hubiera agotado alguna reserva de energía que tenía escondida... Si pudiera dar marcha atrás no lo habría hecho.

DsD#139: 111.2

Frustracion

jueves, 2 de agosto de 2007

Ayer desayuné bien, almorcé sin pan, no me eché siesta, sudé sangre para conseguir 12.7 Km en media hora de bici (nuevo record), y cené no demasiado tarde una pera con leche desnatada. Después de eso, uno esperaba bajar al menos medio kilo... pues nada, no he bajado ni 100 gramos. Tanto esfuerzo sin fruto es para sentirse frustrado. Algo estoy haciendo mal, me he estancado en los 111.

Rebeca rió y dijo:
- Cuando aprendais a aceptar en lugar de esperar, tendreis menos decepciones.

DsD#138: 111.2

Vamos a echar una carrerita

miércoles, 1 de agosto de 2007

Es la primera vez que hago cositas con GD, así que no seais muy duros conmigo. He escrito un script para generar una imagen similar a la del tipo de la Wii. Es bastante difícil, pero no me importaría llegar a los 86 kilos que tiene como meta.


$kilos = intval($_GET['kilos']);
if ($kilos == 0) $kilos = 111;

$iniciolinea = 10;
$finlinea = 270;
$iniciokilos = 126;
$finkilos = 86;
$fuentegrande = 5;
$fuentepeque = 4;
$fuentemini = 2;
$anchofuentegrande = imagefontwidth($fuentegrande);
$anchofuentepeque = imagefontwidth($fuentepeque);
$anchofuentemini = imagefontwidth($fuentemini);
$yimagen = 25;
$url = 'ecao.blogspot.com';
$diferenciakilos = $iniciokilos - $finkilos;
$diferencialinea = $finlinea - $iniciolinea;
$kilosperdidos = $iniciokilos - $kilos;
$kilosquefaltan = $kilos - $finkilos;
$x = $iniciolinea + intval((($kilosperdidos) * $diferencialinea) / $diferenciakilos) - 18;
$mensaje = "$kilosperdidos kgs perdidos, quedan $kilosquefaltan kgs!";
$anchomensaje = $anchofuentemini * strlen($mensaje);
$xmensaje = intval((280 - $anchomensaje) / 2);
$xkilos = $x - 40;
$anchobocadillo = 40;
$altobocadillo = 25;
$xcentrobocadillo = $xkilos + 13;


// imagenes de las que partimos
$imagen = imagecreate(280, 100);
$imagencaballero = imagecreatefromgif("knight.gif");
$base = imagesy($imagencaballero) + $yimagen;
$ykilos = $base - 50;
$ycentrobocadillo = $ykilos + 8;

// situamos al caballero
imagecopymerge($imagen,$imagencaballero, $x, $yimagen, 0,0, imagesx($imagencaballero), imagesy($imagencaballero), 100);

// colores a utilizar
$colorgris = imagecolorallocate($imagen, 169, 170, 173);
$colorceleste = imagecolorallocate($imagen, 50, 195, 239);


// regla
imageline($imagen, $iniciolinea, $base, $finlinea, $base, $colorgris);
for ($k = $iniciokilos; $k >= $finkilos; $k-=2)
{
 $xlinea = $iniciolinea + intval((($iniciokilos - $k) * $diferencialinea) / $diferenciakilos);
 $alto =  ($k % 10 == 0) ? 10 : 5; 
 imageline($imagen, $xlinea, $base+3, $xlinea, $base+$alto, $colorgris);
} 

// url
imagestring($imagen, $fuentepeque, $finlinea - ($anchofuentepeque * strlen($url)), 3, $url, $colorgris);

// kilos de origen / destino
imagestring($imagen, $fuentegrande, $iniciolinea, $base + 12, $iniciokilos, $colorceleste);
imagestring($imagen, $fuentegrande, $finlinea - ($anchofuentegrande * strlen($finkilos)), $base + 12, $finkilos, $colorceleste);

// bocadillo con kilos actuales
imagestring($imagen, $fuentegrande, $xkilos, $ykilos, $kilos, $colorceleste);
imageellipse($imagen, $xcentrobocadillo, $ycentrobocadillo, $anchobocadillo, $altobocadillo, $colorgris);
imageline($imagen, $xcentrobocadillo + ($anchobocadillo / 2), $ycentrobocadillo + 5, $x + 3, $ycentrobocadillo + 8, $colorgris);

// mensaje con los kilos perdidos y que faltan
imagestring($imagen, $fuentemini, $xmensaje, $base + 13, $mensaje, $colorgris);

// vuelca la imagen
header("Content-type: image/gif");
imagegif($imagen);
imagedestroy($imagen);

Para hacerlo funcionar, solo hay que copiarlo (junto con una imagen knight.gif al servidor Web (con soporte de PHP y GD) y pasarle como parámetro el numero de kilos de peso. Por ejemplo: http://localhost/evolucionpeso.php?kilos=111

Tonteando con UML

Hoy estoy jugando un poco con el UML en el trabajo. Tengo que describir una serie de paquetes de procedimientos en Oracle y relacionarlos con los subsistemas de proceso (cada uno de los cuáles trabaja sobre un esquema (usuario) de Oracle distinto). Se me ha ocurrido describir cada paquete de procedimientos de la base de datos como un "componente"; agruparlos dentro del "paquete" del subsistema y enumerar las funciones de dicho paquete que se aplican al mismo subsistema. Ya sé que es difícil de entender, pero el objetivo de todo esto es precisamente todo lo contrario: facilitar la comprensión de la estructura presentándola de una manera gráfica... Seguramente lo esté haciendo mal, por eso lo pongo aquí, y si alguien me corrije, pues eso que aprendo...

Ayer volví a hacer media hora de bicicleta (11,8 km), no dormí siesta (continué la lectura de E5D), pero comí demasiado pan y cené tarde. Si sumamos la enorme cantidad de líquido que bebí (Aquarius sobre todo) pueden explicar que mantenga los 111.2 otro día más.

DsD#137: 111.2