Half marathon block - Week #3

I am training for my first half marathon

Summary

The week started meh with a lot of soreness, but ended quite nice. Four running sessions, two Pilates sessions and one strength training session.

~35 km in total. 5km more than last week due to the addition of the easy run.

2024-04-02

Steady run on the treadmill. It honestly didn’t feel right, my legs were sore. I guess I didn’t have enough time to recover from the previous week. Also, I tried a new gel, so I wanted to be near a WC, hence running at the gym :P

  • 10’ in zone 2
  • 5 sets of 4’ at 5’00/km & 2’ at 6’40/km
  • 5’ in zone 2

One hour of Pilates in the evening.

2024-04-03

Easy 35' run, short run on the treadmill. Just to put some kilometers on top. Still a little bit short

2024-04-04

Hills. Lovely day, perfect to get all sweaty. Not going to lie. It was hard. I was panting at the end:

  • 15' in zone 2.
  • 5 times: 1' of progression with 30" of slow run to recover.
  • 5 times: 100m up hill.
  • 2' slow run.
  • 5 times: 100m down hill.
  • 5' of zone 3.
  • 10' of cool down.

One hour of Pilates in the evening.

2024-04-05

Strength training, I was wasted at the end:

  • Warm up: 10' at the elliptic trainer.
  • Superset
    • 4x(12-10-10-8) Bench press.
    • 4x8 kettlebells deadlift.
  • 15' AMRAP:
    • 10 squats with sandbag
    • 12 plyometric Bulgarian split squats.
    • 10 lunges with medicine ball.
    • 10kcal at the ski-row machine.

2024-04-07

Long run. I was scared about this one. Not because of the distance (14km), but because I didn’t sleep well that night, and I was sore all week long. But it went extremely well. I really enjoyed it.

  • 2k at 5'50"/km
  • 3k at 5'30"/km
  • 4k at 5'15"/km
  • 3k at 5'50/km
  • 2k Cool down.

📽 watched Wicked Little Letters at the cinema. Loved it. It’s funny in a weird way because the topic is quite sad in reality.

Both Olivia Colman and Jessie Buckley are extremely funny with that hint of sadness that the movie constantly has. Timothy Spall is also great.

Highly recommended.

My parents know I suck at running so they gave me this (truth to be told, it’s my birthday cake)

🏃Hills workout. 20C early in the morning. April went nuts.

Half marathon block - Week #2

I am training for my first half marathon

Summary

Three running sessions, one Pilates session and one strength training session.

30 km in total.

2024-03-26

Steady run:

  • 15' in zone 2.
  • 10' in zone 3.
  • 5' in zone 4.
  • 15' in zone 3/2.

I honestly struggle with zone training. Zone 2 mixes with zone 3 really fast. I use my watch to track this and I know is accurate but I am starting to think in trying a chest band. Or maybe not because who needs to waste more money?

Pilates session.

2024-03-28

Intervals:

  • 10' in zone 2.
  • 4 repetitions:
    • 3' at 4':50"/km
    • 1' at 6':30"/km
    • 1' at 4':00"/km
    • 3' at 6':30"/km
  • 5' of recovery.

2024-03-29

I hit the gym to do mainly deadlifts and other exercises for the back and legs.

2024-03-31

Long run: 12km

  • 3k at 5':50"/km
  • 3k at 5':30"/km
  • 3k at 5':15"/km
  • 3k at 5':50"/km

For some reason, my pace was all over the place. I ran way faster that I expected, hitting 4':30"/km most of the time. But I enjoyed the run. On average, I did 5':22"/km.

Half marathon block - Week #1

I am training for my first half marathon

Summary

Three running sessions, two Pilates sessions, one strength training session.

I matched the first two running sessions with Pilates, so I can use them to stretch.

I used to run early in the morning before work, but this week I moved the first two running sessions to the middle of the day before having lunch. The reason is to avoid arriving back home starving and do binge-eat. I can arrive and have a proper meal and go back to work. It works for now, although the heat will be a problem soon.

2024-03-19

A 45 minutes easy run in zone 2. I usually run these kinds of training in the treadmill. I can put some music or an audiobook, and keep a steady, controlled pace that allows me to be in zone 2. But I ran outside and zone 2 becomes harder, so let’s say it was a zone 2.5.

Later in the evening I had my Pilates class.

2024-03-21

A pyramid session. 20C day. Bad idea:

10 minutes of warm up.

The pyramid (fast pace was around 4':40"/km pace):

  • 1 minute at fast pace, 1 minute easy run.
  • 2 minutes at fast pace, 1 minute easy run.
  • 3 minutes at fast pace, 1 minute easy run.
  • 4 minutes at fast pace, 1 minute easy run.
  • 3 minutes at fast pace, 1 minute easy run.
  • 2 minutes at fast pace, 1 minute easy run.
  • 1 minute at fast pace, 1 minute easy run.

1km progression.

10 minutes of recovery.

2024-03-22

Strength training at the gym. Far from high weight but demanding nonetheless.

It can be summarized as: Squats at the rack, series of lunges and moving around weights, and stretching at the end.

2024-03-24

The not so long run. A 13k run at 5’32”/km (on average). It was a really nice run with perfect weather and no pain whatsoever.

[Spanish] MTProxy on Fedora/CentOS Stream/RHEL

While I usually for no specific reason write in English, this post is written in Spanish due to the absurd precautionary measure of blocking Telegram.


Si vais a usar Ubuntu, esta guia es genial, además incluye alguna cosa como registrar el proxy que yo he obviado a proposito.

Hay muchas formas de saltarse un bloqueo a Telegram. Desde cambiar los DNS, hasta usar una VPN pero, en mi opinión, la mejor es MTProxy. Aunque el proyecto parece parado desde hace unos años, todavía funciona y para salir de un apuro, es una solución ideal.

Todavía no se sabe como van a bloquear el uso de la plataforma (aunque viendo como se ha hecho hasta ahora este tipo de cosas, van a bloquear los dominios con casi total seguridad). Si este es el caso, yo personalmente uso NextDNS para bloquear ciertas páginas.

El bloqueo no va a suceder.

Sin embargo, cambiar los DNS no me parece una medida adecuada de cara a seguir usando Telegram. No siempre es factible cambiarlos. Algunos routers suministrados por proveedores de servidores de Internet no permiten hacer estas modificaciones.

¿Y una VPN? Esta solución es un poco drástica. Por funcionar, funciona. Pero, salvo que sepas lo que estas haciendo, estarías pasando todo el trafico del dispositivo por la VPN. E igual no es algo que te interesa. Igual no quieres estar saliendo por Francia las 24 horas del dia. O igual no puedes tener todos tus dispositivos en una VPN como por ejemplo el ordenador del trabajo. Además de que los servicios de VPN son de dudosa fiabilidad. Si vas a seguir esta ruta, mi recomendación es que te montes tu mismo la VPN, ya sea usando OpenVPN o WireGuard, o que uses un servicio por el que estás pagando y del que te fías. Yo personalmente uso la primera opción pero ProtonVPN me ha dado buen resultado en el pasado.

¿Por qué un proxy y en particular MTProxy? Pues bastante sencillo. Telegram soporta esto de manera nativa en todas las aplicaciones oficiales. Soporta SOCKS5 y MTProto y una vez tengas montado el servicio, puedes compartir el enlace con la gente que te importa. El tráfico de Telegram es lo único que va a través del proxy, no afectando en absoluto a la conexión del resto de aplicaciones del dispositivo.

Así que si tienes una máquina con Fedora, CentOS Stream 9 o RHEL 9 (puede que funcione con versiones anteriores pero no lo he probado), sigue estos pasos. Yo por el momento uso Linode y un servidor en Amsterdam. El proveedor de la maquina virtual es lo de menos. Asegúrate también de que sabes como proteger y mantener un equipo expuesto públicamente.

Se asume que la máquina esta limpia, si es una máquina que ya tenias, puede que los pasos del firewall te den problemas. Pero si ya tienes una máquina es que sabes lo que haces :)

Vamos a rodar todas las instrucciones como root y están muy basadas en lo que dice la propia documentación, con algunos pequeños cambios para ponerla al día. El servicio no va a estar rodando como root, tranquilo :P

Vamos a instalar las dependencias que necesitamos para compilar MTProxy.

dnf install openssl-devel zlib-devel
dnf groupinstall "Development tools"

Ahora necesitamos bajar el proyecto.

git clone https://github.com/TelegramMessenger/MTProxy
cd MTProxy

Hay un problema actualmente en MTProxy si intentamos compilarlo, hace un tiempo un usuario abrió una pull request con la solución, así que vamos a aplicar su parche:

curl -L -O https://patch-diff.githubusercontent.com/raw/TelegramMessenger/MTProxy/pull/531.patch
git am 531.patch
rm -f 531.patch

Para compilarlo, solo tenemos que hacer:

make

Puede que durante la compilación veas algunos warnings, y como cualquier buena instalación, vamos a obviarlos :P (En CentOS Stream 9 no los he visto pero si en Fedora 39, así que puede que se deba a diferentes ajustes en GCC, no le he dedicado mucho tiempo a esto).

En general, una aplicación instalada a mano suele ponerse en /opt y ahí es donde vamos a ponerla (lee man hier si tienes curiosidad).

mkdir /opt/MTProxy
cp objs/bin/mtproto-proxy /opt/MTProxy/
cd /opt/MTProxy/

Ahora tenemos que hacernos con el secreto y la configuración que nos da Telegram. La configuración puede cambiar así que aconsejan renovarla a diario (candidato ideal para un cron :))

curl -s https://core.telegram.org/getProxySecret -o proxy-secret
curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf

El contenido de /opt/MTProxy debería ser: mtproto-proxy, proxy-multi.conf y proxy-secret.

Ahora necesitamos el secreto que usaremos para validar nuestros clientes contra nuestro servidor. Puede ser cualquier cosa que te inventes, pero lo que sugiere el proyecto es ideal: simplemente guarda en algún lado la salida de esta instrucción:

head -c 16 /dev/urandom | xxd -ps

Necesitamos asegurarnos de que el firewall que suele venir activado de serie no nos de problemas.

firewall-cmd --permanent --new-service=MTProxy
firewall-cmd --permanent --service=MTProxy --add-port=4242/tcp
firewall-cmd --permanent --add-service=MTProxy
firewall-cmd --reload

Si todo ha ido bien, deberías haber visto varios success. Pero siempre puedes comprobar que MTProxy esta listo en el el firewall con:

firewall-cmd --list-all | grep services

Aunque ya tenemos todo lo que necesitamos, la guinda en el pastel es configurar MTProxy como servicio que ruede como un usuario no privilegiado sin shell y sin home.

Primero creamos el usuario, y le damos permisos sobre /opt/MTProxy.

useradd -M -s /sbin/nologin mtproxy
chown -R mtproxy:mtproxy /opt/MTProxy

Ahora, necesitamos crear el servicio. Fíjate que necesitas modificar las lineas un poco para incluir el secreto que generamos antes de pegarlo en la terminal.

cat <<EOF > /etc/systemd/system/MTProxy.service
[Unit]
Description=MTProxy
After=network.target

[Service]
Type=simple
User=mtproxy
Group=mtproxy
WorkingDirectory=/opt/MTProxy
ExecStart=/opt/MTProxy/mtproto-proxy -H 4242 -S <EL SECRETO VA AQUI> --aes-pwd proxy-secret proxy-multi.conf --log mtproxy.log -M 1
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

Tras esto, ya estamos listos para rodar el servicio:

systemctl daemon-reload
systemctl enable MTProxy.service
systemctl start MTProxy.service
systemctl status MTProxy.service

Para configurarlo fácilmente, adapta el siguiente enlace, o compártelo a quien quieras:

https://t.me/proxy?server=<LA IP PUBLICA>&port=<EL PUERTO>&secret=<EL SECRETO>

Si encuentras algún fallo, por favor, dímelo para que pueda actualizarlo.

7 weeks for my first half-marathon

In 7 weeks, I have my first half-marathon. I don’t have a specific time in mind for that day; finishing it is good enough for me. But I will try to hit the 01:45:00 mark.

I want to do an experiment for myself. I want to document how each training week feels at the end. So in 7 days, I’ll write how this week went. How many sessions I had and how they felt. My pains and even the weather. Why? Because I know progress is a difficult thing to see, and in a few years, I will look back at this and say, “Damn, it was hard”. And who knows? Maybe someone reads this and gets motivation to do something that feels hard.

Previously in “Doing it all wrong”…

I’ve been running on and off for several years. And until recently, without any kind of plan or goal, just go out and run. Usually, this is a terrible idea. While running can be really healthy, doing it without proper form, or mindset leads to issues.

Before continuing this tail of wrongdoings, I need to add that I have always, since I was a child, loved to run. I was quite good at PE. I was one of the fastest of my classmates, and among them were several who used to compete. My mother will always regret not forcing me to enroll in the running team. So do I. But it is what it is. Maybe if I had, I would never have liked it. Who knows.

But even with my natural predisposition to run, I managed to screw up things really badly.

My first running plan for years was to go out for a max-effort run (I didn’t know you could run slower!) and then stop running for days or weeks to recover. My first “serious” goal was to reach 5k in 30 minutes; for no reason, it sounded like a challenge to me. And it wasn’t. I reached that point quite fast, in about 2 weeks of just running. Then no improvement happened anymore. I didn’t know that it wasn’t a proper milestone for me. To be honest, I didn’t even know what my pace was.

These informal attempts at training happened for years until the COVID lockdowns were done.

Then I realized two things. Running was calming. And I was hurting my back badly. Well, to be fair, that might be because of my job, all day long in front of a computer in whatever posture.

So I went back to the gym (I had been going on and off for years) and start doing strength training with, again, no plan, structure or goal in mind. As you might be starting to think now, there is a pattern here. Planning? Goals? I also realized that.

I strongly believe that hitting the gym without a goal is a recipe for failure. It was for me for years. And I see it in most of my acquaintances. We all go with good intentions. And that’s great, but it doesn’t work for most of us. Goals must be measurable. “I want to be fitted” is not quantifiable. You don’t know when it’s done, and you can’t track the progression easily if you are a beginner like me. Also, a goal should be hard. You can have milestones along the path, but there should be at least one long-term goal to fight for. That was and is my intention every single day I train.

And what is that goal? Well, a classic one: To run a marathon.

Let me tell you that when I got the idea, it sounded feasible. Now it does too. I know I will make it sooner or later. But for a while, it felt like a stupid idea.

What after the goal?, you might ask. I don’t know. Maybe I don’t like the experience at all, and I decide to run shorter distances. Or maybe I want to do another activity. Who knows. But I am not there yet. And that’s the point of the goal and the milestones. You need milestones along the road to stop thinking about the goal. To have small things to evaluate. You could say that improving pace, heart rate, or muscle gains are small things you can evaluate, but they feel cold. And you will have good and bad weeks. If, for a while, I run slower, or the heat makes my heart pound, it’s not a problem. I have a milestone ahead: Finish the next race and, ideally, do it faster than before.

So instead of making my own plan, because that was something that would never happen, I found a personal trainer who knows about running. That was in June 2022. We decided that there was no due date for the marathon or for any of the milestones. Working remotely is something that I truly enjoy, but I created really unhealthy habits, and when the lockdowns started, they didn’t improve at all. I was extremely out of shape, and I didn’t know this at that moment, but I was stressed and sleep-deprived.

It took a few months to feel ready for a race. Or that was what we thought. I didn’t know how to communicate my progression in the training. I was overweight—78 kg for a 173cm guy—and I overtrained without really knowing it. In fact, I didn’t know you could overtrain at all.

September 2022, a nightly 10k along the coast. Earlier in the week, I had a weird pain in my left leg around the internal part of the calf while attending a training session at the gym with my girlfriend. She wanted to attend a class, and I went with her. Outside my training plan, without talking with my trainer, without removing or modifying my sessions.

And I did what every stupid person would do: I ran with it. That became a periostitis in my left leg. But, hey, I finished it. 59:23.

I was not able to get rid of it for months. Then I raced again on December 31, 2022, a shorter distance. And the pain came back. I stopped running for the first half of 2023 to recover properly. It might look like a lot of time, but keep in mind that I wasn’t able to walk without pain for two months. I really screwed up my leg. I should have used this time to do strength training, but I didn’t. My trainer set a plan, but I was mentally exhausted, so I decided to call it and take a break. That was a mistake. Reasonable, but a mistake nonetheless.

Summer 2023: I started running again.

I need to admit that up to this point, running was something I was doing because I thought it was good for me, but I wasn’t truly enjoying it. Then, one day, I ran 12km without any goal in mind at an easy pace on a nice rainy morning. And something clicked. I was alone, across a walking path, surrounded by mountains. I loved every second of it.

Suddenly, instead of running because I wanted to be fitter, I wanted to be fitter to feel something like that day. I wanted to be fitter to run.

I slowly started to fix my sleep patterns (oh boy, there was a lot to fix here), I did blood tests (vitamin D was really low), and I took care of my eating habits. The classic stuff: tracking calories and protein, stopping drinking coffee around noon, going to bed earlier, quitting social media completely, and starting to read books on a daily basis. These two last things might not be really related to health, but somehow I can feel they changed my mental energy for the better.

I started again with the trainer and added Pilates to the equation. 3 running sessions, 2 Pilates classes and 1 strength session per week.

I moved from 78kg to 70kg in a few months. The scale freaked out. Abs are now a thing.

Ran several 5k and 10k. My best times are 23:20 for the 5k and 47:48 for the 10k. Nothing fancy; there is still a lot of work to do, but I didn’t start to run because I wanted to win races.

Running is not a habit anymore. I made running a hobby, and I am looking for it every single week. I now organize my week around running.

Enough with the melodramatic backstory; let’s train. See you in a week.

Worst weather conditions I’ve ever raced in. Wind alert, raining (my number almost fell off), and 9C. But somehow managed to get a PB: official time 47:48. 🏃

I reached that point in my running hobby where I am excited to try new electrolyte tablets.