jueves, 20 de junio de 2013

Libros de texto "OpenSource"

OpenStax College es una organización que ofrece libros de texto gratuitos (en inglés) con una calidad poco habitual. En estos momentos tienen varios libros de biología y uno de física que pueden descargarse de forma totalmente gratuita pero se sugiere una donación para ayuda a mantener la organización cuyos únicos ingresos provienen de estas, ya sea de particulares o fundaciones.

domingo, 23 de septiembre de 2012

La espiral de Arquímedes, de nuevo

Hace tiempo escribí una entrada donde dibujaba la espiral de Arquímedes con un pequeño programa en Python.

Ahora, como parte de una prueba para un programa de Khan Academy he vuelto a rehacer el mismo programa en Javascript utilizando el framework que Khan Academy proporciona.

Tiene casi la misma funcionalidad y funciona en cualquier navegador aunque el "feeling" no es el mismo. Espero con el tiempo sustituir los símbolos para incrementar y disminuir valores por unas barras deslizantes que proporcionen un cambio más suave de los valores.

Mientras tanto aquí esta el enlace al programa (y su código) y una imagen del resultado final.


martes, 26 de abril de 2011

Una frase de Melville

Una frase muy interesante de Herman Melville, el autor de Moby Dick.

De todas las suposiciones absurdas de la humanidad, nada supera las criticas a los hábitos de los pobres hechas por quienes tienen buena casa, buen abrigo y buen alimento.

O en su idioma original:

Of all the preposterous assumptions of humanity over humanity, nothing exceeds most of the criticisms made on the habits of the poor by the well-housed, well-warmed, and well-fed.

miércoles, 13 de abril de 2011

Espiral de Arquímedes

Probando nuevas cosas en Python (en este caso la interfaz de usuario Tcl/Tk a través del binding Tkinter) he realizado una pequeña aplicación que originalmente mostraba la espiral de Arquímedes pero que posteriormente he modificado para incluir un exponente al angulo de forma que permita espirales "ligeramente" logarítmicas.

Este es el resultado básico de la aplicación:


Quien este interesado puede descargarse la aplicación aquí. Para ejecutarla solo es necesario el siguiente comando:

python arquimedes.py

sábado, 2 de abril de 2011

Ya veras ya !!!!!

Revisando mi correo este fin de semana he encontrado una referencia a un comentario en un blog que había guardado por interesante. El blog se llama Desde el más allá (más o menos) y trata de desmitificar los temas paranormales que tanta gente, con una ignorancia a veces cercana a lo ridiculo, se cree a pies juntillas, sin el más mínimo análisis racional. El autor del blog tiene sus días buenos y sus días malos, pero entre los comentarios siempre suelen haber alguna perla y en este caso en la entrada Marcianos en la ONU nos encontramos el siguiente comentario, escrito por alguien identificado como pseudoprofeta, que resume a la perfección la actitud ante lo desconocido de la mayor parte de los creyentes en lo paranormal:


Es sorprendente que cuanto más avanza la ciencia, más información tenemos, más Internet, más Wikiedia, cada vez es más atractiva la ignorancia. Lo importante no es la Ciencia, que nos da la aeronaútica, La telefonía móvil, los satelites, la medicina......pero, y la ignorancia !!!??? La ignorancia nos da algo muchisimo mejor nos da la expresión: 
....YA, VERAS YA !!!!! tú riete pero.... 

Y en esa bonita frase tenemos el conjunto completo de todos los logros obtenidos a nivel mundial y a lo largo de siglos de ufologías, misteriologias y pseudociencias... que bonita es la ignorancia!!!

Todo el crédito para pseudoprofeta por su brillante resumen.

jueves, 21 de octubre de 2010

Plantillas de sustitución

Últimamente he necesitado crear distintos correos electrónicos con formato HTML a partir de una serie de datos extraídos de una base de datos, incluyendo cabeceras y múltiples detalles. He realizado la tarea en C# y por razones practicas (sobre todo la fecha de entrega de la aplicación) la composición del correo se realiza dentro del ejecutable.

Ahora que la aplicación esta funcionando he decidido mejorar el sistema con una gestión del formateo del mensaje a través de plantillas. Después de investigar un poco encontré StringTemplate, un motor de plantillas de texto muy potente pero excesivamente complicado para mis limitados requerimientos.

Dado que estoy aprendiendo Python decidí implementar un pequeño script que permitiese formatear un texto en base al contenido de un objeto. El resultado es template.py, mi primer script útil en Python. Es infinitamente menos potente que StringTemplate pero también muchísimo más sencillo de utilizar.

Puede llamarse desde la linea de comando como:

python template.py sample.txt
"'{'key1': value1, 'key2': value2, ...}'"

donde sample.txt es el archivo que define la plantilla y el segundo argumento es el diccionario que proporcionará los datos para sustituir en la plantilla. También puede utilizarse desde otro script importándolo y utilizando un código similar a este:


plantilla = Template('sample.txt')
mensaje = plantilla.exec(data)
print(mensaje)

y data será el diccionario de datos. Se permiten anidar diccionarios para incluir los detalles.

Finalmente el archivo de plantilla (sample.txt) tiene un formato como el siguiente:


<html>
<body>
Nombre: [%Nombre%]
Correo: [%Email%]

<table>
<tr><td>Concepto</td><td>PVP</td></tr>

[$Linea$]
<tr><td>[%Concepto%]</td><td[%PVP%]<>/td></tr>
[#Linea#]

</table>
</body>
</html>

Muy simple y fácil de entender. Los elementos entre los símbolos [% %] son las claves del diccionario que se utilizarán para reemplazar por los valores y los símbolos [$ $] y [# #] marcan el inicio el fin, respectivamente de un detalle (un elemento del diccionario, llamado Linea en este caso, que contiene otro diccionario para los valores).

En fin, a pesar de su sencillez a mi me resulta muy útil y si alguien lo necesita puede utilizarlo sin ninguna restricción y aunque es obvio, sin ninguna garantía. Eso si, se agradece cualquier comentario para su mejora o notificación sobre errores. Y que se mantenga el nombre del autor si se utiliza de alguna forma sería de agradecer.

martes, 3 de noviembre de 2009

El enigma de Fermat

Acabo de terminar el libro El enigma de Fermat de Simon Singh. Un maravilloso libro con poco más de 300 páginas donde, como su título deja intuir, se habla sobre el último teorema de Fermat.


La mayor parte de los libros donde se menciona el teorema suelen centrarse en Fermat y en los intentos de resolución posteriores deteniéndose habitualmente a finales del siglo XIX o, como mucho, a mediados del XX, momento en que las matemáticas ya se vuelven demasiado abstractas.

Simon Singh, en cambio, nos lleva desde el mismo origen intelectual del problema (el teorema de Pitágoras) hasta la solución proporcionada por Andrew Wiles en 1995. Siempre con todo lujo de detalles sobre quienes participaron en su resolución sin complicar, en ningún punto, el acceso al lector no matemático.

Como ejemplo podemos poner el caso de la conjetura de Taniyama-Shimura (hoy teorema) que Wiles demostró. Incluso para aquellos que desconocen lo que es una ecuación eliptica y los muchos más que no sabemos que son las formas modulares, Singh deja claro en todo momento que era lo que Wiles estaba intentado realizar.

El libro incluye apéndices con demostraciones de varios problemas mencionados en el libro. Todas estas demostraciones son muy sencillas (y habituales en muchos textos) y podrán satisfacer incluso a aquellos sin inclinaciones matemáticas.

Un libro para conservar cerca y ojear de vez en cuando.