Posted in Interesting, Programming, Web Tech


What is Blockchain?

Blockchain is a decentralized and distributed system with details of digital records of transactions. The digital based ledger records are often referred to as blocks. The blocks of individual records are linked together like a chain. Hence it is collectively referred to as a blockchain.

The blockchain was invented by Satoshi Nakamoto for public transaction of bitcoin cryptocurrency.

What does a Blockchain contain?

Blockchain contains information about data i.e. relevant information about transaction, hash which is a unique code for the block, previous blocks hash. The first block which does not have previous block’s hash is called Genesis block. This series of information inside a block helps in tracking the history and difficult to modify the blockchain records hence adds security.

How transactions are done in blockchain?

For a blockchain the decision of adding the transaction to the chain is done by consensus and not by a single administrator as incase of centralized system. The majority of computers connected in the network have to validate the transaction. Also data that is available on blockchain network cannot be deleted from all systems as everybody in the network holds copy of blockchain records.

Uses of blockchain?

In cryptocurrency like bitcoin blockchain technology is very useful. Bitcoin eliminates the need of middle layer of banks and helps in asset to asset transfer as it is without the conversion of currency values based on location.

In real estate, the use of blockchain eliminates the need of notary. The records of real estates buying and selling gets recorded in the blockchain.

In hospital management system blockchain is used to record patients relevant data for doctors to access.

Posted in Interesting, Open Source, Programming, Softwares, Web Tech

Types of web cookies

This post in continuation to my earlier post which explains about Web cookie

There are types of web cookies namely

  • Session cookie: They are created during a session of user, stored in a temporary memory. They do not have any expiration date and are deleted immediately as soon as the browser is closed. The other popular names of session cookie are non-persistent cookie, transient cookie, in-memory cookie.
  • Persistent cookie: For this cookie, an expiration time is set. So, the cookie is deleted only at the expiration time and not deleted as soon as the browser is closed. They are used for maintaining session of the user. That is, once the user is logged into the website and if the user closes and reopens browser the cookie identifies if its a authorized user or not.
  • First party cookie: This cookie is set by the website and the cookie information can be used for analytics of page views, number of logged in users etc.
  • Third party cookie: Unlike first party cookie, this cookie is set by another website domain (not directly visited by user) whose plugins are used by the primary website.
  • Secure cookie: This is a cookie with encrypted data which can be used over an encrypted HTTPS connection. They are useful in e-commerce and banking websites where the safety and security of transactions in the topmost priority.
Posted in Interesting, Programming, Web Tech

Web cookie

You have been browsing the internet and chances are when you visit a website for the first time then for some of websites you may have come across a pop-up or a notification banner: “This website uses cookies” with buttons for accept and change settings. Sometimes you just say, Oh whatever that is! Let me just get into the website and press the Accept button to go about your way. So let us understand what is happening behind the scenes.

What is a web cookie?

Web cookie or browser cookie is a small piece of information which is send from website server to be stored in a user’s browser. The user may store it in its computer which is basically used to identify the computer. That is, maintain stateful information so the next time, user visits the website or on the next request it can send back, the cookie that can have some kind of information about the user that the server can make use of to make certain decisions. Other purposes could be for instance, track user’s browser activity or remember login details, track site’s user count etc.

Who invented it?

The term was coined by web browser programmer who invented cookie Lou Montulli in the year 1994 while building an e-commerce website.

Why do we see the cookie banner pop up?

The reason why we see the cookie banner popping up recently across most websites is because of legal concerns in Europe and some other countries, the GDPR(General Data Privacy Regulation) requires that the cookie banners be displayed on website to let the users know that cookies are being used by the website.

Where is a cookie useful?

Its used in session management to manage session of the user in ecommerce website. Its used for personalization like the settings that were set and saved by the user and as said earlier, also used for tracking to improve the user experience as they say it 😉

Posted in Interesting, Open Source, Programming, Softwares

Virtual Machine(VM)

What is a Virtual Machine?

A Virtual Machine or a VM is a separate instance of operating system(OS) on a host physical computer in addition to host machine’s own OS, as if it were on a different computer or a guest. A host can emulate several guests, each of which can emulate different operating systems.

Host, guest and hypervisor

The computer that is running the virtual machine is called the host whereas the program that controls virtual machines is called a hypervisor. Virtual machines can be created through software known as virtualization software. Some of the popularly used virtualization softwares are Virtualbox and VMware.

What VMs offer its users?

A VM can be easily created, modified and destroyed. We can also create and delete snapshot on a VM. A snapshot preserves the state and data of a virtual machine at a specific point in time. VM provides the flexibility to create and delete snapshots which takes a few minutes of time.

With the popularity of cloud services, cloud-based VMs use is in demand which can be accessed over an internet using a web browser. These VMs are created on a physical machine which is located at a different geographical location, which can be accessed remotely and shared by multiple users(not in parallel though) in a larger organization to make the process more agile.

Posted in Interesting, Open Source, Programming, Softwares

USB : Universal Serial Bus

One colleague at workplace had bought a brand new phone and forgotten his Type C charger at home and was asking for people around. If he was provided with one, he constantly checked the pin end to confirm the Type C. So, this is the latest USB in and around with the mobile devices we get to see. So, lets understand the USB and its evolution.

What was used before USB?

In the pre-USB era, communication between devices was done using communications ports namely parallel ports, serial ports, gaming ports etc.

What is a USB?

The USB stands for Universal Serial Bus is a standard connector used to connect peripherals to computer. Its is the most commonly used port and as the name says its quiet Universal. Its used to connect devices such as mice, cameras, printers, scanners, external hard drives, flash drives and even can do networking and also its used to charge devices such as mobile phones.

The 1st USB version was released in 1996 with release of USB 1.0. The versions are based on the speed of data transfer were

  • USB 1.0 which had a speed of 1.5 Megabits/sec.
  • USB 1.1 with a speed of 12 Megabits/sec,
  • USB 2.0 with a speed of 480 Megabits/sec
  • USB 3.0 with a speed of 5 Gigabits/sec
  • USB 3.1 with a speed of 10 Gigabits/sec
  • USB 3.2 with a speed of 20 Gigabits/sec
  • USB 4.0 with a speed of 40 Gigabits/sec
Image credits:

In addition to different speeds of USB there were different types of USB cables, connectors and ports it uses.

A typical USB cable has two ends with two different connectors, Type A at one end and Type B or Type C at the other end of the cable. Type A connector is the host connector. This can be plugged into computers Type A USB port

USB comes in various shapes and sizes: Standard, Mini, Micro. Each of these have types which are developed with the USB standards defined above.

  • Type A : is the original design for the USB standard with a flat and rectangular shape. Mostly used in host devices, including desktop computers, laptops, game, media players and so on.
  • Type B : plugs into peripheral device such as a printer, a phone, or an external hard drive. 
  • Type C : is a USB with a rectangular shape with rounded corners. It supports USB 3.1 with the top speed of 10Gbps and has much higher power output of up to 20V and 5A.
Posted in Interesting, Open Source, Programming, Softwares, Web Tech

JSON : JavaScript Object Notation

What is JSON?

JSON is a standard format for storing and exchanging data. This format is easy to understand and write. JSON is text, and we can convert any JavaScript object into JSON and vice versa. JSON format is language-independent. The JSON files can be named with extension .json.

JSON Syntax

A JSON object is enclosed inside curly brackets. Data is represented as key-value pairs separated by commas. Object data is represented inside curly brackets. Array data is represented inside square brackets.

eg. {“name” : “Nancy”, “age”: 50, “gender”: “female”}

JSON data types

Out of key-value pair, key can be string, number, or identifier names. The value can be of data types such as

  • string
  • number
  • object (JSON object)
  • array
  • boolean
  • null
Posted in Interesting, Programming, Softwares, Web Tech

Because…”this” is not that

Yes! You read it right. This is not that in Javascript and otherwise.

The this keyword in javascript can be confusing for a naive JS learner. Its behaviour varies depending on the execution context. In general, this refers to the object under current execution.

  • this, when used alone refers to a global object.
var a = this;

A browser window

  • this, when used in an object method, refers to owner of the object method.
var car = {
 model: BMW,
 colour: black,
 details: function(){
    return this.model + " " + this.colour;

this refers to the car object. The car object is owner of its properties and methods.

BMW black
  • this, when used in a function refers to a global object
function testFunction() {
  return this;

returns the global object [object Window]. However, in strict mode, the above testFuntion returns undefined

  • this, when used in event handling

refers to the html DOM element on which the event listener is placed

Click here!

alerts with button tag name.

Posted in Interesting, Open Source, Programming, Softwares, Web Tech

Web browsers and JavaScript engine

What is a JS engine?

A Javascript engine is a computer program that executes JS code in a web browser. The engine is developed by web browser vendors.

The first JavaScript engine was created by Brendan Eich in 1995 for the Netscape Navigator web browser. This has evolved to be known as SpiderMonkey engine used by Firefox.

In general, JS engines are also known as ECMAScript engines. As many web browsers there are, so are the JS engines.

  • Google chrome has V8 engine.
  • Mozilla Firefox has SpiderMonkey
  • Microsoft Edge and Internet Explorer has Chakra
  • Apple Safari has JavaScriptCore
  • Opera has Carakan(pronounced Tsharakan)

Each JS engine works in a more or less similar fashion. But, the most popular being V8 engine which used in Chrome and Node.js

Posted in Interesting, Open Source, Programming, Softwares, Web Tech

Code Linting

What does linting mean?

Linting in software world means analyzing the developed source code for potential errors and warnings such as syntactical, logical (which might have got introduced without the knowledge of a developer) with the help of a program. The program is called as a lint or linter.

Why is linting important?

This mechanism of running lint ensures that the code is bug free and adheres coding guidelines of a particular language. This also helps in maintaining code quality reducing technical debt incurred.

Each language has its own linting tools. For eg. Javascript has JSLint, JSHint, ESLint etc.

  • JSLint is a static code analyser which checks if code complies JS coding rules. Its available on The CLI is also available. It was created by Douglas Crockford in the year 2002.
  • JSHint was created by Anton Kovalyov in the year 2011 and is a fork of Duoglas Crockford JSLint project. Anton thought that JSLint was “too opinionated and less configurable”. Both, online and CLI versions  are available for this.
  • ESLint was created by Nicholas Zakas in the year 2013 as a static analysis tool which identifies problematic patterns in javascript. This tool is an advanced version of JSLint and JSHint. ESLint covers both code quality and coding style issues which were not covered by JSLint and JSHint. It supports current ECMAScript standards.Online available on and as of March 2019 ESLint is a part of OpenJS foundation. Companies such as JetBrains has integrated support for ESLint in their WebStorm code editor and Facebook has published official ESLint plugin for React projects.