What is an API? Could it merit protection under IP Laws?

The full form of API is application programming interface, which you probably knew and it does not help further in this case.

Now this term API has a wide-range of meaning when two software developers come to a conversation. It could mean the URL of a website, it could mean access to a server, it could be the login parameters of a database, and it could also simply mean a method in which two different entities exchange information.

As a developer if I had to get a source of international exchange rates for an app I would search “exchange rate API” on Google. Similarly for cat pictures, I would search “cat pic API”.

However, if I had to also find out the position of the cursor for a desktop app that I was developing, I would also search “desktop cursor API”.

Although generically used today, the original intention was to use the term only for software applications within one computer.

We will look into the different aspects of API through examples, and not technical language, so that you can decide if they merit protection under IP laws.

Continue reading “What is an API? Could it merit protection under IP Laws?”

Search engines, Deep web & the Darknet

In this article we will focus on mainly how the search engines work. Thereafter, we will discuss indexability, and the differences between surface web, deep web and the darknet.

Pre-internet period

There was a time when goods and services important to us would either appear on the newspaper classifieds’ section or on the Yellow Pages. There also used to be those bulky BSNL/ MTNL telephone directories offered for free on taking a new connection.

These indices used to have exhaustive contact information about all sorts of legitimate businesses. Needless to say, they did not contain contact information of businesses working outside the purview of public policy. Guns, pornography, drugs, etc. had no place in these public directories.

Continue reading “Search engines, Deep web & the Darknet”

Breaking: Smart Contracts (blockchain) legalised in Arizona

On March 29, (2017) Arizona Governor Doug Ducey signed the bill HB 2417 into law1. As covered earlier by IndiaTechLaw on Smart Contracts, this bill seeks to amend the current law and bring legal validity to blockchain signatures.

Continue reading “Breaking: Smart Contracts (blockchain) legalised in Arizona”

The Mt. Gox incident – the largest bitcoin hack ever

An American software developer named Jed McCaleb founded a platform in 2006 named Magic: The Gathering Online eXchange. He set up the platform for secure exchange of trading cards used in a video game by the same name, using the domain name mtgox.com. This platform allowed cards to be bought and sold like stocks.

Some quarters say that it was this underlying technology of trading imaginary cards securely that formed the basis of bitcoins. Although McCaleb never released the original code written by him for Mt. Gox, it is true that the bitcoin technology is similar to such card exchange technology. It is also in popular notion that the anonymous author of the Bitcoin paper,1 Nakamoto, is probably McCaleb himself.

It is important at this juncture to understand how the bitcoin and blockchain works. I would recommend you to go through my earlier post on What are bitcoins / cryptocurrency / blockchain – what is so different than fiat money?

Continue reading “The Mt. Gox incident – the largest bitcoin hack ever”

What is digital information and how does the computer work? For a lawyer

The entire gamut of Indian Technology Law contains references to “digital information”, “digital signatures”, “cryptography”, “public key”, “private key”, etc.

And without clarity at the origin it gets much difficult at later stages to understand more technical and quirkier concepts like “blockchain”, “cryptocurrency”, etc.

This article therefore explains to you how information is actually stored on a physical hard drive and how it is used for functional equivalence with real world elements.

Forget everything you know about computers and read on..


What is so digital?

A machine

Have you ever thought that “the clock is so amazing, it knows the time and shows it to us”? This article is for all those who thought otherwise.

A machine does not know anything, it is designed in a way to return something of value when an input is submitted. The mechanical parts of a clock would act repeatedly in a certain way on being provided an electric source. Even after that, a clock can show us the correct time only when the starting time was correctly entered.

So in a mechanical clock, there are three ingredients, the machinery inside, the correct time as an input, and a constant energy supply (mechanical or electric).

The clock is designed to show a textual representation of information readable and useful to us.


Saving data

Imagine a clock which instead of numbers shows text and has 26 characters of the alphabet on the edges. You can store one character of English Alphabet on such a clock by using the hour hand to point toward the character.

So now if you want to store the word “INDIA”, you can store it as “9-14-4-9-1” pointed by hour hands of five such clocks. 

You can save the entire “The Ramayana of Valmiki, translated by Hari Prasad Shastri – 3 Volumes Combined” in upper case letters. It would take you only about 3.4 million similar clocks.

Save the data and stash the 3.4 million clocks somewhere, it will be data saved.


Binary Data

While it was difficult to store the data (3.4 million clocks) in such a way, it could be done so electronically in a very small space. But in order to take the advantage of electronic storage, we need to translate that data into Binary.

Electronics exist in only two states, ‘on’ or ‘off’. While ‘on’ can be represented by ‘1’, ‘off’ can be represented by ‘0’.

All you need to do now is change the data into their binary representations. 


Numbers in Binary

Decimal to Binary is quite simple, divide by two and write the remainder. Repeat this process until you cannot divide by 2 anymore, for example let’s take the decimal value 157:

157 ÷ 2 = 78
78 ÷ 2 = 39
39 ÷ 2 = 19
19 ÷ 2 = 9
9 ÷ 2 = 4
4 ÷ 2 = 2
2 ÷ 2 = 1
1 ÷ 2 = 0
with a remainder of 1
with a remainder of 0
with a remainder of 1
with a remainder of 1
with a remainder of 1
with a remainder of 0
with a remainder of 0
with a remainder of 1
<— to convert write this remainder first.

Therefore 157 = 10011101. Clear?


Text in Binary

There are multiple global conventions of translating letters into binary for storage. We will take the ASCII (American Standard Code for Information Interchange) convention for discussion. It is the most prevalent form of text encoding, and has also been a foundation for other conventions.


The ASCII chart has 127 characters including lowercase and uppercase alphabet, numbers and some special characters.1

Each character (a, b, g, z, etc.) is represented by a number from 0-127 (128 total).

Capital T is 084.


Each number is converted to a pair of hexadecimal digits. In mathematics and computing, hexadecimal (also base 16, or hex) is a positional numeral system with a radix, or base, of 16. It uses sixteen distinct symbols, most often the symbols 0–9 to represent values zero to nine, and A, B, C, D, E, F (or alternatively a, b, c, d, e, f) to represent values ten to fifteen.2

Do this by dividing the (decimal equivalent of the) left digit by 16, and placing the remainder.

For example for Capital T (084),
084 = (16*5) + 4
which is 54


Further each one of the hex digits in the pair would be changed to their final binary form.

Here’s a binary:hex conversion chart:

0001 = 1 
0010 = 2 
0011 = 3 
0100 = 4 
0101 = 5
1000 = 8

1001 = 9
1010 = a (the hex number a, not the letter a)
1011 = b
1100 = c
1101 = d
1110 = e
1111 = f

Therefore, 54 = 0101 0100


T = 01010100 in binary. Similarly you can find out the binary of all characters here.

For instance, the word ‘India’ in Binary is: 01001001 01001110 01000100 01001001 01000001

Each character on the right is called a ‘bit’. Eight of them make a ‘byte’. There are five bytes in the above line.


‘India’ would take 5 bytes if you write it on Notepad and save as a text file. For perspective, the Ramayana as mentioned earlier would take 3.5 MBs in text format.


What about Music, Pictures and Videos?

Now that you know how text is saved in binary. Let’s see how we can save music, picture and video files.


Ever opened a .jpg image file with Notepad? It looks like this:

All ASCII characters in an hellishly unreadable format. Pictures are stored as text which are then in turn stored as numbers, and finally in their equivalent binary format.


Sound is produced on vibration of a medium. This is how the waveform of a music file looks like:

Notice the crests and troughs, they can be plotted on a graph, and the corresponding numbers can be noted down. The numbers are then changed to their hex values and then further to the binary format.

A typical MP3 file plays at 128kbits per second, i.e. in one second the computer processes 32,000 hex values, to give us the effect of listening to a sound. This is what an MP3 file looks like in a hexadecimal editor. 


Videos are moving pictures with sound. A normal video file plays at 24 frames per second (fps) graphics and 128 kbits/sec sound. Therefore a second of video file would mean 24 image files, and one one second long sound file played together. Therefore video files take the most amount of space.


Storage Media

Now that it is clear that Data in the form of text, numbers, pictures or videos can be saved as 0s and 1s, let’s see how you can save the data for later use. Taking the case of USB Pen Drives.

USB Pen Drives are made up of a circuit board and a shell. The circuit contains a Flash memory chip which is made up of transistors. Typically there are about 32 billion transistors in an 8 GB USB Pen Drive.

Every transistor is arranged in such a way that it can hold electrical charges like a battery. Binary Data is stored on the transistors. If it is 1 a transistor will store the charge, if is 0 the transistor will not store charge.

Data can be retrieved by reading the charge distribution of the transistors. Data can be written by changing the charge value of the transistors.



Now that you know what are digital objects and digital information, it will be easier to understand that the computer is not a sentient being, but a super-machine which can read and process any kind of information digitally at a very high speed.

It might take you a second to read five binary characters ‘01011’, while any random smartphone can read at speeds of 25 billion binary characters in that same amount of time, and make sense out of such long strings of characters.

The whole Extended Volume of Oxford Dictionary would be only about 70 kilobytes in ASCII text format.

A computer continuously stores data and retrieves data from its storage media. This process is so fundamental about a computer that more frequently it does so more smarter it gets. The frequency of reading and writing on storage media could be as much as three gigahertz.

This high reaction rate of computers give us a perception of an artificial consciousness, whereas it is nothing more than an extremely fast clock with complex rules.