Sunday, December 15, 2013

Scientific Computing: Computational Chemistry

Computational Chemistry

Theoretical Chemistry refers to using mathematical methods to express chemistry problems. And computational chemistry “is a branch of chemistry that uses computer simulation to assist in solving chemical problems. It uses methods of theoretical chemistry, incorporated into efficient computer programs, to calculate the structures and properties of molecules and solids.” (Wiki) Computational chemistry does not pursue perfection or flawlessness because only a few chemical systems can be accurately calculated. However, almost all types of chemical problems can be and has been used approximation algorithms to express.

Theoretically, we can utilize fairly accurate theoretical method to calculate any molecules. Many computing software have contain these precise methods. But the amount calculating of these methods will increase exponentially or with the increasing number of electrons. Thus, they can only be applied to small molecules. For larger systems, it often adopts other larger degree approximation methods to find a balance between the accuracy results and the amount of computing.

 Computational Chemistry

Computational chemistry mainly uses existing computer programs and methods to study specific chemical problems. The development of algorithms and computer programs is completed by theoretical chemists and theoretical physicists. When studying properties of atomic and molecular, chemical reaction pathways, and other issues, it often focuses on solving two problems:

1. Using computer programs with quantum chemistry equations to calculate the properties of material such as energy, dipole moment, vibration frequencies and so on.  It can explain some specific chemical problems.
2. Using a computer program to do molecular dynamics simulations. This tries to compound predicted starting conditions of experiments, study chemical reaction mechanism, and explain the reaction phenomena, etc.


Reference:

Scientific Computing: Computational Science

Computational science
“Computational science (also scientific computing or scientific computation) is concerned with constructing mathematical models and quantitative analysis techniques and using computers to analyze and solve scientific problems.” (Wiki) Natural scientific laws are commonly expressed by various types of mathematical equations. The purpose of scientific computing is to find numerical solutions of these equations. This kind of calculation involves a huge amount of computations. Simple calculation tools cannot achieve this goal. Before the appearance of computers, scientific researches and engineering designs mainly rely on the data from experiments or tests and computing is only used for assistance. Because of the rapid development of computers, more and more complex calculations become possible. Utilizing the computer for scientific computing has brought huge economic benefits as well as made scientific technology itself fundamental change—the traditional scientific technology only includes two components: theory and experiment. Computing has become the third component that as important as the other components after using computers.
Scientific Computing

Computing process includes three stages: the establishment of mathematical model, the establishment of solving computational methods, and computer implement.

computingTo establish a mathematical model is establish a series of quantitative relations for investigative objects based on the related theories, namely a set of mathematical formulas or equations. Reasonable to simplify complex models is an important measure to avoid the excessive computing. Mathematical models generally contain continuous variables, such as differential equations, integral equations. They cannot be directly processed on a digital computer. To this end, the first thing to do is discrete the problem, namely change the problem into a finite number of unknowns discrete form, such as finite algebraic equations. Then look for solving methods. Computer implement has a series of steps, which includes programming, commissioning, operation, and analyzing results. Development of software technology provides suitable programming languages and other software tools for scientific computing that greatly improve efficiency and reliability.

Reference:

Monday, December 9, 2013

Computer Graphics

computer graphic
Computer graphics “are graphics created using computers and the representation of image data by a computer specifically with help from specialized graphic hardware and software.” (Wiki) Computer Graphics have been nearly 40 years of development and got into a more mature phase. Its main application domain includes computer-aided design and processing, animation, military simulation, medical image processing, and visualization of meteorology, geology, electromagnetic, and financial and economics.

shrek 2Due to the successful use of computer graphics in these areas, especially in the rapid development of the animation industry, has brought considerable economic benefits. Animation industry is the priori develop green industry in every countries, which has high-tech, high investment, and high output characteristics. According to statistics, as of March 2009, the 3D animation “Shrek 2”, was produced by DreamWorks with $150 million production budget, received around 920 million worldwide box offices. On the other hand, due to the promotion of these areas of application, the development of computer graphics has to face new opportunities and challenges.
photoshop

In our daily lives, the popularity of digital cameras and home video camera is growing very fast. Digital image and video data processing has become a hot issue in computer research. The technology of computer graphics will be utilized within these image processing and visions. It can directly generate stylized pictures and animation sequences based on video and image data as well as achieve image-based three-dimensional models. Therefore, it can bring limitless imagination and construct a lot of visual effects.

References:

Sunday, December 1, 2013

Computer Security

security
In general, a secure system will use some special secure features to control access of information. Only properly authorized people or the processes carry out in the name of these people can read, write, create, and delete information. With the development of computer hardware, the amount of programs and data are stored in the computer is become larger. How to protect the data in the computer from being lost, which should be the first consideration problem for any computer application department. Computer hardware and software production manufacturers are also trying to study and continue to solve this problem.
security
The main causes of losing data on a computer are: virus attack, theft, computer electromagnetic radiation, computer storage hardware damage and so on.
So far, there has found near million computer viruses. Vicious virus can crash the whole computer software system and destroy data completely. There are hundreds of such viruses. A computer virus is a small hidden program that attaches to computer software. It is similar with other working computer programs, but it will disrupt the normal function programs and data files. To prevent virus attacks, it mainly strengthen the administration, never open extraneous software, and text the system regularly. Also, we can insert the anti-virus card or use clear software to clear the virus that has been found on computers.
encryptThefts refers to people access computer systems in legal identity and extract data from a computer without permission to modify, transfer, copy and so on. One way to prevent is add software system security mechanisms so that thieves cannot enter the system with legal identity. For example, add recognition of legitimate users or password to stipulate different privileges for the users. So, it cannot freely access the data areas that should not be accessible. Second, encrypt the data. Even if the thieves get into the system,  they cannot read the data without the key. Keys can be soft code or hard code, but it requires being replaced at any time. Encrypted data has security in transmission. Third, setup operation log in computer. It automatically records reading, writing, or modifying important data. This log is a black box that only a handful of privileged people can open. It can be used to detect the theft.

Monday, November 25, 2013

Artificial Intelligence: Overview

artificial intelligence
"Artilect," is the shortened form of 'artificial intellect,' comes from one of Hugo de Garis' writings. The term, 'Artificial intelligence,' was originally proposed on Dartmouth Conference in 1956. Since then, researchers have developed many theories and principles. The concept of artificial intelligence was extended as well.

Artificial intelligence is a challenging science. People who engage in this work must have knowledge of computer, psychology, and philosophy. Artificial intelligence is a very broad science.  It consists of the composition of different areas, such as machine learning , computer vision and so. All in all, a major goal of artificial intelligence research is to make the machines capable of some complex works that typically requires human's intelligence to complete. But the understanding of "complex works" will be different on different times and different people. For example, the heavy scientific and engineering computing is originally saddled with human's brains. But now the computer can not only complete this computing, but also can do it faster and more accurate than human's brains. Therefore, this kind of computing is no longer complex works that needs human's intelligence to complete in nowadays. It shows the definition of complex works will change with the development of times and the progress of technology. Artificial intelligence, the specific objectives of this science naturally develop with the times. On one hand, it continues to receive new progress; on the other hand, it turns to a more meaningful and more difficult goal.

Sunday, November 17, 2013

History of Computer Science: Overview #2

computer science
In 1950s, although many people do not believe that computer is able to become a field of scientific research at the beginning, it has been recognized gradually by academia within 50 years. IBM was one of the participants in computer science revolution during that time. Over that exploration period, IBM released the IBM 704 and later the IBM 709 computers, which are widely used. But then the computer was still relatively preliminary. They are not very easy to use. Until 1960s, computer science made considerable achievements. As time goes on, the technology of computer science improved significantly in both usability and effectiveness. Computer can be used by majority of users rather than professionals only. Initially, the price of computers was very expensive, and then, it becomes inexpensive and easy to use that almost no need any professional assistances.


contribution
While the time of being identified as a formal academic discipline is very short, computers still make a lot of science and society fundamental contributions, including:
1. The beginning of Digital revolution: the information age and the Internet.
2. The development of the concepts of programming language: one kind of tools to present information precisely at different levels of abstraction.
3. Scientific computing achieves the value of complex processing. Completely using softwares to conduct experiments also achieves the depth study of the human's minds. It makes mapping human genes to become possible as well as distributed computing project of exploring protein folding.


References:
http://en.wikipedia.org/wiki/IBM_704
http://en.wikipedia.org/wiki/IBM_709
http://en.wikipedia.org/wiki/List_of_distributed_computing_projects

History of Computer Science: Overview #1

computer science
In the early 1950s, it had began to establish computer science as an independent science. Nowadays, computer has been developed to a popularization machine that is superior performance, low price, and used almost without any professional helps. In just a few decades of development, the computer science gained a lot of success. For example, Digital Revolution, Information Era, and the Internet.

thoughtsCalculators, calculating fixed numerical, such as abacus, had existed since ancient Greece. In 1623,  Wilhelm Schickard designed the first mechanical calculator in the world, but he did not complete. Then in 1642, Blaise Pascal designed and built the first mechanical calculator that can work, called Pascaline. Ada Lovelace assisted Charles Babbage to design Difference Engine in the Victorian era. About 1900, punched cards machines came out. But these machines are limited to only one complete single task. In 1940s, with the invention of the newer and more powerful computers, the term, computer, is used to indicate the temporal machines. The concept of computer was more clear. It was even used for mathematical calculations. The field of computer science also extended to the study of computers. From 1950s to the early 1960s, computer science became an independent discipline. In 1962, Purdue University established the first degree in computer science in the world. With the development of computer applications, many computing applications slowly became into the different areas of research in their own ways.


References: http://en.wikipedia.org/wiki/Digital_revolution
http://en.wikipedia.org/wiki/Information_Age
http://en.wikipedia.org/wiki/Internet

Sunday, November 10, 2013

File Sharing: Copyright Problem

file sharing
Internet has brought us a lot of convenience. We can easily share files with other people by using file sharing. File sharing is forwardly share our computer files on the network. Generally, we will use p2p (peer-to-peer) file sharing mode. The file itself exists on the user's own PC. Most of the people who participate in file sharing as well as download sharing files from other users. Sometimes these two actions are linked.

I want to talk a little bit about music file sharing.
music sharing

jailAfter the popularity of high-speed Internet terminals, anonymous file sharing system became popular such as Napster. In an addition, small volume but very high quality sound file formats such as MP3 provide some helps for the success of file sharing. While file sharing itself is a legitimate technology, but some people use it to download copyrighted files. This has led to counterattack for file sharing from some copyright owners. There is a great controversy of legal consequences of file sharing. Especially if people share files are from different countries that have different laws, then this problem will become very complicated. The early 2000s, file sharing community was constantly impacted. Record Industry Association and some record companies attempted to shut down more and more file sharing. But their efforts were not very successful because new systems kept appearing and replaced the closed systems. What's more, many of these new systems didn't have central server so that they couldn't close them all by using law. Some other systems escaped to some countries that the laws were unable to attack them.


References:
http://en.wikipedia.org/wiki/Napster
http://en.wikipedia.org/wiki/Peer-to-peer

Sunday, November 3, 2013

Data Structure

data structure
Data structure is a particular way to store and organize data. (Data Structure) It refers to a collection of data elements and there exists one or more specific relationship between each other. Typically, well-chosen data structure can lead to higher operation or efficient storage. Data structure usually relates to efficient retrieval algorithms and index technology.

In many types of program design, the choice of data structure is a fundamental design consideration. The configuration experience of many large system shows that the difficulty to achieve and the quality of system configuration heavily depend on whether select an optimum data structure. In many cases, the algorithm is easy to get after the data structure is determined. Sometimes things will turn. We’d better to choose a data structure according to a specific algorithm and adapt to it. In either case, it’s very important to select a appropriate data structure.
data structure - tree
There are some common data structures:
1. Tree
2. Stack
3. Array
4. Queue
5. Graph



algorithm
And there are some common sorting algorithms:
1. Quick Sort
2. Bubble Sort
3. Merge Sort
4. Insertion Sort
5. Radix Sort
6. Selection Sort

After selected data structure, the algorithm is determined as well. The key factor of system construction is data, not algorithms. This insight leads to the emergence of many kinds of software design methods and programming design languages.​ Object-oriented programming language is one of them. Object-oriented programming is “a type of programming in which programmers define not only the data type of a data structure, but also the types of operations (functions) that can be applied to the data structure. In this way, the data structure becomes an object that includes both data and functions. In addition, programmers can create relationships between one object and another.” (Object-oriented programming)


References:
“Data Structure.” http://en.wikipedia.org/wiki/Data_structure
“Object-oriented programming.” http://www.webopedia.com/TERM/O/object_oriented_programming_OOP.html

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>.

Friday, September 20, 2013

LinkedIn and Branding: Great Tool for Employ

LinkedInLinkedIn is a social networking service (SNS) website for business customers, founded in December 2002 and launched in 2003. The purpose of this site is to allow registered users to maintain their contacts from business dealings and trust, commonly known as Connections. “As of June 2013, LinkedIn reports more than 225 million acquired users in more than 200 countries and territories.” (LinkedIn) There is a new member to join LinkedIn every second. And the United States the number of users has dropped to only 38%.

With the development of LinkedIn, it also gradually inclined to build a bridge between college students and enterprises. Social media develop rapidly in the field of job searching, which is gradually replacing the traditional job search model and has become increasingly popular for graduates. LinkedIn, as a social media, has made remarkable achievements in graduates job searching. It’s because LinkedIn continue to provide more interaction between companies and graduates.

EmployTo some people, LinkedIn is the most boring website; and to other people, it is a powerful tool to help people hopping and getting promotion in workplaces. No matter how you look at LinkedIn, they have opened up their own piece of the market. In my opinions, the game and IT professionals get most benefit on LinkedIn because the of mobility these two industry are huge. Game industry staff always change their workplaces so that they need immediate effect. For example, a company is got attention by a game publisher. Then they suddenly need 50 experienced art staff, 5 designers, and 7 programmers. This project maybe can last one to two years. But these staff have to start looking for a new job at the end of the project. Game companies are looking for experienced staff. If they already had LinkedIn accounts, everyone will immediately know they are currently unemployed. So it can create the chance to hire again.

I’m new to LinkedIn. But after the introduction from my professor and some researches, I realize LinkedIn is a great platform to sell myself as a product online. As well, I can gain lots of super helpful information, such as current available positions and companies.


Reference:
"LinkedIn." Wikipedia. 20 Sept. 2013 <http://en.wikipedia.org/wiki/LinkedIn>.

Friday, September 13, 2013

QR codes: Why Do They Become So Famous

My Blog's QR Code


These years, QR codes are widespread used and there must be a certain reason.

If you are not familiar with QR codes, you must have seen some barcodes in the back of the merchandises' packages on the shelves of the store. These barcodes are used to track inventory information and commodity price information. QR code is similar to the barcode. But the most significant difference between them is the amount of data they can carry. "A single QR Code symbol can contain up to 7,089 numerals—over 200 times the amount of data as a traditional 1-D barcode." (QR Code® Essentials)

A barcode is lots of one-dimensional lines in the same direction. And it can only carry 20 characters. On the other hand, QR code is "a two-dimensional (2-D) matrix code that belongs to a larger set of machine-readable codes, all of which are often referred to as barcodes, regardless of whether they are made up of bars, squares or other-shaped elements." (QR Code® Essentials)

There are great advantages of using QR codes in different areas.

(1) Order Processing and Product Tracking
In the automotive parts manufacturing industry, invoices and receipts are encoded with QR codes. QR Code contains customer information, shipping company, cargo code, quantity and other relevant information. These data can be used for order processing and product tracking. The advantage is that we can collect a large number of transport data by scan once and it greatly reduces the variety of waybill data entry and manually comparison.

(2) Food Logistics Management System
In a Coca-Cola canning factory, product code, expiry date, production history, and other data are incorporated into a QR code. These data are used for logistics management. According to the control of expiry date, it can guarantee the implementation of the first in first out. What's more, it can improve traceability base on the production history.

(3) Personal Business

Compilation of information processing based on mobile phone, it provides personalized, secure transmission method for various types of consumer groups' demands. Scanning a QR code can simplify the cumbersome input of the Internet web site before mobile phone users access the internet. The images, text, audio, video, and other information are generated to url. Therefore, it achieves fast landing and download.

As a result, with such excellent benefits,  we should use QR codes as personal or commercial.

Reference:
"QR Code® Essentials." 2011. DENSO ADC. 13 Sept. 2013 <http://www.nacs.org/LinkClick.aspx?fileticket=D1FpVAvvJuo%3D&tabid=1426&mid=4802>.

Friday, September 6, 2013

Social Networking and Security. . .or Lack of When Promoting Your Brand

Thief
Nowadays, more and more enterprises begin to use social media platforms in order to create customer interaction, brand building, and information communication. But for business, social media brings more than just good impression, friends, increasing recognition, or potential customers. For many organizations, the use of social media will bring real risk to damage the brand image, leak private information, and maybe even lead to legal proceedings.

There are some security threats created by social media.

Social engineering is an ubiquitous method that eloquent fraudsters prefer. Even before the advent of computer networks ,social engineering already exist. However, the rise of the Internet make fraudsters easier to find potential victims. Social media put this threat to a new level. There are two reasons. First, comparing to before, people are more willing to share their personal information on some social media, such as Facebook, Twitter, Google Plus, and Myspace. Second, social media platforms will encourage people to assume that some person or thing is credible. And it reached a dangerous level. With this foundation, it just need a small step to reveal our companies’ secret plans to your friends. For example, if we want a friend to help us to receive a protected file from our corporate network, we can just tell him the password. But there will be an unimaginable consequences.

Sometimes, hackers can find the source code directly. Then they inject malicious code into social networking sites, including the use of advertising and third-party applications. On Twitter, abbreviated URL can be used to trick users to visit a malicious site. And if we are using a company computer, these sites maybe can extract personal and corporate information from the computer. Twitter particularly vulnerable to be attacked by this approach because it is easy to forward and millions of people can see the content.


Friday, August 30, 2013

Welcome To My Blog


Hi everyone! Welcome to my blog! I invite all of you to my new blog. Let me introduce myself. My name is Wenlong Zhang. I’m from China and I have been the USA for five years. I am going to graduate after next semester. My major is Computer Science. I already learned some programming languages such as C, C++, C#, and Java. I love writing programs. Before writing a program, I need to design how this program achieves the tasks. I can have many ideas and methods. Then I choose an efficient thought and translate into codes. After that, computers only can follow my instructions to work and complete the tasks. I can sit in front of a computer and write codes for a very long time. I know this is not a healthy habit, but however, it’s hard to stop when we are doing something we are interested in. What’s more, I feel exciting, satisfaction, and a sense of accomplishment after I finished a complex program. This is what I find exciting about the field of computer science. On the other hand, challenges also exist. This field requires us to think a lot. In my opinions, what computer scientists do is connect human’s minds with electronic devices. So we need many new creative ideas to keep to go on and to improve.