-->

Friday, November 7, 2014

Chronicles of a New PC Parts Shopper - Experiences from a Newb


Hello again bloggers! Excuse the lack of updates, but this author has so many insights into the world of computing that its sometimes difficult to find time to bring all back here!

On that note, lets talk about something other than pure coding:

Hardware.

Yes we're talking about how to build your own computer.

For yours truly it was simple enough. As a gaming enthusiast, one of my favorites is the Elder Scrolls V: Skyrim. Not for the gameplay itself mind you, but for the ability to create your own spin on it via its excellent mod community. And let me tell you, such a hobby will teach you a thing or two about testing discipline, watching out for inter-dependencies, and having a clear plan and backlog to discipline yourself with; a crucial aspect of system design once one graduates to the level of incorporating formal patterns and engineering concepts into their software.

But I've never been much of a hardware kind of guy; I learned how to install a graphics card two years ago and that was it. Yet the need to continuously test eventually won me over into doing my research into the matter.  My, the things I have learned!

Where to begin this chronicle? Perhaps by dividing things into chunks first, and working on it from there.

In between so I hope to eventually share what I've been learning about advanced code concepts, ultimately reaching the point where I may present videos on a variety of different topics. Maybe. But for now, lets begin with the Chronicles of a PC Parts Shopper.

Chronicles of a PC Parts Shopper

Where I Was With My Computing - 2011
  • How I'd gotten my computers in the past. Laptops and what not; my dad's Pavillion, etc.

The First Graphics Card - WOW
  • How my Sapphite first blew me away and took me to the land of PC Gaming
  • How installation was no different than hooking up a TV.
  • How even a grocery store cashier could afford it.
  • Dual Monitoring = More Productivity

Research Sites Best Found
  • PassMark -
  • Game Debate - http://www.game-debate.com/hardware/index.php?list=gfxDesktop
  • Amazon.com Shopping
  • Include tips on bookmarking this stuff.
The 2013 Need to Expand
  • Computer too slow for my needs
  • Games like Battlefield and Just Cause, and software like eclispe
  • Afraid to too computer off wastes electricity
  • Tweaking big pieces of software needs speed; this includes browsers and whatnot.

The Second Graphics Card - Meh
  • My first experiences with "Bottlenecks" 
  • Before 770 (Just Cause and Battlefield): 30 FPS on medium high. After: 40 on only slightly higher settings 
  • Need new processor, and for that, you need a new CPU.
  • Odd colors on HDMI
Attitudes to Take in CPU Shopping
  • Overview: What I'd do over: The order of the parts I bought. 
  • How snatching the first good deal on a decent motherboard I could fine limited my choices
Start With Core Part First: Video Card and PSU
  • Need MORE power or...you no can plug in. Best to overshoot.
  • Differences discovered between AMD and NVidia. 
    • AMD = Price Efficient. NVidia = Power Mad
  • The hard choice between 2 GB and 4 GB 770s ~ How everyone pushed me on more speed...and why I'd learn that actually, video ram DOES matter.
  • Let the old cards sit somewhere...or maybe sell?
Next, CASE: the foundation.
  • How I discovered that mid-tower =/= medium.
  • Pizza Box, Shoe Box, Desktop, Towers.
  • How Towers are WAY more convenient for customizing stuff.
Frivolous stuff next: RAM, HDD, SSD, or SSHD [add links for comparison vids]
  • Good news everyone; they discovered how to make Hard Drives FASTER. 
  • External Storage and...cloud?
  • Who needs more than 8 gigs?
    •  People like me who like to open way too many tabs WHILE downloading something WHILE being alt+tabbed out on a game, WHILE copying/installing stuff, WHILE dual monitoring some HDMIs.
  • Some things I thought I'd need but didn't: Turns out you DON'T need to buy an Ethernet port, that's built in. As is a wireless networking card?
NOW buy the motherboard and CPU TOGETHER
  • Start with the CPU first.
    •  What are slots? 
      • The reason I have to go 3770k instead of 4770k apparently
      • So get CPU First, then its motherboard
Finally, Operating System
  • Windows 8.1 Supposedly Faster?
Growing a PC is like Growing a Plant, or a Slow Cooked Meal. Or a Pregnancy. Or something. Enjoy the Journey. Take Pictures.

~Code Crunch Corner~

Thought Experiments for the Layman II: What is a Human?

::continued from this post, where we are having a hypothetical conversation with a non-programmer named Jessica::

"Describe yourself."

"I'm currently in college studying..."

"Too specific. Lets say were a programmer trying to create a hyper-realistic virtual copy of you. Can you be a little more vague in describing your attributes?"

"Oh. Um, lets see, I'm a girl. 25 years old. Um, American. Brown eyes?"

"This is a step in the right direction. You're still being too specific however. Would you like to know how I would first describe myself to this magical matrix computer of ours?"

"How?"

"David Morris, is a lifeform."

"Huh?"

"Would you like me to be more specific?"

"Yeah, sure."

"David Morris, is a lifeform that happens to be a mammal."

"Well, duh, right?"

"David Morris is a lifeform that happens to be a mammal that happens to be a hominid that happens to be human. Are you starting to see a pattern here?"

"Oh I'm starting to get it now."

"In programming, starting with the details is a trap. The key is to be as deliberately vague."

"I think I kinda getting it?"

"For example, did you know that you share 92% of your genetic code with a mouse?"

"I do?!"

"Yeah, turns out that the code for 'This is the basic gist of how a blood cell works' is the same? You have code that tells you to breath oxygen and grow five fingers? Gasp, a chimp has the very same code in their DNA too! What a coincidence. You must be cousins!"

"Ha ha. Yeah right. I definitely see what your saying."  :)

"Exactly. First you tell the computer: This is a concept for a Lifeform. Here is code for ALL things Lifeforms share, no matter what. Load that in. This is a Mammal. Here is the code for ALL things Mammals share, no matter what. Load that in. This is a Hominid. Here is the code blah blah. Stack that on top of everything else. Etc."

"Oh I see!"

"Right. You're extending layers upon layers of instructions on top of each other, until you get to the final result of the thing you want.  You save the final descriptive stuff, like height and hair color, until the very end. Get it?"

"That makes sense!"

"Now if we want to add puppies to our super simulator, guess what? More than half the work is already done!"

"Woah! You're right. That would be convenient! Because we already told it what mammals are, so the basic idea that is should, I don't know, have a stomach to rub is already done!" :)

"Now you're getting it! This is the power of inheritance and encapsulation! Of being deliberately vague and ABSTRACT!"

"Cool!"

"So, describe yourself now."

"I am a Lifeform that happens to be a Mammal that happens to be a Human. Brown hair, brown eyes. Girl. 25 years old."

"Much better. Though it begs the question..."

"What?"

"Does you're being a girl really have to do with your DNA? Last I checked, I have testosterone, and so do you. And our brains and bodies both react to them the same. You have estrogen. So do I. And the code for how we react to them is exactly the same."

"Hmm."

"The only difference is in the amount of the stuff we get. Men have x50 times more testosterone methinks. While women have x20 more estrogen. Yet how a Human should react to them is the same."

"Hmm. Right. Gender is about our chromosomes right?"

"Precisely. The very last one. Here, you'd define, or encapsulate how a human should modify its production levels with what's known as an interface that a specific human instance to...equip you could say."

"Hmm?"

"So, when we tell the computer to make a version of you, we'd tell it something along the lines of Jessica = new Human (with brown eyes, hair, etc).

"Ok."

"For myself however, we'd have David = new Human (with blah blah details) and implements MaleGender behavior. We defined earlier a Gender interface, and all it does is 'modify the testosterone code (already present in all humans) so that its boosted by whatever percent."

"Oh, I think I see."

"So this is what Object Oriented Programming is all about. Does this help illustrate the mindset?"

"I think so. Thanks!"

~Code Crunch Corner~

Thought Experiments for the Layman I: Procedural Programming

When explaining object oriented programming to a layman, there's a thought experiment that I generally put them through. Say I'm talking to a hypothetical non-coder and she wonders what OOP is. The conversation would go something like this :

"What is object oriented programming?"

"Well Jessica, I'm glad you asked. Object oriented programming its a highly convenient mindset of coding techniques that enables you to avoid the dreaded inconvenience of procedural programming."

"Huh? Procedural programming?"

"You know how in comedies, they might introduce a zany engineering character with his ability to build a Rube Goldberg Machine. An over-engineered, hyper complicated, step by step chain-reaction contraptions to do a simple task?"


"Oh yeah."

"That's procedural programming in a nutshell. As  you can imagine, all kinds of things can go wrong. And debugging such a system would be a nightmare!"

"I see. So what's object oriented programming?"

"Alright, to get the concept of object oriented programming, lets do a little thought experiment. Describe yourself."

::continued::