Monday, November 28, 2016

                       Compter Graphics

What is a Computer Graphics  ?

      Computer Graphics are usually image data that is created using a specialized graphical hardware and software. This phrase was brought into existence the Graphics researcher Verne Hudson and William Fetter. The important topic that are a part of Computer Graphics are User Interface design, vector Graphics, Graphics processing Unit ( also known as Visual Processing Unit), 3D Modeling.
The term Computer Graphics can refer to several things:-

  • The manipulation of data in the form of Image using Computers.
  • The technology used to manipulate the image.
  • The sub-field of Computer Science that studies different methods of Synthesizing and Manipulating Visual Data


Concepts and Principles included in Computer Graphics

  •  Pixels :- Pixel is a single point in an image. It is a two dimensional grid and is represented using symbols like dots and squares.
  • Graphics:- Graphics are visual presentations combining text and illustrations.
  • Primitives :- Primitives are basic units that a graphic system may combine to create complex images and models such as Character maps in 2D Video Games.
  • Rendering :- Rendering is the creation of a 2D Image from a 3D model using computer programs. The Rendering Program is a lighting model for computer generated Imagery
  • 3D Projection:- 3D Projection is the method of mapping three dimensional points on a plane that is two dimensional. The use of 3D projection is wide spread in field such as Computer Graphics and Engineering. 
  • 3D Modeling:- 3D Modeling is the process of developing a mathematical representation of a  three dimensional object. It can be manual or automatic. 
_________________________________________________________________________________

References 

_________________________________________________________________________________

Friday, November 18, 2016

            Wildcard in Programming 

What is Wildcard?

Wildcard is a symbol used to replace or represent one or two characters. There are different types of symbols used for the wildcard. Many application and Operating Systems support wildcard to search for file and directories. It helps the user to search for files with using short forms while searching for a file name. The advantage of the functions of Wildcard is that if the person doesn't remember the full name but vaguely remembers a few letters they can see all the options available with that file name and  recognize  the name rather which is easier than having to remember the full name.
What are the different symbols used as Wildcard Character?

         There are different characters used as a Wildcard:-

  • PercentWildcard  (%) -: The percent wildcard is used to matches characters zero or more times in the Structured Query Language (SQL). It includes the underscore symbol as well.
  • AsteriskWildcard(*) -:  The Asterisk is used to match characters zero or more times. For example , for (comp*)  all the terms starting 'comp' such as computer, complete, will be included in this.
  • Question MarkWildcard (?):- The question Mark is used to match a single character. For example for ("c*mp")  the perfect matches would include words like camp and comp. In MS-DOS and  the Windows the question mark symbol(?) matches the trailing question marks zero or one times. For example, ("si??") would also show the result sip even though it doesn't have four character. This is because it matches the trailing question mark.
  • Open and close Bracket Wildcard ([]) :-  The open and close brackets match single characters in the range . For example, the letter f would be matched by this Wildcard but the number 8 would not be matches by this Wildcard because it is not a part of this range.
 What are the programming languages that support the usage    of Wildcard?
  Wildcard can be used in Javascript and C++  and Structured Query Language (SQL).
_________________________________________________________________________________

Reference


Friday, November 11, 2016

                          Use of Computer in Banking

The computers have taken over most of the world. As predicted by Economists, all the Routine  manual and Routine Cognitive  are being removed. The main reason for this to happen is the development of technology which in turn is also making dependent on Technology. Just like the fields in the world, computer Science is the also a very essential part of Banking.

  What is role of computer in Banking?

The role that computer science plays in Banking are 
- It makes sure that no money is being misplaced or lost in transaction.
- It has  a fixed place where all the data and information about the transactions and the people involved in the transactions  is storage.
- the computer helps to store more information than an entire library of books and files would have been able to store.
-With the improvement in computer a whole new kind of Banking has opened up that is completely web based. It helps you to conduct all your economic transactions sitting on the computer.
- It has made the informations  about the bank for all the people more accessible.
- It has  made it easier for the banks be in touch with the other branches of the bank.

Computers are essential for the Smooth function of the  banking because computers are found at every stage of Banking. The smooth functioning of Banking depends on the smooth function of the ATM,  the bank computer that authorizes money withdrawal, Direct Deposit depends on computerized transactions, use of the Scanner which makes transactions so much more secured, and many more just technological tools to make it easier for the Bankers
______________________________________________________________________________

Reference 


          














Friday, November 4, 2016

                                   Computer Virus

 A computer virus is a piece of code that enters the system that damages the regular working of the computer. The computer viruses are all man made and they make the computer run against your wish.  The computer viruses can takes over a great space in the hard disk.The main causes for Computer viruses are:
 -Infected Flash Drives or Disks
- email attachments 
-unknown infected websites
 -use of pirated software

What are the different types of Viruses?

 The different types of viruses are
-CodeRed:-This is a worm that infected the function of the Microsoft IIS Server. This is the Virus                          that posed an attack on the White House's Website.
-Nimba:- It is the kind of Virus that spreads itself using different methods. It can make changes to                    pre-existing file, change the security system and degrades the performance of the computer
-Sircam:- This kind of virus is spread via email. It degrades the performance and also delete's the                       files. This kind of Virus can be sent to anyone.  
Melisa:- This is a virus that send itself to 50 people if  Microsoft Outlook is installed on the                         device. It disables different safeguarding setting in MS Word.
Ripper:- It corrupts the data from the hard disk
MDMA:- It transfers between the two MS Word file  in the memory.
Concept:- This kind of virus  is also spread around via email attachments. They save the file in                             template directories instead of storing them in their Original Locations.

 How can we protect our computers from Anti-viruses?

 The computer can be protected from Anti-Viruses by the following  precaution 
- The latest version of Anti- virus software should be installed in our computers.
-The anti-virus should be updated regularly.
-USB drive should be scanned for viruses and shouldn't be used on infected computers.
- Unauthorized or pirated software shouldn't be installed on the computer.

__________________________________________________________________________

References



Friday, October 28, 2016

                                            Polymorphism

In object-oriented programming, Polymorphism refers to a programming language's ability to process objects differently depending on their data type or class. In other words, It is the ability to redefine methods for derived classes. Polymorphism is considered to be a requirement of any true Object-Oriented Programming Language (OOPL). There can we several types of Polymorphism.

What are the different types of Polymorphism ?

  • Ad hoc polymorphism: When the function denotes different heterogeneous implementations depending on a limited range of individually specified types and combinations. Ad hoc polymorphism is supported in many languages using function overloading.
  • Parametric polymorphism: When code is written without mention of any specific time and thus can be used transparently with any number of new types. In object-oriented programming community, this is often known as generics or generic programming. In functional programming community, this is often simply referred to as polymorphism.
  • Sub typing :This is also called subtype polymorphism or inclusion polymorphism. When a name denotes instances of many different classes related by some common superclass. In the object-oriented programming community, this is often simply referred to as polymorphism.
The interaction between parametric polymorphism and sub typing that leads to the concepts of variance  and bounded quantification. 

When is Polymorphism useful ?

The usefulness of Polymorphism depends on the programmer's design and logic. If the programmer  wants to bind your implementation at runtime then Subtype polymorphism will be useful. If you want to invoke different implementation at runtime based on the input arguments then ad-hoc polymorphism will help. If the programmer wants to write a code with a family of types, the code can ignore type specific details and  just interact with the base type of family. Even though the code thinks it is using an object's class could actually be the base class or any one of its subclasses. This makes it easier the programmer to write the code and the readers to understand.Overall, polymorphism provides a powerful feature in binding the  implementation at runtime and provides design extensibility.
_________________________________________________________________________________

References



_________________________________________________________________________________

Friday, October 21, 2016

                               Deadlock   

      Earlier the computer operating system ran only one program at a time. All the resources of the system were available to this one program. As technology developed, operating system ran multiple programs at once, interleaving them.This brought in the problem of Deadlock. Deadlock is a situation in which two computer programs share the same resources and effectively prevent each other from accessing the resources which results in both programs ceasing to function. In other words, this is a condition that occurs when two processes are each waiting for the each other to complete before proceeding and thus, the result is that both processes hang. Deadlocks mostly occur in multitasking and client/server environments.

What are the necessary conditions ?

There are four necessary conditions to achieve deadlocks :-

1) Mutual Exclusion: At least one resource must be held in a non-shareable mode; If any other process requests this resource, then the process must wait for the resource to be released.

2) Hold and Wait :A process must be simultaneously holding at least one resource and waiting for at least one resource that is currently being held by some other process.

3) No preemption: Once a process is holding a resource, then that resource cannot be taken away from that process until the process voluntarily releases it.
4)Circular Wait : A set of processes {P0,P1,P2, ....PN } must exist such that every P[i] is waiting       for P[(i+1)%(N+1)].



How to handle a deadlock ?


1)Generally speaking there are three ways of handling deadlocks:
  • Deadlock prevention or avoidance - Do not allow the system to get into a deadlocked state.
  • Deadlock detection and recovery - Abort a process or preempt some resources when deadlocks are detected.
  • Ignore the problem all together - If deadlocks only occur once a year or so, it may be better to simply let them happen and reboot as necessary than to incur the constant overhead and system performance penalties associated with deadlock prevention or detection. 

2) In order to avoid deadlocks, the system must have additional information about all processes. In particular, the system must know what resources a process will or may request in the future.

3)Deadlock detection is fairly straightforward, but deadlock recovery requires either aborting processes or preempting resources, neither of which is an attractive alternative.

4)If deadlocks are neither prevented nor detected, then when a deadlock occurs the system will gradually slow down, as more and more processes become stuck waiting for resources currently held by the deadlock and by other waiting processes. Unfortunately this slowdown can be indistinguishable from a general system slowdown when a real-time process has heavy computing needs.
_________________________________________________________________________________

Reference

_________________________________________________________________________________

Friday, October 14, 2016

                       Chrome  Extensions
        An extension is a zipped bundle of files- HTML, CSS, JavaScript, images and anything else that is needed and that adds functionality to the Google Chrome browser. Many extensions add UI to the  Google Chrome in the form of browser actions or page actions.Each extension can have at most one browser action or page action. A browser action that is most relevant to most pages is chosen. A page action is chosen according to when the extension icon should be active or inactive, depending on the page. Extensions are essentially web pages that can use all the APIs that the browser provides to web page. 
Each of the extensions have the following files 

  • A manifest file
  • One or more HTML files (unless the extension is a theme)
  • Optional: One or more Javascript files
  • Optional: Any other files your extension needs- for example, image files

The manifest file, called manifest.json, gives information about the extension such as the most important files and the capabilities that the extension might use.
     The most popular Google Chrome Extensions are Honey, Hangouts, Momentum, Office Online, Grammarly, Google Keep and Stay Focused. Each of them improvise the functions provided to us by  Chrome. 
The Extension Honey helps people find the best deal on any of the online shopping sites. The extension Hangout helps people to keep in touch and communicate.The Extension Google Keep helps people to take notes. The extension Grammarly helps people to get rid of all the typing errors they make while writing an articles. This extensions also fixes all the Grammatical errors and provides better vocabulary and phrasing for the sentences. The extension Stay Focused helps people to avoid getting distracted while researching. Google chrome was extremely powerful in itself but with these extensions added to it, it has become unbeatable.
_________________________________________________________________________________


Reference


_________________________________________________________________________________








Friday, October 7, 2016

                                      Operating System 

The operating system is the most important program that runs on a computer. It is the software that supports a computer's basic functions such as scheduling tasks, executing applications, and controlling peripherals. Every general purpose computer must have an operating system to run other programs and applications. For large  systems, the operating system has even greater responsibilities and powers. It makes sure that different programs and users running at the same time do not interfere with each other.


 What is the classification of Operating Systems?

 TheOperating System can be of different types :
  • Multi-user: It allows two or more users to run programs at the same time. Some operating systems permit hundreds or even thousands of concurrent users.
  • Multi-tasking : It supports running a program on more than one CPU.
  • Multi-processing: It allows more than one program to run concurrently.
  • Multi-threading: It allows different parts of a single program to run concurrently.
  • Real Time: It responds to input instantly.The general-purpose operating systems are not real time. 

What are the functions of operating systems ?

  • Memory Management: Memory management refers to the management of Primary Memory or Main Memory. Main Memory is a large array of words or bytes where each word or byte has its own address.The operating system does the following activities:
            - Keeps track of primary memory
            - In Multiprogramming, the OS decides which process will get me memory and how much
            - allocates the memory when a process requests it to do so.
            - De-allocates the memory when a process no longer needs it or has been terminated.
  • Processor Management:In multiprogramming environment, the OS decides which process gets the processor when and for how much time. This function is called Process Scheduling. An Operating System does the following activities for Processor management:   
          -Keeps track of processor and status of the process. The program responsible for this task is                  known as Traffic Controller
          -Allocate a processor(CPU) to a process
          - De-Allocate processor when a process is no longer required
  • Device Management:An operating System manages device communication via their respective drivers. The Operating System does the following Activities for the Device Management -
           - Keeps track of all devices.Program responsible for this task is known as I/O Controller
           - Decides which process gets the device when and for how much time.
           - Allocates the device in the efficient way.
           - De-allocates devices.
  • File Management: A file system is normally organized into directories for easy navigation and usage. These directories may contain files and other directions.An operating System does the following activities for file management:
           - Keeps track of information, location, uses, status and etc. The collective facilities are often                  known as file system.
           - Decides who gets the resources.
           - Allocates the resources.
           - De-allocate the resources.
  • Others : The other important Activities include:
            - Security
            - Control over system performances
            - Job accounting 
            - Error detecting aids
            - Coordination between other softwares and users.

________________________________________________________________________________

References

________________________________________________________________________________






Friday, September 30, 2016

                                Metaprogramming 


Metaprogramming is the art of writing a computer program with the ability to treat programs as their data.It means that a program could be design to read, generate, analyze or transform other programs, and even modify itself while running. Metaprogramming is what is done with C++ templates or CommonLisp macros. The code in question usually consists of a template and some instructions and how to fill it. The instructions in Metaprogramming are rather complicated. CommonLisp Macros can transform or generate the code in arbitrarily sophisticated ways.The programs that can be modified at runtime or have incremental compilation  available can be actually used to perform Metaprogramming without generating a source code. The java languages can be used for metaprogramming are  C#, Forth, Frink, Groovy, JavaScript, Lisp, Lua, Perl, PHP, Python, REBOL, Ruby, Smalltalk, and Tcl.

Why is Metaprogramming done ?

  • To get around limitations in the primary development languages. Usually, this sort of thing is done when  there is a management edict to use a particular language. The use of a different language is not allowed but doing MetaProgramming with the development language as the target is politically acceptable. 
  • To encapsulate domain-specific knowledge. These languages are generally more domain-dependent.
  • To allow users to configure and program a system even though it is assumed that the user will not be capable of modifying the program source directly, or might not even have access to that source. 





Is metaprogramming a good idea ?

The answer to the problem of whether Metaprogramming is a good idea or not depends on how domain-specific the meta-language is and on how complicated it is. The domain-specific meta-languages are more justifiable and simpler, and simpler is better.
_______________________________________________________________________________


References 

_______________________________________________________________________________



Friday, September 23, 2016

                         Turing Machine

Turing machines are the original idealized model of a computer invented by Alan Turing in 1936. They were initially called a-machines, which referred to the automatic machine. They are equivalent to modern electronic computers at a certain theoretical level, but differ in many details.Turing machines are simple abstract computational devices intended to help investigate the extent and limitations of what can be computed.They are finite state machines with the ability to read and write data to a tape with an unlimited supply of paper. There are formulations of Turing machine, but essentially the machine reads a symbol from the tape, which is used as an input to the finite state machine.
 The turing machine consists of a tape, a head, a state register and a finite table of instructions. A tape is divided into cells, one next to the other. Each cell contains a symbol from some finite alphabet. The alphabet contains a special blank symbol which is denoted by '0' and one or more other symbols. The tape is assumed to be arbitrarily extendable to the left and to the right.The head is the part of the machine that can read and write symbols on the tape and move the tape left and right one (and only one) cell at a time. In some models the head moves and the tape is stationary.state register is the part that stores the state of the Turing machine. Among these is the special start state with which the state register is initialized. The finite table of instructions tells the computer to either erase or write a symbol, move the head and then assume the same or new state.

The initial arrangement of the colors of the cells on the tape correspond to the input given to the computer. This input can contain both "program" and "data". The steps of the Turing machine correspond to the running of the computer. The rules for the Turing machine are analogous to machine-code instructions for the computer.Given the particulars, each part of the rule specifies what "operation" the machine should perform. The remarkable fact is that certain Turing machines are universal with the appropriate input. They can be made to perform any ordinary computation.
___________________________________________________________________________

Reference



___________________________________________________________________________


Friday, September 16, 2016

                    Programming  Video Games 

One of the Industries that has taken over the world is the Video game Industry. The video game industry targets the audience between the age group of 18 -34. This field is all about Computer Science programming and Designing. Game programming is a small part of this industry but is the most important part of this industry. It is that part of the industry which deals with the software development of the video games. Software Development of the video games is defined as " the process of computer programmingdocumenting,testing, and bug fixing involved in creating and maintaining applications and frameworks resulting in a software product. "

The choice of Computer Language used for programming is not only  a matter of mere choice or preference but it also depends on a lot of other factors like whether the language is supposed to be object oriented, whether it has minimal CPU overhead ,  whether it has familiar syntax or whether it is easily portable and more. Sometimes the domain specific features are also taken into account such as interfacing with the operating system, and resilience to reverse engineering for online video games.Many games are not written in only one specific language but are a combination of two or more programming languages such as C, C++, Java. An example of such a game engine is Unity which includes C,C++, and C# .The most commonly used Computer languages for video game programming are Assembly, Java , C, C++ and Javascript.
People who want to be game programmers are required to have substantial skills in software engineering as well as specialization in one of the fields such as simulationcomputer graphicsartificial intelligencephysicsaudio programming, and inputProgrammers often closely follow the game design document. As the game development progresses, the design document changes as programming limitations and new capabilities are discovered and exploited.The formal quality assurance testing process, performed by professional game testers, begins well into game development. High-budget titles may begin testing with the first playable alpha, while low-budget and casual games might not enter testing until a release candidate is ready. The programmers' task is to fix errors and bugs as such are discovered by the QA teams
_________________________________________________________________________________

Reference 


_________________________________________________________________________________






Friday, September 9, 2016

                                Algorithmic  Trading 

An Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations especially by a computer. Algorithmic trading is a method executing a large order using automated pre-programmed trading instructions accounting for  a variety of variables such as time and price to send smaller orders out to the market over time. It involves a trading system that relies  on mathematics and computer science to output different strategies of trading.
The greatest part of Algorithm Trading is High Frequency Trading. High Frequency Trading(HFT) is a program trading platform that uses powerful computers to transact a large number of orders at very fast speeds. High Frequency Trading uses multiple complex algorithms to understand  a number of markets and execute  the orders based on market conditions.

Algorithmic trading is used is by investment banks, pension funds, mutual funds, and other buy side institutional traders. It is used to minimize the cost, market risk and market impact in execution of an order. Algorithms are used in this method so that the larger amount of stock can be distributed into smaller groups to be electronically executed over minutes, hours and days. In order to evaluate an algorithm the average prices obtained by trading with a market benchmark must be compared.

 In one of my previous entries, I explained how machines are taking over all the industries. The future of Investing is said to be Algorithmic Trading.The algorithm simply takes all the tradable assets and combines the decision-making components with technical analysis using computers and math in order to create a final signal which will predict the direction the asset will move.The algorithm is able to put in a lot of different dynamics which is generally impossible for an analyst.This could affect the future market price and thus forecast the future price movement in advance.The algorithms learn from previous forecasts and is continuously adapting the relationships and thus, is capable of quickly adjusting to a fluctuating market. As a result of the algorithm learning from past data and previous forecasts it consequently becomes more intelligent and produces increasingly more accurate forecasts as time progresses.

_________________________________________________________________________________

              References

Friday, September 2, 2016

                                     Cyber Security 

        As Find law says "Cyber crimes are criminal offenses committed via the internet or otherwise aided by various forms of computer technology, such as the use of online social networks to bully others or sending sexually explicit digital photos with a smart phone." This has been a problem that prevails from a very long time and there are form of different Cyber Securities coming up to combat Cyber crimes. “Cyber security is referred to as the information technology security, focuses on protecting computers, networks, programs and data from unintended or unauthorized access, change or destruction”.
       Cyber security is important because it helps us keep all the confidential information confidential and protects an individual's and company's privacy and a country's secret safe.To be able to do high level programing for developing ways to make online sites secured, the main requirement is know how the computer works and how programming is done.Thus, Computer Science is the most important part of Cyber Security. Few methods used for Cyber security are User account access control, Cryptography, Firewalls, Intrusion detection System.
   These have a great use in the current society when most people like to keep most of their important details on their phones or computers.User account access control is when the user has to provide authentication that it is he who is signing into his/her account and not anybody else. Cryptography is the practice and study of techniques for secure communication in the presence of third parties.Firewalls is a network security system that monitors and controls the incoming and outgoing network traffic based on predetermined security rules.An intrusion detection system (IDS) is a device or software application that monitors a network or systems for malicious activity or policy violations. Thanks to Computer Science are online systems can be made secured.

-----------------------------------------------------------------------------------------------------------------------------References 

--------------------------------------------------------------------------------------------------------------------------