<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jonathan Reeves</title>
    <description>The latest articles on DEV Community by Jonathan Reeves (@redhoodjt1988).</description>
    <link>https://dev.to/redhoodjt1988</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F254902%2F53a72878-99fe-4e10-8539-dcf7f4826ad1.jpeg</url>
      <title>DEV Community: Jonathan Reeves</title>
      <link>https://dev.to/redhoodjt1988</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/redhoodjt1988"/>
    <language>en</language>
    <item>
      <title>Go on Node, I am all about Go(Golang)</title>
      <dc:creator>Jonathan Reeves</dc:creator>
      <pubDate>Fri, 30 Sep 2022 23:24:08 +0000</pubDate>
      <link>https://dev.to/redhoodjt1988/go-on-node-i-am-all-about-gogolang-3ikl</link>
      <guid>https://dev.to/redhoodjt1988/go-on-node-i-am-all-about-gogolang-3ikl</guid>
      <description>&lt;h2&gt;
  
  
  What is Go?
&lt;/h2&gt;

&lt;p&gt;Go is a statically typed programming language created by three Google engineers, Rob Pike, Robert Griesmer and Ken Thompson in 2007. They were frustrated with compile times of C++ on the project they were working for and sat down together to develop a language that would help them solve their issue. They ended up creating Go. Go is also commonly known as Golang due to the original website used for the language in 2009 when the language became an open-source technology. The features of Go are the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Built in concurrency&lt;/li&gt;
&lt;li&gt;Static Type System&lt;/li&gt;
&lt;li&gt;Garbage Collected&lt;/li&gt;
&lt;li&gt;Functional paradigm&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are a few others but I just wanted to give some examples to show what the language offers. You can visit the official website here. Go comes with a standard library that, like Python, is considered a batteries included approach. There is almost nothing you can't do with the standard library. This includes building out websites. Now that's not to say that Go doesn't support packages or libraries as it does, but most of your development with Go will be using the built-in libraries or packages in the standard library vs trying to find the right package or library to download and use in your project. &lt;/p&gt;

&lt;h2&gt;
  
  
  What Type of Content Can You Use Go For?
&lt;/h2&gt;

&lt;p&gt;Go is a systems level language. Very much like C/C++ or Rust. The types of applications you can build with Go are similar to those apps you can build with the other languages. But where Go really shines is the distributed system and orchestration space, as well as networking. Below is a list of apps that are built with Go. &lt;/p&gt;

&lt;h2&gt;
  
  
  Docker
&lt;/h2&gt;

&lt;p&gt;For those of you that aren't aware of Docker, Docker is an operating system (or runtime) for containers. The Docker Engine is installed on each server you want to run containers on and provides a simple set of commands you can use to build, start, or stop containers. This application was built in Go. If you are a developer and you haven't had the opportunity to use or learn about Docker I highly recommend looking into it. To give a good example of something that you can use Docker for: I currently use Docker on my mac and Windows computers to run an image of Mongo on each computer. I can be on the go with my mac and be developing while out and about at a coffee shop or visiting family for the weekend and when I am finished I can save that database and push the image up to Docker Hub which is essentially GitHub for Docker Images. Then once I get home I can hop on my Windows computer and pull down the image and continue using and working with the database as though I had done all the work on this machine and not on the mac. Docker is great for creating services for a microservice application as each service can essentially be it's own Docker container and pushed up as it's own image to the server. The website for &lt;a href="https://www.docker.com/"&gt;Docker&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Kubernetes
&lt;/h2&gt;

&lt;p&gt;Kubernetes is an orchestration tool that allows the ability to manage all of your Docker containers in a central location. &lt;br&gt;
The official page of Kubernetes defines it like so: Kubernetes is a portable, extensible, open source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available. &lt;br&gt;
Kubernetes is also built in Go. Now if you are unfamiliar with the two tools Kubernetes and Docker then that's ok. They are mainly used by DevOps engineers to help manage and maintain apps created by developers. DevOps engineers use these tools to make sure that the apps they contain and orchestrate are working correctly. There is one more tool that DevOps Engineers use quite a bit recently and that is Terraform. The official site for &lt;a href="https://kubernetes.io/"&gt;Kubernetes&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Terraform
&lt;/h2&gt;

&lt;p&gt;Terraform is an open-source, infrastructure-as-code software tool. It was created by Hashicorp and was also written in Go. Users define and provide data center infrastructure using a declarative configuration language known as HashiCorp Configuration Language (HCL), or optionally JSON. This tool allows DevOps engineers to quickly code out the infrastructure for their applications and run the code to spin that up either on bare metal servers, cloud solutions or even virtual machines. Check out the official site for &lt;a href="https://www.terraform.io/"&gt;Terraform&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gin
&lt;/h2&gt;

&lt;p&gt;Gin is a framework written in Go. The framework supports writing fullstack code as well as backend APIs. I have started to use this framework as a replacement to Fiber which is another Go framework I will talk about in this article. Gin has features that every backend framework has, the ability to create routes and other CRUD operations easily. The framework itself is very simple to get up and running with and supports connecting to NOSQL and SQL databases. You can view the official site for &lt;a href="https://gin-gonic.com/"&gt;Gin&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fiber
&lt;/h2&gt;

&lt;p&gt;Fiber is a Go web framework built on top of Fasthttps, the fastest HTTP engine for Go. It's designed to ease things up for fast development with zero memory allocation and performance in mind. For those of you coming from Node.js with Express as your framework of choice this would be the framework I would suggest you use after learning the basics of the Go language. It has a similar structure to how you would set up a server with Express. The official website for &lt;a href="https://gofiber.io/"&gt;Fiber&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Switched?
&lt;/h2&gt;

&lt;p&gt;If you are using something like Python or JavaScript Go is able to do everything those languages can do but you will have the safety of using a compiled statically typed language similar to Java, C#, Rust etc. I prefer Go over Java for sure as I think Java can be a bit complicated at times. I have tried them all. I have been a software engineer for four years now and I have used TypeScript, JavaScript, Python, Rust, C++, C#, Java etc. Professionally I have used JavaScript/TypeScript more than the others but when I found Go something just clicked. I am loving the language and what it has to offer. If you are unhappy with the current language or languages you are using I would recommend giving Go a look. I also use Rust from time to time but I find myself going back to Go for most of my needs.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;I know that using Go or switching to Go might not be the ideal situation for everyone and that is ok. But I wanted to bring it to your attention if you haven't heard of it or you were running into weird performance issues with your current languages, you should give Go a shot. That's all for now. Please let me know in the comments if you are interested in learning more about Go. I am also going to be working on a series of posts that will document my time going through building a web application with Go. Just Go. No framework.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A Python Mobile App</title>
      <dc:creator>Jonathan Reeves</dc:creator>
      <pubDate>Mon, 07 Jun 2021 19:20:50 +0000</pubDate>
      <link>https://dev.to/redhoodjt1988/a-python-mobile-app-3no2</link>
      <guid>https://dev.to/redhoodjt1988/a-python-mobile-app-3no2</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sHgozKOV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qc2yw0a7k625c4qxjct3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sHgozKOV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qc2yw0a7k625c4qxjct3.png" alt="Human outline with the Python logo for the left and right hemispheres of the brain"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Python Mobile App&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I am writing this post to document the process I'm about to journey on while developing my app with Python and the Kivy framework. I am planning on building an app that shows a certain population of individuals in a given area. I am not going to go into the specifics of the app just yet in fear that someone is either already working on this or will beat me to it. 😁 &lt;br&gt;
These will be a series of posts documenting the process all the way through a fully functioning application. This post is just a summary of the tools and frameworks I will be using along the way.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;em&gt;Python&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I know that I am undoubtedly hearing some of you reading this saying "Python?!! For Mobile development? But...why?!" The short answer is simple, I love Python. I love the elegance of the language as well as the libraries and modules that have been created over the years. I want to create a data visualization application and I thought what better language to do that in than Python? Python is the language of choice for most Data Scientists and since this will be a data science project I will be using Python for both logical and graphical implementations of the application. Kivy is great for creating graphics with Python. More on Kivy later. If you are following along with this series later on and decide you want to mirror this project but with another language of your choice by all means I encourage you to do so. I believe that JavaScript has some pretty good Data Visualization libraries that one could put to use but I didn't want to have the hassle of pairing one of them up with React Native. That might be a painful experience that I am not quite ready to face. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;em&gt;Kivy&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;For those of you that are unaware of the Kivy framework it is a really great framework that has popped up in recent years for handling cross platform graphical user interface(GUI) design. It is built on OpenGL which means it can handle anything from 3D games to basic forms and everything in between. The library is a little bit of a hassle to setup the first time but once you have it installed you are ready to rock. I have used it in the past where I developed a neat Self Driving Car application to play around with my Self Driving Car algorithm that I was training to learn how to drive. Using Kivy I was able to create several buttons that allowed you to clear the screen, run the app or stop the app. You were also able to draw any kind of road you could think of with a route going from the top left corner to the bottom right corner and back. Doing this would force the car on the screen to find the best path.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;em&gt;Android Studio:&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I am building this application on a Windows machine so I will be using Android Studio during the development process to handle emulating the device. I am using it because it will allow me the opportunity to test what I am building on an Android device which acts and functions just like an actual phone. If you have ever downloaded an emulator of your favorite old skool console to play on PC, in my case it would be the N64, they allow you to trick your computer into thinking that it is an actual N64 and you can then load and play some of your favorite games from that console era. Now macOS has a similar feature with Xcode called Simulator however from my experience I am not able to download anything from the App store whereas with the Android Emulator I have a fully working phone from browsing the web to installing apps through the Play store. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;em&gt;PyCharm:&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I know above I mentioned Android Studio, which is an IDE similar to PyCharm, but that is only for the emulation process. I don't plan on writing code using Android Studio. I am not for certain but I don't believe Android Studio has support for Python or the Python Interpreter so I will be using PyCharm to handle the development with Kivy. I am choosing PyCharm over something like VS Code because with PyCharm I am able to create a virtual environment very easily for my Python projects which will help the application to live and not be affected by other projects or Python updates that I may install at a later date.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;em&gt;TensorFlow 2.0 and other Data Science Libraries:&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Since this is a Data Science project after all I will be using the tools of the trade if you will. I will be using Jupyter Notebook, DataLore by JetBrains, or Google Colab for testing the datasets and handling all of the machine learning tasks which will then be implemented in the app once I have them all working properly in the sandbox environment that these tools help create. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;em&gt;PostgreSQL:&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I have decided on the PostgreSQL database. I have become a huge fan of PostgreSQL as of late but I started out using MongoDB for anything database related in my projects. PgAdmin makes working with any database easy to use and the console commands you can run from the command line are extremely helpful. I haven't heard any comments over at dev.to but I was doing some database work on my own using a MongoDB instance with Robo3t and creating and manipulating the same database using PostgreSQL and PgAdmin and I found that I was able to accomplish tasks much faster with PostgreSQL vs Mongo. Plus if I want to publish this as a website with say Django I have experience using Postgres with Django. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This is going to be a really fun project. It will be a tough project as I am not sure how readily available the datasets are that I will need in order to complete the project, however I am pretty confident that I will be able to get something working and hopefully keep it up to date for the foreseeable future. Thanks.&lt;/p&gt;

</description>
      <category>python</category>
      <category>machinelearning</category>
      <category>datascience</category>
      <category>postgres</category>
    </item>
    <item>
      <title>Love Me Some Python!</title>
      <dc:creator>Jonathan Reeves</dc:creator>
      <pubDate>Wed, 26 May 2021 15:47:35 +0000</pubDate>
      <link>https://dev.to/redhoodjt1988/love-me-some-python-3k0h</link>
      <guid>https://dev.to/redhoodjt1988/love-me-some-python-3k0h</guid>
      <description>&lt;h1&gt;
  
  
  Why Python, Now?
&lt;/h1&gt;

&lt;p&gt;Hello, for those of you that have followed my previous posts you will notice that I haven't really talked much about Python before. Python was my first language that I ever learned and when I decided to go more in the direction of web development I decided that JavaScript was going to be the language that I learned for that since it can be used on both the front and back end side of the equation. In recent months I have realized that I couldn't just abandon Python. There are so many awesome apps you can create with Python and even though you have to learn two languages in order to create the full stack application it is still worth learning and using Python as a backend language. Django and Flask both are really great tools and frameworks that allow you to quickly build out a backend for your application. Whether you want an API or just a backend Django and Flask both have you covered. Below is a simple application I wrote with Flask to better get acquainted with the framework.  &lt;/p&gt;

&lt;p&gt;This led me to a new approach. I would continue to work on Python projects outside of work tasks. I did try my hand at wrangling data from my previous employer as at the time I was writing queries and creating reports off of the data from said queries. I learned quite a bit about Data Science in that regards and the tools of the trade so to speak. I have since started to learn more about Flask and continued to use Django as one of the few non JavaScript backend frameworks. &lt;/p&gt;

&lt;h2&gt;
  
  
  Creating a Python Series
&lt;/h2&gt;

&lt;p&gt;I am posting this to let anyone that is interested know that I will be creating a series based on Python projects that I have created and am creating currently. Some will be step by step guides to getting these projects up and running and others will just be a summary of what I did and why. There will also be at the bottom of the post an explanation as to why the project was created and what it's use case was/is. &lt;/p&gt;

&lt;h2&gt;
  
  
  The First Project
&lt;/h2&gt;

&lt;p&gt;The first project that I have been working on is a simple Flask app. The app isn't an API it is just a Flask based static site that is a cool little RPG Dice roller. I created pages for all of the different dice used for table top rpg games. There are a few instances where I have created a die that doesn't necessarily exist in the form of dice but since we can use Python to randomize integers using the Range function combined with randint from the random module we can get a die roll from just about any kind of dice you can think of. This project stemmed from the need to have an easy and quick way to roll dice as the keeper for our Call of Cthulhu games. At first we only had the set of dice which was taking a while for anyone to do their roll checks. &lt;/p&gt;

&lt;p&gt;The project was a lot of fun to write. It was very simple. I have thought about converting it to an API and trying to write a frontend with React but seeing how it won't have any graphics or anything like that I didn't want to go too crazy. &lt;/p&gt;

&lt;p&gt;The project was simple enough to implement which helped me get better acquainted with Flask while also helping to solve a problem my group of friends were having with our table top games. &lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;I hope you enjoyed this post. I know that it's not the longest post and that it doesn't have any code snippets however in my next post I will show a project that I am currently working on with some code snippets. A hint of the project is a Flask API with a React Native frontend. Going to be pretty awesome. Stay tuned. And thanks for reading. If you have project ideas you would like me to tackle or questions for me please feel free to reach out in the comments below or send an email to me. &lt;a href="mailto:programmingwithjon@gmail.com"&gt;programmingwithjon@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>machinelearning</category>
      <category>deeplearning</category>
    </item>
    <item>
      <title>Making the Switch to a new Language</title>
      <dc:creator>Jonathan Reeves</dc:creator>
      <pubDate>Thu, 25 Feb 2021 02:49:11 +0000</pubDate>
      <link>https://dev.to/redhoodjt1988/making-the-switch-to-a-new-language-30jk</link>
      <guid>https://dev.to/redhoodjt1988/making-the-switch-to-a-new-language-30jk</guid>
      <description>&lt;h1&gt;
  
  
  But Why?!!
&lt;/h1&gt;

&lt;p&gt;I know some of you out there are thinking why is this person moving from the beloved TypeScript and React to the dreaded and devilish C# platform. I get that C# and .NET have a lot...baggage I guess you could say. For those of you that are C# and .NET(dotnet) devs that are thinking "Well duh, the answer is because C# is an Enterprise level language." That is most definitely not the reason. TypeScript in my opinion and how I have been using the past three years has been just as much an enterprise level language as Java and C#. The reason is simple. Games.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why I Got Into Programming
&lt;/h1&gt;

&lt;p&gt;A few years back, and when I say a few years I mean 6. Yeah that's right in 2015 (6 years ago) I started the adventure of a lifetime. I decided I was going to become a video game developer. I loved playing games. I had a huge amount of things that I wish I could have added to just about every game I was playing at the time how I would make this change or add this feature to better a game. But the one thing I didn't have was the knowledge or know how in order to get the job done. &lt;/p&gt;

&lt;p&gt;I probably did what a lot of people in my shoes did and found the Unreal Engine and realized that they had just released UE 4 and you could start using it for free to learn how to build your own games using their engine. This was a dream come true. I had played several great looking games that ran on the Unreal Engine. Batman Arkham XYZ comes to mind as all of those are built using Unreal Engine. It was set. I was going to learn Unreal Engine. I had been in IT for a little bit at the time. I knew some network scripting and how to build a computer from scratch and all of that. How hard could it be. Plus I really wanted to do it. Like more than anything else in the world I wanted to become a game developer. &lt;/p&gt;

&lt;p&gt;I bought a course on Udemy that was going to teach me how to create a few project games in UE4 and it was going to be great. By the way this was before the blueprint feature that you can use now in UE4. At this point you had to do everything from scratch using a programming language called C++. Uh oh. What is this C++?&lt;/p&gt;

&lt;h1&gt;
  
  
  Unreal Engine, more like No Way In Hell Engine
&lt;/h1&gt;

&lt;p&gt;I started down the road of this getting everything installed locally for development and was super excited. Had a nice computer and Visual Studio 2015 installed and ready to go. Got to the first video on C++ and immediately my head went WTF?! What is he talking about? I need to call this an int and open use something like a half ass smile with two eyes? What? ::&amp;gt;&amp;gt;? Huh? Then I started researching. Is C++ a good language to start with? Should I learn C++ as my first language? The answer to these questions from most developers was no. This is a great language. It's fast, handles all of your needs and then some. Makes really great game scripts. Etc. But the number one thing that every post and answer from friends and colleagues all said was it was hard and difficult to master without learning an easier language like Python. &lt;/p&gt;

&lt;h1&gt;
  
  
  Enter Python and Network Scripting
&lt;/h1&gt;

&lt;p&gt;I started to look more into Python since I was a junior Network Admin and was needing to learn how to automate several scripts for our network. I was able to pick up Python with ease. Had a blast with it. Even built a few games using the game engine PyGame. I actually teach a course on Udemy for beginners with Python who want to learn how to code by building games with Python. But I am not going into the details of that course here. But I still wasn't happy. I wasn't building actual things with Python just scripts that more than half of them weren't even being used. Really started to urk me the wrong way. So I tried it again.&lt;/p&gt;

&lt;h1&gt;
  
  
  Back to Unreal Engine
&lt;/h1&gt;

&lt;p&gt;I decided I had a few years of Python going for me now. Built a few games and a website or two. Let's see if I can figure out what this C++ language is and how I can create really awesome looking games with UE4. I was able to get into the language and understand it's idiosyncrasies. It's god awful syntax as well. I realized I didn't quite care for this language and how it looked. It wasn't that it was hard to understand now. No it was that the language itself was just butt ugly compared to the elegance that was Python. Python was a great looking language that forced you to do things its way and made you a bit better coder for it. But C++ and I were not going to get along with it's ugliness in play. So I again moved on.&lt;/p&gt;

&lt;h1&gt;
  
  
  Enter JavaScript, Node, React and TypeScript
&lt;/h1&gt;

&lt;p&gt;I decided I was going to go into web development because the websites I had created with Python were pretty fun. I was researching new ways to build websites and came across JavaScript with React and Redux. Ok sounds pretty promising. I could even use Django and Python to do the server side code. Great. Let's look into this. I took a few classes here and there and decided that I liked JavaScript's syntax. It wasn't too bad looking. I could build both the front end and back end with the same code thanks to Node. That was awesome. Then I landed my first job as a developer and we decided midway through a project that we were going to switch to this up-and-coming language called TypeScript.&lt;/p&gt;

&lt;h1&gt;
  
  
  TypeScript Love
&lt;/h1&gt;

&lt;p&gt;Man did TypeScript and I hit it off. I really liked that it added what I had to do in C++ for UE4. Strongly typed variables. Things were starting to look pretty awesome. Started working on all kinds of projects for work and even ones outside of work. Really wanted to get better at TypeScript and building out applications. I started using it more and more. I incorporated TypeScript into all of my React projects. Started using it with GraphQL and Node as well. It was awesome. Then I decided to go back to games. But this time I decided to give Unity a shot. A language that was created by the same creator of TypeScript Anders Helsberg, helped to create C# and came back to Microsoft to help develop TypeScript as well. &lt;/p&gt;

&lt;h1&gt;
  
  
  Unity for the Win
&lt;/h1&gt;

&lt;p&gt;Well Unity turned out to be a great game engine. C# is a great language to code in and look at. My time with TypeScript helped me grasp the concepts of C# way easier. And I even found out that I can use C# for more than just games. I can use .NET Core for cross platform applications and websites. And I can use Xamarin for mobile apps which is awesome because I was a heavy user of React Native for a long time as well. I am currently still a TypeScript developer by profession. But I am working on my own game in my off hours and weekend. I will definitely update the community on my game when I have more of it to reveal.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;This post wasn't a tutorial post. It wasn't meant to say C# or .NET is better than TypeScript, JavaScript, C++, Java etc. It was a quick summary of what I went through to get to where I am now and how sticking with my goal to become a game developer lead me to using several languages and learning several languages and their frameworks in order to find the language that is best suited for me. If you are struggling with a language but know deep down that you want to do this. That is ok. The language that was first shown to you doesn't have to be the language that you end up using all the time. There are plenty of them out there. Pick the one that will get you closest to your goal. The one that will help you understand the basics that every programming language has and that you need to know in order to better learn the one that you need or want to use. I promise you it will make your life easier. Could I have learned C++ and been a game developer years ago? Of course but I wasn't grasping the concept and syntax of the language. Once I moved to Python it was much easier to grasp the concept of a variable or if, elif, else statements. I hope you enjoyed this post and for those of you that are interested in the game I am building by all means please reach out to me in the comments and I will let you know when I have some updates. Until then happy coding.&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>csharp</category>
      <category>dotnet</category>
      <category>react</category>
    </item>
    <item>
      <title>New to Rust</title>
      <dc:creator>Jonathan Reeves</dc:creator>
      <pubDate>Wed, 06 Jan 2021 19:38:11 +0000</pubDate>
      <link>https://dev.to/redhoodjt1988/new-to-rust-12pj</link>
      <guid>https://dev.to/redhoodjt1988/new-to-rust-12pj</guid>
      <description>&lt;h1&gt;
  
  
  Hello
&lt;/h1&gt;

&lt;p&gt;I am new to the Rust language and was hoping that, by posting here, I would be able to get some tips on some of the best ways to learn the language. I have been using JavaScript/TypeScript for almost 5 years now and Python for about 7. I have been wanting to learn C++ for game design but I keep seeing Rust beating it out in the sense that it is a bit easier to learn and can sometimes be more performant. I am looking for any project recommendations, tutorial videos, courses, blog posts or books to learn the language. &lt;/p&gt;

&lt;h1&gt;
  
  
  Loving It So Far
&lt;/h1&gt;

&lt;p&gt;From what I have gone through on the rust-lang.org website as well as The Rust Programming Language book I am really enjoying the language and what it has to offer. I know that "The Book" has some fun little projects that you get to build to see the ins and outs of the language and put the basics together but I am wanting to learn how to use Rust for backend development as well as possibly for game design.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Thank you to anyone that responds to this post and helps out. For those of you that are looking forward to my Udemy course on Angular and Nestjs I took a little break over the holidays from writing out the material but should be back to recording soon and will have the course ready hopefully by early to mid March. &lt;/p&gt;

</description>
      <category>rust</category>
    </item>
    <item>
      <title>Fullstack Angular with NestJS Update</title>
      <dc:creator>Jonathan Reeves</dc:creator>
      <pubDate>Tue, 08 Dec 2020 20:24:39 +0000</pubDate>
      <link>https://dev.to/redhoodjt1988/fullstack-angular-with-nestjs-update-2o2h</link>
      <guid>https://dev.to/redhoodjt1988/fullstack-angular-with-nestjs-update-2o2h</guid>
      <description>&lt;h1&gt;
  
  
  Previous Post
&lt;/h1&gt;

&lt;p&gt;Hello, in a previous post I mentioned a course that I am working on. I have officially completed the first two sections of the course. As of right now the layout of the course is as follows:&lt;/p&gt;

&lt;h2&gt;
  
  
  Section 1: Environment Setup
&lt;/h2&gt;

&lt;p&gt;This section, as the title says is all about getting your environment setup by installing the necessary tools and software for the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Section 2: Intro to TypeScript
&lt;/h2&gt;

&lt;p&gt;This section will introduce you to the nuances of the TypeScript language as you build a pretty cool todo list CLI application. This app shows you how to use the type system that makes TypeScript so useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Section 3: NestJS
&lt;/h2&gt;

&lt;p&gt;This section will see the start of the backend development for our e-commerce application. We will use the CLI that comes with NestJS to bootstrap our application as well as generate majority of the files and structure of the application. We will also test our endpoints using Insomnia. I will have a bonus lecture for using Postman as well. I know both tools are pretty popular so I wanted to go ahead and show how to setup and use both.&lt;/p&gt;

&lt;h2&gt;
  
  
  Section 4: MongoDB
&lt;/h2&gt;

&lt;p&gt;This section will see the introduction of MongoDB. We will use the services that we set up in the beginning to create a test MongoDB to make sure that everything is running properly. Starting with the mongo shell we will create a test database then from there we will populate that database and then open our GUI tool (Studio 3T) to view the documents we created for the database before we create our project database. The purpose of this section is to better familiarize yourself with MongoDB as well as the mongo shell for quickly accessing mongo for testing your database without needing to open any GUI &lt;/p&gt;

&lt;h2&gt;
  
  
  Section 5: Angular
&lt;/h2&gt;

&lt;p&gt;This is the section I am sure a lot of people will be looking forward to. This is where we will be building our frontend portion of the application. It will be a lot of fun hooking into our database and making the calls to our backend. At the end of this section we will have a fully functioning app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Section 6: Deployment
&lt;/h2&gt;

&lt;p&gt;In this section we will begin the deployment phase of your application. I have decided to wait until the end to do deployment but, if you know what you are doing or have a particular place you like to deploy websites and apps to that differ from the one I choose then feel free to deploy in between each section. &lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;That's it for the course. If anyone has any suggestions or questions please feel free to reach out. The course is going to take a little while to finish. I had some things going on previously which is why this post took a little while to write but the course should be back to recording shortly and I am hoping to have it finished soon. As always happy coding. &lt;/p&gt;

</description>
      <category>typescript</category>
      <category>javascript</category>
      <category>angular</category>
    </item>
    <item>
      <title>How to setup Development Environment on new Macbook Pro M1</title>
      <dc:creator>Jonathan Reeves</dc:creator>
      <pubDate>Fri, 04 Dec 2020 04:31:56 +0000</pubDate>
      <link>https://dev.to/redhoodjt1988/how-to-setup-development-environment-on-new-macbook-pro-m1-3kh</link>
      <guid>https://dev.to/redhoodjt1988/how-to-setup-development-environment-on-new-macbook-pro-m1-3kh</guid>
      <description>&lt;h1&gt;
  
  
  Feeling Lost
&lt;/h1&gt;

&lt;p&gt;Hello if you bought the new Macbook Pro with the M1 chip and you are struggling to setup your development environment then I hope this post finds you well. I will be walking through how to set up your environment for two languages, TypeScript and Rust. I guess technically it's more like three as in order to set up a working TypeScript environment you have to have a working JavaScript environment but eh. Without further ado let's get started.&lt;/p&gt;

&lt;h1&gt;
  
  
  Installing Homebrew
&lt;/h1&gt;

&lt;p&gt;Now Homebrew doesn't install as cleanly as you would like it to if you are coming from an Intel based mac. For this issue the recommended approach is to install Rosetta 2. Rosetta 2, for those of you not familiar with Rosetta is an emulation software that allows the use of Intel based apps to run "natively" on the M1 chip. This is the recommended way of running the apps you are used to. At least for now. If you are like me and didn't experience the first edition of Rosetta back on Tiger then you might be in a good spot as I have yet to have any issues with it running what I need. So with that let's open up our terminal, in my case I am using iTerm2 and will be modifying my ~/.zshrc file if you are using bash then I am assuming you are familiar with configuring your respective .rc file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$/&lt;/span&gt;usr/sbin/softwareupdate &lt;span class="nt"&gt;--install-rosetta&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or if you don't want to install Rosetta 2 via an interactive prompt then you can run this command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$/&lt;/span&gt;usr/sbin/softwareupdate &lt;span class="nt"&gt;--install-rosetta&lt;/span&gt; &lt;span class="nt"&gt;--agree-to-license&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No matter which option you went with you will now be able to install and run Intel based apps such as Homebrew, which at the time of writing is still in its development stage and working out some kinks. &lt;/p&gt;

&lt;h1&gt;
  
  
  Installing Homebrew
&lt;/h1&gt;

&lt;p&gt;Now that we have Rosetta 2 installed and ready to go we can start using Rosetta to install some programs such as Homebrew.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$arch&lt;/span&gt; &lt;span class="nt"&gt;-x86_64&lt;/span&gt; /bin/bash &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/Homebrew/install/master/install.sh&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="nv"&gt;$arch&lt;/span&gt; &lt;span class="nt"&gt;-x86_64&lt;/span&gt; brew update
&lt;span class="nv"&gt;$arch&lt;/span&gt; &lt;span class="nt"&gt;-x86_64&lt;/span&gt; brew search node
&lt;span class="nv"&gt;$arch&lt;/span&gt; &lt;span class="nt"&gt;-x86_64&lt;/span&gt; brew &lt;span class="nb"&gt;install &lt;/span&gt;node@14 &lt;span class="c"&gt;# please feel free to choose whichever version of node you want to use. I just did 14 as it is the LTS version at the time of writing.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With those commands finished we have now installed both Homebrew as well as node. Pretty awesome right? &lt;/p&gt;

&lt;h1&gt;
  
  
  Install Rust
&lt;/h1&gt;

&lt;p&gt;Now the next thing we are going to install will be the Xcode cli tools. In order to this we are going to type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$xcode&lt;/span&gt;&lt;span class="nt"&gt;-select&lt;/span&gt; &lt;span class="nt"&gt;--install&lt;/span&gt;
&lt;span class="c"&gt;# This is going to bypass the need for installing the whole&lt;/span&gt;
&lt;span class="c"&gt;# Xcode application though I do recommend installing it when&lt;/span&gt;
&lt;span class="c"&gt;# you can&lt;/span&gt;
&lt;span class="nv"&gt;$arch&lt;/span&gt; &lt;span class="nt"&gt;-x86_64&lt;/span&gt; curl &lt;span class="nt"&gt;--proto&lt;/span&gt; &lt;span class="s1"&gt;'=https'&lt;/span&gt; &lt;span class="nt"&gt;--tlsv1&lt;/span&gt;.2 &lt;span class="nt"&gt;-sSf&lt;/span&gt; https://sh.rustup.rs | sh
&lt;span class="nv"&gt;$source&lt;/span&gt; &lt;span class="nv"&gt;$HOME&lt;/span&gt;/.cargo/env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Alright with that we now have Rust installed and we can test that out now. With that last line there you are adding the cargo command globally so you don't have to type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$arch&lt;/span&gt; &lt;span class="nt"&gt;-86_64&lt;/span&gt; cargo name of &lt;span class="nb"&gt;command&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Testing TypeScript, Node and NPM
&lt;/h1&gt;

&lt;p&gt;Now that we have all of our tools installed we are going to test that each one of them is working correctly. Earlier you may have noticed that I had you install the XCode CLI tools. I ran into an issue when trying to use cargo to run my projects and realized that I needed to install the CLI. If you are receiving an error that looks similar to this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;xcrun: error: invalid active developer path &lt;span class="o"&gt;(&lt;/span&gt;/Library/Developer/CommandLineTools&lt;span class="o"&gt;)&lt;/span&gt;,
missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You will also get that error message if you are trying to run common commands for git such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$git&lt;/span&gt; clone &amp;lt;name of repo&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The fix for that is to install the xcode cli tools from earlier. Moving on, now we are going to try using NPM&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$npm&lt;/span&gt; &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; typescript
&lt;span class="nv"&gt;$cd&lt;/span&gt; ~ &lt;span class="c"&gt;# this will take us to the home directory&lt;/span&gt;
&lt;span class="nv"&gt;$mkdir&lt;/span&gt; Development &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd &lt;/span&gt;Development &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;mkdir &lt;/span&gt;ts-playground
&lt;span class="nv"&gt;$npm&lt;/span&gt; init &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;span class="nv"&gt;$mkdir&lt;/span&gt; src &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd &lt;/span&gt;src &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;touch &lt;/span&gt;index.ts
&lt;span class="nv"&gt;$cd&lt;/span&gt; ..
&lt;span class="nv"&gt;$touch&lt;/span&gt; tsconfig.json
&lt;span class="nv"&gt;$npm&lt;/span&gt; &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--save-dev&lt;/span&gt; typescript tslint @type/node
&lt;span class="nv"&gt;$touch&lt;/span&gt; tslint.json
&lt;span class="nv"&gt;$code&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="c"&gt;# If you are using another editor please open the&lt;/span&gt;
        &lt;span class="c"&gt;# the directory in your favorite editor instead&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above command just globally installed TypeScript, created a new directory named Development in our home directory and inside of Development we created a new directory called ts-playground to store our test files that we created. Inside of our editor we will modify these files like so:&lt;br&gt;
index.ts&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Your name here&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Hello &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;);
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;tsconfig.json&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"compilerOptions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"lib"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"es2015"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"module"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"CommonJS"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"outDir"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"dist"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"sourceMap"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"strict"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"target"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"es2015"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"include"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"src"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;tslint.json&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"defaultSeverity"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"error"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"extends"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"tslint:recommended"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jsRules"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"rules"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"semicolon"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"trailing-comma"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"rulesDirectory"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now that we have those files created and filled in we can test that all is working by opening our terminal, since I am using VS Code I will just open the integrated terminal and type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$tsc&lt;/span&gt;
&lt;span class="nv"&gt;$node&lt;/span&gt; dist/index.js
Hello Your name here
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once you have successfully seen the message printed to your terminal you are done with verifying that your TypeScript dev environment has been setup. Now for some Rust. &lt;/p&gt;

&lt;h1&gt;
  
  
  Cargo and Running Rust
&lt;/h1&gt;

&lt;p&gt;In our terminal we can now change back into our Development directory and create a new directory for storing our Rust code. I like to name my directories based on what I am working on so again we will name it rust-playground. Follow the commands below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# The following commands are being based on the terminal&lt;/span&gt;
&lt;span class="c"&gt;# still being opened and in the ts-playground directory&lt;/span&gt;
&lt;span class="nv"&gt;$cd&lt;/span&gt; ~ &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd &lt;/span&gt;Development &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;mkdir &lt;/span&gt;rust-playground 
&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd &lt;/span&gt;rust-playground &lt;span class="c"&gt;# This should be on one line&lt;/span&gt;
&lt;span class="nv"&gt;$cargo&lt;/span&gt; new &lt;span class="nt"&gt;--bin&lt;/span&gt; hello
&lt;span class="nv"&gt;$cd&lt;/span&gt; hello
&lt;span class="nv"&gt;$code&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we can open our main.rs file in our favorite editor and modify the file to have a more custom greeting than the boiler plate Hello world! message.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nd"&gt;prinln!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello , Your name here"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Back in our terminal or from within the integrated terminal we can run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$cargo&lt;/span&gt; run
Hello Your name here &lt;span class="c"&gt;# expected output from program&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With that we are now finished and you should have a working dev environment for both TypeScript as well as Rust.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Hope you enjoyed this tutorial and that you are now able to work with your new mac and the tools needed in order to develop awesome apps. As always see you in the next one.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>typescript</category>
      <category>rust</category>
    </item>
    <item>
      <title>Why MongoDB</title>
      <dc:creator>Jonathan Reeves</dc:creator>
      <pubDate>Thu, 15 Oct 2020 16:26:45 +0000</pubDate>
      <link>https://dev.to/redhoodjt1988/why-mongodb-3lcj</link>
      <guid>https://dev.to/redhoodjt1988/why-mongodb-3lcj</guid>
      <description>&lt;h1&gt;
  
  
  What is MongoDB?
&lt;/h1&gt;

&lt;p&gt;I am sure that most of you have heard about what MongoDB is. For those that have heard the name and thought "What is that?" MongoDB, or Mongo for short, is a document database that uses JavaScript as it's query language. So, for instance, SQL is a query language that allows you to interact with a database to retrieve data stored in tables using SQL. Well Mongo is similar to SQL in that it is a database that allows you to interact with data stored inside. The difference being that you use JavaScript to interact with the database much like you would use SQL to interact with a database in PostgreSQL. &lt;/p&gt;

&lt;h1&gt;
  
  
  Collections or Tables?
&lt;/h1&gt;

&lt;p&gt;Mongo uses what are called collections to store the data in the database. The data is stored in documents of JSON. JSON stands for JavaScript Object Notation. It looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;name:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;'Jonathan'&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Which is pretty great for us developers that need to interact with said data to display it on say a webpage or web app. Since JSON is the preferred way to send and receive data in a web app. For an even better example, a blog application may have a collection for posts, another for the users of the blog site, and quite possibly a third for say comments. If we compare a collection to a JavaScript object, it would be the top-level object, while documents are the individual objects within. It would look similar to the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;collection&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;document&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt;
    &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt;
    &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
    &lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can create a simple document in our database by using a few commands. I like to use the Mongo shell periodically when I am just trying out commands. But if you want a good GUI for managing MongoDB collections and databases I use Robo3t which you can get &lt;a href="https://robomongo.org/download"&gt;here&lt;/a&gt;. But obivously without having MongoDB installed you aren't going to be able to play around with creating and manipulating data and databases. &lt;/p&gt;

&lt;h1&gt;
  
  
  Installing MongoDB
&lt;/h1&gt;

&lt;p&gt;For those of you on macOS you can use Homebrew:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew update
brew tap mongodb/brew
brew &lt;span class="nb"&gt;install &lt;/span&gt;mongodb-community@4.2
brew services start mongodb-community
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is simply reaching out to find MongoDB and installing the community edition at version 4.2. Then after that has finished we are simply starting the MongoDB service so that it is running in the background.&lt;/p&gt;

&lt;p&gt;For those of you on Windows you will need to first download the install from &lt;a href="https://www.mongodb.com/try/download/community"&gt;MongDB Download Center&lt;/a&gt;. Once the file has downloaded, run the installer and follow the prompts. Select the &lt;strong&gt;Complete&lt;/strong&gt; setup type. You can leave the defaults. I will mention in the installer there is a check box at one point in the lower left corner of the install wizard window asking if you want to install Compass. Compass is another pretty awesome GUI for interacting with your MongoDB instances. I still prefer Robo3T but it might be a good idea to play around with both to see which one you like better. To verify that Mongo was installed and to start the service follow the steps below&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Locate the Windows Services console&lt;/li&gt;
&lt;li&gt;Find the MongoDB service&lt;/li&gt;
&lt;li&gt;Right-click the MonogDB service&lt;/li&gt;
&lt;li&gt;Click start&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Adding Mongo Shell to Path on Windows
&lt;/h2&gt;

&lt;p&gt;For those of you on Windows, you might have run into a problem with running the mongo command if you went through this post before I made this edit. I am sorry about that. The reason behind that is because you haven't added the path to the mongo shell into your system path environment variables. So We are going to do that here.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;If you left the defaults when installing Mongo and didn't change the installation directory you can copy this path: C:\Program Files\MongoDB\server\4.2\bin&lt;/li&gt;
&lt;li&gt;In the search in the bottom left by the start button start typing envi that should bring up the edit system environment variables option, click that.&lt;/li&gt;
&lt;li&gt;Click on the Environment Variables button &lt;/li&gt;
&lt;li&gt;Select the Path option in the second half of that screen&lt;/li&gt;
&lt;li&gt;Click Edit&lt;/li&gt;
&lt;li&gt;Click New&lt;/li&gt;
&lt;li&gt;Paste in the copied path from step 1.&lt;/li&gt;
&lt;li&gt;Click Ok three times&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Close any terminal/cmd/powershell etc windows you have open and open a new one. Once you have a new one open type in the mongo command. You should be greeted with a message and the prompt should change to '&amp;gt;'. You should now be able to move on to the create a database section. &lt;/p&gt;

&lt;h1&gt;
  
  
  Creating Data and a Database
&lt;/h1&gt;

&lt;p&gt;Now that we have Mongo installed and the service is running in the background of our machine we can create a database and start creating some documents to see how easy it can be to work with Mongo. Open up your terminal/command prompt and type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;mongo

// create and switch to database
use streetfighter

db.fighter.save&lt;span class="o"&gt;({&lt;/span&gt; name: &lt;span class="s2"&gt;"Ryu"&lt;/span&gt; &lt;span class="o"&gt;})&lt;/span&gt;
// &lt;span class="k"&gt;if &lt;/span&gt;successful
WriteREsult&lt;span class="o"&gt;({&lt;/span&gt; &lt;span class="s2"&gt;"nINserted"&lt;/span&gt; : 1 &lt;span class="o"&gt;})&lt;/span&gt;

// we can write multiple entries into the db at once
db.fighter.save&lt;span class="o"&gt;([{&lt;/span&gt; name: &lt;span class="s2"&gt;"Chun Li"&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;, &lt;span class="o"&gt;{&lt;/span&gt; name: &lt;span class="s2"&gt;"Cammy"&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;, &lt;span class="o"&gt;{&lt;/span&gt; name: &lt;span class="s2"&gt;"Guile"&lt;/span&gt; &lt;span class="o"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now that we have some documents written to our database, let's retrieve them. To do this, we'll use MongoDB's find method&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;db.fighter.find&lt;span class="o"&gt;()&lt;/span&gt;

// This should retrieve all four entries that we stored like so
&lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"id"&lt;/span&gt;: ObjectId&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"&amp;lt;id number here&amp;gt;"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;, &lt;span class="s2"&gt;"name"&lt;/span&gt; : &lt;span class="s2"&gt;"Ryu"&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"_id"&lt;/span&gt;: ObjectId&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"&amp;lt;id number here&amp;gt;"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;, &lt;span class="s2"&gt;"name"&lt;/span&gt; : &lt;span class="s2"&gt;"Chun Li"&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"_id"&lt;/span&gt;: ObjectId&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"&amp;lt;id number here&amp;gt;"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;, &lt;span class="s2"&gt;"name"&lt;/span&gt; : &lt;span class="s2"&gt;"Cammy"&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"_id"&lt;/span&gt;: ObjectId&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"&amp;lt;id number here&amp;gt;"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;, &lt;span class="s2"&gt;"name"&lt;/span&gt; : &lt;span class="s2"&gt;"Guile"&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can also find the individual documents by both property values as well as Mongo's assigned ID&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;db.fighter.find&lt;span class="o"&gt;({&lt;/span&gt; name: &lt;span class="s2"&gt;"Ryu"&lt;/span&gt; &lt;span class="o"&gt;})&lt;/span&gt;
db.fighter.find&lt;span class="o"&gt;({&lt;/span&gt; _id: ObjectId&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"id here"&lt;/span&gt;&lt;span class="o"&gt;)}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These are pretty common ways to look for items stored in Mongo.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;I didn't want to cover every aspect of Mongo in this post as it was just meant to be an introduction to the database. I highly recommend downloading the database and just playing around with the commands I have shown here. If you are really interested in learning more I would definitely say head over to &lt;a href="https://docs.mongodb.com/"&gt;Official Documentation&lt;/a&gt; page and read about the other commands. Maybe you want to update the fighter here from Ryu to Ken or Guile to Akuma? Or you want to remove one of the fighters altogether. The documentation is a great place to start. Hope this helps show the simplicity of the database and also give some insight as to why you would choose Mongo for your next project. Happy Coding.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>mongodb</category>
    </item>
    <item>
      <title>Angular and NestJS Course</title>
      <dc:creator>Jonathan Reeves</dc:creator>
      <pubDate>Tue, 15 Sep 2020 23:47:58 +0000</pubDate>
      <link>https://dev.to/redhoodjt1988/angular-and-nestjs-course-361i</link>
      <guid>https://dev.to/redhoodjt1988/angular-and-nestjs-course-361i</guid>
      <description>&lt;h1&gt;
  
  
  Fullstack Angular with NestJS
&lt;/h1&gt;

&lt;p&gt;Hello, as the title of this post and the heading above states I am working on creating a course that incorporates a fullstack project where you start by building out your backend using NestJS and then build the frontend to consume the backend api. The frontend will consist of Angular. I want to build a simple e-commerce site to showcase how this would work. I have only started writing the course notes so far. Doing the project myself to make sure that I get everything correct and can explain each piece as precise as possible. I have had mild success with another course of mine over on Udemy where I teach the basics of programming with Python using game development. I feel it's now time to do another course this time moving on to web development.&lt;/p&gt;

&lt;h1&gt;
  
  
  What Will I Learn?
&lt;/h1&gt;

&lt;p&gt;Both Angular and NestJS use the TypeScript language. The course will start off with a brief overview of TypeScript where you will create a basic application to show off how TypeScript works and why you might want to consider using it. For those that aren't aware of TypeScript, TypeScript is a superset of JavaScript that adds some really great features to the language. The main thing being a static type system similar to that of C# and Java. Another reason to use it is the TypeScript Compiler(TSC) which compiles your TypeScript code into native JavaScript code. Which means you could be using the latest ESNext version of JavaScript but have it compile down to say ES5 in order for your application to support older browsers still in use. Very handy features.&lt;/p&gt;

&lt;h2&gt;
  
  
  NestJS
&lt;/h2&gt;

&lt;p&gt;I did a small blog I believe a bit back where I briefly talked about NestJS as a backend framework and why I think it is worth switching to or using if you haven't found one to use yet. The summary of that is the Framework itself is built on NodeJS and ExpressJS, though you can use Fastify if you like. Which means it well grounded. The language also has something other JavaScript frameworks don't which is structure. It is heavily modeled after Angular. Even uses a similar CLI that makes producing content faster and safer as well. For those of you backend developers that use Java and Spring Boot that might be looking to make the switch to TypeScript or JavaScript I highly recommend Nest as the two backend frameworks are very similar. I took a course on Java with Spring Boot earlier this year and I have to say that my knowledge of using Nest helped me grasp the concepts of Spring Boot much easier than had I just started using Spring Boot alone. &lt;/p&gt;

&lt;h2&gt;
  
  
  Angular
&lt;/h2&gt;

&lt;p&gt;The decision to use Angular was a tough one. I use React at work with Nest but I have wanted to actually do something with Angular since I know it as well. I thought what better way project to do than a course on using the two frameworks that were definitely made for each other. Since Nest is modeled after Angular using Angular is very simple. The concepts of Nest carry over very well to the frontend side and vice versa. Plus they both natively support TypeScript which is really great because, although I do at work, using TypeScript with React is not the easiest thing in the world when you don't already know how TypeScript works. &lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;I am very excited to create this course and if I get enough requests I will try to make a React section that shows you how to build the application using React, might not be using TypeScript though. It will depend on how many requests for React with TypeScript there are vs just React requests alone. As always thanks for reading and happy coding everyone. &lt;/p&gt;

</description>
      <category>angular</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Angular Is the Winner!</title>
      <dc:creator>Jonathan Reeves</dc:creator>
      <pubDate>Thu, 27 Aug 2020 16:56:11 +0000</pubDate>
      <link>https://dev.to/redhoodjt1988/angular-is-the-winner-49o2</link>
      <guid>https://dev.to/redhoodjt1988/angular-is-the-winner-49o2</guid>
      <description>&lt;p&gt;&lt;em&gt;Hello and welcome to my post. in no way shape or form is this supposed to disuade anyone from using React or Vue or any other framework that they like/love or know. This is just my experience so far with Angular vs what I already know with React.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post was originally posted at&lt;/em&gt; &lt;em&gt;&lt;a href="https://www.programmingwithjon.com/blog/angular-is-the-winner"&gt;https://www.programmingwithjon.com/blog/angular-is-the-winner&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Angular Over React?
&lt;/h1&gt;

&lt;p&gt;I know right now you are thinking "Is he mad?" "Has he gone crazy?" "Why on Earth would someone that has been using React for almost the past 3 years decide Angular is the winner?" Well I will tell you why. &lt;/p&gt;

&lt;p&gt;As I mentioned above I have been using React for almost 3 years now. I love React. However I also really love TypeScript. I know that you can use TypeScript with React and that it's not as hard to implement as one might think. TypeScript works well with React. The problem that I have with React isn't that it's terrible or that Angular is better and you should stop using React right this second. My post isn't even meant to persuade you to use Angular over React if you are already using React. My purpose is to just say why I prefer Angular over React and see if I can help someone out who might be struggling with which one to pick. &lt;/p&gt;

&lt;h2&gt;
  
  
  So Why Choose Angular?
&lt;/h2&gt;

&lt;p&gt;First and foremost I have chosen Angular because it uses TypeScript by default and has basically since it's inception. Which is pretty cool. The other reason is it's a platform not necessarily a framework. Which means I can use it to build out my web site. Then run a quick little command to convert this code to a PWA, for those that aren't sure what that stands for it's Progressive Web App, which allows one to download the website as a mobile app without having to use the play store or app store. Which is pretty cool. But the main reason. Numero uno if you will is because I use NestJS as my backend framework. It's a great framework that has everything one would need to create a scalable, enterprise level application or website that could easily go up against something you would see with Java and Springboot. &lt;/p&gt;

&lt;h2&gt;
  
  
  NestJS?
&lt;/h2&gt;

&lt;p&gt;For those that have seen NestJS or have heard of it but aren't sure if they should use it or not I will give you a brief run down of the framework. The framework is modeled after Angular. There is a CLI just like Angular CLI that allows you to generate all of the files that you will need for your project as well as the directories/folders for your files to reside in. All by running a simple command from your terminal. It makes productivity much much faster. If you have ever worked with say Ruby on Rails or even Django you know that having a framework scaffold much of your code and handle creating new files from easy to use commands on your terminal speeds up your ability to create code and get that project finished a tad bit faster than if you were to create everything from scratch. Pretty awesome right? Nest also has built in libraries for just about everything. Need to use an ORM to connect to a database? It's there and has support for it already. &lt;/p&gt;

&lt;h2&gt;
  
  
  Back to Angular
&lt;/h2&gt;

&lt;p&gt;Now back on the subject of Angular, after using NestJS for a year now and seeing my back end skills and speed improve from using the framework I wanted to give Angular another shot. A few years ago I created a basic Angular application which was actually a lot of fun. However I was stuck on React at the time. I liked how simple it was to use React. You didn't have to create a bunch of HTML files or anything like that. So I went back to React and that was that. Nest made me appreciate the CLI and when I found out that Angular does the same thing I realized that I would be able to speed up my production time as well as hopefully improve my skills on the front end if I switched. I started reading a few books on Angular. YouTube tutorials were somewhat helpful depending on the year they were made. I might have had to do some Googling to solve a few issues I was having since the YouTube videos weren't updated for the latest version of Angular. But that's all part of the process. By figuring that out I was able to gain knowledge for the next time I needed to implement something in my project or a new project for that matter. You almost have to do that with any framework you choose. &lt;/p&gt;

&lt;h2&gt;
  
  
  Hooking Nest to the Front End
&lt;/h2&gt;

&lt;p&gt;Nest is a great back end framework as I mentioned earlier it has a lot of features one of those features that, unless you use Angular, you might not know about is something called Angular Universal. This allows you to embed your Nest back end code with your Angular front end code into the same repo. Now I didn't know about this I was using React of course and I am still learning about this feature for Angular and Nest to be joined together. The process is supposed to be seamless. I have watched a few examples of it and it's almost like magic. React does not have this luxury. It was a huge pain in the you know what for me to get my front end with React and TypeScript to talk to my back end with Nest. It wasn't impossible as it is working however it was definitely not as easy as the Angular to Nest join with Angular Universal. &lt;/p&gt;

&lt;p&gt;I know what you're thinking, "But Jonathan, you said that Nest is modeled after Angular. Wouldn't it make sense for them to be easy to connect both pieces together?" Technically yes. But when I first started using Nest, as my boss was the one that mentioned using it and after watching a few tutorial series on it, didn't mention the Angular aspect of Nest and why the framework does things the way it does. It wasn't until about 4 months in that I found that out. Do I think that we made the wrong choice for the project? No, React is a great library to use for creating your front end apps. However the ease of connecting your Nest back end with an Angular front end is too awesome to not be acknowledged as a reason to use Angular over another framework if you are using Nest. &lt;/p&gt;

&lt;h1&gt;
  
  
  What Framework Is Better?!
&lt;/h1&gt;

&lt;p&gt;There isn't really a one framework fits all type of situation. However if you master one framework then you can make it work for all of your needs. However, if you are looking for a front end framework to start with because you are new to web development I would say learn Vanilla JavaScript first. Become very proficient using no framework. Then try to learn a bit of TypeScript and recreate what you did with JavaScript with TypeScript. Once you have sufficient knowledge of both then it's time to pick a framework/library. The choice you make should be determined by whether or not you like TypeScript. If you do then I would suggest Angular and use Nest as your back end framework. The two go hand in hand. The concepts used to create your files and structure are the same in both front and back end frameworks. If you aren't using Nest as the back end framework of choice then you could definitely still choose Angular as your choice but React is just as good of a choice. However if you aren't interested in TypeScript and you only want to use JavaScript then I would definitely say that you would be better off choosing React. &lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;At the end of the day the framework of choice doesn't really matter. What matters if whether or not you are comfortable learning the framework of choice. Go to the official pages for React: &lt;a href="https://reactjs.org/"&gt;https://reactjs.org/&lt;/a&gt; and Angular: &lt;a href="https://angular.io/"&gt;https://angular.io/&lt;/a&gt; and look over the examples in the get started section for each. Make sure you are comfortable reading the examples and understand what is going on in the code and make your choice by which one seems more readable to you. As always enjoy.&lt;/p&gt;

</description>
      <category>angular</category>
      <category>typescript</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Codecademy Data Science Course Part IV</title>
      <dc:creator>Jonathan Reeves</dc:creator>
      <pubDate>Sun, 02 Aug 2020 16:51:02 +0000</pubDate>
      <link>https://dev.to/redhoodjt1988/codecademy-data-science-course-part-iv-fbj</link>
      <guid>https://dev.to/redhoodjt1988/codecademy-data-science-course-part-iv-fbj</guid>
      <description>&lt;h1&gt;
  
  
  Intro To Python
&lt;/h1&gt;

&lt;p&gt;Hello, welcome back to my series of posts on the Codecademy Data Science course. I know it's been a few days since my last post. I apologize for that. However the Python material seemed to go a little bit more in depth with a lot more modules this go round. So without further ado let's get into it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Python Functions and Logic
&lt;/h2&gt;

&lt;p&gt;This is the first module on Python. It starts with a brief introduction to the Python syntax as well as the first function that you are pretty much ever introduced to in most languages. The print() function. In JavaScript this is known as console.log(). Same principle. It prints the variable content, string, number etc to the console so you can view it's contents. Of course when you are starting out you aren't really printing the outcome of functions and variables so you are mainly just using strings and numeric equations to see that Python can be used as a pretty handy calculator or messenger. &lt;/p&gt;

&lt;p&gt;The project in this section has you use the print() function to display what would be a receipt at a popular furniture store. You use the knowledge of the previous exercises to print out a receipt like message to the console of the items a customer has bought on their purchase. It was a pretty neat spin on the typical "This is how you make variables" lesson. &lt;/p&gt;

&lt;h3&gt;
  
  
  Python Functions
&lt;/h3&gt;

&lt;p&gt;This is where you learn about the awesomeness that are functions. You see how you can use the variables you create to make reusable code that will benefit your program. If you are familiar with how to create functions I would still suggest that you go through this section if for nothing more than a refresher. I learned a few tricks myself that I had either forgotten about or weren't touched upon in previous courses and books I have gone through. &lt;/p&gt;

&lt;p&gt;The project in this section is creating different functions to solve physics equations. I was not looking forward to this project as I haven't done any math like that since high school many years ago but once I started the project it was a really fun one. Creating functions to convert Fahrenheit into Celsius and vice versa was a lot of fun. &lt;/p&gt;

&lt;h3&gt;
  
  
  Python Control Flow
&lt;/h3&gt;

&lt;p&gt;This section is about boolean values and how to use if statements to control the flow of the program. You are shown how to use the bool values True and False in Python. As well as shown how simple expressions can be read and created to equal these answers. Once you have a pretty firm grasp on them you are then tasked with putting them together inside of functions to make the function have some basic logic to answer certain questions. &lt;/p&gt;

&lt;p&gt;The project in this section has you using variables and functions from the previous two sections as well as the control flow to create a program that will let a customer know what the cheapest way to ship a package would be. The project is a lot of fun and with the projects I have finished so far get you thinking about actual real world like scenarios of how to complete these tasks/challenges. &lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;All in all I have been pretty impressed with the course so far. I am definitely looking forward to the next module. The Python section was a bit different from the SQL one as it had some additional quizzes and exercises to really re-enforce the learning in that section. So in each of these sections there is a quiz of multiple choices and then you get one or two extra challenges where you have to make some extra functions or variables to gain some more knowledge on how these concepts work. As always I hope you enjoy the read and I look forward to any questions and comments you have. Enjoy!&lt;/p&gt;

</description>
      <category>python</category>
      <category>database</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Codecadmey Data Science Course Part IV</title>
      <dc:creator>Jonathan Reeves</dc:creator>
      <pubDate>Tue, 28 Jul 2020 21:00:29 +0000</pubDate>
      <link>https://dev.to/redhoodjt1988/codecadmey-data-science-course-part-iv-dkc</link>
      <guid>https://dev.to/redhoodjt1988/codecadmey-data-science-course-part-iv-dkc</guid>
      <description>&lt;p&gt;Hello, and welcome back to my series that focuses on my time through the Codecademy Data Science course. I am excited to say that I have made it through the SQL section. I will break down my experience with this course so far. Earlier posts were a breakdown of what I was doing module by module and I realized that will lead to a lot of posts as there are 26 modules in the course that contain various articles, exercises and projects to complete. That is a lot of posts to try to keep up. So I have decided that I will write a post for each section. This one is going to finish out the SQL portion. The next post after this will cover Python and so on and so forth. Let's get cracking.&lt;/p&gt;

&lt;h1&gt;
  
  
  Intermediate SQL
&lt;/h1&gt;

&lt;p&gt;I know that I talked about this briefly in my other post but I want to say a few more things related to this particular module as it was the one that I felt had the most important concepts and covers the most use cases. &lt;/p&gt;

&lt;p&gt;So first and foremost I want to say that by no means is this course, Learn SQL or Data Science, an easy cake walk. I struggled throughout most of this section. I didn't know SQL that great going into this and there are plenty of aspects of SQL that I definitely still don't know that great. But what this section showed me is that there are ways to use SQL vast amounts of built in functions to manipulate data, order it and spit it out so that you can have a pretty looking table with all the necessary data in the order that you want it in. Up to this point in my course and in my personal and professional experience working with SQL, SELECT statements with WHERE and FROM clauses were about as far as I went with SQL. The first section in the part helped me finish and understand a particular report I am creating now for work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Aggregate Functions
&lt;/h2&gt;

&lt;p&gt;This section showed me how to use COUNT() and countless other functions that allow for manipulating data. Things I didn't realize were helpful in creating tables and reports until I took this course. If you have used SQL in the past like I have and didn't quite delve deep into all that it offers I highly recommend going through this course. Again I am not a part of Codecademy nor am I receiving any benefits from talking about it here. I am just expressing my time through the course and what I gained out of it. &lt;/p&gt;

&lt;h3&gt;
  
  
  Did You Know?
&lt;/h3&gt;

&lt;p&gt;This piece of code right here:&lt;br&gt;
   SELECT DOB,&lt;br&gt;
   DATEADD(MINUTE, [OT], [DOB]) AS CDOB,&lt;br&gt;
   SUM[IT] AS SumOfIT&lt;br&gt;
   SUM(GC) AS SumOfGC&lt;br&gt;
   FROM [dbo].[departmentCheck]&lt;br&gt;
   WHERE StoreId = 2 AND DOB = '2020-07-28'&lt;br&gt;
   GROUP BY DOB, DATEADD(MINUTE, [OT], [DOB])&lt;br&gt;
   ORDER BY CDOB;&lt;br&gt;
is what I was able to take away from the course. There are a few functions in here that aren't covered in the course however I was able to better understand them and how to look for them because of this course. A lot of programming is knowing the right questions to ask based on the concepts we have learned. If you know the question you want to ask finding the answer is a lot easier than you think. If, for example you have a question about SELECT then you are probably not going to know that the SUM() is taking the column IT and calculating the SUM of each item in that column and then creating a new column named SumOFIT. Pretty awesome right?&lt;/p&gt;

&lt;h2&gt;
  
  
  Aggregate Functions Projects and Applications
&lt;/h2&gt;

&lt;p&gt;In this section you are introduced to three projects that vary in difficulty. In one of the projects you are tasked with getting the the highest ranking posts on a blog site. It was a really awesome project to see how using aggregate functions help make your select queries that much more powerful. By fine tuning your query you are able to get the data you want and massage it to create columns that help you better understand what posts you should be reading based on their popularity. &lt;/p&gt;

&lt;h2&gt;
  
  
  Working With Multiple Tables
&lt;/h2&gt;

&lt;p&gt;This section has you using aggregate functions to join multiple tables to create one table with the important data from each other table. These were awesome. It really shows you the power of SQL and why you would use these. For instance lets say you are working for a streaming company like Spotify. You are a data scientist and they want to know how many users have signed up for the service. Well as many of you know Spotify has free and paid for subscription services. Which means in one table you will have the free accounts and in another table you will have the paid for accounts. You could write a query that shows only the paid for accounts but what if one of the paid for accounts moved to a free account before the this purchased table could be updated? How would you know? By looking at the free account table you would notice a new account that just hit and you could see that that account originally showed up in the purchased table but was now on the free table. That means you could let people in the company know and the marketing team could take steps to try to figure out why they dropped to the free plan and potentially give a coupon to that person via email for free months of premium or lower the monthly fee for a time. How awesome is that? You just helped Spotify's marketing team bring on another potential, paying, customer. On your first day! Rock star status!&lt;/p&gt;

&lt;h1&gt;
  
  
  Going off Platform and Analyzing Real Data
&lt;/h1&gt;

&lt;p&gt;The next two sections I am combining to be one section because going off platform is basically just showing you how to install a version of SQL on your local computer so you can practice downloading csv files and other data files to store in a database and play around with. There aren't any projects or even example data files to download and play with. Only steps on installing SQLite to your local computer. &lt;/p&gt;

&lt;p&gt;Analyzing real data with SQL on the other hand is where things in the course took a turn for the worse. Luckily there is a nice forum that you are able to visit to ask questions when you are stuck on certain problems. This section was a tough one. I saw forum posts from users that have been using SQL for years and just wanted to brush up on their skills asking questions about their queries because they didn't know what was wrong. The section might have been tough but it was still fun to go through and a very vital one for aspiring SQL programmer to go through as it will test your skills and abilities and make you sweat as you think about the query you need to write in order to accomplish the task. There are no step by step hand holding instructions. Just do this and then do that to get the result. Even the hint just barely scratches the surface of what you need to do to be back on the right path. &lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;All in all the Learn SQL module was definitely the right choice for starting out the Data Science course. What better way to get you into thinking like a Data Scientist than with manipulating data in databases. Showing off real world examples of case studies that companies may need your SQL skills for. Learning how to use SQL to manipulate data is obviously just the tip of the iceberg for a data scientist but if you can't do it then chances are you might want to look elsewhere for a career path. You will need to know at the basics of SQL in order to use a language like Python or even JavaScript to get data from a database programmitically. Without a basic understanding of SQL I would have been lost my first day on the job. As always I hope you enjoyed the read and look forward to seeing how many likes and or comments are posted. Enjoy.&lt;/p&gt;

</description>
      <category>sql</category>
      <category>datascience</category>
      <category>database</category>
    </item>
  </channel>
</rss>
