Step by step guide to installing Cooja simulator


Cooja is a java-based wireless sensor network simulator distributed with Contiki.

It allows the simulation of different levels from physical to application layer, and also allows the emulation of the hardware of a set of sensor nodes and this is why it is widely used in field of IOT.

This is a step-by-step guide to install Cooja in your linux system.


Step 1. Install Java

Cooja works well only with Java 8 as Java has removed javax.xml.bind module from its higher version jdks. Install it in your linux system using command :

sudo apt-get update
sudo apt-get…

Basic overview of MVC pattern with sample project structure

Introduction to MVC Architecture

There are multiple design paradigms available in the world of software development each of which aims at simplifying life of developers by making rendering, testing, maintaining, scaling and understanding of code base easier. We are going to focus on one such architectural pattern here.


  • MVC is an abbreviation for Model-View-Controller.
  • MVC is an architectural pattern that basically divides our application into three logical components each of which have some special characteristics.
  • Each of these three components are responsible for handling certain specific tasks in such a way that there isn’t any tight coupling or dependencies among them.


5 principles of Object Oriented Programming with examples

Developing a software is more complex than what most people think it is and for getting an edge over other developers a person must be able to build a software which is easy to read, maintain and is flexible for changes. This is where SOLID Principles come into picture :

  • These principles helps in developing loosely coupled classes which makes code stable and less error prone in long run.
  • They also make it easy for developers to avoid code smells if considered from earlier stage.

Lets go through these principles one by one now.

Give special attention to Liskov Substitution…

This tutorial is second part of three-part tutorial series on “Getting Started with Mqtt” which will be a guide on setting up a MQTT server on your linux machine


Before setting up and starting to work with an MQTT server, advice is to go through some basic concepts of MQTT first.

Setting Up

Here we will be using Mosquitto as a MQTT Broker and Paho as its client on a linux system. Setting up Mosquitto in linux is simple :

Setting up a Mosquitto Broker

In your linux terminal, run following commands :

sudo apt-get update
sudo apt-get install mosquitto

This will automatically start mosquitto as a…

This tutorial is first part of three-part tutorial series on “Getting Started with Mqtt” and will cover basic concepts of Mqtt

MQTT — Introduction

MQTT is a publish-subscribe based messaging protocol that works on top of TCP/IP protocol. It is designed for connections with remote locations (eg:IOT devices) where our network bandwidth is limited and we require quick delivery.

MQTT works on publisher/subscriber pattern in which two clients (publishers or subscribers) never contact directly and instead communication between them is handled by a third party. In MQTT, we call this third-party “Broker”.

Aspects of MQTT protocol

  • To communicate with each other, publisher and subscriber only needs to…

(wrote when I was in my 4th year of college)

I am a fourth year Computer Science and Engineering student at IIITDM Jabalpur and I just have finished my 6 months Software Development internship at NeuroSystems, a New Delhi-India based start up. I have been thinking about starting my blog and my internship experience finally gave me the opporunity that I have been waiting to write about.

Selection Procedure

I along with 6 other students from my college applied for this position through and the technical coding round consisted of Spring and JUnit related questions. However, since none of us were familiar with these technologies, we were provided Core Java and…

Nitin Sharma

Masters, NIT Surathka l Java Developer | Bachelors, IIIT Jabalpur

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store