Blog‎ > ‎

Blog Posts

32-bit vs. 64-bit OSs : What's the Fuss All About ? : In 2 Minutes

posted Apr 2, 2018, 6:05 AM by Apoorva Gokhale

Are you thinking of extending your laptop's RAM because it runs at the speed of a turtle? Wait before you do that! because you might end up wasting money without getting improved results, except the lighter wallet.

    We'll just quickly go through basic terms (techies can GOTO the next paragraph directly). Computers only know Binary when it comes to computing, i.e they know 1's and 0's, and these are called bits. In 1 bit computing, you get two possible values; 2 bit computing ,you get 4 possible values; 32 bit computing, you get (2 to the 32nd power) worth 4,294,967,296 values(4 gigabytes); 64-bit (or 2 to the 64th power) is worth 18,446,744,073,709,551,616 values(16 exabytes). Damn,that's a lot of bits and we can clearly make out how a chip with more bits 'can' have its computing power more than doubled.

Now, about an Operating System (OS) ,it works as an interface between computer hardware and an end user like you. How well your computer utilize system hardware largely depends on OS.

Let's say you and a toddler are given a corn to eat. Obviously because you have stronger teeth you will be able to savour it's taste on a rainy day and the poor toddler will probably just try hard to eat and fail multiple times before giving up. I want to make a point here,your system chipset is corn in this case and teeth is your OS.


Let's have a look at how computer system is made.




It is clear from the image that to run a 64 bit application we require a 64 bit OS and 64 bit chip set. Now basically 64 bit architecture and 32 bit architecture have difference in size of their registers.  A register is a small amount of storage where the CPU keeps whatever data it needs to access quickly for optimal computer performance.Coming to OSes,the main difference between them is in the amount of RAM they utilize.(Random Access Memory, or RAM (pronounced as ramm), is the physical hardware inside a computer that temporarily stores data, serving as the computer's "working" memory.) 32 bit OS utilize 4GB of RAM theoretically while 64 bit OS can utilize 17.2 billion GBs of RAM(This number is too big and as of now we don't have efficient hardware to support this theoretical statement 😉)(*note*:Windows 64-bit Home editions are still limited to 16 GB of RAM for licensing reasons, but the Professional and Ultimate versions can use up to 192 GB of RAM).

So, a system having 64bit architecture will have a greater computing power but for it's proper utilization we require a 64 bit version of OS,we can't install a 32 bit version of OS and expect it to address larger amount of RAM(few smarties might have got the reason behind the first statement of this blog).

The biggest drawback of 32 bit OSs is the restriction in usage of RAM, also a part of RAM is utilized by video cards and other such applications further reducing the size of RAM that your OS actually accesses. 64 bit OS comes to the rescue here!
A system with 64 bit OS is more efficient , uses more memory and can allot more memory to individual applications(engineers who use huge softwares like autoCAD know the problems faced while using such applications 😉). This also means that your video cards and other devices will not be stealing usable memory space from the operating system.


Hope you have understood why there is no dearth of computers with 64 bit today.

If you are still curious to know which system you are using follow the instructions here.

-Bansi Derashri

Say Hello to Kotlin!

posted Mar 30, 2018, 12:46 PM by Apoorva Gokhale   [ updated Mar 31, 2018, 7:59 AM by Rohit Bhaskar ]

        In the recent Google I/O ‘17 conference, Kotlin was made the official language for Android development, along with Java. Like most people, it was the first time i had heard about the language.This prodded me do a little digging on this mysterious new language. In this blog post, I am sharing some of my findings.

What is Kotlin?

        Kotlin is a statically-typed programming language that runs on the Java virtual machine and also can be compiled to JavaScript source code or uses the LLVM compiler infrastructure. Its primary development is from a team of JetBrains programmers based in Saint Petersburg, Russia. While the syntax is not compatible with Java, Kotlin is designed to inter-operate with Java code and is reliant on Java code from the existing Java Class Library, such as the collections framework.
The name comes from Kotlin Island, near St. Petersburg. Andrey Breslav mentioned that the team decided to name it after an island just like Java was named after the Indonesian island of Java.

Is Kotlin an object-oriented language or a functional one?

        Kotlin has both object-oriented and functional constructs. You can use it in both OO and FP styles, or mix elements of the two. With first-class support for features such as higher-order functions, function types and lambdas, Kotlin is a great choice if you’re doing or exploring functional programming.

What advantages does Kotlin give me over the Java programming language?

        Kotlin is more concise. Rough estimates indicate approximately a 40% cut in the number of lines of code. It’s also more type-safe, e.g. support for non-nullable types makes applications less prone to Null Pointer Exceptions (Huge Relief!!). Other features including smart casting, higher-order functions, extension functions and lambdas with receivers provide the ability to write expressive code as well as facilitating creation of DSL.

Can I use Kotlin for Android development?

       Yes. Kotlin is supported as a first-class language on Android. There are hundreds of applications already using Kotlin for Android, such as Basecamp, Pinterest and more.

How do I get started with Android Development using Kotlin?
        
        Before being officially adopted by Google, Kotlin support was an add-on package on Android Studio, just like native support. Android studio 3.0 (with Kotlin support) is still in its beta phase, so it’s recommended that you run it alongside a stable version. I found an online tutorial here.

For the purists who’d love a guide book,  there’s one called “Kotlin Development for Android” by Antonio Leiva. The book is available in physical and digital forms,though you might have to pay.

You can also have a look at the official Kotlin documentation here.

So that’s it for now folks, I hope you find it useful.


Pranav Udupa

OS Schedulers Explained In 2 Minutes

posted Mar 26, 2018, 12:51 PM by Apoorva Gokhale   [ updated Mar 26, 2018, 12:51 PM ]


Have you ever wondered how exactly a high level operating system like Android or Windows can run a multiple processes at the same time using only 2 or 4 hardware cores ..?

This is where schedulers come into play..!

What is a scheduler??

The illusion that all tasks on our device are running continuously is achieved by allowing each task to have a share of the processors' time. The process of allocating this time to each task is called “scheduling”. A scheduler is the piece of code that determines which task should be run next and how much time should be allocated for that particular task.

How does a scheduler work??

Based on the type of OS (i.e. if your OS is general purpose or real time) and the type of tasks (i.e. if the tasks are time triggered or event triggered) handled by the scheduler, different algorithms are used to write a scheduler program.

The typical working of scheduler is shown below:


Referring to the numbers in the diagram above:

At (1) task 1 is executing.

At (2) the scheduler suspends (swaps out) task 1...

... and at (3) resumes task 2.

While task 2 is executing, at (4), it locks the processor peripherals for its exclusive access.

At (5) the scheduler suspends the task 2...

… and at (6) resumes the task 3.

Task 3 tries to access the peripherals but they are already locked so task 3 cannot continue hence it suspends itself at (7).

At (8), the scheduler resumes the task 1.

... etc.

The next time task 2 is executing it finishes with the processor peripherals and unlocks them at (9).

The next time task 3 is executing at (10) it can now access the processor peripherals, hence this time it executes until suspended by the scheduler.

Types of scheduler:

A scheduler is a special software which employs different strategies to decide which process to be run and also controls the removal of existing processes. Schedulers are of three types :–

1. Long term scheduler :

    Also called a job scheduler. Its primary objective is to provide a balance mix of jobs such as I/O bound (largely involving input-output operations) and processor bound(largely involving more processing than I/O). When a process changes state from NEW to READY, the job scheduler comes into play.

2. Short term scheduler:

    Also called a CPU scheduler. Its main objective is to schedule the ready processes and allocate CPU time to one of them. It is responsible for the change of ready state to running state of the processes.

3. Medium term scheduler:

    It is also called as a process swapping scheduler. When a process is suspended due to its demand for locked I/O then it can never proceed unless the I/O required is released. In this case the process is swapped to the secondary storage space to clear the main memory and to make space for other processes. So, a medium term scheduler decreases the degree of multiprogramming.

That’s all for today’s post guys, I hope you've understood what a scheduler is and how exactly it works. If you want to learn more about schedulers then you can get more information here, or you can also watch this video :

YouTube Video

.


- Atharva Bhave

System On A Chip (SoC) Explained In 2 Minutes

posted Mar 25, 2018, 12:43 PM by Rohit Bhaskar   [ updated Mar 26, 2018, 6:45 AM ]

Image result for system on a chip


So you might have heard of microprocessors like 8085, a few microcontrollers like 8051, Atmega, ARM based microcontrollers etc.

First a complete computing system like a PC had a motherboard with all necessary components packed into a huge cabinet alongside it. If you were to make a mobile phone out of that system, imagine how hellish our life would be carrying that. As years passed, thanks to the physicists carrying out research out there, more and more transistors could be comprised on a single chip, an IC. So now you didn’t need a different processor, a RAM chip, an I/O peripheral chip, because all of that circuitry could now be fit into one single IC!


Those were the microcontrollers. But while fitting all of that into one circuitry, the miniaturization limitations meant reducing the power of each. The Arduino (a micro-controller platform) would obviously lose against an Intel Core processor based PC in a Math-a-thon right? Now with the dawn of the 21st century, manufacturing techniques evolved so much that we could now integrate a full fledged powerful processor along with all those peripherals required for a system to run. I wouldn’t say its wrong to call it a System-on-Chip.


So how does all this matter to you? Probably you are reading this on your phone, that device itself wouldn't exist without an SoC! There would be no miniature cool single-board-computers like the Raspberry Pi too.


In reality an SoC includes any IC that were originally different chips but are now packed into one, owing to the development of semiconductor fabrication technologies.


So what do SoC’s generally consist of?

  • CPU – the central processing unit, whether it’s single or multiple-core, this is what makes everything possible on your smartphone or a system.
  • Some gigs of memory including RAM, ROM everything.
  • GPU, yes a complete GPU now sits happily beside the CPU on a single chip.
  • Radios- Some SoC’s have taken it forward and included the WiFi, GSM etc modules onto the same chip as well!
  • Southbridge- This is a term given to the I/O Controller and other slow peripherals in a computing system. Well as you guessed it, this resides in that single chip as well.
  • Northbridge- This refers to the memory interfacing circuit and other high speed circuitry.


What an SoC makes possible is that a motherboard or the PCB(Printed Circuit Board) of your computing system would now require very few components besides the 1inch by 1inch SoC package. So computing systems are bound to become smaller! SoCs are widely used in all types of electronic devices and due to their immense efficiency, they will continue to run lots of electronic devices in the future.


This is a good article if you want to continue reading about SoC's and their different types.


- Viraj Sonawane

Difference Between Interpreting Codes And Compiling Them

posted Mar 18, 2018, 12:07 PM by Rohit Bhaskar   [ updated Mar 18, 2018, 12:07 PM ]

Related image[image credits https://www.difference.wiki]


This post would be useful majorly for computer science students, but everyone can gain insights into how programming languages treat the code you write, and how flexibity and speed have a give and take relationship.


Well I know that there is always a confusion between interpreted and compilied based languages, and I wanted to make sure you know that no language is specifically a compiled language or an interpreted language. A language which is usually compiled can be interpreted and a language that is usually interpreted can be compiled.

Compiling and Interpreting are just 2 different methods to execute a program


So, let’s get down to the main topic that is the difference between the two.

Compiling: The job of a compiler is to take the source code (that is whatever you’ve written) and convert it to machine code (binary commands which the machine can understand). Now the codes that are compiled at the source or the workstation of the developer are converted to the binary code and shared as an executable to the users. Also since these executables are binary codes they are always ready to run and work super-fast on the supported platform.


Interpreting: In interpreting, you get rid of the process of compiling at the source. But in the end, you would always require something to convert the source code to machine code. For that we have something known as an interpreter. An interpreter converts a line of source code to machine code executes it and then moves on to the next line of code. This makes it easy to make dynamic changes in the code without requiring recompiling and distribute the complete code.


Here is a small cheat sheet to help you decide which language to use the next time you have an idea:

Compiled codes:

Pros: Code is ready to run; super-fast and source code is protected as it is not shared.

Cons: Inflexibility in terms of cross platform deployment; Needs to be recompiled whenever changed.

General applications: Software’s, browsers, desktop applications.

Generally used Languages: C, C++, objective C, Swift.


Interpreted codes:

Pros: Cross platform flexibility, Dynamic changes to the code can be made.

Cons: Slower and source is unprotected as it is shared to the users.

General applications: Webpages

Generally used languages: PHP, JavaScript.


Though this isn’t the end of it, there is a hybrid method which involves concepts of an intermediate language and JIT (Just In Time) compilers which are used by many modern languages like Java, Python etc. which will be explained in a future article ;)



- Dhruv Turakhia

What Exactly Are LAN And WAN In Networks?

posted Mar 15, 2018, 7:46 AM by Rohit Bhaskar   [ updated Mar 15, 2018, 7:47 AM ]

Related image



Everyone has enjoyed playing games together with friends in a cyber café (Counter Strike would be a good guess here ;p). Ever wondered how we were able to play same game on different computers and compete with one another? Or in a cyber café we can just give command from any PC to print a document from a lone printer. The answer to all of this connectivity is due to LANs.



I’m sure most of you have come across this term. LAN stands for Local Area Network which consist two or more networking devices connected to each other by a Ethernet cable consisting of coaxial or twisted pair cable or Optical fiber through a common device, let’s call it a hub. The Computer that wishes to send a message to other computers sends it with receiver address to a hub. The router check’s the address and passes the message or data to the receiver. Thus many such devices are able to share data and interact with each other using LAN connectivity. So every device in LAN is connected to each other and is capable of simultaneous sharing of data with every other device which results in playing a game with all our friends at same time. LAN is connected in many ways (topologies) like Mesh where each device is connected to one another, Star, in which all device connects through a common hub device, Ring, in which all device are connected in ring like round form, Bus, a dedicated cable to which all devices are connected.

LAN is usually restricted to a particular geographic location. Examples are the networks in an office building, School or a Corporate office.



Now let’s come to communication using LAN in simple terms, consider your building for example. Imagine that all the homes in your building are the devices in your LAN network. The Watchman in the building acts like a hub and Secretary as router in network

Network Definition: A network is a group of computers connected together in a way that allows information to be exchanged between the computers.

When a family in on 1st floor needs to complain about the people on second floor they drop a message to the Watchman, he goes to the Secretary and informs about it. The secretary then takes the decision of what need to be done and passes the information back to watchman who finally delivers it to 2nd floor. It’s actually a rough overview of LAN's working. There are many details involved in actual networking. The source PC which needs to send the message  knows the address of receiver so it connects the hub to the router where the router does the work of setting up the connection between the two devices. The message which needs to be send by the Source takes the form of a packet which contains the message information with the receiver physical and network address(IP address and MAC). Thus the packet goes to the hub first then to the router where the routing is done to make sure the packet which contains our message goes to the correct destination.




We saw what a LAN is how the data sharing takes place let’s look at WAN it’s nothing different but a larger version of LAN. WAN stands for Wide Area Network.

When an individual Company or Organization has locations that are separated by large geographical distances, it will be a matter of necessity to connect these individual locations so as to share, exchange and manager data or communication. To achieve this, the organization needs to interconnect the LANs at the different locations.

Telecommunications Service Providers manage large area networks that can span long distances. TSPs transport voice and data communications on separate networks. These networks that connect LANs in geographically separated locations are referred to as Wide Area Networks (WANs). WANs generally connect devices that are separated by a broader geographical area than cannot be served by a LAN.

WANs use the services of carriers, such as telephone companies, cable companies, satellite systems and network providers. WANs use serial connections of various types to provide access to large geographic areas. The router in the LAN is the one acting as a medium to send data from one area to another over the Internet to other routers at locations which are far away. The medium between two locations can be a Optical fiber cable capable for fast data transfer, Satellite or electromagnetic waves. So we can say WAN sets up connection between devices located in different parts of world.


LAN does work of inter connectivity in a network and WAN does the intra connection work.


If you followed my previous blogs you can surely relate the communication part to GSM. Hope you understood LAN and WAN now!!


- Yash Hule

Augmented Reality Explained In 2 Minutes

posted Mar 14, 2018, 5:47 AM by Rohit Bhaskar   [ updated Mar 14, 2018, 5:48 AM ]


https://static.scs.georgetown.edu/upload/content/articles/main/2018-ces-hero.jpg



We've all heard of augmented reality at some point in our lives. Most of us have probably even seen it in action in some form or another. But lets dive into it to really understand what Augmented Reality is.


Introduction:

‘Augmented’ reality literally means adding something to the existing reality and making it even larger.

Ok,... so what is a technology doing with such a name? Let’s look away from the screen that you are currently reading from. Yes, this is reality. The physical world around you, your friends, your phone, your slow internet connection, are all a part of ‘reality’. Now, look back into your screen (you are already ;p). This world inside your phone where you play games, socialize with other homo sapiens and enlighten yourselves is a virtual world.

Wouldn’t it have been wonderful if all this magic was happening right inside your ‘reality’?? How, you ask? Augmented reality is the answer. In this technology you literally take virtual world graphics (sometimes even audio and other sensory enhancements) and project it onto your real world objects. Let’s try to build such a magic device (yayy..finally engineering!)


Ok, so let’s say you(Mr.potato) have found your friend’s head(Mr.tomato) to be a very interesting target and want to project a pair of bunny ears onto them. You would first of all need a screen to project that image. Let’s say you somehow found the right screen. But Miss Pumpkin sitting at some other place isn’t able to make out that image because of the different perspective from which she is viewing it. So our device isn’t any fun unless it is able to project the image to all the viewers in a correct perspective i.e. it should be able to track the user’s ( here potato and pumpkin) motion RELATIVE to the object (here tomato’s head...poor thing). This right away requires us to have motion tracking sensors in our magic device. Also note that at this point of time, our device requires a separate display for each user. Now all of this of course can’t happen without a powerful computer (but we desire it to be small coz every time I want a pair of bunny ears projected on someone’s head i don’t want to carry my desktop with me)


Thus we have identified the main components required for any Augmented Reality device:

  1. Display
  2. Motion tracking and orientation sensors
  3. Computer
  4. Some software that does all this job on the computer.


Display:

Three types of displays are used in AR devices:
  • Head Mounted Displays (HMD): These displays superimpose virtual graphics on the user’s physical view of the world. HMD are either an optically transparent or video transparent devices. In an optically transparent display device, partial silver mirrors are used to pass the views of the real world through a lens. At the same time the virtual images are reflected into the user’s eyes. Some basic products that use such displays are Sony Glasstron, Microvision NOMAD and so on.
  • Handheld Displays: Such displays are small in size and will easily fit in one hand. These devices use video transparent techniques to relate the virtual world to the real world. This display technology is the biggest success for Augmented Reality till now. Since they are easily portable and due to the bulk use of camera phones, they are used widely.
  • Spatial Displays / Spatial Augmented Reality (SAR): The graphical image is related to physical objects by using a digital projector. The only problem is that the user will have no contacts with the display. The main advantage of such a device when compared to other displays is that the user doesn’t have to carry the equipment along with him. Thus the users can easily see each other’s faces. Since a projector system is used, these displays have better resolution than the others. The resolution can be further increased by expanding the display area by using more projectors.


Motion Tracking:

We may encounter motion wherein either the target object (tomato’s head) is moving or the user (potato) is moving or maybe both are moving. We solve this problem by resorting to the age old and dreaded physics concept- ‘relative motion’. Thus we now place ourselves in the frame of reference of the device and first find out the target’s coordinates relative to us and then find it’s orientation relative to us. The sensors used for finding coordinates for example maybe a GPS module, a camera, wifi/nfc signals from the target(pretty similar to how your cell phone network finds you) etc. The sensors used for tracking motion mainly include accelerometers, gyroscopes(angular velocity,angular position),magnetometers(orientation with earth’s magnetic field) etc.

Thus we now have the information about the whereabouts and the motion and orientation of the target. Pretty set. All that’s left to do is for the computer to appropriately process the image-to-be-projected and project it onto our object and voila! You have made your very own AR device! (now you may pat yourselves.)


Software:

Now with this kind of technology you can only imagine what tech-giants like Google and Apple would be upto. Apple has recently released it’s own AR development kit called AR kit using which you can turn your Iphone into an AR device. Google already has under it’s belt the famous ‘Google glasses’ where it overlays information about the things that you see right in front of your eyes. Now this is a common trend you will see in most of the technologies. They are made ‘open-source’ with some user friendly tools using which even a mortal man (non – programmer) can build cool stuff- an excellent example being android studio! Similarly there are a bunch of popular softwares that will help you develop AR applications for your smartphone.



Well, that's that. Here we end our post on augmented reality. Hope you understood what augmented reality is and what are its main components. This post only scratches the surface though, there is a lot more to this that what we have told you ;p. So read up, Google and enjoy this new technology ;)



- Pradeep Suresh

OSI Model Explained In 2 Minutes!

posted Mar 10, 2018, 10:24 PM by Rohit Bhaskar   [ updated Mar 10, 2018, 10:43 PM ]

https://media.licdn.com/mpr/mpr/AAEAAQAAAAAAAATmAAAAJGMwOGM1ZGZmLTg0MzMtNGRmNi1hMTI2LTcyYWVjOWE0YWEyYQ.jpg
Hello everyone! in my debut post on the SRA blog, I'll be giving you a simplified explanation of the OSI (Open System Interconnection) Model:

I'm pretty sure every engineer would have come across this term sometime during their 4 years. The OSI is an extremely popular communication standard.
The OSI model defines standards for:
• The way in which devices communicate between each other.
• The means used to inform devices when to send data and when not to transmit data.
• Methods to observe correct rate at which data flows.
• Means by which we come to know that the data has reached to its respected recipient.

What is OSI Layer?
OSI (Open Systems Interconnection) Reference Model since it describes or relates to connecting systems that are open for communication with other systems. In the model, the functions of the communication system are standardized by categorizing them into abstract layers. Each of the layers of the OSI model is intended to function with those above and below it respectfully within the model definition.

What Are the Seven Layers of the OSI Model?
We always have problem remember things in sequence right no one remembers all the elements in Periodic table with their names hence we devise mnemonic for such things. A common mnemonic used to remember the OSI model layers starting with the seventh layer (Application) is: “All People Seem to Need Data Processing.”



Image result for osi model

1. Application Layer:
The Application layer provides the necessary services that support applications. It provides the interface for e-mail, Telnet and File Transfer Protocol (FTP) applications, and files transfers. It means that the its only job in simple terms is to take data input and output from and to user respectively.
2. Presentation Layer:
This layer deals with the format of the data when it being transferred so that other layers can also understand what kind of data is transmitted through network. When the data is received, the Presentation layer translates the data to a format which the application can read. Compression and Encryption {which we will take in another post :p} functions fall in this layer.
3. Session:
The best way to remember a session is thinking of it as a Hangout or WhatsApp messenger. When two people start communicating a session is created, as soon as one ends or disconnects video/audio call, session is broken. That means it is responsible for maintaining and ending communication between two receiving devices.
4. Transport:
This layer provides you with the best possible path for data transfer between two recipient. Also provides secure data transfer and error checking and recovery of data between two members.
5. Network:
This layer takes care of the ways data will be sent. The protocol used for sending data will also be decided here. Consider you are data the and you want to reach your college then your choice of transport here becomes the protocol. One main feature of network layer is Routing. Routing enables transport of packets among computers which can be linked to one or many others.
6. Data Layer:
The data link layer provides a reliable link between two directly connected nodes. It is
responsible transmitting data over a link from one device to another, by providing interface
through network medium to software medium.
7. Physical Layer:
This is the level of the actual hardware. Hardware such as the physical components of
Ethernet cables and Bluetooth are just some examples of the physical layer.In this layer you
will define the following :-
Defining physical specifications
Defining protocols
Defining transmission mode (half duplex & full duplex)
Defining the network’s topology


So that concludes our post on the OSI model. It might have gotten too technical, but i hope you understood ;)


- Shubham Patil

Optical Fibres Explained In 2 Minutes

posted Dec 8, 2017, 12:49 PM by Rohit Bhaskar   [ updated Dec 8, 2017, 12:52 PM ]



Ever thought that light can be used to carry messages and for communications between two or more devices ? Did you know the internet which you get you comes in the form of light ? How’s this possible? 
Ans. Optical Fibre!!
This post is going to be extremely interesting for communication engineers! :)  So let's begin



Over the last 20 years or so, fiber optic lines have taken over and transformed the long distance telephone industry. Optical fibers are also a huge part of making the Internet available around the world. When fiber replaces copper for long distance calls and Internet traffic, it dramatically lowers costs. 

An optical fibre is a flexible, transparent fiber made by drawing glass (silica) or plastic to a diameter slightly thicker than that of a human hair. Unlike copper wire based transmission where the transmission entirely depends on electrical signals passing through the cable, the fiber optics transmission involves transmission of signals in the form of light from one point to the other. Furthermore, a fiber optic communication network consists of transmitting and receiving circuitry, a light source and detector devices like the ones shown in the figure below.

When the input data, in the form of electrical signals, is given to the transmitter circuitry, it converts them into light signal with the help of a light source. This source is an LED or a laser whose amplitude, frequency and phases must remain stable and free from fluctuation in order to have efficient transmission. The light beam from the source is carried by a fiber optic cable to the destination circuitry wherein the information is transmitted back to the electrical signal by a receiver circuit.



Working of Fiber optic communication:

The Receiver circuit consists of a photo detector along with an appropriate electronic circuit, which is capable of measuring magnitude, frequency and phase of the optic field. This type of communication uses the wavelengths near to the infrared band that are just above the visible range. Both LED and Laser can be used as light sources based on the application.

To understand in a simple way how a fiber optic cable works, imagine an immensely long drinking straw or flexible plastic pipe. For example, imagine a pipe that is several miles long. Now imagine that the inside surface of the pipe has been coated with a perfect mirror. Now imagine that you are looking into one end of the pipe. Several miles away at the other end, a friend turns on a flashlight and shines it into the pipe. Because the interior of the pipe is a perfect mirror, the flashlights light will reflect off the sides of the pipe (even though the pipe may curve and twist) and you will see it at the other end. If your friend were to turn the flashlight on and off in a morse code fashion, your friend could communicate with you through the pipe. 

That is the essence of a fiber optic cable.

This is a 2 minute explanation of how communication takes place by optical fibre. Optical fibre are also used for medical,defence and a lot more purposes.The advantage offer by this over other means is the large amount of data which can be sent over long distance more efficiently at faster rate reliably. The loss of information and distortion is negligible.

Hope you understood!



- Yash Hule

MQTT For IOT Explained In 2 Minutes

posted Dec 7, 2017, 11:45 AM by Rohit Bhaskar   [ updated Dec 8, 2017, 12:44 PM ]






" MQTT is a Client Server publish/subscribe messaging transport protocol. "

It is light weight, open, simple, and designed so as to be easy to implement. These characteristics make it ideal for use in many situations, including constrained environments such as for communication in Machine to Machine (M2M) and Internet of Things (IoT) contexts where a small code footprint is required and/or network bandwidth is at a premium So this is the definition of MQTT as you would find on Google. Let’s try and understand this is in very simple terms. MQTT is actually seen in daily life as well.

So, how does the protocol work??

So let’s take the example of the newspapers coming to your place in the morning. Let us assume you are subscribed to some “ABC” newsletter. So whenever the “xyz” publication publishes “ABC” newsletter you get the newsletter at your place, delivered to your place by a local boy. So this is how the protocol works. In technical terms the ”xyz” publications is the publisher, you are the subscriber, the “ABC” newsletter is the topic and the local boy is called the MQTT broker whose the link between the publisher and the subscriber .

The best part of this protocol:
  • You can subscribe to as many newsletters i.e as topics as you want.
  • Anyone in this protocol can publish a newsletter, or subscribe to any newsletter i.e anyone can be a publisher or a subscriber.
So according to the protocol even you can be publisher and the “xyz” publication could be a subscriber.


The main advantage of this protocol is that I don’t have to pull a request when I need it i.e I don’t have to tell the publication that I need a newsletter please give me. MQTT is the protocol used by Facebook messenger and many other applications.

For more reference use: http://www.hivemq.com/blog/mqtt-essentials-part-1-introducing-mqtt

I know this post came after a long gap, but i hope it was easy to understand :) !!



- Rishabh Shah

1-10 of 56