164 - 171 Oaxaca: I have a big head (apparently)

Santo Domingo church
Santo Domingo church

Oaxaca feels busier than the last time I was here. Apparently there were some articles or documentaries in Nature that have skyrocketed its popularity. And it isn’t hard to see why. Oaxaca is great with its cobblestone streets, distinctively colorful buildings with so many interesting nooks and crannies. It is the culinary capital of Mexico and that is saying something.

This city was my first experience of Mexico when I first visited so arriving here by bike now feels strange.

Rene, who is also cycling to Argentina and who I met at the hostel, had an interesting helmet. It was a normal helmet but with the rim part of a hat zip tied onto it to provide more shade from the sun. I thought this was genius.

Walking through some of Oaxaca’s colourful markets, I see some hats for sale and decide to DIY a similar sunshade solution. I pick one hat up and try it on. Too small. I try another. Again too small. I tried maybe 10 hats and they were all too small.

I go to the next stall and repeat the process. A little old lady emerges from behind stacks of clothes to help me. After she gave me 3 to try, she shrugged an apology.

The next shop had a young woman who tried to help me. I pointed to my head and said “Es muy grande”. She laughed and gave me a hat to try. It doesn’t fit, I smile and she laughs out loud. While still laughing (at or with I am still not sure), she hands me a couple of more hats but to no avail. We laugh it off and I excuse myself.

I visit every hat stall in a 5 block radius. As I crisscross the streets I begin to see familiar faces. I suspect that I am now known as the gringo with the big head.

I pass by a cookware place and notice some quite rigid but fabric placemats. I considered cutting a hole in it to fit my helmet. I take a mental note that this could be a backup solution but persist with my hat search.

Eventually I find an old man in a market shop and do my now practiced routine of pointing and motioning that I have a big head. He initially doesn’t believe me so gives me a couple of regular hats. He then disappears behind stacks of hats, grabs a long pole with a hook at the end and fetches one hanging 10 feet up in the air. After trying it, it very nearly fits. The closest I am likely to get. No choice on materials or looks or style or any of that rubbish. Fabric would have been better but beggars can’t be choosers. Is close enough to fit, and I will be taking a knife to it anyway so I buy it.

When back at my accommodation, I take a knife to the hat removing the head part and leaving just the rim. I poke a couple of holes with a knife and ziptie the hat rim to the helmet. Hacky as hell but seems like it should work.

Despite the newfound awareness of the enormity of my head, I am quite satisfied with my day’s efforts. So with headgear secured, I turn my attention to a similary pressing problem, Garmin GPX downloads.

Have been having so much trouble downloading my GPX activities from the Garmin website in order to upload to these CGOAB entries. It seems like the Garmin website timeouts after a few seconds meaning the problem is poor internet. I had previously asked their support about this but their response was to simply try a better network. More often than not, I try 2-3 different networks all with the same problem. The main problem with this is it disrupts my writing/upload flow. So I decided to try to find a way around this.

The first idea was to check if Garmin has a public API, but they don’t. They do have an API but only for companies and not for personal use so they can charge through the nose for. So that was a no go. I did find some projects on GitHub that attempt to reverse engineer their API so I tried some of them. These authenticated ok but hit the same problem with timeout while attempting to download GPX tracks using the API. At least the problem is consistent between web and API. Progress I think.

So then I tried monkey patching the underlying python http library to increase timeout from 10 to 30 seconds. The Garmin API then threw a 500 error rather than a timeout error. So that is a dead end.

I then found some random message on a message board to try downloading the Garmin activity in “original” format rather than GPX format. Surprisingly this worked. I guess Garmin is trying to do some expensive and time consuming processing of the original FIT file into a GPX inline during the http request. WTF! This combined with my often poor internet results in timeouts. However downloading in the original FIT format is much faster, presumably because they don’t need to do any processing on it before serving it.

So I can download in FIT format from both Web UI and the API now. Given I am this far in, I decided to continue setting up some API automation so I don’t need to deal with manual downloading from the web which would mean dealing with pointing and clicking and sign-in and finding the right activities etc.

Yes, I spent a whole day automating what takes less than a minute to do manually. A classic case of spending hours to save seconds. An excellent return on investment. But really it is about the principle of the thing… Or so I tell myself.

The crux of this automation is the following

garmin-backup.py -u "$username" --password "$password" --formats ORIGINAL "$output_directory"

Which results in a directory of zip files, one zip file for each Garmin activity. The automation then simply unzips each, and gives a better name and moves them to some shared storage between my Termux emulator and my phone so that it is accessible from CGOAB file/map upload functionality.

It feels really good to finally have a solution for this. I really wonder how other bike tourers download GPX tracks from Garmin while out on the road? This may not be the most elegant solution but it is now fast, reliable and works. And I don’t need to sign into the Garmin Connect web user interface any more which is fantastic.

The TLDR for non tech people. I automated downloads so I never have to deal with poor internet or their website again.

I spent the rest of my time in Oaxaca catching up with old friends, hanging out at cafes, drinking and enjoying Oaxacan food. Mole negro for example is a dish from here. Its heart is a very dark sauce that has over 100 ingredients including chocolate. I might have just made that up but it sounds true. Too lazy to Google it. Describing its taste is quite impossible other than saying “complex” so I won’t try.

Also spent some downtime changing out both tires. I swapped my 2.3 inch front tire to 1.8ish inch as I don’t feel like I need the wider tire anymore.

Also got some Go games in while here which is always great.

I mentioned a few entries ago that I have a decision to make here related to the Mexican state of Chiapas. Chiapas isn’t considered the safest so my 2 options are to go along the Chiapas coast (safer) or take a massive detour. I have decided to go with option 1.

We will see how the DIY hat performs in the next entry.

IMG20250224182741.jpg
IMG20250224182741.jpg
Go Games! :)
Go Games! :)
Tlayuda, another Oaxacan dish
Tlayuda, another Oaxacan dish
Mole negro
Mole negro
Before: The hat the took me way to long to find
Before: The hat the took me way to long to find
After: Am happy enough with this result
After: Am happy enough with this result