Sunday, November 24, 2013

Artificial intelligence: The Natural Way For E-mail Filtering

Introduction
Artificial intelligence is mostly about using technology to resemble the way we think and learn. Once we pick up a skill or gain some knowledge, we use it to reason out. Interestingly enough, we can use artificial intelligence to detect spam in the same way.


Natural-language processors
Simply speaking, natural-language processors are a group of complex algorithms. The job of each algorithm is to scan e-mail messages to discover the content of them.
Natural-language processors serve as a powerful artificial intelligence tools in fighting against spam. An AI mail-filtering software routes unsuspected traffic to corresponding the SMTP server(The server used for sending e-mail), and flags other messages as spam.


How Does The Natural-language Processing Technology Filter Out Email?
As stated above, it works similarly to how we judge if an e-mail is spam. We first skim a message, and reference keywords by their location in a sentence. Then we understand the difference between “Apple Inc.” is a company(Amazing computer!), and “Apple pie” is food. Similarly, natural-language processing technology combines all pieces of messages and analyze the words, sentences and paragraphs.


Traditional Way of Email Filtering By using Keyword Analysis
Consider the following e-mail:
“Hey Bob, the chicken breast looks good to eat so let's cook it out tonight. Also, it will be great if you can bring Mary. Call 408-637-2222. Oh, I post the pictures about the dinner we had last week, and here is the URL www.sharephoto.com/2342/dinner.”
A standard keyword analysis would flag the words: breast, look good, phone number and Web site URL, and classify the e-mail as spam but artificial intelligence can figure out the message is an invitation to dinner. 

To Conclude
As far as I know, Artificial intelligence technique is the most natural and efficient technique to filter e-email.   


Saturday, November 16, 2013

History of Computer Science: The History of MySQL

MySQL
MySQL is the world’s second most widely used open-source relational database management system(RDBMS). However, have you ever wondered why it is called “MySQL” but “OurSQL” or “YourSQL.” In fact, the name has nothing to do with the possessive adjectives in English Grammar. Interestingly enough, it is named after co-founder Michael Widenius’ daughter, My. In this post, I am going to briefly talk about the history of development and the future of MySQL.
The first version of MySQL appeared on 23 May 1995, and was initially created for personal usage only. Soon the creators considered ISAM, the interface this version was based on, was too inflexible and slow so they created a new SQL. They created a new SQL interface while keeping the same API and underlying data structures. After a couple law suit and acquisition among several companies including Innobase, NuShere, Sun and Oracle in 2000s, MySQL is now owned by Oracle.

In the late of 200s, MySQL was split into two main versions. One was the one Oracle-provided, and the other version was started by Michael Widenius, and called MariaDB. 

Is the usage of MySQL declining?

Some computer scientists reported that Oracle was holding back MySQL Server test cases, and the company is killing the product. In addition, the company no longer synchronizes their changes with the open source.

Even though many companies still use MySQL, since the final quarter of 2012, several Linus distributions and some important users including Wikipedia and Google started to replace MySQL with MariaDB.

My thought

I have used MySQL back when I was making websites in high school so to me, it is a shame if it is deprecated in the future due to the flaw of Oracle Cooperation. 



 http://en.wikipedia.org/wiki/MySQL




Monday, November 11, 2013

File Sharing:Problems With File Sharing

If you have ever downloaded video game or music from the internet, BitTorrent should not be a new term for you. Every day thousands of users download and share file from this website. In my opinion, file sharing is a problem nowadays, and it seems it is getting worse and worse.
One reason I disagree with file sharing is file sharing has a huge negative impacts on people who are music writers and movies makers. Let's Imagine if you are a music writer, and you know after you try so hard to write a song, instead of buying the CD, people choose to download it illegally from the internet. I bet you will immediately lose you motivation to try to make good songs if you see this will be the result. In my opinion, file sharing is definitely killing people's imagination, and therefore we are losing those talented people making a good movie and writing good song.

The other problem is viruses and malwares are spread widely through those illegal file sharing websites. There are various reasons why many people are not aware of security when they are downloading files. Some of them are lack of knowledge of computer security. Even some people who are experts on computer security because they can't wait to watch a new movie and listen to a new songs, they become careless and accidentally download those malicious files.
Although file sharing is bad and the government should do something with that, prohibiting illegal file sharing still has a long way to go.

Sunday, November 3, 2013

Data Structures: Real World Application of Data Structures

As CS students, data structure must not be a new term for you. However, have you ever wondered if those data structures you have learned are applied in the real world. If so, how? In this post, I am going to introduce a few of them to you. 

1. Hash Table
Hash table is extremely widely used. In fact, internet router is a good example of why hash tables are used heavily. A router table can contains millions of entries. When a packet has to routed to a specific IP address, the router has to determine the best route by asking the router table in an efficient manner. For an element inside the hash table, the IP address is stored as the key and the path which follows for that address is stored as the value. Other examples are the famous MD5 hash algorithm and P2P transport. 

2. Binary Search Tree
Binary Search Tree is also widely used, especially in information organizing, indexing and retrieving. For example, binary search tree is used in many search applications where data is often entering and leaving. Other examples of using BST are the Windows Explorer and Internet Explorer of Microsoft. 


3. Red-Black Tree
Red-Black Tree is just a specific kind of Binary Search Tree. With the help of Red Black Tree, we can quickly locate data structures corresponding to a specific value. For example, Linux Kernel links together all the memory area objects in a Red Black Tree while managing vm_area_struct. Another example is the TreeMap in Java API uses Red-Black Tree as its backend.