Sunday, December 15, 2013

Scientific Computing

What is scientific computing and what sets it apart from normal computing?

Scientific computing is highly realistic modeling of real world objects such as business models or algorithms that deal with data that can pertain to things like trends or societal interests using specific copmutational methods taht is dubbed "scientific computation". A common area that scientific computation can be seen is in business that need to track their finances, profit margins, and predict future trends that will affect their business.

Scientific computation is mathematical and informatical basis of a numerical simulation. Scientific computing reconstructs or predicts future trends or process that are used heavily in business, sciences, and engineering. This is the third way to obtain knowledge or data apart from theories and experiments.

In scientific computing, the objectives and goals depend on what the task is. It can be to reconstruct and understand certain situations like natural disasters, or optimize scenarios like improving the processing power and efficiency of a computer. And it can be used to predict scenarios such as weather and new materials.

Needless to say, scientific computing is an invaluable tool in a competitive economy and scientific community



http://www.brockport.edu/cps/whatis.html

http://www5.in.tum.de/lehre/vorlesungen/sci_comp/ws03/material/slides01.pdf

Sunday, December 8, 2013

Computer Graphics, From One Extreme End to Another

Computers are a completely new invention in relation to the history of man. But in such a short time of under a century, computers have made an unimaginably contribution to our lives and become integrated in such a way that was completely unforeseen.

One of the major ways we use computers is to play games on them, and because of this the evolution of computer graphics has exponentially increased its pace, starting from 8-bit character models to the game textures (or detail and resolution) of such degree that they are now photo-realistic thus making that virtual world you are playing much more immersive and enjoyable.

A short history of the major developments in computer graphics starts in 1998 where 16-bit depth with color and textures were developed. Then in 1999, multi-texture 32-bit rendering emereged. From there cube maps, texture compression, and antripsopic filtering. In 2001 programmable vertex, 3d textures, shadow maps, and multisampling. In 2002 early z-cull and dual-monitor capability was added. In 2003 fragment programs and color and depth compression. In 2004 flow control, and floating point textures, and valve texture control, in 2005 transparency antialiasing, in 2006 unifided shaders, geometry shaders, and in 2007 double precision.

That is to say, each of  these things are incredibly complex, but in an extremely summarized version, developers continued to push the definition and detail of what they were able to incorporate into games and improved on software and hardware in computers that would help to render these images efficiently and quickly.

A 16-bit images compared next to current generation photorealistic graphics



Sunday, December 1, 2013

Computer Security Practicality

In the 21st century, wherever we go, it seems that we are always surrounded by a computer in one form or another. The most common devices that almost everyone keeps on their person at all times is a smartphone and a laptop. These devices commonly contain items of major importance to us, whether it be personal information, work related projects or data, or purchased virtual items may be contained on them. Thus it is of the utmost importance to keep our personal devices and the items kept in them safe from unwanted use.

Things that can damage the integrity of cyber security are malware, worms, and trojans which attempt to install themselves onto your computer and seek out sensitive information; typical targets include usernames and passwords for financial accounts and credit card information. Other threats include social network attacks which seek to lure users with fake links for personal information, and botnets which are compromised computers which seek to break computer encryptions.





http://wyoming.gov/pdf/brochure_security-is-important.pdf

http://www.cisco.com/web/strategy/docs/education/C45-626825-00_Cyber_Security_Responsibility_AAG.pdf

Sunday, November 24, 2013

Artificial Intelligence and the Modern World

When the term "Artificial Intelligence" is brought up, the most common instant association that we think of is hyper intelligent robots that have become self aware and sentient and with their newly gained consciousness, they desire to wipe out humanity and destroy their creators.

That is the Hollywood version of artificial intelligence that has become widespread (although it is quite a fun one). The simplest way to describe an artificial intelligence is a set of determining commands that determine the behavior of some kind of mechanism, most commonly associated with is the computer.

The concept of artificial intelligence was aided by the hyper development of computer science in the last century.

A determining set of commands that execute to perform functions is the base idea of an artificial intelligence. taken to a super complex level, these commands can have so many functions and applications that they can perform high complex functions. Such an example would be the Mars rover Curiosity launched a few years back. A probe to Mars would have to be implemented with scientific functions that could collect and test material on the planet and relay that information back to us back on Earth.

In future applications artificial intelligences are sure to become more widespread. In fact, even now they are wide spread, but we don't know it. Our calculators are extremely primitive examples of artificial intelligences that can compute mathematical formulas. A more modern example would be the artificial intelligence of an enemy or non-player character in a video game. These models contain subroutines to be carried out if certain circumstances are met, such as attack, talk, sit, idle, and the list is immense.

The pop-culture notion of robots taking over the world is a hoax. It would take all the computing power of every computer in existence to even attempt to match the power of the human brain.

http://aitopics.org/misc/brief-history

Friday, November 15, 2013

Computer Science: Post 1900s



After developmental basis had reached a strong foundational level, for example the development of boolean and binary mathematics and some level of mechanical development that could perform some computations, it was then that the hardware and logic could be truly focused on and developed into computers and the computer language of logic.

During the 1940's, at the time of World War II, need for a electronical computational computer was immensely spurred by complex equations that concerned things like ballistic missile paths. Use of transmitting information and directions were also protected by encryption which militaries wanted to use to protect their transmissions and crack other militaries'.

In 1951 the first concept compiler, or an executable program which runs code, was created by Grace Murray Hopper. The compiler is an integral part of writing and running code. And around the same time was the development of the Turing Test by Alexander Turing which was one of the first attempts at creating an artificial intelligence.

In 1960, the term "Computer Science" was created by George Forsythe , a numerical analyst. Since then, computers and computer science has continued to grow in leaps and bounds year by year like clockwork.


Alexander Turing

https://cs.uwaterloo.ca/~shallit/Courses/134/history.html

Computer Science: Pre 1900s



The notion of computing mathematical computations has existed long in the past, such as the great Great pantheons, the great Roman Colosseum, and the Great Pyramids of Gaza. All these great structures would have been impossible to build without mathematical computations. And as time has progressed, more and more devices and methods with specified mathematical functions came into existence such as: Napier's Rod which simplifies multiplication, a mechanical adding machine by Blaise Pascal, and a loom that could weave intricate patterns by Joseph-Marie Jacquard.

Eventually from 1900 to 1939, the development of mathematics had developed to an unprecedented level ever seen in history. This exponential rise and development of mathematics and computation provided the basis for a system that would deal with these things, that is computer science. This rise spawned many of the building blocks that is used in computer science today, such as: boolean logic by George Boole, binary computation by Gottfried Wilhem Leibniz, and one of the first attempts at mechanical computation by Charlse Babbage.

Needless to say. These were some of the foundation blocks built in mathematics and computation that spawned the logic and methodology that computer science is founded and centered upon.



Sunday, November 10, 2013

P2P: Advantages and Disadvantages

What exactly is P2P? P2P is an acronym meaning, peer-to-peer and refers to a computer networking system in which multiple computer users share data with one another simultaneously in order to speed up the transfer process. We can see an example of everyday P2P networks in our homes with all of a family's computers linked to their home network.

Unlike the client-to-server networking system, the P2P network does not rely on a server, which is greatly slower than having multiple sources to download a file from.

Most P2P activity occurs in the internet, where the file sharing community can do much more than a home network. However, the P2P activity that occurs there often time is classified as illegal because users are not restrained to sharing only certain files.

P2P sharing also has one big flaw, in that there may be malicious people sharing files that contain hidden viruses or trojans; security is the one advantage client-to-server sharing has over P2P sharing.

However, there are some ways to protect yourself if you much prefer P2P and that is to read comments and stay away from files that have 0 sharers and 0 downloaders.




http://compnetworking.about.com/od/p2ppeertopeer/a/p2pintroduction.htm

Sunday, November 3, 2013

Data Structures

What exactly are data structures? To most outside the profession in computer science or engineering and some field of biology, a solid knowledge of what data structures are is rare to find. That's why it can be a great benefit to have a broad understanding of the concept, what it entails, and why it is relevant in today's age.

Simply put, data structures are systems or methods of data organization in computers in such a way as to make that data easy to access and be stored efficiently.

For large companies that deal with extremely large amounts of data as well as sensitive and private data, we can see that the ways in which data is stored becomes a very valued area of development and interest for them. For financial institutions private customer data like account information, credit card numbers, and records must be managed efficiently and safely.

Data structures are based on a very basic principle or stored at specific addresses in the computer and accessible data in the forms of integers or strings, that is letters, through RAM or a computer's capacity to handle data. That data is then manipulated by a set of written procedures in order for the user to achieve their desired objective.


Sunday, October 27, 2013

Hacking - Example: NSA



What exactly entails the term, computer hacking? At the beginning of the internet and computer revolution, there was only a vague understanding of what it meant. But, as the internet and computer has become more and more integrated into everyday life, awareness has increased much more so than before. However, there are still many unclear specifications about hacking that have yet to become common knowledge.

Computer hacking is the exploitation of a computer, computer system, network, (and surprisingly also classified) or human error, that allows the hacker to gain illegally accessed privileges, sensitive information, or money.

Hacking has a very ugly side that most people did not realize until recent events; that is in reference to the revelation of severe violations of privacy invaded by the National Security Agency (NSA) which was shed light upon by one of the agency's contractors Edward Snowden. The revelation that the NSA had vastly superior hacking methods and technologies absolutely threw the world, and I mean the entire world, into chaos. Even now, upon further review of the secrets Snowden revealed through over the 200,000 documents that he leaked is still causing uproar.

Hacking is a dangerous tool if one is capable of it. 


http://hacking-computers.com/what-is-computer-hacking/
http://www.huffingtonpost.com/2013/11/14/nsa-snowden-documents_n_4276708.html

Sunday, October 13, 2013

Open Source: Sharing is Awesome!

It is my personal belief that code should be free to access for all, naturally there may be some exceptions such as security and finance, but other than those exceptions free code for all promotes a public that is more eager to learn how to code and use that code beneficially.

Free source code is simple known as Open Source and code that is not readily available to the public is called Closed Source. Open Source gives all users free license and does not require any paid fees to use their software and it is great for group collaborative efforts or projects that are team developed. Free code is great for providing code already created and preventing time spent on redundant coding.

However, there are some pitfalls of Open Source. Namely in its greatest benefit of providing free code is that those that wish malicious intent can use that free code to better understand how to get through security loop holes of that code or create viruses and malware intended to wreak havoc.

Despite the having the lower end of security as opposed to Closed Source code, Open source is great when it comes to having users come together and collaborate on development teams, forums on the internet, threads targeted and solving problems. Open Source simply promotes group development, research, and collaboration thus resulting in greater discovery and development.

I am pro Open Source all the way!


http://opensource.org/



Sunday, October 6, 2013

What is Agile and What Can It Be Used For?

Agile is a set of software development methodologies that broke from the old tradition of how software developers dealt with their clients which did not leave much room for creativity and subsequently led to customers not receiving their product exactly as they wanted or envisioned.

In Agile what is valued are interactions between the developer and customer, having an actual working product to show the customer as a prototype rather than having documentation of what the product does, providing room to change the product even late in the development stage which allows for greater creative potential, having a team of coordinated, cooperative, and excellent members to produce a simple yet effective product.

While the name Agile is thrown a lot, it is often accompanied by the word "Scrum". What exactly is Scrum?
Scrum is an aspect of Agile that puts the methodologies of Agile into action that has its own methodologies that improve the team development process of projects and gets the customer much more involved in the process which helps both the developing team to more effective understand what the client wants and thus for the client to receive a product that is much more aligned to their interests.


The Scrum process is most well known for its division of the development process which is called, Sprints. Each sprint delivers an achievable goal within the specified time of the Sprint and allows for changes in development.

Overall Agile and Scrum are effective methods that allow the software developers and their clients to meet with one another to better help each other create an effective product whereas in past methodologies the client and development team would have had extremely limited interaction.

https://drive.google.com/#folders/0B9EFnnfOcvqFdTBUNTNvc3VFNEE

Friday, September 20, 2013

LinkedIn and Branding: Networking and Selling Your Skillset

Imagine yourself as a fresh college graduate having just entered the job market in search of a place to put your skill set to use. However, after several months of searching, no job offers can be seen on the horizon. You wonder to yourself why is that?

Unfortunately this is a case all too common for fresh college graduates. Many fall into the dangerous idea that upon graduation from college, bountiful amazing job offers will just fall from the sky into their laps. The truth, however, is not so pleasant. Opportunities come not just from having a college degree and proof of a marketable skill set, but also the networking that is created during college.

One way to create that network is to actively market yourself. What does that mean? It simply means to let business and companies know that you are on the job market and are providing for them your experience and skills. What makes this different from job hunting? It means that you are marketing yourself as a brand, meaning that you are selling yourself as a unique employee.



And the best place to do that currently, is through the online website: LinkedIn.com. On LinkedIn many mid to top level jobs are offered there and profiles of other job seekers are available to help yourself improve on your own profile. It also provides the opportunity to get into contact with potential employers and also groups with similar backgrounds, simply an effective way to network online.

https://drive.google.com/#folders/0B9EFnnfOcvqFS3VtRy1xc0NXZVk

Friday, September 13, 2013

QR Codes, What Are They?

Ever see those pixellated squares randomly littered in odd places as you walk through your city? In actuality, those pixellated squares are a type of barcode originating from Japan, QR being an acronymn for Quick Response. These 2D barcodes can contain URLs, tracking or contact information.

In order to put a URL into a QR code, the URL must first be made into a shortened URL which can be done through http://goo.gl/ which is a URL shortener provided by Google. Then take that shortened and paste it into http://qrcode.kaywa.com/ which will embed that URL into a unique QR code.

The utility of QR codes come several utilities. First, from its ability to be scanned by smart phones with QR code scanning software used through it's camera (most smartphones phones, if not all, are QR code software compatible) so long as that phone has wireless internet or 3G or 4G internet. QR codes also have the ability in them to be customizable into images to better represent a business or brand.

QR codes are widely used in Japan and their use is rising in Europe. However, the level of QR code use is not large as the barcode.


https://docs.google.com/file/d/0B9EFnnfOcvqFUkFVeU9NTEVrM2M/edit

https://docs.google.com/file/d/0B9EFnnfOcvqFYlZKdV9KOFBpQWs/edit

Friday, September 6, 2013

Social Networking Security in Business Promotion: Secure or Fallible?

In today's modern era dominated by the advent of the internet, social media has become a powerful tool in which businesses can promote their services and their brands. However, due to the staggering amount of use social media has generated from business and personal accounts, it has made itself a prime target for those seeking to maliciously gain private information. Such people who attempt to gain restricted information are called phishers. Confidential and personal information stored on social media accounts are valuable targets to phishers because that information may be linked to other accounts which might have financial information and resources.

There are several methods in which phishers attempt to obtain information from social media users. They range from spam emails containing bogus links or false information trying to get the user to unknowingly divulge information. There are also spam app or game invites or fake game related lures like "CHEATS!". Other schemes try to falsely get the user to give their information through fake
login screens.
Don't get hooked!

In response to the danger of virtual identity theft, all users including businesses should be more careful when interacting online. The first and most effective way to safeguard personal information is to simply have a keen eye and avoid all scams. Phishing scams usually all have similar language, for example "This really works! I tested it myself! Just click the link ######.com and you'll get it free!" or they usually try to trick with popups declaring your computer is in danger. If recognizing phishing attempts is a bit harder for you, then setting safeguards is the next best thing. Some tips suggest that you do not have the same password for all of your accounts, create unique passwords with special characters and numbers and store them in the website that can only be accessed through security questions. An effective way to keep information off unwanted hands is to always go to the security settings of whichever website you're on and change the settings to be off limits to unknown persons and inaccessible to the general public, only acquaintances. Safe websites will always include "https://...." with the "s" standing for secure. Other traditional methods include up-to-date security software on your computer and running regular scans for phishing software.

The internet has become an integral and powerful tool in today's modern world. However, it does not come without its dangers, which in the case of social media refer to phishing scams.

Friday, August 30, 2013

Welcome!

Hello and greetings! My name is Joshua Ng and welcome to my new technical blog! I am currently an undergraduate student, studying computer science at San Jose State University located in California's Silicon Valley.

In my ongoing education and study of computer science at San Jose State University, I have learned to grasp the programming skeleton of the programming language as a whole through the practice of programming through languages such as Java, C, Python, and assembly.

As a computer scientist what makes me excited about the field is most simply put, the astonishing amount that programming has accomplished, its usability in almost all fields of businesses and sciences, and its almost unlimited potential in what it can accomplish and grow into. In specific examples, computer science is used in just about everything from server maintenance, the software in which runs our laptops and computers, algorithms that determine crash course for rockets and space shuttles, virtual environment creation, and so much more. The possibilities are so limitless it is staggering to thing about its potential.

As the weeks go on, I look forward to interaction with visitors to my technical blog through the comments section! Please feel free to comment on my blogs and present feedback to me! Any and all constructive criticisms or conversations are welcome!