Pages

Sunday, October 27, 2013

Hacking: Hacker Classification


Computer hacking is modifying computer hardware or software to accomplish a goal outside of the creator’s original purpose. People who engage in computer hacking activities are often called hackers.


Malicious attacks on computer networks are officially known as cracking, while hacking truly applies only to activities having good intentions. Most non-technical people fail to make this distinction, however. It is extremely common to see the term "hack" misused and be applied to cracks as well.

Hacker Classification:

White Hat Hacker (Ethical Hacker): They are paid and working for a Government Agency or Companies to deliberately Hack into their Computer Mainframe to find any potential Weak Points in a Computer's Mainframe, and then figure out how to fix them.

Black Hat Hacker: They are also known as a cracker. They are the type of hacker that has malicious intent whenever he goes about breaking into computer security systems with the use of technology such as a network, phone system, or computer and without authorization. His malevolent purposes can range from all sorts cyber crimes such as piracy, identity theft, credit card fraud, and so. He may or may not utilize questionable tactics such as deploying worms and malicious sites to meet his ends.



Grey Hat Hacker: They are a combination of a black hat and a white hat hacker. A grey hat hacker may surf the internet and hack into a computer system for the sole purpose of notifying the administrator that their system has a security defect, for example. Then they may offer to correct the defect for a fee.

Elite Hacker: Elite hacker is the name utilized by the community with the aim of identifying those individuals who are deemed to be as experts in their line of work. These people are actually on the “cutting edge” of both the computer and network industry (Example:Master of Deception).

Script Kiddie: This is a derogatory term for black hat hackers who use borrowed programs to attack networks and deface websites in an attempt to make names for themselves.

Sunday, October 13, 2013

Open Source: Misconceptions - Free vs. Open Source Software


Open source software is software whose source code is available for modification or enhancement by anyone. Source code is the code which normal users cannot see. Developers can modify this code to change or enhance the functionality of the software. Proprietary software are the other software in which we don’t have access to the source code.

The term 'free' in Free Open Source software refers to freedom, not monetary cost. Though most free open source software is indeed free in price, the term 'free' is referring to the freedom to use the software and source code.

Free vs. Open Source Software:

Free Software was introduced by Richard Stallman in early 1980’s. He started GNU project to avoid dilemma of either denying his neighbor a copy of software/source code, or breaking either copyright or Non-Disclosure Agreement. Free Software is focused on the freedom to share with your neighbor.


Open Source was later introduced by another community. Open Source is focused on effective development using the bazaar model (as described in The Cathedral And The Bazaar).

Free Software:

Free Software is software which users can freely:
  • Run, for any purpose
  • Study and modify for their own needs (requires source code)
  • Redistribute copies (charging for them if they wish)
  • Improve and release the changes to the public (requires source code)

Open Source Software:

The consumer of an open source program has the rights to do the following things to the source code:
  • Read it
  • Use it
  • Modify it
  • Distribute it
  • Charge money for services related to it, such as copying or support, so long as they do not infringe on the freedoms of others
More details about Free Software and Open Source Software are available here.

Misconceptions:



  1. Free means there is no monetary cost
  2. Open Source software is low quality
  3. If the software is free, then who is going to pay you to write it?
  4. Open Source doesn't scale
  5. Open source has no support
  6. Open Source does not generate business revenue
  7. Large-scale development isn't efficient



Sunday, October 6, 2013

Agile: Scrum

Scrum is the best agile software development framework for managing software projects or application development. It based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. 



A key principle of Scrum is its recognition that during a project the customers can change their minds about what they want and that unpredictable challenges cannot be easily addressed in a traditional predictive or planned manner. Therefore we use Scrum which is a iterative agile software development framework.

Roles:

1.   Product Owner: Responsible for ensuring that the Scrum product backlog remains prioritized as more is learned about the system being built, its users, the team and so on.
2.   Development Teams: Responsible for building and demonstrate what they have built. Product Owner decides what to build next based on the demonstration.
3.  Scrum Master: It ensures that the Scrum process is used as intended. The Scrum Master is the enforcer of the rules of Scrum, often chairs key meetings, and challenges the team to improve.

Sprint:


It is the basic unit of Scum development. The duration is fixed in advance for each sprint. Each sprint is preceded by a planning meeting and followed by a review meeting.


Planning Meeting- Tasks for the sprint are identified and an estimated commitment for the sprint goal is made.
Review or Retrospective Meeting- The progress is reviewed and lessons for the next sprint are identified.

Advantages of using Scrum:

1.      Changes said by customers can be easily made.
2.      Bugs and errors can be found easily.
3.      Improved productivity.
4.      Predictable project completion and delivery.