Saturday, June 22, 2019

My Experience in AF Final Project

AF final project!!!

Actually, I was not ready to do a project. I had to go to work daily and study for final exams.
I didn't even know how to start or will I be able to just create even CRUD functions in the project.

But the important thing is that I knew any of the above are not excuses for not doing the project.
So I have planned to distribute the functionalities between team members.
Fortunately, I have got some supportive team members. They were ready to face any situation as a team. Actually, we didn't have a target to get higher marks or get a higher grade for the module. We know we have missed our time to study because of the internship. So all of us need to get marks for just passing the module.

We took a decision, that we don't get down mentally if we wouldn't able to finish the project as expected. It became the strength of our team to do whatever we can do to finish our functionality.

We didn't get time to get together and discuss the project. Only on the day before the final viva, we could get together and started coding. It was indeed a trap.
We thought that how do we finish this project at least with those basic CRUD operations.

My Function!!!
Create exams and assignments - which is the most favourite term in real life. I started coding and got stuck in the file upload part. I tried for a whole day to find a way to upload files into a database using express
Somehow we managed to build some CRUD functions for each functionality. And It took a whole day to finish those functions( but not as required).

Time was running like a cheetah.. and security aunties were about to push us out from the SLIIT. And we decided to go home and do whatever the remaining parts of our functionalities.

And unfortunately, as always, I had to create the technical report tooπŸ™„ I didn't know whether I can manage to do all those things before the viva. But I didn't want to give up. My only motivation was that all of these problems are with me until tomorrow(viva day) evening. Then I can be a free bird.

Here came my favourite part, drawing diagrams!!!

I don't know anybody can imagine that I have got only 15 hours to finish all those things + sleep πŸ˜‘

At last, my only wish was  if I can have Aladdin's lamp or any other 'Buthaya' as a slave πŸ™ˆ








Friday, May 24, 2019

What is Maven?

Managing multiple projects is a difficult task when you want to maintain the consistency of the build process across your projects. Let's talk about how can use maven to solve these problems.

What is Maven?


As we know, Maven is a project management tool that is used by lots of developers to complete a build life cycle because maven provides a framework which we can automatically provide plug and play stuff for maintaining our build process across our projects.


What are the different features of Maven?

Before getting into a background of how a maven works, We should have a basic idea about the features of maven. So maven provides something called as model-based development or the model-based builds. Maven can build the jars, wars or it can create metadata out of the project. If we want to build a python project, we can have the Python plugins and create some python packages. If we are using a java project we can create jars or wars depending on what type of project we do. That is one of the features of Maven.

Another part is release management where we can create a release and then upload that into a distributed system or maven repository or any other repository where people can take it from. Maven can do that, so it can do the release management and the release distribution and the publication part as well. Along with that, it can maintain the dependencies, so as a single point of control, Maven can control the dependencies of our project.
We don't have to package the jars or the dependent wars of the jars into our project. Those will be used at the build time, so our repository or the codebase size will be reduced compared to storing everything into our project. So maven can help in downloading these dependencies and managing those dependencies at the build time.

Maven also provides something called plugin development where we can create multiple plugins and plug those plug tools into the project and use them based on the tasks whenever you need it. So for example, if we want to push some package on to our host, we can do it as a part of our plug-in itself. There could be a task, for example, our post-build process, after the way it is executed after package is completed we can create plugins to create the task after the plugin or the package is completed for the particular project.
So we can trigger the plugin after the package got created and then we can push that onto the remote machine or something like that. With the plugins we  can create whatever we want. There are lots plugins. Basically we should know there are multiple plugins and we can create any number of plugins and the we can plug and play inside the maven project.





Saturday, May 18, 2019

Angular

What exactly is Angular?

AngularJS is a leading framework for building javascript heavy single page based web applications. Single page apps or SPA load the entire content of a site within a single page. Single page app is usually an index.html file. This means that once the main page is loaded, clicking on links will not reload the entire page, but simply update sections within the page itself.

The popularity of  SPA based web apps has taken off based on the fact they allow us to deliver rich, dynamic and fast loading content that mimics that of desktop applications. One big difference between Angular based sites and traditional ones is that Angular expects the browser to build the page. The server sends to the browser all the data to build a page which includes the HTML, CSS and Javascript files and the browser does the work of building the final template that's displayed in a web page.

This may seem like a lot of work for the browser but it actually results in much faster load times. When compared to more traditional applications that use PHP or Java, the server is responsible for all the heavy lifting. This includes accepting requests, fetching the data, along with building the final page.

In addition to the increases in speed and performance, Angular allows us to write much more succeded code than using plain javascript. We are also able to track, process and display changes from the user using the magic of data binding.

Angular was developed with three key concepts in mind;

  1. Make it modular
  2. Make it testable
  3. Make it maintainable

Tuesday, April 30, 2019

A guide to NoSQL Databases

In this blog, I'm going to talk about NoSQL databases. Actually, it is nothing but also likes any other databases which we have been using so far. Some people may think this term stands for 'No SQL' but actually, it stands for 'Not only SQL'. It is quite possible to use. It is a Non-Relational database which means no tables.



NoSQL databases are known for working well with big data as well as real-time web applications.
There are also multiple types of NoSQL Databases.
  1. Document databases [MongoDB, CouchDB]
  2. Column databases [Apache Cassandra]
  3. Key-value databases [Redis, Couchbase Server]
  4. Cache Systems [ Redis, Memcache]
  5. Graph databases [Neo4J]

What is Big Data?


It describes data sets that are become so large that traditional methods of storage and processing are starting to become inadequate. There's been a massive increase in data volume within the last decade and itis mostly due to huge social networks like facebook, twitter, search engines like Google and other websites and applications that store a ton of data. If we think every facebook profile, every post in everyone's feed, that's all stored somewhere and that's just a huge amount of data and some of the challenges with this data is storing, analyzing and capturing. So this is where NoSQL comes in.

Advantages of NoSQL over RDBMS


  • Handles Big Data
  • Data models - No predefined schema( It is actually flexible)
  • Data structure - NoSQL handles unstructured data
  • Cheaper to manage
  • Scaling - Scale out / horizontal scaling
Advantages of RDBMS over NoSQL

  • Better for relational data
  • Normalization
  • Well know the language(SQL)
  • Data integrity 
  • ACID Compliance (Atomicity, Consistency, Isolation, Durability)




Friday, April 19, 2019

What is Docker?



Docker is mainly a software development platform and a kind of virtualization technology that makes it easy for us to develop and deploy apps inside of neatly packaged virtual containerized environments. Meaning apps run the same, no matter where they are of what machine they are running on. 
Docker containers can deploy to just about any machine without any compatibility issues. So our software says system agnostic, making software simpler to use, less work to develop and easy to maintain and deploy. 

These containers running on our machine or server act like little microcomputers with very specific jobs, each with their own operating system and their own isolated CPU processes, Memory and network resources. Because of this, they can be easily added, removed, stopped and started again without affecting each other of the host machine.


Containers usually run one specific task such as a MySQL database or a NodeJS application and then networked together and potentially scaled. A developer will usually start by accessing the DockerHub, an online cloud repository of Docker containers and pull one containing a pre-configured environment for their specific programming language, such as Ruby or NodeJS with all of the files and frameworks needed to get started. Home users can experience Docker as well, using containers for popular apps like Plex media server, NextCloud and many other opensource apps and tools.

Docker is a form of virtualization but unlike virtual machines, the resources are shared directly with the host. This allows users to run many Docker containers where users may only be able to run a few virtual machines.
 A virtual machine has to quarantine off a set of resources, HDD space, memory and processing power, emulate hardware and boot an entire operating system. Then the VM communicates with the host computer via a translator application running on the host operating system called a ‘Hypervisor’.
Docker communicates natively with the system kernel, bypassing the middleman on Linux machines and even Windows 10 and Windows Server 2016 and above. This means users can run any version of Linux in a container and it will run natively.
Not only that, Docker uses less disk space too as it is able to reuse files efficiently by using a layered file system. If you have multiple docker images using the same base image, for instance, Docker will only keep a single copy of the files needed and share them with each container.

Tuesday, April 9, 2019

Difference between a framework and a library


Actually, this gonna be asked in a variety of programming interviews as well. Many time people try to just understand what is a library and then try to understand what is a framework. We need to understand both things side by side. When we try to find out definitions for both things, we can find quite a common definition which is a collection of library is a framework. This can be true or cannot be always true. So we need to understand both sides by side.

Here I take two examples ;
First Example:
                      Library and framework, both of them are dependent on the rule. One is your home and another one is just like your school or your university. We make an analogy here that your school is your framework and your home is just like your library. The point is when you have less number of rules, it is more likely that it is going to be possibly a library and when there are a number of rules then there are higher chances that it's going to be a framework. For example, in our home, we just throw off our t-shirts wherever you like. but when we go to school or university, there are fixed places where we put our bags. Like that, in school, we are bounded by more rules while on the other hand at home, there is less number of rules.

                      So the library is moreover like our home, it's like whatever I want to do, I'm gonna be doing it and similarly on the framework, it is more bounded by the rules that we are only bounded to do certain kind of things.

Second Example:
                      The second example is moreover code-oriented and the people who are associated with even little bit kind of the code even like simple Javascript or jQuery will be able to understand it. In a simple library, a collection of codes, some functions or all these such things are being packed together and is being used over and over, that's basically our library now. The difference here is in a library we are making a call to a library, but in the framework, we are calling to our code.



Sunday, March 17, 2019

Internet of Things

Abstract

Internet of Things, in other words, IoT is the future in the Information and
Communication Technology. IoT allows the real-world objects to become intelligent virtual objects which facilitate things to share information and communicate with human and other objects via a network. IoT is not only for sharing and communication but also informs the state of the things. The present study addresses IoT concepts through reviews of research papers, professional discussions with experts in the industry and online forum. Furthermore, this review focuses on definitions, basic requirements, characteristics, issues and technologies and their uses in day to day life. The main objective of this review is to analyze and define a systematic overview of the Internet of Things.

Keywords

Internet of Things, IoT, Smart World, Smart City Green IoT, RFID, Sensors, IoT security

Introduction 

The term IoT is not new to a person in the IT industry. Even the small kid who is born at this moment is benefitted from IoT. Actually, all the people, either children or adults are now users of this revolutionary part of the IT industry which is all known as IoT, in other words, the Internet of Things. The Internet of Things defines a practice of connecting appliances and objects to a public network or a private network which was “outside” of the reach of the internet or network connectivity.
This concept facilitates many fields. Health care, transportation, home appliances, smart cities and all the other things which can be touched and seen physically, but connected via a network virtually or manually. 
The development of the Internet of Things helps many organizations to monitor and manage their office activities in an effective manner. However, IoT is not restricted or framed only for the corporate world, it is becoming a reliable home friendly IT concept nowadays. Green IoT is the evolving and mostly identified need of the IoT field.
Many researchers and experts in this industry concern about the Green IoT. This Green IoT concept is coming from the Sustainable Smart World concept. However, to make a sustainable smart world, the IoT should be defined with energy efficiency. [2] Even though Green IoT concept is popular among experts in the IT field, many of the researchers and innovators do not give much attention to the green concept.

Internet of Things Genesis and Time Series

Even the IoT is a revolutionary area in Information Technology, there is no unique definition for the Internet of Things. Researchers, Academicians, developers and innovators define IoT in different perspectives and different ways. History of IoT dates the back to late 1990s. Kevil Ashton, Co-Founder of MIT is credited for the creation of the terminology, Internet of Things. [4].
As the postscapes.com website [4] indicates, following are the revolutionary steps towards the development of IoT in the 20th century.
1999: Neil Gershenfeld - spoke about IoT principles in his book named When
Things Start to Think”. 
2000: LG announced its plans for the first Internet of the refrigerator
Google Ngram indicates, how IoT spreads out quickly after the initial stage of the IoT in the 20th century.
Requirements and Technologies

IoT protocols and standards 

As a survey [6], Protocols and Standards to establish IoT in all the following five layers indicated in figure 1 were introduced by different standardization organizations. IEEE, IETF, and ITU are few of them. Moreover, IEEE
mainly works on the data link, IETF works in networks and many other organizations work on the other 3 layers, session, security and management. In addition to Raj Jain survey, Weightless is another novel progressive wireless technology of the IoT MAC layer which is provided by the Weightless special interest group (SIG- a not-for-profit global organization). Two standards can be used under Weightless: Weightless-N and Weightless-W. [7]
When considering the Green IoT concept, EnOcean can be identified as an energy saving wireless technology that is basically used for automation. The main focus is to use efficient and reliable usage of motion or any type of environmental energy source, and transform it into usable power. [8]

Security requirements 

For a secure IoT implementation, several methodologies are identified. To obtain Data privacy, confidentiality and integrity, an encryption mechanism is required. [9] A proper authorization and authentication promise to make a trustworthy environment to have data communication [9]. Further, another paper [10] explains the present evolution for the security of IoT devices. The paper consists of the requirements for IoT security. In addition, the authors give some recommendations for security solutions and implementation instructions which will assist in IoT practice. 



Sensors and RFID

IoT can’t exist without smart sensors. Radiofrequency Identification System (RFID) is a well-known technology as a smart sensor for IoT which is automatic and assists machinery or computational appliances to detect objects or handle individual task via radio waves [1]. Normally, the RFID system contains tags (responders and transmitters) and readers [2]. The tag is a microchip associated with an antenna, that may be connected to an object as the detector of that particular object.

Conclusions

According to researches and discussions, IoT is converting the world into a smart world. As the growth of IoT, people (Innovators, developers and academicians) should concern about the eco-friendly IoT practice which has the least consideration these days. [2] In future, Green IoT concept will rapidly grow up and make a huge change in the IoT industry. Even though the impact of IoT is huge and considerable, security and privacy remain huge problems for the Internet of Things. When considering the online privacy of IoT devices, those devices not only collect personal information like name, contact number but can also identify when the user is at home or how the user spend the lunch time. Therefore, IoT consumers are reluctant to share too much personal data in public or private clouds. [5]
Power is the second most concern topic regarding IoT issues. IoT helps to manage a large number of devices and appliances in a wide area without building them manually. To grow and develop IoT, there should be the lowest power solution for any application. [9]
IoT enables to build smart cities with some automated systems and online systems. Smart City concept is a really interesting concept in the IoT industry. Efficient water supply, reliable public transportation, energy-efficient buildings and improved public safety are key focuses in Smart City concept. [10] As IoT for all [11] illustrates that the Smart Cities Council has defined the smart city as “One that has Digital technology embedded across all city functions”. Furthermore, they say if Smart City were a human body, then the technology used in the smart city would be the nervous system.
As the papers and the online discussions mentioned in this article, IoT can be defined as the most innovative term with some issues regarding security and power consumption. Many research papers only discuss the new inventions and new applications of IoT, but few researchers have concerned about the Green IoT Concept and the energy consumption of IoT. It would be a very special area to be filled and covered in the near future definitely.
The concept, Smart World can only be obtained by focusing on the concepts, Smart Home and Smart City. The new era of the IoT should be concerned about those two concepts unless discussing the IoT appliances which are already available.



References


[1]  IoT For All. (2019). What Is the Internet of Things (IoT)? [online] Available at: https://www.iotforall.com/what-is-the-internet-of-things/ [Accessed 5 Mar, 2019].
[2]  Chunsheng Zhu (Student Member, IEEE), Victor C. M. Leung, (Fellow, IEEE),
Lei Shu, (Member, IEEE), and Edith C.-H. Ngai, (Senior Member, IEEE) Green IoT 2015
[3]  Postscapes. Internet of Things (IoT) History | Postscapes. [online] Available at: https://www.postscapes.com/internet-of-things-history/ [Accessed 3 Mar, 2019].
[4]  EnOcean, “EnOcean – The World of Energy Harvesting Wireless Technology,”
2015,
[5]  Minhaj Ahmad Khan, Khaled Salah, “ IoT Security” 2017
[6]  K. Moore, R. Barnes, H. Tschofenig, “Best Current Practices for Securing Internet of Things (IoT) Devices,” IETF Draft, Oct. 2016, https://tools.ietf.org/html/draftmoore-iot-security-bcp-00  (Accessed 5 Mar, 2019).
[7]  A Survey of Protocols and Standards for Internet of Things. [online] Available at: https://www.researchgate.net/publication/320616226_A_Survey_of_Protocols_and_St andards_for_Internet_of_Things [Accessed 4 Mar, 2019].
[8]  X.L. Jia, Q.Y. Feng, C.Z. Ma, “An efficient anti-collision protocol for RFID tag identification,” IEEE Communications Letters, vol.14, no.11, pp.1014-1016, 2010. https://ieeexplore.ieee.org/document/5585623 [ Accessed 4 Mar, 2019]
[9]  R Singhe, G Bedi, G K Venyagamoorthy (2016) Navigating the challenges of
Internet of Things (IoT) for power and energy systems - IEEE Conference
Publication. https://ieeexplore.ieee.org/document/7462853 [Accessed 3 Mar, 2019]
[10]        IoT Applications for Smart Cities. [online] https://internet-of-thingsinnovation.com/insights/the-blog/iot-applications-smart-cities/#.XH9P7YgzZEY [Accessed 1 Mar, 2019]
[11]        NFC and the Internet of Things [online] https://nfc-forum.org/nfc-and-theinternet-of-things/ [Accessed 3 Mar, 2019]


My Experience in AF Final Project

AF final project!!! Actually, I was not ready to do a project. I had to go to work daily and study for final exams. I didn't even kno...