Saturday, November 9, 2013

The Chief Minion: Hello My Name Is... CPU


So it’s been a while since my last post. Yes, after the initial, improbable success in placing a CNN link into a website page, I fielded several follow-up questions that had me worried:

“Are you going to design a website?”
“I didn’t know you wanted to make a website!”
etc…

It turns out, I do not want to design a website. But the minion language HTML is for designing websites so I find myself in a bit of a pickle. My choices are to either continue learning about HTML things even though I have no interest in actually using it (I did complete my Code Academy course. Promise.) Or I could acknowledge an early wrong turn and seek a new direction for my blogging code-cracking expedition.

Note: I Googled “Wrong Turn.” Apparently that’s a horror flick from 2003 about inbred monsters from West Virginia. I do not think my brief foray into HTML was this much of a “wrong turn” but perhaps some of you will enjoy the movie reference. I don’t like horror. It gives me nightmares.

Anyway, I was discussing my blog with a minion expert I met recently. After seeming confused (bemused?), then humoring me in the way of being polite, he nonchalantly referred to something as “The Chief Minion.”
Wait a minute. There’s a Chief Minion? 

Why yes, he explained, and it’s called the CPU. I became so excited I literally ran away from the conversation to find my iPhone and make a note to myself. “Chief Minion = CPU.” I need to get to really know my minions and I’m going to start with their Chief: CPU. 

Anthony Michael Hall is my eternal representation of the King of the Nerds and is therefore my blog’s stunt double for the Chief Minion. One can only hope the CPU is as awesomely hilarious as Anthony Michael Hall. To be honest, I have doubts.



CPU stands for Central Processing Unit (according to both the minion expert and Wikipedia). I tried to read the Wikipedia entry. Tried. The first paragraph went pretty well: the central hardware of the computer that carries out all the basic math and stuff…things I can logically infer from the name. The next paragraph begins to get a little tricky: the CPU has two parts, an ALU which is where the math happens and the CU which is where the memory of the CPU is (I think?). I suddenly feel like my brief foray into HTML and the CNN tab is like learning Pig-Latin in order to tackle Shakespeare. The third paragraph talks about array or vector processing and distributed computing that doesn’t even have a CPU. Minions without a Chief. Sounds too trippy for a beginner. 

This is my visualization of minions without a Chief.  Trippy.

I have concluded after slogging through the remainder of the entry, that the CPU is where my minions use the much-talked-about binary code. Unlike the HTML language, in which I use lots of symbols and letters and numbers to speak to my minions, this CPU is where they get to do their 01001010101 thing. So why is that? I mean, if my CPU is the Chief of all Minions, why doesn’t the Chief speak the most complex minion speak, complete with all the symbols and numbers and letters, instead of the most stripped down one with only 0s and 1s? 

Here’s what I’ve surmised:
 
(Note: the following has been fact-checked for glaring absurdity or inaccuracy. However, no self-respecting minion expert would sign off on officially “approving” this description of why the CPU uses binary code. Fair enough.) 

The CPU is hardware. This means that it exists. I mean, it exists physically in space. It’s that little “chip” you see in Intel commercials. I’m going to compare the electrical signals of this physical chip to movements that are little easier for my tired brain to visualize: light switches. In my simple brain, there are two types of light switch, an up/down version and a dimmer switch that allows for awesome seamless transitions from light to dark and vice versa.  

 

The dimmer switch, while cool and with a myriad of possible lighting levels, is hard to use if the goal is to 100% accurately replicate the exact, particular lighting level that you want every single time. A little more up….no, down a little…no up a little…etc. That dimmer is like using all the symbols/letters/numbers. Cool, but complex. 



The up/down toggle switch is way less cool. Up. Down. 0. 1. But you can always tell where you are: on or off. 0 or 1. So the little electric signals in the CPU need that type of accuracy, precision and reliability. Up. Down. But here’s where it gets cool: if you are looking to reliably and precisely replicate a certain level of lighting, you can set up a series of up/down switches (imagine them all lined up against a wall) whose end result is exactly the level of lighting you want. Up. Up. Down. Up. Down. 00101. The CPU is where your computer exists in a physical reality of tiny electric up/down switches. And the more up/down switches you have and the smaller you can make them to fit in one “room,” the more varied the lighting arrangements you can make.  



I feel like Marie Curie who’s just discovered radium. Actually, I’m like some other person who just realized x-rays exist 50-75 years after Marie Curie. And after everyone else in the world. And after my great aunt Betsy had her arm x-rayed. Better late than never.

Sunday, September 1, 2013

Codebreaking 101: Diving in with HTML


As I have already alluded to in the title, I finally decided where to start with my code-breaking plans.  Here is a brief review of my list from last week:

BASIC
C++
JAVA
Python
HTML
(and an added suggestion from a professional minion-code-breaker: Ruby)

I started to try to research these to see where I should start. Then I started to research the history of computers and the origins of programming.  Then I went to the library and took out a bunch of books, since I find paper comforting in times like this.  Plus, simply having a book in my possession makes me feel more knowledgeable, even if I haven't actually read the book yet.  Or ever. Anyway, I then began to realize that perhaps I was going a little overboard. 

 While this is not a picture of my actual library books, I did take out Dreaming in Code
in the hopes that merely having it would help me to dream in code. 
I think you're meant to read it, though, not just put it under your pillow. Oh well.


So there’s a button on the top of my blog post as I type.  It says “HTML.”  I want to know what happens when I click that button.  Wouldn’t learning about how I’m actually making this very blog be a great way to start my minion-code-breaking-ways?  So HTML it is…

HTML stands for HyperText Markup Language, by the way.  As far as I can tell, it is the language that Internet minions use to make webpages.  I have sought the help of some actual people who are real-world minion-professionals (Thanks Nancy!) and have been directed to a newly dubbed “trusted source” www.codeacademy.com. 

So I start the free online tutorial called “HTML Fundamentals.” I was thinking that this is pretty boring, honestly.  Here I am, adding the little bracket things: <body></body> and it’s OK but it seems like an elaborate ruse to make me think that I am learning more than I am.  I mean, it seems like the same as my Word program, but now there are all these weird rules about brackets, which is fine but not terribly difficult or exciting.  Remember when you could Show or Hide characters in Word?  It just seems like that: <p></p>…boring.

Then it happens. 57% through the series of lessons, my mind is blown. Here is the trick that did it:

<a href="http://cnn.com">Click here for CNN</a>

OMG. So this blows my mind for two reasons:

1. It looks pretty badass. I mean, this looks like the type of elaborate code that I’ve been wanting to crack since starting this project.  Look at how cool it is, with the href and the = sign:
<a href=”….”>….</a> 
Wow. 

2. It actually takes me to CNN’s webpage.  Holy crap. I don’t think you fully understand that it takes me to the REAL LIFE CNN WEBSITE.  For those of you who don’t know, since the beginning of my Internet experience, CNN has been the go-to way I have checked to make sure that the Internet works.  Is my Internet connection not working or is it that particular site that’s not loading?  Go to CNN.com.  Have I successfully fixed my Internet connection issue? Go to CNN.com. So when I created an actual link that worked and a little mini-CNN website appeared in the tiny viewing box, I pretty much freaked out.  Sh*% got real.  

(Note, your Internet is working fine, but this is not a working link. I am not that cool yet.)

Since CNN.com is my fundamental definition of “the Internet,” this bit of code mastery clearly means that I am queen of the Internet.  

This is a very tacky image I pulled from the Internet.  
However, it has the exact phrase I was looking for all spelled out: "Internet Queen."
I could do without the flashing plant though. And the weird little face in the Q.  
Maybe someday I'll learn how to turn those parts off...