miércoles, 24 de septiembre de 2008

Los Verdaderos Programadores

In the beginning, there were Real Programmers.
[...]
Some people who grew up in the Real Programmer culture remained active into the 1990s. Seymour Cray, designer of the Cray line of supercomputers, was among the greatest. He is said to have once toggled an entire operating system of his own design into a computer of his own design through its front-panel switches. In octal. Without an error. And it worked. Real Programmer macho supremo.


Eric S. Raymond, The Cathedral & The Bazaar

Traducción:

Al principio estaban los Verdaderos Programadores.
[...]
Alguna gente que creció en la cultura de los Verdaderos Programadores se mantuvo activa a lo largo de los años 90. Seymour Cray, diseñador de la linea se supercomputadores Cray, estaba entre los mejores. De él se cuenta que en cierta ocasión introdujo un sistema operativo completo de diseño propio en un computador de diseño propio mediante los conmutadores de su panel frontal. En octal. Sin un solo error. Y funcionó. El macho supremo de los Verdaderos Programadores.

Eric S. Raymond, La catedral y el bazar
Coninua...

lunes, 22 de septiembre de 2008

París y fotografía

Hace unos días llegué de pasar unos días de vacaciones en París. No era mi primera vez allí, así que pudimos aprovechar bien el tiempo. Además, esta vez llevé la Canon EOS 350D y me harté a sacar fotos. Unas cuatrocientas y pico, en total. Y como acostumbro a disparar en formato raw, la tarjeta CF de 2 GB se me quedó corta y tuve que comprar otra (en el FNAC del Forum des Halles, para más información).


Acabo de subir unas pocas de ellas a mi galería de Picasa. ¡A ver si alguien se anima y escribe algún comentario!

Disparar en raw es casi imprescindible si uno quiere hacer fotos decentes. El problema es que ocupan una barbaridad y, sobretodo, que hay que "revelarlas" para pasarlas a un formato más estándar, como jpg. Hasta hace poco usaba UFRaw para esta tarea, antes de pasarlas a GIMP para reencuadrar, enderezar y demás. Pero hace poco me encontré con rawstudio, que permite trabajar mucho más rápido al poder copiar y pegar ajustes de una foto a otra. También tiene un modo de procesamiento en batch que puede ahorrarnos mucho trabajo.

Pero cuando tenía todas las fotos reveladas a jpg (un trabajo de varias horas que se va tornando aburrido hacia el final) me di cuenta de un gran fallo de rawstudio: ¡no exporta los datos EXIF! Y los datos EXIF son tan fundamentales para una foto como los tags ID3 para un archivo MP3. Como no me daba la gana de empezar desde el principio y volver a hacerlo todo con UFRaw, me puse a buscar un poco y encontré exiftool, una potente herramienta escrita en Perl que puede hacer todo tipo de operaciones relacionadas con datos EXIF.

Entre otras cosas, permite copiar las etiquetas de un archivo de imagen a otro, con la siguiente orden:

exiftool -tagsfromfile a.cr2 a.jpg

Así que solucionado. En unos minutos escribí un pequeño script para aplicar la orden a todos los archivos. ¡Para que después alguno todavía diga que la línea de comandos está obsoleta frente a las interfaces gráficas!

Por suerte, el bug de rawstudio está registrado y solucionado en una versión posterior, según su página de bugzilla.
Coninua...

martes, 22 de julio de 2008

Webcam para el microscopio

Hace unas semanas compré una cámara web Philips SPC900NC en eBay con la intención de aplicarla al ocular del telescopio. Había leído muy buenos comentarios sobre ella y hay por ahí bastante documentación acerca de su utilización para fines astronómicos. No es una cámara barata, pero en eBay se puede conseguir por menos de la mitad del precio que piden en otras tiendas.

La semana pasada encargué la fabricación de un par de piezas adaptadoras de aluminio a una empresa que se dedica al prototipado de partes mecánicas. Una de las piezas adapta la cámara al ocular del telescopio y la otra la adapta al microscopio. Las dos se diferencian únicamente en una cota.

Como ya comenté en una entrada anterior, mi microscopio es un Biolux de Bresser (que es la marca "low cost" de Meade, nada menos). Es el famoso microscopio que Lidl vende de vez en cuando, y creo que es lo mejor que se puede conseguir por menos de 100 euros. Viene con una sencilla cámara USB que se coloca en lugar del ocular. Pero, si bien la calidad del microscopio es buena, la cámara deja bastante que desear. Por eso pensé en utilizar en su lugar la SPC900NC.

Lo primero que hice fue abrir la cámara y cortar la pista que va al LED blanco. Cuando la iluminación es demasiado débil, la luz generada por el LED puede producir reflejos internos. En la siguiente imagen se ve el pequeño corte a la izquierda del LED (el pequeño componente rectangular y blanco que se encuentra centrado en el lado de abajo).


La siguente foto muestra la cámara, a la que le he desenroscado el objetivo, y dos de las piezas adaptadoras fabricadas. Una de ellos está acoplado al casquillo de aluminio que utilizaba la cámara original del telescopio. La he pintado de negro mate para evitar reflexiones.


Por último un par de fotos de la cámara con su nuevo adaptador, sin y con microscopio. Otro día publicaré alguna imagen o algún vídeo para mostrar su utilidad.



Coninua...

lunes, 23 de junio de 2008

Analema con PyEphem

Una de las mejores características de Python es la gran cantidad de módulos existentes. Una instalación básica ya incorpora multitud de ellos, por eso se suele decir que Python viene "con pilas incluídas". Pero fuera de la librería estándar hay una infinidad creciente de utilidades que permiten utilizar Python para casi cualquier aplicación concebible. Hoy voy a presentar uno de ellos: PyEphem.

PyEphem es un módulo de Python creado alrededor de la librería libastro (algo que en programación se llama wrapper), que contiene multitud de funciones de cálculo astronómico y es la parte central del magnífico software XEphem. PyEphem permite calcular efemérides y posiciones de astros con gran precisión, teniendo en cuenta efectos como la precesión y nutación de la Tierra, o la refracción atmosférica. No voy a entrar a describir las clases y funciones de la librería, porque para eso está la página oficial. Pero sí voy a mostrar un ejemplo de lo que se puede hacer con PyEphem y unas pocas líneas de Python.

Si observamos la posición del Sol en el cielo cada día a la misma hora y la representamos en un gráfico, al cabo de un año obtendremos una figura con forma de ocho conocida como analema. La razón de que se forme esta figura está en la inclinación del eje de la tierra frente al plano de la eclíptica, y en que la Tierra avanza con velocidad variable en su órbita ligeramente elíptica. El Sol se encuentra en los extremos superior o inferior de la analema en el solsticio de Verano y de Invierno, respectivamente.

El siguiente código en Python calcula el analema que sería visible en 2008 desde mi casa, observando el Sol cada día a las 12 horas de tiempo solar medio. El analema es dibujado en una gráfica utilizando el módulo matplotlib/pylab.


#!/usr/bin/python

import ephem
from pylab import *

obs = ephem.Observer()
obs.long = '-5:44:16'
obs.lat = '43:29:4'
hour = 12 - ephem.degrees(obs.long)/pi*12
obs.date = (2008, 1, 1, hour)

sun = ephem.Sun()
sun_alt = []
sun_az = []

for i in range(365):
sun.compute(obs)
sun_az.append(sun.az*180/pi)
sun_alt.append(sun.alt*180/pi)
obs.date = obs.date + 1

plot(sun_az, sun_alt, '.')
axis('equal')
grid()
show()

En primer lugar se crea el objeto obs, que representa al observador, y se fijan parámetros: latitud, longitud y fecha inicial. A continuación se crea el objeto Sol y un par de listas vacías donde después se guardarán las coordenadas (azimut y altura) del Sol para cada día. Después un bucle ejecuta el cálculo de la posición para cada día del año y va rellenando las listas. Por último se crea la gráfica y se representa. El código es sencillo de entender incluso sin haber programado nunca en Python. Lo más complicado quizá sea el cálculo de la hora de observación a partir de la longitud del lugar. Hay que tener en cuenta que PyEphem trabaja únicamente con tiempo universal.

Aquí el resultado:


Este es sólo un educativo ejemplo de lo que puede hacerse con este potente módulo. A cualquier aficionado a la astronomía y a la programación se le pueden ocurrir otras aplicaciones más útiles.
Coninua...

martes, 17 de junio de 2008

Python

Dos son los eventos que han hecho que vuelva a sentir mi antigua fascinación por la informática: La transición definitiva a GNU/Linux y el descubrimiento de Python. Si el hecho de usar Linux me ha devuelto la pasión por explorar y manipular los entresijos del sistema operativo, Python ha hecho que la programación vuelva a ser un placer.

Aprendí mis primeros conceptos de programación con unos doce años, en la época del Spectrum y del Amstrad CPC, leyendo libros de Basic para niños. Después de aqueños primeros pasos he programado muchas líneas en C y C++, unas cuantas más en Pascal, Visual Basic, Matlab y PHP, y unas pocas en Java, Javascript, Bash, y diferentes ensambladores. Quizá no haya llegado a conocer suficientemente bien algunos de estos lenguajes como para poder emitir un juicio de valor, pero en mi opinión ninguno de los anteriores lenguajes puede proporcionar nada parecido a la experiencia de programar en Python.

Python fue creado en 1990 por Guido van Rossum, quien bautizó a su creación en honor al grupo cómico Monty Python. En los últimos años el lenguaje está teniendo cada vez más seguidores, habiendo sido declarado "lenguaje de mayor crecimiento del 2007" según el índice TIOBE. Actualmente, según este índice, Python sigue creciendo en popularidad, mientras los gigantes C, C++ y Java van cayendo mes tras mes.

Python hace fácil y divertido lo difícil y tedioso, algo que Guido refleja en su lema "Computer Programming for Everybody". Pero no menos importantes son otras de sus características: es libre y gratuito, es multiplataforma y cuenta con una enorme cantidad de módulos que simplifican cualquier tarea existente, desde la programación de aplicaciones gráficas a la robótica.

Python tiene algún detalle que puede resultar chocante al principio, como el hecho de que los tabuladores sean significativos, pero uno enseguida se acostumbra y se da cuenta de que la sintaxis de Python es mucho más natural y fácil de recordar que la de la mayoría de lenguajes. Si después de escribir unas cuantas líneas de Python aún no te has quedado completamente prendado, puede ser por alguna de las siguientes razones:

  • Eres un auténtico incondicional de Perl o de Ruby y no piensas cambiar. Punto.

  • Aún no has escrito suficiente código. Prueba a escribir algunas líneas más.

  • Quizá al fin y al cabo la programación no sea lo tuyo. Prueba con Visual Basic.

Vale, quizá sea demasiado categórico en mis afirmaciones. No soy en absoluto un hacker de la programación, mis funciones no suelen funcionar a la primera y tengo que pensarme dos veces qué límites aplicar a un bucle for antes de escribirlo. Después de todo no soy informático, así que quizá los programadores no deban tomarse muy en serio mis palabras. Pero a quien sí deberían tomar en serio es a un hacker tan legendario como Eric S. Raymond, quien habla muy sesudamente de sus impresiones acerca de Python en su artículo Why Python?

De verdad. Si te interesa la programación y aún no lo has probado, hazlo. Si usas GNU/Linux o Mac OS ya lo tendrás instalado. Sólo tienes que abrir un terminal y escribir "python". Si usas Windows tendrás que descargártelo de www.python.org.
Coninua...

miércoles, 11 de junio de 2008

Firefox: Download Day

El post va con un poco de retraso, pero todavía estoy a tiempo.
Los desarrolladores de Firefox han tenido una gran idea para promocionar la versión 3 de estupendo navegador. Se trata de intentar batir el record Guinness de mayor número de descargas de un paquete de software en 24 horas.


Download Day

Puedes pinchar aquí para apuntarte y contribuir sin esfuerzo a difundir el software libre. Los que se apunten recibirán por correo electrónico un recordatorio con las instrucciones y la fecha de la descarga. Supongo que ya estarás usando Firefox 3 para leer esto (y si no, no sé a qué estás esperando), pero no te costará nada descargártelo una vez más.
Coninua...

sábado, 7 de junio de 2008

Reportaje de la TPA sobre observatorios en Asturias

Aquí está el reportaje sobre observatorios astronómicos en Asturias, que se emitió por la TPA el sábado pasado durante los informativos.

En primer lugar habla Jose Ramón Vidal, presentado el observatorio de la asociación astronómica Omega en el Monte Deva y su reciente descubrimiento de un estallido en el cometa 46P Wirtanen. Después aparece el observatorio de Faustino García, quien era presidente de Omega cuando yo me hice socio, hace ya unos cuantos años. Y por último salgo yo, con mi observatorio a medio reformar.


La calidad del vídeo no es demasiado buena porque no tuve más remedio que grabarlo en una vieja cinta VHS para después digitalizarlo. La captura desde la tarjeta de televisión, después de probar otras herramientas, la hice con mencoder. Coninua...