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.

“Hands-On Web Audio” at London JS meetup

I gave my “Hands-On Web Audio” talk at the London JS meetup, held at the offices of Just Eat. It was broadcasted as a Hangout, and also recorded so you can replay or see if you couldn’t attend:

https://www.youtube.com/watch?v=hIcTU5RbrhM

BAAAAH they seem to have deleted or disabled the video. BAHHHHH!

If you want to play along, the slides are live here and here is the source code as well. Disclaimer: depending on your computer, they might be a bit too much in both Firefox or Chrome. There seems to have been a regression and the intro sound is extremely stuttering in “slower” computers (slower as in “a MacBook Retina”).

It was a bit awkward because their big screen was actually six TVs and most of the content in my slides is centered vertically on the slide, which coincided with the middle of the frames, so it was quite unreadable. That is why you’ll hear a number of comments akin to “oh this is very inconvenient” from me, during the talk.

After I finished the talk itself, we had a round of questions, and I also showed how to debug web audio with the Web Audio editor in Firefox DevTools.

Feedback on the talk seems really positive and I’m happy people got interested in playing with the Web Audio API and making dubstep! YES!

Great talk! I left inspired to go play. I’d used some features of the audio API before but Sole’s enthusiasm and dubstep obsession triggered a string desire to get creative with it again.

Spectacular demo by Soledad. She really knows what she’s talking about

I’m really happy that people were happy and interested in the API 🙂

Side note, 1

A few people asked me about the slides: how are they made?! are they WebGL?! can they use the system to make their own slides?

Answer: they are WebGL, and they use three.js underneath. Right now the system is quite hardcoded, but I’m happy to announce that I’m working on refactoring the code so anyone can build their own 3D slide deck, using their own demo scenes. So I guess I am building a slide deck framework… 😬 #sendhelp

You can have a look at the project here, but don’t send me requests yet, kthx. An online demo is available as well. Right now it can only render basic H1-H4 and P nodes… in 3D! Not bad!

Side note, 2

I was really excited that I made it to the meetup (!), because I forgot my phone home that morning. I found out when I was in the office already, and I didn’t want to go back. So I printed the map and started cycling to the meetup place. Except I didn’t know very well the area, so I got lost twice. Not too bad though, I stopped and produced my paper map and let people look at me with weird looks (“she’s looking at a paper map!”). Anyway, I used:

a) my brain, instead of trusting everything to a GPS enabled device
b) those little maps in the street showing where you are

and I made it!

The way back was easier as I knew the area before. I tracked my route using my fitbit, and was really pleased to see that I had reached almost 30km/h on my humble Brompton.

It was coincidentally also Cycle To Work day yesterday, so I was doubly pleased that I cycled to work and also to meet up.

Should there be a Cycle To Meetup day too? I think so 😏

Post #mozlondon

Writing this from the comfort of my flat, in London, just as many people are tweeting about their upcoming flight from “#mozlondon”—such a blissful post-all Hands travel experience for once!

Note: #mozlondon was a Mozilla all hands which was held in London last week. And since everything is quite social networked nowadays, the “#mozlondon” tag was chosen. Previous incarnations: mozlando (for Orlando), mozwww (for Vancouver’s “Whistler Work Week” which made for a very nice mountainous jagged tag), and mozlandia (because it was held in Portland, and well, Portlandia. Obviously!)

I always left previous all hands feeling very tired and unwell in various degrees. There’s so much going on, in different places, and there’s almost no time to let things sink in your brain (let alone in your stomach as you quickly brisk from location to location). The structure of previous editions also didn’t really lend itself very well to collaboration between teams—too many, too long plenaries, very little time to grab other people’s already exhausted attention.

This time, the plenaries were shortened and reduced in number. No long and windy “inspirational” keynotes, and way more room for arranging our own meetings with other teams, and for arranging open sessions to talk about your work to anyone interested. More BarCamp style than big and flashy, plus optional elective training sessions in which we could learn new skills, related or not to our area of expertise.

I’m glad to say that this new format has worked so much better for me. I actually was quite surprised that it was going really well for me half-way during the week, and being the cynic that I sometimes am, was expecting a terrible blow to be delivered before the end of the event. But… no.

We have got better at meetings. Our team meeting wasn’t a bunch of people interrupting each other. That was a marvel! I loved that we got things done and agreements and disagreements settled in a civilised manner. The recipe for this successful meeting: have an agenda, a set time, and a moderator, and demand one or more “conclusions” or “action items” after the meeting (otherwise why did you meet?), and make everyone aware that time is precious and running out, to avoid derailments.

We also met with the Servo team. With almost literally all of them. This was quite funny: we had set up a meeting with two or three of them, and other members of the team saw it in somebody else’s calendar and figured a meeting to discuss Servo+DevRel sounded interesting, so they all came, out of their own volition! It was quite unexpected, but welcome, and that way we could meet everyone and put faces to IRC nicknames in just one hour. Needless to say, it’s a great caring team and I’m really pleased that we’re going to work together during the upcoming months.

I also enjoyed the elective training sessions.

I went to two training sessions on Rust; it reminded me how much fun “systems programming” can be, and made me excited about the idea of safe parallelism (among other cool stuff). I also re-realised how hard programming and teaching programming can be as I confronted my total inexperience in Rust and increasing frustration at the amount of new concepts thrown at me in such a short interval—every expert on any field should regularly try learning something new every now and then to bring some ‘humility’ back and replenish the empathy stores.

The people sessions were quite long and extenuating and had a ton of content in 3 hours each, and after them I was just an empty hungry shell. But a shell that had learned good stuff!

One was about having difficult conversations, navigating conflict, etc. I quickly saw how many of my ways had been wrong in the past (e.g. replying to a hurt person with self-defense instead of trying to find why they were hurt). Hopefully I can avoid falling in the same traps in the future! This is essential for so many aspects in life, not only open source or software development; I don’t know why this is not taught to everyone by default.

The second session was about doing good interviews. In this respect, I was a bit relieved to see that my way of interviewing was quite close to the recommendations, but it was good to learn additional techniques, like the STAR interview technique. Which surfaces an irony: even “non-technical” skills have a technique to them.

A note to self (that I’m also sharing with you): always make an effort to find good adjectives that aren’t a negation, but a description. E.g. in this context “people sessions” or “interpersonal skills sessions” work so much better and are more descriptive and specific than “non-technical” while also not disrespecting those skills because they’re “just not technical”.

A thing I really liked from these two sessions is that I had the chance to meet people from areas I would not have ever met otherwise, as they work on something totally different from what I work on.

The session on becoming a more senior engineer was full of good inspiration and advice. Some of the ideas I liked the most:

  • as soon as you get into a new position, start thinking of who should replace you so you can move on to something else in the future (so you set more people in a path of success). You either find that person or make it possible for others to become that person…
  • helping people be successful as a better indicator of your progress to seniority than being very good at coding
  • being a good generalist is as good as being a good specialist—different people work differently and add different sets of skills to an organisation
  • but being a good specialist is “only good” if your special skill is something the organisation needs
  • changing projects and working on different areas as an antidote to burn out
  • don’t be afraid to occasionally jump into something even if you’re not sure you can do it; it will probably grow you!
  • canned projects are not your personal failure, it’s simply a signal to move on and make something new and great again, using what you learned. Most of the people on the panel had had projects canned, and survived, and got better
  • if a project gets cancelled there’s a very high chance that you are not going to be “fired”, as there are always tons of problems to be fixed. Maybe you were trying to fix the wrong problem. Maybe it wasn’t even a problem!
  • as you get more senior you speak less to machines and more to people: you develop less, and help more people develop
  • you also get less strict about things that used to worry you a lot and turn out to be… not so important! you also delegate more and freak out less. Tolerance.
  • I was also happy to hear a very clear “NO” to programming during every single moment of your spare time to prove you’re a good developer, as that only leads to burn out and being a mediocre engineer.

Deliberate strategies

I designed this week with the full intent of making the most of it while still keeping healthy. These are my strategies for future reference:

  • A week before: I spent time going through the schedule and choosing the sessions I wanted to attend.
  • I left plenty of space between meetings in order to have some “buffer” time to process information and walk between venues (the time pedestrians spend in traffic lights is significantly higher than you would expect). Even then, I had to rush between venues more than once!
  • I would not go to events outside of my timetable – no late minute stressing over going to an unexpected session!
  • If a day was going to be super busy on the afternoon, I took it easier on the morning
  • Drank lots of water. I kept track of how much, although I never met my target, but I felt much better the days I drank more water.
  • Avoided the terrible coffee at the venues, and also caffeine as much as possible. Also avoided the very-nice-looking desserts, and snacks in general, and didn’t eat a lot because why, if we are just essentially sitting down all day?
  • Allowed myself a good coffee a day–going to the nice coffee places I compiled, which made for a nice walk
  • Brought layers of clothes (for the venues were either scorching hot and humid or plainly freezing) and comfy running trainers (to walk 8 km a day between venues and rooms without developing sore feet)
  • Saying no to big dinners. Actively seeking out smaller gatherings of 2-4 people so we all hear each other and also have more personal conversations.
  • Saying no to dinner with people when I wasn’t feeling great.

The last points were super essential to being socially functional: by having enough time to ‘recharge’, I felt energised to talk to random people I encountered in the “Hallway track”, and had a number of fruitful conversations over lunch, drinks or dinner which would otherwise not have happened because I would have felt aloof.

I’m now tired anyway, because there is no way to not get tired after so many interactions and information absorbing, but I am not feeling sick and depressed! Instead I’m just thinking about what I learnt during the last week, so I will call this all hands a success! 🎉