Issue #8: 10 Reads, A Handcrafted Weekly Newsletter for Humans

Hey y’all,
Here are 10 reads I thought were worth sharing this week. The total time to read this newsletter is 125 minutes.
Everything we hear is an opinion, not a fact. Everything we see is a perspective, not the truth. — Marcus Aurelius
  1. Introvert or Extrovert? Here’s How to Boost Your Productivity: 10 mins read. I consider myself an introvert and I have no issues accepting that. I agree with post’s author that few people are pure introverts or extroverts. It could depend on the situation or people we hang out with. For me the best part of the post was productivity tips for introverts. Interesting I also came with the same conclusions as shared in this post for boosting my productivity. The four productivity tips for introverts — 1) Control your environment 2) Focus on one-on-one interactions 3) Slow down 4) Prepare for meetings.
  2. Survivorship Bias And Startup Hype: 5 mins read. Luck plays a significant role in business success. Not just in the mere fact of success, but in the magnitude of any given company’s triumphs. We tend to overlook this reality because of a mental distortion called survivorship bias. It is a common cognitive failure, and a dangerous one because it obscures the distastefully harsh nature of the world.
  3. Don’t Eat Before Reading This: 20 mins read.  Anthony Bourdain shares some trade secrets of chef industry. He writes Being a chef is a lot like being an air-traffic controller: you are constantly dealing with the threat of disaster. You’ve got to be Mom and Dad, drill sergeant, detective, psychiatrist, and priest to a crew of opportunistic, mercenary hooligans, whom you must protect from the nefarious and often foolish strategies of owners. Year after year, cooks contend with bouncing paychecks, irate purveyors, desperate owners looking for the masterstroke that will cure their restaurant’s ills: Live Cabaret! Free Shrimp! New Orleans Brunch!
  4. The Bullshit-Job Boom: 15 mins read. We all have seen people bullshitting around and reaching the top and then building a senior team with all bullshitters together. This happens in most organization. I love the definition of bullshit job. Author writes a form of paid employment that is so completely pointless, unnecessary, or pernicious that even the employee cannot justify its existence even though, as part of the conditions of employment, the employee feels obliged to pretend that this is not the case.
  5. Becoming a dramatically better programmer : 15 mins read. It is always beneficial for me to read posts like these. They either teach me a new way to look at how I can become better programmer or they assure me if I am doing something right. I also realized most of the suggestions mentioned in the post and trying to follow them. The post is divided into two parts — 1) Learning skills directly 2) Learning meta-skills. The first part Learning skills directly talks about importance of building new skills that complement your existing skillset and learning things that you think you don’t completely understand. The second part learning meta-skills is about deliberate practice, identifying common mistakes, and deep work.
  6. Pain Plus Reflection Equals Progress : 10 mins read. Author writes, The easy path means being the same person you were yesterday. It’s easy and comfortable to convince yourself that the world should work differently than it does, that you have nothing to learn from the pain. The harder path is to embrace the pain and ask yourself what you could have done differently or better or what your blind spot was. It’s harder because you stop living in the bubble of your own creation and start living in reality.
  7. Seven Reasons Why RightSizing AWS EBS Capacity Is Hard : 10 mins read. Right-sizing EBS volumes can provide a handsome return on investment. The reason is simple: AWS charges for provisioned capacity, not consumed capacity, and almost all AWS customers over-provision their EBS volumes. In our experience, the average amount of unused storage is about 75%. That’s a lot of empty storage that AWS customers are paying for!
  8. CPU utilisation is wrong : 5 mins video. This is a 5 mins video by Netflix’s Brendan Gregg on why %CPU is not the right way to measure performance.
  9. Go code refactoring : the 23x performance hunt: 15 mins read. These days I am also working on a piece of code where I am trying to do performance optimisation. This blog give me some ideas to explore. A good post at the right time for me.
  10. Building A Pub/Sub Service In-House Using Node.js And Redis: 20 mins read. The primary reasons for building an in-house Pub/Sub system are 1) Reliability 2) High Performance 3) Cost effectiveness.

TIL #9: PostgreSQL SQL query to find column count for all the tables in a PostreSQL schema

Today, I wanted to find column count for all the tables in a PostreSQL schema. The following query could be used.

select table_name, count(*) as column_count 
from information_schema."columns" 
where table_schema = 'public'  
GROUP by table_name order by column_count desc;

TIL #8: Installing and Managing PostgreSQL with Brew

This post documents how to install and manage PostgreSQL using brew package manager for macOS.

To install PostgreSQL using brew, run the following command.

$ brew install postgresql

If you wish to start and stop PostgreSQL, then you do that using following brew commands.

$ brew services stop postgresql
$ brew services start postgresql

Create a database for your username

createdb `whoami`

To fix the error role "postgres" does not exist, run the following command

createuser -s postgres

Now, you will be able to log into psql using both your username and postgres

psql
psql -U postgres

To get information about your PostgreSQL installation, you can run following brew command.

brew info postgresql

There are time you might forget if you installed PostgreSQL using brew. You can check if PostgreSQL was installed by brew by running following command.

brew list |grep postgres

The brew package manager installs PostgreSQL under following location.

/usr/local/Cellar/postgresql/

The configuration files as inside following directory.

/usr/local/var/postgres

Issue #7: 10 Reads, A Handcrafted Weekly Newsletter for Humans

Hey y’all,
Here are 10 reads I thought were worth sharing this week. The total time to read this newsletter is 135 minutes.
  1. 10 Practices to be a better Scrum Master : 10 mins: This is a good read for any Agile team. For me the best practice among the list is Don’t Beat the Team over the Head with an Agile Rule Book. This is what most Agile coaches or Scrum master get wrong. They try to force rules that they themselves have never followed. Other thing that I have observed is that many of the Agile coaches have either never done software development or if they did it was 5 or 10 years in the past. I think they can be more helpful if they have real Agile software development experience.
  2. Your IDE as presentation tool: 10 mins. I do that is most of my talks as well. It is difficult to get it right but if you are confident and prepared well your talk can be more informational to the audience.
  3. Remote Only: 15 mins: I worked remotely for couple of years when I was working with Red Hat. I enjoyed the experience most of the time but there was times when you feel lonely or wanting to work with people. I plan to do remote work again in future as I think it is more productive than working in open space offices. This post shares practical tips, advantages, and disadvantages of working remotely. The best point for me is Writing down and recording over verbal explanations. In the book Rework by Basecamp guys, they talked about if they had to hire between two equally competent people they would prefer to hire a person who is a better writer.
  4. The Day You Became a Better Writer (2015): 5 mins. This is small useful post giving advice on how to write effectively. The key point for me is Simple writing is persuasive.
  5. Replacing jQuery with Vue.js: No Build Step Necessary: 15 mins: The post uses simple examples to demonstrate how we can replace jQuery with Vue.js. Vue.js looks simple to use and you can introduce it to your project incrementally.
  6. Fear of Better Options (FOBO) is The Reason You Can’t Make a Tough Decision : 15 mins. The post talks about why having more choices and optimising for the best option leads to frustration, stress, regret, and unhappiness. The reality of the matter we will never have complete information so we will never be in position to make the best bet. The author suggests instead we should look at option and the first that meets our criteria should be chosen. This decision making paradox happens to us in all walks of your life. This is relevant when you are trying to make decision about partner you want to settle or what next thing you should learn. I usually get overwhelmed when I have to decide what should I learn next.
  7. The Scientific Argument for Mastering One Thing at a Time: 5 mins. The counterintuitive insight from all of this research is that the best way to change your entire life is by not changing your entire life. Instead, it is best to focus on one specific habit, work on it until you master it, and make it an automatic part of your daily life. Then, repeat the process for the next habit.
  8. Building Services at Airbnb, part 1 and Building Services at Airbnb, part 2 : 30 mins. Airbnb is moving its infrastructure at an accelerated pace towards a SOA (Service-Oriented Architecture), but moving from a monolithic Rails service towards a SOA while building out new products and features is not without its challenges.
  9. 6 things I’ve learned in my first 6 months using serverless : 10 mins. The six lessons are 1) Ditch Python 2) Burn the middle layer to the ground 3) Enjoy the Vue 4) Learn to love DynamoDB 5) Serverless Framework FTW 6) Authorization is the new sheriff in the town.
  10. Genius as Circumstance : 15 mins. There is a way of thinking about genius that could powerfully encapsulate the creative process. It begins by no longer applying the term to individuals. If calling an individual “a genius” sounds pompous and grandiose, describing some thing as “genius” is commonplace. “That was a genius move,” I find myself saying too often for it to actually mean very much.

Refactoring conditional logic

A couple of weeks back I was working on a piece of code that was becoming a tangled mess of if-else conditions. I was finding it difficult to reason and adding a new condition without breaking the existing code was becoming difficult. I knew as we will discover rules for new conditions the code in the class will grow. I was not satisfied with the code so started looking for ways to refactor the code. The code used in this post uses Java 8 as the programming language.
Continue reading “Refactoring conditional logic”