My Girl Friend

Today is Valentines day and I want to talk about a person that has always been with me, my computer.

Just by reading the line above you maybe thinking I am a Nerd. This is more a fact than a truth. Computers have been around in my life since I was 5 years old, and I love them. Ask me if I would rather have a super computer vs a Ferrari, and I would always pick the super computer.

It wasn’t till I started making my own money did I start building my computer. Contrary to popular belief building your own computer is extremely easy these days. You can think of it like high tech Lego that is super expensive. Quality components these days can handle a fall or something being dropped on them, very easily.

Building computers for guys like me, is basically how it is for gear heads and their cars. I originally started with an okay computer (i5 & GTX 1070) and moved on to do more … a lot more. I finished my latest upgrade yesterday I got a new case, mother board, and water cooler that will allow me to over clock. Its some thing new that I want to get into 🙂

As it stands here are my specs:

CPU: i7 – 7700k – Corsair – H115i water cooler

GPU: GTX 1080 Ti – Asetek – Custom water cooler

Mother Board: ATX – Z270 GAMING PRO CARBON

Hard Drives: – 1 X 256GB SSD / 1 X 1TB HHD / 1 X 3TB HHD

This is the best of the best as of late, this is what I wanted since I was 12 🙂

MVC made easy

When I was first learning MVC I don’t have much to any experience programming for the web. I didn’t even now what the request response cycle was. The most programming experience I have ever had was printing interesting patterns using Java.

At the end of the day MVC is much more of an idea about how and why we should structure a program. For example when we write a web site that has your basic CRUD operations, you don’t want everything living in a single file that requires you to use the find functions to find your method.

So start separating out functionality, and at a very basic level we get a Model, View, and Controller. There for each of these things do something very specific. Most applications at a basic level usually involve:

  • Displaying data
  • Working with data
  • Navigation

The MVC design pattern helps you do those things, in a effect organized way. The direct translation would be:

  • Displaying data -> View : Think -> React, Angular, EJS
  • Working with data -> Model : Think -> Plain old classes (ORMs)
  • Navigation -> Controller : Think -> Express.js, Spring, Django

And there you have it, the MVC pattern explained. Now these direct translation might not be true for every framework out there, but for the most part they are true. You can this design pattern applied in almost every app frame work, form Metoer.js to ASP.Net MVC.

Note ORMs aren’t covered in this post, they require their own post to properly explain.

Hope that helped you guys understand.

Why I don’t like Python

Yes I know that statement above is pretty much unheard of. Before I explain, let me give you some background.

So as we all know there is no such thing as the “best” language, i.e the language that you should use for everything. Each language has its own uses in its own specific problem domain. Since each language has its own unique strengths, weakness, and paradigms that it caters to, like Java with OOP or Scala with functional programming.

For example if you want to write fast, highly efficient code that can run on embedded systems like those found in a CAN-Bus hub, you should use C, C++, or assembly. Where as if you wanted to write super interactive web applications you should use some form of Java Script, or something that ends up compiling to Java Script.

However in this day and age, almost every single widely used programming language is multi paradigm and can compile to something that can run on multiple platforms.

So the question is “With so much selection, why use Python ?”.

Python is a language that is almost universally loved by small children, to Google engineers. One of the main reasons for it adoption and wide use is that it’s syntax looks like pseudo code. Which is a great thing, since it lets you tell a machine what to do in a almost human like language. Thus the difference between what you want the computer to do, and what you have to write in order for the computer to do it, becomes minimal.

My biggest problem with Python is that it forces you to write code in a certain way. The pythonic way aka the thoughtful, zen like way, stressing “less is more” and “clean code is good code”. This way of programming does not suit us all. Some of us are cowboys or cowgirls, we shoot first and think later. Us cowboys and cowgirls like to really experiment with what works and what does not work, we really like to tinker with our code till we get it right.

Other languages don’t really care, they know that they are. They are simply a means to an end. You can be that gun-sling cowboy or cowgirl that codes before even having a good idea about what he or she has to do. You can get into a stack-overflow frenzy of copy pasting code, ripping out what works and what doesn’t. And you eventually end up with something that works. You may ask “can’t you do that with python too ?” well kinda… see python does not have the greatest piece of programming syntax ever. It doesn’t have the “}” . So if you trying to be that cowboy or cowgirl you will end up with parsing errors galore or end up have to re-indent all of your code, just to get it to run.

Honestly I think python would end up being the greatest programming language ever, if it just had curly braces 😦