Week 1 review Flashcards
What is the difference between a client and a server?
A client is a program, or machine, that sends requests to servers. For example, a personal computer. A client is typically a general purpose computer. A server is specialized for serving data to clients via request and response. Servers share data and resources often to several clients at once. They are typically more powerful and more expensive than client machines. Types of servers include application servers, database servers, file servers, print servers, etc. Typically, servers are Linux based.
What is an operating system?
System software that manages computer hardware, software resources, and provides common services for computer programs. The operating system acts as an intermediary between programs and computer hardware for functions such as input/output and memory allocation. Windows is by far the most widespread OS followed by Apple and Linux.
What are some common Client Operating Systems?
Windows, macOS, Linux
What does it mean to be Open Source?
Source code that is made freely available for possible modification and distribution. The open-source model is a decentralized software development model that encourages open collaboration. A main principle of open-source software development is peer production, with products such as source code, blueprints, and documentation freely available to the public. The open-source movement in software began as a response to the limitations of proprietary code. The model is used for projects such as in open-source appropriate technology, and open-source drug discovery. Linux is an example of an open source operating system whereas Windows and macOS requires a license.
Why would a server want to run an open source operating system?
Free and available as open source software.You can easily see the code available that was used for creating the Linux Kernel and also modify the code to fix any bugs etc. And you can even develop your own programs and add it to the Linux OS as it provides you with many programming interfaces. With so many features, you can customize the operating system to suit your requirement which is not possible with Windows.
Stability: Linux systems are renowned for their ultimate stability as they can run continuously for years without any major issues.
Security: When it comes to security, Linux is obviously more secure than Windows as Linux is largely based on the UNIX operating system which was originally developed from the beginning to a multiuser operating system.
Maintenance is cheaper. Freedom from products and services. Flexibility to install whatever you want.
What is Version Control and why is it valuable?
Version control systems allow multiple developers, designers, and team members to work together on the same project. It helps them work smarter and faster! A version control system is critical to ensure everyone has access to the latest code and modifications are tracked. As development becomes increasing complex and teams grow, there’s a bigger need to manage multiple versions and components of entire products.
Version control is important to keep track of changes — and keep every team member working on the right version. You should use version control software for all code, files, and assets that multiple team members will collaborate on.
It needs to do more than just manage and track files. It should help you develop and ship products faster. This is especially important for teams practicing DevOps.
That’s because using the right one:
Improves visibility.
Helps teams collaborate around the world.
Accelerates product delivery.
What is Git?
Git (/ɡɪt/) is version control software for tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows (thousands of parallel branches running on different systems).
Strong support for non-linear development
Git supports rapid branching and merging, and includes specific tools for visualizing and navigating a non-linear development history. In Git, a core assumption is that a change will be merged more often than it is written, as it is passed around to various reviewers. In Git, branches are very lightweight: a branch is only a reference to one commit. With its parental commits, the full branch structure can be constructed.
Distributed development
Like Darcs, BitKeeper, Mercurial, Bazaar, and Monotone, Git gives each developer a local copy of the full development history, and changes are copied from one such repository to another. These changes are imported as added development branches and can be merged in the same way as a locally developed branch.
Compatibility with existent systems and protocols
Repositories can be published via Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), or a Git protocol over either a plain socket or Secure Shell (ssh). Git also has a CVS server emulation, which enables the use of existent CVS clients and IDE plugins to access Git repositories. Subversion repositories can be used directly with git-svn.[43]
Efficient handling of large projects
Torvalds has described Git as being very fast and scalable,[44] and performance tests done by Mozilla[45] showed that it was an order of magnitude faster than some version-control systems; fetching version history from a locally stored repository can be one hundred times faster than fetching it from the remote server.
What is a Git Hosting Provider and what are some examples?
“A web hosting service is a type of Internet hosting service that hosts websites for clients, i.e. it offers the facilities required for them to create and maintain a site and makes it accessible on the World Wide Web”. GitHub/GitLab etc. – hosting services, allow you to host projects that use Git. They have all the functions of the Git engine and various other additional features. Bitbucket. GitLab. Perforce. Beanstalk. Amazon AWS CodeCommit. Codebase. Microsoft Azure DevOps. SourceForge.
What are some common Git Commands?
Git clone. Git clone is a command for downloading existing source code from a remote repository (like Github, for example). …
Git branch. Branches are highly important in the git world. …
Git init
Git add. …
Git commit. …
Git checkout. …
Git status. …
Git push. … ($ git push ) [git push -u origin feature]
for another branch : git push : –allow-unrelated-histories
Steps to push to remote Git repository:
These are the five steps to successfully perform a git remote add origin and push to a remote repository:
- Validate the existence of your local Git repository.
- Create a new, empty Git repository on your remote server.
- Obtain the git remote add URL for the remote repository and add credentials if needed.
- Run the git remote add origin command from your local repository with the –set-upstream and the name of the active branch to push.
- View the pushed files on the remote Git repository to verify that the git remote add and push commands ran successfully.
What is upstream branch?
*Upstream branches are the branches on the remote repository that are tracked by a local remote branch in the local repository
What is programming?
A: Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as analysis, generating algorithms, profiling algorithms’ accuracy and resource consumption, and the implementation of algorithms (usually in a chosen programming language, commonly referred to as coding). The source code of a program is written in one or more languages that are intelligible to programmers, rather than machine code, which is directly executed by the central processing unit. The purpose of programming is to find a sequence of instructions that will automate the performance of a task (which can be as complex as an operating system) on a computer, often for solving a given problem. Proficient programming thus usually requires expertise in several different subjects, including knowledge of the application domain, specialized algorithms, and formal logic.
Tasks accompanying and related to programming include testing, debugging, source code maintenance, implementation of build systems, and management of derived artifacts, such as the machine code of computer programs. These might be considered part of the programming process, but often the term software development is used for this larger process with the term programming, implementation, or coding reserved for the actual writing of code. Software engineering combines engineering techniques with software development practices. Reverse engineering is a related process used by designers, analysts, and programmers to understand and re-create/re-implement.
What is control flow?
A: In computer science, control flow (or flow of control) is the order in which individual statements, instructions or function calls of an imperative program are executed or evaluated. The emphasis on explicit control flow distinguishes an imperative programming language from a declarative programming language.
Within an imperative programming language, a control flow statement is a statement that results in a choice being made as to which of two or more paths to follow. For non-strict functional languages, functions and language constructs exist to achieve the same result, but they are usually not termed control flow statements.
A set of statements is in turn generally structured as a block, which in addition to grouping, also defines a lexical scope.
Interrupts and signals are low-level mechanisms that can alter the flow of control in a way similar to a subroutine, but usually occur as a response to some external stimulus or event (that can occur asynchronously), rather than execution of an in-line control flow statement.
At the level of machine language or assembly language, control flow instructions usually work by altering the program counter. For some central processing units (CPUs), the only control flow instructions available are conditional or unconditional branch instructions, also termed jumps.
What are some common Control Flow Statements in Java?
A: Java provides three types of control flow statements. Decision Making statements if statements switch statement Loop statements do while loop while loop for loop for-each loop Jump statements break statement continue statement
What is the entry point for any Java application and what is the syntax for writing it?
Main method:
public static void main(String[] args) { {