31 December 2009

Los pequeños detalles (y más sobre El Quijote en audiolibro)


En la anterior entrada se utilizaba una página web con el Quijote en audiolibro como ejemplo para descargar una serie de ficheros de manera elegante con ruby y wget. Es decir, para solucionar la chapuza de tener que bajarse 126 ficheros sueltos en vez de uno solo.

Otro pequeño fragmento en ruby para renombrar los ficheros a algo más coherente, sin espacios ni acentos molestos (el acento en UTF-8 da problemas en mi reproductor de audio). Otra excusa más para practicar con ficheros y expresiones regulares:

Dir.foreach(".") do |f|
unless (m = f.match(/Parte\s(.*)\sCap.+tulo-(.*)\.mp3/)).nil?
File.rename(f.to_s, "P" + m[1] + "-Capitulo-" + m[2] + ".mp3")
end
end

Lo triste del asunto viene ahora al organizar el audiolibro en un gestor de ficheros mp3. Noto algo raro y decido echar un vistazo a los tags ID3. Atención a cómo se han rellenado los campos:

Nombre de la pista: Don Quijote de la Mancha
Álbum: Cap‚tulo 01
Artista: Estudios Roma
Año: 2005
Comentarios: www.estudiosroma.com
Género: Voz

Se han intercambiado los campos de la pista y del álbum de manera que todas las pistas tienen el mismo nombre y pertenecen a 126 álbumes diferentes (con su acento mal puesto incluido). Nótese que, sin embargo, la propaganda aparece bien repartida. Ahora resulta que el artista no fue Miguel de Cervantes, sino Estudios Roma. Qué cosas.

Éste es el típico ejemplo de cómo cagarla al final un proyecto por falta de interés. Se ha hecho la lectura del libro y la grabación de manera correcta. Un esfuerzo enorme. Y, después, en la parte más fácil (la distribución), se han colgado 126 ficheros en una página web, TODOS erróneamente etiquetados y que el usuario se apañe.

El usuario ya hará sus 126 clicks para descargarse los ficheros, renombrará los ficheros para quitar el acento maldito  y arreglará las etiquetas de las susodichas 126 pistas para que sus programas de gestión de música no se hagan la picha un lío.

¿Tanto costaba hacer ese minúsculo esfuerzo final para dejar el tema bien cerrado? Una prueba más de que jamás se piensa en el usuario. Ni el técnico chapucero que quiere irse a casa, ni la empresa privada que recibe el dinero fresco de la subvención, ni el político que se cuelga las medallas por este proyecto cultural.

¿Es esto ver las cosas de una manera negativa? No. Es ver la realidad. No sirve de nada encomiar el enorme esfuerzo realizado y el dinero invertido en "difusión cultural" cuando la propia forma de difundirlo es la barrera más importante para disfrutar de esa cultura.

28 December 2009

La elegancia como paradigma de la programación


Tras algún tiempo en esto creo que todos, empezando por uno mismo y siguiendo por universidades y empresas, debemos hacer un esfuerzo en evolucionar tal y como lo hacen los lenguajes de programación. En no quedarnos anclados con las tecnologías y lenguajes por mucho que las dominemos.

Sólo se aprende mediante ejemplos sencillos pero reales. Esto es muy importante. Sólo ante un problema real uno aguza el ingenio y el aprendizaje. El por qué hay problemas donde no debería es otro asunto.


Ejemplo: El Quijote en audiolibro

Queremos escuchar el Quijote en audiolibro. Buscamos en Google y nos encontramos con la agradable sorpresa de que el Gobierno de Aragón ha hecho un gran esfuerzo en grabarlo y dejarlo disponible. Sin embargo, el panorama es el siguiente: A una persona muy astuta le ha dado por colgarlo en una página web por capítulos separados. Son nada menos que 52 para la primera parte y 74 para la segunda. La mayor parte de la gente querrá escucharlo en su mp3 y no hay forma (aparente, a primera vista) de bajárselos con un sólo clic. Sólo necesitamos la friolera de ¡126 clics!

Un grandísmo esfuerzo (lectura, grabación, difusión...) que nos deja con mal sabor de boca por no tener un poco de cuidado al final, en la fase más sencilla. Algo muy típico en los proyectos. ¿Cómo no se les ocurriría poner un sólo fichero .zip o similar (o unos pocos) para descargarlo?


Soluciones

Para el usuario medio, esto supone un verdadero infierno. Tendría que tragarse los 126 clicks o buscar algún gestor de descargas medianamente inteligente. Para colmo, el directorio web está sin permisos de listar, de manera que no se puede hacer un "descárgame todos los ficheros (o todos los mp3) del directorio".

La solución para el iniciado es obvia: hacerse un programa para bajar los ficheros modificando la pequeña parte del nombre que cambia tras una URL común: (URL#Capítulo-01.mp3, URL#Capítulo-02.mp3, etc...).

Nótese el peñazo que supone realizar una tarea tan simple con los lenguajes más difundidos como Java o C#. Bucle, incremento de las cadenas, función para descargar un fichero, etc... Es un ejercicio interesante comprobar lo complicado y largo que puede resultar una tarea tan trivial con estos lenguajes. Tanto que hasta desanima.

Sin embargo compruébese una posible manera de descargarse la primera parte en un sistema con ruby y wget (nótese que la URL es fea de narices gracias a que el mismo experto anterior ha utilizado espacios y acentos en el nombre de los ficheros):

("01".."52").each {|i| `wget http://www.aularagon.org/files/espa/elquijote/p1/Parte%201%20Cap%C3%ADtulo-#{i}.mp3`}

La verdad es que la elegancia, expresividad e integración con el sistema de este lenguaje es bestial. Hace falta haber hecho el ejercicio de escribir un programa equivalente en otros lenguajes para darse cuenta del avance que un lenguaje como éste supone a la hora de pensar.

Sólo mediante su uso en problemas reales o ejercicios estimulantes es como se descubre todo su potencial. Una vez descubierto, es difícil argumentar el uso de cualquier otro lenguaje (por muy difundido que esté) para realizar la misma tarea.

No creo que haya excusa para permanecer ajenos a estos lenguajes y emplearlos para crear soluciones de todo tipo, empresariales incluidas. Y menos sabiendo que existen cosas como jRuby.

18 December 2009

El mundo científico y el mundo ζιεντιφιχο


Cuanto más sigo de cerca el mundo tecnologico-científico, más me doy cuenta de que la mayor parte de lo que llamamos ciencia no sino la nueva religión legitimada por esta sociedad actual vacía. Y la mayor parte de los que se dedican a ella no son científicos sino clérigos o fieles, dependiendo de su posición. Es curioso porque los científicos-clérigos, supuestos conocedores de la verdad, son a su vez fieles a otros clérigos, copiando su discurso. Y así ad infinitum por la sagrada propiedad transitiva científica. A quien le interese saber más en profundidad el misticismo asociado a la ciencia, le recomiendo leer a Neil Postman y en particular su libro Technopoly: The Surrender of Culture to Technology.

Mi propósito aquí no es tan ambicioso. Sólo pretendo señalar unas pequeñas diferencias entre lo que es ciencia y lo que no lo es, por mucho que así se la denomine. La relación de la ciencia con la religión del primer párrafo no es gratuita. Ahora mismo es muy difícil distinguir al mundo científico serio de aquel que ha sido atacado viralmente por la cancamusa (nótese el magnífico empleo de meta-cancamusa). Denominaremos a este segundo mundo, mediocre y extendido, el mundo ζιεντιφιχο. El por qué de su la notación griega es obvio para los más iniciados. Para quien no, lo entenderá más adelante.


Ciencia y Método Científico

El mundo científico se rige por unos conceptos bien claros. En la Wikipedia encontramos una definición de ciencia: "el conjunto de conocimientos obtenidos mediante la observación y el razonamiento, sistemáticamente estructurados y de los que se deducen principios y leyes generales".

Leamos qué propone Descartes en su Discurso del método:
  1. “El primero, no admitir jamás cosa alguna como verdadera sin haber conocido con evidencia que así era."
  2. “El segundo, en dividir cada una de las dificultades que examinare, en tantas partes fuere posible y en cuantas requiriese su mejor solución.”
  3. “El tercero, en conducir con orden mis pensamientos, empezando por los objetos más simples y más fáciles de conocer, para ascender poco a poco, gradualmente, hasta el conocimiento de los más compuestos, e incluso suponiendo un orden entre los que no se preceden naturalmente"
  4. “Y el último, en hacer en todo recuentos tan integrales y unas revisiones tan generales, que llegase a estar seguro de no omitir nada."
Estos pasos fundamentales son la base del método científico, que pretende protegernos de la subjetividad en el conocimiento, según Wikipedia. La base es muy, muy sencilla. Se basa en el escepticismo. El juicio o la intuición del experto pueden servir de guía, nadie lo niega, pero para ello el experto tiene que serlo de verdad.

Un enlace muy interesante del método científico para todos los públicos está en el blog "Ecos del futuro".


El Mundo ζιεντιφιχο

¿Qué encontramos en los ámbitos científicos? Quien trabaja en ellos, lo sabe. He aquí algunas frases habituales en el mundo ζιεντιφιχο, normalmente emitidas del maestro al discípulo:
  1. "Tienes que tener fe en lo que te digo"
  2. "Tienes que creerte tu trabajo o jamás irás a ninguna parte"
  3. "Hay muchas publicaciones sobre "x", así que esto tiene que ser el futuro"
  4. "Mi colega "y" está trabajando en esto y me ha dicho que le da buenos resultados"
En la vida es difícil apartar los temas personales, la objetividad, las emociones. Pero en la ciencia es necesario. Y no es malo ni bueno. Es simplemente necesario.

Dejo aquí algunas reflexiones:
  1. No se puede manipular al investigador con emociones, modas o convicciones injustificadas o no se construirá ciencia.
  2. No se pueden colgar resultados en páginas web que no funcionan.
  3. No se pueden dejar experimentos que no se puedan reproducir.
  4. La ciencia no se puede basar en una cuestión de confianza. En algún momento hay que parar, pero se ha de tener un mínimo de criterio o no se hará buena ciencia.
El mundo ζιεντιφιχο, sin embargo, es cada vez menos exigente en estos aspectos. Podemos esperarlo en otros campos, pero... ¿en el científico?. Todos los escenarios descritos en los puntos anteriores son más que habituales.

Una técnica habitual es la ofuscación. ¿Alguna vez te has preguntado por qué se utilizan letras griegas y símbolos que marean sólo de mirarlos, pudiendo utilizar otras notaciones alternativas o incluso frases exactamente igual de descriptivas y precisas? Seré osado y responderé a esa pregunta: (i) para impresionar y dar un toque de pedantería, (ii) para confundir y despistar al personal, (iii) para llenar páginas, y (iv) para evitar que se lea (y critique) el trabajo.

Para decir de manera aislada que "la letra l aparece en la palabra p", por ejemplo para explicar un algoritmo en un campo no matemático, no hace falta utilizar lógica ni teoría de conjuntos. En la mayoría de artículos, en cambio, encontrarás farragosas demostraciones que, cuando tienes el tiempo y ganas de seguirlas, son realmente una chorrada para la que se han utilizado dos páginas. Utilizar matemáticas o letras griegas cuando no se debe no convierte a algo en ciencia, más bien lo ofusca. Pero quizá es ése el propósito, puesto que cosas demasiado obvias, simples o estúpidas sin ofuscar, pueden resultar vergonzosas para el autor. En cambio, si pones dificultades, es más difícil que te pillen.

Otra técnica habitual es la falta de originalidad. Esto se traduce en homoegeneidad. ¿Quién dijo que la ciencia y la creatividad estén reñidas? Cuando uno ve que artículo tras artículo todos siguen exactamente la misma estructura, pero con sutiles variaciones, como los deberes copiados del colegio, se aburre a más no poder. Ya puestos, las revistas de investigación podrían incluir en sus plantillas no sólo el formato sino la estructura a seguir. Eso al menos daría un toque estético a la revista.

¿Qué pensaría Descartes de todo esto, él que buscaba lo "claro y distinto", cuando hay tanta divulgación ofuscada e igual?


Problemas

Desde mi punto de vista, algunos de los problemas que han llevado a esta situación son los siguientes:
  1. La investigación la hacen los becarios. Esto es así en nuestro tradicional esquema ibérico. Lo digo alto y claro. Los jefes consiguen la financiación y los contactos, pero la investigación la hacen los becarios. Es la forma que aquí tenemos establecida. Un becario normalmente sale de la facultad sin tener ni idea. No sólo de conocimientos, sino especialmente de ciencia. Después se le exige que investigue en muchos casos sin ningún tipo de guía y presionado por su jefe, que le obliga a escribir artículos científicos para conferencias cuando todavía no tiene material suficiente ni apenas sabe qué es la ciencia. Es decir, que juegue a ser experto cuando en realidad es un completo novato. Como es obvio, los jefes no tienen ni remota idea de cómo funciona el aprendizaje. Una persona con esa forma de trabajar jamás llegará a ser un experto. Sin embargo, logrará igualmente conseguir un doctorado y ocupar una posición de jefe unos años después. Si no ha espabilado por el camino, la situación se repetirá ad infinitum.
  2. Mucha investigación se hace por méritos. Méritos económicos (sexenios de investigación), para disfrutar de viajes gratuitos al extranjero, por mera envidia con otros profesores o para cubrir alguna falta de autoestima que no alcanzo a comprender. La buena ciencia jamás sale a la luz si no es por verdadera pasión. Los mercenarios de la ciencia jamás harán ciencia.
  3. Muchas publicaciones son un negocio. Lo sabe todo el mundo, pero es lo que hay. Muchas revistas y congresos se han mercantilizado hasta unos límites ridículos. Pagas por obtener méritos. Salen hasta debajo de las piedras. Y por eso en la página web lo primero que ponen es un lugar exótico donde se celebrará la conferencia y una foto de un bonito paisaje. ¿No tendría más sentido celebrar reuniones científicas, en lugares científicos? No sé, en Cambridge, Oxford, Berkeley, Boston, Stanford...Pues no, suelen ser en las islas griegas, Canarias, Madeira... La calidad de estos congresos y publicaciones es más que cuestionable.

Como en todas las profesiones, existen sólo tres o cuatro lugares en el mundo donde se hace buena ciencia. Y algunos ni siquiera son universidades. Y recuerdo al mundo académico que todo aquello que no puede comprobarse, que no tiene utilidad, que no tiene algún propósito... no es ciencia. Ninguna buena ciencia ha salido porque alguien se sentaba en su despacho y decía: "¿qué hago ahora? Venga, a ver si me sale algo de ciencia". Si no hay inquietud no hay ciencia.

Ni se hace avanzar al conocimiento, ni al mundo. Lo único que se consigue con esta forma de hacer ciencia es que la gente que quiere hacer buena ciencia y no puede, tenga que abandonar por no querer formar parte de toda esa patraña.

Las soluciones, para otro día.

03 December 2009

Cloro


¿Quién no ha sufrido los efectos del cloro en una piscina? Puede respirarse con sólo acercarse a las instalaciones. Algunos incluso han dejado de visitarlas por este motivo. Simplemente no merece la pena jugársela.

Pero hay algo a lo que es mucho más difícil escapar: durante el invierno, especialmente en lugares fríos, solemos elevar la temperatura del agua durante nuestros ratos en la ducha, formándose muchísimo vapor. También solemos alargar el rato que estamos en ella. Hace tiempo que mucha gente se viene quejando de sequedad en la piel, escozor de ojos e incluso tos durante la ducha, en especial en estas épocas. Día tras día. ¿A alguien le parece normal que a uno se le "reseque" la piel tras estar bajo agua y vapor? A mucha gente, sí. De paso aprovecha para darse crema hidratante. Cuirosa paradoja. A mí desde luego, no me parece normal.

Hace tiempo me dediqué a investigar el tema, aunque ya no sé de dónde saqué bastante del material que encontré. Algunas empresas serias de tratamiento de agua explican que la razón es el cloro, las sustancias con las que se combina y que es especialmente tóxico en forma de vapor. Desafortunadamente, al buscar este tipo de información aparecen mezcladas empresas de tratamiento de agua con otras de pseudociencia que quieren, de paso, vendernos piedras preciosas medicinales y demás parafernalia. Supongo que eso sirve, en parte, de justificación para restar credibilidad a las empresas serias o tratar este tema como menor.

La controversia es la de siempre. Por una parte la industria química argumenta que el cloro es baratísimo de producir y, bien dosificado, muy seguro. Gracias a ello, ha permitido dotar de agua potable a la población. Poco menos que debemos estar agradecidos por ello, cuando el hombre ha sobrevivido milenios sin el cloro. Los nuevos salvadores; ¿no es demasiado repetitivo ya ese discurso? Hay que ser un poco más originales. Lo emplean las multinaciones para justificar los pesticidas, los transgénicos y cualquier cosa con la que haya serias dudas.

Las empresas del sector del cloro incluso han abierto una web informativa acerca de las bondades del cloro, donde uno se queda más nervioso y preocupado que antes. Un pequeño ejemplo:

¿Por qué al bañarme me pican los ojos o me salen ronchas en la piel?
Eso no ocurre si el agua de la piscina ha sido correctamente tratada y desinfectada, y los bañistas no sentirían ninguna de esas molestias si no aportaran al agua contaminantes procedentes del sudor, orina, saliva, piel muerta y productos cosméticos como cremas, lacas, perfumes y desodorantes.

Es una curiosa respuesta responder con "eso no ocurre si..." cuando se pregunta por qué ocurre algo. Además, no culpabiliza al cloro en sí, sino a que se combina con otros elementos por culpa de... ¡los bañistas!. Sigue sin dar explicación al problema: ronchas en la piel y ojos rojos.

He aquí algunos datos y enlaces más para el que tenga interés en empezar a buscar. Se soprenderá de ver que el cloro no sólo causa pequeñas irritaciones sino que hay evidencia científica de cosas mucho peores:


No quería finalizar sin recordar que el cloro ha sido utilizado como arma y que, por ejemplo, el Departamento de Salud del Estado de Nueva York tiene un documento muy interesante titulado "The Facts about Chlorine" (Hechos sobre el Cloro) en su apartado de terrorísmo químico. En él se destacan algunos de los síntomas de exponerse al vapor de cloro.

He aquí algunos de los que cita:
  • Irritación de las vías respiratorias
  • Tos
  • Irritación de ojos
  • Irritación de piel
Cada uno que saque sus propias conclusiones.

¿Alguien ha probado a ducharse con agua sin cloro o filtrada? Recomiendo que hagáis la prueba y comparéis el resultado en piel, ojos y cabello. ¿No hay otras alternativas de potabilización? Como era de esperar, sí las hay.

Quizá una mejor tratamiento del agua corriente evitaría no sólo ese efecto pernicioso sobre nuestra salud a la hora de ducharnos, sino que podríamos beber agua del grifo sin que se nos quitaran las ganas. Es vergonzoso que en pleno siglo XXI se siga tratando el agua corriente echando una pastilla de cloro.

Eso sí, el palo para la industria sería grande, y no sólo para la del cloro: agua embotellada, cremas hidratantes, acondicionadores de pelo, suavizantes... no tendrían demasiado sentido.

¿Tendrá algo que ver? No creo en la teoría de las conspiraciones, pero sí en cómo se hacen determinados negocios.