Monday, December 9, 2013

Scientific Computing: Computational Science on Biometric Authentication

What Is Biometric Authentication?
The definition I like the most for biometric authentication is "you are your key." You are authenticating yourself by something you are such as your fingerprints and voice. In this post, I am going to introduce Two most popular biometric authentication methods fingerprints and iris scan, and how scientists apply computational science on them.

Fingerprints
Fingerprint was severed a purpose as a form of signature at in history. However, it has been used more and more as a scientific form of identification in modern society. Today, they are routinely used for identification, particularly in criminal cases.
How does it work?
First of all, we first capture an image of the fingerprint. Then, we enhance the image by using some image-processing tools, and identify and extract some critical points from the enlarged picture.


To authenticate, we use the extracted points to compared with the claimed user's stored information, which was captured and recorded in the past. With some predetermined level of confidence, the computer then determine if it is a match.


For determining a match, different countries have different standard. For example, in England, fingerprints must match in sixteen points while in the United States, surprisingly no fixed number of points are required to match.


Iris Scan


Iris scan is, in theory, one the best for authentication. One reason is that it has little or no generic influence on the iris pattern so it remains accurate for identical twins. Furthermore, the property of the pattern is pretty stable throughout a lifetime.
How does it work?
Iris scan system requires sophisticated software and equipment. First, we use an automated iris scanner locates the iris, and then we get a photo with white and black color. The resulting image is then transformed into a 2048-bit iris code.
Two iris codes are compared based on the formula below:

d(x,y) = number of non-match bits/number of bits compared

For example, d(0010, 0101) = 3/4 and d(101111,101001) = 1/3. A perfect match is d(x,y) = 0 but of course we can't expect perfect match in practice. The expected distance for the same iris is 0.08 while the expected distance for different irises is 0.05.

To Conclude
Compare with password, biometrics clearly have more advantages. In particular, it is hard to forge. However, the more sophistical the biometric system is, the more it costs. That is why people nowadays still prefer password because it is way more cheaper.

Saturday, December 7, 2013

Computer Graphics: Visual Database Desgin Tools


MySQL is one of the most popular open-source database, and people use it for wide range of purposes such as Web applications and eCommerce platforms.  However, I bet most of you have unpleasant experiences using the command-line interface. For example, when I was first using MySQL command line, I sometimes got really upset because I had to retyped the whole query ten times in order to get the syntax correct. As a result, when I later discovered that there are some GUI applications for working with mySQL, I was like "Oh my goodness, these tools are amazing!" In this post, I will introduce two applications that I like the most in working with MySQL.

MySQL Workbench

It is a visual database design tool which combines SQL development administration, database design, creation and maintenance into a single integrated development environment for MYSQL data system.
Pros
It is a great tool to quickly set up a new schema, manage relations and updating the underlying database. Also, it works great with JDBC. It is free!
Cons
Sometimes it crashes especially if you are using 64-bit version of Windows 7 so I recommend save the program often.

phpMyAdmin

It is a browser-based MySQL data administration tool written in PHP.
Pros
It is simple to use and has many features and options. User can easily create a database as modify it. Many SQL query can be done with clicking the mouse. Last but not least, it is also a great tool to forecast and see what the result will be if you put your code and database into the actual Web server later in the future.
Cons
Despite many people complain about the ineffiency of the user interface of phpMyAdmin, I personally can't find anything I dislike about. 

To Conclude
These are the two GUI applications for MySQL that I like the most. If you have experiences with using these tools or other tools, please share with me and comment below!




Monday, December 2, 2013

Communications and Security:Email Encryption

Why You Need Email Encryption?
Suppose you want to email some sensitive information such as your banking info and social security numbers, I suggest to use encryption because it made email attacker's job much harder, and it is easy to accomplish. 

To securely encrypt your email, you need at least encrypt two things:
First Thing: Encrypt The Connection
If you don't encrypt your connection, other users on your network can easily capture information such as your email login credentials and sending and receiving messages.
How
First you need to set up SSL and TLS encryption which is the same protection scheme you use for checking your bank account or making online payment. Check your email with a Web browser, and ensure that SSL/TLS encryption is active. If it does, the URL shows https instead of http. Most current email-providers such as Gmail and Hotmail offer SSL/TLS so mostly it is done automatically.
Second Thing: Encrypt The Messages
When your email messages are sent, leaving your email provider and traveling over the internet, it becomes vulnerable to attack. For example, bad guys can always intercept your message when it is bouncing from one server to the other.
How
To make this protection work properly, you and the recipient should do some work ahead of time. One option is to use the encryption features originally from your email service. The other option is download an encryption software such as OpenPGP. If you are in hurry, there is Sendinc available, and it is Web-based encryption email service. 

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.

Monday, October 28, 2013

Hacking: Botnet

What is botnet?
Botnet is a number of internet computers that has been set up to transmit hostile data including spam and virus to other computer, and the owners of those computers are unaware of it most of the time. According to Kaspersky Labs, botnets should not be categorized as spam, viruses, or worms but it is considered the biggest threat to the internet. 



Some common attacks from botnet
Denial-of-service is definitely one of the most common botnet attacks. Denial service is caused when the website can not handle too much traffic and is forced to close down. The computers that form a botnet can be programmed to redirect transmissions to a specific computer and conduct such attack. 

Common hacked victims
Computers that are hacked to serve in a bonet are often those with weak security protection. For example, the owners of those computers fail to provide effective firewalls and other safeguard. Also, home users with weak safeguard tend to be the favor victims of botnet attack because those home users are high speed connections for computers, and if they are under control by botnet, transmission of hostile data can be very efficient and the attacked.






Source:
http://www.dodbuzz.com/2009/08/03/botnets-biggest-cyber-threat/

Friday, October 11, 2013

Open Source: The Spring Framework

What is Spring?
The Spring Framework is an open source application framework, and the goal of it is to make J2EE development much easier. Unlike other single-tier frameworks, such as Hibernate and Struts, the goal of Spring is to help structure the entire applications in a productive and consistent manner. 


Why Spring?
The Spring framework is good news for everyone who wants to develop enterprise application. It is extensible and portable. With Spring, you can develop different kinds of business application, such as social network, database and mobile applications. No wonder over 2/3 of enterprise developers are using Spring.
Spring Framework provides comprehensive infrastructure Support for developing Java application. It is a Java platform and handles the infrastructure so you can focus on your application only and don't have to start from scratch. 



 










Advantages
One of the big advantages of using Spring is it provides dependency injection which is where you design your classes so that they expect an outside actor to directly give them the sub-tools they need to do their jobs before anybody starts asking them to do something.
What is more? Spring also provides many templates which act as base classes so that users can get along working with JEE standard technologies. For example, the JdbcTemplate works well with JDBC and JmsTemplate makes JMS pretty straightforward. 


To Conclude 
Spring is a great development tool and there are many reasons to like. Most importantly, it is an open source so you can look at the source behind the sense.

Thursday, October 3, 2013

AGILE: Agile verses Waterfall. What Is Right For Me?



Introduction
    Traditionally, people developed software project in a very linear approach called Waterfall. An example of using the waterfall method in software development is the progress flows steadily downwards through the phases of requirements, design, implement, testing and maintenance. However, some people who advocate Agile argue that the waterfall model is a bad idea in practice because they believe for a non-trivial project to finish a phase before moving to the next one is impossible. Those people believe Agile provide with more fixability.

Pick the right one
    In order to know which approach should be used in a particular project, you should understand the difference between using Agile and the waterfall in the given areas below:

Requirements/Change
    You should ask yourself whether or not the requirements are changing constantly. If the requirements are changing constantly, you should consider Agile than the waterfall because Agile allows you to add more requirements as well as dropping others.  
Experience/Resources
    Does developing this software require new skills and technologies? Do you have experience implementing it? If you have a stable environment, then you should consider using the waterfall.
Customer Involvement
    Customer involvement is essential to the success of a project. If you are able to get continuous feedback so that you can keep making changes based on their feedback, you should use Agile.
Timelines
    Do you have fixed due date for your project? If you are flexible with due date, you should use Agile. However, if you have restrictions due to financial requirements or calendar restrictions, you should consider the waterfall. 

Conclusion
    My recommendation is always consider the areas above and pick the right one for your software development. Some people like to analogize Agile with innovation and the waterfall as a cookbook. I personally love this analogy. Overall, Aligle(innovation) allows your progress to go back and forth but the waterfall(cookbook) doesn't as when making a pumpkin pie, it is awkward to first bake the whole pumpkin and then start the processes of smashing it and adding milk and spices. 



Thursday, September 19, 2013

LinkedIn and Branding: Why Is LinkedIn So Special?

Why is LinkedIn so special when there are many social networking websites out there including Facebook and Twitter? Well, LinkedIn specifically provides you a platform where you can build relationships in the field you are in, search for a job as well as offer one. In this post, I am going to talk about some of the benefits of using LinkedIn. First of all, you are able to set up a completely professional profile. Your profile enables you to describe what you do, what accomplishment you have reached or awards or honors you have achieved in detail, and LinkedIn helps you categorize those and show a clear and smooth outline to your colleagues, recruiters and customers. Another benefit of using LinkedIn is because of its unique features. An example is the new professional portfolio feature enables you to display your professional work easily. You now have ability to showcase your blog posts, videos, portfolios on your profile. All in all, it is better to display your work rather than just talk about it. Another example is the "Who's Viewed Your Updates" feature. It is a visual snapshot of what you have shared over the past two weeks, who read or viewed it, and whether it was well-received. This new feature definitely helps you sharpen your LinkedIn posting because you learn what works and you can use similar strategy in the future. This feature also helps you make connections with professionals who find value in your posts. To sum up, LinkedIn is a great business social media and provides you a great platform and tools to best promote you. Remember that you will get out of LinkedIn what you put in. 

Thursday, September 12, 2013

QR Codes: Great Tool to Promote Your Business

According to the New York Times, more than half of all Americans are using smartphones; whether it's for a business or service, contacting your customers can occur online as well as calling them directly. What can be even better? Using these black symbols you must have seen on billboards can greatly promote your business through this “smartphone century." In case you are still those old school people, let me briefly explain what those black symbols are and what they contain. They are called QR codes, which stand for Quick Response codes. They are computer generated images which create a shortcut for customers to connect to our online resources. QR codes are lightening because all customers have to do is scan the code with their smartphones, and instantly they are connected via their mobile browser directly to the online location without typing a long and tedious URL. Now, I know you just can't wait to have one for your business. So before you start, I have two suggestions to help you optimize your QR codes. First of all, once you generate your QR code, please don't stay with the original picture. Why? Because the original content is boring and meaningless. You will want the content of your QR code to tell your customers something about your business and its offerings. Try something unique such as placing your business logo or a highlighted product as the content of your code. Take a look at these QR codes generated by Disneyland,
don't these codes take you back to all the pleasant Disney memories you have with those cute and funny cartoon characters? Another suggestion is have a brief description about what your goal for the QR code is and how you want the customer to respond. You can simply have a couple sentences next to your QR code to describe the purpose of the code. Example: "Like Us on Facebook." To sum it up, creating a great QR code is an amazing marketing tool to promote your business, and surely you don't want to miss out on it!

Friday, September 6, 2013

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

Facebook continues to be the world's most popular social media sites. Besides it is the best place where friends share and communicate online, Facebook has become a venue for businesses to promote their brands, communicate with clients and look for potential customers.

In this post we will be looking at how to use Facebook as a marketing tool and some security issues related to it.

One common way to use Facebook as a marketing tool is a Facebook page. Businesses on their pages can post information such as contact information and background of their companies. In addition, businesses can also promote and update their products and services through sharing images and videos. Another way is to use Facebook ads. Businesses have many options to customize and market their ads in Facebook. There are targeting options to specific what kinds of customers businesses target their ads to based on different location, age, interest, education level and more. Also, for app developers, when people click on the ad on the mobile device, they will be directed to the App Store or Google Play to install the app.

Although using Facebook helps promote your brand, some security issues should be taken into consideration. A number of Facebook security flaws have recently been shared. According to slashgear.com, the latest flaw was image related. This security flaw allowed any user to delete any image from other users’ Facebook page. Previous security flaws include user accounted being hacked and one of the victims was Mark Zuckerberg, the CEO and founder of Facebook. According to cnn.com, a Palestinian researcher posted a message on Mark’s page saying “First, sorry for breaking your privacy and post(ing) to your wall. I (have) no other choice to make after all the reports I sent to (the) Facebook team.” Khalil Shreateh, the security researcher said he found a hole in Facebook’s systems that let him post to any user’s page including users not on his friends list. Although it is almost impossible to have no bug for such large social media which has users more than 1.15 billion, as users, there are still some actions we can take to eliminate the security attack. One way of being secure while using Facebook is to use a one-time password. According to nakedsecurity.sophos.com, if you would like to use Facebook from a public location, you can use a one-time password to access your Facebook account. This password is sent to you by text message and will expire after 20 minutes. Another way is to block apps installed on Facebook. By doing this, you can prevent them from accessing your personal information. Last but not least, make sure you log out when you are done using Facebook, otherwise, people can do crazy things on your Facebook account which might result ruining your business or personal reputation.

As long as you take care of the security of your account well, Facebook is one of the best online tools to promote your brand.





Work cited:

http://nakedsecurity.sophos.com

http://www.slashgear.com/facebook-security-flaw-allowed-any-user-to-delete-any-image-02295703/

http://www.cnn.com/2013/08/19/tech/social-media/zuckerberg-facebook-hack

Friday, August 30, 2013

Welcome Everyone!

Welcome to my blog, everyone! Here is something about me.
I consider myself as an expert on solving problems, troubleshooting issues, and coming up with solutions in a timely manner, which is the reason I chose computer science. Computer science is mainly about breaking down the problem and coming up with abstract algorithms. In most of my programming classes, professors give us the results of program and then we are expected to write a program that meets a set of given requirements. My feeling is amazingly complex when I start a program from scratch, write pseudocode, code, test and debug, and debug and debug. . .feelings range from anger and disappointment to enjoyment and satisfaction. In addition, my interest in computer science developed while taking two of my programming classes. One was CS 151, Object Oriented Design, where I learned how to program in object oriented way including integrating my concrete classes to one abstract class or interface, and properly applying different design patterns on my program. My other CS class was CS 146, Data Structure and Algorithms, and I learned how to apply different sorting or searching algorithm and choose the data structure best for my program. These are all eye-opening courses and I am looking for explore more amazing things in my future class as well as my career. I hope you will find my posts interesting, and I am looking forward to your comment!