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, Open Source, Softwares, Web Tech

Digital footprint

What is digital footprint?

So, you are an active internet user. You have atleast one social media account and in some point of time have uploaded a photo, shared a video, have liked/commented on friend’s post. Also, the likes on a post,  private chat messages, the online shopping search of your favourite brand etc. Aren’t these the activities we, as individual’s tend to do to be connected and engaged or in search of something online? In simple terms, all this content builds up what is called as digital footprint.

That means, digital footprint also referred as digital shadow is a content (text or audio or video) with a set of traceable digital activities of an individual on the digital devices or any internet platform. That is, the stuff  what you leave behind when you use online services for online shopping, social networking etc.

Why should you be concerned about digital footprint?

Once you are logged into any website be it for online shopping or listening to a trending song, remember that web is secretly tracking all your actions allowing the targeted marketers to advertise exactly what products you have been browsing in you recent past. Also social media platforms often introduce new policies of usage that we may tend to accept just by clicking Accept/Ok button without actually reading the policies. User privacy is a concern.

All this data can be leaked to make a profit out of it for research in terms of marketing products and building it better for human convenience where a set of customers habits and user experience can be traced.

Can we avoid not being eavesdropped?

As suggested by one of my friend you may say as well, if privacy is a concern browse without login into websites, use browser’s incognito mode, clear browser history. That doesn’t solve the problem at base level as there is this loophole: every device has a unique IP address and uniquely the browsed content can be easily traced.

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: newnex.com

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, Poetics, Softwares

कधीतरी वेडयागत वागायला हवे

कधीतरी वेडयागत वागायला हवे
उगाचच रात्रभर जागायला हवे
सुखासीन जगण्याची झाली जळमटे
जगणेच सारे पुरे झाडायला हवे…..कधीतरी वेडयागत वागायला हवे ॥१॥

गारठयात फेकुनिया शाल, कानटोपी
कधीतरी थंडीला वाजायला हवे
छोटे मोठे दिवे फुंकरीने मालवुन
कधीतरी सुर्यावर जळायला हवे…..कधीतरी वेडयागत वागायला हवे ॥२॥

भांडयावर भांडे कधी भिडायला हवे
उगाचच सखीवर चिडायला हवे
मुखातून तिच्यावर पाखडत आग
एकीकडे प्रेमगीत लिहायला हवे…..कधीतरी वेडयागत वागायला हवे ॥३॥

विळीपरी कधी एक चंद्र कोर घ्यावी
हिरवीशी स्वप्ने धारे धारेने चिरावी
कोर कोर चंद्र चंद्र हरता हरता
मनातून पुर्णबिंब तगायला हवे…..कधीतरी वेडयागत वागायला हवे ॥४॥

कधी राति लावुनिया नयनांचे दिवे
पुस्तकाला काहीतरी वाचायला द्यावे
शोधुनिया प्राणातले दुमडले पान
मग त्याने आपल्याला चाळायला हवे…..कधीतरी वेडयागत वागायला हवे ॥५॥

स्वतःला विकून काय घेशील विकत?
खरी खरी सुखे राजा मिळती फुकट
हापापून बाजारत मागशील किती?
स्वतःतच नवे काही शोधायला हवे…..कधीतरी वेडयागत वागायला हवे ॥६॥

तेच तेच पाणी आणि तिच तिच हवा
आणि तुला बदलही कशासाठी हवा?
जुनेच अजून आहे रियाजावाचून
गिळलेले आधी सारे पचायला हवे…..कधीतरी वेडयागत वागायला हवे ॥७॥

नको बघू पाठीमागे येईल कलून
कितीतरी करायचे गेले राहून
नको करू त्रागा असा उद्याच्या दारात
स्वतःलाही कधी माफ करायला हवे…..कधीतरी वेडयागत वागायला हवे ॥८॥

-संदीप खरे

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;
console.log(x);

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.

console.log(car.details());
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, Softwares

SOS Save Our Soul

In general, SOS is a Morse code signal used internationally to indicate distress. This was originally used for maritime industry. Now a days, we see the SOS as one of the feature in mobile devices such as smartphones and smartwatches.

To use the SOS feature user can set up a list of emergency contacts. Most of the mobile device vendors have this feature enabled on press of power button. In case of emergency situation, when power button is pressed continuously certain number of times, quick alert is sent to user’s contacts about the distress or panic.

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 jslint.com. 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 jshint.com 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 eslint.org 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.