Saturday, October 26, 2013

Hacking: How Do We Prevent?

hacking
In early 1960s, "'hacker' was a positive term for a person with a mastery of computers who could push programs beyond what they were designed to do." (A history of hacking) However, in media reports , hackers often the term refers to those "Software Hacker " (software cracker). Until nowadays, it has been used refers to those people who specifically make use of computer networks to sabotage or prank.

Hackers use a variety of different criminal modus. Some hackers will steal personal information on the network, and then they sell it to a private detective or personnel companies. Others will spread their own virus through the Internet or constantly attack some specific objects. For example, some former employees place "logic bomb”. What’s more, many commercial espionages and military tipsters will obtain some of information that you cannot imagine through the Internet.

prevent hacking
The attacks of hackers could cause us a lot of trouble or loss , then how do we prevent it in daily lives?

1. Hide IP address
Hackers often make use of some network detective technology to check our host information. The main purpose is to get the IP address of the network host. IP addresses is a very important concept in the network security. If attackers know our IP addresses, it is equal to prepare a target for them to attack. They can launch a variety of attacks to this IP, such as DoS attacks. Using a proxy server  is the primary method to hide IP address.

2. Close unnecessary ports
Hackers often scan our computer ports during invasion. If we install a port monitoring program, this monitoring program will have warning notices. If we encounter this kind of invasion, we can use some available software tools to turn off unneeded ports. For example, using "Norton Internet Security" to close ports 80 and 443 which provide web services. Some other less frequently used ports can also be turned off.

3. Install necessary security software
We should also install and use some necessary anti-hacking softwares in our computers. Anti-virus software and firewalls are essential as well. Opening them during surfing on the Internet so that our security is also guaranteed even if a hacker attack.


Reference:

Sunday, October 13, 2013

Open Source: Yes or No?

open source
"Generically, open source refers to a program in which the source code is available to the general public for use and/or modification from its original design free of charge, i.e., open. Open source code is typically created as a collaborative effort in which programmers improve upon the code and share the changes within the community. Open source sprouted in the technological community as a response to proprietary software owned by corporations." (open source)

Nowadays, everybody is talking about open source software. So, whether open source is good for us or not. Let's look at the advantages and disadvantages of open source.

Advantages:
1. Accessible to a wide range of collaborative development
2. Quickly understand the internal system operation mechanism in order to further development
3. Save money
4. Easy for novices to learn
5. The system is running efficiently
pros/consDisadvantages:
1. Lack of concern on the user experience
2. Lack of innovation (basically is imitation)
3. Lack of product planning management resulting in too many versions and disarray
4. High cost of development and maintenance


As a technical staff, learning open source can greatly improve technological level. Now the latest technologies and theories will realize open source. Through the open source learning, it can be the fastest speed to understand lot of basic things. For software companies, open source would reduce development costs, such as free Eclipse, Tomcat, MySQL and so on. Currently, open source has become a marketing and sales model. For example, Flex takes advantages of open source to capture the RIA market. Eclipse eventually replaced JBuilder's position. Even Microsoft will open source part of .Net in order to capture the market as much as possible. Open source is not necessarily free. Currently is free for commercial usage, but there is no guarantee that it does not change the protocol in the future and requires fees.

Sensuously, open source is really getting close to commercial software, like functionality, price and service models. It seems more and more unimportant for open source or not.


Reference:
"open source." Webopedia.  13 Oct. 2013 <http://www.webopedia.com/TERM/O/open_source.html>.

Sunday, October 6, 2013

Agile: A New Path To Develop



"Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams." (Agile software development)

Simply put, Agile's goals are good software, quick, and low cost. These should re-examine the existing software development processes and give up unrealistic dreams (assembly line and precise plan). According to the basic principles of agile, it re-optimize existing processes and documentation system, but not fully push over and start again.

Agile's value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
http://agilemanifesto.org/

Agile's greatest contribution is that it recognizes the entire software engineering again. Agile requires domain analysis. In fact, it relates to a core issue: whether admit the requirements can be clear and determined at the outset. Agile's answer is NO. In the traditional development, most scenario are contractual authentication. Most clients' thoughts are based on the demands and can be finalized at the beginning. Actually, it basically belong to impossible mission at current stage and does not comply with the nature of software development. In Agile's requirements analysis, requirements should be throughout the entire software cycle process and keep changing, iterate, and complete.


Agile Development Process

Compare to traditional software process method, Agile is a lightweight method that can simplify streamline processes and improve efficiency. This is the reason that agile is favored by many software organizations. But agile is not universal truth, cannot be used by any organizations or any software development. Agile has its own applicable conditions and applicable occasions. If we do not meet the conditions to use agile, it will possibly counterproductive. Therefore, organizations must analyze the current situation and the feasibility of implementing agile. Implementing agile gradually can be successful and achieve the value of agile.



Reference:
"Agile software development." Wikipedia. 6 Oct. 2013 <http://en.wikipedia.org/wiki/Agile_software_development>.