TRIE

TRIE is a tree data structure that allows string with similar characters prefix to use the same prefix data and store only the tails.

Each level of the tree stores the Array or Linklist of the characters except the ROOT.

Why TRIE?

The traditional data structures process the pattern and then finds the Text to be matched, so the time complexity to search the pattern is proportional to the length of the text.

TRIE can be of two types Standard TRIE and Compressed TRIE

(more…)

Tornado reusable components using UI modules

Tornado templates use UI modules to improve the DRYness of the code and make it reusable across different templates in the project.

UI modules are like special function calls to render components of your page, and they can come packaged with their own CSS and JavaScript.

(more…)

Cross Site Request Forgery Prevention

CSRF(cross-site request forgery) is the attack in which unwanted operations are performed on the currently authenticated user’s states like changing the password or transferring the fund, enabling/disabling any service.

In the worst scenario, it can be performed on the administrative account, in that case, it will compromise the security of the entire application.

For example, there is an endpoint to change the contact number

GET http://mysite.com/change-number?new=12345

One of the ways to carry out the CSRF is that intruder can exploit the URL which is most likely to be clicked by the user.

<a href='http://mysite.com/change-number?new=54321'">Check your daily horoscope</a>

(more…)

Postgres Schema level migration using Alembic for Python

The popular database choice among python developers has been PostgreSQL, One of the main reason behind it is PostgreSQL Schemas. Schemas provides the ability to group collections of tables of the database under one name.

Schemas are homologous to directories at the operating system level, except that schemas cannot be nested.

Some advantages of using PostgreSQL schemas are:

  1. To allow many users to use one database without interfering with each other.
  2. To organize database objects into logical groups to make them more manageable.
  3. To allow users to make use of the tables in the schema,  privileges need to be granted by the owner.

(more…)

Amazon ​S3: ​Direct ​Browser ​File ​Uploads

“If computers of the kind I have advocated become the computers of the future, then computing may someday be organized as a public utility just as the telephone system is a public utility… The computer utility could become the basis of a new and important industry.”

– John McCarthy, speaking at the MIT Centennial in 1961

(more…)

Git: When to Rebase and when to Merge?

Overview

In Git, Merge and Rebase are two of the main ways to integrate changes from one branch to another branch. In this article, we’ll be looking at some of the best practices of using these two commands.

(more…)

git grep – The Search Ninja

You might already be familiar with some of the search commands like find, grep etc. In this post, we are going to talk about git grep which is an amazing command to find contents within a git repository.

(more…)

Hacks to have fulfilling work day

Every 9-5 job holder will understand how tedious it gets to keep doing the same monotonous work day after day and week after week. (more…)

A Brief Intro- Artificial Intelligence, Machine learning, Deep Learning and Data Science.

Past a year, when Google DeepMind’s AlphaGo program beated a South Korean Master in the oldest game of Go, media was coming up with terms like Artificial Intelligence, Machine Learning and Deep Learning to describe how a program won. At the same time people Harvard Business Review calls a job of data scientist as “The Sexiest Job of the 21st century”. What are these? Are these all same? (more…)

4 Tips To Make An Impact As An Entry Level Software Engineer

If you are starting your career as a software engineer, you must take some proactive steps to manage your career.  (more…)