The Flow of Information – Pt.1 Binary!

What? Computers Talk?

Guiding Question: Have you ever wondered how information flows throughout the computer system? 

cpu_635775.png

Well… to start with computers do not communicate like humans do.  They do not use the English language to communicate or any other human language for that matter. Computers are smarter than that! They use mathematical expressions and send information back and forth through the internet and through CAT5e, 6 or 7 cables and or fiber as a series of ON / OFF signals. From this, they translate what you type with a keyboard, click with a mouse, and or touch with a touchscreen all of which us geeks like to call UI or User Interfaces. But it all starts and runs on the Binary Code!

Ok, know we have all that straight let’s dive deep into the language computers use to do all this talking.  The language of computers is known as Binary as I have previously stated. Binary is a beautiful two number counting system that uses 1’s and 0’s.  Thus, Binary is a code that is the foundation of all another computer language, (or coding), complete with the proverbial “ON/OFF” switching and conditional “If” statements which are firmly rooted in the purest form of logic! Sorry… I got a little excited there…

img_77572

Here is an example of pure Binary Code:

01000011 01101111 01101101 01110000 01110101 01110100 01100101 01110010 01110011 00100000 01010100 01100001 01101100 01101011 00100001

Well, neither can I, not without following some basic rules. Below you will find the 7 basic rules of Binary:

Rule 1

(On/Off Rule)

1 equals ON  – 0 equals OFF

light_switch

Explanation of Rule #1:  Think of a light switch, how it only goes up or down. Depending on which direction it goes depends on what happens… the light comes on lighting up the room brightly or goes out letting darkness fill the room. In the same way, the numeric “1” only holds the value of ON... a circuit that is connected. Where the numeric “0” only holds the value of OFF… a circuit disconnected.

Rule 2

(Counting by 2’s)

Explanation of Rule #2:  This rule is most concern with the tool we use to translate Binary Code into a logical codebreaking machine! So, to start, draw two rows of eight boxes on a piece of white paper like this;

0

2

1

Rule number two clues us into how we make all those 1’s and 0’s have value. This is a throwback to how we all learned how to count with the traditional 0-9 format in elementary school – probably in Kindergarten. In other words… starting with the rightmost cell, (a spreadsheet term meaning box), and then place a number “1” in it. Now because we want to skip count or multiply by 2’s with each cell going left we ask ourselves this question… what is 1×2? If you get the whole number “2”… then you would be right. Therefore, the next number in the next cell will be a number 2. The pattern, of course, is multiplying each number by two until the bottom row is completely filled out.

0
128 64 32 16 8 4 2

1

Addition Information: The top row is called the Binary row and the bottom row with all the whole numbers in it is called the Numeric Row. Also, each box or cell is really called bits, which is the small unit of measurement when talking about technology… more about this later.

Rule 3

(Use or Don’t Use Rule)

“if” a whole number in the Numeric Row is turned ON –  then you count it.

“if” a whole number in the Numeric Row is turned OFF –  then you leave it alone.

Explanation of Rule #3: Going back to Rule 1 the “1” is ON and the “0” is off, we start putting in the Binary Code in the upper row. The conditional “if” statement says where there are Binary “1’s” above whole numbers then you add those numbers up. Likewise, were there are Binary “0’s” above whole numbers we leave those numbers alone as seen below.

0

1 0 0 0 0 1 1
128 64 32 16 8 4 2

1

The three binary “1’s” are over the whole numbers 64, 2, and 1. So if we add these whole numbers up we would get the whole number 67.

Addition Information:  This is simple counting with Binary. However, the ultimate goal is to make whole numbers equal a letter of the alphabet. So hang on!

Rule 4

(Even / Odd Rule)

“if” the number “1” in the Numeric Row is turned OFF – then the sum will be EVEN!

“if” the number “1” in the Numeric Row is turned ON – then the sum will be ODD!

Explanation of Rule #4: First, it is important when counting with Binary to know what is even and odd. This is used as a self-check on your math and understanding of how numbers work. So we know 2 is even, 4 is even, and 6 is even. So, in the example above we know without any math needed that the whole number 67 is an odd number because first 7 is odd, and second the whole number “1” is turned on from the Binary Row. Again this rule is important when we start considering larger and larger numbers where our math could be off the error can then be caught easier and faster.

Addition Information: Before we go any further you must do the following! On a piece of white paper make two columns. In the first column write the alphabet from A-Z. In the second column count 1-26. Therefore, if done correctly you will have A=1, B=2, C=3, and Z=26. Now taking the example above we have 67… wait there aren’t enough letters… OK, on to Rule Number 5.

Rule 5

(Uppercase / Lowercase Rule)

“if” the first three bits, (left to right), have 010 in them then – the letter will be Uppercase

“if” the first three bits, (left to right), have 011in them then – the letter will be Lowercase

Explanation of Rule #5:  This rule is most concerned with the Binary code in the first three bits (left to right), and allowing the CPU to discern the difference between uppercase letters and lowercase letters depending which code is in them. So, to completely understand this idea lets look at the following example from above; that equaled 67.

0

1 0 0 0 0 1 1
128 64 32 16 8 4 2

1

Ok… so forget for a moment we are counting to get a whole number… and let’s look at the bits that have the red Binary Code in them. When typing on the keyboard the CPU receives this code and sees it has 010 in the first three bits. The CPU knows this will be a letter so it then discerns whether or not this will be an uppercase or lowercase letter. In this instance, 010 is an uppercase letter. Now let’s look at the rest of the code, in close examination, we find that the whole numbers 2 and 1 are both turned on. Here rule number 3 takes effect and thus the CPU knows these two whole numbers need to be added together to make the sum of 3. The CPU then knows what letter this is because 3 equals the letter “c” and not just any “c” but an Uppercase “C”. Therefore, using the pure Binary Code above we know that the first eight bits or byte are the first letter in a string of letters that spell something in a sentence!

Rule 6

(Delimiter Rule)

Explanation of Rule #6:  Have you ever wondered how it came about that when writing we put a space between each word? Well, I think it’s simple logic but just in case you need an example of what it would look like if we did not have spaces between each word… Rulenumbersix. Or… in proper English – Rule number six… is, in fact, the Binary equivalent of a space or the action of pressing the spacebar on the keyboard! Crazy… isn’t it? So the Delimiter Rule says simply this; “After each word, there will be in Binary Code – 00100000.” 

Thus if you decipher the first nine bytes you will see that it spells “Computers” and then you will find the Delimiter 00100000. Then the remaining four bytes spells “talk” with the last byte is… wait I think we need another rule?

01000011 01101111 01101101 01110000 01110101 01110100 01100101 01110010 01110011 00100000 01010100 01100001 01101100 01101011 00100001

Rule 7

(Punctuation & Special Characters Rule)

  1. Binary exclamation mark “!” 00100001
  2. Binary period “.” 00101110
  3. Binary question mark “?” 00111111

For special Characters – Click HERE

Explanation of Rule #7: As you can see the last byte in the Binary string above is the exclamation mark! This code equals the whole number 33 making use of the whole number 32 and whole number 1 in the Numeric row.  Checking our code we know that this is an ODD number, and all punctuation marks and special characters are in the range of whole numbers between 33 – 57. In a roundabout way with all Seven Rules of Binary, we have explained the special coding system called ASCII or American Standard Code for Information Interchange which is based upon converting whole numbers to Binary in a nutshell.

NEXT POST… THE COMPUTER BUS SYSTEM! 

Until then… happy computing!

happymac

Don’t hesitate to respond to this posting by leaving a comment in the box below in the titled – ‘Leave a Reply’ or  email me at… BStark@sjhsknights.com

‘To Image Christ in Mind, Heart, Body, and Soul.’

Questions, Questions, Questions…

When You Don’t Know

Technology is great when it works… right? I say this under my breath each time I run across a problem I don’t have the answer for. So, what to do? Well, when technical problems present themselves it is always a good idea to go back to basics and go through what is termed as the ‘The Six-Step A+ Troubleshooting Process’.

Step 1: Identify the problem.

Step 2: Establish a theory of the problems cause. (Question the Obvious) 

Step 3: Test the theory to determine the cause.

Step 4: Establish a plan of action to resolve the problem and implement the solution.

Step 5: Verify full system functionality and if applicable implement preventive measures. 

Step 6: Document findings, actions, and outcomes.

With that said let’s explore each step from a logical point of view.

Logic not Assumptions or Guesses

It is so funny to watch people come to me and ask me tech questions expecting me to know exactly what is going on with their system and when I look at them with a blank face – my ‘Spock Face’ they begin to look worried. I know what they are thinking… ‘Doesn’t he know?’

Yes, in most instances I do know exactly whats going on… machines, after all, are logical. In most instances – 99% of the time it’s user error. The person – human – reacts with emotions and overlooks simple things that if they took the time would have seen their error. But that’s what I get paid for… right?

Step 1: Identify the problem. In other words look for the most obvious cause then start working forwards. I really get a kick out of simple problems like – ‘Mr. Stark my computer won’t turn on.’ I always ask, ‘Did you plug it in?’ I’m serious… I have plugged in more systems for my adult colleagues than I can count on my hands and feet! I’m suddenly a miracle worker because I can plug stuff in. But one the other hand I love it when I face a challenging problem which to be far I have come across several within the start of this school year. In those instances I never assume… instead I test… record… test again… record again… until I can absolutely track the problem to its source.

Step 2: Establish a theory of the problems cause. (Question the Obvious).  As mentioned in Step 1 the problem is usually simple, something obvious. But when it is more difficult creating a theory then testing that theory is more logical and much more conclusive than guessing. The obvious usually is eliminated within the first few seconds on the job. So I am always ready to dig deep and in some instances, I will say to the person, ‘I will be back.’ – Now I have switched to Terminator Mode! – So what I usually do in this mode is go to the internet and research the problem. I can’t tell you how many times I’ve cracked the case by simply putting the event online. Here’s a piece of advice: Logically speaking if you type into Google exactly what the problem is there is a very good chance there was another system somewhere in the world with the same problem. Now this is not an absolute… and when I run across a problem I can’t solve and I can’t find it on the internet I start from the beginning and walk through all the stems and all the symptoms until I figure it out. This process sometimes takes time… lots of it. In really hard instances I have been known to go by a book that involves that program which is giving me the problem… I love Barns and Nobles!

Step 3: Test the theory to determine the cause. Now I have gone into ‘Terminator Mode’ I am testing like I had mentioned in Step 1. Prior knowledge comes into play here, years of tackling these kinds of problems and in some instances what worked before does not work in every case. What seems to be the cause turns out to not be the cause at all. But always it is a logical answer to why the problem occurred in the first place. If one thing didn’t work, try something else, never try the same thing twice unless its part of a process. I also want to say many computers problems have been fixed with simply downloading the updates and if that doesn’t fix the problem then your assured your working on a platform that has every updated component. Remember that the harder problems are ones which are made up of more than one tiny problem that either unchecked or unseen and therefore, never really dealt with before coming onto the scene. Updating software or drivers are critical in eliminating many of these smaller symptoms.

Step 4: Establish a plan of action to resolve the problem and implement the solution. By this time I have notes! I’m talking notes written with times, dates, and actions and the outcomes of those actions written in the order I tried them. In the harder problems as I have talked about above, I have taken ownership of the system and moved it into my workspace.  I do this because the user who reported the problem wants the problem fixed ASAP and emotions run high and sometimes they start giving me information about the problem which is not related to the problem. Then if I don’t stop and do what they think I should do they get more frustrated which in turn frustrates me. This is where education and experience trumps guessing! Also, legitimately I will have to perform some type of test or replace a part which is going to resolve the problem.

Step 5: Verify full system functionality and if applicable implement preventive measures. Once the problem has been solved and properly documented for future generations… Turning the system off waiting for about ten minutes… unplugging they system… then pressing the start button to drain the electricity completely from the system is the protocol I always perform. This gives the system a chance to start fresh when everything is plugged in and electricity is flowing once more. If the problem is truly fixed there will not be a problem but I have had it happen that it re-occurred after performing this simple protocol. In which case, there is another problem at the root and all I did was put a band-aid on it until the system was shut down. So the plan should always test the system completely after all fixes have been applied on start-up.

 Step 6: Document findings, actions, and outcomes. In truth documenting should be in every step of the way. But this step is where you get to apply all the proper technical terms to all the none technical notes scribbled down on the back of other important papers that happened to be on the desk at the time. Typing everything into a document like Word, Excel, or Google Keep, and or Docs while it’s fresh in your mind. In this action of recording, I have now switched from ‘Terminator Mode’ to ‘Dr. Stark Mode’ as I am writing the curse to the computers illness.  I can’t say this enough… Documentation of every problem no matter how simple it was is good practice because you never know when you will need to perform those same actions and instead of starting over you have the cheat sheet right in front of you! Why would you not use them?

Real-world Skills

In the real-world this skill is known as problem-solving… prior knowledge is reinforced as new knowledge is learned through a process which is measurable. Hint: Guessing is not measurable. To work a problem with these six steps is not limited to technical problems but every real-world problem you could possibly ever face. So I close with this one statement… ‘This is a skill which is just as important as any other skill learned in school!’

Don’t hesitate to respond to this posting by leaving a comment in the box below in the titled – ‘Leave a Reply’ or  email me at… BStark@sjhsknights.com

‘To Image Christ in Mind, Heart, Body, and Soul.’