Sunday, November 24, 2013

Artificial Intelligence


Before we get into What Artificial intelligence, let’s first understand what is intelligence? Intelligence is usually said to involve mental capabilities such as the ability to reason, plan, solve problem, think abstractly, comprehend ideas and language and learn.

Now what is Artificial Intelligence? , Intelligence exhibited by an artificial entity. [Wikipedia]
AI can also be defined as the area of computer science that deals with the ways in which computers can be made to perform cognitive functions ascribed to humans. But this definition does not say what functions are performed, to what degree they are performed, or how these functions are carried out.

Computer cannot easily deal with abstract idea like we human do, we must define the concrete rule in the form of algorithm for computer to follow.

AI draws heavily on following domains of study.
·         Computer Science
·         Cognitive Science
·         Engineering
·         Ethics
·         Linguistics
·         Logic
·         Mathematics
·         Natural Sciences
·         Philosophy
·         Physiology
·         Psychology
·         Statistics
Where can AI applied?
·         Robotics
·         Internet search
·         Scheduling
·         Planning
·         Logistics
·         HCI
·         Games
·         Auction design
·         Diagnosis
·         General reasoning
It is true that AI does not yet achieve its ultimate goal. Still AI systems could not defeat even a three year old child on many counts: ability to recognize and remember different objects, adapt to new situations, understand and generate human languages, and so on. The main problem is that we, still could not understand how human mind works, how we learn new things, especially how we learn languages and reproduce them properly.

AI: will it attain human-level or above human-level intelligence or not.

Example : Personal Assistant SIRI  http://en.wikipedia.org/wiki/Siri



Ref: 
http://intelligence.worldofcomputing.net/tag/introduction
http://en.wikipedia.org/wiki/Artificial_intelligence

Friday, November 15, 2013

About Computer Science?

Computer Science is concerned with "the study of symbol-manipulating machines, with communication between man and machine and with the application of these machines".

Who invented the computer? Answer to this question would not be simple enough, the real answer is that many inventors contributed to the history of computers and defining computer as a complex piece of machinery made up of many parts used to solve complex problems.

Thirty year ago the most common interaction with computer was via punch card and type writer-styled terminals. The most dramatic developments have been the integration of technologies , such as low-cost, high-capacity storage media, high-definition video and audio processors, touch sensitive displays, motion sensors, compression algorithms, to name just a few of the majors.



Evolution:- Computer science is a branch of Mathematics which generally consists of theoretical foundation of information and computation. Focus on practical implementation and teach us how to implement and apply this information in real world like theoretical aspects of algorithms to practical aspect of implementing these algorithms. Computer Science can be viewed as the science of problem solving, designing, analyzing and verifying the solutions.

Computer Science has connection to other disciplines or other industry domains like Consumer goods, health care, insurance and banking domain, for which finding a solution requires both computer science expertise and knowledge of particular domain. This result in wide range of specialties like computer architect, System Engineer, Software engineer, graphics expert and so on, where each specific area focuses on particular challenges. 

For more Info:-
1) History of computer science link
2) What is Computer Science? link
3) Evolution of Computer Science link

Friday, November 8, 2013

File Sharing

Digital reading will completely take over. It's lightweight and it's fantastic for sharing. Over time it will take over.
 – Bill Gates

File sharing is the practice of making files available for other individual to download. The most common method of file sharing, is the use of peer- to –peer software. This includes software such as Limewire, Morpheus, DropBox and BitTorrent. P2P Software package are installed as a standalone application on computer and appear somewhat innocuous in their behavior; you install them and then use these programs to download “Free” music, video etc. In addition, your computer becomes part of this network as well, enabling other individuals on the Internet to begin downloading music/files/e-books from your computer.

Other ways of file sharing over the internet such as:
  •           HTTP File hosting sites (RapidShare, Fileserve, ADrive, etc.)
  •          FTP servers
  •          Email storage space (sharing files -- Hotmail, Gmail, etc.)


The probable security concern in file sharing
  • Installation of malicious code
  • Exposure of sensitive or personal information
  • Susceptibility to attack
  • Denial of service
  • Prosecution
  • Provide covert channel 
 Its you are being held responsible for downloading and distributing copyrighted material illegally.

How to minimize these risks
  •   Use of anti-virus software
  •   Install or enable a firewall
  •  Use Authorize access control list.
 list of most popular file sharing website http://www.ebizmba.com/articles/file-sharing-websites
File sharing http://www.business.ftc.gov/documents/bus46-peer-peer-file-sharing-guide-business#risks


Friday, November 1, 2013

Data Structure


Data structure is important since it dictate the type of operation we can perform on the data and how efficiently they can be carried out. It also dictate how dynamic we can be in dealing with our data; for example it dictates if we can add additional data on the fly or if we need to know about all of the data up front. We determine which data structure to use to store our data only after we have carefully analyzed the problem as know at least what it is we hope to do with data; for example if we will require random access or sequential access or the ability to move both forward and backward through the data.

Purpose of data structure
·        To store and retrieve information
·        Efficient processing
·        Study of data structure and algorithm

Why Data structure – Complex design require careful and efficient program design. Analysis on correct algorithms are performed in order to estimate how much resource (computer memory, Processing time etc) are consumed by the algorithm. This will help us to look into different better ways to design the algorithm which would reduce the resource consumption, thus making the algorithm efficient.Data Structure require, space to store data item, Time  to perform each operation and programming effort.

Therefore one should need to know about data structures and algorithms. They are the fundamental building blocks of programs. Anyone can learn the syntax of a programming language, but to actually write meaningful programs, you have to understand how to use data structures and algorithms



Saturday, October 26, 2013

Hacking


"Someone who relates to technology as a form of play" Lee Felsenstein 
 
The term hacker is used in popular media to describe someone who try to gain the unauthorized access to once system or attempts to break into computer systems. Hacker would be a proficient programmer with sufficient knowledge to understand the weak points in a security system, might cause serious security threat to confidentiality and integrity of data.


Reason why most of the organization spent a lot in term of security is more or more organization moving their business process online. Because in an organization consist of various electronic documents that contain critical and highly confidential data and due to which organizations make a significant investment to properly protect these documents

Some technique hacker use to get access to a website inside. 
Hacking does have some advantage to business, 
  • building awareness about the protection and security at all levels
  • finding out the possible vulnerabilities
  • suggesting effective security procedure
  • providing a support for current and future IT activities 
A professional hacker, hired by many organization and asked to break their system just to determine any security flaw in system. A hacker helps an organization in understanding the importance of  security with their experience of hacking, and displays the ways or series of steps an intruder can actually perform to harness the company resources for his own purpose. Professional security experts can efficiently by-pass the security solutions  and can gain access to the confidential data repository and network resources without any authentication. Afterwards, they reports all the possible threat areas and appropriate solution for the same in order to secure the organizational resources and perimeter efficiently.


Monday, October 14, 2013

OPEN SOURCE Vs CLOSED SOURCE

Most software that you buy or download only comes in the compiled ready-to-run version. Compiled means that the actual program code that the developer created, known as the source code, has run through a special program called a compiler that translates the source code into a form that the computer can. It is extremely difficult to modify the compiled version of most applications and nearly impossible to see exactly how the developer created different parts of the program. Most commercial software manufacturers see this as an advantage that keeps other companies from copying their code and using it in a competing product. It also gives them control over the quality and features found in a particular product.
 This kind of software is frequently called "proprietary software" or "closed source" software, because its source code is the property of its original authors, who are the only ones legally allowed to copy or modify it. Microsoft Word and Adobe Photoshop are examples of proprietary software



Open source software is at the opposite end of the spectrum. The source code is included with the compiled version and modification or customization is actually encouraged. The software developers who support the open source concept believe that by allowing anyone who's interested to modify the source code, the application will be more useful and error-free over the long term.
To be considered as open source software by the software development industry, certain criteria must be met:
·         The program must be freely distributed
·         Source code must be included.
·         Anyone must be allowed to modify the source code.
·         Modified versions can be redistributed.
·         The license must not require the exclusion of other software or interfere with the operation of other software.

A common concern for end-users who wish to use open source software is the lack of a warranty and technical support. Because the software's license encourages modification and customization, it is nearly impossible to  support,For most businesses, the assurance of technical support has been a key factor in the decision.

In my opinion Closed source is better than Open source
  • You never have to fix component when something goes wrong
  • You don't have to worry about contributing your change back to community
  • You don't have to think about open source licensing term and compliance issues
  • You don't have to choose among dozen of option of every component
  • You don't have to look around for technical support


Ref:



Friday, October 4, 2013

Overview of Agile Methodology

“Plan your work, then work your Plan” by Martin Fowler and Neal Ford

There are many traditional approaches to software development, one of it is waterfall development which follows up the sequential steps/process /phases, in which one phase of the project must be completed before the next phase can begin example water fall model, just like automobile on an assembly line.
So here one rarely re-visit  phase once its completed , that means you better get whatever you are doing right the first time. You don’t realize any value until the end of the project, leave testing until the end, this approach is highly risky, often more costly and generally less efficient than Agile.Here in Agile we follow the recursion of all the phases in multiple sprint.


Agile Manifesto
  •  Work closely with client, in all the phases of development cycle
  •  Welcome changing   requirements, even late in development. 
  •   Business people and developers must work together daily throughout the project.  
  •    At regular intervals, require complete team involvement, by this we achieve technical excellence and come up with good design and approaches.


How it works
  • Split your organization into small cross-functional, self-organizing teams. [Project owner/ Scrum master /Scrum Team]
  •  Split work in to a list of small concrete deliverable. Split time into short fixed- length iteration/ sprints
  •  Optimize release plan / Optimize the process.

Things we do in scrum
Describe the user story – Estimate the work associated – Rank them in order of importance – Daily scrum meeting to discuss what did you do today? What you will do today ? Any obstacles?


Agile Success
  


Ref: