<?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: Karthikeyan Dhanapal</title>
    <description>The latest articles on DEV Community by Karthikeyan Dhanapal (@chintukarthi).</description>
    <link>https://dev.to/chintukarthi</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%2F78292%2Fd5e0e94f-8337-4c82-81cd-a04d84a3d668.jpg</url>
      <title>DEV Community: Karthikeyan Dhanapal</title>
      <link>https://dev.to/chintukarthi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chintukarthi"/>
    <language>en</language>
    <item>
      <title>What is the Arctic Vault program?</title>
      <dc:creator>Karthikeyan Dhanapal</dc:creator>
      <pubDate>Thu, 06 Aug 2020 14:28:52 +0000</pubDate>
      <link>https://dev.to/chintukarthi/what-is-the-arctic-vault-program-5bmk</link>
      <guid>https://dev.to/chintukarthi/what-is-the-arctic-vault-program-5bmk</guid>
      <description>&lt;p&gt;This post is to cover the broader audience about the Arctic Vault program.&lt;/p&gt;

&lt;p&gt;According to the &lt;strong&gt;Github Archive Program Site&lt;/strong&gt;,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It is a hidden cornerstone of modern civilization and the shared heritage of all humanity. The mission of the GitHub Archive Program is to preserve open-source software for future generations.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When I first got the badge and looked into their website, I couldn't really understand what this is all about. So I didn't pay much attention to it for some time until my friend shared a video about the program.&lt;/p&gt;

&lt;p&gt;Check this official video:&lt;/p&gt;

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

&lt;p&gt;So this program is basically storing the precious open-source software and all the public repo's written in the open-source software languages for the future generation for almost &lt;strong&gt;1000 years&lt;/strong&gt;. Isn't it amazing?&lt;/p&gt;

&lt;p&gt;The archive is located in a decommissioned coal mine in the Svalbard archipelago, closer to the North Pole than the Arctic Circle.&lt;/p&gt;

&lt;p&gt;Github took a snapshot as of 02/02/2020 and the data is stored in &lt;a href="https://en.wikipedia.org/wiki/Silver_halide" rel="noopener noreferrer"&gt;silver halide&lt;/a&gt; film and encoded to last for 1000 years.&lt;/p&gt;

&lt;p&gt;During this pandemic situation, having this kind of safe storage of our open-source software for future generations is really a need of the hour.&lt;/p&gt;

&lt;p&gt;I have a public repo of a gem called &lt;a href="https://github.com/ChintuKarthi/data_store_gem" rel="noopener noreferrer"&gt;Data Store&lt;/a&gt; in rails which earned me an &lt;strong&gt;" Arctic Code Vault Contributor badge "&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;And this is going to be stored in the vault for the future generation for 1000 years which makes me proud of myself as a developer 😇 and this kind of recognition make us give back to the community more often.&lt;/p&gt;

&lt;p&gt;For more details of this program check the &lt;a href="https://archiveprogram.github.com/" rel="noopener noreferrer"&gt;official page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Image source: Github Archive Program&lt;/p&gt;

</description>
      <category>news</category>
    </item>
    <item>
      <title>Comtonlizer</title>
      <dc:creator>Karthikeyan Dhanapal</dc:creator>
      <pubDate>Sat, 18 Jul 2020 11:05:16 +0000</pubDate>
      <link>https://dev.to/chintukarthi/comtonlizer-31hb</link>
      <guid>https://dev.to/chintukarthi/comtonlizer-31hb</guid>
      <description>&lt;p&gt;Hello Everyone,&lt;/p&gt;

&lt;p&gt;This is about the new project that I have been working on which is still in beta and I thought of sharing this with the community to get the valuable feedback and improve it.&lt;/p&gt;

&lt;p&gt;When a content creator uploads a video to YouTube, he/she usually goes through the comments section to get an idea of how people are reacting to their video. It's obvious that we can get info from the like or dislike button, but they can't really get to know about the viewer's emotions unless we skim through the comments section.&lt;/p&gt;

&lt;p&gt;Sometimes we don't really want to read all the comments either because we have a lot of work and no time or it's just we need something to analyze it. While I was looking at a video, I really want to know how other viewers have expressed their emotions for one particular video. That's how Comtonlizer has born.&lt;/p&gt;

&lt;p&gt;Comtonlizer = Comment + Tone + Analyzer.&lt;/p&gt;

&lt;p&gt;I have used YouTube's API to get the comment for a particular video and using those comments as an input to IBM Watson's tone analyzer API to get the tone score and the tone score is used to display the results.&lt;/p&gt;

&lt;p&gt;I have hosted the application in netlify for which I've given the link at the end.&lt;/p&gt;

&lt;p&gt;Here is the landing page of the application.&lt;/p&gt;

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

&lt;p&gt;The input should be a valid YouTube URL and only when it's valid, the user is allowed to click the analyze button. The output of the popup screenshot is attached below.&lt;/p&gt;

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

&lt;p&gt;Here we can see that the output is expressed in terms of emoji and percentage.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;😍 - Represents Joy percentage of comments. How much the user has enjoyed the video based on the comment given is analyzed here.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;🙄 - Represents the ok-ish percentage of comments. This means that the comments are neither good nor bad but in a neutral zone.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;😭 - Represents the sadness in the viewer's opinion. How sad they are based on the comment given by the viewers is represented in this emoji.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For now, I am analyzing only recent comments with a limited count since for a particular video there might be thousands and thousands of comments. So this application can be used to analyze the video with recent comments. I have plans to update this in the future to an extension where we can get the analysis on the same page without going to another page.&lt;/p&gt;

&lt;p&gt;Link to the application: &lt;a href="https://comtonlizer.netlify.app/" rel="noopener noreferrer"&gt;https://comtonlizer.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Please access the site using laptop or system. Even though it's accessible on mobile, the best experience is with a laptop or system.&lt;/p&gt;

&lt;p&gt;If you have any suggestions or feedback to improve the application, please do let me know in the comments.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Simple things do matter!</title>
      <dc:creator>Karthikeyan Dhanapal</dc:creator>
      <pubDate>Fri, 02 Aug 2019 15:54:53 +0000</pubDate>
      <link>https://dev.to/chintukarthi/simple-things-do-matter-395k</link>
      <guid>https://dev.to/chintukarthi/simple-things-do-matter-395k</guid>
      <description>&lt;p&gt;Imagination. How powerful the term it is.&lt;/p&gt;

&lt;p&gt;Have you ever thought of things in a different perspective out of ordinary? Something like an edge case in a code?&lt;br&gt;
Ok, let me narrow it down to make some sense.&lt;/p&gt;

&lt;p&gt;-&amp;gt; Imagine you are walking on the road where your mind is fully occupied.&lt;/p&gt;

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

&lt;p&gt;While you are taking one step towards your destination wherever you wanna go, say for (e.g) your home. There's an ant which is one step ahead of you, has pretty much the same story as you and wanna reach it's home.&lt;br&gt;
Both of you have different thoughts and different life. For you, the life of an ant which literally doesn't exist might be a joke. And for the ant, the life of you who is a giant(pun intended) might be out of context. But somehow you are going to cross paths. The next step you are going to take might shatter the hopes of the ant. &lt;br&gt;
Ok. Just hold on to this thought while we consider one more scenario too.&lt;/p&gt;

&lt;p&gt;-&amp;gt; Imagine you are watching a movie, and you are so much into it because your favorite hero or heroine is the lead character and you don't want to miss a single scene of them in the movie.&lt;/p&gt;

&lt;p&gt;Have you ever considered paying attention to the side characters(not so important characters) instead of the lead character?&lt;br&gt;
To quote this, I would like to share a scene from "The Pursuit of Happiness". I hope you all knew and love this scene.&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%2Fuploads%2Farticles%2Fc82xtfkzo4xqxi59xidd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc82xtfkzo4xqxi59xidd.png" alt="pursuit of happiness" width="800" height="395"&gt;&lt;/a&gt;&lt;br&gt;
But I want you to look at the man in front of will smith. What role does he have in this movie? I bet most of us missed noticing this as we are emotionally connected to will smith at that point in the movie and never paid attention to these kinds of scenarios.&lt;br&gt;
He is a part of the movie but plays no role other than giving the perfect movie experience so that the viewers don't feel odd about it instead, they can relate the scene to the everyday life of a human being walking on the streets.&lt;/p&gt;

&lt;p&gt;I can go with many scenarios but to keep it short I would like to stop it right here.&lt;/p&gt;

&lt;p&gt;The ant from the first example and you might cross paths and there's a fifty-fifty chance that the ant might die and you never aware of it because you are listening to the latest song of Taylor swift in your mobile with your headphones on.&lt;/p&gt;

&lt;p&gt;The man in front of will smith literally doesn't exist to you as far as his character is concerned. But still, he too has a life where he is the lead character of his own story and who knows will smith might be a side character in his movie. 😅&lt;/p&gt;

&lt;p&gt;So why should we pay attention to all these simple things in life?&lt;/p&gt;

&lt;p&gt;Because the simple things are the ones that hold a lot of meaning and stuff that might shift our perspective. So next time while walking down the road or watching a movie of your favorite character remember,&lt;br&gt;
&lt;strong&gt;simple things do matter!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>life</category>
      <category>discuss</category>
      <category>perspective</category>
    </item>
    <item>
      <title>AYDT - 04 ( Are You Doing This ❓ ) - Top 5 lint issues we fail to notice.</title>
      <dc:creator>Karthikeyan Dhanapal</dc:creator>
      <pubDate>Fri, 26 Jul 2019 17:00:21 +0000</pubDate>
      <link>https://dev.to/chintukarthi/aydt-04-are-you-doing-this-top-5-lint-issues-we-fail-to-notice-34hg</link>
      <guid>https://dev.to/chintukarthi/aydt-04-are-you-doing-this-top-5-lint-issues-we-fail-to-notice-34hg</guid>
      <description>&lt;p&gt;In a long-forgotten kingdom, there lived three people called Jackie and July along with their uncle.&lt;/p&gt;

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

&lt;p&gt;Uncle being an old man, he always tries to teach Julie the art of living life. But Julie, on the other hand, thought that her uncle was an old man and he doesn't know anything about life.&lt;/p&gt;

&lt;p&gt;But Julie respects Jackie. At least in our fantasy story.😝 Jackie always corrected whenever she does something that's not cool. This is what our 'lint' does when he was introduced into the ruby code.&lt;/p&gt;

&lt;p&gt;Just like our uncle, the rubocop does his job in correcting the people whenever he finds a non-standard code.&lt;/p&gt;

&lt;p&gt;This guy is called as " The Rubocop. "&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%2Fuploads%2Farticles%2Fduz6e8pf731eil9fnubx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fduz6e8pf731eil9fnubx.png" alt="rubocop image" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Welcome to the fourth episode of the series: Are You Doing This❓. In case you haven't read the previous articles, I highly recommend you to have a look at those. Sure you'll love it 💙. Happy coding 👨🏻‍💻.&lt;/p&gt;

&lt;p&gt;Previous week link :&lt;br&gt;
&lt;a href="https://dev.to/chintukarthi/aydt-03-are-you-doing-this-programming-and-cases-1enj"&gt;https://dev.to/chintukarthi/aydt-03-are-you-doing-this-programming-and-cases-1enj&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Are You Doing This❓- Top 5 lint issues we fail to notice.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In today's series, I'll walk you through the most frequently occurring 5 lint issues and their explanation followed by the link, at the end, where you can learn more about the coding standards.&lt;/p&gt;

&lt;p&gt;In the previous episode, I've mentioned a code snippet which had lint issues. I would like to recollect the same snippet here so that it would be easier for you to follow up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Redundant 'return' detected&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the most frequently occurring lint issue. which people often fail to address.&lt;br&gt;
&lt;/p&gt;

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

def first_omnitrix
  return true
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;at the end of the function in ruby, you aren't expected to use the return keyword. You can use it, but it is not a good practice.&lt;/p&gt;

&lt;p&gt;The snippet should look like this,&lt;br&gt;
&lt;/p&gt;

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

def first_omnitrix
  true
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To learn more about this, you can find a separate article that I have written over here. (&lt;a href="https://dev.to/chintukarthi/redundant-return-detected---ruby-programming-gac"&gt;https://dev.to/chintukarthi/redundant-return-detected---ruby-programming-gac&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Use snake_case for method names.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While defining a method, use snake_case for the method name. Snake case is nothing but all small case with a delimiter of '_'.&lt;/p&gt;

&lt;p&gt;Example :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Example snake_case method

def snake_case
  true
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To learn more about the use of cases, you can find a separate article that I have written over here. (&lt;a href="https://dev.to/chintukarthi/aydt-03-are-you-doing-this-programming-and-cases-1enj"&gt;https://dev.to/chintukarthi/aydt-03-are-you-doing-this-programming-and-cases-1enj&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Don't use parentheses around the condition of an ' if '&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you are from c or c++ background and started learning and using ruby, sure you might have come across this,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# assume the value of a and b are already initialized and b is less than a.
def first_omnitrix
  if (a&amp;gt;b)
    a = 5
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;use of parentheses around the if condition is not recommended in ruby. So remove it. To avoid this lint, modify the code as shown in the below snippet.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def first_omnitrix
  if a&amp;gt;b
    a = 5
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4) Use a guard clause instead of wrapping the code inside a conditional expression.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hmmm 🤔 sounds odd right?&lt;/p&gt;

&lt;p&gt;Nothing odd, It's just simple. Look at the below code snippet,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# assume the value of a and b are already initialized and b is less than a.
def first_omnitrix
  if a&amp;gt;b
    a = 5
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here we used an ' if ' condition to set the value of 'a', to check if it is greater than b.&lt;/p&gt;

&lt;p&gt;It might feel correct and is also valid. But the thing is, it's not a correct way to write this piece of code.&lt;/p&gt;

&lt;p&gt;You might want to rewrite that to something like this,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# assume the value of a and b are already initialized, and b is less than a.
def first_omnitrix
  a = 5 if a&amp;gt;b
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5) Trailing whitespace detected.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I can't wait to share this 😇. This one is my personal favorite Because I often make this 😂.&lt;/p&gt;

&lt;p&gt;While writing code for some functionalities, we use enter/return to navigate to the next line. But what we don't realize is, it will introduce whitespace around the new line something like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def whitespace
  if a&amp;gt;b
    if a &amp;lt; c
      true
    end
  end.. (some extra code) 
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;what happens here is, you navigated to a new line to write some extra code over there and then deleted the code. But you might forget to delete the two extra space(denoted as '.' dots in the snippet) which will create this ' trailing white space ' lint issue.&lt;/p&gt;

&lt;p&gt;After solving the lint, the above method will look like this,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def whitespace
  if a&amp;gt;b
    if a &amp;lt; c
      true
    end
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to avoid this issue, just remove the extra spacing in the code which isn't necessary.&lt;/p&gt;

&lt;p&gt;So, these are the Top 5 lint issues, that I wish to share with you. If you want to improve your coding skills, you can go ahead over here (&lt;a href="https://rubocop.readthedocs.io/" rel="noopener noreferrer"&gt;https://rubocop.readthedocs.io/&lt;/a&gt;) to learn more things about ruby lint.&lt;/p&gt;

&lt;p&gt;So that's a wrap for this week. See you people around 🧙🏻‍♂️.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk6ny3spe76hcxv37bj9h.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%2Fuploads%2Farticles%2Fk6ny3spe76hcxv37bj9h.gif" alt="see you around gif" width="245" height="135"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cover image courtesy: &lt;a href="https://www.codeninja.com.sg/" rel="noopener noreferrer"&gt;https://www.codeninja.com.sg/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>bestpractice</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>AYDT - 03 ( Are You Doing This ❓ ) - Programming and Cases.</title>
      <dc:creator>Karthikeyan Dhanapal</dc:creator>
      <pubDate>Fri, 19 Jul 2019 17:37:42 +0000</pubDate>
      <link>https://dev.to/chintukarthi/aydt-03-are-you-doing-this-programming-and-cases-1enj</link>
      <guid>https://dev.to/chintukarthi/aydt-03-are-you-doing-this-programming-and-cases-1enj</guid>
      <description>&lt;p&gt;Ben, a usual kid who came right out of college, got his first job. He was then introduced to the codebase of their application by one of his teammates.&lt;/p&gt;

&lt;p&gt;You know what? Instead of me trying to explain the reaction of ben, I want you to have a direct look at how he might have reacted.&lt;/p&gt;

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

&lt;p&gt;Pretty cool huh? 🤣&lt;/p&gt;

&lt;p&gt;Why he has the face as same as his first encounter with Omnitrix?&lt;/p&gt;

&lt;p&gt;Let's look at the reason behind this.&lt;/p&gt;

&lt;p&gt;Welcome to the third episode of the series: Are You Doing This❓. In case you haven't read the previous articles, I highly recommend you to have a look at those. Sure you'll love it 💙. Happy coding 👨🏻‍💻.&lt;/p&gt;

&lt;p&gt;Previous week link :&lt;br&gt;
&lt;a href="https://dev.to/chintukarthi/aydt-02-are-you-doing-this-one-step-towards-ninja-land-5gm0"&gt;https://dev.to/chintukarthi/aydt-02-are-you-doing-this-one-step-towards-ninja-land-5gm0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Are You Doing This❓- Programming and Cases&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why Ben freaked out when he looked at the source code?&lt;/p&gt;

&lt;p&gt;It's because he came across some weird words, which resembled pretty much something like this,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# This is a ruby file containing a function called first_omnitrix.

module AzmuthFromOmniverse

  NO_HARM = '0'
  IS_HARMFUL = '1'

  def first_omnitrix(person)
    return IS_HARMFUL if person!= 'ben'
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wait. What?&lt;/p&gt;

&lt;p&gt;Ben is a kid who had a background in programming, but this code is insane. Why in the world would someone use this kind of mixed letters which causes a lot of confusion?&lt;/p&gt;

&lt;p&gt;Hold your horses dear. You aren't alone 😅.&lt;/p&gt;

&lt;p&gt;In Ruby, it's quite common. Many people who are new to ruby would find this odd at first ( Been there. Done that 🥶), but later you'll work around your way in understanding the meaning under the hood.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why cases are used?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cases are the one that differentiates one thing from another. Say for (e.g) Class Vs Function Vs Variables.&lt;/p&gt;

&lt;p&gt;Interesting right? 😋&lt;/p&gt;

&lt;p&gt;Come, let's dive in to know more 🏄🏻‍♂️&lt;/p&gt;

&lt;p&gt;First thing First.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) CamelCase:&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;CamelCases in ruby are used around places like modules, classes and include definitions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# This is a module with include.

module AzmuthFromOmniverse
  include OmnitrixPrototype
    ... something goes here ...
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The name called "AzmuthFromOmniverse" and "OmnitrixPrototype" used in the above code is called CamelCase.&lt;/p&gt;

&lt;p&gt;You see, generally, when we use words in a sentence we differ them with space. But in programming especially in ruby, we don't use space for a module name. Instead, we start them by Capital letter followed by another word starting with a capital letter without any space.&lt;/p&gt;

&lt;p&gt;This is known as Camel Case.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) snake_case:&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;Whoa, that's a snake bro. What does this have anything to do with code?&lt;/p&gt;

&lt;p&gt;snake_case as the name suggests it has ups &amp;amp; downs and some flat surface. You can have an idea of the snake case in the below code snippet.&lt;br&gt;
&lt;/p&gt;

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

def first_omnitrix
  return 'true'
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mostly for the definition of a function called ' def ', ruby uses snake_case. These are used to have a visual impact at the user end so that he/she can differentiate the code just by looking at the case itself.&lt;/p&gt;

&lt;p&gt;This is known as snake_case&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) CAPITAL CASE&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sorry about the rude Heading. It was not meant to offend 🤭.&lt;br&gt;
Usually using all words in Upper case is considered as shouting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs5j1rpbjqdlfdegtya82.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%2Fuploads%2Farticles%2Fs5j1rpbjqdlfdegtya82.gif" alt="not here gif" width="220" height="222"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Not here. Not in coding.&lt;/p&gt;

&lt;p&gt;Upper case or CAPITAL case are used to denote the constants in ruby.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Example of Capital case

module AzmuthFromOmniverse

  IS_HARMFUL = '1'

  def first_omnitrix
    return IS_HARMFUL
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, IS_HARMFUL is constant. Which takes input type like string, int or any other type as an input.&lt;/p&gt;

&lt;p&gt;This is known as Capital case.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bonus Tip:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You might have missed the part where I saved two lines in writing a piece of code.&lt;/p&gt;

&lt;p&gt;Go through all the code snippet that I've given in this article and figure out which one it is.&lt;/p&gt;

&lt;p&gt;Found it already? 🤓&lt;/p&gt;

&lt;p&gt;This :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;return IS_HARMFUL if person!= 'ben'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;People who aren't familiar with ruby usually write something like this :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(person) != 'ben' {
  return IS_HARMFUL
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;See, Saved two lines 😎.&lt;/p&gt;

&lt;p&gt;Wanna know more about this?&lt;/p&gt;

&lt;p&gt;You know the answer, wait till next week 😉.&lt;/p&gt;

&lt;p&gt;So that's a wrap for this week. See you people around 🧙🏻‍♂️.&lt;/p&gt;

&lt;p&gt;Cover image courtesy: &lt;a href="https://www.codeninja.com.sg/" rel="noopener noreferrer"&gt;https://www.codeninja.com.sg/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>bestpractice</category>
    </item>
    <item>
      <title>AYDT - 02 ( Are You Doing This ❓ ) - One step towards Ninja Land.</title>
      <dc:creator>Karthikeyan Dhanapal</dc:creator>
      <pubDate>Fri, 12 Jul 2019 16:40:01 +0000</pubDate>
      <link>https://dev.to/chintukarthi/aydt-02-are-you-doing-this-one-step-towards-ninja-land-5gm0</link>
      <guid>https://dev.to/chintukarthi/aydt-02-are-you-doing-this-one-step-towards-ninja-land-5gm0</guid>
      <description>&lt;p&gt;There's this famous Yoda quote,&lt;/p&gt;

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

&lt;p&gt;Take away from this quote for a developer, I would say: "Practice a language until you no longer have to think twice before coding in it."&lt;/p&gt;

&lt;p&gt;Before moving on to this week's AYDT, there's a gentle reminder. This is a part of "Are You Doing This?" series and I would highly recommend you to have a look at the previous articles to learn more. Happy Coding 👨🏻‍💻&lt;/p&gt;

&lt;p&gt;Previous week link :&lt;br&gt;
&lt;a href="https://dev.to/chintukarthi/aydt-01-are-you-doing-this-one-step-towards-ninja-land-3eb8"&gt;https://dev.to/chintukarthi/aydt-01-are-you-doing-this-one-step-towards-ninja-land-3eb8&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With this quote turning the fiery phoenix 🔥 from within you let's look into this week's AYDT!!&lt;/p&gt;

&lt;p&gt;What are we waiting for? Let's dive in 🏄🏻‍♂️.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;Are You Doing This❓- Self Explanatory Functions!&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Writing a function is cool. We can call it across the file or even globally depending on the necessity. But, there's a catch. Most of us write comments either above or within the function for the developers or anyone who would likely to have a look at it in the future.&lt;/p&gt;

&lt;p&gt;Even though writing comments is a good practice, but comments alone won't make your function more readable.&lt;/p&gt;

&lt;p&gt;Let's a have look at the below function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# This function performs the addition of two numbers.

function add(a, b) {
  sum = a+b;
  return sum
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nothing fishy? Hmm, 🤔 Let's have a look at another function.&lt;br&gt;
Assume that "fibonacci" is a function that is being called within another function called "fib".&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# This function gets two input a and b and performs addition operation. 
# After Addition the sum is used to find the fibonacci series

function fib(a, b) {
  sum = a+b;
  fibonacci = fibonacci(sum); 
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Found something already? Yes. This code sucks. 😖&lt;/p&gt;

&lt;p&gt;But for beginners, this won't ring any bell and most of you will think that it is doing exactly what it was expected to do. And that's alright.&lt;/p&gt;

&lt;p&gt;But why this isn't a good practice? &lt;/p&gt;

&lt;p&gt;Because when it comes to coding, we should not only look at the functionality but also the code readability.&lt;/p&gt;

&lt;p&gt;This is where most of the beginners make mistakes. So did I.&lt;/p&gt;

&lt;p&gt;While writing a function have this in mind.&lt;/p&gt;

&lt;p&gt;"No one has time to read your lines and lines of mumbo jumbo comments."&lt;/p&gt;

&lt;p&gt;So what can you do in order to make your function more developer friendly?&lt;br&gt;
You should write a function in such a way that, even after years when a developer looks at your code they should understand the functionality without looking at the comments and that's what we call as &lt;strong&gt;'Self Explanatory Functions'&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So how does a self-explanatory function should look like?&lt;/p&gt;

&lt;p&gt;It doesn't have a standard. Do your best to make the function explain itself than trying to explain it in the comments.&lt;/p&gt;

&lt;p&gt;I can provide with some examples of self-explanatory functions below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Be Warned:&lt;/strong&gt; &lt;br&gt;
These examples aren't some kind of ideal scenarios.&lt;br&gt;
The functions mentioned here are based on javascript.&lt;/p&gt;

&lt;p&gt;Here you go,&lt;/p&gt;

&lt;p&gt;1) The first function can be written more like this :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Performs addition operation.

function addition(variable_1, variable_2) {
  sum_of_variables = variable_1 + variable_2;
  return sum_of_variables;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You may find that this new function looks more complicated than the previous one. But trust me, it isn't. Just because the words increases it doesn't mean the code is complicated.&lt;/p&gt;

&lt;p&gt;But on the bright side, "It's much more readable now and self-explanatory than the previous one!"&lt;/p&gt;

&lt;p&gt;2) The second function can be written like this :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Performs addition operation followed by finding fibonacci of the resulted sum.

function addition_with_fibonacci(variable_1, variable_2) {
  sum_of_variables = variable_1 + variable_2;
  fibonacci_series = find_fibonacci_series(sum_of_variables);
  return fibonacci_series;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These are some example of how your function can be a self-explanatory one. If you came across or knew a better version of it, please let us know in the comments section. After all, I am one among the fellow developers who love to learn new things every day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bonus tip:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use snack case instead of camel case for naming convention whenever and wherever needed in a function, just like I did it in the above functions.&lt;/p&gt;

&lt;p&gt;If you want to know more about snake case and camel case and their use cases in a better way, please wait till next week. 🤪&lt;/p&gt;

&lt;p&gt;So that's a wrap for this week. See you people around 🧙🏻‍♂️.&lt;/p&gt;

&lt;p&gt;Cover image courtesy: &lt;a href="https://www.codeninja.com.sg/" rel="noopener noreferrer"&gt;https://www.codeninja.com.sg/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>bestpractice</category>
    </item>
    <item>
      <title>AYDT - 01 ( Are You Doing This❓ ) - One step towards Ninja Land.</title>
      <dc:creator>Karthikeyan Dhanapal</dc:creator>
      <pubDate>Fri, 05 Jul 2019 16:59:36 +0000</pubDate>
      <link>https://dev.to/chintukarthi/aydt-01-are-you-doing-this-one-step-towards-ninja-land-3eb8</link>
      <guid>https://dev.to/chintukarthi/aydt-01-are-you-doing-this-one-step-towards-ninja-land-3eb8</guid>
      <description>&lt;p&gt;When you make a mistake, change your perspective to view that in a different angle. Mistakes are the one that makes you wise.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Master oogway&lt;/strong&gt; once said,&lt;/p&gt;

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

&lt;p&gt;Accidents make you stronger when you move forward with the lessons it taught you, no matter what the field is. So is coding.&lt;/p&gt;

&lt;p&gt;During my initial stages when I started to code, I've faced hard times in understanding the underlying concepts of coding.&lt;/p&gt;

&lt;p&gt;Along the way, I learned bits and pieces that made me one step ahead of my previous version.&lt;/p&gt;

&lt;p&gt;In this coding series, &lt;strong&gt;AYDT&lt;/strong&gt; I'll explain the basic things to keep in mind while writing a piece of code. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Are You Doing This❓- Clearing the Console!&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Most of the developers use logs to test whether their code is working the way it was supposed to be. It's a good way of debugging but, some of us fails to clear the logs while moving the code to production.&lt;/p&gt;

&lt;p&gt;something like this,&lt;/p&gt;

&lt;p&gt;In Javascript&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;console.log("I failed to clear my logs ☹️");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In Java,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;System.out.print("I failed to clear my logs here too!!! ☹️");
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can find a lot more debugging ways once you start mastering the language.&lt;/p&gt;

&lt;p&gt;You can Push the code to production without clearing the logs. Of course, it won't make any difference in the functionality nor it is going to affect it. But, is it a good practice?&lt;/p&gt;

&lt;p&gt;Ask yourself.&lt;/p&gt;

&lt;p&gt;Consider yourself as a user. Which one of the following console will you appreciate?&lt;/p&gt;

&lt;p&gt;This?&lt;/p&gt;

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

&lt;p&gt;Or this?&lt;/p&gt;

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

&lt;p&gt;"&lt;strong&gt;Make your code clean by clearing the logs. Just because the user can't see, doesn't mean we can take that for granted.&lt;/strong&gt;"&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Bonus tip :&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;While going through the portfolio of a Web Developer I came across this.&lt;/p&gt;

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

&lt;p&gt;Awesome right? 😉&lt;/p&gt;

&lt;p&gt;You can check it out the same in the dev tools of the site over here: &lt;a href="http://seanhalpin.io/" rel="noopener noreferrer"&gt;http://seanhalpin.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is how you engage your user 😎&lt;/p&gt;

&lt;p&gt;Next time you try to log something in the console,&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Remember:&lt;/strong&gt; A fellow developer living somewhere in the world is going to look at your code. 🤪&lt;/p&gt;

&lt;p&gt;Cover image courtesy: &lt;a href="https://www.codeninja.com.sg/" rel="noopener noreferrer"&gt;https://www.codeninja.com.sg/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>bestpractice</category>
    </item>
    <item>
      <title>My First Extension 👨🏻‍💻</title>
      <dc:creator>Karthikeyan Dhanapal</dc:creator>
      <pubDate>Wed, 03 Jul 2019 16:52:29 +0000</pubDate>
      <link>https://dev.to/chintukarthi/my-first-extension-2gfp</link>
      <guid>https://dev.to/chintukarthi/my-first-extension-2gfp</guid>
      <description>&lt;p&gt;There was a time when everybody in the class was doing something badass and getting appreciation from the lectures in the electrical lab. I, on the other hand despite being an electrical engineer, was a joke when it comes to viva. I used to play around these two words: current and voltage to save my ass from getting kicked out 😅. That doesn't stop me from scoring good grades. Even though I had a first class with distinction in my bachelor's all my interest were on the computer field because of the exemplary lecturers I came across.&lt;/p&gt;

&lt;p&gt;Now Being a software engineer, I thought of giving back to the community that helped me (helping me) in my growth as a software engineer 👨🏻‍💻.&lt;/p&gt;

&lt;p&gt;Since my love for javascript kept growing on and on over years, I had this crazy idea of creating a chrome extension. Which was inspired by my senior(&lt;a href="https://dev.to/gokatz"&gt;https://dev.to/gokatz&lt;/a&gt;). Back in my college days, he was a great inspiration when it comes to coding (still he's an inspiration 😇).&lt;/p&gt;

&lt;p&gt;After a long time of thinking about the concept to develop an extension, I settled down to create an extension which will give a daily customized quote from top rated books. (what else you can expect from a Bibliophilia 😝)&lt;/p&gt;

&lt;p&gt;It wasn't easy 🙃. I had tough days balancing both professional life and personal life. Still, here I am, writing an article about the same extension which I wanted to create. &lt;/p&gt;

&lt;p&gt;Below is the screenshot of the extension.&lt;/p&gt;

&lt;p&gt;1) This is the home page, where the users will see the quotes.&lt;/p&gt;

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

&lt;p&gt;2) This page allows the users to select their preference so that they can get a customized quote on their home page.&lt;/p&gt;

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

&lt;p&gt;3) This is the view when a preference is selected.&lt;/p&gt;

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

&lt;p&gt;The quote displayed on the third image is my personal favorite 😉.&lt;/p&gt;

&lt;p&gt;You can get the extension from the below URL.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://chrome.google.com/webstore/detail/todays-quote/bicpefioihdlhhhfgjajcebodhhkkach" rel="noopener noreferrer"&gt;https://chrome.google.com/webstore/detail/todays-quote/bicpefioihdlhhhfgjajcebodhhkkach&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is a link to the extension that was developed by my senior (&lt;a href="https://dev.to/gokatz"&gt;https://dev.to/gokatz&lt;/a&gt;) - &lt;a href="https://chrome.google.com/webstore/detail/muze/cgffahicpmdghffiephekgikaajnlilm" rel="noopener noreferrer"&gt;https://chrome.google.com/webstore/detail/muze/cgffahicpmdghffiephekgikaajnlilm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Planning to make the code open source in a few weeks.&lt;/p&gt;

&lt;p&gt;Suggestions about the user-experience are welcome 👾&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>html</category>
      <category>chromeextension</category>
    </item>
    <item>
      <title>How to save values in Chrome local storage</title>
      <dc:creator>Karthikeyan Dhanapal</dc:creator>
      <pubDate>Sun, 23 Jun 2019 14:29:15 +0000</pubDate>
      <link>https://dev.to/chintukarthi/how-to-save-values-in-chrome-local-storage-kmc</link>
      <guid>https://dev.to/chintukarthi/how-to-save-values-in-chrome-local-storage-kmc</guid>
      <description>&lt;p&gt;How to save a variable locally inside the Chrome browser's local storage? &lt;br&gt;
And this is one of the combinations that I used to search on google to get the answer. &lt;/p&gt;

&lt;p&gt;And guess what? Being a noob in the field of chrome extension development, I faced a hard time in understanding the concept explained in the chrome extension development documentation. Finally, I landed up in a youtube channel, that(&lt;a href="https://www.youtube.com/watch?v=DHP2h_7mOfA" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=DHP2h_7mOfA&lt;/a&gt;) explained the process. This guy is kind of the person who explained the concept as you explain it to a 5-year-old and he is good at it. Thanks to him.&lt;/p&gt;

&lt;p&gt;So here I am trying to explain the same thing in a simple way, so that if anyone faces the problem in the future. Just in case.&lt;/p&gt;

&lt;p&gt;First, you need to set the value of the variable that you wish to save in order to retrieve it.&lt;/p&gt;

&lt;p&gt;So we use the following method to save.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
chrome.storage.sync.set({'variable_name': 'variable_value'}, function() {
  console.log("you saved me!!");
});

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

&lt;/div&gt;



&lt;p&gt;here, the 'set' method sets the value of the variable called 'variable_name' in the local storage.&lt;/p&gt;

&lt;p&gt;In order to retrieve it, you need to use the 'get' method instead of 'set'.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
chrome.storage.sync.get(['variable_name'], function(result) {
      if(result.variable_name == undefined) {
        console.log("I am retrieved!!");
      }
}

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

&lt;/div&gt;



&lt;p&gt;The following will retrieve the value of 'variable_name' as an object. So in order to access it, you need to use the object name followed by the variable name. (i.e)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;result.variable_name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and the reason why we are checking for the undefined is kind of a fail-safe. This is not covered in the documentation.&lt;/p&gt;

&lt;p&gt;The scenario for this fail-safe would be, consider your extension is developed with the use of local storage of a variable called&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;but when the user tries to open the extension for the first time in a browser it will throw an&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;this is because the variable is not yet defined in the user's local storage.&lt;/p&gt;

&lt;p&gt;So this fail-safe will come in handy at that time. You can add an extra condition as this so that it won't break your code and your user's heart 😜.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>chromeextension</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Redundant 'return' detected - Ruby Programming.</title>
      <dc:creator>Karthikeyan Dhanapal</dc:creator>
      <pubDate>Mon, 25 Mar 2019 04:15:11 +0000</pubDate>
      <link>https://dev.to/chintukarthi/redundant-return-detected---ruby-programming-gac</link>
      <guid>https://dev.to/chintukarthi/redundant-return-detected---ruby-programming-gac</guid>
      <description>&lt;p&gt;Being a Software Developer we are expected to work on new technology irrespective of language that we have previous work experience in. It's not a big deal as long as we are familiarised with the syntax of the new language. &lt;/p&gt;

&lt;p&gt;I recently switched the job and was expected to work on ruby on rails.&lt;/p&gt;

&lt;p&gt;I was working on a code and returning a value from a function and I don't see any error or warning in that until I used lint to check my code quality. It threw me the warning,&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Redundant 'return' detected&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;I had no clue about this as I was sure that my code is fine. After intense googling, I found that by default ruby doesn't expect a function to return some value.&lt;/p&gt;

&lt;p&gt;You can check the issue from this question in StackOverflow: &lt;a href="https://stackoverflow.com/questions/1023146/is-it-good-style-to-explicitly-return-in-ruby" rel="noopener noreferrer"&gt;https://stackoverflow.com/questions/1023146/is-it-good-style-to-explicitly-return-in-ruby&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After modification my function looked something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def some_function(x)
  y = 33
  unless x.blank?
    y = if x == 3
          10
        elsif x == 5
          16
        else
          nil
        end
  end
end

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

&lt;/div&gt;



&lt;p&gt;The Drive code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;x = ''
z = some_function(x)
print z
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Even after modification my function didn't return the expected value. It was expected to return the &lt;code&gt;y value as '33'&lt;/code&gt; which is set by default once it enters the function.&lt;/p&gt;

&lt;p&gt;It returned &lt;code&gt;nil&lt;/code&gt; instead of the expected &lt;code&gt;output : '33'&lt;/code&gt;&lt;br&gt;
I got confused and started debugging the code. Later I found out the problem.&lt;br&gt;
The problem is, we should return the final variable in order for the function to return a value. &lt;/p&gt;

&lt;p&gt;So instead of using &lt;code&gt;'return'&lt;/code&gt; keyword we can simply use the variable name at the end like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def some_function(x)
  y = 33
  unless x.blank?
    y = if x == 3
          10
        elsif x == 5
          16
        else
          nil
        end
  end
  y #change made here to return the final value of y
end

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

&lt;/div&gt;



&lt;p&gt;so that whatever the final value of the variable is, it will be returned and this solves the issue.&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>rspec</category>
      <category>programming</category>
      <category>code</category>
    </item>
    <item>
      <title>Hubot - SSH Server Status</title>
      <dc:creator>Karthikeyan Dhanapal</dc:creator>
      <pubDate>Tue, 31 Jul 2018 17:18:00 +0000</pubDate>
      <link>https://dev.to/chintukarthi/hubot---sshserverstatus-4d8i</link>
      <guid>https://dev.to/chintukarthi/hubot---sshserverstatus-4d8i</guid>
      <description>&lt;p&gt;Hi. I am writing a coffee script to check the server status. It was written in coffee script for hubot. I am getting some error while getting the arguments from the child_process function. I am pasting the code below for the understanding. &lt;/p&gt;

&lt;p&gt;Code:&lt;/p&gt;

&lt;p&gt;child_process = require 'child_process'&lt;br&gt;
module.exports = (robot) -&amp;gt;&lt;br&gt;
  robot.respond /check status/i, (res) -&amp;gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;child_process.exec("sshpass -p 'password' ssh username@hostname 'sudo service httpd status'", (err, stdout, stderr) -&amp;gt;
  if err
    console.log(err)
  else
    console.log(stdout)
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Code explanation:&lt;/p&gt;

&lt;p&gt;This(child_process) is a nodejs module and i am trying to perform the following task:&lt;/p&gt;

&lt;p&gt;using ssh shell command i am logging into the server (ssh username@hostname) and then writing the shell command for checking the status of the server (sudo service httpd status).&lt;/p&gt;

&lt;p&gt;Error: Response not ok: no_text&lt;/p&gt;

&lt;p&gt;I think there is some problem with the child_process.exec() syntax.&lt;/p&gt;

&lt;p&gt;I am using centos in virtual machine. I have saved the ssh public key in the .ssh/authorize_keys&lt;/p&gt;

&lt;p&gt;Thanks.&lt;/p&gt;

</description>
      <category>help</category>
      <category>hubot</category>
      <category>server</category>
      <category>ssh</category>
    </item>
  </channel>
</rss>
