<?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: Jacky Kumar Shaw</title>
    <description>The latest articles on DEV Community by Jacky Kumar Shaw (@jackykumarshaw).</description>
    <link>https://dev.to/jackykumarshaw</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%2F518840%2Faf2d20ea-549e-45eb-a0e6-892c152fbed7.jpg</url>
      <title>DEV Community: Jacky Kumar Shaw</title>
      <link>https://dev.to/jackykumarshaw</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jackykumarshaw"/>
    <language>en</language>
    <item>
      <title>Explaining Git to a 10 year old!</title>
      <dc:creator>Jacky Kumar Shaw</dc:creator>
      <pubDate>Thu, 11 Feb 2021 18:42:35 +0000</pubDate>
      <link>https://dev.to/jackykumarshaw/explaining-git-to-a-10-year-old-49ed</link>
      <guid>https://dev.to/jackykumarshaw/explaining-git-to-a-10-year-old-49ed</guid>
      <description>&lt;p&gt;Hi! If you are reading this it means you are a 10 year old. If you are not you can still read along to get some insight.&lt;/p&gt;

&lt;p&gt;Now Git, according to the definition is a "Distributed Version Control System", which sounds heavy enough that any 10 year old can switch off their brain from even trying to understand it.&lt;br&gt;
But here my motive is to make it as simple as it can possibly get, so that even a 10 year old starts talking things that most adults are confused with.&lt;/p&gt;

&lt;p&gt;Let's say you have a GOD-GIFTED friend named Git, just like Nobita has Doraemon. This friend of yours is very good at keep track of things. Like he can recall exactly what all things he does each day from morning till night, he can say how many things in the house have been changed today and what has changed in those things as compared to how they were yesterday, and so on.&lt;br&gt;
And like Nobita you thought of taking advantage of this friend of yours to keep track of your progress in your essay.&lt;/p&gt;

&lt;p&gt;Now you asking Git to help you is ["&lt;strong&gt;git init&lt;/strong&gt;"].&lt;/p&gt;

&lt;p&gt;Now you started writing your essay in a page and asked Git to keep track of the changes that you make in that page. This is ["&lt;strong&gt;git add page.txt&lt;/strong&gt;"]. So Git also has kept a blank page with him just like you have.&lt;/p&gt;

&lt;p&gt;You wrote in your page "&lt;em&gt;The Sun is a big ball of fire made up of Hydrogen and Oxygen&lt;/em&gt;". Immediately, Git notices that, in the beginning, both the pages(yours and his) were blank(and so the SAME), but now, there is some text in your page whereas my page is still blank, so changes must have occurred. Thus Git says, "Hey your page is modified". This is ["&lt;strong&gt;git status&lt;/strong&gt;"].&lt;/p&gt;

&lt;p&gt;Now if you ask Git, "Of course I know that my page has been modified Git, because I only did those modifications. But what I do not know is, what modifications have been made, because I am not as good as you in keeping track of the changes. So can you tell me what changes have been made?". Asking this is ["&lt;strong&gt;git diff&lt;/strong&gt;"].&lt;/p&gt;

&lt;p&gt;To that Git simply compares his page with your page and says "A line saying "&lt;em&gt;The Sun is a big ball of fire made up of Hydrogen and Oxygen&lt;/em&gt;" has been added". Then Git asks you, "Do you want me to update my copy of the page, by putting in the changes you have made in your copy of the page?". ["&lt;strong&gt;Git asking this is git asking you to stage your modified file again&lt;/strong&gt;"].&lt;/p&gt;

&lt;p&gt;Now if you want to say "Yes, Please!" to Git, you have to say ["&lt;strong&gt;git add page.txt&lt;/strong&gt;"]. The moment you say that, Git THROWS away his copy of the page and takes a xerox copy of your copy of the page and keeps it with himself as his currently held copy of the page.&lt;/p&gt;

&lt;p&gt;Now Git asks you, "Hey can I make one more copy of my copy of the page and save it permanently so that if you mess up your copy of the page and also ask me to update my copy of the page with the mess you have done in your copy of the page by saying ["&lt;strong&gt;git add page.txt&lt;/strong&gt;], thereby ultimately messing up my copy of the page as well (by making me throw away my correct copy of the page in order to keep a xerox of your messed up copy of the page as my currently held copy of the page)then, I will be able to help you undo the mess in your copy of the page by referring to the permanently kept correct copy of the page that I had previously kept aside safely?". Git asking this is same as git asking ["&lt;strong&gt;Commit the files in the staging area&lt;/strong&gt;"].&lt;/p&gt;

&lt;p&gt;And now if you want to say "Definitely do that Git!" then you have to say to git&lt;br&gt;&lt;br&gt;
["&lt;strong&gt;git commit -m "my-first-commit&lt;/strong&gt;"].&lt;/p&gt;

&lt;p&gt;After the commit, currently, your copy of the page, Git's currently held copy of the page, and the copy of the page kept for permanent storage most recently, are all exactly the same. Everything is well and good.&lt;/p&gt;

&lt;p&gt;Now you sit for writing again. And you realise that what you have written was wrong, because Sun is not made of of &lt;em&gt;Hydrogen&lt;/em&gt; and &lt;em&gt;Oxygen&lt;/em&gt;, instead it is made up of &lt;em&gt;Hydrogen&lt;/em&gt; and &lt;em&gt;Nitrogen&lt;/em&gt;. So you edit your copy of the page by replacing "&lt;em&gt;Oxygen&lt;/em&gt;" with "&lt;em&gt;Nitrogen&lt;/em&gt;". Immediately Git says, "Hey you have made changes in your copy of the page, do you want me update my copy of the page as well with the changes you have made in your copy of the page?". This is nothing but git asking you ["&lt;strong&gt;Add the modified copy of your page in the staging area again&lt;/strong&gt;"].&lt;/p&gt;

&lt;p&gt;Now before saying "Yes, Please!" to Git by saying ["&lt;strong&gt;git add page.txt&lt;/strong&gt;"] if you write ["&lt;strong&gt;git diff&lt;/strong&gt;"] then Git will tell you, "Hey, in the place where "&lt;em&gt;Oxygen&lt;/em&gt;" is written in my copy of the page, in the same place, in your copy of the page, "&lt;em&gt;Nitrogen&lt;/em&gt;" is written."&lt;/p&gt;

&lt;p&gt;Now you said ["&lt;strong&gt;git add page.txt&lt;/strong&gt;"]. Immediately, Git THREW away his copy of the page which had "&lt;em&gt;Oxygen&lt;/em&gt;" written in it. And took the xerox of your copy of the page where "&lt;em&gt;Nitrogen&lt;/em&gt;" is written in place where "&lt;em&gt;Oxygen&lt;/em&gt;" was written, and kept it with himself as his (Git's) currently held copy of the page.&lt;/p&gt;

&lt;p&gt;Guess what ["&lt;strong&gt;git diff&lt;/strong&gt;"] will give right now? If you said "&lt;em&gt;Nothing&lt;/em&gt;", treat yourself with a cake today because you are well ahead all your classmates in knowing git. If you did not say "&lt;em&gt;Nothing&lt;/em&gt;", you do realize the fact that currently Git's copy of the page and your copy of the page both have "&lt;em&gt;Nitrogen&lt;/em&gt;", so they are exactly the same. Thus ["&lt;strong&gt;git diff&lt;/strong&gt;"] shows &lt;em&gt;nothing&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Now, as you might have guessed, you friend immediately asks again, "Hey can I again make a permanent copy of my currently held updated copy of the page, so that.....same story?". This is nothing but git asking you to &lt;strong&gt;commit the newly staged files&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But before you say to Git, "Definitely do that Git!" by saying ["&lt;strong&gt;git commit -m "my-second-commit&lt;/strong&gt;"], you got blown away when your elder brother laughed wildly seeing your copy of the page and finding out that you think Sun is made up of &lt;em&gt;Hydrogen&lt;/em&gt; and &lt;em&gt;Nitrogen&lt;/em&gt;. You elder brother then enlightened you by saying the truth that Sun is made up of &lt;em&gt;Hydrogen&lt;/em&gt; and &lt;em&gt;Helium&lt;/em&gt; and not &lt;em&gt;Nitrogen&lt;/em&gt;. So you immediately modified your copy of the page and in place of "&lt;em&gt;Nitrogen&lt;/em&gt;", you wrote "&lt;em&gt;Helium&lt;/em&gt;".&lt;/p&gt;

&lt;p&gt;Now if you are following the story line till now, you know that now if you write ["&lt;strong&gt;git diff&lt;/strong&gt;"], Git will tell you, "Hey, in the place where "&lt;em&gt;Nitrogen&lt;/em&gt;" is written in my copy of the page, in the same place, in your copy of the page, "&lt;em&gt;Helium&lt;/em&gt;" is written."&lt;/p&gt;

&lt;p&gt;And now if you write ["&lt;strong&gt;git diff --staged&lt;/strong&gt;"] then Git, instead of comparing your copy of the page with his copy of the page, will compare your copy of the page with the most recently stored permanent copy of the page, and will say, "Hey, in the place where "&lt;em&gt;Oxygen&lt;/em&gt;" is written in lastly stored permanent copy of the page, in the same place, in your copy of the page, "&lt;em&gt;Helium&lt;/em&gt;" is written."&lt;/p&gt;

&lt;p&gt;All that is good. But you don't trust your elder brother. So don't want to keep the changes you made according to your brother, and you want to go back to what you had prior to your brother's interference. Now your friend Git will actually help you.&lt;/p&gt;

&lt;p&gt;Currently your elder-brother-influenced-copy of the page has "&lt;em&gt;Helium&lt;/em&gt;" in it. Your friend Git's copy of the page still has "&lt;em&gt;Nitrogen&lt;/em&gt;" written in it, and why is that so? because you never did ["&lt;strong&gt;git add page.txt&lt;/strong&gt;"] after modifying your copy according to your un-trustworthy brother. And the lastly stored permanent copy of the page still has "&lt;em&gt;Oxygen&lt;/em&gt;" in it because you never committed anything after the my-first-commit.&lt;br&gt;
Now you can either undo the changes in your copy of the page and make it same as the copy of the page currently held by your friend Git, by the command ["&lt;strong&gt;git checkout page.txt&lt;/strong&gt;"].&lt;br&gt;
Or if you want to undo the changes in your copy of the page and make it similar to the lastly saved permanent copy of the page, you have to first free the hands of your friend Git, because as long your friend is holding his own copy of the page, how can he go and take out the permanent copy of the page for your undoing purposes? So to set free the hands of your friend Git, you have to allow him to make a copy of his currently held copy of the page and store it permanently (i.e. you have to commit what's there in the staging area currently). So you did that by saying, ["&lt;strong&gt;git commit -m "my-second-commit&lt;/strong&gt;"]. Now if you want to make your copy of the page same as the first committed copy of the page, then you have to know the &lt;em&gt;secret code&lt;/em&gt; of that firstly committed copy of the page. To know the &lt;em&gt;secret code&lt;/em&gt;, you just say to your friend Git, ["&lt;strong&gt;git log&lt;/strong&gt;"]. Then Git, comes up with something like this for you:-&lt;br&gt;
my-second-commit : &amp;lt;&lt;strong&gt;40 letter secret code&lt;/strong&gt;&amp;gt;&lt;br&gt;
my-first-commit : &amp;lt;&lt;strong&gt;40 letter secret code&lt;/strong&gt;&amp;gt;&lt;br&gt;
Now you just have to say to your friend Git that ["&lt;strong&gt;git checkout &amp;lt;40 letter secret code&amp;gt;&lt;/strong&gt;"]. If you decide to go back to my-first-commit, then type in the &lt;em&gt;secret code&lt;/em&gt; of my-first-commit, or if you want to go back to my-second-commit, then type in the &lt;em&gt;secret code&lt;/em&gt; of my-second-commit. And watch your messed up copy of the page &lt;strong&gt;magically getting changed as if it has gone back in time using a Time Machine like the one Nobita has inside his study table drawer&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you have understood till now, you are a smart 10 year old.&lt;br&gt;
Congratulations! and you must get yourself anther cake just to mark the success of reading an entire blog about the most used and technology, at the mere age of 10.&lt;/p&gt;

</description>
      <category>git</category>
      <category>tutorial</category>
      <category>newbie</category>
    </item>
    <item>
      <title>Markdown 101</title>
      <dc:creator>Jacky Kumar Shaw</dc:creator>
      <pubDate>Wed, 25 Nov 2020 21:01:38 +0000</pubDate>
      <link>https://dev.to/jackykumarshaw/markdown-101-48bh</link>
      <guid>https://dev.to/jackykumarshaw/markdown-101-48bh</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Markdown is a lightweight mark-up language that you can use to add formatting elements to plaintext text documents. Created by John Gruber in 2004, Markdown is now one of the world’s most popular mark-up languages. Specifically, it is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML).&lt;/p&gt;

&lt;h1&gt;
  
  
  If you have 10 mins:-
&lt;/h1&gt;

&lt;p&gt;Markdown does not do anything fancy like change the colour, size or type of the font. All we can do using Markdown is make text BOLD or Italic, creating headers, and organising lists.&lt;br&gt;
Although it seems insignificant for some beginner dev to spend dedicated time for learning this, there has to a reason why tech-giants like GitHub and Reddit are using Markdown language heavily.&lt;br&gt;
I know being a beginner you will never have time to learn Markdown, just to make the README.md of your project in GitHub look better. But you do read blogs right? If the blog about some new super cool update that's expected to come in the next Android OS, you spend your 5-6 minutes reading that blog without even thinking about it. In the very same way if you just complete reading this tiny blog on Markdown, I can assure you that, this will keep paying off all your life.&lt;/p&gt;

&lt;h1&gt;
  
  
  Markdown Basics
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Make it &lt;em&gt;Italic&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;To make a phrase appear in italic, just surround &lt;br&gt;
it with either underscores like ( _this_ ) or &lt;br&gt;
with single asterisks like (  *this*  ).&lt;/p&gt;

&lt;h2&gt;
  
  
  Make it &lt;strong&gt;Bold&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;To make a phrase appear in bold, just surround it with double asterisks like (  **this**  ).&lt;/p&gt;

&lt;h2&gt;
  
  
  Headers comes in 6 sizes!
&lt;/h2&gt;

&lt;p&gt;There are  6 types of headers. Starting form Header One being the largest to Header Six being the smallest.&lt;br&gt;
To make a phrase into a Heading level K, we just have preface the phrase with K hashes. For example&lt;br&gt;
### This will be Heading Level 3&lt;br&gt;
###### This will be Heading Level 6&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Inline Links
&lt;/h3&gt;

&lt;p&gt;To make an inline link, write the link text in square brackets then just after that write the link URL in parenthesis. For example, &lt;br&gt;
[Search it!](&lt;a href="http://www.google.com"&gt;www.google.com&lt;/a&gt;) will display a text "Search it!", but when one clicks on the text, then one reaches "&lt;a href="http://www.google.com"&gt;www.google.com&lt;/a&gt;"&lt;/p&gt;

&lt;h3&gt;
  
  
  Reference Links
&lt;/h3&gt;

&lt;p&gt;Now if you have many such text pieces in your entire document from where you want to land to the same particular URL, and if you follow the inline link method to make all those text pieces into inline links, then, if suppose that particular URL got changed, then you will have to go and make the changes in each and every place where you have attached that URL in your document! Sounds tiring? Hence came the concept of Reference links. Reference links are very much like Macros in C language. To use reference links, every phrase which is to be made as an inline link, must be written inside square brackets as usual but instead of being followed by the actual URL inside parenthesis, we have to follow it by writing some common text inside a pair of yet another square brackets! Then, at the end of the document we just have to write:-&lt;br&gt;
[that_common_text]: &lt;a href="http://www.thatParticularURL.com"&gt;www.thatParticularURL.com&lt;/a&gt;&lt;br&gt;
And don't worry, the above line wont appear in the rendered document.&lt;br&gt;
Now as you might have guessed already, if in case the URL changes, then, we just have to change the URL written at the end.&lt;/p&gt;

&lt;h2&gt;
  
  
  Images
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Inline Image Link
&lt;/h3&gt;

&lt;p&gt;To create inline image link, the process is same as that of creating inline links, except for the fact that the square brackets containing the alt text must be preceded by an exclamation mark. For eg:-&lt;br&gt;
![alt_text] (&lt;a href="http://www.ImageURL.com"&gt;www.ImageURL.com&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Q)BTW, What's "alt_text"? I hear you asking.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Ans) If the internet connection is slow and the image could not get loaded, then in place of the image this "alt_text" will be displayed, thereby giving the visitor some idea about what that image was about. And also if a visually impaired person is using some screen reader, then, reading that image means reading that "alt_text". So we must give an "alt text" which describes the image in just a word or two.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reference Image
&lt;/h3&gt;

&lt;p&gt;Again for creating reference image, the process is same as creating reference links, and the exception is also the same as in creating inline image link. Yes, you are right! I am referring to the "!" thing only.&lt;/p&gt;

&lt;h2&gt;
  
  
  Blockquote
&lt;/h2&gt;

&lt;p&gt;For creating quote inside a block (aka Blockquote), we can just have to preface the sentence or paragraph with the "greater than" caret ( &amp;gt; ) symbol. Remember if the quote expands into multiple paragraphs, then at the beginning of every paragraph and and the the beginning of every blank lines in the space between the paragraphs also, there needs to be a "greater than" ( &amp;gt; ) symbol. For example, &lt;br&gt;
&amp;gt; Life begins where Fear Ends --Osho&lt;/p&gt;

&lt;h2&gt;
  
  
  Lists
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Unordered List
&lt;/h3&gt;

&lt;p&gt;For making an unordered list, write every item in a new line with each item being preceded by an asterisk ( * ) followed by a blank space. Remember if you don't give a blank space after the asterisk, it wont work. For example, &lt;br&gt;
Fruits:-&lt;br&gt;
* Apple&lt;br&gt;
* Banana&lt;br&gt;
* Orange&lt;/p&gt;

&lt;h3&gt;
  
  
  Ordered List
&lt;/h3&gt;

&lt;p&gt;For ordered list, just write the numbers, and make an ordered list as you would normally do. The Markdown language will understand and render that for you. Nothing special to be done here.&lt;/p&gt;

&lt;h3&gt;
  
  
  Nested Lists
&lt;/h3&gt;

&lt;p&gt;For making nested lists, we just have to indent the asterisks accordingly. That's it. No big deal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inline Code
&lt;/h2&gt;

&lt;p&gt;If you want a highlighted text, it called Inline Code in Markdown. So for highlighting a phrase or code or number or key or anything, you just have enclose the phrase within a pair of "backticks". Backtick symbol looks like ( ` ).&lt;/p&gt;

&lt;h2&gt;
  
  
  Blocks of code
&lt;/h2&gt;

&lt;p&gt;For sure you would need to add code snippets. And Markdown has got you covered. To make a block of code we just have to write three backticks in a line, then start writing our code from the next line, and then on a new line after the last line of the code snippet we again have to write three backticks. That's it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Soft Breaks
&lt;/h2&gt;

&lt;p&gt;If you write a poetry, it will appear as a paragraph. So to break the lines of the poetry, we have to write two extra blank spaces at the end of each poetry line before pressing enter to go the new line. This is known as soft-breaks. For example, consider dots as blank-spaces:- &lt;br&gt;
Rain Rain Go Away..&lt;br&gt;
Come again another day..&lt;br&gt;
Little Johnny wants to play..&lt;br&gt;
Rain rain go away&lt;/p&gt;

&lt;h1&gt;
  
  
  Congrats!! You did it!
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Interesred in learning more?
&lt;/h1&gt;

&lt;p&gt;Believe it or not, we’ve only just begun exploring what can be accomplished with Markdown. There are many “extended” implementations of Markdown that support formats like tables, definition lists, footnotes, and more. Because they’re non-standard, they’re not essential to learning the basics, as we’ve introduced here.&lt;/p&gt;

&lt;p&gt;If you’d like to know more about these Markdown implementations, you’re welcome to explore any number of other Markdown apps and tutorials. Here are just a few:-&lt;/p&gt;

&lt;p&gt;&lt;a href="https://daringfireball.net/projects/markdown/"&gt;https://daringfireball.net/projects/markdown/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://spec.commonmark.org/dingus/"&gt;https://spec.commonmark.org/dingus/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://johnmacfarlane.net/babelmark2/faq.html"&gt;https://johnmacfarlane.net/babelmark2/faq.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.markdownguide.org"&gt;https://www.markdownguide.org&lt;/a&gt;&lt;/p&gt;

</description>
      <category>markdown</category>
      <category>github</category>
      <category>readmefile</category>
    </item>
  </channel>
</rss>
