Linchpin by Seth Godin – Book Review

My impression after reading this book is that this book has really nice core idea, however this book does not live up to expectations. It does not have coherent flow to take this idea to completion. This book does not come to logical conclusion. While reading last few chapters of the book, It thought if author has written essays about few topics and this book is collection of these essays.

Best part of the book is the concept of linchpin, this is not entirely new concept but author has defined it in better way and have given a name to it – “Linchpin”. But beyond this point, book is primarily summary of many books that author has read, best section of this book is Bibliography.

Here are some of the statements which I liked from the book :

Linchpin are people who flourish where there is no order, no map, they create map of their own and create position of power and value. The linchpins among us are not the ones born with a magical talent. No, they are people who have decided that a new kind of work is important, and trained themselves to do it.

They are not product of a school designer to create him/her.

Someone with passion and energy, capable of seeing things as they are and negotiating multiple priorities as she makes useful decisions without angst. Flexible in the face of change, resilient in the face of confusion.

The distinction between cogs and linchpins is largely one of attitude, not learning.

Linchpins are able to embrace the lack of structure and find a new path, one that works.

She wants to mix it up. She looks for trouble; trouble gives her a chance to delight. The cog is standing by, waiting for instructions.

At the same time author wants to break the structure, for someone who wants to rise in corporate ladder this is not a good advise.

Deadlines? Surely you know someone who is late all the time. Someone who can’t deliver anything of value unless they’ve stalled so much they’ve created an urgency, an emergency that requires mind-blowing effort and adrenaline to deliver. This is not efficient or reliable behavior, and yet they persist. The reason is simple: they can’t push through the common fear of completion unless they can create a greater fear of total failure. The lizard brain is impulsive, but for these people, it’s also capable of choosing the greater risk and avoiding it.

Here are two important screenshot that define Linchpin

The book definitely has some gem of information but its it spurts, reading other parts of the book is nothing short of drudgery.

Designing My Own “Data Science & Machine Learning” Program

I have already completed my post graduation in business administration with specialization in finance, it had some exposure to analytics as well. Three years after completion of this, I got an itching to learn something about data science. Having said that, I cant imagining going for another PG but this should not stop me from learning it.

In the age of MOOC, online learning, YouTube, blogs, most of the resources are available to everyone, Yes, it is a pain to identify good resources but its there. I decided to go through some of the reputed Data Science program curriculum and derive a program for Data Science from freely available resources. I have considered following courses.

  • Master of Science in Business Analytics by UT at Austin
  • MS in Data Science by NYU
  • Master of Science in Data Science by Columbia University
  • MS in Computational Data Science by Carnegie Mellon University
  • Certificate Program in Business Analytics by ISB

I also looked at some already created road maps.


These road-maps are huge, in fact authors have mentioned that its not humanly possible to go through each resource, whoever is following these, should follow selectively.

Machine learning topics list is huge, if you start learning everything, you will loose momentum so when you start learning machine learning, consider following points

Firstly and most importantly choose your niche and start working on it,if you have not selected any niche, start reading more about different subtopics but dont delay deciding your niche.

and secondly, don’t wait till you complete all learning, start getting your hands dirty as early as possible.

Data Science in Python by University of Michigan


Python Basics, NumPy, SciPy, Pandas and Matplotlib using following two courses:

Introduction to Data Science in Python

Basic Statistics

Applied Plotting, Charting & Data Representation in Python

You can do applied plotting, charting & data representation course at later stage but I recommend you do python and basic statistics courses before you starting machine learning course.


Applied Machine Learning in Python

I am still analysing next steps and I will add these section once I figure these out.  Since now we have basic programming as well as basic understanding of machine learning this is a right time to learn required mathematics, statistics , probability before we venture ahead.

Please view this video as well




How to screen capture to GIF using Byzanz Ubuntu

Byzanz is best way to record GIF on ubuntu, only disadvantage is that its command line tool (to few like me, this is an advantage )

Simplest way to create GIF

byzanz-record --duration=5 out.gif

Now if you want to add delay of few seconds

byzanz-record --delay=5 --duration=10 out.gif

If you want to record specific dementions ?

byzanz-record --duration=15 --x=200 --y=300 --width=700 --height=400 out.gif

Here is sample recording

byzanz GIF

How to install byzanz & vokoscreen on Ubuntu


Installing byzanz is very easy on ubuntu since its package is readily available.

sudo apt-get update
sudo apt-get install byzanz

You can get it from the official Ubuntu repositories by clicking this.


To install vokoscreen, run following commands

sudo add-apt-repository ppa:vokoscreen-dev/vokoscreen
sudo apt-get update
sudo apt-get install vokoscreen

How to remove packages

If you want to remove just byzanz package itself from Ubuntu run following on Ubuntu terminal

sudo apt-get remove byzanz

To remove the byzanz package and any other dependant package which are no longer needed, run following on Ubuntu terminal.

sudo apt-get remove --auto-remove byzanz

If you also want to delete configuration and/or data files of byzanz from Ubuntu then run following on Ubuntu terminal:

sudo apt-get purge byzanz

To delete configuration and/or data files of byzanz and it’s dependencies from Ubuntu run following on Ubuntu terminal:

sudo apt-get purge --auto-remove byzanz

How to Install Notepad++ on Ubuntu

Notepad++ is one the best tool for developers. Notepad++ is a free and powerful source code editor and Notepad replacement that supports several languages. There are 3rd party plugins available to extend the functionality of the Notepad++.

If you are using windows, you can simply go to this link and download exe file to install it.

If you want to use it on Ubuntu, you would need to make some changes. Good news is that Notepad++ is now (unofficially) available as a Snap package for Linux user.

Step#1 install snapd

check if you have snapd install on your machin by using following command

$ sudo apt list --installed | grep -i snapd

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libsnapd-glib1/now 1.13-0ubuntu0.16.04.1 amd64 [installed,upgradable to: 1.33-0ubuntu0.16.04.1]
snapd/xenial-updates,now 2.34.2 amd64 [installed,automatic]
snapd-login-service/now 1.13-0ubuntu0.16.04.1 amd64 [installed,upgradable to: 1.33-0ubuntu0.16.04.1]
snapd-xdg-open/xenial-updates,now 2.34.2 amd64 [installed]

If you don’t see last line “snapd-xdg-open”, please run following command

sudo apt-get install snapd snapd-xdg-open

Step#2 Install Notepad++

After snap installation is completed, you can install notepad++ using following command

sudo snap install notepad-plus-plus

it will take some time based on your network speed. in my case, it was stuck at following for lot longer

Automatically connect eligible plugs and slots of snap "notepad-plus-plus"

Once installation is complete, you can start using notepad++

So Good They Can’t Ignore You by Cal Newport : Book Review

Before you read positives and negatives of this book, let me say this – ‘This is a must read book’. Yes, there are some fault lines in some of the points made in the book however  primary concept is good. It should be must read by everyone who has interest in productivity or performance literature or interest in understanding how to go ahead in his career. I would definitely recommend this to someone who is graduating from college.

If I have to summarise this book in one sentence then its “Working right trumps finding the right work.” You can say, author wrote 300 page book just to convey this simple idea. But wait, if someone says this to you, you are most likely accept this as obvious and forget this the next moment and wont act on it.  Author rests his case with the help of four rules and concepts such as “The craftsman mindset” and “Career Capital”.

Four rules

  1. Don’t follow your passion
  2. Be so good They can’t ignore you (Who are they ??)
  3. Turn down promotion (Really !!)
  4. Think small Act Big

Rule 1 and 2 are really though provoking.

Rule # 1 Author makes logical statements with some examples as why following passion is not correct. If you ask someone, they’ll tell you what they think they’re passionate about, but they probably have it wrong.

If you ask people what is there passion, there response will be running, reading, singing and frankly these field are very competitive and these are winner take all market, majority of population can not survive in these.

Rule #2 is most though provoking of this book, author introduces concept like  “the craftsman mindset” and “Career Capital”.

the importance of the craftsman mindset by arguing that the traits that make a great job great are rare and valuable, and therefore, if you want a great job, you need to build up rare and valuable skills—which I call career capital—to offer in return.

Part of what makes the craftsman mindset thrilling is its agnosticism toward the type of work you do. The traits that define great work are bought with career capital, the theory argues; they don’t come from matching your work to your innate passion. Because of this, you don’t have to sweat whether you’ve found your calling—most any work can become the foundation for a compelling career.

Here author also introduces deliberate practice.

Deliberate practice, the key strategy for acquiring career capital,

If you can figure out how to integrate deliberate practice into your own life, you have the possibility of blowing past your peers in your value.

Musicians, athletes, and chess players know all about deliberate practice. Knowledge workers, however, do not.

I think I have seem this in reality.

Rule#3 is more about control, It has nothing much about “‘Turn down promotion”. I guess author wanted to come up with catchy rules, that’s it.

Rule#4 is about “not making” grand plan, You can make grand plans but many things are out of your control. Also, sometimes, grand plans makes people overburdened and they fail miserably, instead, start small and keep exploiting opportunities as they come. This is all about making little bets. BTW, I have added Little Bets by Peter Sims to my “To Read” list.

Please do watch following two TED talks referred by author in this book.

What motivates people

How movement starts

Some issues:

“So Good They Can’t Ignore You” – It seems author liked this catchy statement by Steve Martin so much that he decided to use it as a book name. Although this book is about getting better but the title seems far fetched

Author says first build some capital and then find a mission. Isn’t this a chicken and egg situation ?  Suppose someone starts at retail and build a career capital but he hates retail like anything but he like lets say math or medicine or something else ? Isn’t it logical to start something with interests you ( need not be a passion). Well this seems obvious and logical but this is not clearly articulated.

Author hails mission but hates passion. If you have read any literature about vision and mission statement, you must be knowing that mission comes from “what is your passion”

To conclude

Other than above minor fault lines (which can be ignored) this is a must read book and I will definitely recommend this book not just anyone starting his career but someone who has already started his career.

Webscrapping using beautifulsoup and python

The Python programming language has an ecosystem of modules and tools that can be used for scrapping data from websites. In this article we will be focusing on the Beautiful Soup module.

Step#1 Install beautifulsoup and other required modules

To get started, you need few modules such as requests, lxml to use beautifulsoup. Install required modules as beloww

pip install beautifulsoup4
pip install requests
pip install lxml

Step#2 Understand the web page html tags structure

Let us try to scrape this wikipedia page

Some observations looking at webpage structure:

  1. There is only one h1 element and its page title
  2. There are multiple h2 elements
  3. Each h2 element has unordered list
  4. Some tags have attribute such as id, class etc.

Step#3 fetch the required data webpage.

Before fetching required value, we need to fetch whole webpage. This is achieved by using requests module.

from bs4 import BeautifulSoup
import requests

url = ''
r  = requests.get(url)
data = r.text

Step#4 parse the webpage

Now we have page loaded in html format in variable called as “data”. If you see the output of the page, it will have html tags. Now to access required tag, we need to parse this html. This is where bueatifulsoup comes into picture.

soup = BeautifulSoup(data, features = "lxml")

Step#3 search the required html tag

Variable named as soup has required html tags in a format which can be parsed.

Let us assume we want to see header (h1 tag) content. Here is the final code.


header :  <h1 class="firstHeading" id="firstHeading" lang="en">List of programming languages</h1>
header Text:  List of programming language

Please note that we need to use .text method to get the content of the tag.

Here is another example with some additional details

How to get rid of “No parser was explicitly specified” while using beautifulsoup pythong

While using beautifulsoup parsing a page, I got following warning. Although I ignored this warning for sometime, it started to become distracting to see this warning every time I run my program.

UserWarning: No parser was explicitly specified, so I'm u
sing the best available HTML parser for this system ("lxml"). This usually isn't
 a problem, but if you run this code on another system, or in a different virtua
l environment, it may use a different parser and behave differently.

The code that caused this warning is on line 12 of the file
To get rid of this warning, pass the additional argument 'features="lxml"' to th
e BeautifulSoup constructor.

There is nothing wrong with this warning and you can continue your coding however I wanted to get it corrected due to following

  1. Its distracting to see this error every time I run my program
  2. If I run my program on some other machine, it might not perform as expected since system will chose which is available.

Besides these two primary error, I get an itching if I see unformated code or uncesessary warinings. Many time I havr burned by fingures while correcting warnings (read , i was able to fix warning but it led to errors and the whole process ate considerable amount of my time.)

Don’t worry, fixing above error would not lead to an error.

Before fixing this error, install lxml

pip install lxml

To fix this warning, simple replace following line

soup = BeautifulSoup(data)

with this line

soup = BeautifulSoup(data, features = "lxml")

Now run your program and it will run without any warning.