Image for post
Image for post
Made this meme myself, the character is from “Moomins”

What is Git Bisect ?

Git Bisect — use binary search to find the commit that introduced a bug.

Git Bisect is a handy tool used for debugging, it uses Binary Search to go through the previous commits to find out the exact commit that introduced the regression/bug in the code.

How to use Git Bisect

Start - Git Bisect you’ll need to provide it with a last known Good commit and a Bad commit. ( you can ignore the SHA for bad commit if the current HEAD is corrupted )

$ git bisect start
git bisect bad
git bisect good <sha_of_goodcommit>

Git Bisect has now begun and you’ll see a message that tells you roughly how many steps are remaining until you find the bad commit. …

Image for post
Image for post
Image Source: Angular Logo from

This is a series of Angular Tutorials.

What is Angular?

Angular is a TypeScript-based open-source web application framework which allows you to create reactive Single Page Applications

Let’s break this down, A Single Page Application or SPA for short is just one html file with a bunch of JavaScript files that dynamically rewrite the contents of the web-page ( the html file ), this makes the pages reactive meaning the data is fetched from the server only when the user asks for it and the process runs in the background making user experience really smooth.

Angular uses Typescript which is a super set of JavaScript as the primary language for it’s application development. …

Image for post
Image for post
Photo by Kelly Sikkema on Unsplash

Note: I’m writing this blog in my early twenties, so my perspective might change at a later point of time. My main motive for writing this blog is to keep a record of my thought process at different stages of life, think of this as a Time Capsule that I’m writing for myself.

Okay, let’s begin…

Starting with the WHY

Why do I feel unhappy right now? and Why am I doing this analysis?

Here’s why: I’ve noticed that every morning I wake up feeling anxious, tired and just plain unmotivated. This has been happening for quite a while now, I’ve just realized this recently. …

Image for post
Image for post

What is Design Mode?

The Design Mode is a browser specific property that allows us to directly edit the document ( website’s text contents ), by default this property is set to the off state. To enable this mode open the developer console for your browser, and then type document.designMode="on".

The practical use of this mode is for designers to make quick edits in order to get feedback from clients, but…. that’s boring! Let’s look at some fun uses for this mode:

Lack of photoshop skills shouldn’t stop your creativity, use designMode to create memes from websites and news articles. …

Image for post
Image for post
Made this on imgflip, source: Spongebob Cartoon Show

So the other day I came across this error while uploading a CSV file where Github says that it won’t accept files which are greater than 100mb.

Image for post
Image for post
Error while pushing Large files to Git

this made me realise that we’ve been taking Github for granted and that we should use it more wisely…. lol, joke…Here’s how to load up that repo:

  • Step 1: Download and Install Git-lfs ( Git Large File Storage ) from here.
  • Step 2: Setup Git lfs for your user account git lfs install.
  • Step 3: If you have already tried to commit large files and got the error then you must first undo the commit, use git reset — soft HEAD~1 otherwise ignore this step. …

Image for post
Image for post
GIF from giphy

Yup, starting from python version 3.7 dictionary order is guaranteed to be insertion order. Does that mean OrderedDict is useless now? Not really, there are a few differences which i’ll explain at the end, First let’s talk about the new python 3.7+ dicts.

contestants = { 'Randy Orton': 'Red', 'Dwayne Johnson' : 'Blue' }contestants['Jhon Cena'] = 'Red'
contestants['Dave Bautista'] = 'Blue'
del contestants['Dwayne Johnson']
# for python 3.7+ the output is {'Randy Orton': 'Red', 'Jhon Cena': 'Red', 'Dave Bautista': 'Blue'}

How’s this even possible?

A simple Hash Table consists of key-value pair arranged in pseudo random order based on the calculations from Hash Function. The traditional implementation of python dict used a sparse array which had lots of unused spaces in between. The new implementation uses a combination of dense array and sparse array, the dense array stores the key-value pair while the sparse array stores the indices to this dense array. …

Image for post
Image for post

What is Big O?

Simply put, it is a way of measuring the scalability of your code. The keyword here is measure, and Big O determines how your code runs when the initial data is changed, say from 100 items to 100 million items. It answers questions like:

  • Will the program still take the same time to run even if data set is changed
  • Will the program require more space for computation (Note: initial data set is not considered when calculating space complexities)

Why should I calculate Big O of a code?

Consider this example — you and your friend “Billy” are tasked with writing a program to sort an array of 1 million numbers. You’ve implemented it using Quick Sort (one of the fastest sorting algorithms) and Billy implemented it using Selection Sort (it’s way slower)….but, here’s the catch, Billy has a super powerful computer which can run his code much quicker than yours even though your code is more efficient. So how do we determine the winner here? That’s where Big O comes into play and using Big O we can determine the Time & Space efficiency using code alone and decide the winner, which is You

Image for post
Image for post

What is Copy Me app?

Basically it’s a GUI based app for transferring files between devices in local network ( wifi / ethernet ). There are multiple ways to do this so why make this? I’ll explain :

  • SCP way : We can transfer files using scp like so scp <file> <destination_ip>:<path> . But the problem here is that I need to find the IP of the destination device manually using ip/ifconfig… ( Laziness +1 )
  • External device ( pen drive ) : A more traditional way would be to just use a pendrive to transfer files but for this I need to get up and find a pendrive first…(Laziness…

Image for post
Image for post
Photo by Mikhail Vasilyev on Unsplash

As with any problem there are multiple ways to fix this too, but first lets look at how not to fix this.

Do not fix this problem by giving sudo permission or by changing the ownership of system directories !

Image for post
Image for post

I’m talking about commands like these

$ sudo npm install$ sudo chown -R $USER~/.npm$ sudo chown -R $USER/usr/local/lib/node_modules

which are very tempting to use when we are in a hurry and just want to get it working, but doing so will be expensive later on.

  • When we install a package globally by using sudo npm install -g it will create files like ~/.npm/_locks

Image for post
Image for post
Photo by Hello Lightbulb on Unsplash

I recently started making video games as a hobby. The first challenge that I came across was choosing the right Game Engine. I’ve went through the pros and cons of all these engines — Unity, Unreal, Godot, AppGameKit, RPG maker, GameMaker and finally chose GameMaker Studio, here’s how I made my choice :

Is it simple to learn?

My first criteria was whether the engine is simple to learn and make games on. I wanted a Game Engine on which it was very simple and fast to build small demos on before building the final game. ( or POC — Proof Of Concepts). …


Pavan Skipo

Software Engineer by Day | Game Developer by Night. If you want to know more about me visit:

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store