Friday, February 22, 2019

virsioncontrol


Need of  VCS
Version control assist you to evaluate documents, become aware of differences, and merge
the adjustments if wished previous to committing any code. Versioning is also a tremendous manner to keep track of utility builds
being able to discover which model is presently in development, QA , and manufacturing. Also, while new developers be a part of the crew,
they are able to easily download the modern version of the utility to their nearby surrounding the use of the model control device and
able to keep track of the version there are presently running. During improvement
you could additionally have completely unbiased code variations in case you chose to keep special improvement ,
effort separate. When equipped, you could merge the document to create a very last running version

Models of VCSs
Centralized Version control
Benefits:-
1.It is easy to understand.
2.you have more control over users and access(since it served from one place)
3.More GUI and IDE clients
4.Simple to get start commenced

Drawbacks:-
1.Dependent on access to the server
2.Hard to mange a server and backups
3.It can be slower because every command connects to the server
4.Branching and merging tools are difficult to use

Distributed version control
Benefits:-
1.It's speedy
2.No server essential
3.More powerful and exact exchange tracking, which means that less conflicts
4.Branching and merging is more dependable, and therefore

Drawbacks:-
1.The distributed model is harder to understand.
2.It’s new, so not as many GUI clients.
3.The revisions are not incremental numbers, which make them harder to reference.
4.It can be easier to make mistakes until you are familiar with the model.

GIT and GIT HUB
Git is a free and open source distributed version control system designed to handle
everything from small to very large projects with speed and efficiency
GitHub is a web-based Git repository hosting service, which offers all of the distributed
revision control and source code management functionality of Git as well as adding
its own features


GIT commands , commit, push
commit: adding changes to the local repository
push: to transfer the last commit to a remote server
Git commit: "records changes to the repository" while Git push "updates remote
refs along with associated objects”. So that first one is used in connection with
your local repository, while the latter one is used to interact with a remote
repository

Staging area and GIT directory
when you work on your project making changes you are dealing with your project's working
directory. This is the project directory on your computer's file system. All the changes
you make will remain in the working directory until you add them to staging area( via git add
command) .the staging area is best described as preview of your next commits. Meaning,
when you do a git commit, git will take the changes that are in the staging area and make a new commit
out of those changes. One practical use of the staging area is that it allows you to fine-tune your commits. You can add and remove changes from staging area until you are satisfied with how your
Next commit will look like , at which point you can do git commit.  And after your commit your changes they go in to .git/Objects directory where they are saved as commit, blob and three objects.

GIT workflow
Git workflow defines a strict branching model designed around the project release. This work flow doesn’t add any new concepts or commands beyond what’s required  for the Feature Branch flow . Collaboration is often about branching workflow. Thinking ahead on how you will interview commit trees will help you minimize integration bugs and support your release management strategy.

·        Nimal works on his feature
In his local repository, Nimal can develop features using the standard Git commit process:
Edit, stage and commit . Remember that since three commands create local commits, Nimal
Can repeat this process as many times as he wants without worrying about what’s going on
The central repository.


·        Anne works on her feature
Meanwhile, Anne is working on her own feature in her own local repository using the same
Edit/stage/commit process. Like Nimal ,she doesn’t care what’s going on in the central repository, and she really doesn’t care what Nimal is doing in his local repository, Since all local repositories  are private.


Benefits of CDN
Companies that witness a huge traffic on their website on daily basis can use cdn to their advantage. When large number of users at the same time access a web page on same specific content such as video, a cdn enables that content to be each of them without delay. There are some few of benefits using a cdn for your website
·        Your server load will decrease
·        Content delivery become faster
·        Segmenting your audience become easy
·        Lower network Latency and packet loss
·        Higher Availability and better usage analytics
·        Offer secure storage capacity foe content
Differences between CDNs and Web Hosting
Web hosting is used to host your website on a server and let users access it over the internet. A content delivery network is about speeding up the access/delivery of your website’s assets to those users.

Web Hosting normally refers to one server. A content delivery network refers to a global network of edge servers which distributes your content from a multi-host environment.

Traditional web hosting would deliver 100% of your content to the user. If they are located across the world, the user still must wait for the data to be retrieved from where  your web server is located. A CDN takes a majority of your static dynamic content  and servers it from across the globe, decreasing download times. Most times, the closer the CDN server is to the web visitor , the faster assets will load for them.


Identify free And Commercial CDNs
               CDN is a geographically distributed network for proxy servers and their data centers. The goal is to provide high availability and high performance by distributing the service spatially relative to end users
               CDN server a large portion of the internet content today, including web objects ,  downloadable objects , applications , live streaming media, and social media sites.


Requirements for virtualization
               There is a gap between development and implementation environments
ü  Different platforms
ü  Missing dependencies , frameworks/ run times
ü  Wrong configurations
ü  Version mismatches
Hardware virtualization
OS level virtualization (desktop virtualization)
Application level virtualization
Containerization (also OS / application level)
Other virtualization types


Pros and Cons of different virtualization techniques in different levels
               Pro :-
Ø  Efficient resource utilization:
Virtualization enables business  to get the most out of  their investments in hardware  and
               Resources.
              
Ø  Reduced IT costs:
Virtualization helps business reduce costs in several way, according to Mike adams who is senior director of cloud platform product marketing at VMware
v  Capital expenditure savings
v  Operational expenditure savings
v  Data center and energy-efficiency savings
Con:-
Ø  Not all hardware or software can be virtualized

Ø  The upfront costs are hefty

Popular implementations and available tools for each level of virtualization

*     Plotly
*     Tableau
*     FusionCharts
*     Datawrapper
*     Sisense
*     Highcharts
Hypervisor and it’s role

A hypervisor is a process that separate a computer’s operating system and applications from the underlying physical hardware. Usually done as software although embedded hypervisors can be created for things like mobile devices. The hypervisor drives concept of virtualization by allowing physical host machine to operate multiple virtual machines as guests to help maximize the effective use of computing resource such as memory, network bandwidth and CPU cycles.
              
How emulation is different from VMs
               Virtual machines make use of CPU self-virtualization , to whatever extent it exists , to provide a virtualized interface to the real hardware. Emulators emulate hardware without relying on the  CPU being able to run code directly and redirect some operations to a hypervisor controlling the virtual container.

VMs vs Container





        VMs
      Containers
heavyweight
Lightweight
Limited performance
Native performance
Each VM runs in its own OS
All containers share the hosts OS
Hard ware level virtualization
OS virtualization
Startup time in minutes
Startup time in milliseconds
Allocates required memory
Requires less money space
Fully isolated and hence more secure
Process-level isolation , possibly less secure


Advantage of VMs:-
*     All os resources available to apps
*     Established management tools
*     Appliance upgrade , patches and bug fixes
*     Testing and support tools
*     Better known security tools
*     Supported platform for PIN safe deployment
Disadvantage of VMs:-
*     VM type may not be part of organization standard

Advantage of containers:-
*     Less code to transfer, migrate, upload workloads
*     Reduced IT management resources
*     Quicker spinning up apps
*     Reduced size of snapshots

Disadvantage of Containers:-
*     Data storage is intricate
*     The container ecosystem is split
*     Graphical applications don’t operate well


Friday, February 15, 2019

Introduction to the frameworks






Declarative programming is a programming paradigm that express the logic of computation without describing its control flow. Its a program
on a higher level of abstraction than imperative programming. Declarative programming is necessary would be in web development when you
are working with framework. Imperative programming is programming paradigm that uses statements that change a program's state. Imperative programming
is necessary would be in the engineering of algorithms and other low level necessities.


Both function and procedures are subroutines that are reused prebuilt block of code. The distinction between them is function return a value
,and procedures don’t. More specially, function are built for having lower side effect and always produce same output when give same input.
In addition function are usually concerned with higher level ideas and concepts. Procedures on other hand don’t have any return value, their
main goal is to complete a given task and cause a desired side impact. A great example is procedure is a loop. The loop main goal is to cause side effect
and doesn’t return a value in of itself.


Lambda calculus is a framework and was developed to study computations with functions. Lambda calculus is a formal system in mathematical
logic for expressing computation based on function abstraction and application using variable combining and substitution .
Lambda expression can be passed around as if it was an object and executed on demand. Enable to treated functionality as method argument, or
code as data. A function can be created without belonging to any class. Lambda expressions provide that functionalities.



A functional side effect is when a function changes two way parameter or a nonlocal variable. It occurs  when the function changes. Either one of
is parameters or a global variable. The lack of side effect makes it. Easier to do formal verification of a program. Functional language as Standard ML,
Scheme and Scale don’t restrict side effects, but it customary for programmers to avoid them


Referential Transparency is a property of a part of program or programming language . This mean that the program's behaviour isn’t changed weather
the input used is reference or an actual value that the reference is pointing to








Features of OOP:
               1.OBJECT :-
                              Object is a collection of wide variety of entities. Object takes space in the memory. Objects are blueprint of classes. When
                              program is executed, object communicates by sending messages to one another. Each object contain data and code to
                              manipulate the data. Object can interact without having realize information of every other data or code.

               2.CLASS :-
                              Class is collection of objects of similar type. Once class is defined, we can create any number of objects belonging
                              that class.
              
               3.ENCAPSULATION :-
                              It is the process of grouping related attributes and methods together, giving a name to the unit and providing an interface
                              for outsider to communicate with the unit.

               4.INFORMATION HIDIND :-
                              hide certain information or implementation decision that are internal to the encapsulation structure

               5.ABSTRACTION :-
                              It is the process of removing characteristics from something in order to reduce it to a set if essential characteristics that is
                              needed for the particular system.
              
               6.POLYMORPHISM :-
                              Poly refer many. So polymorphism as the name suggest is certain item appearing in different forms of way. That making
                              a function or operator to act different forms depending on the place. They are represent as polymorphism.



Event driven programming is programming paradigm in which the flow of the program is determined by events such as user action ,sensor outputs
or messages from other programs or threads. Event-driven programming is the dominant paradigm used in graphical user interfaces and other
applications that are cantered on performing certain actions in response to user inputs. This is also true of programming for device drivers.



Markup language is used to control the presentation of data like "represent the username as bullet list or data table".Markup language don’t executed or
used to perform actions but they are used to structure data, identify data or present data.
Scripting language that aren't compiled , more like interpreted at a runtime. Its like file containing instruction for a computer to follow
to carry out task
A compiled language is the proper and formal language that has been designed to allow programmers to communicate instructions to a computer.
It is used to create programs



A virtual machine (guest) is a program that acts as a virtual computer. It runs on your current
operating system (host) and provides virtual hardware to guest OS. The guest OS runs in a window
on your host OS, just like any other program on your computer. From the guest operating system's perspective, the virtual machine is real, physical computer.



1.Reproduce the bug
                              Finding a series of actions that consistently reproduces a bug  is always the first step to debugging
2.Get familiar with the source panel UI
                              DevTools provides lot of different tools for different task , such as changing css ,profiling page load performance , and
               monitoring network request. The source panel is where you debug JavaScript
3.Pause the code with breakpoints
                              A common method for debugging a problem like this is insert a lot of console.log() statements into the code, in  order to
inspect values as the script executes
4.Step through the code
               One common cause of bugs is when a script executes in the wrong order. Stepping through your code enables you to walk through your code
               extension, one line at a time, and figure out exactly where its executing in a different order than you expected
5.Set a line of code breakpoint
               Line-of-code breakpoints are the most common type of breakpoint. When you have got a specific line of code that you want to pause on,
use line-of-code breakpoint
6.Check variable value :
               The value attend1,attend 2, and sum look suspicious. They are wrapped quotes, which means that there are string. This is good hypothesis
for the explaining the cause of the bug.Now its time to gather more information. DevTool provides  a lot of tools for information. DevTools
provides a lot of tools for examining variable values.
6.Apply a fix
               You have found a fix for the bug. All that’s left is to try out fix by editing the code and re-running the demo. You don’t need to leave
DevTools to apply the fix. You can edit JavaScript code directly within the DeveTools UI


Real case Tool can be separated into 3 types, depending on where in the development process they are most involved in:
               upper-support analysis and design phases.
               Lower-support coding phase
               integrated-also known as I-CASE support analysis, design and coding phases
workbenches:
               collection of tools that together support
               process workflows
               one or two activities where an activity is a related collection of tasks
                commercial ex:
                              PowerBuilder
                              Software Through Pictures
                              Software Architecture
Environments
               Support the complete software process or, at least , large portion of the software process.
               Normally include several different workbenches which are integrated in some way.

Framework -
A framework is a real or conceptual structure intended to serve as a support or guide for the building of something that expands the structure into something useful. Frameworks enable development of a project or solution to a specific problem. Frameworks are ready-to-use packages.
Library –
Library is a collection of precompiled routines that a program can use. Sometimes called modules. You can link that a many programs do not need to explicitly. The Library code that has already been written by other developers. A library performs specific, well-defined operations.

Plug-in-
A plug-in is an element of a software program that can be added to provide support for specific features. For example if you wanted to watch a video on a website, you may need plugin to play it because your browser doesn’t have the tools it needs.

When you call a method from a library, you are in control. But with a framework. In a framework, all the control flow is already there and there are many predefined white spots that we should fill out with our code. A framework is normally more complex. A framework can contain libraries. A framework will usually include many libraries to make your work easier.
The main difference between plugin and library is that a plugin is an extension that improves the capabilities of an application while a library is a collection of classes and functions that helps to develop a software.