How I do things

Cyborg scraping

LinkedIn has a page that shows the people who most recently followed you.

At first, it shows just 20 people. But as you scroll, it keeps fetching the rest. I’d love to get the full list on a spreadsheet. I’m curious about:

  1. What kind of people follow me?
  2. Which of them has the most followers?
  3. Who are my earliest followers?

But first, I need to scrape this list. Normally, I’d spend a day writing a program. But I tried a different approach yesterday.

Aside: it’s easy to get bored in online meetings. I have a surplus of partially distracted time. So rather than writing code to save me time, I’d rather create simple tasks to keep me occupied. Like scrolling.

So here’s my workflow to scrape the list of followers.

Step 1: Keep scrolling all the way to the bottom until you get all followers.

Step 2: Press F12, open the Developer Tools – Console, and paste this code.

copy($$('.follows-recommendation-card').map(v => {
  let name = v.querySelector('.follows-recommendation-card__name')
  let headline = v.querySelector('.follows-recommendation-card__headline')
  let subtext = v.querySelector('.follows-recommendation-card__subtext')
  let link = v.querySelector('.follows-recommendation-card__avatar-link')
  let followers = '', match
  if (subtext) {
    if (match = subtext.innerText.match(/([\d\.K]+) follower/)) {
      followers = match[1]
    } else if (match = subtext.innerText.match(/([\d\.K]+) other/)) {
      followers = match[1]
    }
  }
  followers = followers.match(/K$/) ? parseFloat(followers) * 1000 : parseFloat(followers)
  return {
    name: name ? name.innerText : '',
    headline: headline ? headline.innerText : '',
    followers: followers,
    link: link ? link.href : ''
  }
}))

Step 3: The name, headline, followers and link are now in the clipboard as JSON. Visit https://www.convertcsv.com/json-to-csv.htm and paste it in “Select your input” under “Enter Data”.

Step 4: Click on the “Download Result” button. The JSON is converted into a CSV you can load into a spreadsheet.

I call this “Cyborg scraping“. I do half the work (scrolling, copy-pasting, etc.) The code does half the work. It’s manual. It’s a bit slow. But it gets the job done quick and dirty.

I’ll share later what I learned about my followers. For now, I’m looking forward to meetings 😉

PS: A similar script to scrape LinkedIn invitations is below. You can only see 100 invitations per page, though.

copy($$('.invitation-card').map(v => ({
  name: (v.querySelector('.invitation-card__title') || {}).innerText || '',
  link: v.querySelector('.invitation-card__link').href,
  subtitle: (v.querySelector('.invitation-card__subtitle') || {}).innerText || '',
  common: (v.querySelector('.member-insights__count') || {}).innerText || '',
  message: (v.querySelector('.invitation-card__custom-message') || {}).innerText || '',
})))

PS: A similar script to scrape LinkedIn people search results is below.

copy($$('.entity-result').map(v => {
  const name = v.querySelector('.entity-result__title-text [aria-hidden="true"]');
  const link = v.querySelector('a');
  const badge = v.querySelector('.entity-result__badge [aria-hidden="true"]');
  const title = v.querySelector('.entity-result__primary-subtitle');
  const subtitle = v.querySelector('.entity-result__secondary-subtitle');
  const summary = v.querySelector('.entity-result__summary--2-lines');
  const insight = v.querySelector(".entity-result__simple-insight-text");
  return {
    name: name?.innerText || '',
    link: (link?.href || '').split('?')[0],
    badge: badge?.innerText || '',
    title: title?.innerText || '',
    subtitle: subtitle?.innerText || '',
    summary: summary?.innerText || '',
    insight: insight?.innerText || '',
  }
}))

Designing Complex Shapes in PowerPoint

I use PowerPoint instead of Adobe Illustrator or Sketch. I’m familiar with it, and it does everything I need.

One of the features I’m really excited by in PowerPoint is the ability to manipulate shapes.

Let’s say you have a rectangle and a circle. You can select both of these shapes and in the Shape Format > Merge Shapes dropdown, you can:

  • merge them with a union
  • combine them (like an XOR operation in Boolean algebra)
  • fragment them, which breaks them up into pieces
  • intersect them
  • subtract them

This is so powerful that you can create any kind of shape. Let’s take an icon from Font Awesome at random — say an address card — and create it.

Here’s the video of the process. I’ll explain it step-by-step below.

First, let’s take a screenshot of this and copy it into PowerPoint.

Now let’s draw over this. So we’ll start with a rounded rectangular box with the same color as the address card. We can use the eyedropper to pick the right color. Remove the outline. Then match the edges as closely as you can. (Add a bit of transparency so you can see through it — that helps match edges closely.)

Move this card boundary to a new page.

Now, on top of the original image we copy-pasted from Font Awesome, trace 3 rounded rectangles for the address lines. Trace a circle over the head. Fill them white. Remove the outline. It should look like these.

Next, let’s create the body. We’ll create a rounded rectangle that matches the bottom half of the body, another that matches the top half of the body, and intersect them, like this:

Then, draw a large circle around the head and subtract it from the body, like this:

Finally, copy all these shapes over the card boundary on the next page. Select the card boundary first. Then select these copied shapes (3 address lines, head, and bust). Select Shape Format > Merge Shapes > Subtract.

With that, we have a single shape that contains the entire address card. The white areas are transparent.

You can download the Merge-Shapes.pptx file below with each of the steps.

Like I said, I don’t bother with Adobe Illustrator or Sketch. PowerPoint does it all for me 😊.

Jolie No. 1

There are more Bollywood actors in Hollywood. Some are even turning down Hollywood roles.

So we wondered: How easily can a Bollywood actor connect to a Hollywood actor?

As part of the Oct 2019 Gramener data story hackathon, AnandKishore, and Niyas created a Jolie No 1 — a data video where Govinda announces (in our imagination) that he will act with Angelina Jolie in Jolie No 1, but declines to comment on who introduced them.

We picked a theme first

The hackathon theme was “movies”. We explored 5 themes:

  1. Who acts most in cameo roles, and what’s the impact on revenue? (Based on The Numbers)
  2. Which actors acted often together? (Based on IMDb data)
  3. Which movies become hits on TV? (Based on BARC TV data)
  4. What is the social network of actors in individual movies (https://www.xkcd.com/657/)
  5. Correlation of TV series actors and their revenues

We explored insights next

We picked the first two themes because we liked them.

1. Cameo appearances

Some observations were:

  • Stan Lee starred in 45 cameo roles. No one even comes close. Some roles are:
    • A school bus driver in Avengers: Infinity War (2018)
    • A strip club DJ in Deadpool (2016)
    • A hot-dog vendor in X-Men (1995)
  • Jay Leno (25) and Larry King (21) follow, mostly starring as themselves
  • Alfred Hitchcock (16) has famous cameo appearances in most of his films, such as:
    • Man mailing letter in Suspicion (1941)
    • Man winding the clock in Rear Window (1954)
    • Man walking the docs in The Birds (1963)

We didn’t have inflation-adjusted box-office revenues, so we couldn’t compare the revenues.

2. Which actors acted often together

Some observations were:

  • Top hero-heroine combo:
    • Overall: Prem Nazir & Jayabharati
    • Hollywood: Billy Dee & Mike Horner (pornstars)
    • Tollywood: Krishna Ghattamaneni & Jaya Prada
    • Bollywood: Jeetendra & Rekha
  • Top male combo: Sivaji Ganesan & Nagesh (more recently, Senthil & Goundamani)
  • Top female combination: Lalitha & Padmini
  • Top pair of:
    • Shah Rukh Khan: Rani Mukherji
    • Amitabh Bachchan: Hema Malini
    • Kamal Haasan: Sridevi
    • Rajinikanth: Sridevi
    • Sridevi: Krishna Ghattamaneni
    • Chiranjeevi: Vijayshanti
    • Dev Anand: Madhubala

The observations focus on Bollywood and Hollywood (because of our familiarity) — but there are number of insights on Japanese and French films too.

We decided to go with this theme because it offered multiple storylines:

  • Some actors pair up with each other, e.g. Gemini – Savithri
  • Some actors have a big “following” e.g. RajinikanthKamal HassanJitendra have acted most with Sridevi
  • Some actors form cliques — working only with each other
  • Often, comedians are the bridge between cliques
  • It’s interesting to see how actors from one clique can connect to another

Creating the storyline

When exploring of actors’ connections, we found a clearly delineated network structure.

Actor SNA

The group of densely clustered actors is the Bollywood-Tollywood-Mollywood-Kollywood nexus. It appears disconnected from the Hollywood cluster. (We excluded anyone who hadn’t acted together in at least 4 films.)

The data was created using this Jupyter notebook.

We realized that it’s tough for someone in Bollywood to connect to Hollywood. Maybe that could be the plot? For example, what if Amitabh Bachchan wants to act with Metryl Streep?

But this isn’t an interesting story. So we asked:

The plot summary was: Govinda wants to act with Angelina Jolie. Who can connect them?

The analysis is in this Jupyter notebook.

Write the screenplay

The morning of the hackathon was spent finalizing the screenplay and dialogues, written on Dropbox Paper.

CUT TO:
    - Video of Govinda "declining James Cameron's Avatar" on Aap Ki Adalat
    - Niyas: On July 29, 2019, Govinda announces he declined a role in Avatar.
    - Video: https://youtu.be/NyFF18a7e-Y
    - Picture: https://twitter.com/mohan_rajkeshav/status/1156148768049262592

CUT TO:
    - Visual: Show an interview video of Govinda and of Angelina
    - Niyas: Today, he announced his next film with Angelina Jolie.
             A “close friend” connected them, but didn't say who.
    - Kishore: Who is this close friend? Why is he not naming them?
    - Video: https://youtu.be/NyFF18a7e-Y (Govinda)
    - Video: https://youtu.be/JNrH1W7aKc8 (Angelina)

CUT TO:
    - Visual: Show the top 8 heroines Govinda has acted with.
              Visualize this data with animation.
              One option is to have Govinda’s pic in the center,
              and have each of these 9 heroine’s images appear around him
              as a circle, with the number of pictures in a link.
              Or as the inverse link distance (e.g. 11 is closest)

    11 Neelam Kothari
    10 Kimi Katkar
    10 Karisma Kapoor
     9 Raveena Tandon
     9 Farha Naaz
     8 Juhi Chawla
     6 Anita Raj
     6 Mandakini
     5 Shilpa Shetty Kundra

    - Niyas: Maybe it’s because it’s one of his heroines?
             He’s mostly acted with Neelam, Kimi and Karishma.
             But none of them has acted with any Hollywood actor.

MORPH TO: 
    - Visual: Add these actors with pics to the same visual,
              but clearly differentiated by gender. Also add their names.

    22 Shakti Kapoor
    18 Kader Khan
    13 Gulshan Grover
     9 Anupam Kher
     8 Dharmendra
     7 Johnny Lever
     6 Sadashiv Amrapurkar
     6 Vikas Anand
     6 Sanjay Dutt
     6 Prem Chopra
     6 Asrani

    - Kishore: So maybe this “close friend” is a male actor?
    - Niyas: He’s acted with Gulshan Grover, Kader Khan and Shakti Kapoor a lot.
    - Kishore: Shakti Kapoor is practically his boyfriend!

MORPH TO:
    - Visual: Zoom into Gulshan Grover and Anupam Kher.
              Build a network of film posters around them
              with their Hollywood films (max 2-4)
        - Anupam Kher
            - Bend It Like Beckham
            - Lust & Caution
            - Silver Linings Playbook
            - A Family Man
        - Gulshan Grover
            - Prisoners of the Sun
            - The Second Jungle Book
            - Marigold
            - Monsoon
    - Niyas: Gulshan Grover and Anupam Kher have acted in a number of Hollywood films
    - Kishore: But have they acted with Angelina Jolie?
    - Niyas: No, never with Angelina Jolie.
    - Kishore: But what if any of them connected him to someone who connected him to Angelina?

CUT TO:
    - Visual: Show Angelina Jolie with ~100 actors around her. Highlight the following:
        - Jack Black, 3
        - Dustin Hoffman, 3
        - Giovanni Ribisi, 2
        - Robert De Niro, 2
        - Brad Pitt, 2
        - Elle Fanning, 2
        - Bryan Cranston, 2
        - 92 other actors with only 1 film each
        - Highlight Irrfan Khan — A Mighty Heart
    - Niyas: Angelina Jolie has acted with less than 100 actors.
             Dustin Hoffman and Jack Black, mostly.
             Only one of them is an Indian actor: Irrfan Khan

MORPH TO:
    - Visual: Expand the connection between Angelina and Irrfan
    - Kishore: So, Govinda needs to connect to Irrfan Khan somehow.

MORPH TO:
    - Visual: Connect Govinda to Irrfan Khan via
        - Gulshan Grover via Knock Out
        - Sanjay Dutt via Knock Out
        - Tabu via Saajan Chale Sasural, Dil Ne Phir Yaad Kiya (and 2 others)    
    - Niyas: That should be easy.
             Gulshan Grover and Irrfan Khan have acted together in Knock Out.
             So has Sanjay Dutt.
             But Tabu will be a better option. Govinda and Irrfan Khan have acted with her in 4 movies each.

MORPH TO:
    - Visual: Show path from Govinda to Tabu to Irrfan to Angelina.
    - Kishore: Then, Govinda must have connected to Tabu
               who introduced him to Irrfan Khan,
               who in turn connected him with Angelina Jolie.

Create the video

Anand and Niyas created the visuals on PowerPoint, collaborating on Dropbox.

This is the first version of the presentation. It uses morph transitions extensively.

PPT screenshot

Niyas and Kishore recorded the audio in two parts on their phone, shared it with Anand via WhatsApp.

We integrated these using the Windows 10 video editor. It’s simple, but now powerful. For our use, simplicity was more important.

The process took 6 hours (from 8 am to 2 pm).

  • Writing the screenplay and dialogues: 1.5 hours
  • Creating the presentation: 2 hours
  • Recording the audio: 1 hour
  • Integrating into the video: 1.5 hours

At the last minute, we picked the title “Jolie No. 1” as a parody of Govinda’s No. 1 film series).

We published this on Google Drive, and then on YouTube.

How to direct a data movie

Ganes and I created a data movie on speed-cubing records as part of a Gramener hackathon.

Here’s a video of us talking about how we created it.

Anand: We picked the Rubik’s cube story for this hackathon. Tell me more about how this excited you.

Ganes: Since my son started solving the Rubik’s cube a few months back, I’ve been fascinated with these competitions. I still don’t know how to solve it, but I like watching it.

Anand: But he does?

Ganes: Yeah, he does. So, in the competitions, I’ve seen kids solving the Rubik’s cube in under 10 seconds. So that was the first source of amazement. I’ve seen kids doing it with one hand, blindfolded. I first couldn’t believe it. Doing it with their legs. So that got me really interested.

When we were talking about this, and I was sharing my amazement, we were talking about the hackathon and the conversations kind of merged. So that, I think, the curiosity around it led to picking this as the story.

Anand: And what was the next step?

Ganes: I have always seen the World Cube Association publishing these records. Their website is great. So I thought maybe we could scrape from that, and that’s when I start looking at the website and the competitions we can pick. and then I stumbled on the export feature where they have multiple formats neatly curated that you can take and directly start the analysis.

Anand: Which was actually a big factor in deciding to go for this. Big data set. Very rich, interesting possibilities.

Ganes: So we had had some five or six ideas. This immediately shot up to the top. So after we got the idea, you kind of took over. I think after I mentioned that all these formats were available, it got you excited. So what did you do after that?

Anand: Then it became a question of what all interesting things we can find. It’s almost an exploratory data analysis, but my approach to EDA (exploratory data analysis) is: let’s formulate the hypotheses and then validate, and see if there Is an interesting story behind it.

So it begins with, for instance, the speed at which records have been broken. Today, it’s at 3½ seconds. We know that. But how fast did it fall? Or: what’s the spread of solving-speed for somebody who solves it fast? Does the same person solve it really fast sometimes and really slow sometimes? Is there a movement in their average? You said, “Let’s see how much longer it takes to solve bigger cubes.” Nikhil was going to take the demographics of solvers and see how they’re spread out. There are definitely a lot of Chinese solves in the spread. So, the thing was, let’s look at possible ideas that could lead to an interesting answer, and then validate those.

Ganes: It was almost like “What would we be interested in finding out” and not necessarily like looking at the column of data.

Anand: Yes. And that I think is important, because, from the data, there may be some ideas. But after absorbing it, knowing what’s interesting is what should drive the story.

Ganes: Right. Yeah. So that was a good starting point. We listed all of these on the board. Then, what did you do next?

Anand: Then it’s about proving these. So, we know here are some possible interesting stories, and let us explore and validate whether these are, in fact, interesting, or can be turned into something interesting. So, when I looked at the speed at which records were broken, for instance, I thought that would be an interesting story. But it wasn’t. It was just getting broken at a steadily successive pace.

But something that I did not expect emerged, which is that Wusheng Du, who holds the world record, is not the person who was there in the records consistently. In fact, Felix Zemdegs has been the consistent winner for the last 10 years and is the only cubing champion who’s won the WCA twice. So, that was something that emerged from doing the analysis. So, that has the ability, therefore, of both proving what we’re looking to prove (or disproving), and also coming up with new stuff that we can choose to incorporate into the story.

Ganes: Almost like starting with a business hypothesis, or what, in the enterprise world, the business wants to know, and then once you get into the data, the data is revealing a few interesting insights, and then you kind of marry both. Looks just like that.

Anand: Exactly. Exactly.

Ganes: So, we identified the insights. And then, the target here was to come up with a 2 minute video. So how did you plan from insights to the video.

Anand: So, one of my cousins is a director, and she tried explaining to me the concept of a screenplay. I never really understood it, even though I’ve read a number of screenplays. So, in the last hackathon, when I was creating a (data) movie, that’s when I realised: as I started writing what I want to shoot (because it requires a whole lot of planning), I was effectively writing a screenplay.

The steps are, basically, you have to decide what are the frames or the sequences you want to shoot. So, one sequence was: we want to introduce this Rubik’s cube win. Another sequence was: we want to show how quickly different types of cubes can be solved, etc.

So, for each of these, what I do is: create a storyline that has the following structure. One: what is the message I want people to take away from that.

Ganes: The headline from there.

Anand: Exactly.

And then, in order to do that, what are the words I would narrate on top of it? That literally forms the dialogue. The third thing is, what are the visuals that prove the dialogue. That I structure in the form of a video. The fourth thing is the transition — from one video to another, or from one sequence to another, how do I flow. These are the 4 things that I captured.

When I write down the full dialogue. I speak it out, put in a timer, and then say “OK, this took 10 seconds, this took 15 seconds, this took 14 seconds” and so on.

Then comes the process of recording (the audio). Assembling the visuals, yes, but timing it and sequencing it based on the recording is pretty critical. So, actually, I wanted your voice – it’s better. And initially, I wanted you to do the recording, but because you were busy in the Dell workshop, I had to do the recording to make sure that I get the timing. Then you re-recorded post that.

That recording makes a huge difference. The audio quality on my iPhone is better than the laptop. I transfer it via Dropbox on to the system.

Ganes: Were there some issues because you have some insights and you have a certain sequence, but it may not add up to 2 minutes. Or, there might be something which will just not flow. How do you correct those issues?

Anand: I found that I consistently underestimate (the time). I thought that we only have material for 1½ minutes, but I knew at that point that invariably, because of this bloat, it will somehow add up to 2 minutes. Which is exactly what happened. It moved to 2 minutes 4 seconds.

Ganes: Yes. Exactly. Yeah.

Anand: So, once you’ve done it once or twice, that amount of correction is there. It’s in fact a whole lot easier to control a video than something as crazy as a (software) program, for instance. The estimation error in programming is much higher than this.

The good part is that post production or editing can take care of a lot of stuff. That 2-minute video can be cut to 1½ if required.

Ganes: Yeah, it can be improved, but my biggest fear is: after recording, the post production is a nightmare. It takes hours and hours of effort. A five-minute video, to post, probably takes 2 hours.

Anand: That is true.

Ganes: How do you go about it? After having these audio clippings, videos and images, how do you stitch all together into a video?

Anand: My workflow is on PowerPoint, mostly, and then on Windows Video Editor. And then you introduced iMovie into the mix.

PowerPoint makes it fairly simple. I can put in an audio in the background. I can handle the animations. It’s not a great tool at all, but it’s a tool I’m very familiar with. So, my workflow is: one slide is one shot or one headline in the storyline. Then I record the video independently or download it from YouTube, put it in the background or wherever. Create all the visuals, create the animations around it, put it there. At this point, the raw material is in. Then I insert the audio and let it play the background for that particular slide. Then I time the animation to the audio.

This is a slow process because PowerPoint doesn’t have the right tools. So I play the audio till that point and then set the animation. Then I start from the beginning again, play the audio to the next point, and then set that animation. Which takes a long duration. But once that’s sorted out, I play that full slide and it works out, I then go back and correct.

The good part is that the audio is the time keeper. I pre-recorded the audio. So I know that the entire duration is only going to be 1.8 minutes (and then towards the end we added a few more vidoes that took it to 2 minutes). So the audio keeps you in control, and if you synchronize everything to the audio, then it becomes easier.

Then I exported it into a video file from PowerPoint directly, and then did a little bit of post-processing, adding a background music and adding a few captions, mostly, on Windows Video Editor, and then gave it to you. Which was at around 9 o’clock or so. What did you do from 9 o’clock to 3 o’clock?

Ganes: So, the first thing — on the PowerPoint, I couldn’t believe that you’d done all this on PowerPoint. Yes, you’re taking the tool beyond the limit it was designed for.

I’ve been working with iMovie for a year, and I find it very powerful. For someone who doesn’t come from that background, it was very easy for me to pick up. I had the images and raw video footage for the different portions we were trying to introduce. I was able to split the audio that you recorded from the video, and then was able to record mine and add it. iMovie has these multiple streams you can insert and remove. I had one stream for my audio for my voice over. And there was this video which you had.

On top of that, I could overlay the pictures and other videos that I had towards the end — two videos playing side-by-side. So all of that was possible. and then I could also introduce background music at the very end. iMovie makes it very easy to move all of these things around. And even the synchronization issue which you told about, that’s much easier to resolve in iMovie.

So, all of this finally coming together, I think, at 3 o’clock… when I had all of this, at 3 o’clock I was hunting for the background music (laughs). I was playing all kinds of clips and finally I chose one. So that’s how we got the final YouTube video.

Anand: My lesson from this is: make sure you have a team member who has a Mac!

Ganes: Right, yeah. So let’s go back and look at our video and see what we can learn from it. Thank you!

2 inches will change my life

I walked ~11 million steps in the last 3 years, at ~10K steps daily.

Since 1 Jan 2018, I’ve steadily increased my walking average until Aug 2018. Then my legs started aching. So I cut it down until Jan 2019. In Feb, I resumed and was fairly steady until May 2020. To complement workouts like this, products that are aimed for men over 50 can be used.

In May, my wife refused to let me walk for more than an hour a day. It took me a few months to convince her and level up. I ended 2020 averaging a little over 10K steps for the year.

I’m becoming more regular. I walked 10K/day 15% more in 2020 than in 2018.

2018: I walked 10K steps almost half the time.
2019: it grew to a bit more, to 56%.
2020: I walked 10K steps a day almost two-thirds of the time.

But in May 2020, I went for 5 days without walking even 3K steps.

In 2018, I started being more and more regular until my leg started aching.
2019 was fairly consistent.
2020 is when I applied brakes again — for very different reasons.

I’ve never gone for 5 days without walking even 3K/day before, since 2018. At most, it was 3 days at a stretch.

But when my wife refused to let me walk for more than an hour a day in May 2020, I went on strike! 😉

I walk ~77 min daily. This has increased over the years.

In 2020, this has gone up slightly to 84 min — but it’s still under an hour-and-half. I spend most of this time on calls or listening to audio books / podcasts.
Instead of spending it with my family.

Sometimes, I lose myself in calls and walk for almost 3 hrs and 20K steps.

Naveen is usually to blame. But this happens rarely. I walked 20K steps just 6 times over the last 3 years.

Though the longest walk here indicates over 3 hrs, I’ve never walked 3 hrs in a day.

On 21 Nov, my daughter borrowed my phone and went for her walk. So my phone shows our combined walks, not mine. Many of the other long walks are spread out during the day when I commute by walking in Singapore.

Datehrskm#Why?
21-Nov-203.4615.51My daughter took my phone.
These are her + my walking stats.
15-Nov-192.9811.52Walked to meetings in Singapore.
17-Sep-192.9610.73Walked to meetings in Singapore.
11-Jul-202.8913.94Was talking to Pratap & Ganes.
15-Oct-182.839.55Walked to meetings in Singapore.
03-Sep-202.8213.06Was talking to Naveen & my coach.

I want to walk faster. I walk at ~4.4 km/hr. My target is 5 km/hr.

Walking at over 5 km/hr speeds the heart up and improves metabolism. (Or so I’ve heard.)

I was steadily going towards 5 km/hr in my early days of walking. I slowed down starting Aug 2018, since my legs were aching. Then I picked up speed in end-2018.

I slowed down again in Nov 2019 — and I don’t remember why.

In Jun 2020, I started walking much faster — mainly to complete 10K steps within the hour my wife gave me. That seems to have had a lasting impact. I walked faster overall in 2020.

I’ve managed fast walking 66 times in 2020, a bit more than before.

In Jun 2020, I walked at over 5 km / hr on 20 / 30 days — a very consistent high speed. I’ve never gotten close to this any other month.
(Clearly, there are adverse effects of being able to convince my wife.)

The fastest I walked was in 2018, at 6.8 km/hr. It might have led to my leg aches.

My top 5 walking speeds were in 2018. In 2020, I’ve managed to walk faster than 6 km / hr just once.

Fastest dayskm/hr
07-Jun-20186.80
05-Jan-20196.65
16-Mar-20186.34
08-Jun-20186.31
06-Feb-20186.19
05-Jun-20206.02

The normal stride/height ratio is 0.43. I’m 5’8″. My stride is 2.4 ft. That’s almost exactly 0.43 times my height. So all is well.

By increasing my stride by 2 inches, I can cover 10,000 steps in 8 min less time.

For every inch I lengthen my stride, I walk ~0.2km/hr faster.

I’ve walked with a stride as long as 32″, which is 3″ more than my 2020 average stride. By walking with a 2″ longer stride, I can be 9.2% faster.

So in 2021, I plan to get healthier (and scolded less) with a 2″ longer stride.

A longer stride means a faster walk. That’s a good cardio exercise.
A faster walk also means that it takes less time. So I’ll get beaten up less.
All it takes is stretching my legs 2″ more. Might hurt a bit. I’ll report on this when I know better.

NowNewChangeBenefit
Longer stride29″31″2″Builds character?
Faster walk (kmph)4.55.00.5Better cardio exercise
Time to 10K steps (min)8477-8Less scolding from wife

PostScript: This analysis was done in Excel. Download see the sheet below.

My year in 2020

In 2020 I made 3 resolutions.

  1. Read 50 books. I almost made it. Here are my reviews.
  2. Walk 10,000 steps daily. I managed it, like the last two years.
  3. Lose 2 kgs. I failed — and instead, put on 6 kgs.

On self-improvement, I completed a Landmark course and an Art of Living course. Both had a huge productivity impact. (Mail me for details.)

On software, I starting playing Minecraft and moved from Gmail to Windows 10 Mail. More on this.

On training, we built a data storytelling course and intend to train 100,000 people. (You can register for a free 90-min online workshop.)

In 2021, I’m taking up 3 new goals.

  1. Lose 10 kgs. I’ll share my stats publicly.
  2. Fail big. Take up initiatives I’m likely to fail on and learn.
  3. Calendar integrity. Do what my calendar says, no matter what.

Hope you have an amazing 2021!

Books in 2020

My Goodreads 2020 Reading Challenge target is 50 books. I’m at 45/50, with little hope of getting to 50. (I managed 25/24 in 2019.)

The 10 non-fiction books I read (most useful first) are below.

  1. The Lean Startup by Eric Reis.
    The principle of Build – Measure – Learn is useful everywhere in life too, not just in startups.
  2. Never Split The Difference by Chriss Voss.
    Shares principle-driven strategies to convince people.
  3. The 4 Disciplines of Execution by McChesney, Covey & Huling.
    Teaches how to build execution rigor in an organization. A bit long at the end, but the first section is excellent.
  4. Sprint by Jake Knapp.
    A detailed step-by-step guide to running product development sprints that you can follow blindly.
  5. How to Fail at Almost Everything and Still Win Big by Scott Adams.
    Dilbert’s author shares his strategies for life. Very readable, intelligent, and slightly provocative, but always interesting.
  6. The Five Dysfunctions of a Team by Patrick Lencioni.
    Written as a story (like The Goal). Talks about the 5 problems in teams and how to overcome them.
  7. The Culture Code by Daniel Coyle.
    Explains the elements of strong cultures – belongingness, shared vulnerability, and shared purpose.
  8. Data-Driven Storytelling by Nathalie Henry Riche et al.
    Shares the latest points of view on telling data stories. My team and I read these chapters as a group.
  9. Leaders Eat Last by Simon Sinek.
    Inspiring when I read it, but I don’t remember what it said.
  10. Deep Work by Cal Newport.
    Shares tactics to focus. Practical and useful.

I also started, by haven’t finished these four:

  1. Hacking Growth by Sean Ellis & Morgan Brown
  2. The Laws of Human Nature by Robert Greene
  3. How to Fail at Almost Everything and Still Win Big by Scott Adams
  4. Stories at Work by Indranil Chakraborty

I read these 25 works of fiction — mostly by Brandon Sanderson (my current favorite author) and Brent Weeks.

  1. Lightbringer (Books 1-5) by Brent Weeks.
    In a world where color is woven as magic, the most powerful man is caught in politics. This series had enough twists and turns to keep me hooked till the end.
  2. Skyward (Books 1-2) by Brandon Sanderson.
    An outcast girl on an outcast planet becomes a fighter pilot with an alien spaceship. I love the way this is developing.
  3. The Wheel of Time (Books 1-6) by Robert Jordan.
    I picked it up again mainly because Brandon Sanderson wrote the last 3 books. It was great up to book 4 but has started dragging.
  4. Alcatraz Versus The Evil Librarians (Books 1-4) by Brandon Sanderson.
    The author lies to you. Literally. And tells you that he will, in almost every other paragraph. Great book for kids to laugh over.
  5. Night Angel (Books 1-3) by Brent Weeks.
    An assassin in a story that spans centuries of the history of magic.
  6. Legion (Books 1-3) by Brandon Sanderson.
    A detective who has multiple split-personalities in him — that help him solve cases.
  7. Snapshot by Brandon Sanderson.
    What if you could create a snapshot of the world, enter it, interact with it, and solve crimes?
  8. The Art of Letting Go: Poetry for the Seekers by Sanhita Baruah.
    It’s my first poetry book. (I hate poetry.) I took this up to see if I could survive it, and get a fresh perspective. I survived.

… and these 10 comic books/series.

  1. Batman, Volume 1: The Court of Owls
  2. Batman, Volume 2: The City of Owls
  3. World War Hulk (1-5)
  4. Superman: Red Son (1-3)
  5. Flashpoint (1-5)
  6. Batman – The Long Halloween (1-13)
  7. Batman – The Killing Joke
  8. Kingdom Come (Vol 1-4)
  9. Spiderman: Ends of the Earth
  10. Amazing Spiderman, Vol. 1

At the moment, I’m at 45 books, with little hope of completing 5 more this month unless I pick up comics. So that’s exactly what I’m going to do 😉

Happiness generator

In my current thrust towards greater management responsibilities, I have discovered a mechanism for generating happiness.

I set up meetings on important topics. That makes me happy — I’m driving something useful.

Often, the meeting gets cancelled. That makes me happy — I’ve more free time.

It’s the perfect perpetual motion machine.

Dissecting my Airtel bills

My monthly postpaid mobile bills have been in the Rs 2,000 – Rs 3,000 range for some time now, and I spent a few hours dissecting them yesterday.

Page 3 had the good stuff. It’s a little hard to figure out, but what the last 2 columns say is that most of my spend is offset by discounts.

2015-08-11 18_26_53-Start

What’s not getting offset are outgoing roaming calls. Followed by calls to local landlines. For all practical purposes, that’s the only thing that counts in this bill. Everything else is close enough to zero.

It took me some time to figure out that Airtel postpaid has something called myPlan. Based on your plan, you get set of “myPacks” or discounts. That determines your final bill. And it turns out that I was barely using my quota in some areas – specifically data. I had 3GB of data available. I was typically using 200MB – 500MB. The last 2 columns on page 2 show the usage of myPacks.

image

Clearly, I can do with less data, less SMS, less local mobile, and perhaps less STD mobile. I might need more outgoing roaming, but that’s about it. This means I need fewer myPacks. So I was able to switch to the Rs 799 plan from the Rs 999 plan, while simultaneously increasing the number of free outgoing roaming calls I can make.

There seems to be no myPack for incoming roaming, so I’m actually better off calling people if I’m travelling, rather than receiving calls!

The rest of the bill is a treasure-trove of data, listing every call and every pulse of data connection. I only wish it also had the location of the calls, and were available as CSV files.