<?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: Yash Dave </title>
    <description>The latest articles on DEV Community by Yash Dave  (@amorpheuz).</description>
    <link>https://dev.to/amorpheuz</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%2F212738%2Fa26d9497-5623-4ecf-878d-afaaf5523c87.png</url>
      <title>DEV Community: Yash Dave </title>
      <link>https://dev.to/amorpheuz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/amorpheuz"/>
    <language>en</language>
    <item>
      <title>Commiticons: Hashes are boring, Identify commits with Avatars via Actions</title>
      <dc:creator>Yash Dave </dc:creator>
      <pubDate>Fri, 21 Aug 2020 13:17:51 +0000</pubDate>
      <link>https://dev.to/amorpheuz/commiticons-hashes-are-boring-identify-commits-with-avatars-via-actions-5d88</link>
      <guid>https://dev.to/amorpheuz/commiticons-hashes-are-boring-identify-commits-with-avatars-via-actions-5d88</guid>
      <description>&lt;p&gt;It's a fine morning, the birds are chirping outside your window. You just had a hearty breakfast and are ready to get down to business, push some improvements to the next revolutionary project that you have been working on for the past month. You let out a small burp, chuckle to yourself and fire off &lt;code&gt;git log&lt;/code&gt; to remind yourself what you did yesterday. &lt;/p&gt;

&lt;p&gt;Immediately, a bunch of commits pop up on your screen lead by lifeless strings of chars. What a mood killer to the perfectly fine morning! Only if you had some better way to uniquely identify your commits.&lt;/p&gt;

&lt;p&gt;I think I have figured out the solution:&lt;br&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%2F1ayw2zm5ibehd11d7fcx.gif" 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%2F1ayw2zm5ibehd11d7fcx.gif" alt="Commiticons Demo"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  My Workflow
&lt;/h3&gt;

&lt;p&gt;"Why should users have all the fun?", the concept of &lt;code&gt;identicons&lt;/code&gt; has been around for long and many websites use it to generate a default avatar for users. They take a unique property attached to the user, such as email or username. Next, they run a hashing algorithm on it which generates a long incredibly unique string, called as a hash, from your smaller unique string. This hash is then passed to an algorithm which generates images as programmed by its dev.&lt;/p&gt;

&lt;p&gt;This is where my idea comes in. Since all git commits already have unique hashes, why not generate identicons for them? I configured a small (but interesting) workflow to automatically generate unique avatars for your commits. I call these avatars &lt;code&gt;Commiticons&lt;/code&gt;, identicons but for commits! 😬🎉&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Commiticons are avatars for your commits directly saved to your GitHub Commits as a Commit Comment.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here's what the workflow does:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First, I check-out my repo with &lt;a href="https://github.com/actions/checkout" rel="noopener noreferrer"&gt;actions/checkout&lt;/a&gt; since I want to save the Commiticons to my repo.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Checkout&lt;/span&gt;
  &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Next, I want my Commiticons to be accompanied by a joke to make them even more fun. So, I use the infamous &lt;a href="https://icanhazdadjoke.com/api" rel="noopener noreferrer"&gt;icanhazdadjoke API&lt;/a&gt; to grab one for me via cURL. I also must perform a few clean-up steps on them to make it simple for me to push them to the GitHub as a commit comment later.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I clean up any new lines, &lt;code&gt;\n&lt;/code&gt; or &lt;code&gt;\r\n&lt;/code&gt;, in the joke to prevent problems when I later push it to GitHub with &lt;code&gt;cURL&lt;/code&gt;. The &lt;a href="https://www.gnu.org/software/sed/manual/sed.html" rel="noopener noreferrer"&gt;sed&lt;/a&gt; command replaces &lt;code&gt;\n&lt;/code&gt; with the &lt;code&gt;&amp;lt;br&amp;gt;&lt;/code&gt; tag. Next, the &lt;a href="https://en.wikipedia.org/wiki/Tr_(Unix)" rel="noopener noreferrer"&gt;tr&lt;/a&gt; command deletes &lt;code&gt;\r&lt;/code&gt; which is present in case of Windows Line Endings. Read more about &lt;a href="https://en.wikipedia.org/wiki/Carriage_return#Computers" rel="noopener noreferrer"&gt;\r&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Newline#In_programming_languages" rel="noopener noreferrer"&gt;\n&lt;/a&gt; and &lt;a href="https://www.hanselman.com/blog/CarriageReturnsAndLineFeedsWillUltimatelyBiteYouSomeGitTips.aspx" rel="noopener noreferrer"&gt;the problem of CRLF&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Get a dad-joke&lt;/span&gt;
  &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
    &lt;span class="s"&gt;echo "::set-env name=TEMP::$(curl -H "Accept: text/plain" https://icanhazdadjoke.com/ | sed -r ':a;N;$!ba;s/\n/&amp;lt;br&amp;gt;/g' | tr -d '\r')"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Next, I replace all " in the text with ', via tr, in order to avoid clashes with the " with the commands in the cURL command. The $TEMP is the env variable that saves output of previous command.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Escape double-quotes&lt;/span&gt;
  &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
    &lt;span class="s"&gt;echo "::set-env name=DAD_JOKE::$(echo "$TEMP" | tr \" \')"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;&lt;small&gt;These commands are enclosed within echo and set-env to save them as Environment variables for future steps.&lt;/small&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Now, I use the &lt;a href="https://docs.github.com/en/rest" rel="noopener noreferrer"&gt;GitHub REST API v3&lt;/a&gt; to push them as a commit comment. Here are some more details about how to &lt;a href="https://docs.github.com/en/rest/reference/repos#create-a-commit-comment" rel="noopener noreferrer"&gt;Create a commit comment&lt;/a&gt;. The request is also &lt;a href="https://docs.github.com/en/actions/configuring-and-managing-workflows/authenticating-with-the-github_token" rel="noopener noreferrer"&gt;authenticated by using GITHUB_TOKEN&lt;/a&gt;.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Create commit comment&lt;/span&gt;
  &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
    &lt;span class="s"&gt;curl \&lt;/span&gt;
    &lt;span class="s"&gt;-X POST \&lt;/span&gt;
    &lt;span class="s"&gt;-H "Accept: application/vnd.github.v3+json" \&lt;/span&gt;
    &lt;span class="s"&gt;-H 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \&lt;/span&gt;
        &lt;span class="s"&gt;$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/commits/$GITHUB_SHA/comments \&lt;/span&gt;
        &lt;span class="s"&gt;-d "{\"body\":\"| ![Commiticon](https://avatars.dicebear.com/api/human/$GITHUB_SHA.svg?h=250) | $DAD_JOKE |\n|:-:|:-:|\"}"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;The process of generating the Commiticons is handled by &lt;a href="https://avatars.dicebear.com/" rel="noopener noreferrer"&gt;Dicebear Avatars&lt;/a&gt;, a hidden gem that I was glad I came across! They are the ❤ and soul of Commiticons.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Finally, I save the svg image to my repo which is already present here courtesy of actions/checkout in first step!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I also need to push it to my repo via git. You might be going "Wait what? Isn't this already GitHub?". It's a Gotcha that had me surprised when I was new to Actions too! In simple terms, actions are their own computers which run automatically by following a script which we provide them (our workflow files).&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Write Commiticon&lt;/span&gt;
  &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
    &lt;span class="s"&gt;curl https://avatars.dicebear.com/api/human/$(echo $GITHUB_SHA).svg?h=250 --output .commiticons/$(echo $GITHUB_SHA).svg&lt;/span&gt;

&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Push Changes&lt;/span&gt;
  &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
    &lt;span class="s"&gt;git config user.name Amorpheuz&lt;/span&gt;
    &lt;span class="s"&gt;git config user.email connect@amorpheuz.dev&lt;/span&gt;
    &lt;span class="s"&gt;git add .commiticons/&lt;/span&gt;
    &lt;span class="s"&gt;git commit -m "Generated Commiticon for: $GITHUB_SHA"&lt;/span&gt;
    &lt;span class="s"&gt;git push&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;I would happily argue that this is a "Maintainer Must-Have". But on further thought, I would like to nominate this Workflow for the &lt;strong&gt;"Wacky Wildcards"&lt;/strong&gt; category. Who wouldn't find a commit followed with a Dad joke Wacky?&lt;/p&gt;
&lt;h3&gt;
  
  
  Yaml File or Link to Code
&lt;/h3&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/Amorpheuz" rel="noopener noreferrer"&gt;
        Amorpheuz
      &lt;/a&gt; / &lt;a href="https://github.com/Amorpheuz/Commiticons" rel="noopener noreferrer"&gt;
        Commiticons
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Bring your commits to life with unique Avatars for each of them!
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Commiticons&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/150ec6e692507c5ee2c7f6eaf26888987d26465f4cb3b0dfd2d4820f31101e93/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f616d6f72706865757a2f636f6d6d697469636f6e732f47656e6572617465253230436f6d6d697469636f6e"&gt;&lt;img src="https://camo.githubusercontent.com/150ec6e692507c5ee2c7f6eaf26888987d26465f4cb3b0dfd2d4820f31101e93/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f616d6f72706865757a2f636f6d6d697469636f6e732f47656e6572617465253230436f6d6d697469636f6e" alt="Workflow Status"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/2e85f2ffd49c258d5904f3594507e6465720d4cc0ac05aaf1f1107ac9600623a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f616d6f72706865757a2f636f6d6d697469636f6e73"&gt;&lt;img src="https://camo.githubusercontent.com/2e85f2ffd49c258d5904f3594507e6465720d4cc0ac05aaf1f1107ac9600623a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f616d6f72706865757a2f636f6d6d697469636f6e73" alt="License"&gt;&lt;/a&gt; &lt;a href="https://twitter.com/amorpheuz" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e583ff83a923a90efd643570394723703f3eb5dba0636df5a8181bbb943b2b85/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f616d6f72706865757a" alt="Twitter Follow"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Bring your commits to life with unique Avatars for each of them!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"Why should users have all the fun?"&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The concept of identicons has been around for long and many websites use it to generate a default avatar for users. Since all git commits already have unique hashes, why not generate identicons for them? I configured a small (but interesting) workflow to automatically generate unique avatars for your commits. I call these avatars &lt;strong&gt;Commiticons&lt;/strong&gt;, identicons but for commits! 😬🎉&lt;/p&gt;
&lt;p&gt;&lt;em&gt;A submission for the &lt;a href="https://dev.to/devteam/announcing-the-github-actions-hackathon-on-dev-3ljn" rel="nofollow"&gt;DEV: GitHub Actions For Open Source!&lt;/a&gt; hackathon! Read more about commiticons on my blog post &lt;a href="https://dev.to/amorpheuz/commiticons-hashes-are-boring-identify-commits-with-avatars-via-actions-5d88" rel="nofollow"&gt;Commiticons: Hashes are boring, Identify commits with Avatars via Actions&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Demo&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Amorpheuz/Commiticons/blob/main/commiticons-demo.gif"&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%2FAmorpheuz%2FCommiticons%2Fraw%2Fmain%2Fcommiticons-demo.gif" alt=""&gt;&lt;/a&gt;&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/Amorpheuz/Commiticons#workflow-file" rel="noopener noreferrer"&gt;Workflow File&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Amorpheuz/Commiticons#core-functionality" rel="noopener noreferrer"&gt;Core Functionality&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Amorpheuz/Commiticons#how-does-githubworkflowscommiticonsyml-work" rel="noopener noreferrer"&gt;How does .github/workflows/commiticons.yml work?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Amorpheuz/Commiticons#credits" rel="noopener noreferrer"&gt;Credits&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Workflow File&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;The workflow file for Commiticons can be found at &lt;a href="https://github.com/Amorpheuz/Commiticons/blob/main/.github/workflows/commiticons.yml" rel="noopener noreferrer"&gt;.github/workflows/commiticons.yml&lt;/a&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Core Functionality&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Commiticons are a concept, they are unique avatars for a specific…&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/Amorpheuz/Commiticons" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Workflow file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Generate Commiticon&lt;/span&gt;

&lt;span class="c1"&gt;# Controls when the action will run. Triggers the workflow on push&lt;/span&gt;
&lt;span class="c1"&gt;# events but only for the main branch&lt;/span&gt;
&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;main&lt;/span&gt; &lt;span class="pi"&gt;]&lt;/span&gt;

&lt;span class="c1"&gt;# A workflow run is made up of one or more jobs that can run sequentially or in parallel&lt;/span&gt;
&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="c1"&gt;# This workflow contains a single job called "build"&lt;/span&gt;
  &lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="c1"&gt;# The type of runner that the job will run on&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;

    &lt;span class="c1"&gt;# Steps represent a sequence of tasks that will be executed as part of the job&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

    &lt;span class="c1"&gt;# Checkout latest commit&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Checkout&lt;/span&gt;
      &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v2&lt;/span&gt;

    &lt;span class="c1"&gt;# Fetch a dad joke from icanhazdadjoke and replace newlines with &amp;lt;br&amp;gt; tag&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Get a dad-joke&lt;/span&gt;
      &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
        &lt;span class="s"&gt;echo "::set-env name=TEMP::$(curl -H "Accept: text/plain" https://icanhazdadjoke.com/ | sed -r ':a;N;$!ba;s/\n/&amp;lt;br&amp;gt;/g' | tr -d '\r')"&lt;/span&gt;

    &lt;span class="c1"&gt;# Replace double quotes with single quotes to avoid clashes in further text&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Escape double-quotes&lt;/span&gt;
      &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
        &lt;span class="s"&gt;echo "::set-env name=DAD_JOKE::$(echo "$TEMP" | tr \" \')"&lt;/span&gt;

    &lt;span class="c1"&gt;# Add Commiticon as Commit Comment&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Create commit comment&lt;/span&gt;
      &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
        &lt;span class="s"&gt;curl \&lt;/span&gt;
        &lt;span class="s"&gt;-X POST \&lt;/span&gt;
        &lt;span class="s"&gt;-H "Accept: application/vnd.github.v3+json" \&lt;/span&gt;
        &lt;span class="s"&gt;-H 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \&lt;/span&gt;
        &lt;span class="s"&gt;$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/commits/$GITHUB_SHA/comments \&lt;/span&gt;
        &lt;span class="s"&gt;-d "{\"body\":\"| ![Commiticon](https://avatars.dicebear.com/api/human/$GITHUB_SHA.svg?h=250) | $DAD_JOKE |\n|:-:|:-:|\"}"&lt;/span&gt;

    &lt;span class="c1"&gt;# Write file to .commiticons folder&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Write Commiticon&lt;/span&gt;
      &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
        &lt;span class="s"&gt;curl https://avatars.dicebear.com/api/human/$(echo $GITHUB_SHA).svg?h=250 --output .commiticons/$(echo $GITHUB_SHA).svg&lt;/span&gt;

    &lt;span class="c1"&gt;# Push changes&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Push Changes&lt;/span&gt;
      &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
        &lt;span class="s"&gt;git config user.name Amorpheuz&lt;/span&gt;
        &lt;span class="s"&gt;git config user.email connect@amorpheuz.dev&lt;/span&gt;
        &lt;span class="s"&gt;git add .commiticons/&lt;/span&gt;
        &lt;span class="s"&gt;git commit -m "Generated Commiticon for: $GITHUB_SHA"&lt;/span&gt;
        &lt;span class="s"&gt;git push&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Additional Resources / Info
&lt;/h3&gt;

&lt;p&gt;Here are all the projects that make this workflow possible, A huge shout out to all of them:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://github.com/DiceBear/avatars" rel="noopener noreferrer"&gt;Dicebear Avatars&lt;/a&gt; for the lovely avatars. 🖼&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://icanhazdadjoke.com/" rel="noopener noreferrer"&gt;Icanhazdadjoke&lt;/a&gt; for the jokes! 🤣&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/actions/checkout" rel="noopener noreferrer"&gt;actions/checkout&lt;/a&gt; for making repo interactions a breeze. 🏄🏽‍♂️&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;sed&lt;/code&gt;, &lt;code&gt;cURL&lt;/code&gt; and &lt;code&gt;tr&lt;/code&gt; commands. 👨🏽‍💻&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.github.com/en" rel="noopener noreferrer"&gt;GitHub Docs&lt;/a&gt; for all the knowledge! 🧠&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;With Commiticons, I aimed to improve my grasp over not only Actions but also shell commands. Commiticons can be used for a variety of useful things too, like identifying releases with their unique avatars, jailing an avatar for mischief (if it introduced a bug) or even celebrating its birthday every year with a cake! The possibilities are endless. 🤯&lt;/p&gt;

&lt;p&gt;I hope you found this concept fun and look forward to seeing how you take it ahead! If you are confused about something, have some ideas, or just want to chat; reach out to me via my Twitter &lt;a href="https://twitter.com/amorpheuz" rel="noopener noreferrer"&gt;@Amorpheuz&lt;/a&gt;, the discussion below or via DEV Connect!&lt;/p&gt;

</description>
      <category>actionshackathon</category>
      <category>showdev</category>
      <category>github</category>
      <category>actions</category>
    </item>
    <item>
      <title>WSL2: Setup DEV.to with Linux but on Windows!</title>
      <dc:creator>Yash Dave </dc:creator>
      <pubDate>Thu, 18 Jun 2020 10:18:08 +0000</pubDate>
      <link>https://dev.to/amorpheuz/wsl2-setup-dev-to-with-linux-but-on-windows-3cdk</link>
      <guid>https://dev.to/amorpheuz/wsl2-setup-dev-to-with-linux-but-on-windows-3cdk</guid>
      <description>&lt;p&gt;&lt;small&gt;&lt;br&gt;
This post was originally posted on my new and shiny blog site &lt;a href="https://amorpheuz.dev/posts/2020/06/wsl2-setup-dev-to-with-linux-but-on-windows/"&gt;amorpheuz.dev&lt;/a&gt;, do give it a visit! You will also find a bonus section on setting up Chrome in WSL towards the end, which will enable you to run test-cases on your machine.&lt;br&gt;
&lt;/small&gt;&lt;/p&gt;




&lt;p&gt;Hey Everyone! In this post, I will be outlining how you can run the DEV Community website on your windows machine with all your dependencies installed to Linux. &lt;a href="https://docs.dev.to/installation/"&gt;Installation - DEV Docs&lt;/a&gt; lists a variety of methods you can use to do the same, and we will be following the Linux Guide with minor modifications.&lt;/p&gt;

&lt;p&gt;WSL was the first time where I was able to work with a Linux environment. Since then, the idea of running Windows and Linux together has always been fascinating to me. I have been dabbling with dual-boot systems of Windows and Manjaro, but it does keep breaking time to time leading me to setup Manjaro again. With the introduction of WSL2 to Windows Stable with version 2004, I was excited to try setup DEV again on Windows. WSL2 brings a lot of improvements over WSL1, including better support for applications, and you can read more about them in this &lt;a href="https://code.visualstudio.com/blogs/2019/09/03/wsl2#_whats-changing-in-wsl-2"&gt;VS Code Blog&lt;/a&gt; from when WSL2 was in beta.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;li&gt;
Installing DEV's presrequisites

&lt;ul&gt;
&lt;li&gt;Ruby &amp;amp; rbenv&lt;/li&gt;
&lt;li&gt;Nvm, Node and Yarn&lt;/li&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;li&gt;Imagemagick&lt;/li&gt;
&lt;li&gt;Redis&lt;/li&gt;
&lt;li&gt;Elasticsearch&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Installing DEV&lt;/li&gt;
&lt;li&gt;End Notes&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prerequisites &lt;small&gt;[Back to Top]&lt;/small&gt;
&lt;/h2&gt;

&lt;p&gt;Before we start, if you are new to &lt;code&gt;Windows Subsystem For Linux&lt;/code&gt;, I recommend following the &lt;a href="https://docs.microsoft.com/en-us/windows/wsl/install-win10"&gt;Install Windows Subsystem for Linux (WSL) on Windows 10&lt;/a&gt; documentation on how to install it. After setting up WSL2 as the default version, download the &lt;a href="https://www.microsoft.com/en-us/p/ubuntu-1804-lts/9n9tngvndl3q"&gt;Ubuntu 18.04 LTS&lt;/a&gt; distribution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://code.visualstudio.com/"&gt;Visual Studio Code&lt;/a&gt; is an open-source code editor by Microsoft that has a ton of features. One of its extensions allows a developer to Remote into the WSL environment and directly develop over there! I recommend installing the Visual Studio Code application with &lt;a href="https://code.visualstudio.com/remote-tutorials/wsl/getting-started"&gt;Remote development in WSL&lt;/a&gt; extension if you aren't comfortable with terminal-based editors.&lt;/p&gt;

&lt;p&gt;After completing the initial setup, we move on to another bunch of prerequisites, the repository prerequisites!&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing the DEV community's prerequisites
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Ruby &amp;amp; rbenv &lt;small&gt;[Back to Top]&lt;/small&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/rbenv/rbenv"&gt;Rbenv&lt;/a&gt; is a nifty tool that allows developers to set up a &lt;a href="https://www.ruby-lang.org/en/"&gt;Ruby&lt;/a&gt; environment easily. Grab a quick note of the Ruby Version listed in the badge of DEV's README.md file before you begin.&lt;/li&gt;
&lt;li&gt;Install Ruby's dependencies with the following commands.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update 
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Clone rbenv and Ruby with the following set of commands, replace &lt;code&gt;*.*.*&lt;/code&gt; in the second-last and third-last lines with the ruby version you noted earlier. If you are not using &lt;code&gt;Bash&lt;/code&gt; as your shell, replace &lt;code&gt;~/.bashrc&lt;/code&gt; with the config file of your shell.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd 
&lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'export PATH="$HOME/.rbenv/bin:$PATH"'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; ~/.bashrc
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'eval "$(rbenv init -)"'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; ~/.bashrc
 &lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="nv"&gt;$SHELL&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash

rbenv &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt;.&lt;span class="k"&gt;*&lt;/span&gt;.&lt;span class="k"&gt;*&lt;/span&gt; 
rbenv global &lt;span class="k"&gt;*&lt;/span&gt;.&lt;span class="k"&gt;*&lt;/span&gt;.&lt;span class="k"&gt;*&lt;/span&gt; 
ruby &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Nvm, Node &amp;amp; Yarn &lt;small&gt;[Back to Top]&lt;/small&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Like how Ruby has a version manager, &lt;a href="https://nodejs.org/en/"&gt;Node&lt;/a&gt; has one too, called &lt;a href="https://github.com/nvm-sh/nvm"&gt;nvm&lt;/a&gt;.  Take a note of the node version from &lt;a href="https://github.com/thepracticaldev/dev.to/blob/master/.nvmrc"&gt;here&lt;/a&gt;. To install it, follow the commands below. Replace &lt;code&gt;*.*&lt;/code&gt; with the version in the link above.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-o-&lt;/span&gt; https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
&lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="nv"&gt;$SHELL&lt;/span&gt;
nvm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt;.&lt;span class="k"&gt;*&lt;/span&gt;
node &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Then install &lt;a href="https://classic.yarnpkg.com/lang/en/"&gt;Yarn&lt;/a&gt; with the following commands.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://dl.yarnpkg.com/debian/pubkey.gpg | &lt;span class="nb"&gt;sudo &lt;/span&gt;apt-key add -
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"deb https://dl.yarnpkg.com/debian/ stable main"&lt;/span&gt; | &lt;span class="nb"&gt;sudo tee&lt;/span&gt; /etc/apt/sources.list.d/yarn.list
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;yarn
yarn &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  PostgreSQL &lt;small&gt;[Back to Top]&lt;/small&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;PostgreSQL is the database that powers DEV. Let's install it next! Run the following commands to set up PostgreSQL. Make sure to replace &lt;code&gt;$YOUR_USERNAME&lt;/code&gt; with the username you set for Ubuntu.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;postgresql postgresql-contrib libpq-dev
&lt;span class="nb"&gt;sudo&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; service postgresql start
&lt;span class="nb"&gt;sudo&lt;/span&gt; &lt;span class="nt"&gt;-u&lt;/span&gt; postgres createuser &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="nv"&gt;$YOUR_USERNAME&lt;/span&gt;
createdb
&lt;span class="nb"&gt;sudo&lt;/span&gt; &lt;span class="nt"&gt;-u&lt;/span&gt; &lt;span class="nv"&gt;$YOUR_USERNAME&lt;/span&gt; psql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The last command will open PostgreSQL's shell for you. Use the command &lt;code&gt;\password&lt;/code&gt; to set a password for your user. After setting up the password, use the command &lt;code&gt;\quit&lt;/code&gt; to exit.&lt;/li&gt;
&lt;li&gt;Use the command &lt;code&gt;sudo -i service postgresql start&lt;/code&gt; to start PostgreSQL server everytime you restart your WSL machine.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Imagemagick &lt;small&gt;[Back to Top]&lt;/small&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://imagemagick.org/"&gt;Imagemagick&lt;/a&gt; is an open-source Image manipulation software suite that is used by DEV and lots of other projects to modify and optimize images. Although there is an option to install &lt;a href="https://imagemagick.org/script/install-source.php"&gt;Imagemagick from the source&lt;/a&gt;, we will be installing it as a package via &lt;code&gt;apt&lt;/code&gt;. I have noticed from different issues on github that installing from the source lead to buggy installs on WSL.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;imagemagick
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;To check if the installation was successful, use the command &lt;code&gt;identify&lt;/code&gt; with a path to a &lt;code&gt;.png&lt;/code&gt; or &lt;code&gt;.jpg&lt;/code&gt; file, example &lt;code&gt;identify 10489.png&lt;/code&gt;. &lt;strong&gt;Pro Tip&lt;/strong&gt;, to open the Linux environment in Window's file explorer, use &lt;code&gt;explorer.exe .&lt;/code&gt;!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Redis &lt;small&gt;[Back to Top]&lt;/small&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://redis.io/"&gt;Redis&lt;/a&gt; is an in-memory data structure store which can be used as a database, cache and message broker. Use the following commands to install it.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;redis-server
&lt;span class="nb"&gt;sudo&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; service redis-server start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Execute the command &lt;code&gt;redis-cli&lt;/code&gt; to verify its installation. It will open the Redis CLI. Type &lt;code&gt;exit&lt;/code&gt; in the Redis CLI to go back to the shell.&lt;/li&gt;
&lt;li&gt;Use the command &lt;code&gt;sudo -i service redis-server start&lt;/code&gt; to start the Redis server everytime you restart your WSL machine.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Elasticsearch &lt;small&gt;[Back to Top]&lt;/small&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;DEV uses &lt;a href="https://www.elastic.co/elasticsearch/"&gt;Elasticsearch&lt;/a&gt; for lightning-fast search results. Follow the commands below to install it.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd
&lt;/span&gt;wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-oss-7.5.2-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-oss-7.5.2-linux-x86_64.tar.gz.sha512
shasum &lt;span class="nt"&gt;-a&lt;/span&gt; 512 &lt;span class="nt"&gt;-c&lt;/span&gt; elasticsearch-oss-7.5.2-linux-x86_64.tar.gz.sha512 
&lt;span class="nb"&gt;tar&lt;/span&gt; &lt;span class="nt"&gt;-xzf&lt;/span&gt; elasticsearch-oss-7.5.2-linux-x86_64.tar.gz
&lt;span class="nb"&gt;cd &lt;/span&gt;elasticsearch-oss-7.5.2/
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'export ES_HOME="$HOME/elasticsearch-7.5.2/"'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; ~/.bashrc
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'export PATH="$ES_HOME/bin:$PATH"'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; ~/.bashrc
&lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="nv"&gt;$SHELL&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;To run the Elasticsearch server, run the command &lt;code&gt;elasticsearch&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installing DEV &lt;small&gt;[Back to Top]&lt;/small&gt;
&lt;/h2&gt;

&lt;p&gt;Congratulations! You are almost done with your journey, now for the final stretch. We will be setting up your fork of the DEV repository on your machine.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fork DEV's repository by clicking on the &lt;code&gt;Fork&lt;/code&gt; button on the top right of the &lt;a href="https://github.com/thepracticaldev/dev.to"&gt;dev.to repository&lt;/a&gt; on GitHub.&lt;/li&gt;
&lt;li&gt;Clone your forked repository. Here's a quick rundown of the concepts of &lt;a href="https://help.github.com/en/github/getting-started-with-github/fork-a-repo"&gt;Forking a repo&lt;/a&gt; by GitHub if you are new to Git &amp;amp; GitHub.&lt;/li&gt;
&lt;li&gt;Run the command &lt;code&gt;gem install bundler&lt;/code&gt; within the &lt;code&gt;dev.to&lt;/code&gt; folder on your machine which you get after cloning your fork. All the further instructions refer to items within the &lt;code&gt;dev.to&lt;/code&gt; folder unless mentioned otherwise.&lt;/li&gt;
&lt;li&gt;Now, we need to set up some configuration details for the other tools to work with your DEV fork on the local machine. 

&lt;ul&gt;
&lt;li&gt;If you are a VS Code user and set up with Remote development extension, execute the command &lt;code&gt;code .&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Create a file called &lt;code&gt;application.yml&lt;/code&gt; inside the &lt;code&gt;config&lt;/code&gt; folder. This file will contain sensitive details and thus is automatically ignored by git via configuration in &lt;code&gt;.gitignore&lt;/code&gt;. Here's more information on &lt;a href="https://git-scm.com/docs/gitignore"&gt;gitignore&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Within the &lt;code&gt;application.yml&lt;/code&gt; file, add the following piece of code. Replace &lt;code&gt;USERNAME&lt;/code&gt; with the username of your ubuntu user which you also set for PostgreSQL earlier. Replace &lt;code&gt;PASSWORD&lt;/code&gt; with the password for the same user while configuring PostgreSQL.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;DATABASE_URL&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;postgresql://USERNAME:PASSWORD@localhost&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;I also recommend setting up GitHub credentials by following &lt;a href="https://docs.dev.to/backend/auth-github/"&gt;GitHub Authentication - DEV Docs&lt;/a&gt;. You can set up the credentials with the following format in &lt;code&gt;application.yml&lt;/code&gt;. Add &lt;code&gt;Client ID&lt;/code&gt; on GitHub beside &lt;code&gt;GITHUB_KEY:&lt;/code&gt; and &lt;code&gt;Client Secret&lt;/code&gt; beside &lt;code&gt;GITHUB_SECRET:&lt;/code&gt;. Don't forget to leave a &lt;code&gt;space&lt;/code&gt; (whitespace) after the &lt;code&gt;:&lt;/code&gt; and before the Client ID and Client Secret. These variables enable your local copy to login with GitHub.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;GITHUB_KEY&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; 
&lt;span class="na"&gt;GITHUB_SECRET&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, time to use the two magic commands &lt;code&gt;bin/setup&lt;/code&gt; and &lt;code&gt;bin/startup&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make sure you have &lt;code&gt;Redis&lt;/code&gt; and &lt;code&gt;PostgreSQL&lt;/code&gt; Services, and &lt;code&gt;Elasticsearch&lt;/code&gt; running before you fire the following command. You can check the status of services with the command &lt;code&gt;sudo -i service --status-all&lt;/code&gt;, the services with &lt;code&gt;+&lt;/code&gt; beside them are running.&lt;/li&gt;
&lt;li&gt;Run the command &lt;code&gt;bin/setup&lt;/code&gt;. This command will perform an automatic setup of all the related services and dependencies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;That was it!&lt;/strong&gt; After the &lt;code&gt;bin/setup&lt;/code&gt; command gets completed, Run the command &lt;code&gt;bin/startup&lt;/code&gt; and open &lt;code&gt;localhost:3000&lt;/code&gt; in your browser to see your copy of DEV load up! It will take some time for the server to boot, I recommend waiting until &lt;code&gt;webpacker&lt;/code&gt; posts &lt;code&gt;Compiled Successfully&lt;/code&gt; before trying to load &lt;code&gt;localhost:3000&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Press Ctrl + C in your console windows to shut down elasticsearch and DEV server when you are done!&lt;/p&gt;

&lt;h2&gt;
  
  
  End Notes &lt;small&gt;[Back to Top]&lt;/small&gt;
&lt;/h2&gt;

&lt;p&gt;Thank you for making it this far! I would love to see you tweet me &lt;a href="https://twitter.com/Amorpheuz"&gt;@Amorpheuz&lt;/a&gt; a screenshot of DEV running on your local machine. If you encounter any problems or still are confused about a certain part, feel free to leave a comment or shoot a DM on DEV/Twitter. &lt;/p&gt;

&lt;p&gt;Getting Open Source Projects running on local machines if often one of the most intimidating tasks of starting contributing to one, with this post I hope I made your journey of contributing to &lt;a href="https://github.com/thepracticaldev/dev.to"&gt;DEV&lt;/a&gt; easier! You can go in-depth about many of the finer details on &lt;a href="http://docs.dev.to/"&gt;DEV Docs&lt;/a&gt; at your own pace.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>meta</category>
      <category>wsl</category>
      <category>windows</category>
    </item>
    <item>
      <title>I have a Portfolio now 👨‍💻🎉</title>
      <dc:creator>Yash Dave </dc:creator>
      <pubDate>Sun, 31 May 2020 17:22:53 +0000</pubDate>
      <link>https://dev.to/amorpheuz/i-have-a-portfolio-now-1jhi</link>
      <guid>https://dev.to/amorpheuz/i-have-a-portfolio-now-1jhi</guid>
      <description>&lt;h2&gt;
  
  
  Edit
&lt;/h2&gt;

&lt;p&gt;Updated URLs to the new domain ♥&lt;/p&gt;




&lt;p&gt;Hey Everyone, I'm very thrilled to announce that the first version of my portfolio website is ready for everyone to see! Check it out at &lt;a href="https://amorpheuz.dev/"&gt;https://amorpheuz.dev/&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/MWYbIyPpTXYVa/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/MWYbIyPpTXYVa/giphy.gif" alt="Donald Duck getting excited on viewing my portfolio"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am originally a front-end developer, who has been polishing his React and Gatsby Skills throughout the past year. But my current pursues of Data Science academically ended up hampering my progress where I couldn't find time for projects. At the start of the worldwide lockdown situation, I was determined to get at least a couple of projects completed during my time at home. The first one of those finalized was my Portfolio Website.&lt;/p&gt;

&lt;p&gt;Throughout 2020, I started coming across more and more blog posts that emphasized Blog Post Syndication. And you know what, they sold the idea to me! I started researching various things from other dev portfolios/blogs to design systems for it. The recent &lt;a href="https://bloggingfordevs.com/"&gt;Blogging for Devs&lt;/a&gt; by &lt;a href="https://twitter.com/monicalent"&gt;@monicalent&lt;/a&gt; acted as a reaffirmation of my plan. &lt;/p&gt;

&lt;p&gt;I found the &lt;a href="https://gatsby-theme-terminal.netlify.app/"&gt;Terminal&lt;/a&gt; theme by &lt;a href="https://twitter.com/PaulieScanlon/"&gt;@PaulieScanlon&lt;/a&gt; to be the perfect foundation for my plan and started working on the idea. Many developers go with building their portfolio from scratch. I felt it would be better to start with a solid base/starter rather than starting from nothing. It thereby highlights my ability to integrate with others with my custom touches to the base. What I envisioned was a website that gave the visitor a feel of editing his development environment, basically their virtual home. &lt;a href="https://amorpheuz.dev/"&gt;My portfolio&lt;/a&gt; is the initial interpretation of the plan!&lt;/p&gt;

&lt;p&gt;As you might have noticed already, I feel developing a portfolio is a continuous process. The milestone I have reached feels a great stable before moving ahead, and thus I have decided to showcase it to get some feedback! Please do leave your feedback in the comments. 😀 &lt;/p&gt;

&lt;p&gt;Before closing out, I would like to post a mix of my long and short term plans on what's next for my blog! &lt;br&gt;
&lt;a href="https://i.giphy.com/media/YLHwkqayc1j7a/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/YLHwkqayc1j7a/giphy.gif" alt="Jafar unfurling a long list of items to the king, like I am to you"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enable Canonical URLs after obtaining a custom domain.&lt;/li&gt;
&lt;li&gt;Start with syndication from my next blog post (Coming soon 😉).&lt;/li&gt;
&lt;li&gt;Develop custom components for third party content like DEV does with its liquid tags.&lt;/li&gt;
&lt;li&gt;Improve SEO with further research.&lt;/li&gt;
&lt;li&gt;Add support for the Hindi Language on the website, improve accessibility.&lt;/li&gt;
&lt;li&gt;Customize layouts and GraphQL queries to fetch more custom data.&lt;/li&gt;
&lt;li&gt;Add comments &amp;amp; interactivity to the website via serverless architecture.&lt;/li&gt;
&lt;li&gt;Integrate Projects &amp;amp; activity with GitHub API.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Follow me on Twitter at &lt;a href="https://twitter.com/Amorpheuz"&gt;@Amorpheuz&lt;/a&gt; to catch up on my progress! Once again, thank you to &lt;a href="https://twitter.com/PaulieScanlon/"&gt;@PaulieScanlon&lt;/a&gt; for providing such an awesome theme. I am looking forward to what you folks have to say about it!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;P.S. Here's a &lt;a href="https://drive.google.com/open?id=1sSeiLPdNX7hlP8-hpZWnKIInkDCWMBwX"&gt;link to the Heart&lt;/a&gt; in the footer to use, as thank you for making this far. Open with your favorite text editor and change the &lt;code&gt;fill&lt;/code&gt; values to modify its colors!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>career</category>
      <category>gatsby</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How should a total beginner to the field of CS and Programming get started?</title>
      <dc:creator>Yash Dave </dc:creator>
      <pubDate>Fri, 31 Jan 2020 16:59:14 +0000</pubDate>
      <link>https://dev.to/amorpheuz/how-should-a-total-beginner-to-the-field-of-cs-and-programming-get-started-2226</link>
      <guid>https://dev.to/amorpheuz/how-should-a-total-beginner-to-the-field-of-cs-and-programming-get-started-2226</guid>
      <description>&lt;p&gt;Hey DEV community! I have recently come across a situation that has put a great sense of responsibility on me. I come from a family where even the cousins like to stay in touch and meet regularly and I have turned out to be the eldest in my generation of cousins. 😲🎉&lt;/p&gt;

&lt;p&gt;Now the time has finally come where I have a younger cousin who has finally reached the age of selecting what career she wants to pursue in the future. The awesome part is that she is interested in looking into the field of computers as a future. The catch is that I am the first person in this giant household/family to have ever pursued the field of Computers as a study choice and I still am pursuing my masters. 👨‍🎓&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/8dYmJ6Buo3lYY/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/8dYmJ6Buo3lYY/giphy.gif" alt="A baby trying to read hard"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Her family would like me to help her out on checking out the field and decide whether she wants to fully commit or not! &lt;strong&gt;How do I do that?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;She has &lt;strong&gt;never had any computer subject as a study course in her school and high-school&lt;/strong&gt; tenure, so one can assume she is a total newbie to the field.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Should I introduce her to the concepts of computer science like logical thinking,  algorithms, basic data structures initially?
&lt;center&gt;&lt;strong&gt;OR&lt;/strong&gt;&lt;/center&gt;
&lt;/li&gt;
&lt;li&gt;Should I go for a basic programming language like C/Python?

&lt;/li&gt;
&lt;li&gt;Should I find and introduce her to some of those &lt;em&gt;no-code drag and drop&lt;/em&gt; tools which I have seen in news articles help children of much younger age than her learn too? (Do recommend if you have used any and loved it!)
&lt;center&gt;&lt;strong&gt;OR&lt;/strong&gt;&lt;/center&gt;
&lt;/li&gt;
&lt;li&gt;Should I introduce here to a get started with XYZ Language?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I would love to hear from people more experienced in the field, both computer science, and the elder brother ones 😆, on what they think should be a sound option. Thank you for your time and help!&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>beginners</category>
      <category>help</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>Hacktoberfest Week 2 &amp; 3: Refactors and Bug Fixes!</title>
      <dc:creator>Yash Dave </dc:creator>
      <pubDate>Sun, 20 Oct 2019 16:56:30 +0000</pubDate>
      <link>https://dev.to/amorpheuz/hacktoberfest-week-2-3-579d</link>
      <guid>https://dev.to/amorpheuz/hacktoberfest-week-2-3-579d</guid>
      <description>&lt;p&gt;Hello Everyone! During week 1, I had sent out my first PR to the &lt;a href="https://github.com/thepracticaldev/dev.to"&gt;DEV&lt;/a&gt; Repo, and I continued the mission through weeks 2 and 3. I have already become considerably familiar with workings of the Repo and thus felt it was the better choice while I had less time to spare. By the way, do check out their Repo if you haven't yet!&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--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/forem"&gt;
        forem
      &lt;/a&gt; / &lt;a href="https://github.com/forem/forem"&gt;
        forem
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      For empowering community 🌱
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;For Week 2, the issue I helped tackle was &lt;a href="https://github.com/thepracticaldev/dev.to/issues/3777"&gt;Issue #3777&lt;/a&gt;. An issue for fixing lint errors throughout the JavaScript files of the repo.&lt;/p&gt;


&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/thepracticaldev/dev.to/issues/3777"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg"&gt;
      &lt;span class="issue-title"&gt;
        Lint issues with JavaScript Files
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#3777&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/nickytonline"&gt;
        &lt;img class="github-liquid-tag-img" src="https://res.cloudinary.com/practicaldev/image/fetch/s--x1P5aG-h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars2.githubusercontent.com/u/833231%3Fv%3D4" alt="nickytonline avatar"&gt;
      &lt;/a&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/nickytonline"&gt;nickytonline&lt;/a&gt;
        &lt;/strong&gt; posted on &lt;a href="https://github.com/thepracticaldev/dev.to/issues/3777"&gt;&lt;time&gt;Aug 20, 2019&lt;/time&gt;&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      &lt;p&gt;Describe the bug
This compliments work being done in #2470.&lt;/p&gt;
&lt;p&gt;The *.js files inside app/javascript and app/assets/javascripts still have plenty of lint issues&lt;/p&gt;
&lt;p&gt;To Reproduce
Steps to reproduce the behavior:&lt;/p&gt;
&lt;p&gt;From the command line in the app/javascript folder, run &lt;code&gt;eslint . --ext .js&lt;/code&gt;
From the command line in the app/assets/javascripts folder, run &lt;code&gt;eslint . --ext .js&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Expected behavior
There shouldn't be any lint issues.&lt;/p&gt;
&lt;p&gt;Time to do some cleanup 😆&lt;/p&gt;
&lt;p&gt;&lt;a href="https://camo.githubusercontent.com/7fc287324282ab06a4ad8b5230b4c3742fbc7bcc/68747470733a2f2f6d656469612e67697068792e636f6d2f6d656469612f336f4b49504353583455486d7553343154472f67697068792d646f776e73697a65642e676966" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/7fc287324282ab06a4ad8b5230b4c3742fbc7bcc/68747470733a2f2f6d656469612e67697068792e636f6d2f6d656469612f336f4b49504353583455486d7553343154472f67697068792d646f776e73697a65642e676966" alt="Cleanup"&gt;&lt;/a&gt;&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/thepracticaldev/dev.to/issues/3777"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;It consisted of tons of files that required fixing and it was recommended to resolve one file at a time. By the time I viewed the issue, &lt;a href="https://dev.to/rhymes"&gt;Rhymes&lt;/a&gt; had already listed an extremely helpful task-list for the list of remaining files and was actively helping out to mark which files had already been grabbed or were still up for grabs. I started taking grabbing one file at a time and resolving them one after another. While testing out one of the Pull Requests fully, I also ended up on an issue where Errors were being printed to the &lt;code&gt;/Comments&lt;/code&gt; sub-page of the articles due to it trying to reference an element that is only present on the article page itself. Here's a list of all the PRs I opened for the files I fixed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/thepracticaldev/dev.to/pull/4303"&gt;Refactor initializeArticleReactions.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/thepracticaldev/dev.to/pull/4318"&gt;Refactor/fix initializeCommentDropdown.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/thepracticaldev/dev.to/pull/4319"&gt;Fix eslint issues in initializeCommentDate.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/thepracticaldev/dev.to/pull/4320"&gt;Fix eslint issues in initializeCommentPreview.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/thepracticaldev/dev.to/pull/4329"&gt;Fix eslint issues in initializeSettings.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/thepracticaldev/dev.to/pull/4446"&gt;Fix JavaScript Console errors in /Comments sub-page of any article&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🤯🤯 So many of them! Even I don't know how I managed that. They weren't smooth sailing but I did learn a lot of lessons while tackling them!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Always test-out manually whatever you are refactoring. Just because it's appearing correct visually doesn't mean it is fully working. I noticed the reaction numbers loading correctly but forgot to test out the functionality for actually reacting to the article which turned out to be broken. 😅&lt;/li&gt;
&lt;li&gt;Never forget to check the contents of a file it runs an eslint auto-fix due to a pre-commit hook. Turns out it might break itself. 😆&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;if(element)&lt;/code&gt; is a thing in JavaScript, the things about JavaScript I learn daily, hehe. 😅😅&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That list also means I have fully completed the Hacktoberfest Challenge. But I feel unsatisfied! Surely I am not the only one? Turns out I ain't, I loved reading that so many others were feeling the same and had become addicted to contributing! Maybe I am one of them now. 😳 Yay! 🎉🎉&lt;/p&gt;

&lt;p&gt;Week 3 turned out to be a Responsiveness fix. &lt;a href="//Dev.to"&gt;Dev.to&lt;/a&gt; has slowly become my pastime for the day when I am out and about, maybe chilling a bit post-lunch or riding a taxi back home (Darn you rains). Thus a lot of browsing was done on my trusty smartphone, via the PWA. While replying to one of the Hacktoberfest posts, I tried attaching a Screenshot and turns out Images were overflowing the container in the Comment Previews!? Time to open an issue. 👨‍💻 &lt;/p&gt;


&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/thepracticaldev/dev.to/issues/4382"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg"&gt;
      &lt;span class="issue-title"&gt;
        Images in comment preview are not scaled down to container width on mobile
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#4382&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/Amorpheuz"&gt;
        &lt;img class="github-liquid-tag-img" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Pyo6qk8I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars3.githubusercontent.com/u/22113778%3Fv%3D4" alt="Amorpheuz avatar"&gt;
      &lt;/a&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/Amorpheuz"&gt;Amorpheuz&lt;/a&gt;
        &lt;/strong&gt; posted on &lt;a href="https://github.com/thepracticaldev/dev.to/issues/4382"&gt;&lt;time&gt;Oct 11, 2019&lt;/time&gt;&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      

&lt;p&gt;&lt;strong&gt;Describe the bug&lt;/strong&gt;
The image when uploaded through the mobile site/PWA isn't scaled down to fit the comment's container when in &lt;code&gt;preview&lt;/code&gt; mode.&lt;/p&gt;
&lt;p&gt;There is an earlier issue which #3264 which was marked as a duplicate of #3085 which was fixed by #3086 but from what I can see, that only tackles the image upload button's issue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To Reproduce&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open any article on DEV, say &lt;a href="https://dev.to/wrldwzrd89/hacktoberfest-has-been-an-unmitigated-disaster-for-me-thus-far-mhl" rel="nofollow"&gt;this&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Go to comments, upload a large sized image. (In my case I just added a screenshot)&lt;/li&gt;
&lt;li&gt;Click on the &lt;code&gt;preview&lt;/code&gt; button.&lt;/li&gt;
&lt;li&gt;The image will overflow.&lt;/li&gt;
&lt;/ol&gt;





&lt;p&gt;&lt;strong&gt;Expected behavior&lt;/strong&gt;
The image scales down to the preview container's size as it does when the comment is posted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Screenshots&lt;/strong&gt;
&lt;a href="https://user-images.githubusercontent.com/22113778/66678382-632bcb80-ec89-11e9-98f6-9a5ed0e4aa1e.png" rel="nofollow"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--f--7uj-E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/22113778/66678382-632bcb80-ec89-11e9-98f6-9a5ed0e4aa1e.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Desktop (please complete the following information):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OS: N/A&lt;/li&gt;
&lt;li&gt;Browser: N/A&lt;/li&gt;
&lt;li&gt;Version: N/A&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Smartphone (please complete the following information):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Device: Nokia 6.1&lt;/li&gt;
&lt;li&gt;OS: Android 9&lt;/li&gt;
&lt;li&gt;Browser: Chrome&lt;/li&gt;
&lt;li&gt;Version: 77.0.3865.116&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Additional context&lt;/strong&gt;
The image is correctly sized when posted as the CSS for class &lt;code&gt;single-comment-node&lt;/code&gt; adds CSS for the image to be &lt;code&gt;max-width: 100%&lt;/code&gt;. A similar CSS solution should be viable for the preview.&lt;/p&gt;


    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/thepracticaldev/dev.to/issues/4382"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;I picked it up once I was done with the Refactor fixes and opened my favorite browser to tackle such issues, the &lt;a href="https://www.mozilla.org/en-US/firefox/developer/"&gt;Firefox Developer Edition&lt;/a&gt;. Seriously, give it a try if you have never done it, I ensure you it will be love at first sight! I straight up opened two tabs, one with the comment preview and one with an article preview (which I knew worked correctly). I compared the behavior of images on both and found the &lt;code&gt;img&lt;/code&gt; element in comment preview to be lacking the CSS &lt;code&gt;max-width: 100%&lt;/code&gt;. Next, I tackled on how to ensure that the CSS only affects the images inside the preview-box of the comments and Aha! I had a working solution. I tested it out with varying resolutions to ensure that no funny behavior was occurring and opened my PR.&lt;/p&gt;


&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/thepracticaldev/dev.to/pull/4466"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg"&gt;
      &lt;span class="issue-title"&gt;
        [deploy] Fix Image Overflow in Comment Preview - #4382
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#4466&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/Amorpheuz"&gt;
        &lt;img class="github-liquid-tag-img" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Pyo6qk8I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars3.githubusercontent.com/u/22113778%3Fv%3D4" alt="Amorpheuz avatar"&gt;
      &lt;/a&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/Amorpheuz"&gt;Amorpheuz&lt;/a&gt;
        &lt;/strong&gt; posted on &lt;a href="https://github.com/thepracticaldev/dev.to/pull/4466"&gt;&lt;time&gt;Oct 16, 2019&lt;/time&gt;&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      

&lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;What type of PR is this? (check all applicable)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[ ] Refactor&lt;/li&gt;
&lt;li&gt;[ ] Feature&lt;/li&gt;
&lt;li&gt;[x] Bug Fix&lt;/li&gt;
&lt;li&gt;[ ] Documentation Update&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Description&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Enforces &lt;code&gt;max-width:100%&lt;/code&gt; on images in &lt;code&gt;.comment-preview-div&lt;/code&gt; to prevent them from overflowing their container.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Related Tickets &amp;amp; Documents&lt;/h2&gt;
&lt;p&gt;Fixes #4382&lt;/p&gt;
&lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Added to documentation?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[ ] docs.dev.to&lt;/li&gt;
&lt;li&gt;[ ] readme&lt;/li&gt;
&lt;li&gt;[x] no documentation needed&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Screenshots of bug fix&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Before:&lt;/strong&gt;
&lt;a href="https://user-images.githubusercontent.com/22113778/67097210-433f5f00-f1d7-11e9-8ef2-4b31aec94341.png" rel="nofollow"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SP-SthHr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/22113778/67097210-433f5f00-f1d7-11e9-8ef2-4b31aec94341.png" alt="Screen Shot 2019-10-18 at 18 43 14"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;After:&lt;/strong&gt;
&lt;a href="https://user-images.githubusercontent.com/22113778/67097222-4a666d00-f1d7-11e9-8261-3de0a2837fde.png" rel="nofollow"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--b6FS6ao0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/22113778/67097222-4a666d00-f1d7-11e9-8261-3de0a2837fde.png" alt="Screen Shot 2019-10-18 at 18 42 59"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;[optional] What gif best describes this PR or how it makes you feel?&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://camo.githubusercontent.com/43064f3909c0d1775d9cf493ee66bfedddcb8dcd/68747470733a2f2f6d656469612e67697068792e636f6d2f6d656469612f37376f394a763262496e3039472f67697068792e676966" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/43064f3909c0d1775d9cf493ee66bfedddcb8dcd/68747470733a2f2f6d656469612e67697068792e636f6d2f6d656469612f37376f394a763262496e3039472f67697068792e676966" alt="get shrunk"&gt;&lt;/a&gt;&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/thepracticaldev/dev.to/pull/4466"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Currently, I am waiting for my PR to get fully approved and resolve errors if any. My aim for the remainder of Hacktoberfest is to find a new Repo to contribute to and successfully submit a satisfying PR. How is your Hacktoberfest going till now? Feel free to hit me up in DMs for any beginner-ish level troubles you are encountering with Hacktoberfest. Have a &lt;em&gt;PR filled&lt;/em&gt; Hacktoberfest to you all! 🎆🎊&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>webdev</category>
      <category>css</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Adding the DEV badge to github.dev starter website</title>
      <dc:creator>Yash Dave </dc:creator>
      <pubDate>Sat, 12 Oct 2019 19:41:29 +0000</pubDate>
      <link>https://dev.to/amorpheuz/adding-the-dev-badge-to-github-dev-starter-website-28g3</link>
      <guid>https://dev.to/amorpheuz/adding-the-dev-badge-to-github-dev-starter-website-28g3</guid>
      <description>&lt;p&gt;Hey everyone! How is your &lt;a href="https://hacktoberfest.digitalocean.com/"&gt;Hacktoberfest&lt;/a&gt; going on? Mine has been awesome so far and I hope yours has been too!&lt;/p&gt;

&lt;p&gt;Getting my portfolio site has always been on the back of my mind as a project I would like to complete this year. I recently learned about two great ways you could easily start with a basic portfolio/showcase/blog site just by performing a few clicks. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;a href="https://github.dev/"&gt;Github Personal website generator&lt;/a&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--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/github"&gt;
        github
      &lt;/a&gt; / &lt;a href="https://github.com/github/personal-website"&gt;
        personal-website
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Code that'll help you kickstart a personal website that showcases your work as a software developer.
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;The DEV's very own &lt;a href="https://dev.to/devteam/you-can-now-generate-self-hostable-static-blogs-right-from-your-dev-content-via-stackbit-7a5"&gt;Static Blog&lt;/a&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/devteam" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CTihtlIw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--nJ87SGF6--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/organization/profile_image/1/0213bbaa-d5a1-4d25-9e7a-10c30b455af0.png" alt="The DEV Team"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bgwIhvJ3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--1M1qt9Sp--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/1/f451a206-11c8-4e3d-8936-143d0a7e65bb.png" alt=""&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/devteam/you-can-now-generate-self-hostable-static-blogs-right-from-your-dev-content-via-stackbit-7a5" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;You can now generate self-hostable static blogs right from your DEV content via Stackbit&lt;/h2&gt;
      &lt;h3&gt;Ben Halpern for The DEV Team ・ Sep 26 '19 ・ 4 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#meta&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#projectbenatar&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#changelog&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I decided to try out both of them and am currently experimenting on the GitHub personal website. One of the awesome features of it is that many of the basic features like adding your Social Tags, your programming interests and enabling blogs are extremely easy to do. I found it to be more feature-rich than DEV's offering, which is a given since DEV's offering is new and just launched the last month.&lt;/p&gt;

&lt;p&gt;So, off I went configuring basic elements of the site while also reading up on &lt;code&gt;Primer&lt;/code&gt; the site's CSS framework for future modifications. While configuring my social links, I noticed that DEV was missing 😱! At the back of my mind, I remembered that DEV gives a link to easily configure your badge on your personal site in the &lt;strong&gt;Settings&lt;/strong&gt; of your Profile. Time to get that badge on my site!&lt;/p&gt;

&lt;h2&gt;
  
  
  Tutorial
&lt;/h2&gt;

&lt;p&gt;Once you have configured your personal website as per the instructions in the &lt;code&gt;README.md&lt;/code&gt; of &lt;a href="https://github.com/github/personal-website"&gt;github/personal-website&lt;/a&gt; follow these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;code&gt;_config.yml&lt;/code&gt; and scroll down till you see the &lt;code&gt;social_media&lt;/code&gt; dictionary begin.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Under Behance's line, with a similar amount of padding as the other lines, add &lt;code&gt;dev: &amp;lt;username&amp;gt;&lt;/code&gt; where &lt;code&gt;&amp;lt;username&amp;gt;&lt;/code&gt; is the text after &lt;code&gt;https://dev.to/&lt;/code&gt; on your profile link.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;E.G.:&lt;/strong&gt; &lt;em&gt;My profile link is &lt;code&gt;https://dev.to/amorpheuz&lt;/code&gt; so I will add &lt;br&gt;
&lt;code&gt;dev: amorpheuz&lt;/code&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to &lt;code&gt;social_media.yml&lt;/code&gt; in the &lt;code&gt;_data&lt;/code&gt; folder. Add the following content below &lt;code&gt;behance&lt;/code&gt;'s icon_svg in a similar arrangement as the other social media sites:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dev:
  name: DEV
  profile_url_prefix: https://dev.to/
  icon_svg: '&amp;lt;svg xmlns="http://www.w3.org/2000/svg" height="20" width="20" viewBox="0 0 512 512" fill="#959da5"&amp;gt;&amp;lt;path d="M137.3,201.5c-4.4-3.3-8.9-5-13.3-5H104v119.4H124c4.4,0,8.9-1.7,13.3-5c4.4-3.3,6.7-8.3,6.7-14.9v-79.6C143.9,209.8,141.7,204.8,137.3,201.5L137.3,201.5z M461.8,0H50.2C22.5,0,0.1,22.4,0,50.1v411.9C0.1,489.6,22.5,512,50.2,512h411.7c27.7,0,50.1-22.4,50.2-50.1V50.1C511.9,22.4,489.5,0,461.8,0z M176.2,296.2c0,21.5-13.3,54.1-55.3,54h-53V161.1h54.1c40.5,0,54.1,32.5,54.1,54L176.2,296.2L176.2,296.2z M291.3,194.9h-60.9v43.9h37.2v33.8h-37.2v43.9h60.9v33.8h-71.1c-12.8,0.3-23.4-9.7-23.7-22.5v-143c-0.3-12.7,9.8-23.3,22.5-23.6h72.2L291.3,194.9L291.3,194.9z M409.7,326.7c-15.1,35.1-42.1,28.1-54.2,0l-44-165.5h37.2l34,130l33.8-130h37.2L409.7,326.7L409.7,326.7z"/&amp;gt;&amp;lt;/svg&amp;gt;'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; &lt;em&gt;I have slightly modified the &lt;a href="https://d2fltix0v2e0sb.cloudfront.net/dev-badge.svg"&gt;SVG&lt;/a&gt; provided by the DEV to remove the padding around the logo, as the logo spacing is taken care of by default by the site and others logos are added similarly without any padding. If you do change how logos are arranged/shown on the site always be sure to leave adequate spacing around every logo to make them distinctly clear from other elements.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And that's it! Startup your local development server by running &lt;code&gt;bundle exec jekyll serve&lt;/code&gt; and bask in the glory of your own custom DEV badge 🎉🎉🎉.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aB2ikKgf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/kbcx46vvdllb4bx62qki.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aB2ikKgf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/kbcx46vvdllb4bx62qki.png" alt="How the logo looks on my site"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That was all for this short tutorial, special thanks to DEV for providing the SVG at an accessible location! Feel free to ask help with any troubles you encounter during the setup process.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>jekyll</category>
    </item>
    <item>
      <title>Diary of a Hacky kid: Hacktoberfest week 1</title>
      <dc:creator>Yash Dave </dc:creator>
      <pubDate>Mon, 07 Oct 2019 15:42:06 +0000</pubDate>
      <link>https://dev.to/amorpheuz/diary-of-a-hacky-kid-hacktoberfest-week-1-9c7</link>
      <guid>https://dev.to/amorpheuz/diary-of-a-hacky-kid-hacktoberfest-week-1-9c7</guid>
      <description>&lt;p&gt;Hey everyone! I would love to share my journey throughout Hacktoberfest with you all. Here is how my week 1 went.&lt;/p&gt;

&lt;p&gt;While browsing through dev the week before Hacktobest began, I noticed certain links broken in a few articles. I had already started contributing to dev.to's repo, albeit small-time, and thus was fully aware of how bug reporting worked. Off I went to GitHub and opened &lt;/p&gt;
&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/thepracticaldev/dev.to/issues/4101"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg"&gt;
      &lt;span class="issue-title"&gt;
        Links in Comments get appended by dev.to's URL
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#4101&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/Amorpheuz"&gt;
        &lt;img class="github-liquid-tag-img" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Pyo6qk8I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars3.githubusercontent.com/u/22113778%3Fv%3D4" alt="Amorpheuz avatar"&gt;
      &lt;/a&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/Amorpheuz"&gt;Amorpheuz&lt;/a&gt;
        &lt;/strong&gt; posted on &lt;a href="https://github.com/thepracticaldev/dev.to/issues/4101"&gt;&lt;time&gt;Sep 24, 2019&lt;/time&gt;&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      

&lt;p&gt;&lt;strong&gt;Describe the bug&lt;/strong&gt;
When I clicked on the link to the leanpub in the comment of article &lt;a href="https://dev.to/devteam/your-first-year-in-code-now-available-in-print-3pai" rel="nofollow"&gt;Your First Year In Code: Now Available In Print!&lt;/a&gt; by &lt;a href="https://dev.to/isaacdlyman/comment/flcd" rel="nofollow"&gt;Issac&lt;/a&gt; it redirected me to &lt;a href="https://dev.to/isaacdlyman/comment/leanpub.com/firstyearincode" rel="nofollow"&gt;https://dev.to/isaacdlyman/comment/leanpub.com/firstyearincode&lt;/a&gt; instead of &lt;a href="https://leanpub.com/firstyearincode" rel="nofollow"&gt;https://leanpub.com/firstyearincode&lt;/a&gt;. Just to confirm also created a test article &lt;a href="https://dev.to/amorpheuz/test-post-508b" rel="nofollow"&gt;here&lt;/a&gt; with a test comment which seems to be having the same issue!&lt;/p&gt;
&lt;p&gt;Getting hit by dev.to's 404 Page instead.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;base-21348764b2d6ec27daf94a953246cd11e24aac20da16f75fca16b9ff96b994a8.js:70 GET https://dev.to/amorpheuz/github.com/amorpheuz?i=i 404
XMLHttpRequest.send @ base-21348764b2d6ec27daf94a953246cd11e24aac20da16f75fca16b9ff96b994a8.js:70
w @ base-21348764b2d6ec27daf94a953246cd11e24aac20da16f75fca16b9ff96b994a8.js:111
m @ base-21348764b2d6ec27daf94a953246cd11e24aac20da16f75fca16b9ff96b994a8.js:111 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The element seems to be coded correctly
&lt;code&gt;&amp;lt;a href="github.com/amorpheuz" rel="nofollow"&amp;gt;github.com/amorpheuz&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://user-images.githubusercontent.com/22113778/65528914-dfe14a80-df12-11e9-9e23-4e4959c1e7e2.png" rel="nofollow"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kMTqtZbJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/22113778/65528914-dfe14a80-df12-11e9-9e23-4e4959c1e7e2.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To Reproduce&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;a href="https://dev.to/amorpheuz/test-post-508b" rel="nofollow"&gt;here&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Click on the test link in the &lt;a href="https://dev.to/amorpheuz/comment/fled" rel="nofollow"&gt;comment&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Hit by 404 Page.&lt;/li&gt;
&lt;/ol&gt;





&lt;p&gt;&lt;strong&gt;Expected behavior&lt;/strong&gt;
Should open the link correctly without appending dev.to.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Screenshots&lt;/strong&gt;
&lt;a href="https://user-images.githubusercontent.com/22113778/65529320-8af20400-df13-11e9-899e-b7519c6db524.png" rel="nofollow"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PVd8RptB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/22113778/65529320-8af20400-df13-11e9-899e-b7519c6db524.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Desktop (please complete the following information):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OS: Windows 10&lt;/li&gt;
&lt;li&gt;Browser: Google Chrome&lt;/li&gt;
&lt;li&gt;Version: 77.0.3865.90 (Official Build) (64-bit)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Smartphone (please complete the following information):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Device: Nokia 6.1&lt;/li&gt;
&lt;li&gt;OS: Android 9&lt;/li&gt;
&lt;li&gt;Browser: Google Chrome&lt;/li&gt;
&lt;li&gt;Version: 77.0.3865.90&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Additional context&lt;/strong&gt;&lt;/p&gt;


    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/thepracticaldev/dev.to/issues/4101"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;One of the contributors to the repo, &lt;a href="https://dev.to/_akshaym"&gt;Akshay Mahajan&lt;/a&gt;, pointed out that it might be due to the &lt;code&gt;href&lt;/code&gt; attribute of &lt;code&gt;a&lt;/code&gt; tag missing the &lt;code&gt;http://&lt;/code&gt; or &lt;code&gt;https://&lt;/code&gt; protocol. I did some searching of my own after the hint which led to me finding out that the &lt;code&gt;href&lt;/code&gt; tag needs to have the protocol defined for it to know that it is a separate link and not a relative path to a file on the server. &lt;/p&gt;

&lt;p&gt;Time to figure out what causes this kind of link to appear in the &lt;code&gt;href&lt;/code&gt; tag. I loaded up my development repo on VS-Code and entered in a simple link:&lt;br&gt;
&lt;code&gt;[Test](google.com)&lt;/code&gt; &lt;br&gt;
Aha! I had managed to replicate the issue. The markdown parser did not account for whether the http(s) protocol was passed along with the URL or not. I grabbed the issue as something I would like to tackle and moved ahead onto figuring out a solution.&lt;/p&gt;

&lt;p&gt;The technical overview is the place to start whenever contributing to dev, it provides a complete picture of all the technologies that power it and enables any contributor to know exactly what they are looking in the massive repo. I found out that &lt;a href="https://github.com/vmg/redcarpet"&gt;Redcarpet&lt;/a&gt; and &lt;a href="https://github.com/rouge-ruby/rouge"&gt;Rouge&lt;/a&gt; empower markdown parsing. A basic overview of RedCarpet's readme allowed me to figure out what exactly I should be looking out for.&lt;/p&gt;

&lt;p&gt;Turns out there was already a file that was performing another task on the links and I had to just add my logic to the same. I decided that regex was the way to go for detecting if the link contained http(s) or not. I pulled up my favorite tool for regex, &lt;a href="https://regex101.com/"&gt;Regex101&lt;/a&gt;, switched to the unit testing mode and started formulating the regex. &lt;/p&gt;

&lt;p&gt;The initial solution I came up with was &lt;code&gt;/^(http(s*):\/\/)/m&lt;/code&gt;. It seemed to pass all the tests and I happily open a PR.&lt;/p&gt;


&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/thepracticaldev/dev.to/pull/4155"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg"&gt;
      &lt;span class="issue-title"&gt;
        Bug/fixes links without http(s)
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#4155&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/Amorpheuz"&gt;
        &lt;img class="github-liquid-tag-img" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Pyo6qk8I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars3.githubusercontent.com/u/22113778%3Fv%3D4" alt="Amorpheuz avatar"&gt;
      &lt;/a&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/Amorpheuz"&gt;Amorpheuz&lt;/a&gt;
        &lt;/strong&gt; posted on &lt;a href="https://github.com/thepracticaldev/dev.to/pull/4155"&gt;&lt;time&gt;Sep 30, 2019&lt;/time&gt;&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      

&lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;What type of PR is this? (check all applicable)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[ ] Refactor&lt;/li&gt;
&lt;li&gt;[ ] Feature&lt;/li&gt;
&lt;li&gt;[x] Bug Fix&lt;/li&gt;
&lt;li&gt;[ ] Documentation Update&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Description&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Fix invalid links in article/comments due to absence of http/https&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;updates &lt;code&gt;app&amp;gt;lin&amp;gt;redcarpet&amp;gt;render&amp;gt;html_rouge.rb&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;checks if a link added to article or comment by author contains &lt;code&gt;https://&lt;/code&gt; or &lt;code&gt;http://&lt;/code&gt; or is &lt;code&gt;nil&lt;/code&gt;.
&lt;ul&gt;
&lt;li&gt;If true keeps link as is.&lt;/li&gt;
&lt;li&gt;If false appends // to the link in order to prevent it from appending to dev.to's url.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Related Tickets &amp;amp; Documents&lt;/h2&gt;
&lt;p&gt;#4101&lt;/p&gt;
&lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Added to documentation?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[ ] docs.dev.to&lt;/li&gt;
&lt;li&gt;[ ] readme&lt;/li&gt;
&lt;li&gt;[x] no documentation needed&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;[optional] What gif best describes this PR or how it makes you feel?&lt;/h2&gt;
&lt;p&gt;Figured out a way to test WSL changes via travis 🎉. After ditching a previous branch, hehe.
&lt;a href="https://camo.githubusercontent.com/e6aa15c8fcc6767a8253ae08e75e117c5f224496/687474703a2f2f6769706879676966732e73332e616d617a6f6e6177732e636f6d2f6d656469612f733271584b387741766b48544f2f67697068792e676966" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/e6aa15c8fcc6767a8253ae08e75e117c5f224496/687474703a2f2f6769706879676966732e73332e616d617a6f6e6177732e636f6d2f6d656469612f733271584b387741766b48544f2f67697068792e676966" alt="yay!"&gt;&lt;/a&gt;&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/thepracticaldev/dev.to/pull/4155"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Turns out my familiarity with Regex is still beginner tier, and there are a lot of subtleties involved when working with regex. &lt;a href="https://dev.to/rhymes"&gt;Rhymes&lt;/a&gt;, one of the core team members, pointed out various flaws which I happily formulated a fix for. He also requested me to configure tests for the same. &lt;/p&gt;

&lt;p&gt;Here's where I hit a roadblock, I am still learning ruby and have never written a test in any other language I am familiar with throughout my development career (I swear this is the year that changes). I also had my university exams (Ongoing as I write this post) which were going to last for the better half of the month. I notified about the same on the PR and since it was a core feature of dev that the fix was affecting, Rhymes requested whether one of the core contributors would see the PR to completion.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/maestromac"&gt;Mac&lt;/a&gt; came to my PR's rescue and carried it all the way to completion along with Rhymes and I am happy to report that the PR has been successfully merged. 🎉🎉&lt;/p&gt;

&lt;p&gt;I am extremely satisfied to have such an adventurous first week in Hactoberfest and finally being able to contribute at a core functionality level (although partially) from the minor CSS fixes here and there.&lt;/p&gt;

&lt;p&gt;Once again, thank you to all the people that helped me throughout my first week and a ton of thanks to all of them!&lt;/p&gt;


&lt;div class="ltag__user ltag__user__id__178508"&gt;
  
    .ltag__user__id__178508 .follow-action-button {
      background-color: #161616 !important;
      color: #FFFFFF !important;
      border-color: #161616 !important;
    }
  
    &lt;a href="/_akshaym" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--F4vrL0OE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--7na502qD--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/178508/7adb148d-8e1b-489b-8c3d-2ef6e1fbea74.jpg" alt="_akshaym image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/_akshaym"&gt;Akshay Mahajan&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/_akshaym"&gt;Full Stack Developer at LetX | JavaScript Nerd 👨🏼‍💻| ML Enthusiast 🤖| DMs open on Twitter.&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class="ltag__user ltag__user__id__2693"&gt;
  
    .ltag__user__id__2693 .follow-action-button {
      background-color: #550a61 !important;
      color: #ffffff !important;
      border-color: #550a61 !important;
    }
  
    &lt;a href="/rhymes" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DbZOOhvh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--dcAV4vOS--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/2693/bfd9a4a5-92b3-4ac3-a276-3ccb68d78203.jpg" alt="rhymes image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/rhymes"&gt;rhymes&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/rhymes"&gt;Principal @ Forem/DEV&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class="ltag__user ltag__user__id__560"&gt;
  
    .ltag__user__id__560 .follow-action-button {
      background-color: #bc3c41 !important;
      color: #ffffff !important;
      border-color: #bc3c41 !important;
    }
  
    &lt;a href="/maestromac" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kVIdQ9cD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--VePfmc5r--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/560/a2fed92f-a747-41f7-953c-28da1ade0e95.jpeg" alt="maestromac image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/maestromac"&gt;Mac Siri&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/maestromac"&gt;I'm a refactor-loving developer and I promise you I have nothing to do with Apple's Siri.&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>hacktoberfest</category>
      <category>webdev</category>
      <category>ruby</category>
    </item>
    <item>
      <title>Contributors Wanted: Mozilla Reps Mobile App</title>
      <dc:creator>Yash Dave </dc:creator>
      <pubDate>Tue, 01 Oct 2019 09:26:13 +0000</pubDate>
      <link>https://dev.to/amorpheuz/contributors-wanted-mozilla-reps-mobile-app-2lbo</link>
      <guid>https://dev.to/amorpheuz/contributors-wanted-mozilla-reps-mobile-app-2lbo</guid>
      <description>&lt;h1&gt;
  
  
  Reps-Mobile aims to bring &lt;a href="https://reps.mozilla.org/"&gt;Mozilla Reps&lt;/a&gt; to your mobile with the help of Flutter!
&lt;/h1&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--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/obitodarky"&gt;
        obitodarky
      &lt;/a&gt; / &lt;a href="https://github.com/obitodarky/Reps-Events-Mobile"&gt;
        Reps-Events-Mobile
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      reps.mozilla.org events data on mobile
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Reps-Mobile&lt;/h1&gt;
&lt;p&gt;
  &lt;a href="https://reps.mozilla.org/" rel="nofollow"&gt;
   &lt;img alt="Mozilla Reps App Starter Guide" src="https://res.cloudinary.com/practicaldev/image/fetch/s--F92BMbJq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/47818179/62776975-acb13c00-bac9-11e9-9f65-f2bce9086f29.png" width="170"&gt;
  &lt;/a&gt;
&lt;/p&gt;

&lt;h1&gt;
 Reps Events Mobile
&lt;/h1&gt;

&lt;h2&gt;
📝 Description&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://reps.mozilla.org/" rel="nofollow"&gt;Mozilla Reps&lt;/a&gt; Events and Reps data on mobile.&lt;/p&gt;
&lt;h2&gt;
🚀 Installation Guide&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Install Flutter on your machine&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Install flutter by selecting the operating system on which you are installing Flutter:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://flutter.dev/docs/get-started/install" rel="nofollow"&gt;Flutter installation tutorial&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To check if you have flutter installed along wtih proper necesarry SDKs installed
run &lt;code&gt;flutter doctor&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Clone the Repo&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To clone this repository, run &lt;code&gt;git clone https://github.com/obitodarky/Reps-Events-Mobile.git&lt;/code&gt;
Then run &lt;code&gt;cd Reps-Events-Mobile&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Get Packages&lt;/strong&gt;
Make sure you are in the &lt;code&gt;Reps-Events-Mobile/reps_events_app&lt;/code&gt; directory&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;From the terminal: Run &lt;code&gt;flutter pub get&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;OR&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;From Android Studio/IntelliJ: &lt;strong&gt;Click Packages get&lt;/strong&gt; in the action ribbon at the top of &lt;code&gt;pubspec.yaml&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;From VS Code: &lt;strong&gt;Click Get Packages&lt;/strong&gt; located in right side of the action ribbon at the top of &lt;code&gt;pubspec.yaml&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Test the App&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Make sure you are in the &lt;code&gt;Reps-Events-Mobile/reps_events_app&lt;/code&gt; directory.&lt;/p&gt;
&lt;h4&gt;
Run the App&lt;/h4&gt;
&lt;p&gt;On terminal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check that an Android device is running by running &lt;code&gt;flutter&lt;/code&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/obitodarky/Reps-Events-Mobile"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Hey everyone! Few of my friends from the MozGujarat community have started working on a Mobile app for bringing &lt;a href="https://reps.mozilla.org/"&gt;Mozilla Reps&lt;/a&gt; website to everyone's mobile devices a few months back. One can say it's a pretty new repo and still in the process of being fully flushed out.&lt;/p&gt;

&lt;p&gt;They are looking for contributors that can help out with the same. They have issues up ranging from entry-level ones to intermediate ones that are up for grabs and will be posting more throughout the month.&lt;/p&gt;

&lt;p&gt;Some of the issues, currently up are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/obitodarky/Reps-Events-Mobile/issues/42"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg"&gt;
      &lt;span class="issue-title"&gt;
        Create theme for the app
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#42&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/AyushBherwani1998"&gt;
        &lt;img class="github-liquid-tag-img" src="https://res.cloudinary.com/practicaldev/image/fetch/s--BEFGAV-T--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars2.githubusercontent.com/u/34301187%3Fv%3D4" alt="AyushBherwani1998 avatar"&gt;
      &lt;/a&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/AyushBherwani1998"&gt;AyushBherwani1998&lt;/a&gt;
        &lt;/strong&gt; posted on &lt;a href="https://github.com/obitodarky/Reps-Events-Mobile/issues/42"&gt;&lt;time&gt;Aug 11, 2019&lt;/time&gt;&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      &lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Use case&lt;/h2&gt;
&lt;p&gt;Create a theme for the app to avoid styling widgets in every page.&lt;/p&gt;

&lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Proposal&lt;/h2&gt;
&lt;p&gt;Currently there is no theme defined for the app and developer needs to style the widgets in every page. Creating theme for the app will remove the redundant styling required in every widget. You can refer this for more information
&lt;a href="https://flutter.dev/docs/cookbook/design/themes" rel="nofollow"&gt;Use themes to share colors and font styles&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Would you like to work on this issue?&lt;/h3&gt;
&lt;p&gt;No&lt;/p&gt;


    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/obitodarky/Reps-Events-Mobile/issues/42"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/obitodarky/Reps-Events-Mobile/issues/36"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg"&gt;
      &lt;span class="issue-title"&gt;
        Add Lazy loading to Images
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#36&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/obitodarky"&gt;
        &lt;img class="github-liquid-tag-img" src="https://res.cloudinary.com/practicaldev/image/fetch/s--O3dHbL00--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars0.githubusercontent.com/u/21317964%3Fv%3D4" alt="obitodarky avatar"&gt;
      &lt;/a&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/obitodarky"&gt;obitodarky&lt;/a&gt;
        &lt;/strong&gt; posted on &lt;a href="https://github.com/obitodarky/Reps-Events-Mobile/issues/36"&gt;&lt;time&gt;Aug 10, 2019&lt;/time&gt;&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      &lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Use case&lt;/h2&gt;
&lt;p&gt;The Images are getting fetched from an API. This sometimes takes a while to fetch all the images and they may start to behave improperly.&lt;/p&gt;
&lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Proposal&lt;/h2&gt;
&lt;p&gt;We need to add lazy loading for images to load images properly when necessary.&lt;/p&gt;
&lt;h3&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Would you like to work on this issue?&lt;/h3&gt;
&lt;p&gt;No.&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/obitodarky/Reps-Events-Mobile/issues/36"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/obitodarky/Reps-Events-Mobile/issues/21"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg"&gt;
      &lt;span class="issue-title"&gt;
        Use Tabs instead of Drawer
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#21&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/obitodarky"&gt;
        &lt;img class="github-liquid-tag-img" src="https://res.cloudinary.com/practicaldev/image/fetch/s--O3dHbL00--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars0.githubusercontent.com/u/21317964%3Fv%3D4" alt="obitodarky avatar"&gt;
      &lt;/a&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/obitodarky"&gt;obitodarky&lt;/a&gt;
        &lt;/strong&gt; posted on &lt;a href="https://github.com/obitodarky/Reps-Events-Mobile/issues/21"&gt;&lt;time&gt;Jul 23, 2019&lt;/time&gt;&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      &lt;p&gt;Instead of using an App Drawer which has been implemented, it is a better idea to use Tabs. The App Drawer as such serves no purpose since we only have 3 pages. Therefore there is no such need of an App Drawer. To simplify things, we need a TabView. You learn more about Tabs in Flutter &lt;a href="https://flutter.dev/docs/cookbook/design/tabs" rel="nofollow"&gt;here&lt;/a&gt;&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/obitodarky/Reps-Events-Mobile/issues/21"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/obitodarky/Reps-Events-Mobile/issues/39"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg"&gt;
      &lt;span class="issue-title"&gt;
        Create custom gif for loading
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#39&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/AyushBherwani1998"&gt;
        &lt;img class="github-liquid-tag-img" src="https://res.cloudinary.com/practicaldev/image/fetch/s--BEFGAV-T--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars2.githubusercontent.com/u/34301187%3Fv%3D4" alt="AyushBherwani1998 avatar"&gt;
      &lt;/a&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/AyushBherwani1998"&gt;AyushBherwani1998&lt;/a&gt;
        &lt;/strong&gt; posted on &lt;a href="https://github.com/obitodarky/Reps-Events-Mobile/issues/39"&gt;&lt;time&gt;Aug 10, 2019&lt;/time&gt;&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      &lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Use case&lt;/h2&gt;
&lt;p&gt;Create custom gif for loading animation.&lt;/p&gt;

&lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Proposal&lt;/h2&gt;
&lt;p&gt;The current gif leaves a white patch in dark mode.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://user-images.githubusercontent.com/34301187/62824893-30018900-bbc1-11e9-9a8d-9eeb6594e991.png" rel="nofollow"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DEvOqQFS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/34301187/62824893-30018900-bbc1-11e9-9a8d-9eeb6594e991.png" alt="Screenshot_1565450947"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Would you like to work on this issue?&lt;/h3&gt;
&lt;p&gt;No&lt;/p&gt;


    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/obitodarky/Reps-Events-Mobile/issues/39"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do check out the &lt;a href="https://github.com/obitodarky/Reps-Events-Mobile"&gt;Repo&lt;/a&gt; for more issues throughout October!&lt;/p&gt;
&lt;h2&gt;
  
  
  How you can contribute
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Grab an available issue to tackle.&lt;/li&gt;
&lt;li&gt;Have an idea that isn't up in issues? Make an issue for the same and go ahead with it.&lt;/li&gt;
&lt;li&gt;Found a bug? Open an issue.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feel free to reach out to me or &lt;a href="https://dev.to/obitodarky"&gt;Harsh&lt;/a&gt; via DMs or in the discussion section below for any doubts.&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__189729"&gt;
  
    .ltag__user__id__189729 .follow-action-button {
      background-color: #ce346e !important;
      color: #1acece !important;
      border-color: #ce346e !important;
    }
  
    &lt;a href="/obitodarky" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zqGb6EIJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--XYRXr_Ts--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/189729/e71ef704-0aae-4281-9adb-472db0bf7201.jpeg" alt="obitodarky image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/obitodarky"&gt;Harsh Mehta&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/obitodarky"&gt;A Flutter Dev who likes to talk about tech and communities &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Have a great Hacktoberfest and Happy Contributing!&lt;/p&gt;

</description>
      <category>contributorswanted</category>
      <category>hacktoberfest</category>
      <category>help</category>
    </item>
    <item>
      <title>Setting up Dev.to on Manjaro Linux for Hacktoberfest</title>
      <dc:creator>Yash Dave </dc:creator>
      <pubDate>Mon, 30 Sep 2019 21:30:17 +0000</pubDate>
      <link>https://dev.to/amorpheuz/setting-up-dev-to-on-manjaro-linux-for-hacktoberfest-1k9a</link>
      <guid>https://dev.to/amorpheuz/setting-up-dev-to-on-manjaro-linux-for-hacktoberfest-1k9a</guid>
      <description>&lt;h1&gt;
  
  
  EDIT:
&lt;/h1&gt;

&lt;p&gt;The guide is no longer up to date as there have been significant changes to the platform. Do refer to latest guidelines on &lt;a href="https://docs.dev.to/"&gt;https://docs.dev.to/&lt;/a&gt; . Feel free to dm me if you are facing any trouble in the setup procedure on Manjaro!&lt;/p&gt;




&lt;p&gt;As Hacktoberfest approached and my WSL setup of dev.to's repo not behaving properly when it comes to Acceptance testing; I finally steeled myself up for switching to a Linux distro for the same. Manjaro had always been on the back of my find from reading a lot of praise about it online and hearing about it from peers. I wanted something beginner-friendly, with a great team &amp;amp; community behind it along with the ability to game smoothly during the rare occasions I was free. Manjaro seemed to check all these boxes and thus I was all aboard the Manjaro train.&lt;/p&gt;

&lt;p&gt;On a different note, this post is also going to talk about my experience too along with the steps. I also won't go fully into finer details of every step as that will make this guide more into a booklet, feel free to ask below if you are stuck somewhere!&lt;/p&gt;

&lt;h1&gt;
  
  
  The guide
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Installing Manjaro
&lt;/h2&gt;

&lt;p&gt;I am seriously amazed by how easy it was to install Manjaro compared to my previous experience with Fedora. I feel it was the experience and confidence I gained messing about in fedora and WSL along with the very detailed guide Manjaro provides.&lt;/p&gt;

&lt;p&gt;I am not going to go into the install that much, and you should refer to the &lt;a href="https://manjaro.org/support/userguide/"&gt;Installation guide&lt;/a&gt; and find the various flavors of the same at &lt;a href="https://manjaro.org/download/"&gt;https://manjaro.org/download/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There are a ton of options depending on what kind of environment you want, each flavor curating to a particular cause. I went with the KDE Plasma Version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Personal Prerequisites
&lt;/h2&gt;

&lt;p&gt;Once my Manjaro was smoothly running, I began with downloading all my development necessities. The list turned out to be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VS Code&lt;/li&gt;
&lt;li&gt;GitKraken&lt;/li&gt;
&lt;li&gt;Google Chrome&lt;/li&gt;
&lt;li&gt;Spotify&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://snapcraft.io/"&gt;Snapcraft&lt;/a&gt; is a great app store for all your Linux needs and has easy to install packages of many major app publishers. Manjaro comes with a great GUI app that manages not only Snap packages but also &lt;a href="https://flatpak.org/"&gt;Flatpak&lt;/a&gt; and &lt;a href="https://aur.archlinux.org/"&gt;AUR&lt;/a&gt; packages called &lt;a href="https://github.com/vinifmor/bauh"&gt;Bauh&lt;/a&gt;. Search your applications in the same and you will find it easily. &lt;/p&gt;

&lt;p&gt;I grabbed the Snaps for Spotify and GitKraken via Bauh but from past experience of VS Code's Snap misbehaving I decided to take a different route for it and Google Chrome.&lt;br&gt;
&lt;a href="https://aur.archlinux.org/packages/visual-studio-code-bin/"&gt;VS Code&lt;/a&gt; and &lt;a href="https://aur.archlinux.org/packages/google-chrome/"&gt;Google Chrome&lt;/a&gt; both have AUR packages that I grabbed off the website and installed. The steps are the same for both and are as follow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use &lt;code&gt;git clone&lt;/code&gt; along with the Git Clone URL on the package page to download the repo at the location of your choice.&lt;/li&gt;
&lt;li&gt;Take your terminal into the downloaded repo via &lt;code&gt;Cd&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;makepkg -si&lt;/code&gt; where &lt;code&gt;s&lt;/code&gt; will generate the source tarball for the repo and &lt;code&gt;i&lt;/code&gt; will install it after a successful build. Be ready with your root password for the install!
&lt;img src="https://i.giphy.com/media/l0He4nkyI5cMhXzvW/giphy.gif" alt="Personal Reqs Done"&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Dev.to's Prerequisites
&lt;/h2&gt;

&lt;p&gt;Next came setting up dev.to's repo for development. It can be an intimidating task at first but stick it out and you are in for a treat! Open the &lt;a href="https://docs.dev.to/installation/linux/"&gt;Linux Installation guide&lt;/a&gt; from their docs and keep it handy. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First comes the &lt;strong&gt;Ruby&lt;/strong&gt; installation. Manjaro already comes with Ruby 2.6.4 but Dev's repo requires 2.6.3, so be sure to be careful throughout these steps as to not get caught up later on.

&lt;ul&gt;
&lt;li&gt;Use &lt;a href="https://github.com/rbenv/rbenv-installer#rbenv-installer"&gt;rbenv-installer&lt;/a&gt; for getting rbenv, follow the steps in &lt;code&gt;README.md&lt;/code&gt;. The installer should install rbenv smoothly and then run rbenv-doctor automatically. It will ask you to 2 paths to your &lt;code&gt;PATH&lt;/code&gt; variable.&lt;/li&gt;
&lt;li&gt;You have to add these manually to your &lt;code&gt;.bashrc&lt;/code&gt; file (hidden by default) in your home directory. To keep it simple, I recommend initially to just use the inbuilt text-editor (Kate) for editing it. Open your File Manager, go to your home directory, enable viewing hidden files in Extras/Controls. Open &lt;code&gt;.bashrc&lt;/code&gt; by double-clicking on it and scroll to the bottom.&lt;/li&gt;
&lt;li&gt;Add the line &lt;code&gt;export PATH="&amp;lt;paths&amp;gt;:$PATH"&lt;/code&gt; to the bottom in order to make rbenv command functional. There will be 2 paths to add which will be mentioned by the install command one after other. Replace &lt;code&gt;&amp;lt;path&amp;gt;&lt;/code&gt; with those two paths, separating both by &lt;code&gt;:&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;rbenv-doctor&lt;/code&gt; again to check if everything is set up correctly. Type &lt;code&gt;rbenv -v&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Next, Restart your terminal and run, &lt;code&gt;rbenv install 2.6.3&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;eval "$(rbenv init -)"&lt;/code&gt; in the next line after the PATH line in &lt;code&gt;.bashrc&lt;/code&gt; to initialize rbenv by default when you open the terminal. &lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;ruby -v&lt;/code&gt; after restarting your terminal to ensure both have been set up correctly. The Ruby version should point to &lt;code&gt;2.6.3xxxx&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Next in line is &lt;strong&gt;Yarn&lt;/strong&gt;. Open it's &lt;a href="https://yarnpkg.com/en/docs/install#arch-stable"&gt;Installation Page for Arch&lt;/a&gt; and run the command as indicated. Once installed run &lt;code&gt;yarn -v&lt;/code&gt; to confirm the installation. You might have to add it to the path in some cases, which you can do as indicated later on the installation page.

&lt;ul&gt;
&lt;li&gt;Installing it via &lt;code&gt;npm&lt;/code&gt; is not recommended.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Next comes &lt;strong&gt;PostgreSQL&lt;/strong&gt;. Go to its download page for &lt;a href="https://www.postgresql.org/download/linux/"&gt;Other Linux distros&lt;/a&gt; and download the interactive &lt;code&gt;EnterpriseDB&lt;/code&gt; installer.

&lt;ul&gt;
&lt;li&gt;Once downloaded, open the terminal in the same directory. Run &lt;code&gt;chmod +x postgresql-10.10-2-linux-x64.run&lt;/code&gt;, replacing the &lt;code&gt;postgresql-10.10-2-linux-x64.run&lt;/code&gt; with appropriate downloaded file name. This gives it executable permissions. &lt;/li&gt;
&lt;li&gt;Next run &lt;code&gt;sudo ./postgresql-10.10-2-linux-x64.run&lt;/code&gt; or whatever the package name might be to start the installer. Follow the instruction. &lt;em&gt;Be sure to remember the password set for postgres here&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;If you need a GUI for PostgreSQL, you will need &lt;code&gt;pgAdmin4&lt;/code&gt;. The one that comes by default with the PostgreSQL installer doesn't work correctly on my PC, So I grabbed it via &lt;code&gt;Pacman&lt;/code&gt;. Run &lt;code&gt;sudo Pacman -S pgadmin4&lt;/code&gt; to install it.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/7JTpNYu7oYGX98KJkL/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/7JTpNYu7oYGX98KJkL/giphy.gif" alt="Almost done?!"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  The Dev.to Repo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Once done with PostgreSQL, it's finally time to move on to getting the actual repo on your system. Follow the &lt;a href="https://docs.dev.to/installation/linux/#installing-dev"&gt;Steps&lt;/a&gt; on the Linux Setup guide to Fork and Clone &lt;code&gt;dev.to&lt;/code&gt; repo. Follow it thoroughly till you reach &lt;strong&gt;Step 5&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Before Step 5, go to &lt;a href="https://docs.dev.to/installation/postgresql/#configuration"&gt;PostgreSQL Configuration&lt;/a&gt; section and do accordingly.&lt;/li&gt;
&lt;li&gt;Next, run &lt;code&gt;bin/setup&lt;/code&gt; as indicated in Step 5. Troubleshoot errors if any as shown in &lt;code&gt;Possible error messages&lt;/code&gt; of both &lt;a href="https://docs.dev.to/installation/windows/"&gt;Windows&lt;/a&gt; and &lt;a href="https://docs.dev.to/installation/linux/"&gt;Linux&lt;/a&gt; docs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, if all goes well, you will get an awesome &lt;code&gt;Dev&lt;/code&gt; Banner in your console at the end of &lt;code&gt;bin/setup&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Run &lt;code&gt;bin/startup&lt;/code&gt; to see the server bootup and have the massive ecosystem of dev running on your tiny computer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/5p2wQFyu8GsFO/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/5p2wQFyu8GsFO/giphy.gif" alt="Amazing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have an amazing Hacktoberfest, all the best with your PRs and Happy Coding!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; Here's an awesome post by the Founder of Dev on how you can get started once you are setup with the development environment!&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/devteam" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CTihtlIw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--nJ87SGF6--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/organization/profile_image/1/0213bbaa-d5a1-4d25-9e7a-10c30b455af0.png" alt="The DEV Team"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bgwIhvJ3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--1M1qt9Sp--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/1/f451a206-11c8-4e3d-8936-143d0a7e65bb.png" alt=""&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/devteam/how-to-contribute-to-dev-this-hacktoberfest-5b91" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to contribute to DEV this hacktoberfest&lt;/h2&gt;
      &lt;h3&gt;Ben Halpern for The DEV Team ・ Oct 1 '19 ・ 6 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#hacktoberfest&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#contributorswanted&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>hacktoberfest</category>
      <category>linux</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>test post</title>
      <dc:creator>Yash Dave </dc:creator>
      <pubDate>Tue, 24 Sep 2019 15:47:02 +0000</pubDate>
      <link>https://dev.to/amorpheuz/test-post-508b</link>
      <guid>https://dev.to/amorpheuz/test-post-508b</guid>
      <description>&lt;p&gt;Test Case post for issue:&lt;/p&gt;


&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/thepracticaldev/dev.to/issues/4101"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg"&gt;
      &lt;span class="issue-title"&gt;
        Links in Comments get appended by dev.to's URL
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#4101&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/Amorpheuz"&gt;
        &lt;img class="github-liquid-tag-img" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Pyo6qk8I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://avatars3.githubusercontent.com/u/22113778%3Fv%3D4" alt="Amorpheuz avatar"&gt;
      &lt;/a&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/Amorpheuz"&gt;Amorpheuz&lt;/a&gt;
        &lt;/strong&gt; posted on &lt;a href="https://github.com/thepracticaldev/dev.to/issues/4101"&gt;&lt;time&gt;Sep 24, 2019&lt;/time&gt;&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      

&lt;p&gt;&lt;strong&gt;Describe the bug&lt;/strong&gt;
When I clicked on the link to the leanpub in the comment of article &lt;a href="https://dev.to/devteam/your-first-year-in-code-now-available-in-print-3pai" rel="nofollow"&gt;Your First Year In Code: Now Available In Print!&lt;/a&gt; by &lt;a href="https://dev.to/isaacdlyman/comment/flcd" rel="nofollow"&gt;Issac&lt;/a&gt; it redirected me to &lt;a href="https://dev.to/isaacdlyman/comment/leanpub.com/firstyearincode" rel="nofollow"&gt;https://dev.to/isaacdlyman/comment/leanpub.com/firstyearincode&lt;/a&gt; instead of &lt;a href="https://leanpub.com/firstyearincode" rel="nofollow"&gt;https://leanpub.com/firstyearincode&lt;/a&gt;. Just to confirm also created a test article &lt;a href="https://dev.to/amorpheuz/test-post-508b" rel="nofollow"&gt;here&lt;/a&gt; with a test comment which seems to be having the same issue!&lt;/p&gt;
&lt;p&gt;Getting hit by dev.to's 404 Page instead.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;base-21348764b2d6ec27daf94a953246cd11e24aac20da16f75fca16b9ff96b994a8.js:70 GET https://dev.to/amorpheuz/github.com/amorpheuz?i=i 404
XMLHttpRequest.send @ base-21348764b2d6ec27daf94a953246cd11e24aac20da16f75fca16b9ff96b994a8.js:70
w @ base-21348764b2d6ec27daf94a953246cd11e24aac20da16f75fca16b9ff96b994a8.js:111
m @ base-21348764b2d6ec27daf94a953246cd11e24aac20da16f75fca16b9ff96b994a8.js:111 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The element seems to be coded correctly
&lt;code&gt;&amp;lt;a href="github.com/amorpheuz" rel="nofollow"&amp;gt;github.com/amorpheuz&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://user-images.githubusercontent.com/22113778/65528914-dfe14a80-df12-11e9-9e23-4e4959c1e7e2.png" rel="nofollow"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kMTqtZbJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/22113778/65528914-dfe14a80-df12-11e9-9e23-4e4959c1e7e2.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To Reproduce&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;a href="https://dev.to/amorpheuz/test-post-508b" rel="nofollow"&gt;here&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Click on the test link in the &lt;a href="https://dev.to/amorpheuz/comment/fled" rel="nofollow"&gt;comment&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Hit by 404 Page.&lt;/li&gt;
&lt;/ol&gt;





&lt;p&gt;&lt;strong&gt;Expected behavior&lt;/strong&gt;
Should open the link correctly without appending dev.to.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Screenshots&lt;/strong&gt;
&lt;a href="https://user-images.githubusercontent.com/22113778/65529320-8af20400-df13-11e9-899e-b7519c6db524.png" rel="nofollow"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PVd8RptB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/22113778/65529320-8af20400-df13-11e9-899e-b7519c6db524.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Desktop (please complete the following information):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OS: Windows 10&lt;/li&gt;
&lt;li&gt;Browser: Google Chrome&lt;/li&gt;
&lt;li&gt;Version: 77.0.3865.90 (Official Build) (64-bit)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Smartphone (please complete the following information):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Device: Nokia 6.1&lt;/li&gt;
&lt;li&gt;OS: Android 9&lt;/li&gt;
&lt;li&gt;Browser: Google Chrome&lt;/li&gt;
&lt;li&gt;Version: 77.0.3865.90&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Additional context&lt;/strong&gt;&lt;/p&gt;


    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/thepracticaldev/dev.to/issues/4101"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>How did you setup Capybara + Webdrivers on WSL for testing?</title>
      <dc:creator>Yash Dave </dc:creator>
      <pubDate>Tue, 10 Sep 2019 19:37:05 +0000</pubDate>
      <link>https://dev.to/amorpheuz/how-did-you-setup-capybara-webdrivers-on-wsl-for-testing-c9m</link>
      <guid>https://dev.to/amorpheuz/how-did-you-setup-capybara-webdrivers-on-wsl-for-testing-c9m</guid>
      <description>&lt;p&gt;I recently started contributing to dev.to's GitHub repository by refactoring some .js files to meet the eslint specs. Some of the files that need to be refactored require multiple other ones to be refactored too at the same time in order to not break certain functionality.&lt;/p&gt;

&lt;p&gt;In order to check for that I have been trying to setup the Acceptance testing as specified in the docs + with some online help to check whether all functionality remains as is or not. But I have been hitting various hurdles throughout where either the chrome binary wouldn't be found, post that after installation it posted &lt;code&gt;Invalid Session id&lt;/code&gt; or sometimes it would work totally. It's a mystery for me currently.&lt;/p&gt;

&lt;p&gt;Any help / pointer in the right direction would be much appreciated :D. Willing to provide any details required for the same!&lt;/p&gt;

</description>
      <category>help</category>
      <category>discuss</category>
      <category>testing</category>
      <category>ruby</category>
    </item>
  </channel>
</rss>
