¿Porqué corremos?

Martes, 27 de mayo de 2014

Ha pasado mucho tiempo desde que escribí la última actualización a esta bitácora. Hace mucho tiempo atrás decidí que mis prioridades son otras y por desgracia (o fortuna, depende a quien le pregunte) no he escrito con mucha frecuencia.

Pero hay un tema recurrente el cual me ha tocado la puerta de varias maneras y al cual creo nunca le he prestado la debida atención: ¿Porqué corremos?

 

Lyme disease research 5K in Cove Park, Stamford CTAlgunas veces lo hacemos para dar el ejemplo. Y muchas veces nosotros somos quienes aprendemos algo

Hace ya unas semanas atrás corrí un 5K, el “Lyme Disease Research 5K“. Es una carrera pequeña pero con un motivo enorme, el prevenir y educar la gente sobre esta terrible enfermedad, la cual es muy común en el estado de Connecticut y para la cual no hay pruebas confiables que la detecten.

Mi hijo Sebastian, corrió media milla junto con otros niños. El ya estaba advertido que su papá (yo) iba a correr 5 kilómetros pero que el sólo tenia que correr media milla (si usted va a una pista de carreras, eso es 2 vueltas o 800 metros aproximadamente). Nosotros ya habíamos practicado previamente corriendo una vez en la pista, mientras yo le explicaba como no debía salir muy rápido pero que poco a poco acelerara su velocidad hasta que terminara corriendo con todo.

Si, le dije hasta el termino correcto en Ingles, haz un “negative split“.

El no estaba muy convencido, de hecho lo hizo casi a regañadientes ya que no entendía el propósito de correr por correr media milla. Yo me las ingenie para venderle la idea de correr un rato para después ir a hacer algo que al el le gustara más.

Lyme disease research 5K in Cove Park, Stamford CT¿Que lo mueve a usted a correr? (5K Lyme disease research);

En fin, el día de la carrera llegó y yo a duras penas logré mejorar mi tiempo personal en 5 kilómetros; Una hora más tarde el estaba corriendo junto con otros niños, la mayoría de ellos más altos y maduros que Sebastian, manteniendo su ritmo justo en medio del grupo. A medida que se acercaban más y más a la meta pude ver como aceleraba su paso y cuando faltaba un cuarto de la distancia por recorrer el estaba corriendo a toda velocidad, seguido de cerca por un nuevo amigo que hizo mientras esperaba su turno para correr. Y luego en un momento el estaba al frente de todo el mundo, ganando distancia rápidamente…

Esta demás decir que me puse nervioso cuando vi que su cara reflejaba síntomas de agotamiento. Sin embargo vi algo más allí, una chispa de competitividad, de propósito, determinación.

En aquel momento me di cuenta que Sebastian habia cruzado una barrera que muchos adultos ni siquiera se atreven a rozar, fué de salir de su zona de comodidad; Como buen papa moderado empecé a gritarle que ya le faltaba poco y que no aflojara, ante la mirada atónita de algunos de los papas que estaban en el sito.

Gano y termino su carrera, así de rápido. Y mucho más rápido se fué  a celebrar con su hermana y su nuevo amigo.

Correr es un acto muy intimo y público a la vez; Algunos lo hacen para sentirse libres y para ver hasta donde pueden llegar, como nos dice Ed Ayres en su libro “The Longest Race“. En el Ed nos explica como correr es algo implícito del ser humano, y de como debemos buscar en nuestras raíces para mantener un contacto sano con nuestro entorno y en especial con la naturaleza. Otros en cambio lo hacen para explorarse más a si mismos como nos muestra Haruki Murakami en “What I Talk About When I talk Aboit running“. Este último libro me gusto mucho ya que como corredor me identifique con muchas cosas que el describe en sus carreras y experiencias.

De una u otra manera, correr es un acto natural y depende de cada quien buscarle un propósito. O quizas el propósito de correr es de por si suficiente y nosotros lo adornamos para justificar el tiempo que le dedicamos.

Ya para finalizar, si tienen algo de dinero y la inclinación entonces envíen sus donativos a lymeresearchalliance.org/. Es una buena causa y no hay nada mejor que gente sana.

Hasta el próximo escrito, prometo no tardarme tanto.

 

correr, kodegeek, vida sana , , , , ,

Ahora soy un maratonista (II), ¡aunque dolió un mundo!

Lunes, 4 de noviembre de 2013
Comentarios desactivados

Finisher medal and BIB. Finish time: 04:27:18
Me gane esta medalla con esfuerzo, esta carrera fué una prueba de improvisación ante los obstáculos.

 

Un día después de terminar el maratón más famoso y grande de la tierra (participaron y terminaron más de 50K personas). Me duelen las rodillas pero sin embargo me siento mejor de lo que esperaba.

Me da mucha pereza escribir paso a paso lo que ocurrió durante la carrera, esas son memorias que voy a llevar en mi cabeza hasta que me muera. Así que les voy a colocar un resumen de lo que  aconteció:

Today I was in route to finish my first (and most likely last) marathon at 03:30:00; Everything was going according to plan until the end of mile 21 came up and I had a cramp on my left quadricep, my right hamstring and my right arm.

My body decided to shutdown. Just like that.

While I was in the ground, I was told that I may have to leave the race; That was enough for me to say that I promised my wife and my 2 kids that I will finish the darn thing, even if I had to crawl.

And I got up. And walked away from the race organizer. And then ran a little bit until I felt another cramp. And then walked some more…

Doing a combination of running and walking I managed to reach the finish line (running, slow but running) and to keep my promise.

I’m really thankful for the huge support of Veronica Barrios, Alexa and Sebastian. Without them I could not have even started this challenge.

Also I have to thanks my friend Iliana Zuniga for her tips before the race, this is a journey that proved though but I feel that we both nailed. And also the love and support of ALL of you who called me or send me text messages before or after the race.

Love you all!

-José Vicente Núñez Zuleta

El desempeño en números

La mejor forma de describir mi desempeño es con una gráfica; Allí se puede ver que comencé a perder fuerza en la millas 18 pero fué en la 21 en donde los calambres (por falta de buena hidratación) hicieron lo suyo:

Track My Runners
Mi velocidad durante todo el recorrido. Y si, me comparo con Pamela Anderson, sólo por diversión

Y para quien no le gustan los gráficos:
Unofficial NYC finish time
Quede en el percentil %47 o dentro de los primero 32K+ corredores en cruzar la meta. Eso me valio aparecer en la sección impresa del New York Times :-)

¿Como recuperarse de un calambre durante un maratón?

Untitled
Todo el mundo tiene una motivación. Este letrero me lo escribió mi hijo Sebastian con las 4 personas más importantes de mi vida

Una vez que estas metido en ese hueco es difícil salirse; Sin embargo yo hice lo siguiente:

  • No hay que desesperarse, no hay que rendirse. Yo mentalmente calculé que me faltaban 5 millas más (lo que se traduce en 1 hora más de carrera o más). Sin embargo ya llevaba 21 millas resueltas, además de que fallarle así a mis niños y esposa no era una opción así que ¡había que continuar! El maratón es una lucha mental después de la milla 20 y eso es algo que se práctica durante el entrenamiento. Repetir una frase una y otra vez.
  • Me levanté lentamente, me despedí del asistente de carreras y camine por una milla hasta la próxima estación de hidratación. Allí tomé bastante Gatorade (para reponer el potasio y el sodio, la causa de mi calambre) y un gel. También me estire un poco
  • A partir de allí pude volver a correr / caminar pero fué mucho más difícil porque el daño ya estaba hecho. Pero al menos estaba contenido

Mi error fué hidratarme cada 3 millas en vez de hacerlo cada milla después de la milla 3. Es algo que sólo se aprende con la práctica ya que cada persona es distinta.

Fotos, más fotos

Les dejo un enlace con todas las fotos, ellas capturan múltiples momentos antes, durante y después del maratón. Fué una experiencia única que quizas repita algún día.

correr, kodegeek , ,

¿Puedo correr tan rápido como un maratonista profesional?

Viernes, 1 de noviembre de 2013
Comentarios desactivados

Untitled
Yo era el número 45 en la lista de espera.

La respuesta es si … pero sólo por 2 minutos y 10 segundos (00:02:10) o media milla aproximadamente.

Eso lo aprendí corriendo hoy en la Avenida de Las Americas en Nueva York, justo después de buscar mi BIB y otras cosas en la exposición del maratón.

La maquina profesional que corre a la velocidad de Ryan Hall.

 

Sólo por correr, ASICS me regaló una gorra, un par de medias y una bola pequeña para el gimnasio. Nada mal por sólo dos minutos de esfuerzo :-)

Si lo desean aquí estan las fotos de la exposición. Gente de más de 30 países, reunidas con un sólo propósito: correr en la gran Manzana.

 

correr, kodegeek , , ,

Como seguir mi progreso durante el Maratón de Nueva York 2013

Martes, 29 de octubre de 2013
Comentarios desactivados

Ya falta muy poco para el evento. Al momento de escribir estas líneas me estoy recuperando de un resfriado y ya estoy finalizando mi últimas carreras de recuperación (“tapering“) antes de la gran carrera.

¿Como me pueden localizar?

 BIB #17578, Green wave #1, corral #17, hora de comienzo 9:40 AM.

El recorrido oficial de la carrera (con una explicación de que hay en cada milla) esta aquí. Les recomiendo que se bajen la aplicación oficial del Maratón de Nueva York, metan mi número de BIB allí y !ya están listos¡

¿Como ver el progreso de la carrera?

Para aquellos de ustedes que quieran ver mi progreso durante la carrera, les dejo a continuación algunos enlaces:

  • Para ver la carrera en vivo. Más opciones aquí.
  • Runners World tiene gente corriendo en la carrera, reportando en vivo.
  • El blog de Iliana Zuniga. Ella también esta corriendo el maratón y va a estar reportando en vivo.
  • Por twitter (aunque no creo que escriba nada durante la carrera)
  • Si eres Venezolano como yo, el Blog de Ernesto Linzalata seguro tendrá información relacionada con el evento.

 Información miscelanea

Otros detalles importantes de la carrera, por si aún estan curiosos.

 

 

 

correr, kodegeek, vida sana ,

Maratón de Nueva York 2013, preparación y desafios (I). A una semana de la carrera.

Domingo, 27 de octubre de 2013
Comentarios desactivados

La calma antes de la tormenta

Sólo faltan 7 días antes de el Maratón de Nueva York. Estoy escribiendo antes de ir a mi última corrida larga de 8 millas para luego bajar drásticamente la distancia la semana que viene.

Ha sido toda una aventura.

El 13 de Octubre corrí 20 millas en preparación al Maratón de Nueva York de 2013. Mi entrenamiento no ha sido el que hubiera querido ya que me fracturé el pie izquierdo por sobre-esfuerzo, dos semanas después de terminar el medio Maratón de Nueva York del 2013. Para ser sincero, este ha sido un proyecto de más de un año cuando empece a ganarme mi cupo con el programa 9+1 hasta la cancelación de mis  última carreras favoritas, el  Dash To The Finish Line (y luego de inmediato el Maratón del 2013  gracias a una tomenta mostruosa llamada Sandy).

 

No es que no haya corrido tanto antes; Hasta el momento llevo 3 medio maratones en mi bolsillo (2 con resultados oficiales y con tiempos no tan malos) y un montón de carreras más cortas, pero nada se le acerca en magnitud a un maratón. El cuerpo simplemente se queda sin reservas de energía cuando corres por tanto tiempo, además de que debes mantener tu concentración y foco por lo menos 4 horas (si eres un corredor rápido es menos).

Pero la parte más difícil es el acondicionamiento mental. Esa parte de seguir repitiendole al cerebro que tienes que seguir adelante, no importa que.

Lesiones, lesiones (O como no correr más de 13.1 millas en Vibrans 5 Fingers)

Untitled

Acute non displaced stress fracture involving the second metatarsal bone. Asi me lo recitó el doctor…

 

Mi exceso de confianza me llevo a pensar que podría correr un maratón completo en esos zapatos. No me malentiendan, hay gente que puede hacerlo pero yo no soy uno de ellos. Mi pie izquierdo simplemente no pudo más al principio de este año y en el doctor termino de dar su diagnostico:

Si quieres volver a correr tienes que descansar 8 semanas. O puedes correr con la fractura y pasar a la sala de operaciones de una vez.

El doctor me regaño y me repitió el discurso de como su consultorio se habia llenado de gente con este tipo de fracturas desde que los zapatos habían salido en venta; Sin embargo el fué pragmático y no culpó a los zapatos sino a la falta de entrenamiento propio en los mismos.

La explicación fué muy sencilla: Al correr distancias más y más largas, el atleta pierde su buena forma al correr y los músculos ya no amortiguan tanto el impacto. Los zapatos “mínimos” no tienen nada de amortiguamiento así que todo el impacto va hacia los huesos. Una y otra vez.

La fractura llego como una bendición disfrazada, ya que tuve que cambiar el plan entrenamiento (correr menos y más intenso), además de que comencé a nadar en la piscina, sólo para descubrir que no lo se hacer bien en estilo libre (o ningún estilo :-) ).

Si, 8 semanas fuera o lo que es lo mismo nada de correr desde el 2 de Marzo del 2013 hasta el 31 de Junio del mismo año. Y de allí empezar a entrenar, casi desde cero hasta el 3 de Noviembre, fecha del maratón.

Entrenamiento y recuperación después de una fractura por sobre-uso


Entrenar en la piscina salvó parte de mi capacidad aeróbica, pero sobre todo me mantuvo cuerdo mientras no podía correr…

La clave de la recuperación era comenzar a subir la distancia poco a poco. Sin embargo yo no tenía mucho tiempo y la mayoría de los planes (incluso el de principiante de Hal Higdon), te pedían correr al menos 3 veces por semana, incluyendo los largos del fin de semana.

¿Era hora de cancelar el maratón? En las próximas semanas lo iba averiguar.

Re-descubrí la piscina por accidente. Allí una de las instructoras (la cual ha participado al menos dos veces en el Iron Man de Kona) me dijo lo mal que lo estaba haciendo. Es una de las mejores cosas que me han pasado ya que descubrí lo mucho que tengo que mejorar al nadar en estilo libre.

Al mismo tiempo la entrenadora me sugirió que me incorporara al programa de “Masters Introductiondel Chelsea Pears (es el lugar en donde hago ejercicio de resistencia y natación), por lo menos 3 veces a la semana. Yo le expliqué que estaba decidido a correr el maratón así tuviera que arrastrarme, por lo que ella me enseño como hacer “deep water running” para mantener el nivel aeróbico mientras al mismo tiempo yo hacia ejercicios con pesas (nada de impacto en las piernas).

A la final me quede con un programa diseñado por el Runners World Smart Coach, de 16 semanas, el cual incluía Tempo Runs, Speed Work y las indispensables carreras larga el fin de semana (long runs). Corriendo solamente dos veces por semana eso me daba suficiente tiempo para subir la distancia de manera segura (no más de %10 cada semana) mientras yo continuaba con la piscina (menos veces ahora) y con los ejercicios de pesas para todo el cuerpo:

Macintosh:Documents josevnz$ egrep SUMMARY full_nyc.ical
SUMMARY:Easy Run 3 Mi @9:06
SUMMARY:Easy Run 3 Mi @9:07
SUMMARY:Easy Run 4 Mi @9:07
SUMMARY:Easy Run 4 Mi @9:06
SUMMARY:Easy Run 4 Mi @9:06
SUMMARY:Easy Run 3 Mi @9:06
SUMMARY:Easy Run 4 Mi @9:06
SUMMARY:Easy Run 5 Mi @9:06
SUMMARY:Easy Run 5 Mi @9:06
SUMMARY:Speedwork 5 Mi, inc Warm; 2×1600 in 7:11 w/800 jogs; Cool
SUMMARY:Long Run 6 Mi @9:05
SUMMARY:Tempo Run 5 Mi, inc Warm; 2 Mi @ 7:31; Cool
SUMMARY:Long Run 7 Mi @9:04
SUMMARY:Easy Run 5 Mi @9:02
SUMMARY:Easy Run 5 Mi @9:02
SUMMARY:Tempo Run 5 Mi, inc Warm; 2 Mi @ 7:29; Cool
SUMMARY:Long Run 8 Mi @9:02
SUMMARY:Speedwork 5 Mi, inc Warm; 2×1600 in 7:07 w/800 jogs; Cool
SUMMARY:Long Run 9 Mi @9:01
SUMMARY:Tempo Run 5 Mi, inc Warm; 2 Mi @ 7:27; Cool
SUMMARY:Long Run 10 Mi @8:59
SUMMARY:Easy Run 6 Mi @8:58
SUMMARY:Easy Run 6 Mi @8:58
SUMMARY:Tempo Run 4 Mi, inc Warm; 2 Mi @ 7:25; Cool
SUMMARY:Long Run 12 Mi @8:58
SUMMARY:Speedwork 4 Mi, inc Warm; 2×1600 in 7:03 w/800 jogs; Cool
SUMMARY:Long Run 14 Mi @8:56
SUMMARY:Tempo Run 5 Mi, inc Warm; 3 Mi @ 7:27; Cool
SUMMARY:Long Run 16 Mi @8:55
SUMMARY:Tempo Run 5 Mi, inc Warm; 3 Mi @ 7:26; Cool
SUMMARY:Long Run 18 Mi @8:53
SUMMARY:Speedwork 4 Mi, inc Warm; 2×1600 in 6:59 w/800 jogs; Cool
SUMMARY:Long Run 12 Mi @8:52
SUMMARY:Tempo Run 4 Mi, inc Warm; 2 Mi @ 7:19; Cool
SUMMARY:Long Run 8 Mi @8:51
SUMMARY:Easy Run 2 Mi @8:50
SUMMARY:Speedwork 3 Mi, inc Warm; 1×1600 in 6:58 w/800 jogs; Cool
SUMMARY:Easy Run 2 Mi @8:50
SUMMARY:Marathon 26.2 Mi @8:01 Time: 3:30:15

Calzado, ropa y nutrición

Jugo de remolacha antes de correr, proteína Whey después de correr y levantar pesas, Caseina en forma de Yogurt Griego en las noches, más carbohidratos complejos en el almuerzo,  una dieta no tan complicada. Compresión para ayudar en la recuperación. Pero el cambio más importante fueron los zapatos, esta vez me fui con unos Altra Zero Drop, los cuales si bien no son mínimos tampoco tienen suela exageradamente grande y están diseñados para darle mayor movilidad a los dedos mientras se corre.

No he tenido ningún problema con ellos, altamente recomendados (lo más que he corrido con ellos son 20 millas, también he hecho carreras cortas con los mismos).

Finalmente decidí utilizar la compresión para las piernas y las pantorrillas para ayudar en la recuperación (sentí una diferencia notable en el tiempo de recuperación, al menos un día menos de molestias).

 

 ¿Que viene después?

En el siguiente articulo les voy a dar detalles de como me pueden seguir el día de la carrera y otra faceta importante del entrenamiento, ¡la preparación mental!

 

 

kodegeek

Vote for my friend Iliana so she can run the Ragnar relay

Jueves, 4 de abril de 2013
Comentarios desactivados

She is a mom, with a full time job who can run any distance from the 5K to the marathon. She is one of the most dedicated runners I know and she is a source of inspiration for her family and friends!

Please help her and vote for her so she can run this relay: https://www.facebook.com/iliana.ragnars

kodegeek , , , ,

De las críticas recurrentes al blog, los ‘trolls’ y otros menesteres

Sábado, 23 de marzo de 2013
Comentarios desactivados

Es curioso pero así como este blog tiene seguidores también tiene sus detractores; Curiosamente hay quienes lo visitan, se van y vuelven periódicamente como es el caso de ‘mi amigo’ Piccoro. No tengo ningún problema respondiendo a las críticas pero cuando lo hacen sin el menor contexto es entonces cuando me obligan a responder criticando su pobre estilo.

Asumo que este es el articulo del cual nuestro ilustre troll sacó información (un escrito de ya hace 3 años atrás):

he leido los entradas especificas de Venezuela, y noto que son mas criticas que soluciones..

es de apreciar cierta objetividad pero ejemplo en el caso de juegos volentos, notese que un entorno violento cria niños violentos, ademas de que auqnue dicha ley es una hipocresia total, prefiero nunca lleguen juegos violentos a que mi hijo por error toque estos y se relacione mejor (ya que este ya es bastante violento de por si, con claras ventajas sobre otros niños mas grandes)

otro interesante es el de brasil vs Venezuela en materia de fabricado de software.. dime tu, como haces tu , tu, en un pais donde TODAS las interfaces para comunicarse con un basnco desde un punto VPOS de ventas usan solo .NET en ambos lados, la solucion es unica, fabricar tanto modulo de comunicacion (pa ti el “driver” papa) asi como la interfaz servicio que recibe ne el banco.. claro, nadie te va apoyar, asi que vas solo..

acoto yo si lo hice , critico, pero no me limito a eso que tu haces.. y justo hoy estoy colocando la tarea en solognu para el sistema en asistencia…

pierdo sueño, pero criticar sin aportar es ser tan vacio como lo que criticas…

Y la cosa pica y se extiende:

nota: si un padre no fue orientado, no sabra prohibir un juego violento a su hijo (y tendra mas de uno saegurado), que a su vez criara dos a cuatro nijos mas, y este despues lo duplica, por varios factores socioeconomicos..

terminando en un mar llamado barrio, creo en brasil son muuuchos los barrios violentos, y en EEUU, decir que Venezuela es violenta es algo absurdo porque eso depende de la cantidad de gente vs la pelea por los recursos.. un problema que es global.. no solo de mi pais.. que en materiqa de recursos esta aun mejor que otros con todo y la corrupción…

Amigo Piccoro, realmente es difícil leer tu comentario ya que es una mezcla de arroz con mango. No sé realmente por donde empezar. Pero después de leer tus comentarios en mi blog y ver buscar tu escritos por Internet me he topado con algo que te describe a ti y a muchos otros a la perfección: ¿Creando Conflictos, o solo Aguantando…?.

No creo que haga falta argumentar algo más.

De verdad mucha suerte y gracias por visitar el blog.

–José

internet, kodegeek , , , ,

NYC Half Maraton 2013

Sábado, 16 de marzo de 2013
Comentarios desactivados

Untitled
Mañana Domingo 17 de Marzo voy a correr 13.1 millas en una carrera de gran popularidad en New York

Bueno, mañana me toca correr 13.1 millas en compañía de otros 15 mil corredores, muchísimos de ellos provenientes de otros países. Yo voy a representar a Venezuela lo mejor que puedo, he estado entrenando desde Diciembre del 2012 y no les voy a negar que ha sido difícil en los últimos dos meses; El invierno ha sido duro pero todo el esfuerzo va a tener fruto mañana a las 7:30 de la mañana.

Siga leyendo, más abajo les doy algunos detalles entre ellos del entrenamiento, motivación y como pueden seguir el progreso de esta carrera por Internet.

¿Cual es mi motivación para correr 22 kilómetros?

Untitled¿Porqué corremos?

Para mi este es un peldaño más hacia el Maratón de NYC del 2013. Si no puedo con esta carrera entonces tengo que pensar en como mejorar mi entrenamiento. También está el ejemplo que quiero dejarle a mis hijos, todo se puede con constancia y trabajo.

Esta carrera es algo que quiero compartir con mi familia. Ellos son mi principal soporte en esta aventura y sin ellos no hubiera podido dar un paso en la calle en estos últimos 4 meses de invierno.

El entrenamiento

Untitled
El entrenamiento no fué fácil. Cometí errores y aprendí lo mejor que pude de ellos

Este año decidí salirme del entrenamiento de Hal Higdon (el cual utilicé para mi previo medio maratón) y decidí utilizar el entrenado virtual de Runners World (Smart Coach). El plan fué exigente y pese a que perdí un par de sesiones por enfermedad (3 días en el hospital debido a una comida contaminada) y mal tiempo con mucha nieve, logré cumplir con las pautas. En los días que no corría practique entrenamiento de resistencia con pesos, siguiendo planes de bodybuilding.com (en particular el 6-12-25 me ayudo mucho).

El plan de Runners World fué complejo, no sólo incluyó las carreras largas del fin de semana sino que además me obligo a hacer ‘Tempo Runs‘ y ‘Speed Work‘. Según ellos espero completar el recorrido de la siguiente manera: 13.1 Mi @8:02. Tiempo: 1:45:17

Herramientas, aditamentos

Untitled
Para correr en el frio hay que vestirse en capas. Eso sin contar con otros aditamentos para registrar el entrenamiento

Siempre mantuve una bitacora de eventos en donde registré mi velocidad, datos geográficos (usando el GPS de mi Nike GPS Sports Watch) y ritmo cardíaco (con un sensor Polar compatible con el reloj). Toda la información quedo registrada en el sitio de Nike+ el cual ha mejorado bastante desde su última actualización el año pasado.

Aún sigo utilizando Vibrams 5 Fingers para correr. Compré unos Bikila y los clásicos Komodo, los Bikilas aún me lastiman los pies por lo que creo yo es un error de diseño en las correas. Así que seguiré usando lo que funciona, Komodos.

Alimentación y descanso

La alimentación incluyó más carbohidratos además de las proteínas después de entrenar. No quiero recomendar ninguna marca así que si estan interesados en saber que suplementos tomé me pueden contactar en privado (asegúrense de poner una dirección de correo electrónico valida en los comentarios). Como siempre, trato de comer balanceado (más difícil de lo que usted cree), tomo mis suplementos de vitaminas y las pastillas de aceite de pescado (para completar mi dosis de Omega-6).

Lo más importante es comer bien, natural y descansar cuando el cuerpo lo pida. Durante todo este tiempo siempre me tomé un día a la semana durante el cual no hice nada.

La carrera

Screen Shot 2013-03-16 at 3.28.38 PM
El recorrido de este año. Muy colorido

¡Apoyo moral!

Me encantaría que estuvieran conmigo para compartir los detalles de la carrera, pero como se que no es posible entonces les tengo unos detalles de como hacerlo remotamente.

No hay excusa para que no me sigan el día de la carrera, yo soy el BIB# 7466 :-)

Muchas opciones. Hay una aplicación para el Iphone, aunque también lo pueden hacer por Internet. Además de eso la carrera va a ser transmitida en vivo en ESPN3 y ABC..

Ya les escribiré en los comentarios como me fué, ahora sólo queda esperar y relajarse antes del evento.

–José

kodegeek

Nike+ REST API

Sábado, 19 de enero de 2013
Comentarios desactivados

Last year I started playing with the Nike+ website; So Nike finally decided to release a proper API to interact with their website. The API is small yet looks functional, but I am having a hard time trying to figure out how to reproduce the results from a simple REST client:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Macintosh:python josevnz$ ./nikeplus_unit_test.py 
send: 'GET /me/sport?access_token=XXXXXX HTTP/1.1\r\nHost: api.nike.com:443\r\nAccept-Encoding: identity\r\nContent-Type: application/jsonrequest\r\nAccept: application/jsonrequest\r\nAppid: Kodegeek/NikePlus\r\n\r\n'
E
======================================================================
ERROR: test_getAggregateSportData (__main__.TestNikePlus)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./nikeplus_unit_test.py", line 16, in test_getAggregateSportData
    activities = activity.getAggregateSportData(True)
  File "/Users/josevnz/Documents/src/python/com/kodegeek/fitness/nikeplus/activity/wrapper.py", line 30, in getAggregateSportData
    res = con.getresponse()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1013, in getresponse
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 402, in begin
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 360, in _read_status
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 430, in readline
error: [Errno 54] Connection reset by peer
 
----------------------------------------------------------------------
Ran 1 test in 0.570s
 
FAILED (errors=1)

Contacted the developers, lets see how it goes. But it is exiting, so many possibilities!

correr, kodegeek, programación, python , ,

Creando entradas para mi calendario en Ical usando Python

Sábado, 29 de diciembre de 2012
Comentarios desactivados
Runners World Half Marathon training plan

Runners World Half Marathon training plan

Para quienes siguen esta bitácora, seguramente recordarán que me aceptaron en el NYC Half Marathon del 2013. Eso significa que me va a tocar entrenar este inverno, en esta ocasión quise probar los planes gratuitos de la gente de Runners World para ver que tan buenos son.

Después de registrarme y de colocar varios parámetros, esto fué más o menos lo que el plan me generó:

El plan básico de Runners World Smart Coach no soporta enviar correos electrónicos para recordarte acerca de tus entrenamientos; Esto es algo que puedo hacer yo sólo y no creo que justifique que pagué por la mejora al servicio pago, dado lo corto de la carrera (para el maratón es otra cosa y allí les recomiendo que paguen su suscripción).

Para tener mis recordatorios lo único que tengo que hacer es guardar el plan en formato de texto plano, simplemente seleccionamos la tabla del sitio web y la guardamos en un archivo de texto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#Macintosh:Documents josevnz$ vim half.txt
 
WEEK 1: 4 Mi
Sun     Dec 30  Long Run        Dist: 4 Mi @9:35
 
WEEK 2: 11 Mi
Tue     Jan 1   Easy Run        Dist: 4 Mi @9:36
Thu     Jan 3   Easy Run        Dist: 3 Mi @9:36
Sun     Jan 6   Easy Run        Dist: 4 Mi @9:36
 
WEEK 3: 12 Mi
Tue     Jan 8   Easy Run        Dist: 3 Mi @9:35
Thu     Jan 10  Tempo Run       Dist: 4 Mi, inc Warm; 2 Mi @ 7:59; Cool
Sun     Jan 13  Long Run        Dist: 5 Mi @9:35
 
WEEK 4: 10 Mi
Tue     Jan 15  Easy Run        Dist: 3 Mi @9:32
Thu     Jan 17  Easy Run        Dist: 3 Mi @9:32
Sun     Jan 20  Easy Run        Dist: 4 Mi @9:32
 
WEEK 5: 13 Mi
Tue     Jan 22  Easy Run        Dist: 4 Mi @9:32
Thu     Jan 24  Tempo Run       Dist: 4 Mi, inc Warm; 2 Mi @ 7:57; Cool
Sun     Jan 27  Long Run        Dist: 5 Mi @9:32
 
WEEK 6: 14 Mi
Tue     Jan 29  Easy Run        Dist: 4 Mi @9:30
Thu     Jan 31  Speedwork       Dist: 4 Mi, inc Warm; 2x1600 in 7:32 w/800 jogs; Cool
Sun     Feb 3   Long Run        Dist: 6 Mi @9:30
 
WEEK 7: 15 Mi
Tue     Feb 5   Easy Run        Dist: 3 Mi @9:27
Thu     Feb 7   Tempo Run       Dist: 4 Mi, inc Warm; 2 Mi @ 7:52; Cool
Fri     Feb 8   Easy Run        Dist: 2 Mi @9:27
Sun     Feb 10  Long Run        Dist: 6 Mi @9:27
 
WEEK 8: 13 Mi
Tue     Feb 12  Easy Run        Dist: 3 Mi @9:25
Thu     Feb 14  Easy Run        Dist: 3 Mi @9:25
Fri     Feb 15  Easy Run        Dist: 3 Mi @9:25
Sun     Feb 17  Easy Run        Dist: 4 Mi @9:25
 
WEEK 9: 17 Mi
Tue     Feb 19  Easy Run        Dist: 2 Mi @9:25
Thu     Feb 21  Tempo Run       Dist: 5 Mi, inc Warm; 3 Mi @ 7:54; Cool
Fri     Feb 22  Easy Run        Dist: 2 Mi @9:25
Sun     Feb 24  Long Run        Dist: 8 Mi @9:25
 
WEEK 10: 18 Mi
Tue     Feb 26  Easy Run        Dist: 3 Mi @9:22
Thu     Feb 28  Speedwork       Dist: 4 Mi, inc Warm; 2x1600 in 7:25 w/800 jogs; Cool
Fri     Mar 1   Easy Run        Dist: 2 Mi @9:22
Sun     Mar 3   Long Run        Dist: 9 Mi @9:22
 
WEEK 11: 19 Mi
Tue     Mar 5   Easy Run        Dist: 2 Mi @9:20
Thu     Mar 7   Tempo Run       Dist: 5 Mi, inc Warm; 3 Mi @ 7:50; Cool
Fri     Mar 8   Easy Run        Dist: 2 Mi @9:20
Sun     Mar 10  Long Run        Dist: 10 Mi @9:20
 
WEEK 12: 18 Mi
Tue     Mar 12  Easy Run        Dist: 2 Mi @9:17
Thu     Mar 14  Speedwork       Dist: 3 Mi, inc Warm; 1x1600 in 7:21 w/800 jogs; Cool
Sun     Mar 17  Half Marathon Race Day  13.1 Mi @8:02 Time: 1:45:17

El formato es super fácil de digerir; Con un poco de ayuda para entender el formato de iCalendar, escribí un pequeño script en Python el cual toma el archivo de texto y lo convierte al formato adecuado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#!/usr/bin/env python
# Simple script to parse output from the Runners World Smart Coach calendar to convert it to Ical entries. PLEASE CONSIDER BUYING THEIR PLAN, IS WORTH IT
# http://kodegeek.com/blog
import os, sys, re
from datetime import *
 
class Cal:
        def __init__(self, params):
                self.params = params
 
        def __str__(self):
                return '''BEGIN:VEVENT
DTEND;TZID=%(date)s
TRANSP:OPAQUE
SUMMARY:%(summary)s
DTSTART;TZID=%(date)s
SEQUENCE:4
BEGIN:VALARM
X-WR-ALARMUID:454BC86C-A39E-4C87-8CF9-7D79D80AC01B
TRIGGER:-PT1M
ATTACH;VALUE=URI:Basso
ACTION:AUDIO
END:VALARM
END:VEVENT''' % self.params
 
(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec) = range(0, 12)
 
def parseLine(line, now, format):
        if len(line) == 1 or re.search('WEEK', line):
                return None
        ''' Parsing the data. Each line format looks like this:
        Sun     Dec 30  Long Run        Dist: 4 Mi @9:35
        Tue     Jan 29  Easy Run        Dist: 4 Mi @9:30
        Thu     Jan 31  Speedwork       Dist: 4 Mi, inc Warm; 2x1600 in 7:32 w/800 jogs; Cool
        Sun     Mar 17  Half Marathon Race Day  13.1 Mi @8:02 Time: 1:45:17
        '''
        matcher = re.search('(.*)\s+Dist:(.*)', line.strip())
        if matcher == None:
                matcher = re.search('(.*)\s+Race Day(.*)', line.strip())
                if matcher == None:
                        return None # Don't know how to handle this!
        params = {}
        # Runs finish and end the same day
        tokens = matcher.group(1).strip().split(' ', -1)
        cdate = ' '.join(tokens[:3]).strip()
        time = "05:00"
        if tokens[0] in [ "Sun", "Sat" ]:
                time = "06:00"
        # We add the year and start time to the date. Start time is the time I want to run
        # We figure out the year as none of these plans are longer than 13 weeks
        year = 2013 # Yes, it is hardcoded. This version of the script doesn't handle the special case of dates across years
 
        # For date we expect something like: Sun Dec 30 2012 05:00
        date = "%s %s %s" % (cdate, year, time)
        ndate = datetime.strptime(date, "%a %b %d %Y %H:%M")
        if ndate == None:
                raise Exception("Unable to parse date, won't continue: '%s'" % date)
        params['date'] = ndate.strftime(format)
        desc = ' '.join(tokens[3:])
        params['summary'] = '%s %s' % (desc.strip(), matcher.group(2).strip())
        return Cal(params)
 
# You may want to override some defaults here
def writeEvents(cals, calendarName='Races', tz='America/New_York'):
        vals = {}
        vals['tz'] = tz
        vals['calname'] = calendarName
        print '''BEGIN:VCALENDAR
METHOD:PUBLISH
VERSION:2.0
X-WR-CALNAME:%(calname)s
PRODID:-//Apple Inc.//iCal 5.0.3//EN
X-APPLE-CALENDAR-COLOR:#B90E28
X-WR-TIMEZONE:%(tz)s
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:%(tz)s
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
DTSTART:20070311T020000
TZNAME:EDT
TZOFFSETTO:-0400
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0400
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
DTSTART:20071104T020000
TZNAME:EST
TZOFFSETTO:-0500
END:STANDARD
END:VTIMEZONE''' % vals
        for cal in cals:
                print "%s" % cal
        print '''END:VCALENDAR'''
 
def main(args):
        format = "America/New_York:%Y%m%dT%H%M00" # America/New_York:20130101T060000
        now = date.today()
        fh = open(args[0], 'r')
        cals = []
        for line in fh.xreadlines():
                cal = parseLine(line, now, format)
                if cal != None:
                        cals.append(cal)
        writeEvents(cals)
 
if __name__ == "__main__":
        main(sys.argv[1:])
# End of script

Para correrlo sólo tiene que escribir lo siguiente:
bin/runnersworld_to_ical.py ~/Documents/half.ics

Después sólo hay que importarlo en la aplicación Ical en OSX.

Espero que le sea de utilidad, mañana me toca correr en nieve (a 25F), así que aún no ando seguro si me toca usar un Treadmil o si voy a correr en la carretera. Si sólo eso se pudiera resolver con un pequeño programita…

kodegeek

%d personas les gusta esto: