Wednesday, May 3, 2023

Run Google Colab with Scilab

Open Google Colab and create a new Python 3 notebook.

Install Scilab by running the following command in a code cell:

!apt-get install scilab

Now, you can start Scilab by running the following command in a code cell:

!scilab

Scilab will open in a separate window. You can use it to run your Scilab scripts or to execute commands in the Scilab console.

To exit Scilab, simply close the Scilab window or use the exit command in the Scilab console.

Note that you can also run Scilab scripts in Google Colab by uploading your Scilab files to your Google Drive and accessing them in your Colab notebook. To do this, you will need to mount your Google Drive to your Colab notebook by running the following command in a code cell:

from google.colab import drive

drive.mount('/content/drive')

Then, you can access your files in your Google Drive by navigating to the appropriate directory in your notebook. For example, if your Scilab file is located in the "My Drive/Scilab" directory, you can access it using the following command in a code cell:

%cd /content/drive/My Drive/Scilab

!scilab -f my_script.sce

This will execute the "my_script.sce" file in Scilab.

Writing Effective Conclusion in Research Paper, Report, Dissertation or Thesis

Writing an effective conclusion for a research paper or report is crucial because it summarizes your findings, highlights the significance of your work, and leaves a lasting impression on your readers. Here are some tips to help you write an effective conclusion:

Summarize your key points: In your conclusion, briefly summarize the main points you've made throughout your paper or report. This will help remind your readers of the key takeaways from your work.

Restate your thesis: The conclusion is an appropriate place to restate your thesis and remind your readers of the purpose of your work. This can help tie together your findings and show how they relate back to your original research question.

Highlight the significance of your work: In addition to summarizing your findings, make sure to emphasize the importance of your research. Consider how your work adds to the existing knowledge in your field and what implications it has for future research or practice.

Provide recommendations: If your research or report suggests potential avenues for future research or practical applications, be sure to highlight these in your conclusion. This can demonstrate the potential impact of your work and leave readers with a sense of what could come next.

End with a strong statement: Your conclusion should leave a lasting impression on your readers. Consider ending with a memorable statement or thought-provoking question that will stick with them even after they've finished reading.

Avoid introducing new information: Your conclusion should not include any new information that was not discussed earlier in your paper or report. Stick to summarizing your findings and highlighting the significance of your work.

Consider the tone: The tone of your conclusion should be appropriate for your audience and the purpose of your work. If you are writing for a scientific audience, for example, you may want to use a more formal tone than if you are writing for a general audience.

Keep it concise: Your conclusion should be brief and to the point. Avoid using overly complicated language or introducing new concepts that may confuse your readers.

Use transitions: Use transitional phrases to connect your conclusion to the rest of your paper or report. For example, you can use phrases like "In summary," "In conclusion," or "To sum up" to signal to your readers that you are wrapping up your work.

Revise and edit: After writing your conclusion, take the time to revise and edit your work. Check for grammar and spelling errors, and make sure your writing is clear and concise.

By following these tips, you can craft a conclusion that effectively summarizes your findings, highlights the significance of your work, and leaves a lasting impression on your readers.

In summary, an effective conclusion for a research paper or report should summarize your key points, restate your thesis, highlight the significance of your work, provide recommendations, end with a strong statement, avoid introducing new information, consider the tone, keep it concise, use transitions, and revise and edit your work. By following these tips, you can create a conclusion that leaves a lasting impression on your readers and emphasizes the importance of your work.

Sunday, April 23, 2023

How to Find Research Gaps from Literature Review and Related Research Papers

To identify research gaps in a research paper, you can follow these steps:

  • Read the paper thoroughly: Before identifying research gaps, it's essential to understand the study'spurpose, methodology, and findings. This will help you understand what the authors have investigated and what they have not.
  • Look at the conclusion and discussion sections: These sections often highlight the limitations of the study and suggest areas for further research. Look for statements that indicate the authors acknowledge that their study did not investigate certain aspects or that there is still much to learn about a particular topic.
  • Consider the research question and hypothesis: If the authors have proposed a research question and hypothesis, analyze them and determine whether they have answered the question fully. If the answer is no, then there may be research gaps that require further investigation.
  • Conduct a literature review: Reviewing the literature can help you identify areas that have not been adequately addressed in previous studies. If there is a gap in the literature, there may be a corresponding gap in the research paper you are analyzing.
  • Consider the methodology: Look at the methods used in the study and determine whether there are other methods that could be used to investigate the research question. If there are alternative methods, this may indicate a research gap that needs to be filled.
  • Identify inconsistencies: If the results of the study are inconsistent or contradictory, there may be a research gap that requires further investigation.

Overall, identifying research gaps requires a thorough understanding of the research paper and related literature. By following these steps, you can identify areas that require further investigation and suggest potential research questions for future studies.

Thursday, April 13, 2023

How to Find Research Gaps in Research Paper

 To find research gaps in a research paper, you can follow these steps:

  • Read the research paper carefully and identify the main research question and objectives.
  • Identify the key findings of the study and the research methodology used to achieve these findings.
  • Evaluate the strengths and weaknesses of the study and identify any limitations that may have impacted the results.
  • Compare the findings and conclusions of the study with existing literature in the field.
  • Look for areas that the study did not address or explore in depth.
  • Identify any unanswered questions or areas that require further investigation.
  • Determine the potential significance of the identified research gap and its contribution to the field.

By following these steps, you can identify the research gaps in the paper and determine the direction for future research in the area.

Tuesday, March 28, 2023

Free Hosting Platforms for MOODLE LMS

There are several websites that offer free hosting for Moodle LMS (Learning Management System). Some of the popular options are:

MoodleCloud - This is an official Moodle hosting platform that offers a free plan for educators who want to create a small online course. The free plan includes hosting for up to 50 users and 200MB of disk space.

Hostinger - Hostinger is a web hosting company that offers a free hosting plan with 100GB of bandwidth and 2GB of storage. Moodle can be installed on this free plan.

InfinityFree - InfinityFree is a free web hosting service that supports Moodle. They offer unlimited disk space and bandwidth, but the downside is that they have limitations on CPU usage and memory.

ByetHost - ByetHost is another free web hosting service that supports Moodle. They offer unlimited disk space, bandwidth, and email accounts.

AwardSpace - AwardSpace is a free web hosting service that offers unlimited disk space and bandwidth. They also support Moodle, but their free plan has some limitations on CPU usage and memory.

It's important to note that while these options offer free hosting for Moodle, they may have limitations or restrictions compared to paid hosting plans. Additionally, you may need to have some technical knowledge to set up and manage Moodle on these hosting platforms.

Sunday, March 26, 2023

How To Select Research Topic for Thesis

Selecting a research topic for a thesis can be a challenging task, but there are a few steps you can follow to help you choose the right topic:

Identify your interests: Think about your academic interests and what topics you are passionate about. This will help you choose a topic that you are motivated to research and write about.

Conduct a literature review: Conduct a thorough literature review to identify gaps in the existing research. Look for areas where there is a lack of research or where existing research has produced conflicting results.

Consider the scope of your research: Consider the scope of your research, including the time, resources, and expertise you have available. Choose a topic that is manageable in terms of the scope of your research.

Consult with your advisor: Consult with your thesis advisor or other faculty members in your field for guidance and feedback on potential research topics.

Brainstorm potential research questions: Brainstorm potential research questions based on your interests and the gaps in the existing literature you have identified. This can help you refine your topic and develop a clear research question.

Consider the relevance of your topic: Consider the relevance of your topic to your field and the broader community. Choose a topic that is relevant and important to your field and has practical implications.

Refine your topic: Once you have chosen a topic, refine your research question and narrow the focus of your research. This will help you develop a clear and focused thesis statement.

By following these steps, you can choose a research topic for your thesis that is both manageable and meaningful, and will enable you to make a valuable contribution to your field.

How to Write Conclusion and Scope of Future Work in Research Paper

The conclusion and scope of future work sections of a research paper are essential components that help to wrap up your study and provide direction for future research. Here are some tips for writing these sections:

Conclusion:

Summarize your main findings: Begin your conclusion by summarizing the main findings of your study. This should be a concise and objective summary of the most important results.

Revisit your research question: Remind the reader of the research question or problem statement you set out to investigate at the beginning of your study. Explain how your research has addressed this question or problem.

Discuss the significance of your findings: Discuss the implications of your findings and explain how they contribute to the existing body of knowledge in your field. Also, discuss the practical implications of your findings and how they could be applied in real-world settings.

Acknowledge limitations: Acknowledge any limitations of your study and suggest ways in which future research could address these limitations.

End with a strong closing statement: End your conclusion with a strong statement that emphasizes the importance of your research and leaves a lasting impression on the reader.

Scope of future work:

Discuss the limitations of your study: In the scope of future work section, revisit the limitations you acknowledged in your conclusion and discuss how future research could overcome these limitations.

Identify gaps in the literature: Identify any gaps in the literature that your study has highlighted and suggest how future research could address these gaps.

Discuss potential future directions: Discuss potential future directions for research in your field based on your findings. This could include new research questions, alternative methodologies, or new areas of investigation.

Provide a roadmap for future research: Provide a clear roadmap for future research that builds on your study and addresses the gaps and limitations you have identified.

End with a call to action: End your scope of future work section with a call to action, urging researchers to continue to investigate your topic and build on your research to further advance knowledge in your field.

By following these tips, you can write a conclusion and scope of future work section that provides a strong and compelling conclusion to your research paper, while also providing direction for future research in your field.

How To Write Abstract of Research Paper

An abstract is a brief summary of your research paper that provides readers with an overview of your study. Here are some steps to help you write an effective abstract:

Understand the purpose of an abstract: An abstract serves to introduce your research paper to readers, providing a brief summary of its purpose, methodology, findings, and conclusions. It is usually the first section of the paper that readers will encounter, and it should be written in a clear, concise, and engaging style.

Identify the key components of your research: Your abstract should include the main components of your research, including the research question or problem statement, the methodology used, the key findings, and the conclusions drawn from the study.

Write a clear and concise summary: Use simple and straightforward language to describe the key aspects of your research. Avoid technical jargon and provide enough information to help readers understand the main purpose and findings of your study.

Keep it brief: Most abstracts are limited to 250-300 words, so it's important to be concise. Focus on the most important aspects of your research and avoid including unnecessary details or background information.

Use active voice: Write your abstract in the active voice to help make it more engaging and dynamic. This will also help you convey your ideas more clearly and concisely.

Follow the format guidelines: Make sure to follow any format guidelines provided by the journal or conference where you plan to submit your research paper. This may include requirements for the length, style, and structure of your abstract.

Revise and edit: Once you have written your abstract, revise and edit it to ensure that it is well-structured, coherent, and error-free. Make sure to also proofread it carefully to catch any spelling or grammatical errors.

By following these steps, you can write an effective abstract that provides readers with a clear and concise summary of your research paper.

Tips Tricks To Write Literature Review For Research Paper

A literature review is a crucial part of any research paper, as it demonstrates the researcher's understanding of the existing literature on the topic and identifies gaps in knowledge that the research aims to fill. Here are some tips and tricks to help you write an effective literature review for your research paper:

Define your research question: Before you begin your literature review, make sure you have a clear research question or problem statement. This will help you focus your search and ensure that you are selecting relevant literature.

Conduct a comprehensive search: Use a variety of databases and search engines to identify relevant literature. This includes academic journals, books, conference proceedings, and grey literature such as government reports and dissertations. Make sure to also use a combination of keywords and subject headings to ensure that you are capturing all relevant literature.

Organize your sources: Once you have identified relevant literature, organize it into themes or categories. This will help you identify commonalities and differences in the literature and ensure that you are addressing all aspects of the research question.

Analyze and synthesize the literature: Analyze each source and synthesize the information to identify trends, patterns, and gaps in the literature. This will help you identify areas where your research can contribute to the existing body of knowledge.

Critically evaluate the literature: Evaluate the quality of the literature and the methodology used in each study. This will help you determine the validity and reliability of the literature and identify areas where further research is needed.

Write clearly and concisely: Write your literature review in a clear and concise manner. Ensure that you use appropriate academic language and referencing styles, and that you provide a balanced and objective assessment of the literature.

Revise and edit: Once you have written your literature review, revise and edit it to ensure that it is well-structured, coherent, and error-free.

By following these tips and tricks, you can write an effective literature review that will contribute to the existing body of knowledge on your research topic.

Quantum Computing and Key Use Cases

Quantum computing is a field of computing that applies the principles of quantum mechanics to process information. Unlike classical computing, which uses bits to represent information as either 0 or 1, quantum computing uses quantum bits, or qubits, which can exist in multiple states simultaneously. This property allows quantum computers to solve certain problems much faster than classical computers.

Some of the key use cases for quantum computing include:

Cryptography: Quantum computing has the potential to break many of the encryption algorithms that are currently used to secure digital communications. However, it can also be used to create new, more secure encryption methods that are resistant to attacks by classical computers.

Optimization: Many real-world problems involve finding the best solution out of a large number of possibilities. Examples include scheduling, route optimization, and financial portfolio optimization. Quantum computers can be used to solve these problems much faster than classical computers.

Simulation: Quantum computers can simulate the behavior of quantum systems, which is difficult or impossible for classical computers. This can be used to model chemical reactions, biological systems, and other complex phenomena.

Machine learning: Quantum computing can be used to speed up certain machine learning algorithms, particularly those involving large datasets or complex models.

Financial modeling: Quantum computing can be used to perform complex financial calculations, such as risk analysis and portfolio optimization.

Quantum communication: Quantum computing can be used to create more secure communication networks, as quantum communication is inherently more secure than classical communication.

Quantum Computing is a rapidly evolving field with many potential applications. While current quantum computers are still relatively limited in their capabilities, continued research and development are likely to lead to new and exciting use cases in the future.

Sunday, July 11, 2021

Data Preprocessing Vs. Data Wrangling

  • Data Preprocessing is performed before Data Wrangling
  • Data Preprocessing data is prepared exactly after receiving the data from the data source.
  • In this initial transformations, Data Cleaning or any aggregation of data is performed. It is executed once.
  • It is the concept that is performed before applying any iterative model and will be executed once in the project.
  • Data Wrangling is performed during the iterative analysis and model building.
  • This concept at the time of feature engineering.
  • The conceptual view of the dataset changes as different models is applied to achieve good analytic model.


Preparing Own Collected Dataset as Benchmark Dataset for Research

1. Must be publicly available (upload on online portal and without any permission / OPEN ACCESS)

2. The dataset must address a specific problem / instance (CLASSIFICATION / REGRESSION / CLUSTERING / ENSEMBLED / DECISION TREE)

3. The dataset should not be generic for all algorithms..... dataset should not be like an all-rounder

4. Preferably Standardized (standard deviation based, consistent variance : statistical formulations should be used)

Tuesday, October 6, 2020

Generative Adversarial Networks (GAN) in Advanced Machine Learning

Generative Adversarial Networks (GAN) is one of the key domains of research in Advanced Machine Learning and Deep Learning Applications. It is used for text generation, forensic applications, network domain and many others



Saturday, June 20, 2020

Import and Match Multiple DataFrames from EXCEL using PYTHON PANDAS

Many times, there is need to concatenate and analyze multiple data frames in Python.

Suppose we have Three different Excel Sheets in which same type of attributes are there. From these excel sheets, the data can be imported to data frames and then analysis can be done.

Following are three different MS Excel Sheets of attendance of the candidates. From these sheets, we have to check whether a candidate attended all sessions or not

PYTHON CODE
import pandas as pd
df1 = pd.read_excel (r'Book1.xlsx')
df1 = pd.DataFrame(df1, columns= ['Name', 'Attended'])
df2 = pd.read_excel (r'Book2.xlsx')
df2 = pd.DataFrame(df2, columns= ['Attended'])
df3 = pd.read_excel (r'Book3.xlsx')
df3 = pd.DataFrame(df3, columns= ['Attended'])
print('---Sheet-1---')
print (df1)
print('---Sheet-2---')
print (df2)
print('---Sheet-3---')
print (df3)
frames = [df1, df2, df3]
result = pd.concat(frames, axis=1, sort=False)
print(result)

Output


Sunday, April 19, 2020

Python Code: Synchronization and Race-Conditions with Multi-Threading

Thread synchronization: Mechanism to ensures that two or more concurrent threads do not simultaneously execute some particular program segment known as critical section

Critical section refers to the parts of the program where the shared resource is accessed.

Issues in Synchronization

Race Condition: Occurring of a condition when two or more threads can access shared data and then try to change its value at the same time. Due to this, the values of variables may be unpredictable and vary depending on the timings of context switches of the processes.


Python Code: Without Synchronization

import threading
x = 0
def increment_global():
   global x
   x += 1

def taskofThread():
   for _ in range(50000):
      increment_global()

def main():
   global x
   x = 0
   t1 = threading.Thread(target= taskofThread)
   t2 = threading.Thread(target= taskofThread)
   t1.start()
   t2.start()
   t1.join()
   t2.join()

if __name__ == "__main__":
   for i in range(5):
      main()
      print("x = {1} after Iteration {0}".format(i,x))

OUTPUT
x = 100000 after Iteration 0
x = 63883 after Iteration 1
x = 82552 after Iteration 2
x = 100000 after Iteration 3
x = 68994 after Iteration 4


Python Code: Locking Mechanism and Synchronization

import threading 

x = 0
def increment(): 
global x 
x += 1

def thread_task(lock): 
for _ in range(100000): 
lock.acquire() 
increment() 
lock.release() 

def main_task(): 
global x 
x = 0
lock = threading.Lock() 
t1 = threading.Thread(target=thread_task, args=(lock,)) 
t2 = threading.Thread(target=thread_task, args=(lock,)) 
t1.start() 
t2.start() 
t1.join() 
t2.join() 

if __name__ == "__main__": 
for i in range(10): 
main_task() 
print("Iteration {0}: x = {1}".format(i,x)) 

OUTPUT
Iteration 0: x = 200000
Iteration 1: x = 200000
Iteration 2: x = 200000
Iteration 3: x = 200000
Iteration 4: x = 200000
Iteration 5: x = 200000
Iteration 6: x = 200000
Iteration 7: x = 200000
Iteration 8: x = 200000
Iteration 9: x = 200000

Create EXE File from Python Code

Method 1: Generating .EXE using PyInstaller

Install PyInstaller in Anaconda Prompt. Then Execute the Python code with pyInstaller as follows:


Method 2: Generating .EXE using AUTO_PY_TO_EXE




Python Code: SHA: Secured Hash Algorithm


import hashlib
print ("Available Algorithms in HASHLIB: ", end ="")
print (hashlib.algorithms_guaranteed)
print ("\r")
str = "1"
result = hashlib.sha256(str.encode())
print("SHA256 Hash: ")
print(result.hexdigest())
print ("\r")
result = hashlib.sha384(str.encode())
print("SHA384 Hash: ")
print(result.hexdigest())




Python Code: MD5 Message Digest Algorithm for Encryption

import hashlib

x='mypassword'

result1 = hashlib.md5(x.encode())

print("Hash Generated : ", end ="")
print(result1.hexdigest())



Docker Platform

Virtualization is the use of virtual machine that can virtualize the greater part of the equipment assets, including processors, memory, and network availability. With the virtualization, physical equipment assets can be shared by at least one virtual machines. According to the necessities from Popek and Goldberg, there are three perspectives to fulfill the virtualization. To start with, the virtualization ought to give an identical domain to run a program contrasted with a local framework.
To comprehend virtualization, hypervisor ought to be addressed first. Hypervisor empowers correspondence amongst equipment and a virtual machine so that the virtualization fulfills with this deliberation layer (hypervisor). Hypervisor is originally called virtual machine screen (VMM) from these two terms (Hypervisor and VMM) are regularly regarded as equivalent words, yet according to the distinction from Agesen et al, a virtual machine screen (VMM) is a product that manages CPU, memory, I/O data exchange, interrupt, and the instruction set on a given virtualized environment.
A hypervisor may allude to an operating framework (OS) with the VMM. Commonly, a hypervisor can be partitioned into Type 1 and Type 2 hypervisor in view of the diverse level of execution. Sort 1 is sitting on equipment and the correspondence amongst equipment and virtual machine is immediate. The host operating framework is not required in Type 1 hypervisor since it runs straightforwardly on a physical machine. Because of this reason, it is now and again called an ‘exposed metal hypervisor’.
VMware vSphere/ESXi, Microsoft Windows Server 2012 Hyper-V, Citrix XenServer, Red Hat Enterprise Virtualization (RHEV) and open-source Kernel-based Virtual Machine (KVM) are distinguished in this class. Sort 2 hypervisor is on the operating framework to manage virtual machine effectively with the support of equipment arrangement from operating framework. The additional layer amongst equipment and virtual machine in the sort 2 hypervisors causes inefficiency contrasted with the sort 1 hypervisor. Virtual Box and VMware Workstation are in this class.
The terms of Host or Guest machine (or domain) are utilized as a part of the hypervisor to depict diverse parts. Host machine (domain) contains a hypervisor to manage virtual machines, and Guest machine (domain) implies each virtual machine sitting on a hosted machine in a protected and confined environment with its own consistent domain.
With these separated parts, the hypervisor can offer asset limits to different virtual machines on the same physical machine. In other words, the hypervisor is a product layer that makes a virtual domain with virtualized CPU, memory and I/O (stockpiling and network) gadgets by abstracting without end the underlying physical equipment. Virtual machine (VM) commonly alludes to an epitomized substance including the operating framework and the applications running in it also.
TYPES OF VIRTUALIZATION
· Full virtualization — Full virtualization gives virtualization without modifying guest operating framework. In x86 engineering, dealing with benefits instructions is a key component for virtualizing equipment. VMware offers binary interpretation of operating framework asks for so that virtualizing favored instructions can be finished without backings from either equipment or operating framework. There are Microsoft Virtual Server and VMware ESXi using this system.



· Para-virtualization- Xen gather initially created paravirt-operations (later called by paravirtualization) to bolster elite and effective asset segregation with slight adjustments to the guest operating framework. Xen saw that full virtualization upheld guest domains without an adjustment in the operating framework, yet there were negative influences on performance because of the utilization of shadow page tables. Paravirtualization (PV) requires the adjusted OS kernel with framework calls to manage advantaged instructions. Xen registers guest OS page tables specifically with the MMU with a read-just access to keep away from the overhead and intricacy regarding the updating shadow page tables in full virtualization. With the interface between a virtual machine and a hypervisor, paravirtualization accomplishes superior without the help from equipment expansions on x86. Paravirtualization underpins unmodified application binary interface (ABI) so that client applications don’t require any progressions. Paravirtualization is additionally called operating framework assisted virtualization in light of the familiarity with a hypervisor on guest OS. Xen, UML and VMware bolster paravirtualization.
· Hardware Assisted virtualization — To enhance performance of virtualization, Intel and AMD gives virtualization expansions to x86 processors. Intel Virtualization Technology (VT) and AMD Virtualization (AMD-v) are increasing velocities for favored instructions including memory management unit (mmu), coordinated I/O gadgets (iommu). With this equipment assisted virtualization innovation, altered guest OS is pointless to empower virtualization in light of the fact that VMM manages benefit instruction at a root mode which is a ring — 1 without affecting the guest OS.
Using Second Level Address Translation (SLAT), settled paging in Intel EPT (Extended Page Table) or AMD RVI (Rapid Virtualization Indexing), memory management has been improved and the overhead of translating guest physical addresses to genuine physical addresses has been decreased. Early CPUs for x86 don’t have virtualization expansions which are not included in equipment assisted virtualization.

· Operating System-level virtualization (Shared Kernel Virtualization) — Operating framework gives separated allotments to run virtual machines in a similar kernel. With a chroot operation, which is a move of a root catalog for a certain procedure with a detachment to outside registries, OS-level virtualization empowers segregation between numerous virtual machines on a mutual OS. Overhead is exceptionally restricted in this model because of the advantages of running under operating frameworks with a common kernel. Emulating gadgets or communicating with VMM is a bit much. The guest os and the host os ought to have a similar OS or kernel. Running Windows on Linux host is incompatible. There are Solaris Containers, BSD Jails, LXC, Linux vServer, and Docker.
SOFTWARE IMPLEMENTATIONS FOR VIRTUALIZATION
Bare-metal virtualization hypervisors
· Microsoft Hyper-V
· VMware ESX and ESXi
· Citrix XenServer
· Oracle VM
Hosted virtualization hypervisors
· VMware Workstation/Fusion/Player
· VMware Server
· Microsoft Virtual PC
· Oracle VM VirtualBox
· Red Hat Enterprise Virtualization
· Parallels Desktop
CONTAINERS
The approach of online programming, administrations and stages alongside commoditization of computing administrations implies that scaling has happened to paramount significance. Considerably more, new paradigms in programming advancement — lithe systems, which abbreviate the way between the engineer and the generation situations, additionally added to an increase in appropriation among ventures and new businesses alike.
These new advancement hones and another arrangement of necessities, as far as continuous integration and continuous sending meant that there was an appropriate seeding ground for thoughts like containerization. Containerization tools empower “unchanging nature” in the infrastructure: container applications that are worked ‘on the spot’ and ‘set up’ with an indistinguishable setup and same conditions from the original creators intended.
This is one of the main reasons (or maybe even the main driving power) of their fast selection and increased utilization. These tools permit application engineers to concentrate on the application instead of focusing on the infrastructure while bringing versioning to application picture dispersion. It even goes similarly as bringing ideas that “customarily” had a place with an alternate region: you can do pulls, pushes and confers on Docker pictures, ideas obtained from Source Code Management Software (like Git and Mercurial).
To get any disarray off the beaten path, Docker alludes both to an open-source extend (https://github.com/docker/docker) and additionally the organization behind it — Docker Inc. (once in the past dotCloud). dotCloud was a PaaS player who manufactured Docker for internal utilize. When they understood its potential, they rotated and concentrated only on developing Docker.
The significance of the venture in the more noteworthy biological system was likewise perceived by the vast majority of the industry, along these lines allowing Docker to bring 40M$ up in the latest funding round. Following the turn dotCloud (the PaaS offering of the organization) was “migrated” to Berlin-based cloudControl. Docker is only one of the accessible containerization offerings and, the same number of comparative ventures, depends on kernel highlights that (in Linux) have been accessible for over 6 years (since around 2007).
Notwithstanding, as with other innovations (see e.g. blast in cell phone deals with the introduction of iPhone) Docker has just put a client (and designer) neighborly interface around prior parts. Similar ideas showed up 2–3 years prior in Solaris OS (assemble 51 in Solaris 10), known as Solaris Containers w/Solaris Zones. While initially Docker was a wrapper for LXC (Linux Containers), these days it manages libcontainer — a brought together interface for cgroups and kernel namespaces.
DOCKER
While there is a huge amount of likenesses there are likewise no less than two tons of contrasts between the two. The most important distinction is that, in Docker, there’s no overhead introduced by the need to copy a whole OS for the virtual machine. Thusly, Docker gives better performance (as far as speed and limit) when for custom applications in a container, contrasted with virtual machines, gave that the VM host and LXC host have a similar equipment qualities.


Both containers and Virtual Machines address a similar issue — disconnection and control of parts of an application — however this is accomplished in various path as containers surrender a portion of the separation for a more effective use of the (host) framework assets.

DOCKER: AN INTRODUCTION
Docker depends for its execution surroundings, on elements in the host’s kernel — LXC. Be that as it may, it additionally needs filesystem bolster in the purported UFS (Union File System). Docker Filesystems Multilayer Early forms of Docker depended on AuFS, yet later discharges have received a “nonpartisan” approach, with an inclination for device mapper.
This utilization of a duplicate on-compose FS is really what makes Docker look like Git (and Docker Hub like GitHub). Docker’s two main ideas are Containers and Images, where Containers are, well, containers running the application and Images are the Containers-at-Rest (i.e. spared container state). To make a relationship with class ideas in OOP, Images are class definitions, while Containers are class instances at run-time.
With everything taken into account there are only 28 commands that the tool called Docker (self-entitled “independent runtime” for Linux containers) sees, yet they wrap all the specified capacities — including the control, (for example, begin/stop a container) and the meta-management, (for example, push/draw to/from the store).
For instance, starting a container running Redis is as basic as*:
$ docker pull mydockerfile/redis
$ docker run -d — name redis -p 6379:6379 mydockerfile/redis
This will allow one to subsequently use to connect to the Redis server.
<container_host_ip>:6379
The latest version of Ubuntu Linux (14.04 LTS) comes with activated Docker support. It still needs to be installed, though that’s just an ‘apt-get install docker.io’.
KEY FEATURES OF DOCKER
Application-driven: the incremental change that Docker brings on LXC is core interest on organization of use versus sending of machines
Compactness: once distributed, any picture will yield precisely the same wherever it runs • versioning: much like Git, permits submit/push and pulls on existing pictures, verifying contrasts from one focus on the other
Computerization: there are tools that permit a machine, once running, to achieve a particular state
Sharing: using Docker Hub anybody can expand on existing machines or make accessible their pictures for others
Reusability: a picture can be ‘fork’- ed for two distinct purposes.
INSTALLING DOCKER ON WINDOWS
The initial step is to download and install the most recent Docker for Windows work from its GitHub storehouse. As should be obvious in the following figure, Docker for Windows utilizes a conventional Windows installer.
In the event that you acknowledge the installation defaults (which I exceptionally recommend you do), the product gives you the following three parts:
Boot2Docker management tool and ISO: This is the Docker administration command-line interface (CLI).



Virtual Box: We require the center of the Oracle Virtual Box VM desktop virtualization item to permit us to run the center Linux code from inside Windows.

MSYS-git UNIX tools: The Docker Hub will pull containers from open Git storehouses, so we need customer tools accessible on our framework.
Next, double tap the Boot2Docker Start Desktop symbol to begin the Boot2Docker management tool. You’ll be provoked to permit Virtual Box to bind two virtual network interfaces, and after a short time you’ll see an unequivocally Linux-y command quick, as appeared in the following screenshot.

LAUNCHING TENSORFLOW

Open up “Docker Quickstart Terminal”. It ought to bring up a MinGW-sort shell. You could likewise utilize Windows cmd.exe or Powershell.exe however they have additional arrangements that you have to do before you can run docker.exe
Dispatch the TensorFlow container. Set up port forwarding, mount substance of registry into/home.
$ docker run — it — p 8888:8888 — p 6006:6006 — v/c/Users/name/Dropbox/mypath:/home b.gcr.io/tensorflow/tensorflow
The first run through the command is run, it will Download and install TensorFlow. A short time later, this ought to bring you into a Linux VM.
The command above mounts an organizer in your Windows host machine into the container. Its desirable over do things thusly, in light of the fact that the container does not hold on your documents as a matter of course.



It as of now accompanies Jupyter installed, yet you won’t have the capacity to get to the note pads by navigating to localhost:8888 (or whatever port Jupyter begins on). You will likewise want to open port 6006 to have the capacity to utilize TensorBoard (right now, exposing a port on a live container is unrealistic).

Instead, since it is running in a VM, not just do you have to forward the port (thus the — p 8888:8888), yet the IP address you get to should be the IP address of the VM, not the Windows Machine. Thus, you have to find the address of the docker machine running the container.
Listing the docker containers.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

444413d7235233 b.gcr.io/tensorflow/tensorflow "/bin/bash" 2 minutes ago Up 2 minutes 6006/tcp, 0.0.0.0:8888->8888/tcp MyPath
$ docker psdocker-machine ls

$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM ERRORS

default * virtualbox Running tcp://192.168.99.100:2376
$ docker-machine ip default

<My IP Address>
Navigate web browser to 192.168.99.100:8888 (or whatever webserver port your web app is running on) and you should be able to see your web apps.
TENSORFLOW AS A RESEARCH ENVIRONMENT
If you want to use this container for your research environment all you need to do is to clone the docker container, so that you can make changes to it.
In the Docker Quickstart terminal,
docker pull b.gcr.io/tensorflow/tensorflow-full
$ docker images
For example if you installed a python package like ipdb and want to make changes, type:
$ docker commit MyPath mypath/tensorflow
$ docker run mypath/tensorflow
Now, the container is ready for research purposes and implementation of algorithms.
This article focus on the assorted types of virtualization approaches, tools and technologies with the specific case of Docker Implementation for different applications. The concept of virtualization and its applications are quite immense and the more we dig into the matter, the more astonishing results we can fetch.