How to get a new bike (without actually buying a new one)

For the impatient:

  • Rub the dirt off the wheels with paper towels (or some rag you don’t mind throwing away, because it’ll get very dirty)
  • Grease the chain thoroughly to dissolve the soot adhered to it
  • Very gently rub the dirt off the chain
  • Grease the chain again
  • Wash your hands (many times) with warm water and gentle soap, perhaps a brush
  • Possibly moisturise your hands

Continue reading “How to get a new bike (without actually buying a new one)”

Fixing a “git mess” with cherry pick (from the command line)

Yesterday we were remotely pair programming (by me sharing my screen and my colleague Alex looking at it), and at some point I had to send a PR with a test change to validate the process would trigger the automation he had set up… but turns out he had changed something on the repo after I had forked and cloned it, and so I had a conflict!

I somehow resolved it (note to self: talking while resolving conflicts is not a good idea) but when I then pushed my branch to GitHub and created the pull request, it would not run automation because of that conflict (even if I had ‘resolved’ it).

I did not want to clone again and apply the changes… and neither wanted Alex! He said that everything is fixable with Git, so he showed me how to get myself out of this situation.

First we add the upstream remote to our repository, so we can check it out:

git remote add upstream https://github.com/user/repo.git

We fetch the data from the upstream repo:

git fetch upstream

Run a git log to find the hash of the commit we do want to keep (the Good Commit):

git log

Say it produces something like this:

commit 0BAD0BAD0BAD0BAD0BAD0BAD0BAD0BAD0BAD0BAD
Author: sole
Date:   Thu Mar 2 16:02:03 2017 +0000

    AAAAARGHHHH

commit 1337133713371337133713371337133713371337
Author: sole
Date:   Thu Mar 2 15:55:26 2017 +0000

    testing at the request of @ochameau

commit 0b225a66cf3ad67b3c67360d0e7c1e329ca3ce34
Author: Alexandre Poirot
Date:   Tue Feb 28 11:57:23 2017 +0100

    Upload screenshot and status

We don’t want the last commit (0BAD0BAD), we want the previous one (13371337). So make a note of that hash somewhere.

Now we check out their master branch (which we want to use as the base for our modification):

git checkout upstream/master

And we tell git to apply our changes from The Good Commit, using the hash we found before:

git cherry-pick 1337133713371337133713371337133713371337

Since I didn’t even change the same file he changed in his other commit, this applied neatly. No conflicts!

The problem is that my local repository is now different from the GitHub copy, because I had pushed a version which had an additional commit to resolve ‘the conflict’ (I tell you, this was quite messy!)

The solution is to force push to my GitHub repository (gasp!):

git push origin HEAD:master -f

And you don’t need to update the PR that had “conflicts”–GitHub already picks that you updated the repository, and since there are no conflicts anymore, the integration stuff works 🙂

How does one survive cycling in London?

Many people read my last post and asked me how did I manager to cycle in London. They find it scary (no wonder) and stressful (indeed).

My solution is two-fold: framing and intention.

Framing: I consider the bike as an instrument that will get me where I want faster than if I walked or took public transport (as I can go door to door). I am not trying to win a race or competing with anyone… and honestly, it would be quite ridiculous to attempt that with a folding bike. Let the fancy bikes speed ahead!

Intention: I try to be as generous as possible with everyone else in the street. Everyone in London is so goddamn stressed with everything, and rushing everywhere. So obviously they are going to cut corners to get to places faster. In contrast, when I cycle, I’m often where I would be in 40% or less of the time I would spend otherwise, so I have a lot of time to be generous.

Pedestrians will try and cross whenever they can. Motorists will speed ahead when they see an amber light (instead of stopping) which often results in they invading the Advance area for cyclists, or 👏🏼the 👏🏼 whole 👏🏼 zebra 👏🏼 crossing 👏🏼.

I used to get so upset with all this, but as we say in Spanish, if you want to get upset you have two tasks: getting upset and calming down. So I’d rather not get upset, but be more empathetic and generous instead.

I used to go to great efforts to place myself in the Advance area. But after being gifted with a few death threats from other motorists in the past just by placing myself in my designated area (which the Met police ignored very efficiently, I must add), I have decided that I’d rather wait behind the psychopaths’ cars. Let them speed ahead! I also leave enough space for cyclists and motorists in a rush to squeeze through the gaps as well. If they want to brave the side mirrors, the drivers spitting through the window while stopped on a traffic light, the doors that open unexpectedly and all that, let them do it! I’ll wait behind–or if the traffic is too bad, I’ll walk and push the bike on the pavement, and become a pedestrian temporarily, instead of breathing the exhaust fumes from the vehicles.

I also try to be super careful with pedestrians, by riding as slowly as possible in situations where there’s a lot of people on the pavements (rush hour!), and basically assuming any of them will jump on the road the minute I least expect them to cross.

I also used to get super upset at this as well (“Are you trying to kill us both!!? do you not see what YOU are doing??!”), but now I just try to imagine that…

  • they’re tired, or
  • they have had a bad night’s sleep/a long day, or
  • the layout of the street doesn’t make it clear enough that they’re walking on the cycle lane, or
  • they are just overwhelmed, and essentially can’t notice when very quiet cyclists approach (in contrast with a noisy motor vehicle).

So instead of getting upset, I try to just get on with it. It’s a busy city, full of people, and as I said, I’m in no rush. Everything’s chill, I say to myself. With enough warning, I’m more than pleased to slow down or stop and allow people to cross, even if there’s no explicit zebra crossing. Spending 45 seconds on that won’t make me late, and I might have contributed some good will to their day. Sometimes they even smile! I think this generosity is worth it.

That said, I’m considering getting one of those laser lights, as they seem to be more effective at announcing my presence than my super bright lights. TFL have installed them on their public hire bikes and I have seen pedestrians noticing them and not crossing the road immediately.

But you know what still gets me sometimes? The mansplainers—which are always a white man on his 40s. He shows up from nowhere, imparts you a lesson on whatever aspect of cycling he deems worthy to illuminate you on, and then leaves before you can even ask them to “get lost” 🙄. I mostly ignore them and give them a blank stare (“is this your voice that I’m hearing or is it just the buzz of the city?”), but some days I commit the error of trying to argue with them, and it’s always doomed to fail! 💩

Please note that I am not condoning other people’s irresponsible behaviour (jumping lights, crossing on red, etc) and suggesting we all work around that. I do wish people did abide by the rules, because it would prevent accidents, make traffic flows more efficient and make everyone more relaxed, and I also wish TFL improved infrastructure and signalling so flows were safer, more synchronised and efficient, but until all those puzzle pieces fall in place, this is my strategy to cycle without getting upset.

New cycle achievement unlocked

I normally cycle to work, but I hadn’t dared cycle to the gym from work yet. Those days, I took the tube, although I did find it cumbersome to walk to and from the station: it’s about 20 minutes extra I could possibly shave off if cycling.

“But what if I’m tired?”, I kept thinking. “What if cycling to the gym is tiring and then I am too tired to cycle from the gym?”

And so I kept taking the tube on gym days.

But yesterday something flicked on my brain and I was determined to do it. And I did it! 💪

It was mostly easy on the way in, but the way out took me through many, many back streets, and I spent as much time as if I had taken the tube, because I had to keep checking the directions on every turn: there were too many for me to remember, and London’s layout is very difficult to keep in your brain.

That said, I was very pleased with myself that I achieved this. Yay!

As a funny end note, I was tracking my route with Strava, which has “user-generated” segments in routes. One of the segments I went through has the best name ever: “little path of horrors” 😂–I don’t remember that area being particularly bad or full of potholes, but it made me crack up nevertheless, haha!

Electric Berlin to Spring-ish London

I came back from Berlin today.

Sorry I didn’t tell any of you, Berlin-based friends. This trip was for work and I ended up so tired every day, I barely had enough energy left to order dinner.

I love visiting Berlin–I like its edgy/artsy/DIY/independent vibe a lot. But I think this week was way too cold for my poor Mediterranean self. Thankfully, I did look at the forecast before leaving, so I was prepared.

But dry spaces like an office plus warm clothes tend to cause a lot of static electricity on me, and I ended up getting shocks with everything I touched, metal or not: tables, doors, my laptop, my phone, people (I’m so sorry I gave sparks to so many people this week when shaking hands), chairs, sofas, and would you believe it… AN APPLE! Have you ever had an apple shock you? Well, I had, and it was a most puzzling experience! I could even hear the spark! 😱

It reached a point in which I was afraid of touching things–I became a hesitant creature which delayed touching whatever it was I had to interact with, while I tried to decide what would be the best way to maximise surface contact so the shock was less focused and painful. For example, I tried to grab the door handle with the palm instead of the tips of the fingers. Or quickly tried to place both palms on my laptop after coming back to it, for the same reason. Or I devised futile solutions to reduce my electric potential such as walking barefoot, or touching the floor with my hand before touching the door. Eventually, nothing worked and I got the shocks anyway ⚡️. Ahhh!

I also somehow managed to just visit Vietnamese and Japanese restaurants while I was there. It wasn’t intentional-it’s just it’s such a great place for Vietnamese food; I always find fantastic stuff while there, really fresh and fairly priced.

That said, I was happy to go back to London, if only to not to get more shocks!

Berlin had turned the “brutal cold that makes your nostrils want to retreat into your skull” into “acceptable winter chill with sunny intervals” yesterday, but it had migrated into “somewhat miserable damp day” today. This was topped by the ever-so-claustrophobic experience at Tegel–I’ve never seen an airport so cluttered!

What a nice surprise it was when we landed and the sun was shining. I didn’t even care that much that they dropped us in Terminal 5C and I had to take the train to T5. There were still a couple hours of daylight when I arrived home!

DAYLIGHT…!

I have not seen much of it this week, and I felt as if it was suddenly March and the air is full of promises of Spring and flower scents, and songbirds.

In truth, what it was possibly full of is toxic gas fumes and other pollutants because people can’t be arsed to take public transport or walk, and so keep using taxis and ubers, and ordering take aways and buying online stuff that needs to be delivered to your doorstep… but let’s skip over that part and the noises, and just focus on the fact that I could aimlessly walk around my neighbourhood during daylight, looking at the roofs and the facades tinted in yellow, appreciating the distinct architectural styles… and all this without carrying a bag or backpack or my luggage, and also without being covered in layers of winter clothes. What a wonderful feeling!

I missed this.