Not to worry anymore! You can now code and sort problems TOGETHER!
The second blog article written by me will contain information on version control systems,centralized distributed systems, virtualization and about Git which is a very interesting tool used by software developing community.
Let’s start with version control systems which is known by VCs in short form.
1.Version control systems
Nowadays working in a group basis has proved be very efficient in every field.When several coders get together and start coding a group project they get to face many difficulties.One member's code will be needed by another member but they might be unable to share the code at some point.Also if the source code go wrong it would create bugs in the code and will even cause uneasiness among team members.
These kind of reasons made Version control systems to attain its birth.
Version control system is a type of tool used in group projects mostly.These help a coding team to manage changes over a source code over time.VCs can keep track on modification done to codes.Hence if a mistake is made, coders can take a look at the early versions and modify them easily.
Now we will take a view at types of VCs.
Three major types of VCs can be found in programming world.
1.Local VCs
2.Centralized VCs
3.Distributed VCs
* Local VCs
This is the oldest type of VCs found.No collaboration is present in Local VCs.Highly prone to risks.These use a local database.
*Centralized VCs
Better than local VCs.Comprised of a centralized server which tracks file changing.Collaboration is present.Risks are server crash down and security problems.
*Distributed VCs
Distributed VCs are the tools that are widely used in 21st century and out of them the most popular one is Git. Even though there can be a server crash down, since data is distributed,every machine contains a copy of source code with its history.Hence files could be obtained from other local machines.
Moving onto Git back again,it is popular over other distributed VCs as,
*It is a free and open source software.
*Has a prominent speed
*Takes snapshots from time to time
*Codes can't be changed without being alerted.
*Performs automatic garbage collection.
Git has several implementations like GitHub,Git Lab,Sourceforge.
If we consider GitHub,
GitHub is the remote repository whereas the local repository is your machine.A repository (also called a repo) is where the source code and files are stored.
Mostly using Git,project is copied from remote repository to local repository.It can happen vice-versa too.In GitHub Git Bash is used for these purposes.Git Bash is like command prompt in windows.
Lets assume that we are using GitHub.
If we consider from remote repository side, What we need to do first is creating an account in GitHub.This is free.After that we can create a repository.This remote repository can be cloned into the local machine using the command "git clone" followed by entering the link of remote repo.
Ex: git clone https://....
After this we can modify the files and commit changes. The command "git commit" will record changes into the local repo. When using the commit command it is preferred to add comments along the command to provide help when detecting errors.
If the needed commits are made we can push the file into the repo.
Image from Tutorialspoint showing life cycle of git operations
If the repo is made in the local machine the repo will not become a git repo until you initialize it using the command "git init". Further more Git has now provided its service as egit in Eclipse IDE too.
2)Centralized delivery networks (CDNs)
This is a type of server system working with the help of neural networks.It delivers web content based on geographical locations of the user. Over traditional web hosting servers CDNs have shown that they are much effective.
The advantages are,
*Speeds up access.
*Takes less time for downloads.The closer the CDN server to the relevant web server,the faster the loading.
*Is reliable.
*Bandwidth is saved with web host.
*Has high standard of authentication and encryption.
There are types of CDNs like
*Free CDNs
*Telco CDNs
*Multi CDNs
Free CDNs contain CloudFare and Playster while commercial CDNs have softwares like BitTorrent,RawFlow.
Lastly let’s have a brief look at another trending topic,
4.Virtualization
The programming world is no more focusing on hardware space. Rather, the attention has diverted towards storing data in virtual space.This is called "virtualization".
The best example is where you can find a multiple number of operating systems running on a single hardware platform.
The key component functioning in a virtual machine is called a "hypervisor". Virtual machine monitor also is a synonym for hypervisor.It makes the virtual machine to run. Hypervisor manages the virtual operating platform making guest operating systems run on host machines.
Enhanced performance,solution to lack of storage space and limited use of resources are advantages of using virtual machines.
*Virtualization types
1.Hardware virtualization
Ex:VMs
2.OS level virtualization
Ex:Remote desktop terminals
3.Application level virtualization
Ex:Runtime environments
4.Containers/dockers
Out of above types, Containers are special due to a specific reason.
These are similar to virtual machines but these do not contain guest operating systems.Therefore these function efficiently over virtual machines as less resources are used.
Virtualization tools
Packer
2.VirtualBox
3.KVM
End of another week,start of another more set of blog articles my beloved friends!
Await for more interesting news..Till then have a nice day all!! :














