Archive for May, 2013


Quantum Computing

Assuming you read the tech news weekly, I’m sure you have at least heard about the nearing end of Moore’s Law. Moore’s Law states that the speed of computers doubles every 18 months with transistors getting smaller each year. Well, there is a certain limit as to how small we can get a transistor to exist in the Central Processing Unit (CPU)  because of heating issues. By cutting the size of transistors to be atoms thick, we are face quantum mechanic issues where electrons flow from one transistor to another causing a shortage. To counter those issues, researchers and scientists all over the world are investigating possible alternatives to conventional computers, such as quantum computers, biological computers, chemical computers, and more.

Today, I’m here to talk to you about quantum computers. Though today’s topic does not relate to the realm of programming directly, I want to share with you why I feel the general public should learn more about quantum computing.

First off, quantum computing is a highly complicated process that uses and shapes individual atoms to store and compute data. It is a relatively new field that has gained much support globally and has stirred great interest in the future of computers. Quantum computers are based on quantum bits which are known as units of information held/stored on individual atoms. The special thing about quantum bits, also known as qubits, is that it can represent any value from 0 to 1, or both simultaneously. By both simultaneously, I mean qubits can be both 1 and 0 by means of superposition of two quantum states of 0 and 1.

Therefore, the ability of data (qubits) to be infinitely capable, with space of just one atom, raises hope for the future of computing as we are nearing the maximum speeds of conventional computers. Quantum computers will be able to compute at speeds millions of times faster than supercomputers today because they can store and manipulate data at the same time, while conventional computers have to do them separately. Conventional computers today also use bits that have a storage capacity of 1 million atoms. To reduce that number to just a single atom for quantum computing means quantum computers will be super efficient and powerful. I encourage you today to do more research on quantum computing. Thanks for reading.

Last week, I introduced the concept of hardware and software working together to create functional programs and useful products. We learned about key terms related to computer hardware including computer architecture, machine language, hardware components, and more. Well, this week I’m here to explain about the actual programming of hardware! For instance, after we built a computer based on the required components and infrastructure, how do we program it to act like a phone or game station or other computer? Let’s dive in.

To start, there is a system software that coordinates the computer system and acts as a link between application software and computer hardware. Such a system software is known as the operating system. It is the chief manager of the computer system that assigns, schedules, and monitors computer system activities and resources. However, you’re probably wondering how programmers wrote the operating system software in the first place. Well, let’s dig deeper.

Next, there is a language translation and utility software that translate high-level language programs written in programming languages into machine language, one that computers can understand and execute. When programmers write operating system software and other high-level language programs, they are writing the source code in which a compiler translates to machine code, also known as object code. Then, the computer is able to acknowledge the instructions and executes them one at a time by accessing the required primary storage data and other parts of the computer system. In simpler terms, the computer understands your code once you convert it to object code that is already defined in its primary storage, and then executes it in the CPU (Central Processing Unit).

In all, once an established operating system exists for a given computer system, programmers are able to create application software that can run on the existing operating system. That is why we have different operating  systems for different products and hardware–each operating system has its own set of application software that can be made specifically for that system. For instance, phones and PCs have different software, which is beneficial for the user. I hope you enjoyed the read and look forward to next week’s blog, thank you!

When you look at your computer or your smart phone or your game station, what do you see? You see that it either works, or doesn’t work. However, wouldn’t you want to know how it works or why it works? How does a piece of plastic, combined with various metals and other material, transform into images and interactive buttons? Well, to help you learn more about the connection between hardware and software, I will explain the concept in simpler terms.

First off, a computer system, which exists in all three platforms (computer, smart phone, and game station), consists of six essential parts: CPU (Central Processing Unit), primary storage, secondary storage, input devices, output devices, and communication devices. The CPU is the brain of the computer processing information and controlling other parts of the system. The primary storage stores information and data during processing while secondary stage stores data that is not used in processing. Input and output devices are necessary for interacting with the system to give or receive instructions. Lastly, communication devices allow information to pass to and from communication networks through circuitry paths.

Now, the computer system accepts information based on bits, which are represented by either a 0 or a 1, otherwise known as binary digits. This is due to the fact that a switch can be “ON” or “OFF,” depending on the flow of electricity in a circuitry path. Therefore, all symbols, words, pictures, etc. are represented by a long “string,” a continuous ordering of zeros and ones, of binary digits. This is the machine’s language and it is how we are able to link software with hardware. For example, pictures are represented by a grid of pixels, with each pixel consisting of a number of bits that is stored to illustrate a whole picture.

Fortunately, you have endured the hardest part of learning about computers: learning the definitions. Now that you know about the basic computer components and how computers communicate, we can dive further into actual programming of hardware in the next blog. Stay tuned for Part 2 of “How Software and Hardware Work Together!”

Source

Good vs. Evil

Computer Virus Statistics

According to Statistic Brain, approximately 40% of all U.S. households were affected by computer viruses. With their data, I created a graph of my own to illustrate what kinds of viruses infect those in the 40%. The purpose of these statistics is not to lecture you about finding a good antivirus program, it is to indicate the creativity and power of programmers. The select few programmers who harm others for their own benefits, otherwise known as hackers, effectively expose the creativity and power evident in programming. This is due to the battle they waged against the programmers who develop for good intentions.

Programming changed the world. It created the Internet and allowed society to advance in everlasting ways. In the virtual world, programmers demonstrated being capable of doing anything from creating a simple game to launching a nuclear device. However, this creates an issue: What happens when a hacker is given this ability? Well, hackers exploit that advantage to steal passwords to bank accounts, control specific computers from anywhere in the world, shut down websites, and many more. Fortunately, hackers can only commit these acts when they infiltrate the security system of a computer or a network of computers; this means that there exist “good” programmers in the world who fight off the hackers by strengthening security and defense systems.

Because of this constant battle between the “bad” and the “good” programmers, code is always changing and constantly improving to either defend against attacks or to penetrate built defenses. I find this very intriguing. Either way, each side of programmers has to be very creative to stump the other side from making a move, and they must do it in a very powerful way in order that the other side does not find a way around it easily.

To give an example, Forbes Magazine reported of a Russian anti-virus software maker, Doctor Web, who identified the “first Trojan in history to steal Linux and Mac OS X passwords,” (New Trojan Backdoor Malware Targets Mac OS X And Linux, Steals Passwords And Keystrokes). When a creative programmer is able to infiltrate the defense of a huge program, such as the Max OS X, programmers spend countless hours to patch the hole of the defense system by revamping the code. It leaves almost no room for the good programmers to fail, as they have to succeed to satisfy customers and regular users.

In a way, programmers are entrepreneurs as competition leads them to create innovative products. Therefore, I encourage you to become a programmer today and fight the battle against hackers or simply create new programs that can change the world today, because programming is powerful and requires creativity.

Professional Starcraft

The Starcraft progaming scene of South Korea

Learning Android Development

1st Year CPE trying to learn Android

The Art of Video Games

Your daily dose of the world of virtual reality.

Technological Wonders

Discussing the latest technological innovations.

the7seconds

English 149 Blog

Simple Motors

Applications to electrical engineering

Inside the Automobile

It began as a technical writing project...

Bill Mak - Computer Parts

Going Past Numbers

Digitally Savvy

The latest on modern digital technology

All About the Environment

new and exciting environmental updates

mjloweblog

A Window Into My World

Techno Magic

Taking the mystery out of your electronics.

Where are the Gears?!

A Mechanical Engineer Plays With Circuits

What's New in Computing

An attempt to keep both you and me up to date in the ever changing world of computers

rlhbc

Richard Liu's blog

Coding the Matrix

Computer science's application in video game development

Defense Company Profiler

Giving Detailed Information on the Major Defense Companies

Ryan Lee - Puppies

All about different dog breeds

An Introduction to Electrical Engineering

Useful Information For EE Students

Crazy Technology

Technological advances that will blow your mind

Soccer Ball Design History

This WordPress.com site is the cat’s pajamas

ENGINES AND SYSTEMS

Mechanical-Aerospace-Electrical

This week in Baja

Learn by braking

The Tech Tree

keep up with the latest tech news

Lost in Translation

A look into language translation and voice recognition software.

Engineering at Home

a collection of homebrew projects

Architecture of Aggression

Dynamics of Firearms

Incredible Aeronautical Inventions

Great examples of impressive human ingenuity .

Biomedical Engineering Advancements

Learn about new technology and products in the biomedical industry

Jeslin James

Exploring jobs in the CPE field

Biomedical Companies

Learn more about potential companies to work for as a biomedical engineer

Above The Stratosphere

A tab on current innovations in the aerospace community.

Kyle Koon - English 149

My thoughts on the latest in innovation and technology

Modern Environmentalism

Today's Environmental Issues, Products, and Solutions

jalemus

The Latest Technology

U.S. Navy Technology

ENG 149 Blog by James Pilkington

Tech Bytes

What is going on with technology in the world today.

English149

Exploring blogging as a form of technical communication

Becoming a Programmer

ENGL 149 Tech Writing