-->

Monday, March 23, 2015

The First Graphics Card

I like many people, would think installing a graphics card would be difficult.

Lets clear away some misconceptions I had about graphics cards that I learned from buying one.

  1. Yes, you really need a card to play games
    • Many of the features list on a PC like buzzwords to make their PC sound more powerful than it really it. Take my case: My computer featured a stellar HD Radeon 4200 integrated graphics!

      "Oh," I thought. "I bet it can play games better than my old lappy.!"

      But all integrated graphics means its that the motherboard itself does graphical work for stuff like playing a movie or web browsing. To play the video games of a console, a part akin to a console is necessary.
  2. Graphics "card" is a bit of a misnomor
    • With computing getting smaller and smaller these days, I never understood why they say you can't upgrade the cards on a laptop. I didn't understood what a graphics card looked like, but when I think "card" I think something that fits in my wallet.

      Boy oh boy was I surprised when my first card showed up.

      [pic of box] [pic of card]

      You see, when one thinks of a graphics card, one should properly visualize something more akin to say...a license plate. That is why for Home Theater Purposes, PCs will always be what you need, even as mobile computing becomes more and more convenient for regular needs and business work.
  3. Hooking up a graphics card is no real different than hooking up a VCR
    • Remember that very first awkward, terrifying moment when you had to hook up a TV or a VCR for the very first time? How you thought "What if I mess something up?!"

      When it comes to the concept of computer upgrades, most people, which included myself, have the apprehension that opening their computer for any reason is bound to break...something! But then you discover that the cables are designed so that it's actually not possible to mess it up, as the cables are thankfully shaped in a manner where its simply a matter of Lego blocks.
  4. With great power comes the need for power
    • It was a really good deal at the time my father bought this computer. I had it appraised for the potential for upgrading from a Geek Squad associate to confirm it was scalable.

      He affirmed for me that it was indeed an excellent base to make a gaming computer at the time, and wondered how they managed to get the price so affordable.So he popped it open to appraise it. And confirmed a suspicion he had.

      They way they did so was to go cheap on the Power Supply. Or PSU. Its the job of a PSU to take Volts from a wall outlet and convert it into the Watts that an appliance needs. Without enough watts, it seems you really could break a system (fortunately, if your PSU isn't up to snuff, it normally doesn't come with enough connectors and stuff however).

      So just be prepared to check if you have enough power to go with your gizmo. Short on cash at the time, I bought an inexpensive 500 Watt Power Supply to take care of things.
  5. Surprisingly Inexpensive Options
    • At the time, I was inbetween jobs and scrapped for cash. I will never forget how I was able to find my card, which was then amongst the top twenty money could buy, at only $180. To me, someone who was working multiple part-time jobs and temp work, was so low that even I could afford it. Based on your budget, there truly are some inexpensive options out there!

      For the next two years my Sapphire would keep me happily gaming on Very High settings. Absolutely beatiful details. So it was later on, for very specific reasons I would develop later, that I would come to wish to have a new high performance system itself. As having shopped, I'd like to advocate that once you start building, beware the temptations of power lust. Gaming need note break the bank. As I would later journey into the world of building a full spectrum.


Java Beans and Serialization

A java bean encapsulates the scripting for setting and getting information from a database. You make them Serializable (aka, savable). They help you manage rows of data to update and delete as you adapt your management class to various data structures. Beans are rather simple to correct and modify.

Videos that demonstrate the concept can be shown here.

<iframe width="560" height="315" src="https://www.youtube.com/embed/eMMLaneVkjc" frameborder="0" allowfullscreen></iframe>

JavaBeans are among the prime features of frameworks such as Apache Spring or Java Database Connectivity (JDBC).  An extension of Factory Patterns, they help free developers from relying on too many class dependencies by encapsulating the code that creates objects. This greatly assists maintenance, as per the Dependency Inversion Principle.



Dependency Inversion Principle - depend on abstractions, not concrete classes.

To speak more of Serialization, the concept here is to safe the instance variables (aka the "state") of your class objects to a FileOutputStream (foo for short). Such methods are risky, so you may want to put them into a try-catch block.
If there is an instance variable you don't want saved, mark it as transient.  Among the conveniences of Serialization is that the entire object graph is Serialized. That means any object values referenced by the class is also saved.



For example, say you have a Car Class and it references classes for Engines and Wheels. What you have with these various pointers within the Car Class is a graph, and Serialize will save all this for you.



Serialization can be more convenient then other paradigms for saving information (such as a Comma Separated Value document), but Serialization is limited to Java Applications only. If such information must be cross compatible among programming languages, you wish need to use a FileWriter to save a String that contains the information you wish to save.


~Code Crunch Corner~

Udacity

Udacity has very good, colorful introduction videos to concepts that I've found to be generally hard to break into. I've only skimmed the surface thus far, but I'm very impressed by their introduction Machine learning and Big Data. Incredibly impressed in fact; its some of the best learning tutorials I've ever seen, and that's saying a lot considering my regarded experience with Coursera, New Think Tank, Head First, and CodeAcademy.

Each segment is broken into 60 second chunks on average in an delightful manner by instructors who seem happy to explain things. It invokes the feeling of being guided by your awesome, friendly teacher from the 5th grade all over again. You know, the really fun, effective Mary Poppins-like grade school teacher one who made you feel emotionally swell while intellectually improved at the same time. After each chunk you feel like you've earned a gold star, a cookie, and a short nap to relax. :D

It feels conversational as they challenge you to think about problems as you go in a Dora the Explorer type of manner. By breaking things into chunks, they really make the learning feel like a grade-school conversation.

I'm confident even a child could quickly become a coder if first introduced to via Udacity. Tied in my mind only with the Head First book series. Last but not least, they promise that when the training is complete, cake will be served!

Bonus! :D

~Code Crunch Corner~

Coursera

I like Coursera, though my recent experience with one of its courses leaves me feeling a bit mum. It offers some awesome free courses for you to review on a wide variety of topics; "on demand" courses that hold no grading pressure that you can take at your leisure from economics, to cooking classes, and of course, programming.

They also have plenty of (amazingly affordable) certifications "signature tracks" as they call it as premium content; whereas for every 4 week graded course you complete, you get a "mini-certification" (from what I can best tell) called a "Verified Certificate." Collect them all for a particular track and you can declare yourself fully certified with "Specialized Certificate."

However, like all courses, once you enroll, the pacing of a signature course can move too fast for you to keep up. Luckily they have a flexible and full refund policy that's easy and executable at anytime prior to final deadlines. Alternatively you can refund for a voucher instead; redirecting the voucher to another course, or simply to retake a withdrawn course at another time.

Quizzes are graded by staff, and peer based for a final project; you must help with the evaluations or it will affect your grade. Personally I always feel slightly irritated about grading penalties, but at least late submittal by a day or so won't break you. On most things. No, where I feel most choleric is the lack of partial credit on peer evaluations. Due on Sunday at 11:59, I once did three out of the required four evaluations, and then forgot about it until Monday at 2:00 am. Being a hard deadline, my saved peer evaluation work was apparently blocked off and wouldn't count at all, lowering my overall grade by 20%. Luckily, I was still able to receive a certificate, but the frustration of possibly needing to retake a course over this issue greatly bothered me all the same.

I also found the webcam requirement to be plagued with technical "iffy-ness" and unreliable for my desktop PC. It doesn't seem to register all makes and models perfectly, yet they require that you take a picture prior to every submission of your work.

Nonetheless, I still like Coursera and value it as a resource. Overall given that the courses are hosted by different universities and staff, the true quality of a course appears to be dependent on the instructor who is teaching it. I'll continue to dive further into Coursera based on specific impressions of specific courses that I take. But again, I can definitely endorse Coursera overall.

~Code Crunch Corner~