<?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: Carlos Castaneda</title>
    <description>The latest articles on DEV Community by Carlos Castaneda (@carloscastanedadev).</description>
    <link>https://dev.to/carloscastanedadev</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%2F1119187%2F97347ffb-1b74-4568-8700-5fbb928c1a1e.jpeg</url>
      <title>DEV Community: Carlos Castaneda</title>
      <link>https://dev.to/carloscastanedadev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/carloscastanedadev"/>
    <language>en</language>
    <item>
      <title>TIL Blog - Mini Project</title>
      <dc:creator>Carlos Castaneda</dc:creator>
      <pubDate>Tue, 08 Aug 2023 23:24:15 +0000</pubDate>
      <link>https://dev.to/carloscastanedadev/til-blog-mini-project-5hd</link>
      <guid>https://dev.to/carloscastanedadev/til-blog-mini-project-5hd</guid>
      <description>&lt;p&gt;For my mini project I decided to take my love of movies and build a movie search app. I was already familiar with &lt;a href="https://www.themoviedb.org"&gt;TMDB&lt;/a&gt; (The Movie Database). The site itself has so much information on movies and tv shows. They also offer an API for free. You just have to create an account and you can request a key. The rate limits are very generous and are roughly 50 requests/sec! &lt;/p&gt;

&lt;h3&gt;
  
  
  Documentation
&lt;/h3&gt;

&lt;p&gt;TMDB has very well written and organized API documentation that makes it very easy to get the data you need. They even show you how to request data using 20 different programming languages. For Ruby they recommend using the URI gem and the Net/HTTP gem. This is what the code for getting the details for a specific movie looks like using Ruby.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'uri'&lt;/span&gt;
&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'net/http'&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;URI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"https://api.themoviedb.org/3/movie/movie_id?language=en-US"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;http&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Net&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;HTTP&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;host&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;port&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;use_ssl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;

&lt;span class="n"&gt;request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Net&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;HTTP&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Get&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"accept"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'application/json'&lt;/span&gt;
&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Authorization"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Bearer #{API_ACCESS_TOKEN}'&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;request&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read_body&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If we plug in &lt;code&gt;movie_id&lt;/code&gt; 872585 for Oppenheimer we get back this response:&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;"adult"&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="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"backdrop_path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/fm6KqXpk3M2HVveHwCrBSSBaO0V.jpg"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"belongs_to_collection"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"budget"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100000000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"genres"&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;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Drama"&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;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;36&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"History"&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;span class="nl"&gt;"homepage"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"http://www.oppenheimermovie.com"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;872585&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"imdb_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tt15398776"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"original_language"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"en"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"original_title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Oppenheimer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"overview"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"The story of J. Robert Oppenheimer’s role in the development of the atomic bomb during World War II."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"popularity"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;980.538&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"poster_path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/8Gxv8gSFCU0XGDykEGv7zR1n2ua.jpg"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"production_companies"&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;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;9996&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"logo_path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/3tvBqYsBhxWeHlu62SIJ1el93O7.png"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Syncopy"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"origin_country"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"GB"&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;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;33&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"logo_path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/8lvHyhjr8oUKOOy2dKXoALWKdp0.png"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Universal Pictures"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"origin_country"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"US"&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;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;507&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"logo_path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/aRmHe6GWxYMRCQljF75rn2B9Gv8.png"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Atlas Entertainment"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"origin_country"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"US"&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;span class="nl"&gt;"production_countries"&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;span class="nl"&gt;"iso_3166_1"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"GB"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"United Kingdom"&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;span class="nl"&gt;"iso_3166_1"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"US"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"United States of America"&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;span class="nl"&gt;"release_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2023-07-19"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"revenue"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;552000000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"runtime"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;181&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"spoken_languages"&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;span class="nl"&gt;"english_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"German"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"iso_639_1"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"de"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Deutsch"&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;span class="nl"&gt;"english_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"English"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"iso_639_1"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"en"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"English"&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;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Released"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tagline"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"The world forever changes."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Oppenheimer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"video"&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="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"vote_average"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;8.299&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"vote_count"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1599&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;This database provides so much information! They have different endpoints that can provide different info such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Credits&lt;/li&gt;
&lt;li&gt;Images&lt;/li&gt;
&lt;li&gt;Recommendations&lt;/li&gt;
&lt;li&gt;Reviews&lt;/li&gt;
&lt;li&gt;Videos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and so much more.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Flix
&lt;/h2&gt;

&lt;p&gt;I decided to name my app 'My Flix' and gave it dark mode look. &lt;br&gt;
I mainly worked on making the site mobile friendly. In the future I would like to add 2 more break points for tablet and desktop views.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6LysTvfb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1lngqdh84yt98zgm5bd1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6LysTvfb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1lngqdh84yt98zgm5bd1.png" alt="Image description" width="800" height="733"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Homepage
&lt;/h3&gt;

&lt;p&gt;The homepage is very simple and has 3 clickable links in the header. Clicking the My Flix name will always bring you back to the homepage. The other 2 links I will get to in the next section. Below the header is a simple form with 2 buttons. After you type in a movie title you have the option to select 1 of 2 buttons. The 'Find my movie' button will take you to a new page with the 5 closest titles that match your search. From there you can select the movie you want information on. The "I'm Feeling Lucky!" button will instantly take you to the top result for your search query. &lt;/p&gt;

&lt;h3&gt;
  
  
  Movie Details
&lt;/h3&gt;

&lt;p&gt;Once you select the movie you want info on, you are presented with some details. The details page provides the following movie info:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;title&lt;/li&gt;
&lt;li&gt;poster&lt;/li&gt;
&lt;li&gt;tagline&lt;/li&gt;
&lt;li&gt;overview&lt;/li&gt;
&lt;li&gt;release date&lt;/li&gt;
&lt;li&gt;runtime&lt;/li&gt;
&lt;li&gt;average rating&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the bottom of the details page you have a button that allows you to add the movie to your watchlist.&lt;/p&gt;

&lt;h3&gt;
  
  
  Trending
&lt;/h3&gt;

&lt;p&gt;The trending link in the header will take you to a separate page that shows the top 5 trending movies (theaters and home release) of the week. You can click on the details button to get more info.&lt;/p&gt;

&lt;h3&gt;
  
  
  Watchlist
&lt;/h3&gt;

&lt;p&gt;Finally, the watchlist link will show you a list of any movies that you have added. It will show the title, poster and details button for every movie on your list. &lt;/p&gt;

&lt;p&gt;Overall I love how much I learned while building this site. It was great to take everything we have learned over the last few weeks and put it to use. I am a big fan of Sinatra and how easy it makes building sites with different routes. I definitely want to keep adding to the site and making it better. A few things I can add in the future are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;database storage of watchlist instead of cookies&lt;/li&gt;
&lt;li&gt;more info on the movie details page such as reviews, trailers and even your own rating of the movie&lt;/li&gt;
&lt;li&gt;tablet and desktop views&lt;/li&gt;
&lt;li&gt;possibly add an option to search TV shows as well&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am very pleased with how my mini project came out!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>ruby</category>
      <category>api</category>
    </item>
    <item>
      <title>TIL Blog Day 10 - View Templates</title>
      <dc:creator>Carlos Castaneda</dc:creator>
      <pubDate>Sat, 05 Aug 2023 15:38:15 +0000</pubDate>
      <link>https://dev.to/carloscastanedadev/til-blog-day-10-view-templates-g5m</link>
      <guid>https://dev.to/carloscastanedadev/til-blog-day-10-view-templates-g5m</guid>
      <description>&lt;h3&gt;
  
  
  Why create view templates?
&lt;/h3&gt;

&lt;p&gt;Before learning about view templates in Sinatra, we had to write our HTML in a String literal. This was problematic because it made our &lt;code&gt;app.rb&lt;/code&gt; file really long and hard to read. We also need to escape all the &lt;code&gt;"&lt;/code&gt; in our HTML code so it would be valid. View templates makes it so we can separate our HTML from our Ruby code/routes.&lt;/p&gt;

&lt;p&gt;To get started:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create a folder named `views'&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In that folder we create a file with the file type &lt;code&gt;.erb&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Within that file we can write our HTML (we now get syntax highlighting and emmet is back!)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finally, to link our Ruby route to this view template we just add a method at the end of our route code like this:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;ruby&lt;br&gt;
get("/") do&lt;br&gt;
  erb(:template_name)&lt;br&gt;
end&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ERB
&lt;/h3&gt;

&lt;p&gt;ERB, or embedded ruby, is a templating language based on Ruby. &lt;br&gt;
It allows you to run Ruby code within your view template and when you run the code the browser only receives pure HTML. The two main tags you will use with ERB are:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;%= %&amp;gt;&lt;/code&gt;&lt;br&gt;
Within these brackets you can write the value of a Ruby expression and it will be inserted into your HTML.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;% %&amp;gt;&lt;/code&gt;&lt;br&gt;
Within these brackets you can execute Ruby code but it will not be inserted into your HTML.&lt;/p&gt;

&lt;p&gt;You can also write your Ruby code in your route and give your view template access to variables by adding an &lt;code&gt;@&lt;/code&gt; in front of your variable names. This will allow you to access them and use them in your erb file.&lt;/p&gt;

&lt;p&gt;View templates make it incredibly easy to separate your HTML from your Ruby code. Overall, Sinatra makes it so you can get a website up and running quickly!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>ruby</category>
    </item>
    <item>
      <title>TIL Blog Day 9 - Sinatra</title>
      <dc:creator>Carlos Castaneda</dc:creator>
      <pubDate>Thu, 03 Aug 2023 19:31:00 +0000</pubDate>
      <link>https://dev.to/carloscastanedadev/til-blog-day-9-sinatra-4iak</link>
      <guid>https://dev.to/carloscastanedadev/til-blog-day-9-sinatra-4iak</guid>
      <description>&lt;h2&gt;
  
  
  Sinatra
&lt;/h2&gt;

&lt;p&gt;Sinatra is a DSL (domain specific language). This basically means that it is a specialized programming language that is designed for a specific narrow area of tasks. In Sinatra's case, this task is creating web applications. Right from the start, I really liked the simplicity that Sinatra provided when creating a quick web app.&lt;/p&gt;

&lt;p&gt;To get Sinatra up and running, first install the sinatra gem and a server gem (puma in this case).&lt;br&gt;
&lt;code&gt;gem install sinatra&lt;/code&gt;&lt;br&gt;
&lt;code&gt;gem install puma&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;After that, you just have to require Sinatra at the top of your Ruby file.&lt;br&gt;
&lt;code&gt;require 'sinatra'&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You can know start writing routes by using an HTTP method followed by the route you want to create and the &lt;code&gt;do&lt;/code&gt; keyword followed by a block of code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="s1"&gt;'/'&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="s2"&gt;"Hello world!"&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you run your Ruby file it will output the string "Hello world!" in your browser.&lt;/p&gt;

&lt;p&gt;Thats how easy it is to get up and running creating routes with Sinatra. You can quickly start creating your very own CRUD(create-read-update-delete) app!&lt;/p&gt;

&lt;p&gt;While it is easy to set up, you can create large and complex web apps with many routes. The possibilities are endless!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>ruby</category>
    </item>
    <item>
      <title>TIL Blog Day 8 - Ruby Gym &amp; Codewars</title>
      <dc:creator>Carlos Castaneda</dc:creator>
      <pubDate>Fri, 28 Jul 2023 00:12:57 +0000</pubDate>
      <link>https://dev.to/carloscastanedadev/til-blog-day-8-ruby-gym-codewars-4mpm</link>
      <guid>https://dev.to/carloscastanedadev/til-blog-day-8-ruby-gym-codewars-4mpm</guid>
      <description>&lt;p&gt;Over the last few days I got caught up in going through the different Tech Prep modules and I haven’t posted a blog lately. &lt;/p&gt;

&lt;p&gt;I recently went through the Ruby Gym module. Overall  it was a great experience. It gave me the chance to put into practice all the reading from the Intro to Ruby module.  The best way to cement new ideas in your brain is through practice. &lt;/p&gt;

&lt;p&gt;After I finished the Ruby Gym module I was still excited to practice my new found Ruby skills. I ended up going to site that I visit daily. &lt;/p&gt;

&lt;h3&gt;
  
  
  Codewars
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.codewars.com"&gt;Codewars&lt;/a&gt; is a great platform to practice your coding skills regardless of the language.  They offer 25+ languages that you can train on. Everyone starts with a ranking of 8 kyu. Kyu is a Japanese term used in martial arts to designate proficiency or experience, in Codewars you start at 8 kyu and work your way down to 1 kyu. You get points for solving coding challenges in your language of choice and you also get points for voting on challenges and even creating them.  It’s a fun way to track your progress!&lt;/p&gt;

&lt;p&gt;I started learning JavaScript last year and I found the challenges on Codewars to be rewarding. You can sort through the challenges and choose specific tags you want to focus on such as fundamentals,  arrays, data structures, etc.  Some challenges early on are simple and can be done in a few minutes. Other challenges can be complex and have taken me over 40 minutes to complete. I do at least one challenge a day and I’m currently a 3 kyu in JavaScript with over 600 challenges completed.&lt;/p&gt;

&lt;p&gt;I recently started doing Ruby challenges and it is a great way to get your spaced repetition after learning new  Ruby methods and concepts. If you feel like you could benefit from this platform please check it out!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>webdev</category>
      <category>ruby</category>
    </item>
    <item>
      <title>TIL Blog Day 7 - Intro to Ruby</title>
      <dc:creator>Carlos Castaneda</dc:creator>
      <pubDate>Tue, 25 Jul 2023 00:10:57 +0000</pubDate>
      <link>https://dev.to/carloscastanedadev/til-blog-day-7-intro-to-ruby-3o8i</link>
      <guid>https://dev.to/carloscastanedadev/til-blog-day-7-intro-to-ruby-3o8i</guid>
      <description>&lt;p&gt;Over the course of a few days I worked on and finished the Intro to Ruby module. Overall it was a lot more enjoyable than Codecademy. While Codecademy is definitely a great resource to learn programming basics, I find the content can be a little dry and the site holds your hand too much. The Ruby modules on First Draft were great and it pushed you to think about what you learned when doing the graded code blocks.&lt;/p&gt;

&lt;p&gt;I have a little over a year of learning JavaScript so I love to see some of the differences between JS and Ruby. Below are a couple of differences I noticed while working on the modules.&lt;/p&gt;

&lt;h3&gt;
  
  
  Truthiness and Falsiness
&lt;/h3&gt;

&lt;p&gt;While working through the 'If statements' module i noticed that Ruby has less 'falsy' values compared to JavaScript.&lt;br&gt;
In Ruby, only &lt;code&gt;false&lt;/code&gt; and &lt;code&gt;nil&lt;/code&gt; are consdered falsy values.&lt;/p&gt;

&lt;p&gt;JavaScript on the other hand has the following falsy values.&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="kc"&gt;false&lt;/span&gt;
&lt;span class="kc"&gt;undefined&lt;/span&gt;
&lt;span class="kc"&gt;null&lt;/span&gt;
&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="nx"&gt;On&lt;/span&gt;
&lt;span class="kc"&gt;NaN&lt;/span&gt;
&lt;span class="dl"&gt;""&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Equality
&lt;/h3&gt;

&lt;p&gt;Another area were Ruby differs from JavaScript is the equality operator. In Ruby you can only use&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="o"&gt;==&lt;/span&gt; 
&lt;span class="o"&gt;!=&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In JavaScript you have access to a third equality operator.&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="o"&gt;!=&lt;/span&gt; &lt;span class="c1"&gt;// not equal to&lt;/span&gt;
&lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="c1"&gt;// loose equality, equal to but attempts to convert operands that are different types&lt;/span&gt;
&lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="c1"&gt;// strict equality, both operands must be same type&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Using the &lt;code&gt;==&lt;/code&gt; operator can create problems in your code&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="c1"&gt;// The following code returns true&lt;/span&gt;
&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This can lead to errors in your code, so generally it is recommended to always use the strict equality operator.&lt;/p&gt;

&lt;p&gt;While Ruby does have a &lt;code&gt;===&lt;/code&gt; operator, it is not used for comparing equality. The &lt;code&gt;===&lt;/code&gt; operator in Ruby checks if an object belongs to a class or range. It can be used like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="c1"&gt;# =&amp;gt; true&lt;/span&gt;

&lt;span class="no"&gt;String&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="s1"&gt;'foo'&lt;/span&gt;
&lt;span class="c1"&gt;# =&amp;gt; true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Overall I really like the simplicity of Ruby. It is easy to type and it doesn't have a lot of curly braces and parentheses all over the place like JS.  &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>ruby</category>
    </item>
    <item>
      <title>TIL Blog Day 6 - Ruby Classes</title>
      <dc:creator>Carlos Castaneda</dc:creator>
      <pubDate>Wed, 19 Jul 2023 22:27:09 +0000</pubDate>
      <link>https://dev.to/carloscastanedadev/til-blog-day-6-ruby-classes-22gj</link>
      <guid>https://dev.to/carloscastanedadev/til-blog-day-6-ruby-classes-22gj</guid>
      <description>&lt;p&gt;Today I was able to finish the Codecademy Ruby module. It ended with an introduction to classes in Ruby. Before Tech Prep I had studied JavaScript and that was my only exposure to classes. This previous exposure to classes has provided me with a solid foundation for grasping the intricacies of Ruby's class system. &lt;/p&gt;

&lt;p&gt;The biggest difference between Ruby classes and JavaScript classes is that Ruby provides built-in access control for class methods and instance methods using public, private, and protected keywords.&lt;/p&gt;

&lt;p&gt;JavaScript, on the other hand, doesn't have built-in access control. Conventionally, developers use naming conventions (like prepending an underscore _) to indicate private members, but these are not strictly enforced by the language itself.&lt;/p&gt;

&lt;p&gt;Overall I am liking the simplicity of Ruby. Tomorrow I will tackle the Intro to Ruby modules and keep reading my Ruby book. &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>ruby</category>
    </item>
    <item>
      <title>TIL Blog Day 5</title>
      <dc:creator>Carlos Castaneda</dc:creator>
      <pubDate>Wed, 19 Jul 2023 00:16:22 +0000</pubDate>
      <link>https://dev.to/carloscastanedadev/til-blog-day-5-27j6</link>
      <guid>https://dev.to/carloscastanedadev/til-blog-day-5-27j6</guid>
      <description>&lt;p&gt;Today I worked on the 2nd half of the Codecademy Ruby module. I finished Hashes/Symbols, Refactoring &amp;amp; Blocks/Procs/Lambdas.&lt;/p&gt;

&lt;p&gt;I was taking notes as I went through the different sections but it was definitely a lot of information. I plan to go over my notes and quickly scan through the sections again for some spaced repetition. I can't wait to start working on some coding challenges so I can put this new knowledge to the test. &lt;/p&gt;

&lt;p&gt;I'm going to finish the day by reading a few more chapters of my Ruby book. &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>ruby</category>
    </item>
    <item>
      <title>TIL Blog Day 4</title>
      <dc:creator>Carlos Castaneda</dc:creator>
      <pubDate>Tue, 18 Jul 2023 00:09:49 +0000</pubDate>
      <link>https://dev.to/carloscastanedadev/til-blog-day-4-1ceo</link>
      <guid>https://dev.to/carloscastanedadev/til-blog-day-4-1ceo</guid>
      <description>&lt;h2&gt;
  
  
  Ruby on Codecademy
&lt;/h2&gt;

&lt;p&gt;Today I started the Ruby module on Codecademy. This is my first exposure to Ruby and I was excited to get started. Ruby would be my 2nd language as I started learning JavaScript in May 2022. While I am not an expert at JS, I have learned a lot over the last year and have done a few projects and hundreds of JS Codewars challenges. I was curious to see how different Ruby is compared to JS.&lt;/p&gt;

&lt;p&gt;I went through control flow, loops, arrays/hashes and blocks/sorting. Overall I can see similarities in both languages. The main issue is learning new syntax and conventions. On a few occasions I declared a variable with the &lt;code&gt;let&lt;/code&gt; keyword since I am used to that syntax. &lt;/p&gt;

&lt;p&gt;Overall I am excited to finish this Codecademy assignment and start working on coding challenges. I really like working on challenges as I find its the best way to really cement the knowledge in your head. I also picked up a highly rated Ruby book called &lt;a href="https://pine.fm/LearnToProgram/"&gt;Learning to Program&lt;/a&gt; by Chris Pine. Spaced repetition is one of the best ways to learn new things. I love to learn on the computer as well as sitting down and reading a book. &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>ruby</category>
    </item>
    <item>
      <title>TIL Blog Day 3</title>
      <dc:creator>Carlos Castaneda</dc:creator>
      <pubDate>Sun, 16 Jul 2023 16:57:33 +0000</pubDate>
      <link>https://dev.to/carloscastanedadev/til-blog-day-3-25l7</link>
      <guid>https://dev.to/carloscastanedadev/til-blog-day-3-25l7</guid>
      <description>&lt;h2&gt;
  
  
  Link in Bio
&lt;/h2&gt;

&lt;p&gt;Today I started working on the 'Link in Bio' assignment. I began by creating the basic structure of the app and adding all my social media account links. For the links below that, I decided to create a developer 'toolbelt' with helpful links. These are a few sites that I still go to when I have questions and am looking for a quick refresher. &lt;/p&gt;

&lt;h4&gt;
  
  
  Link 1
&lt;/h4&gt;

&lt;p&gt;The Mozilla Developer Network, or MDN for short, is the go to website for web developers. Any questions concerning HTML, CSS and JavaScript can be answered by searching this vast site. It is an indispensable tool in web dev.&lt;/p&gt;

&lt;h4&gt;
  
  
  Link 2
&lt;/h4&gt;

&lt;p&gt;This link is a visual guide to CSS. It has a list of 100+ CSS properties. When you click on a property it gives you a short description of the property and then gives you a few examples of how to use the property.&lt;/p&gt;

&lt;h4&gt;
  
  
  Link 3
&lt;/h4&gt;

&lt;p&gt;This link is very well known and is a great resource to have handy when working with Flexbox. It is a visual guide that explains the different properties of Flex and how they work. &lt;/p&gt;

&lt;h4&gt;
  
  
  Link 4
&lt;/h4&gt;

&lt;p&gt;If you want your website or project to have a unique feel you need to change the default fonts. Google Fonts gives you access to hundreds of free to use fonts. You do a quick search and when you find the font you like you click on it and select the different styles you want(italic, bold, light, etc). You can either download the fonts and manually add them to your project or you can use the provided link and embed the font using the &lt;code&gt;link&lt;/code&gt; tag in the &lt;code&gt;head&lt;/code&gt; of your html document.&lt;/p&gt;

&lt;h4&gt;
  
  
  Link 5
&lt;/h4&gt;

&lt;p&gt;The last link is a site that helps you learn basic command line commands. When I first started learning Git I struggled using the CLI (command line interface). This site helped me learn a lot of different commands to navigate my folder structure. It can be a bit overwhelming at first but it is very beneficial to learn the basics of the command line.&lt;/p&gt;

&lt;p&gt;So those are the 5 links I chose to add to my 'Link in Bio' assignment. I hope that you guys find them useful! &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>css</category>
      <category>html</category>
    </item>
    <item>
      <title>TIL Blog Day 2</title>
      <dc:creator>Carlos Castaneda</dc:creator>
      <pubDate>Sat, 15 Jul 2023 02:15:56 +0000</pubDate>
      <link>https://dev.to/carloscastanedadev/til-blog-day-2-3j38</link>
      <guid>https://dev.to/carloscastanedadev/til-blog-day-2-3j38</guid>
      <description>&lt;p&gt;Day 2 of Tech Prep went well. Today I worked on Raghu's HTML review. I have done the Codecademy HTML and CSS modules in the past but its always good to get a refresher. &lt;/p&gt;

&lt;p&gt;The review was very helpful and went over some basic HTML elements and how they work. I think the main takeaway from the HTML review was the difference between inline and block elements. &lt;/p&gt;

&lt;p&gt;Along with the HTMl review, we also got a quick refresher on CSS and the Box model. The final portion of the CSS section was an overview on Flexbox and a link to Flexbox Froggy which is a helpful utility that helps you understand Flexbox syntax with a quick, fun game.&lt;/p&gt;

&lt;p&gt;If anyone is looking for more Flexbox practice, be sure to check out Flexbox Zombies &lt;a href="https://mastery.games/flexboxzombies/"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>css</category>
    </item>
    <item>
      <title>TIL Blog Day 1</title>
      <dc:creator>Carlos Castaneda</dc:creator>
      <pubDate>Thu, 13 Jul 2023 23:28:40 +0000</pubDate>
      <link>https://dev.to/carloscastanedadev/til-blog-day-1-37lo</link>
      <guid>https://dev.to/carloscastanedadev/til-blog-day-1-37lo</guid>
      <description>&lt;p&gt;Today I worked on the 'Getting Started' module of the Tech Prep course. &lt;/p&gt;

&lt;p&gt;I'm excited to start using the 'Ask' question forum. I'm sure that it will be an indispensable tool as we progress through Tech Prep and hopefully the fall program/bootcamp. I have used ChatGPT in the past whenever I ran into issues with writing JavaScript code and it has helped tremendously. &lt;/p&gt;

&lt;p&gt;I was also able to complete the 'Hello, World!' module today.&lt;br&gt;
It was great to learn how to use Github Codespaces and deploying a simple page to the internet. In the past I have used Github Pages and Netlify so it's good to learn about another service like Fly.io&lt;/p&gt;

&lt;p&gt;I'm extremely grateful and excited to participate in Tech Prep. While I do have some experience with JavaScript, I am looking forward to adding Ruby and Ruby on Rails to my tool belt. &lt;/p&gt;

&lt;p&gt;Lastly, one last comment to anyone reading this. Definitely take breaks from coding. It can be tempting to grind away for hours without a break but I have found the stepping away from the computer when you are stumped/tired is a great way to clear your mind. When you come back you will feel even better and can continue coding feeling refreshed. I try to stick to the Pomodoro technique(25 minutes of work, 5 minute break, repeat) and have had great success with it!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>ruby</category>
    </item>
  </channel>
</rss>
