Posted in Interesting, Open Source, Softwares, Web Tech

Evolution of web: Web 1.0, Web 2.0 & Web 3.0

Web 1.0

This is the earliest version of web, often referred to as static web or read-only web. In this version there were only readable contents available in the form of text and images. It was only a one way broadcast of information by businesses. End-users could only search information and read it. It was not possible for end-user to interact with the information like post an update or a picture, update comments etc.

Web 1.0 had one publisher and multiple consumers of static data.

 E.g. Shopping experience in web 1.0 era. User sees advertisement about a product on the website. Visits the store for buying it as interaction is not possible through website to shop online.

Web 2.0

To solve the Web 1.0 limitations of one publisher and multiple consumers, static data another version of web came into existence. This version of web is referred to as participative social web. As the name refers, it is an interactive form of web where end-users can participate over web to collaborate and share information for free through various platforms such as blogging, podcasting, social media content etc.

 E.g. Shopping experience in web 2.0 era. User creates an account in shopping website, searches items of his choice. Adds the item to cart and checks out by opting out payment options.

The advantage of dynamic data, 2-way communication between publishers and consumers. But all this works at the cost of loosing privacy. Because when you are logged in to shopping website which has tie-ups with social media sites for generating traffic. As policy of website, you agree to terms and conditions while sign in which has a clause to share your personal data and information.

Web 3.0

This version of web is referred to as read write execute web. Web 3.0 will enable 2-way interaction of the user with the product, eliminating the requirement of a middleman. Users have the right to remove the ads if they don’t want to watch. If they see it, the browser distributes the rewards to users generated on the ad.

It will eliminate the monopoly of big social media sites upholding users data, where users have no right to remove the ads. If they wish to do so, they are charged money for blocking the ads. Data breach, one of the crucial problems in the existing web 2.0 generation, will be eliminated.

E.g., Shopping experience while maintaining privacy

Though, Web 3.0 has advantages which solves the problem of maintaining anonymity, eliminates the middle agent, gives the power of the internet in public hands and makes it decentralized, it has certain other challenges such as unethical and illegal acts, global warming at ground level, lack of effective tracing mechanism of source of broadcast due to anonymity.

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

Microservices

Microservices are based on architectural approach of plug and play. We can create a big software which consists of smaller independent services that communicate through a channel of APIs.

As each service is independent of another, its way easier to scale up without affecting other services. Services need not share the code with other services. Each service is meant to solve a specific problem. For eg. if we have a service for login, it will be focused on getting and authenticating user details like username, password. This separation helps in easily updating, deleting the service. The risk of failure of entire application is relatively less due to a change in a single service. This architecture also provides an ease of customizing application within shorter time span.

Posted in Interesting, Memoirs, Open Source, Softwares

OTT-Over The Top and VOD-Video On Demand

Over a short period of time and with the emergence of time with coronavirus breakdown, waves and lockdowns the OTT platforms like Amazon prime, Netflix, Youtube, SonyLIV, Hotstar etc have increasingly gained lot of popularity in the digital world and home-locked youths. There is a trend of binge watching amongst youngsters.

What is OTT and VOD?

The full-form of OTT is ‘Over The Top’. It refers to television and film content can be viewed easily on mobile or screens only with use of internet connection without relying on a dedicated satellite or a cable connection.

OTT gives you an advantage of watching the content of your choice whenever you want to instead of the traditional way where you could watch the content only when the content is telecasted. Also in these platforms the content does not get downloaded to device, it gets streamed from start to the end. So it is also called as watching VOD, ‘Video on Demand’

Types of VODs

  1. SVOD : Subscription Video on Demand 
    In this mode, the user have to pay some fixed amount of price for the content they want access to and made available till a fixed end date. Just like mobile telecom service the packs are available in different price ranges. As long as users pay subscription fee, they will have access to the content. Once they stop paying, the access will be lost. SVOD can also allow users to download content and watch it but will take away access once their subscription runs out. eg.  Netflix, Amazon, Disney’s hotstar etc.
  2. TVOD : Transactional Video on Demand
    In this mode, the users don’t have to pay for access to all the content a service provider has to offer. Rather they only pay for that which they wish to watch. If you want to have access to the video only for a day or a week, you can simply rent it. TVOD service providers provide packages on each film accordingly. You can either buy the video content to keep or rent it for a little while, after which you lose access to it. eg. YouTube, Google Play Movies, Amazon Rent etc.
  3. AVOD : Ad-supported Video on Demand
    In this mode, users don’t have to pay any price amount. The content is free. The revenue earned by service providers here is through ads. Whenever a user accesses a new video, they will be shown an ad or two of a brand that pays the service provider to show users their advertisements. Through this method, you get access to all content available without worrying about paying for it. Since the users don’t pay for the content they don’t get a choice in choosing the ads they watch. eg. YouTube
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, 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, 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 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.