<?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>Forem: Kevin Gallo</title>
    <description>The latest articles on Forem by Kevin Gallo (@kevingallo31).</description>
    <link>https://forem.com/kevingallo31</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%2F789198%2F5fb390fd-4890-49b1-8f5e-f1b44f536065.jpg</url>
      <title>Forem: Kevin Gallo</title>
      <link>https://forem.com/kevingallo31</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kevingallo31"/>
    <language>en</language>
    <item>
      <title>Anatomy of APIs</title>
      <dc:creator>Kevin Gallo</dc:creator>
      <pubDate>Wed, 30 Mar 2022 15:11:13 +0000</pubDate>
      <link>https://forem.com/kevingallo31/anatomy-of-apis-243n</link>
      <guid>https://forem.com/kevingallo31/anatomy-of-apis-243n</guid>
      <description>&lt;h2&gt;
  
  
  What Even Is An API
&lt;/h2&gt;

&lt;p&gt;APIs are in a way the foundation of functionality within a web application. API or Application Programming Interface is a type of software that sends and receives data or services from another software. An API is almost never directly interacted with the user, only implemented by the developer of the application. There are many types of APIs and different ways to use them within your software. &lt;/p&gt;

&lt;p&gt;APIs have different actions that can do with a specified request from the application. There are four main actions that APIs preform which are GET, POST, PATCH, and DELETE. These four actions directly interact with the API through specified request from the developer. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;GET: This request sends back specified data or sends back a specific service (API can send back product information)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;POST: This adds/creates data to the API (Adding a new product)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PATCH: This updates existing data within the API (Changing  the price of a product)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;DELETE: This removes data from the API (Takes away a product once it sells out)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are more types of API actions but these are the most commonly used ones and most important. &lt;/p&gt;

&lt;h2&gt;
  
  
  Within The API
&lt;/h2&gt;

&lt;p&gt;APIs can be built using multiple different languages such as Ruby, Python, and Java to name a few. When building an API there is a lot that has to be taken into account. For instance who do you want using it? What can they do with your API? What kind data is being sent back? All of these have to be taken into consideration when creating an API. A lot of this can be controlled by creating these routes within the API. &lt;/p&gt;

&lt;p&gt;The creator of an API will write out specific routes that will then hit controller methods that will render json data back to the application. The application then uses the send back JSON data to parse it into the used programming language. Routes have to specified on which kinda of request they are (i.e GET, POST, PATCH, DELETE, etc...).  Controller methods then have to have corresponding name definitions so that the route knows which method to use when the route is hit. The API knows which action to do as it has to be specified within the method request. &lt;/p&gt;

&lt;p&gt;APIs also have specific endpoints that the software has to call to in order to receive the desired data/service. These endpoints can look a bit different based on the API. An API endpoint will usually start the same with the name of API then followed by "/" can route to specific parts of the API. For example if an API was running on a localhost then a request to "&lt;a href="Http://localhost:4000/users"&gt;Http://localhost:4000/users&lt;/a&gt;" with a method of "GET" will send me back user data. Due to the "users" after the "/" the API software knows that I am calling for user data and not data about products. &lt;/p&gt;

&lt;p&gt;APIs are often made to accomplish a specific goal. There are different types of APIs that can be made. The kind of API talked about here is identified  as a REST API. These kind of APIs are very scaleable and their capabilities are entirely decided by what the developer can do. APIs run our everyday world in the background being the foundation of endless technologies that everyone uses on a day to day basis. &lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.bigcommerce.com/blog/what-is-an-api/#the-apis-fueling-your-bigcommerce-site"&gt;https://www.bigcommerce.com/blog/what-is-an-api/#the-apis-fueling-your-bigcommerce-site&lt;/a&gt;&lt;br&gt;
&lt;a href="https://blog.hubspot.com/website/types-of-apis"&gt;https://blog.hubspot.com/website/types-of-apis&lt;/a&gt;&lt;br&gt;
&lt;a href="https://en.wikipedia.org/wiki/API"&gt;https://en.wikipedia.org/wiki/API&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>computerscience</category>
      <category>writing</category>
      <category>api</category>
    </item>
    <item>
      <title>SQL undercover</title>
      <dc:creator>Kevin Gallo</dc:creator>
      <pubDate>Wed, 16 Mar 2022 14:36:56 +0000</pubDate>
      <link>https://forem.com/kevingallo31/sql-undercover-4dn0</link>
      <guid>https://forem.com/kevingallo31/sql-undercover-4dn0</guid>
      <description>&lt;h2&gt;
  
  
  Using Active Record Over SQL
&lt;/h2&gt;

&lt;p&gt;Trying to read and write to a database can be a hassle. SQL can quickly seem overwhelming and complicated as it takes more effort to write simple queries. As developers we are always looking for a way to make code more readable but at the same time more efficient. Come active record an ORM (Object Relational Mapping) which allows a developer to manage their database without having to write raw SQL code. This allows for their code to be abstracted that can still create, read, update, and delete/destroy (CRUD) from their database. &lt;/p&gt;

&lt;h2&gt;
  
  
  Abstraction Within Active Record
&lt;/h2&gt;

&lt;p&gt;Active record comes with inbuilt methods that allows the developer to query the database in a simple easy to read way. A few methods that come with Active Record are find, destroy, where, update, order, include, create, and etc. These methods convert into SQL code that allows them to query the database. The use of these methods allows the code to be more readable without losing the power that SQL can bring. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--g1_gfVvl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8sufdzaz3lid3an9igpq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--g1_gfVvl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8sufdzaz3lid3an9igpq.png" alt="Image description" width="880" height="163"&gt;&lt;/a&gt;&lt;br&gt;
In the picture above we have two lines that do the exact same thing. The first line uses active record to query the database to find the matching id put into the find method as a parameter. While the second line does the same thing but instead uses raw SQL code to find the matching id passed through. In both cases will return an instance of that id. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w-VxWwpl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iwm4d08zijwtx6so2sej.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w-VxWwpl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iwm4d08zijwtx6so2sej.png" alt="Image description" width="880" height="181"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SQL can becomes a hassle to write as queries get more and more complicated. Active record is allowing for a more simple way to do what SQL can do so that the developer can focus on harder task. &lt;/p&gt;

&lt;h2&gt;
  
  
  SQL Upsides
&lt;/h2&gt;

&lt;p&gt;Although we have seen how active record can be the best choice to query through a database it does not mean SQL in complete obsolete. There are task that active record cannot do faster than raw SQL can do. A major example of this is bulk inserting. Without the help of activerecord-import gem there is currently no way of bulk inserting records into a database. This is where raw SQL will come into play. There are times where raw SQL will be the most effective and efficient way to query a database. In certain cases it can be seen that raw SQL can be around &lt;a href="https://dev.to/sooyang/power-of-activerecord-and-when-to-stop-using-it-1ejo"&gt;20 times faster&lt;/a&gt; than any other method with the price of having to write long SQL code. &lt;/p&gt;

&lt;p&gt;Active record is gift from the coding gods that allows developers to truly bring out their true nature, lazy problem solvers. In most cases active record can get the job done but as projects scale up to large amounts writing raw SQL might be the way to go. &lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://guides.rubyonrails.org/active_record_querying.html"&gt;https://guides.rubyonrails.org/active_record_querying.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://blog1.westagilelabs.com/active-record-or-raw-sql-edd55766df49"&gt;https://blog1.westagilelabs.com/active-record-or-raw-sql-edd55766df49&lt;/a&gt;&lt;br&gt;
&lt;a href="https://guides.rubyonrails.org/active_record_basics.html"&gt;https://guides.rubyonrails.org/active_record_basics.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>activerecord</category>
      <category>sql</category>
      <category>rails</category>
    </item>
    <item>
      <title>Semantic-UI The Crutch I Need To Style</title>
      <dc:creator>Kevin Gallo</dc:creator>
      <pubDate>Wed, 09 Mar 2022 15:18:52 +0000</pubDate>
      <link>https://forem.com/kevingallo31/semantic-ui-the-crutch-i-need-to-style-1jfp</link>
      <guid>https://forem.com/kevingallo31/semantic-ui-the-crutch-i-need-to-style-1jfp</guid>
      <description>&lt;p&gt;Semantic-Ui is a css framework built in 2013 by Jack Lukic. Jack was able to create this framework by utilizing HTML and Javascript allowing for easy integration for your projects. Semantic-UI can be used alongside other frameworks and libraries such as React, Meteor, Ember, Angular. Semantic works well with almost every popular internet bowser including Safari IOS, Chrome for Android, and Microsoft edge to name a few. &lt;/p&gt;

&lt;h2&gt;
  
  
  A Huge Toolbox
&lt;/h2&gt;

&lt;p&gt;Semantic-UI's main appeal (at least to me) is that it comes with a plethora of tools a developer can utilize. The framework uses html style of coding which makes it easy to follow and understand. Some of the tools Semantic-Ui comes with are a button element, input element, a card elements, and etc... Some of these may sound familiar which they are! These are similar to html tags but Semantic-UI comes with a basic templet for each element and component that can be customized with ease. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AJnp4n88--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/20qhr44j3fi7qv3l56ju.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AJnp4n88--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/20qhr44j3fi7qv3l56ju.png" alt="Image description" width="880" height="271"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Semantic allows the developer to write more human friendly code as it becomes easier to read. It also allows the dev to write less code. As mentioned before Semantic comes with a card component as well. The card component allows the dev to insert a card on the page that can hold info, images, buttons, and allows for customization. Semantic-Ui comes with a plethora of these tools that makes styling your projects frontend even easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Picking Semantic Over Other Frameworks
&lt;/h2&gt;

&lt;p&gt;Semantic-Ui isn't the most popular frontend framework out there. The most popular right is Bootstrap. Although Bootstrap and Semantic-Ui do share some similarities like both allow the dev to customize their frontend and both have a lot of theme options. Although these frameworks have some similarities the differences shine brighter for example Bootstrap is even more compatible going as far back as IE 7, Bootstrap has a huge activity community as Semantic-UI is relatively small, and  Semantic-UI is easier to get started in. Both have their pros and cons and really comes down to what the dev is looking for. &lt;/p&gt;

&lt;p&gt;Semantic-UI has allowed me to really explore the possibilities of styling. Semantic-UI helped me reach new heights of web designing as the easy implementation did not hold me back.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Ruby &amp;&amp; Python</title>
      <dc:creator>Kevin Gallo</dc:creator>
      <pubDate>Thu, 24 Feb 2022 16:49:26 +0000</pubDate>
      <link>https://forem.com/kevingallo31/ruby-python-1bb</link>
      <guid>https://forem.com/kevingallo31/ruby-python-1bb</guid>
      <description>&lt;p&gt;Only after a few days working with Ruby I personally felt like there was a lot of similarity between Ruby and Python. After writing some Ruby code and learning the syntax my initial perception started to seem true. Although it has been some time that I wrote Python code my familiarity of the language has not completely gone away. After looking back at some past Python projects my initial thought started to change. I thought I would be able to understand a lot of my past work but after spending sometime looking at the Python code I started to see some key differences  between Ruby and Python. &lt;/p&gt;

&lt;h2&gt;
  
  
  Brief History
&lt;/h2&gt;

&lt;p&gt;Ruby was introduced into the world in 1995 only 4 years later than Python was. Both languages did not start gaining true popularity until the 21st century. But for different reasons. Ruby starting to gain popularity due to the creating on Rails. Rails is a framework built from Ruby that focused on building backend web development. Python also saw a spike in popularity around but for different reasons. Although Python also has a framework called Django which purpose is similar to Rails thats not the main reason Python saw a spike in its popularity. Python thrived in academic settings which focused around math, science, AI, and machine learning. With Python having an overall bigger use case and a stronger community Python has become one of the most popular languages today. &lt;/p&gt;

&lt;h2&gt;
  
  
  Syntax
&lt;/h2&gt;

&lt;p&gt;Python syntax is made to be programmer friendly meaning it's easier on the eyes and easier to read. The cost of this is that for more complex programs it becomes harder to truly understand what the program is doing "Behind the scenes". Although understanding the "Behind the scenes" processes is a bit harder converting Python code to english is where Python excels. Ruby is similar in this aspect in that Ruby is easy on the eyes. Ruby has clean code with syntax similar to Python. The lack of brackets and semicolons are both seen in Ruby and Python&lt;/p&gt;

&lt;h2&gt;
  
  
  Figure 1
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Vbqerwd_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x5v34ylezlkkjafrcf4f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Vbqerwd_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x5v34ylezlkkjafrcf4f.png" alt="Image description" width="880" height="143"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Figure 2
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zKBikQUS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gy1dsmh9bsvpj08s4plz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zKBikQUS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gy1dsmh9bsvpj08s4plz.png" alt="Image description" width="880" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Functionality
&lt;/h2&gt;

&lt;p&gt;The first picture is Python code I wrote the gets user input and sets it to a variable. The second picture is written in ruby that does something very similar. Both are lines of code that have somewhat the same functionality. But where Python thrives is the speed at which is runs at. Python is known to be one of the fastest running languages which is one of the main factors that make it very popular. Although at this scale the speed is almost immeasurable. Where Python strives is being able to do more functionality  within a single line. In the Python code I am able to grab the user input, setting it to a variable, while showing an output all with a single line. In Ruby it is a bit different with having to print to the terminal in one line after that grab the user input in another. These subtle difference go a long way in more complex programs. Ruby thrives in a web development environment as its main use case stems from backend development. In terms of functionality I believe Python can do what Ruby can but Ruby cant do everything that Python can. &lt;/p&gt;

&lt;p&gt;Ruby's main aspect in terms of syntax and readability are very similar to Python. Both are focused on backend development and can do similar things. But do to Python popularity it has been able to grow enormously with having a much larger library already built into the language.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://learn.onemonth.com/ruby-vs-python/"&gt;https://learn.onemonth.com/ruby-vs-python/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Passion</title>
      <dc:creator>Kevin Gallo</dc:creator>
      <pubDate>Wed, 16 Feb 2022 16:48:40 +0000</pubDate>
      <link>https://forem.com/kevingallo31/passion-584e</link>
      <guid>https://forem.com/kevingallo31/passion-584e</guid>
      <description>&lt;p&gt;Passion is what drives people to follow and chase their dreams. Passion is what allows people to achieve their goals. Passion is what gives purpose to people. Passion is what lead me to drop out of community college and enroll in Flatirons coding Bootcamp. &lt;/p&gt;

&lt;p&gt;Ever since I was young I've always had a curiosity about how computers were able to do what they do. It never made sense to me how such a small device was able to perform a superhuman task. From doing calculations at super speed to being a part of virtual worlds via video games, computers seemed to be out of this world to me. I knew from an early age that I wanted to pursue a career in software engineering as I wanted to be able to control this superpower. Being able to make a computer do what I wanted it to do seemed like trying to tame a beast that's capable to do anything you imagined. I became fluent to use computers on the user side but never touched programming until my junior year of high school. &lt;/p&gt;

&lt;p&gt;I believed the best way to learn programming would be following the schooling path so that's what I did. I didn't know anything about programming, coding, or software engineering before taking an AP computer class. From the first day in the class, I knew I was right at home. The first class started slow-paced as it should since it was the very first computer class in the curriculum. It was very enjoyable as it taught the very basics of computers and how the internet worked which only drove my passion. By the end of the class, we were able to write basic JS code to make a phone app. My next computer class is where my passion was truly found. AP Java gave me a new outlook on what coding can be. It showed me hard problems that I needed to solve only using Java. It was vastly different from anything I had seen before and I instantly fell in love with it. Throughout the class, it was obvious I could understand it differently than everyone else as most people struggled to grasp the concepts of coding in general. I was able to pick up these foreign concepts relatively quickly compared to other students as I had more of a passion for the topic. Unfortunately, this class was cut short due to the global pandemic and I was never able to fully write out a functional project from scratch. The next part of my journey was college where I was majoring in computer science. I was only in college for three semesters but it felt like an eternity. &lt;/p&gt;

&lt;p&gt;I was already never the best student throughout my school career and my bad schooling habits only shined harder in college. My computer classes were the only classes I was able to earn A's in. As the college semesters continued I felt myself falling into a deep abyss of unmotivated work slowly losing the passion I once had. From taking what I saw as pointless classes it felt like I was wasting time and energy every day. It didn't help that the computer classes I was taking were still going over concepts that I had learned and were fluent in from high school. It constantly felt like I was ahead so I never felt the challenges that gave me the passion, to begin with. It reached a point where I was so unmotivated I stopped trying which lead to worse and worse grades. I was struggling to find the drive to do any school work as three semesters in I still haven’t learned anything new about programming. This eventually led to me dropping out in November 2021(which was a hard sell to my immigrant parents).&lt;/p&gt;

&lt;p&gt;I feel like the school system had failed me so I had to find a different alternative to becoming a software engineer. I started to learn about coding boot camps and what they can do for careers. I was scared about this option at first as I was always under the impression that a degree was the only way to become a software engineer. After discovering Flatiron I reached out to alumni of the program to see how they felt about the program. Their answers to my questions started to reignite my passion. I started to get excited about coding for the first time in a while. I enrolled in the Flatiron software engineering program shortly after. So far Flatiron has lived up to my expectations and is truly giving me the challenge that gave me the passion. I am excited about my future and that is something I couldn't say five months ago. &lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>career</category>
    </item>
  </channel>
</rss>
