running apps

De un tiempo a esta parte, he estado probando distintas aplicaciones para el tracking de mis salidas a correr. Hay un montón, la mayoría de ellas con versiones gratuitas y de pago y con webs que aportan más información que tienen también suscripciones de pago.

Las aplicaciones que he utilizado son runkeeper, endomondo y runtastic. Runkeeper la venía utilizando en android, y al pasarme a iOS he probado tanto runkeeper como el resto. Todas ellas permiten la conexión de un pulsómetro e incorporan los datos recogidos por éste en la carrera.

Estas son mis impresiones sobre cada una de ellas, como digo, después de haberlas usado durante varios meses. Me baso en las versiones de iOS aunque no creo que varíen mucho respecto a Android. Sigue leyendo

la filosofía de python

Una curiosidad del intérprete de python, si abres un intérprete interactivo y tecleas

import this

recibirás los principios por los que se rige el lenguaje:

The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one– and preferably only one –obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it’s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea — let’s do more of those!

ritmo y zonas cardíacas

Una buena forma de medir el esfuerzo que realizamos cuando estamos entrenando, principalmente en actividades aeróbicas, es conocer nuestras pulsaciones por minuto. Nos dan una información bastante buena de lo que está pasando en nuestro cuerpo.

En general, se pueden distinguir 5 zonas, cuyos umbrales varían de persona en función de su edad, constitución, peso, etc. Vamos a describir cada una de ellas:

  • 130-140: Este ritmo podría corresponderse con una actividad tranquila, por ejemplo el calentamiento. Si estás en baja forma o hace tiempo que no entrenas, esta zona está bien para empezar.
  • 141-151: En esta zona, el corazón facilita a los músculos el oxígeno que necesitan para la actividad. En este ritmo se queman grasas y se fortalece el corazón.
  • 152-163: En este ritmo, sigues quemando grasas y mejoras la capacidad cardiovascular. No obstante te acercas al umbral anaeróbico con lo que ganarás fuerza muslcular.
  • 163-173: En esta zona, tu corazón no puede facilitar el oxígeno necesario a tus músculos. Es lo que se denomina la zona anaeróbica, en la que el cuerpo es incapaz de eliminar el ácido láctico de los músculos ejercitados.
  • 174-185: Reservada para atletas serios. No se debería trabajar en este ritmo durante demasiado tiempo.

Python 2 o Python 3

Una de las cosas que menos me gusta de Python es la diferencia entre versiones. Se han introducido modificaciones importantes en sintaxis y módulos clave que hacen que código escrito para Python 3.x no funcione en la 2.x (para más detalle ver este post de Guido van Rossum, creador del lenguaje). Por tanto, una de las primeras tareas antes de empezar a desarrollar es decidir qué versión se va a usar. Y aquí la clave no está en qué características del lenguaje vamos a utilizar, sino qué librerías y frameworks vamos a necesitar.

Por ejemplo, resulta dramático que los bindings de mysql no estén soportados en python3. Existe un módulo para utilizar estas bases de datos en Python 3 (ver PyMySQL) pero si has venido utilizando el módulo de toda la vida, el  MySQL-python, tendrás que quedarte en la 2.7.

Puedes ver de un vistazo qué módulos, de los más populares, están portados a Python 3 en Python 3 Wall of Superpowers.

Sigue leyendo

noticias insólitas

Si hace tiempo decía que los del mundo today lo tenían jodido, en los últimos días los medios han subido el listón:

python conquers the universe

Python conquers the universe es un blog soberbio sobre python. Explica conceptos avanzados desde un punto de vista diferente al habitual. Así como en otros blogs o tutoriales existen ejemplos y explicaciones de sintaxis, aquí los temas que se tratan son más profundos, más en el sentido de por qué en python las cosas funcionan como funcionan.

Si lo que buscas es cómo hacer esto o aquello, no es tu blog. Si quieres aprender sobre el lenguaje, puedes invertir horas.

arregla tus subtítulos con fixyoursubs.com

En los últimos meses he estado interesado por el framework de desarrollo de aplicaciones web Django. Django está desarrollado en python, uno de los lenguajes más productivos que hay y con el que estuve trabajando hace tiempo.

Como ejercicio, me planteé hacer una aplicación web que permitiera arreglar los subtítulos de películas y series. Es normal, sobre todo cuando tienes un vídeo y sus subtítulos de distintas fuentes que estos no vayan sincronizados. Puede que los subtítulos vayan uno o dos segundos detrás o delante, lo que hace que no puedas seguir el vídeo en condiciones, sobre todo si los ves en otro idioma. fixyoursubs te permite corregir esto. Sólo tienes que subir tu fichero srt e indicar, o bien el retraso (o adelanto) del audio respecto a los subtítulos o bien indicar en qué momento deberían empezar a mostrarse los subtítulos. Con esta información, fixyoursubs te devuelve un fichero srt arreglado.

Sigue leyendo