Running – Febrero 2014

Dejamos enero tirado en la cuneta ya y proseguimos con los entrenamientos de febrero, mes especial para el running sevillano, que ha acogido en su calendario la trigésima edición (¡30 años!) de su maratón, con records tanto de la prueba (2:08:33, Kiplimo Lagat) como en participación (9000 corredores).

Mes también en el que se abre la inscripción para otros dos eventos típicos del panorama sevillano: Sevilla 10K City Run (que otros años hemos conocido como Divina Pastora), el 9 de marzo, y el circuito de carreras populares del IMD, cuya primera prueba, Nervión – San Pablo, tendrá lugar el día 30 de marzo. Ya estoy inscrito en ambas, de modo que, salvo razones de causa mayor, me espera un mes de marzo entretenido.

Continuemos con los entrenamientos del mes:

2 de febrero de 2014

El domingo es un día perfecto para una tirada larga. Sea lo que sea lo que para uno signifique esto, una vez a la semana hay que estar dispuesto a hacer más kilómetros de lo habitual. Para mí, una tirada larga es aquella que supera los 10 kilómetros, distancia típica de las pruebas en que participo. En ocasiones puntuales la supero entrenando (12, 15, o incluso más de 20 Km), pero ya me he aprendido bien que, si quiero mantener alejado el riesgo de lesión, cuantas menos veces exceda la hora corriendo, tanto más me lo agradecerán mis articulaciones.

El parque de Miraflores está entre mis favoritos del fin de semana. Muchos corredores y muchos kilómetros de circuitos posibles donde el aburrimiento no tiene cabida.

10.21Km; 59:50; 5:52/Km

8 de febrero de 2014

Sesión de trabajo en la cinta, con una pequeña vuelta de tuerca…

[(10, 0, 4), (12.2, 0, 1)] x 6

La terna significa (velocidad en kh/h, inclinación, tiempo en minutos).

Es decir, cuatro minutos a 10Km/h (6:00/Km) y uno a 12.2Km/h (4:52/Km), todo eso seis veces sin descansar. Recordemos que persigo ser capaz, algún día, de correr los 10Km en menos de 50 minutos, es decir, realizar en promedio cada kilómetro en menos de cinco minutos.

18 de febrero de 2014

No hay justificación para tantos días seguidos sin entrenar. El tremendo mal tiempo que hemos estado viviendo estas dos últimas semanas no es excusa suficiente.

Escapada al Huevo de Colón: 9.03Km; 53:29; 5:55/Km.

22 de febrero de 2014

Parque de Miraflores: 10.01 Km; 57:17; 5:43/Km.

24 de febrero de 2014

Ya se perciben los beneficios de los cambios de ritmo en la cinta. Aumento el tiempo que paso corriendo a 12Km/h sin apenas notar un mayor esfuerzo:

[(10, 0, 3:30), (12, 0, 1:30)] x 6

28 de febrero de 2014

Una mañana festiva no puede desaprovecharse, de modo que me calzo las zapatillas y me doy una escapada al río a correr:

7.01Km; 38:28; 05:29/Km

Lo que ha hecho particularemente interesante a este entrenamiento es que, en plena recta y durante un minuto, he soltado las piernas todo lo que he podido, manteniendo un ritmo medio de 4 minutos el kilómetro (15 Km/h). Breve, pero vertiginoso, adelantando incluso a algunos ciclistas. Puedo entender a quienes hablan del placer de correr rápido (nuevamente, esto es relativo).

Nos vemos en marzo.

Javier Montero Gabarró


http://elclubdelautodidacta.es/wp/2014/02/running-febrero-2014/


Puedes consultar el índice completo de artículos pertenecientes a la categoría running.


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Armonización de la escala dórica

Objetivo: presentar los acordes tríadas y tétradas que aparecen al armonizar la escala dórica.

Esta vez iremos rápido. En el artículo anterior de esta serie mostramos con todo lujo de detalles los cálculos necesarios para descubrir los acordes que surgían al armonizar la escala menor natural. Y lo hicimos excediéndonos, aplicando dos caminos diferentes que, como pudimos comprobar, conducían al mismo destino. Por un lado nos aprovechamos del hecho de que la escala menor natural no es sino un modo de la escala mayor (el eólico), por lo que sus acordes propios son exactamente los mismos que los de esta última, sólo que ordenados de modo diferente. Por otro, dedujimos las armonías agregando terceras sucesivas y nombrando los acordes resultantes según el tipo de intervalos que nos encontrábamos.

El caso que nos presenta hoy es semejante: la escala dórica es el segundo modo de la escala mayor.

Es decir, si, por ejemplo, Do mayor es:

Do mayor: C – D – E – F – G – A – B

Re dórica no es otra sino la misma comenzando por Re, el segundo grado:

Re dórica: D – E – F – G – A – B – C

La misma relación de orden sucede entre los acordes de ambas:

Armonización de Do mayor en tríadas:

C – Dm – Em – F – G – Am – B°

Armonización de Re dórica en tríadas:

Dm – Em – F – G – Am – B° – C

Armonización de Do mayor en tétradas:

Cmaj7 – Dm7 – Em7 – Fmaj7 – G7 – Am7 – Bm7(b5)

Armonización de Re dórica en tétradas:

Dm7 – Em7 – Fmaj7 – G7 – Am7 – Bm7(b5) – Cmaj7

Si no comprendes de dónde surgen estos acordes, echa un vistazo a los artículos dedicados a la armonización de la escala mayor.

Para expresar estas relaciones en términos generales, debemos recordar la fórmula de la escala dórica:

Escala dórica: 1 – 2 – b3 – 4 – 5 – 6 – b7

Recuerda que es como la escala menor natural, pero con la sexta mayor (6 en lugar de b6).

Uniendo esta fórmula a los acordes que acabamos de descubrir, obtenemos:

Armonización de la escala dórica en tríadas:

Im – IIm – bIII – IV – Vm – VI° – bVII

Armonización de la escala dórica en tétradas:

Im7 – IIm7 – bIIImaj7 – IV7 – Vm7 – VIm7(b5) – bVIImaj7

No debes obsesionarte por memorizar estas relaciones, pues la escala dórica no se armoniza con frecuencia. Lo importante es que recuerdes los mecanismos para calcularlas cuando las necesites. Si ya tienes en tu memoria los acordes propios de la escala mayor, sólo tendrás que escribirlos y volver a tomarlos desde el segundo para obtener los acordes dóricos sin esfuerzo alguno.

La siguiente escala menor que armonizaremos es la armónica. Estate atento, pues nos visitaran acordes no presentes en la armonización mayor (ni, por lo tanto, en ninguno de sus modos), que enriquecerán nuestras opciones a la hora de componer en tonalidades menores.

Javier Montero Gabarró


Armonización de la escala dórica


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Índice completo de artículos sobre armonía.

Python – Sin excepciones, what else?

Objetivo: utilización de la claúsula ELSE en la gestión de excepciones en Python.

En el artículo anterior aprendimos a capturar selectivamente excepciones y escribimos código realmente robusto que realizaba una división entera a prueba de bombas.

El programa era capaz de responder a cualquier excepción fatal. Observa las respuestas personalizadas ante una división por cero o la introducción de un valor no numérico, así como la respuesta genérica ante cualquier otra eventualidad (como el intento de abortar el programa con Ctrl-C).

while True:
    try:
        dividendo = int(input('Introduce el dividendo: '))
        divisor = int(input('Introduce el divisor: '))
        print('El cociente de la división de ambos números es', dividendo//divisor)
    except ZeroDivisionError:
        print('¡No, no, la división por cero no está permitida')
    except ValueError:
        print('¡Ojo, presta atención e introduce sólo números!')
    except:
        print('No sé qué has hecho, pero vuelve a intentarlo')

Pero ahora voy a plantearte un sencillo ejercicio. Quiero que modifiques el programa de modo que, cada vez que el código se ejecute libre de excepciones, aparezca un mensaje indicándolo.

Obviamente, lo siguiente no sirve:

while True:
    try:
        dividendo = int(input('Introduce el dividendo: '))
        divisor = int(input('Introduce el divisor: '))
        print('El cociente de la división de ambos números es', dividendo//divisor)
    except ZeroDivisionError:
        print('¡No, no, la división por cero no está permitida')
    except ValueError:
        print('¡Ojo, presta atención e introduce sólo números!')
    except:
        print('No sé qué has hecho, pero vuelve a intentarlo')
    print("Todo ha ido como la seda")

El mensaje aparece en cada iteración, haya o no sucedido una excepción:

>>> 
Introduce el dividendo: 10
Introduce el divisor: 4
El cociente de la división de ambos números es 2
Todo ha ido como la seda
Introduce el dividendo: 10
Introduce el divisor: 0
¡No, no, la división por cero no está permitida
Todo ha ido como la seda
Introduce el dividendo: 

Es un problema fácil de resolver, no obstante. Podemos hacer uso de una variable booleana para alertar de que se ha producido una excepción:

while True:
    try:
        sin_excepciones = True
        dividendo = int(input('Introduce el dividendo: '))
        divisor = int(input('Introduce el divisor: '))
        print('El cociente de la división de ambos números es', dividendo//divisor)
    except ZeroDivisionError:
        print('¡No, no, la división por cero no está permitida')
        sin_excepciones = False
    except ValueError:
        print('¡Ojo, presta atención e introduce sólo números!')
        sin_excepciones = False
    except:
        print('No sé qué has hecho, pero vuelve a intentarlo')
        sin_excepciones = False
    if sin_excepciones:
        print("Todo ha ido como la seda")

Eso es lo que haríamos en otros lenguajes como Java o C++ (pero no en C, que ni siquiera maneja excepciones). Como vemos, ahora el mensaje aparece exclusivamente sólo si el código ha transcurrido libre de tropiezos:

>>> 
Introduce el dividendo: 10
Introduce el divisor: 0
¡No, no, la división por cero no está permitida
Introduce el dividendo: 10
Introduce el divisor: 4
El cociente de la división de ambos números es 2
Todo ha ido como la seda
Introduce el dividendo: 

Pero esto no es Java ni C++, sino Python…

La sentencia TRY admite una claúsula ELSE para introducir en ella el código que queremos que se ejecute siempre y cuando no haya sucedido ninguna excepción.

while True:
    try:
        dividendo = int(input('Introduce el dividendo: '))
        divisor = int(input('Introduce el divisor: '))
        print('El cociente de la división de ambos números es', dividendo//divisor)
    except ZeroDivisionError:
        print('¡No, no, la división por cero no está permitida')
    except ValueError:
        print('¡Ojo, presta atención e introduce sólo números!')
    except:
        print('No sé qué has hecho, pero vuelve a intentarlo')
    else:
        print("Todo ha ido como la seda")

Y ahora sí…

>>> 
Introduce el dividendo: 10
Introduce el divisor: 0
¡No, no, la división por cero no está permitida
Introduce el dividendo: 10
Introduce el divisor: 4
El cociente de la división de ambos números es 2
Todo ha ido como la seda
Introduce el dividendo: 

Así de sencillo.

Seguro que George Clooney diría, si supiera programar: Python, what else?

Javier Montero Gabarró


Python – Sin excepciones, what else?


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Consulta el índice completo de artículos relacionados con Python.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies