<?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: Luis Augusto</title>
    <description>The latest articles on DEV Community by Luis Augusto (@luisaugusto).</description>
    <link>https://dev.to/luisaugusto</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%2F236605%2Fb4988608-94ec-404d-9d65-973c96d50554.jpeg</url>
      <title>DEV Community: Luis Augusto</title>
      <link>https://dev.to/luisaugusto</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/luisaugusto"/>
    <language>en</language>
    <item>
      <title>The Collab Lab TCL-28: The Road to Lettuce Know</title>
      <dc:creator>Luis Augusto</dc:creator>
      <pubDate>Tue, 14 Sep 2021 00:11:24 +0000</pubDate>
      <link>https://dev.to/the-collab-lab/the-collab-lab-tcl-28-the-road-to-lettuce-know-4nj6</link>
      <guid>https://dev.to/the-collab-lab/the-collab-lab-tcl-28-the-road-to-lettuce-know-4nj6</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;For 8 weeks, TCL 28 cohort members worked together with the guidance of their mentors to create Lettuce Know, a smart shopping list application with a friendly UI.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Who are the &lt;a href="https://the-collab-lab.codes/who-we-are/"&gt;TCL 28 Collabies&lt;/a&gt; and Mentors?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Developers a.k.a. Collabies&lt;/strong&gt;: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/kelsey-siman/"&gt;Kelsey Siman&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/isa-abutaa/"&gt;Isa Abutaa&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/hulya-karakaya/"&gt;Hulya Karakaya&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/sandydaii/"&gt;Sandy Dai&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Mentors&lt;/strong&gt;: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/meganesu/"&gt;Megan Sullivan&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/luisbaugusto/"&gt;Luis Augusto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/scottdreu/"&gt;Scott Reu&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What did they do?
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/the-collab-lab"&gt;
        the-collab-lab
      &lt;/a&gt; / &lt;a href="https://github.com/the-collab-lab/tcl-28-smart-shopping-list"&gt;
        tcl-28-smart-shopping-list
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Overview&lt;/h1&gt;
&lt;h2&gt;
What is this project?&lt;/h2&gt;
&lt;p&gt;The goal of this project is to collaborate with your Collab Lab team to create a “smart” shopping list app that learns your buying habits and helps you remember what you’re likely to need to buy on your next trip to the store.&lt;/p&gt;
&lt;h2&gt;
How does it work?&lt;/h2&gt;
&lt;p&gt;As a user, you will enter items (e.g., “Greek yogurt” or “Paper towels”) into your list. Each time you buy the item, you mark it as purchased in the list. Over time, the app comes to understand the intervals at which you buy different items. If an item is likely to be due to be bought soon, it rises to the top of the shopping list.&lt;/p&gt;
&lt;h2&gt;
Check out an example&lt;/h2&gt;
&lt;p&gt;The app will work in many of the same ways as &lt;a href="https://app.ineedtobuy.xyz/" rel="nofollow"&gt;iNeedToBuy.xyz&lt;/a&gt; (on which our project is based) with the exception that we will not be implementing barcode…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/the-collab-lab/tcl-28-smart-shopping-list"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Over the span of 8 weeks, TCL 28 collaborated together remotely to create &lt;a href="https://lettuce-know.web.app/"&gt;Lettuce Know&lt;/a&gt;, a smart shopping list which learns the user’s shopping habits and predicts when items are due for the next purchase using React, Firebase &amp;amp; Material UI.&lt;/p&gt;

&lt;p&gt;What did that collaboration look like, exactly? Well, each week the Collabies would pair off in twos so they could work together on an assigned issue or story. They would be responsible for working through that story, asking for help from their fellow Collabies or mentors if needed, creating a descriptive pull request on GitHub which outlines what changes were made, completing code reviews, and then finally, merging the pull requests to the main branch.&lt;/p&gt;

&lt;p&gt;Here are a sample of the various tickets that the Collabies worked on together:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generated a new, unique token for users, and stored it inside Firebase Firestore. Also, users can share their tokens with their friends and make changes to their shopping lists.&lt;/li&gt;
&lt;li&gt;Implemented a feature to mark an item on the shopping list as purchased so the app can learn how often the user buys different items. When a purchase is recorded, the estimated number of days until the next purchase date is calculated and recorded in the database.&lt;/li&gt;
&lt;li&gt;Created a feature for sorting shopping list items in order of how soon the user is likely to need to buy each of them again so that it’s clear what the user needs to buy soon.&lt;/li&gt;
&lt;li&gt;Created items schema and stored the item information and connected to user tokens.&lt;/li&gt;
&lt;li&gt;Created a feature for preventing the user from typing a duplicate item, duplicate items are not added to Firestore.&lt;/li&gt;
&lt;li&gt;Added a feature to filter the user's shopping list to make it easier to locate an item in the list.&lt;/li&gt;
&lt;li&gt;Used accessibility tests (a11y) to make sure the app is accessible to all users.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What did they learn?
&lt;/h2&gt;

&lt;p&gt;Before participating in The Collab Lab, our Collabies all had experience with frontend and backend development with varying technologies, however, they all shared experience with HTML, CSS, JavaScript, and React. In addition to using those skills to build their app, they also used some new technologies — Cloud Firestore, a NoSQL document-oriented online database,  Material-UI, and SweetAlert.&lt;/p&gt;

&lt;p&gt;But aside from learning to use Cloud Firestore and query documents in the database, the most important skills that the Collabies learned were communication and remote collaboration. With everyone living in various time zones and having different responsibilities during the week, communication was essential to being successful as a team. The Collabies utilized Slack and GitHub to schedule pair-programming sessions and communicate what changes were being made to the codebase at any given time. When one pair had a question on the story they were working on, they communicated that to the group and received the feedback they needed to continue solving the problem. &lt;/p&gt;

&lt;p&gt;It wasn’t only essential to communicate progress on the project, but also to communicate our successes. Every two weeks, the Collabies and mentors participated in a retrospective, where everyone had the opportunity to share their appreciation for each other, what they thought went well, and what they thought could be better. There was always a lot of love that was shared during those meetings.&lt;/p&gt;

&lt;p&gt;Week after week, the quality of code reviews, pull requests, merges, and communication skills improved. Pair-programming helped them talk through their code and articulate their thought processes verbally. By the time the cohort was just about wrapped, the group was getting weekly requirements knocked out early and started opening their own issues and making tickets.&lt;/p&gt;

&lt;h2&gt;
  
  
  Collabie Experience Highlight
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;During our first day, I immediately felt welcomed by both Andrew and Stacie’s positive radiance. I soon was introduced to the rest of my fellow Collabies and mentors. Ever since I met them, everyone has been super respectful, helpful, and supportive from start to finish. Throughout our pair programming sessions, our office hours on the weekdays, and our code reviews on Saturday, I soon fell in love with the routine I had for 8 weeks. Working together felt adventurous, as we tackled different issues together and admired our accomplishments at the end of each session. From their working style to their coding knowledge, I learned so much from each one of my talented teammates. Even though there may be times we do run into a bug, the other pair and mentors were there for guidance. Our mentors were super responsive, patient, and insightful, I am still shocked how they were able to do all this while balancing a job. Looking back, I really do think this is one of the best teams I have ever been on, and I am so thankful for this experience. :) — &lt;em&gt;Sandy Dai&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Lettuce Know Project Demo
&lt;/h2&gt;

&lt;p&gt;You can check out our project demo here!&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/5ALvZ9s8Y0k"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>react</category>
      <category>firebase</category>
    </item>
    <item>
      <title>TCL-22 Recap</title>
      <dc:creator>Luis Augusto</dc:creator>
      <pubDate>Fri, 04 Jun 2021 23:35:54 +0000</pubDate>
      <link>https://dev.to/the-collab-lab/tcl-22-recap-211m</link>
      <guid>https://dev.to/the-collab-lab/tcl-22-recap-211m</guid>
      <description>&lt;p&gt;Combining the collective minds of some very talented and enthusiastic individuals with a fascination for avocados and mochi ice cream, TCL-22 set out on a quest to create a fun and engaging shopping list app, aptly titled &lt;a href="https://tcl-22-shopping-list.web.app/" rel="noopener noreferrer"&gt;AvoCart&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fihgexoztwml808329tql.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fihgexoztwml808329tql.png" alt="AvoCart Home Page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Built with React, Material UI, Styled Components, and Firebase, AvoCart was an effective use case for both the team to understand how effective communication can create less friction and allow for more creativity and a greater developer experience in group projects. &lt;/p&gt;

&lt;h2&gt;
  
  
  How does it work?
&lt;/h2&gt;

&lt;p&gt;As a user, you will enter items (e.g., “Greek yogurt” or “Paper towels”) into your list. Each time you buy the item, you mark it as purchased in the list. Over time, the app comes to understand the intervals at which you buy different items. If an item is likely to be due to be bought soon, it rises to the top of the shopping list.&lt;/p&gt;

&lt;h2&gt;
  
  
  Highlights
&lt;/h2&gt;

&lt;p&gt;The team clicked right from the beginning with fun pairings like team Baltimore and team Canada. Everyone worked collaboratively and effectively throughout the entire project. Some of the highlights from working together on this project include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The team was able to implement and learn new packages very quickly, such as Notistack, Material UI, and Styled Components, and everyone was open to learning new tools.&lt;/li&gt;
&lt;li&gt;Everyone was very proactive and did not need a lot of direction from the mentors when it came to pairing up and communicating with each other. They began discussing UI in a thread before any of the mentors really knew!&lt;/li&gt;
&lt;li&gt;All team members provided constructive feedback in a respectful manner.&lt;/li&gt;
&lt;li&gt;The growth on the team was amazing. Kudos to Abbey, Karan and Caitlin for each securing jobs during the experience!&lt;/li&gt;
&lt;li&gt;Daria’s curiosity and ability to explain difficult concepts was incredibly helpful, especially with out-of-scope topics such as the pre-built token generator. She does a great job of digging deep into the technical details.&lt;/li&gt;
&lt;li&gt;Everyone on the team was positive and enthusiastic about creating software that was fun to use, and everyone agreed on the avocado theme.&lt;/li&gt;
&lt;li&gt;The team created a Figma board to track moodboard inspiration, and build designs for the avocart site. The designs included both mobile and desktop. Both Figma, and responsive design was something that the team learned by themselves. &lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;You can watch the demo of the project below, and also visit AvoCart through the &lt;a href="https://tcl-22-shopping-list.web.app/" rel="noopener noreferrer"&gt;hosted application&lt;/a&gt; on Firebase or at our &lt;a href="https://github.com/the-collab-lab/tcl-22-smart-shopping-list" rel="noopener noreferrer"&gt;Github repo&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/XJ5hsiWm7Z0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  The Design
&lt;/h2&gt;

&lt;p&gt;Our team built out the design prototypes in Figma before developing the UI, and it was a great experience for collaborating and whiteboarding UX and design ideas for the project! Feel free to take a look at our &lt;a href="https://www.figma.com/file/VH8Z8iouh7F9zBBv1kbuq5/Shopping-App-design?node-id=0%3A1" rel="noopener noreferrer"&gt;Figma board&lt;/a&gt; or preview the images below!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fleotefp3t4i4z61t5o26.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fleotefp3t4i4z61t5o26.png" alt="Figma Designs"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6zkkruhza9zlywfepciy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6zkkruhza9zlywfepciy.png" alt="More Figma Designs"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Authors
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/dariatsvetkova" rel="noopener noreferrer"&gt;Daria Tsvetkova&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kkatoch89" rel="noopener noreferrer"&gt;Karan Katoch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ablizben" rel="noopener noreferrer"&gt;Abby Benjamin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/cafloyd" rel="noopener noreferrer"&gt;Caitlin Floyd&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Advisors
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/laurenmbeatty" rel="noopener noreferrer"&gt;Lauren Beatty&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/jonathanyeong" rel="noopener noreferrer"&gt;Jonathan Yeong&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/luisaugusto" rel="noopener noreferrer"&gt;Luis Augusto&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia0.giphy.com%2Fmedia%2Fl4q7TIW8nEZYOJUf6%2Fgiphy.gif%3Fcid%3D6104955ecb3a9d23af6e64f35d80495113c45b22956b3bdb%26rid%3Dgiphy.gif%26ct%3Dg%26cid%3D6104955ecb3a9d23af6e64f35d80495113c45b22956b3bdb%26rid%3Dgiphy.gif%26ct%3Dg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia0.giphy.com%2Fmedia%2Fl4q7TIW8nEZYOJUf6%2Fgiphy.gif%3Fcid%3D6104955ecb3a9d23af6e64f35d80495113c45b22956b3bdb%26rid%3Dgiphy.gif%26ct%3Dg%26cid%3D6104955ecb3a9d23af6e64f35d80495113c45b22956b3bdb%26rid%3Dgiphy.gif%26ct%3Dg" alt="Bravocado"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>showdev</category>
      <category>javascript</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>The Twitter Verified Fad is Old News. Time to get Github Verified ✅</title>
      <dc:creator>Luis Augusto</dc:creator>
      <pubDate>Wed, 21 Apr 2021 18:36:20 +0000</pubDate>
      <link>https://dev.to/luisaugusto/the-twitter-verified-fad-is-old-news-time-to-get-github-verified-19gm</link>
      <guid>https://dev.to/luisaugusto/the-twitter-verified-fad-is-old-news-time-to-get-github-verified-19gm</guid>
      <description>&lt;p&gt;Have you ever noticed how there are some commits with a &lt;code&gt;verified&lt;/code&gt; tag next to it and wondered what it meant and why not all commits show this message?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwx6py0is1er5k11v1etf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwx6py0is1er5k11v1etf.png" alt="Verified Github Tag"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I always thought it was interesting that commits could be verified and I wondered why it was even necessary. Is a non-verified commit less than a verified one? Does it prevent others from taking credit for your work? So I dug into it and was able to get all of my commits verified, and below I share with you how easy it is to setup and why it is useful.&lt;/p&gt;

&lt;p&gt;If you want to get deep into this, Github has an entire section in their docs that talks about &lt;a href="https://docs.github.com/en/github/authenticating-to-github/managing-commit-signature-verification" rel="noopener noreferrer"&gt;commit signatures&lt;/a&gt;, but I'll do my best to summarize the basics below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu7c7bocxxb7qugi4m6qe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu7c7bocxxb7qugi4m6qe.png" alt="Twitter verified vs Github verified"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What does it mean to have a verified commit?
&lt;/h2&gt;

&lt;p&gt;If you see a verified commit and click on the tag, you will see a message similar to the image above saying that a commit has been signed with the committer's &lt;strong&gt;verified signature&lt;/strong&gt;, and it displays a GPG Key ID as proof of the signature.&lt;/p&gt;

&lt;p&gt;GPG stands for GNU Privacy Guard, which allows developers to encrypt and sign data and communications. You can learn more about it from their &lt;a href="https://www.gnupg.org/index.html" rel="noopener noreferrer"&gt;website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;By default, commits made directly from Github's website, such as PR merges, suggested PR changes, etc, but by generating a GPG key and associating it with your computer, you can use it to digitally sign all your commits and tags locally.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why should I verify my commits?
&lt;/h2&gt;

&lt;p&gt;By signing your commits, GitHub can confirm that commits are really made by you from your device. This is useful especially when working in open source where lots of people are touching the same project, or for security oriented companies.&lt;/p&gt;

&lt;p&gt;You're probably wondering, doesn't Github already know that I made a commit in my name because, well, I made the commit from my account? Yes and no. While you do have authorization to push and pull repositories from your computer, you can easily change the name or email that displays in the commit, and in some case impersonate or be impersonated yourself. Try it!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git config --global user.name "Mona Lisa"
$ git config --global user.email "monalisa@notfake.com"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You are now making commits as Mona Lisa!&lt;/p&gt;

&lt;p&gt;Pretty crazy to think that it's that easy to change the author of a commit.&lt;/p&gt;




&lt;h2&gt;
  
  
  How do I get verified?
&lt;/h2&gt;

&lt;p&gt;So if you are ready to join the exclusive and elite verified club (disclaimer: it's not actually exclusive or elite), it's pretty simple:&lt;/p&gt;

&lt;p&gt;1) Go to the GPG Website and &lt;a href="https://www.gnupg.org/download/#binary" rel="noopener noreferrer"&gt;download the binary release&lt;/a&gt; for your OS&lt;/p&gt;

&lt;p&gt;2) Once installed, open up terminal and run &lt;code&gt;gpg --gen-key&lt;/code&gt;. When asked to enter your email address, &lt;strong&gt;make sure to use the email address associated with your Github account&lt;/strong&gt;. You may also be asked to create a password. &lt;strong&gt;Don't forget the password, you will need it later on!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;3) Once it's done, you should see some information about your new key. You can also run &lt;code&gt;gpg --list-keys&lt;/code&gt; to refer back to it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ gpg --list-keys
gpg: checking the trustdb
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: next trustdb check due at 2023-04-17
/Users/luis/.gnupg/pubring.kbx
------------------------------
pub   rsa3072 2021-04-17 [SC] [expires: 2023-04-17]
      A5BE09DEE58C0ACFE...
uid           [ultimate] Luis Augusto &amp;lt;hello@luis.app&amp;gt;
sub   rsa3072 2021-04-17 [E] [expires: 2023-04-17]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4) See that really long alphanumeric string up there? You'll need to tell Git about that key with these commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git config --global commit.gpgsign true
$ git config --global user.signingkey A5BE09DEE58C0ACFE...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;5) Finally, using that key, run the command &lt;code&gt;$ gpg --armor --export A5BE09DEE58C0ACFE...&lt;/code&gt; to get a public key that looks something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-----BEGIN PGP PUBLIC KEY BLOCK-----
fjaiodjf;aosejaw;fiasjdfoawefao;jsfid
'fsdfijados;ifjaewf aewfiaafjaf;aodfj
iaif;oasjafiajf;iaofj;afjas;fja;fej;f
---END PGP PUBLIC KEY BLOCK-----
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Yes, I did just mash the keyboard, but it's something like that.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;6) Take that entire block and copy it over the GPG Keys section of your &lt;a href="https://github.com/settings/keys" rel="noopener noreferrer"&gt;Keys Settings in Github&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu1dv677pr1be3w1c67ym.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu1dv677pr1be3w1c67ym.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7) Make your first commit on your computer! You will be asked for that password you made in step 2, and if you are on a Mac, you can save it to your keychain so you'll never be asked about it again.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyz5n7omihbzsxifijcab.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyz5n7omihbzsxifijcab.png" alt="Password Prompt"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now every time you make a commit, you'll be feeling like this cool pup.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/kiBcwEXegBTACmVOnE/source.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/kiBcwEXegBTACmVOnE/source.gif" alt="Dog with sunglasses"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;I hope this helps! If you want to learn more about it, here is a recap of the resources I mentioned:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/github/authenticating-to-github/managing-commit-signature-verification" rel="noopener noreferrer"&gt;Managing commit signature verification
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/github/authenticating-to-github/troubleshooting-commit-signature-verification" rel="noopener noreferrer"&gt;Troubleshooting commit signature verification&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.gnupg.org/index.html" rel="noopener noreferrer"&gt;GnuPG&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>github</category>
      <category>security</category>
      <category>git</category>
    </item>
    <item>
      <title>Code With Friends: Breaking down a community events platform I built with Vue, Firebase, and Netlify</title>
      <dc:creator>Luis Augusto</dc:creator>
      <pubDate>Tue, 29 Sep 2020 00:28:15 +0000</pubDate>
      <link>https://dev.to/luisaugusto/code-with-friends-breaking-down-a-community-events-platform-i-built-with-vue-firebase-and-netlify-16k9</link>
      <guid>https://dev.to/luisaugusto/code-with-friends-breaking-down-a-community-events-platform-i-built-with-vue-firebase-and-netlify-16k9</guid>
      <description>&lt;p&gt;Over the month of September, I volunteered to help build out a website for a seasonal event called Code With Friends. It's hosted by &lt;a href="https://www.hellomayuko.com/" rel="noopener noreferrer"&gt;Mayuko&lt;/a&gt;, who is known for her online presence in networks such as &lt;a href="https://www.youtube.com/user/hellomayuko" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; and &lt;a href="https://www.twitch.tv/hellomayuko" rel="noopener noreferrer"&gt;Twitch&lt;/a&gt;. Code With Friends is a month-long coding event where folks from all over the world work on their personal coding projects together in a non-competitive setting!&lt;/p&gt;

&lt;p&gt;In this article, I am going to review some of the decisions I made while building the site. You can view the site at &lt;a href="https://codewithfriends.io/" rel="noopener noreferrer"&gt;codewithfriends.io&lt;/a&gt; and the repo is open source:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/CWFriends" rel="noopener noreferrer"&gt;
        CWFriends
      &lt;/a&gt; / &lt;a href="https://github.com/CWFriends/CodeWithFriends" rel="noopener noreferrer"&gt;
        CodeWithFriends
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Learn new things! Make cool stuff! Have fun! Do all that, with an online community of friends.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a href="https://app.netlify.com/sites/code-with-friends/deploys" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/7802a6d35a4f3bc95e202ed83e1760105010144df766459a6cfc90b524dc7284/68747470733a2f2f6170692e6e65746c6966792e636f6d2f6170692f76312f6261646765732f66616131353035612d623330632d346231612d396161652d6166366535616335313838622f6465706c6f792d737461747573" alt="Netlify Status"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
  &lt;a href="https://codewithfriends.io" rel="nofollow noopener noreferrer"&gt;
    &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FCWFriends%2FCodeWithFriends%2Fstatic%2Fico.png" alt="Logo" width="160" height="160"&gt;
  &lt;/a&gt;
&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Code with Friends&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;Learn new things! Make cool stuff! Have fun! Do all that, with an online community of friends.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Table of Contents&lt;/h2&gt;
&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/CWFriends/CodeWithFriends#about-the-project" rel="noopener noreferrer"&gt;About the Project&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/CWFriends/CodeWithFriends#built-with" rel="noopener noreferrer"&gt;Built With&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://github.com/CWFriends/CodeWithFriends#getting-started" rel="noopener noreferrer"&gt;Getting Started&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/CWFriends/CodeWithFriends#installation" rel="noopener noreferrer"&gt;Installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/CWFriends/CodeWithFriends#editing-content" rel="noopener noreferrer"&gt;Editing Content&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;a href="https://github.com/CWFriends/CodeWithFriends#contributing" rel="noopener noreferrer"&gt;Contributing&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://github.com/CWFriends/CodeWithFriends#license" rel="noopener noreferrer"&gt;License&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://github.com/CWFriends/CodeWithFriends#acknowledgements" rel="noopener noreferrer"&gt;Acknowledgements&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;About The Project&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href="https://code-with-friends.netlify.app" rel="nofollow noopener noreferrer"&gt;This website&lt;/a&gt; is used to support seasonal coding events hosted by &lt;a href="https://www.hellomayuko.com/" rel="nofollow noopener noreferrer"&gt;Mayuko&lt;/a&gt;. Through the website, users can view and participate in the latest seasonal coding event, read news updates, submit projects, and learn more about Code with Friends and its previous events.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Built With&lt;/h3&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://nuxtjs.org/" rel="nofollow noopener noreferrer"&gt;NuxtJS&lt;/a&gt; for static site generation&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://vuetifyjs.com/en/" rel="nofollow noopener noreferrer"&gt;Vuetify&lt;/a&gt; for the frontend framework&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.netlify.com/" rel="nofollow noopener noreferrer"&gt;Netlify&lt;/a&gt; for static hosting&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.netlifycms.org/" rel="nofollow noopener noreferrer"&gt;Netlify CMS&lt;/a&gt; for Content Management&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://firebase.google.com/" rel="nofollow noopener noreferrer"&gt;Firebase&lt;/a&gt; for authentication, serverless functions, media storage and databases&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.algolia.com/" rel="nofollow noopener noreferrer"&gt;Algolia&lt;/a&gt; for searching users for check-in groups&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Getting Started&lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;To get a local copy up and running follow these steps.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Installation&lt;/h3&gt;

&lt;/div&gt;


&lt;ol&gt;

&lt;li&gt;Clone the repo with &lt;code&gt;git clone &lt;a href="https://github.com/luisaugusto/CodeWithFriends.git" rel="noopener noreferrer"&gt;https://github.com/luisaugusto/CodeWithFriends.git&lt;/a&gt;&lt;/code&gt;
&lt;/li&gt;

&lt;li&gt;Make sure you have the latest version of &lt;a href="https://nodejs.org/" rel="nofollow noopener noreferrer"&gt;Node&lt;/a&gt; installed…&lt;/li&gt;

&lt;/ol&gt;
&lt;/div&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/CWFriends/CodeWithFriends" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
 

&lt;h2&gt;
  
  
  Site Requirements
&lt;/h2&gt;

&lt;p&gt;There were a few requirements I imposed on myself when building the website:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Since this is a volunteer project for a non-profit, expenses should be at a minimum.&lt;/li&gt;
&lt;li&gt;I made the site open source so others could contribute in case I become no longer available, so I needed to make all the content and data easily editable&lt;/li&gt;
&lt;li&gt;The site had to be built in about 3 weeks, so I wanted to lean on a component framework to do all the heavy lifting of the development for me. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Solutions
&lt;/h2&gt;

&lt;p&gt;Each of these requirements led me to the main decisions of how I would build the site:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I would host the site on &lt;a href="https://www.netlify.com/" rel="noopener noreferrer"&gt;Netlify&lt;/a&gt; as a static site for easy CI/CD and free hosting&lt;/li&gt;
&lt;li&gt;All of the content would be managed in markdown files to mitigate the need for a database and make contributions easier. I decided to use &lt;a href="https://www.netlifycms.org/" rel="noopener noreferrer"&gt;Netlify CMS&lt;/a&gt; since I already use Netlify for Hosting&lt;/li&gt;
&lt;li&gt;Since Vue is my expertise, I opted to use &lt;a href="https://nuxtjs.org/" rel="noopener noreferrer"&gt;Nuxt&lt;/a&gt; as a static site generator and leverage &lt;a href="https://vuetifyjs.com/en/" rel="noopener noreferrer"&gt;Vuetify&lt;/a&gt; as the component framework.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Site Features
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Frldpdp6rqrp1783mynuw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Frldpdp6rqrp1783mynuw.png" alt="Signup Form"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The website is being used for all of the signups and submissions of projects during the event, and to make it easier I wanted users to sign in with Github to submit their projects and information. Since I am using a static site, I went with &lt;a href="https://firebase.google.com/" rel="noopener noreferrer"&gt;Firebase&lt;/a&gt; to setup a serverless database with Firestore and run some functions that would enter signups in a spreadsheet for the staff to review the entries. The signup form also makes use of &lt;a href="https://www.algolia.com/" rel="noopener noreferrer"&gt;Algolia Search&lt;/a&gt; connected to Firestore to query users to add to a check-in group:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fzwlwda4d4ac2vz71y72a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fzwlwda4d4ac2vz71y72a.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is also a calendar of important dates for each event as well as a calendar for lab hours, which users can leverage to meet with guides who can help them with questions relating to their project. This was really easy to do with the &lt;a href="https://vuetifyjs.com/en/components/calendars/" rel="noopener noreferrer"&gt;Vuetify Calendar Component&lt;/a&gt;, and it's just pulling data from the markdown files.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Frj0kqt0nk56c6je8n9c1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Frj0kqt0nk56c6je8n9c1.png" alt="Calendar"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Costs
&lt;/h2&gt;

&lt;p&gt;So far, the only cost that has been accrued was $15 for adding a collaborator to a Netlify Team to transfer the site over, but it's just a one time payment since we won't be needing multiple collaborators after transfer completed. Netlify also has a build limit for 300 minutes per month which is pretty easy to stay under as long as we are mindful of our builds.&lt;/p&gt;

&lt;p&gt;Firebase also has a very generous free tier that includes a good quota for many of their tools, and they include $300 of free credit for the first 3 months! The only quota I have hit so far was the reads, which is limited to 50k in the free tier. This is my first time using Firebase and I thought that was plenty. But on the day the site launched, we hit over 2.2 million!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwzq66rdmyau7c2u2aagr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwzq66rdmyau7c2u2aagr.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This was due to me not optimizing reads well enough, and so I've been working the past few days to get this down by creating indexes and documents with grouped data, as well as switching to Algolia for user searching. Firebase doesn't support text queries, so it was incredibly wasteful to collect all users when doing a search. Since I've been optimizing, I've dropped the reads dramatically. Even if I can't get it down to 50k per day, an additional 100k reads per day is just 6¢. In total, I'm thinking Firebase will cost about $1.50 a month on a busy month and maybe even be free on an off season. I'll have to monitor it over the next few months to get a better idea.&lt;/p&gt;

&lt;p&gt;Algolia is also free for the first 10,000 searches, and since I'm just using it on the signup form which can't be consistently accessed, I doubt we will hit that for a while.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;While I have built many static sites in the past (including my own personal site), this has definitely been a huge learning experience for me with optimizing Firebase and getting every piece of the site to work together harmoniously. &lt;/p&gt;

&lt;p&gt;Signups are open now and anyone is welcome to join! Thanks for reading and I would appreciate feedback! &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>vue</category>
      <category>webdev</category>
      <category>serverless</category>
    </item>
    <item>
      <title>Does a Top Level Domain (TLD) really matter?</title>
      <dc:creator>Luis Augusto</dc:creator>
      <pubDate>Wed, 09 Sep 2020 18:20:32 +0000</pubDate>
      <link>https://dev.to/luisaugusto/does-a-top-level-domain-tld-really-matter-2240</link>
      <guid>https://dev.to/luisaugusto/does-a-top-level-domain-tld-really-matter-2240</guid>
      <description>&lt;p&gt;With my current domain, luis.codes, set to expire next month, I was contemplating whether or not I should renew it. It is more on the expensive side ($72/mo), and it's not really perfect for what I want it to say about me. I don't just code,  I design and create digital experiences. As much as I would have liked to have luis.dev, I unfortunately missed the boat on that, so I went out looking at what other options I have available to me.&lt;/p&gt;

&lt;p&gt;My criteria is not too bad I don't think, I just want something short, not too expensive, and with a TLD that I can use personally and professionally.&lt;/p&gt;

&lt;p&gt;Namecheap claims to have &lt;a href="https://www.namecheap.com/domains/registration/results/?domain=&amp;amp;type=beast"&gt;479 different TLDs&lt;/a&gt;, which is pretty incredible! There are a ton of options at different price points, but as usual, the ones suited to a developer are mostly taken for (.dev, .io, .sh, etc).&lt;/p&gt;

&lt;p&gt;After sifting through the options, I ended up securing luis.earth while I decide whether or not I would really like to use that. I thought it might be good for me because it stands out, and I could use a subdomain for my site (dev.luis.earth), I can setup an email such as &lt;a href="mailto:dev@luis.earth"&gt;dev@luis.earth&lt;/a&gt;,  and as someone who is environmentally conscious it might signify that I care about the planet. Since it is generic enough, it doesn't shoehorn me into doing one thing (just codes, or just a dev, just designs, etc). I have been writing it out with email addresses and website urls to see if it looks good, and I think I am happy about it but just worried it doesn't fit how just about every other developer uses .dev or the like.&lt;/p&gt;

&lt;p&gt;Maybe I am thinking about it too much. Do you think that a TLD is really important, or so long as it isn't too cheesy it doesn't really matter? Do you include that in your first impressions of a website?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>Hello Dev! Introducing myself to the community</title>
      <dc:creator>Luis Augusto</dc:creator>
      <pubDate>Tue, 14 Jul 2020 20:38:45 +0000</pubDate>
      <link>https://dev.to/luisaugusto/hello-dev-introducing-myself-to-the-community-17nc</link>
      <guid>https://dev.to/luisaugusto/hello-dev-introducing-myself-to-the-community-17nc</guid>
      <description>&lt;p&gt;I recently found out through an article that you can create a special repo on Github that can display a Readme on your profile. It's a pretty neat feature, and I'd recommend reading this if you're interested in learning how to do it! &lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/jayehernandez" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kvdUNYrl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--xIK15PFv--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/182330/8aea2747-b867-403b-acdd-dfeb7f7d8348.jpg" alt="jayehernandez image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/jayehernandez/3-ways-to-spice-up-your-github-profile-readme-1276" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;3 Ways to Spice up your Github Profile README 🔥&lt;/h2&gt;
      &lt;h3&gt;Jaye Hernandez ・ Jul 12 ・ 3 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#github&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#markdown&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#statistics&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#branding&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;Anyways, I wanted to share what I wrote and introduce myself a little bit to the community and my followers. I've been posting on here since late 2019, and one of my goals is to write 50 posts by the end of the year. Here's a little bit about who I am, what I'm working on, and some other tidbits:&lt;/p&gt;

&lt;p&gt;I am a fullstack developer working at a &lt;a href="https://www.hdmz.com/"&gt;creative agency&lt;/a&gt; using the LAMP stack, building websites and applications for companies in the medical and biotech fields. On personal projects, I lean towards a &lt;a href="https://jamstack.org/"&gt;JAMstack&lt;/a&gt; with Node and Vue/Nuxt/Vuex, relying on API integrations and static site generators.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔭 I’m currently working on:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Internal projects at work built on &lt;a href="https://pimcore.com/en"&gt;Pimcore&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Building up my online presence through &lt;a href="https://dev.to/"&gt;blogging&lt;/a&gt; and &lt;a href="https://twitter.com/legendofluis"&gt;Twitter&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;A few personal projects, like a small social network for family members, an interactive site for hiking trails, and an NPM package&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🌱 I’m currently learning:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;React - After so many years of using Vue, I figured it would be also good to see what it's like developing with a different framework. It'll also give me a chance to understand JSX and CSS-in-JS.&lt;/li&gt;
&lt;li&gt;TypeScript - Currently finding ways to introduce it into my applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  👯 I’m looking to collaborate on:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Open source projects built with JS, especially ones that use React or TypeScript&lt;/li&gt;
&lt;li&gt;Resolving issues with CSS layouts and responsiveness, Nuxt/Vue, or other JS bugs&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🤔 I’m looking for help with:
&lt;/h2&gt;

&lt;p&gt;Finding ways to meet and connect with other developers, especially during the limbo of quarantines and lockdowns. I have always been recommended to find a mentor, and would love to hear from other people's experiences in those types of programs.&lt;/p&gt;

&lt;h2&gt;
  
  
  💬 Ask me about:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Ways you can improve your lighthouse scores&lt;/li&gt;
&lt;li&gt;How to get the most out of CSS Grid and Flexbox Layouts&lt;/li&gt;
&lt;li&gt;How you can preserve the planet and reduce your carbon footprint.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📫 How to reach me:
&lt;/h2&gt;

&lt;p&gt;You can contact me at my &lt;a href="//mailto:hello@luis.codes"&gt;email address&lt;/a&gt; or at one of the other places I hang out at, such as on Dev, my &lt;a href="https://twitter.com/legendofluis"&gt;Twitter&lt;/a&gt;, and &lt;a href="https://www.linkedin.com/in/luisbaugusto"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  😄 Pronouns:
&lt;/h2&gt;

&lt;p&gt;He/Him/His&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚡ Fun facts:
&lt;/h2&gt;

&lt;p&gt;I have a Bachelors in Music Production &amp;amp; Engineering, which helped nourish my interests in creativity and design. I later translated those skillsets into programming and web development, and I have enjoyed building cool things for over 8 years now.&lt;/p&gt;




&lt;p&gt;You can find more about me on my &lt;a href="https://luis.codes/"&gt;personal website&lt;/a&gt;, and feel free to comment below if you have any questions, thanks!&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>career</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Light Mode or Dark Mode, which do you prefer?</title>
      <dc:creator>Luis Augusto</dc:creator>
      <pubDate>Thu, 02 Jul 2020 00:01:48 +0000</pubDate>
      <link>https://dev.to/luisaugusto/light-mode-or-dark-mode-which-do-you-prefer-16k1</link>
      <guid>https://dev.to/luisaugusto/light-mode-or-dark-mode-which-do-you-prefer-16k1</guid>
      <description>&lt;p&gt;Do you put all of you apps in dark mode if possible? Do you think every website should have an option for this, or at least integrate with your device's settings, such as with the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme"&gt;&lt;code&gt;prefers-color-scheme&lt;/code&gt;&lt;/a&gt; CSS property? Is your IDE an exception to your preference? &lt;/p&gt;

&lt;p&gt;I thought it would be interesting to hear what others have to say. I do try to put everything in dark mode, including my IDE, and for some devices with OLED screens, that means better battery performance. Some people I talk to mention that it's harder to read text with dark backgrounds and could affect accessibility. While it's great to always have the options, that means extra work for the UI designers to create a secondary color scheme for it.&lt;/p&gt;

&lt;p&gt;Facebook has jumped on the bandwagon with their new design, as well as YouTube and a plethora of apps which have had it for years. What are your thoughts?&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>discuss</category>
      <category>css</category>
    </item>
    <item>
      <title>Stop Using Fixed Headers and Start Using Sticky Ones</title>
      <dc:creator>Luis Augusto</dc:creator>
      <pubDate>Thu, 25 Jun 2020 18:41:30 +0000</pubDate>
      <link>https://dev.to/luisaugusto/stop-using-fixed-headers-and-start-using-sticky-ones-1k30</link>
      <guid>https://dev.to/luisaugusto/stop-using-fixed-headers-and-start-using-sticky-ones-1k30</guid>
      <description>&lt;p&gt;Like them or not, headers that stay visible at the top of the page are a very popular UI and will likely not be going away anytime. Many sites make use of this kind of header, including Reddit, Facebook, Apple, and even DEV. What do each of these sites have in common? &lt;strong&gt;They are all using fixed headers&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;I wanted to share that there is a better way to do this, and I am curious as to why no one is taking the approach of using a sticky header instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  The issue with fixed headers
&lt;/h2&gt;

&lt;p&gt;By using &lt;code&gt;position: fixed&lt;/code&gt; on an element like the header, the element is removed from the stack and positioned relative to the browser window. That means it no longer takes up space and any elements positioned after it will adjust to fill up that area. In regards to a header, that means elements will be placed underneath it and you'll need to accommodate for it by using padding or relative positioning.&lt;/p&gt;

&lt;p&gt;See Dev or Apple, which use a variable to store the header height and applies padding to the body or main tag:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6wfx5l3ia4o6y0wv1kuq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6wfx5l3ia4o6y0wv1kuq.png" alt="Dev"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqyolz5fuajqgsdgrfofi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqyolz5fuajqgsdgrfofi.png" alt="Apple"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Or Facebook, which uses relative positioning and a top offset to adjust for spacing:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4m6m5kp05b00zmwgpu9u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4m6m5kp05b00zmwgpu9u.png" alt="Facebook"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Or Reddit, which uses a margin to solve it instead:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fmc9eejkzeg04r6t0qsaz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fmc9eejkzeg04r6t0qsaz.png" alt="Reddit"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is probably the worst way to build a header like because it's not responsive and extra unnecessary css. I suggest that headers like this should use sticky positioning instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  The benefits of sticky positioning
&lt;/h2&gt;

&lt;p&gt;By using &lt;code&gt;position: sticky&lt;/code&gt; on a element like the header, it does a few great things. First of all, it doesn't remove the element from the stack, so it still keeps it's real estate in the container. That means you don't have to perform any of these hacks to get the right spacing for the main content and the header. Also, it still stays at the top of page or wherever you need it based on the scroll position. So instead of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Setting header to &lt;code&gt;position:fixed&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Calculating the height with JS or manually adding it to a variable&lt;/li&gt;
&lt;li&gt;Adjusting the position of the content with padding, margins, or relative positioning with that variable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All you have to do is:&lt;/p&gt;

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

header {
  position: sticky;
  top: 0;
}


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;And that's it, no extra variables or calculations needed.&lt;/p&gt;

&lt;p&gt;Here is a very simple example in a Codepen:&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/LegendOfLuis/embed/QWyMdVP?height=600&amp;amp;default-tab=css,result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
 &lt;/p&gt;

&lt;h2&gt;
  
  
  Browser Support
&lt;/h2&gt;

&lt;p&gt;Of course, the only downside is that it does not work on IE 11:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fevqdkckzp7ipl2rq99ur.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fevqdkckzp7ipl2rq99ur.png" alt="Can I Use Sticky Position"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But really though, who is accessing the Apple website or Dev from IE11? Maybe I'm just crazy, but think there a few sites that can start making this transition over to sticky positioning.&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>design</category>
    </item>
    <item>
      <title>My first browser extension is now available! The process of creating a new tab replacement for Chrome and Firefox</title>
      <dc:creator>Luis Augusto</dc:creator>
      <pubDate>Tue, 23 Jun 2020 17:33:28 +0000</pubDate>
      <link>https://dev.to/luisaugusto/my-first-browser-extension-is-now-available-the-process-of-creating-a-new-tab-replacement-for-chrome-and-firefox-52if</link>
      <guid>https://dev.to/luisaugusto/my-first-browser-extension-is-now-available-the-process-of-creating-a-new-tab-replacement-for-chrome-and-firefox-52if</guid>
      <description>&lt;p&gt;During the month of May, I participated in a &lt;a href="https://scottkwang.github.io/CodeWithFriends-Spring2020/"&gt;Code with Friends&lt;/a&gt; event hosted by &lt;a href="https://www.youtube.com/user/hellomayuko"&gt;Mayuko&lt;/a&gt;. The goal of the event was to bring developers together and build projects that improved quarantine life.&lt;/p&gt;

&lt;p&gt;I love being in the outdoors, and having to comply with shelter in place can make it difficult to experience nature while also being cooped up all day and working from home. Outdoor Inspiration was built as a reminder of what is waiting for us when life returns to normal, and to encourage people to make plans to explore the outdoors. I wanted to inspire people with views of natural wonders while they are unable to experience them in person.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building a Browser Extension
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Hzfpeu1v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5onba5ymv9d164zdrbla.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Hzfpeu1v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5onba5ymv9d164zdrbla.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I used this project as a learning experience for building extensions on Chrome and Firefox. While the initial build is a very simple extension that basically replaces the new tab with a Vue application, I plan to add to this over time and build more features to better integrate it with each browser.&lt;/p&gt;

&lt;p&gt;I primarily used the &lt;a href="https://developer.chrome.com/extensions"&gt;Chrome Extension Guide&lt;/a&gt; to build this out initially. For Firefox, I used their &lt;a href="https://extensionworkshop.com/"&gt;Extension Workshop Site&lt;/a&gt; to learn about their process, but since I have a very basic extension, I just had to make sure my manifest.json file was compatible with Firefox. Mozilla has a very useful tool called &lt;a href="https://www.extensiontest.com/"&gt;Extension Test&lt;/a&gt; which I used to test my Chrome extension, and fortunately it was easily portable over to Firefox.&lt;/p&gt;




&lt;p&gt;Building a browser extension can definitely be a daunting task, especially if you want deeper integration with the browser as well as cross-compatibility. If you just want to replace the new tab without all the bells and whistles however, it's as easy as making a &lt;code&gt;manifest.json&lt;/code&gt; and packaging it up. I do want to add a few other integrations over time, such as browser syncing and settings which will add another layer of complexity to the app, but will be a great next step for me to learn more about building browser extensions.&lt;/p&gt;

&lt;p&gt;Feel free to check out the project on Github and let me know your thoughts!&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/luisaugusto"&gt;
        luisaugusto
      &lt;/a&gt; / &lt;a href="https://github.com/luisaugusto/outdoor-inspiration"&gt;
        outdoor-inspiration
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A new tab extension for Chrome and Firefox that displays pictures and descriptions of US National Parks.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a href="https://app.netlify.com/sites/outdoor-inspiration/deploys" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/422dde189a32aa583e49b1bc9ad1a0b64160327e/68747470733a2f2f6170692e6e65746c6966792e636f6d2f6170692f76312f6261646765732f31393738303833332d346466322d346532642d616363312d3666636236623231636539372f6465706c6f792d737461747573" alt="Netlify Status"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/96ed34a254a2e8aec050c4837d4d5c58e3060fab/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7061636b6167652d6a736f6e2f762f6c7569736175677573746f2f6f7574646f6f722d696e737069726174696f6e"&gt;&lt;img src="https://camo.githubusercontent.com/96ed34a254a2e8aec050c4837d4d5c58e3060fab/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7061636b6167652d6a736f6e2f762f6c7569736175677573746f2f6f7574646f6f722d696e737069726174696f6e" alt="GitHub package.json version"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/70dc69feb5d17e1d3c7a4d2c33de3c2eece2adbd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7265706f2d73697a652f6c7569736175677573746f2f6f7574646f6f722d696e737069726174696f6e"&gt;&lt;img src="https://camo.githubusercontent.com/70dc69feb5d17e1d3c7a4d2c33de3c2eece2adbd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7265706f2d73697a652f6c7569736175677573746f2f6f7574646f6f722d696e737069726174696f6e" alt="GitHub repo size"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/7727110d1a94d784a0b38eba2c2ed34d27f84583/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6c7569736175677573746f2f6f7574646f6f722d696e737069726174696f6e"&gt;&lt;img src="https://camo.githubusercontent.com/7727110d1a94d784a0b38eba2c2ed34d27f84583/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6c7569736175677573746f2f6f7574646f6f722d696e737069726174696f6e" alt="GitHub"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h6&gt;
Please consider supporting my work and other projects:&lt;/h6&gt;
&lt;p&gt;&lt;a href="https://offset.earth/luisaugusto" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/41e740f4f2211aa29aea89ddaeac9a090a48d7ee/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506c616e7425323061253230547265652d2546302539462538432542332d677265656e" alt="Plant a Tree"&gt;&lt;/a&gt;
&lt;a href="https://www.buymeacoffee.com/luiscodes" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/4cbf6089a105dca51bebe58f2efd8aa9541fac46/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4275792532304d6525323061253230426f62612532305465612d2546302539462541352541342d79656c6c6f77" alt="Buy Me a Boba Tea"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
⛰ Outdoor Inspiration&lt;/h1&gt;
&lt;p&gt;A new tab extension that displays photos and descriptions of US National Parks.&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Chrome&lt;/th&gt;
&lt;th&gt;Firefox&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://chrome.google.com/webstore/detail/mjgkcdcikkpendiikknkdhanooeiohee/" rel="nofollow"&gt;Download&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/outdoor-inspiration/" rel="nofollow"&gt;Download&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;The app can also be previewed as a static site &lt;a href="https://outdoor-inspiration.netlify.app/" rel="nofollow"&gt;here&lt;/a&gt; as well as run locally.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://raw.githubusercontent.com/luisaugusto/outdoor-inspiration/master/screenshot.jpg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TuCCdpbl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/luisaugusto/outdoor-inspiration/master/screenshot.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Photos from the application are fetched from my galleries in &lt;a href="https://www.flickr.com/photos/188326816@N04/galleries" rel="nofollow"&gt;Flickr&lt;/a&gt;, and information about the park is pulled from the &lt;a href="https://www.nps.gov/index.htm" rel="nofollow"&gt;NPS website&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
About the Project&lt;/h2&gt;
&lt;h3&gt;
Inspiration&lt;/h3&gt;
&lt;p&gt;I build this project as part of the &lt;a href="https://scottkwang.github.io/CodeWithFriends-Spring2020/" rel="nofollow"&gt;Code with Friends&lt;/a&gt; event in May 2020, which had a theme of building something to improve quarantine life.&lt;/p&gt;
&lt;p&gt;I love being in the outdoors, and having to comply with shelter in place can make it difficult to experience nature while also being cooped up all day and working from home. Outdoor Inspiration was built as a reminder of what is waiting for us when life returns to normal, and to…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/luisaugusto/outdoor-inspiration"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>showdev</category>
      <category>vue</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Understanding Semantic Versioning</title>
      <dc:creator>Luis Augusto</dc:creator>
      <pubDate>Fri, 15 May 2020 00:19:40 +0000</pubDate>
      <link>https://dev.to/luisaugusto/understanding-semantic-versioning-27kf</link>
      <guid>https://dev.to/luisaugusto/understanding-semantic-versioning-27kf</guid>
      <description>&lt;p&gt;Semantic Versioning (or Semver) is a methodology for releasing software with a universal versioning system. You have probably seen semantic versioning in many places, such as in node package files or Github tags and releases. So how does it work?&lt;/p&gt;




&lt;h2&gt;
  
  
  The Basics
&lt;/h2&gt;

&lt;p&gt;Semantic versioning consists of 3 numbers, each separated by a decimal. An example of a semantic version would be &lt;code&gt;3.6.4&lt;/code&gt;, or &lt;code&gt;4.12.11&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The first digit is a MAJOR version which should be incremented when there are incompatible API changes&lt;/li&gt;
&lt;li&gt;The second digit is a MINOR version that is incremented when new functionality it added in a backwards compatible manner&lt;/li&gt;
&lt;li&gt;The third digit is a PATCH version used for backwards compatible bug fixes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To visualize this, semantic versioning follows the pattern &lt;code&gt;MAJOR.MINOR.PATCH&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Sometimes, you may also see a pre-release tag appended to the version with a dash, such as &lt;code&gt;1.0.0-alpha&lt;/code&gt; or &lt;code&gt;1.0.0-beta.12&lt;/code&gt;, which are both valid semantic versions.&lt;/p&gt;




&lt;h2&gt;
  
  
  Version Updates
&lt;/h2&gt;

&lt;p&gt;In your package files, a majority of the dependencies will have a special character at the beginning of it, such as &lt;code&gt;~&lt;/code&gt; or &lt;code&gt;^&lt;/code&gt;. These are special characters that are used to signify how a package should be updated.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;~&lt;/code&gt; tells us that the package can updated to the latest PATCH update, but has a fixed MAJOR and MINOR version. &lt;code&gt;~4.5.6&lt;/code&gt; means all releases from &lt;code&gt;4.5.6&lt;/code&gt; up to, but not including &lt;code&gt;4.6.0&lt;/code&gt; can be used.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;^&lt;/code&gt; is similar to &lt;code&gt;~&lt;/code&gt; but also allows updates to the MINOR version, so &lt;code&gt;^1.2.3&lt;/code&gt; can be updated all the way to, but not including, &lt;code&gt;2.0.0&lt;/code&gt;. However, below &lt;code&gt;1.0.0&lt;/code&gt;, it will act the same as &lt;code&gt;~&lt;/code&gt; in that it will only update the PATCH version, the MINOR version will be fixed. &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;For anything below &lt;code&gt;0.1.0&lt;/code&gt;, all versions prefixed with &lt;code&gt;^&lt;/code&gt; will not update, even to the next PATCH.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Version Ranges
&lt;/h2&gt;

&lt;p&gt;Other than specifying a version with a special character, there are also ways to write ranges of versions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;gt;=&lt;/code&gt; will signify any version greater than, or greater than or equal to, the specified version, including MAJOR versions, such as &lt;code&gt;&amp;gt;=2.0.0&lt;/code&gt;. &lt;code&gt;&amp;lt;&lt;/code&gt; and &lt;code&gt;&amp;lt;=&lt;/code&gt; work the same but with less than.&lt;/li&gt;
&lt;li&gt;Putting two versions next to each other will specify a range, such as &lt;code&gt;1.0.0 - 1.5.0&lt;/code&gt; (equivalent to &lt;code&gt;&amp;gt;=1.0.0 &amp;lt;1.5.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;An &lt;code&gt;x&lt;/code&gt; can be placed in any version number as a wildcard, it just means any version is acceptable, such as &lt;code&gt;2.x&lt;/code&gt; or &lt;code&gt;1.2.x&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Here are some examples of valid semantic versions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1.2.3
0.0.1-alpha.2
1.0.0-beta
0.9.0-b.89.z
^1.4.5
~1.9.1
&amp;gt;2.0.0
&amp;gt;=19.4.3
5.x
&amp;lt;4.0.0
&amp;lt;=4.0.0
1.2.3 - 1.2.6
&amp;gt;5.0.0 &amp;lt;=2.1.0
&amp;gt;=10.1.8 &amp;lt;11.0.0-beta.9
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;I hope this brief explanation can help you understand your package files, and also help you in releasing your own projects! There is much more to learn more about semantic versioning, and you can check out the &lt;a href="https://semver.org/"&gt;official site&lt;/a&gt; which goes into way more detail about each requirement for naming your versions.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>node</category>
    </item>
    <item>
      <title>How to get that neat Messenger gradient scrolling effect with CSS</title>
      <dc:creator>Luis Augusto</dc:creator>
      <pubDate>Sun, 10 May 2020 18:22:02 +0000</pubDate>
      <link>https://dev.to/luisaugusto/how-to-get-that-neat-messenger-gradient-scrolling-effect-with-css-24eo</link>
      <guid>https://dev.to/luisaugusto/how-to-get-that-neat-messenger-gradient-scrolling-effect-with-css-24eo</guid>
      <description>&lt;p&gt;For those of you that use Messenger, you probably already know that there are ways to customize a chatroom by changing the message colors, emoji, group name and photo, nicknames, etc. However I recently found that you can add a gradient to you message bubbles which I find to be really pleasing:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SzfgN7JT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8ytnenw5wot6fhtx24qo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SzfgN7JT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8ytnenw5wot6fhtx24qo.png" alt="Messenger Background Options"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So how does this work? It's actually really easy to do and a great use of &lt;code&gt;background-attachment: fixed&lt;/code&gt; property value.&lt;/p&gt;

&lt;p&gt;With &lt;code&gt;background-attachment: fixed&lt;/code&gt;, the background does not scroll with its container, and it becomes fixed in place relative to the browser viewport. You can see this a lot in Squarespace templates to create that parallax image effect:&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/LegendOfLuis/embed/XWmqPaM?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The same property can be used with gradients, since those are also treated as images in CSS, creating that scrolling gradient effect. If you also have multiple elements with the same background and fixed attachment, it makes it look like the background gradients flow into each other from bubble to bubble. Since the background is relative to the viewport, the size of the gradient is the size of the viewport:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fKDByB4d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--PuoLPQ6s--/c_imagga_scale%2Cf_auto%2Cfl_progressive%2Ch_420%2Cq_auto%2Cw_1000/https://dev-to-uploads.s3.amazonaws.com/i/t14cd07am0p0y1cv2oc2.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fKDByB4d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--PuoLPQ6s--/c_imagga_scale%2Cf_auto%2Cfl_progressive%2Ch_420%2Cq_auto%2Cw_1000/https://dev-to-uploads.s3.amazonaws.com/i/t14cd07am0p0y1cv2oc2.gif" alt="Messenger gradient scrolling"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What are some other neat things you can do with this? You can make it look like a box is disappearing when you scroll up:&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/LegendOfLuis/embed/JjYvavp?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;It's pretty neat what one property in CSS can do to create such an interesting design effect. I'll definitely be putting this in my toolkit!&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>design</category>
    </item>
    <item>
      <title>Anyone here still using CSS Floats?</title>
      <dc:creator>Luis Augusto</dc:creator>
      <pubDate>Sat, 02 May 2020 22:12:58 +0000</pubDate>
      <link>https://dev.to/luisaugusto/anyone-here-still-using-css-floats-3gd</link>
      <guid>https://dev.to/luisaugusto/anyone-here-still-using-css-floats-3gd</guid>
      <description>&lt;p&gt;Since the introduction of grids and flexbox, I have pretty much removed floats from my vocabulary. The only situation in which I would use them would be with positioning images next to wrapping text. Are there any other situations you have run into where floats were a better solution than other alignment tools?&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/LegendOfLuis/embed/vYNWLEE?height=600&amp;amp;default-tab=css,result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>css</category>
      <category>discuss</category>
      <category>webdev</category>
      <category>html</category>
    </item>
  </channel>
</rss>
